Skip to content

Instantly share code, notes, and snippets.

@mininaim
Created October 28, 2024 15:09
Show Gist options
  • Save mininaim/e83bfea5fe7630fbb7a684fbaf5b2481 to your computer and use it in GitHub Desktop.
Save mininaim/e83bfea5fe7630fbb7a684fbaf5b2481 to your computer and use it in GitHub Desktop.
var ZiadahPlugin=function(t){"use strict";function e(t,e){(null==e||e>t.length)&&(e=t.length);for(var n=0,a=Array(e);n<e;n++)a[n]=t[n];return a}function n(t,e,n,a,r,o,i){try{var c=t[o](i),s=c.value}catch(t){return void n(t)}c.done?e(s):Promise.resolve(s).then(a,r)}function a(t){return function(){var e=this,a=arguments;return new Promise((function(r,o){var i=t.apply(e,a);function c(t){n(i,r,o,c,s,"next",t)}function s(t){n(i,r,o,c,s,"throw",t)}c(void 0)}))}}function r(t,e,n){return e=l(e),function(t,e){if(e&&("object"==typeof e||"function"==typeof e))return e;if(void 0!==e)throw new TypeError("Derived constructors may only return object or undefined");return function(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}(t)}(t,p()?Reflect.construct(e,n||[],l(t).constructor):e.apply(t,n))}function o(t,e){if(!(t instanceof e))throw new TypeError("Cannot call a class as a function")}function i(t,e){for(var n=0;n<e.length;n++){var a=e[n];a.enumerable=a.enumerable||!1,a.configurable=!0,"value"in a&&(a.writable=!0),Object.defineProperty(t,y(a.key),a)}}function c(t,e,n){return e&&i(t.prototype,e),n&&i(t,n),Object.defineProperty(t,"prototype",{writable:!1}),t}function s(t,e){var n="undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(!n){if(Array.isArray(t)||(n=w(t))||e&&t&&"number"==typeof t.length){n&&(t=n);var a=0,r=function(){};return{s:r,n:function(){return a>=t.length?{done:!0}:{done:!1,value:t[a++]}},e:function(t){throw t},f:r}}throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}var o,i=!0,c=!1;return{s:function(){n=n.call(t)},n:function(){var t=n.next();return i=t.done,t},e:function(t){c=!0,o=t},f:function(){try{i||null==n.return||n.return()}finally{if(c)throw o}}}}function d(t,e,n){return(e=y(e))in t?Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function l(t){return l=Object.setPrototypeOf?Object.getPrototypeOf.bind():function(t){return t.__proto__||Object.getPrototypeOf(t)},l(t)}function u(t,e){if("function"!=typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=Object.create(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),Object.defineProperty(t,"prototype",{writable:!1}),e&&m(t,e)}function p(){try{var t=!Boolean.prototype.valueOf.call(Reflect.construct(Boolean,[],(function(){})))}catch(t){}return(p=function(){return!!t})()}function h(t,e){var n=Object.keys(t);if(Object.getOwnPropertySymbols){var a=Object.getOwnPropertySymbols(t);e&&(a=a.filter((function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.push.apply(n,a)}return n}function g(t){for(var e=1;e<arguments.length;e++){var n=null!=arguments[e]?arguments[e]:{};e%2?h(Object(n),!0).forEach((function(e){d(t,e,n[e])})):Object.getOwnPropertyDescriptors?Object.defineProperties(t,Object.getOwnPropertyDescriptors(n)):h(Object(n)).forEach((function(e){Object.defineProperty(t,e,Object.getOwnPropertyDescriptor(n,e))}))}return t}function f(){f=function(){return e};var t,e={},n=Object.prototype,a=n.hasOwnProperty,r=Object.defineProperty||function(t,e,n){t[e]=n.value},o="function"==typeof Symbol?Symbol:{},i=o.iterator||"@@iterator",c=o.asyncIterator||"@@asyncIterator",s=o.toStringTag||"@@toStringTag";function d(t,e,n){return Object.defineProperty(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}),t[e]}try{d({},"")}catch(t){d=function(t,e,n){return t[e]=n}}function l(t,e,n,a){var o=e&&e.prototype instanceof y?e:y,i=Object.create(o.prototype),c=new A(a||[]);return r(i,"_invoke",{value:E(t,n,c)}),i}function u(t,e,n){try{return{type:"normal",arg:t.call(e,n)}}catch(t){return{type:"throw",arg:t}}}e.wrap=l;var p="suspendedStart",h="suspendedYield",g="executing",m="completed",v={};function y(){}function b(){}function w(){}var x={};d(x,i,(function(){return this}));var z=Object.getPrototypeOf,k=z&&z(z(O([])));k&&k!==n&&a.call(k,i)&&(x=k);var C=w.prototype=y.prototype=Object.create(x);function _(t){["next","throw","return"].forEach((function(e){d(t,e,(function(t){return this._invoke(e,t)}))}))}function S(t,e){function n(r,o,i,c){var s=u(t[r],t,o);if("throw"!==s.type){var d=s.arg,l=d.value;return l&&"object"==typeof l&&a.call(l,"__await")?e.resolve(l.__await).then((function(t){n("next",t,i,c)}),(function(t){n("throw",t,i,c)})):e.resolve(l).then((function(t){d.value=t,i(d)}),(function(t){return n("throw",t,i,c)}))}c(s.arg)}var o;r(this,"_invoke",{value:function(t,a){function r(){return new e((function(e,r){n(t,a,e,r)}))}return o=o?o.then(r,r):r()}})}function E(e,n,a){var r=p;return function(o,i){if(r===g)throw Error("Generator is already running");if(r===m){if("throw"===o)throw i;return{value:t,done:!0}}for(a.method=o,a.arg=i;;){var c=a.delegate;if(c){var s=I(c,a);if(s){if(s===v)continue;return s}}if("next"===a.method)a.sent=a._sent=a.arg;else if("throw"===a.method){if(r===p)throw r=m,a.arg;a.dispatchException(a.arg)}else"return"===a.method&&a.abrupt("return",a.arg);r=g;var d=u(e,n,a);if("normal"===d.type){if(r=a.done?m:h,d.arg===v)continue;return{value:d.arg,done:a.done}}"throw"===d.type&&(r=m,a.method="throw",a.arg=d.arg)}}}function I(e,n){var a=n.method,r=e.iterator[a];if(r===t)return n.delegate=null,"throw"===a&&e.iterator.return&&(n.method="return",n.arg=t,I(e,n),"throw"===n.method)||"return"!==a&&(n.method="throw",n.arg=new TypeError("The iterator does not provide a '"+a+"' method")),v;var o=u(r,e.iterator,n.arg);if("throw"===o.type)return n.method="throw",n.arg=o.arg,n.delegate=null,v;var i=o.arg;return i?i.done?(n[e.resultName]=i.value,n.next=e.nextLoc,"return"!==n.method&&(n.method="next",n.arg=t),n.delegate=null,v):i:(n.method="throw",n.arg=new TypeError("iterator result is not an object"),n.delegate=null,v)}function P(t){var e={tryLoc:t[0]};1 in t&&(e.catchLoc=t[1]),2 in t&&(e.finallyLoc=t[2],e.afterLoc=t[3]),this.tryEntries.push(e)}function L(t){var e=t.completion||{};e.type="normal",delete e.arg,t.completion=e}function A(t){this.tryEntries=[{tryLoc:"root"}],t.forEach(P,this),this.reset(!0)}function O(e){if(e||""===e){var n=e[i];if(n)return n.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var r=-1,o=function n(){for(;++r<e.length;)if(a.call(e,r))return n.value=e[r],n.done=!1,n;return n.value=t,n.done=!0,n};return o.next=o}}throw new TypeError(typeof e+" is not iterable")}return b.prototype=w,r(C,"constructor",{value:w,configurable:!0}),r(w,"constructor",{value:b,configurable:!0}),b.displayName=d(w,s,"GeneratorFunction"),e.isGeneratorFunction=function(t){var e="function"==typeof t&&t.constructor;return!!e&&(e===b||"GeneratorFunction"===(e.displayName||e.name))},e.mark=function(t){return Object.setPrototypeOf?Object.setPrototypeOf(t,w):(t.__proto__=w,d(t,s,"GeneratorFunction")),t.prototype=Object.create(C),t},e.awrap=function(t){return{__await:t}},_(S.prototype),d(S.prototype,c,(function(){return this})),e.AsyncIterator=S,e.async=function(t,n,a,r,o){void 0===o&&(o=Promise);var i=new S(l(t,n,a,r),o);return e.isGeneratorFunction(n)?i:i.next().then((function(t){return t.done?t.value:i.next()}))},_(C),d(C,s,"Generator"),d(C,i,(function(){return this})),d(C,"toString",(function(){return"[object Generator]"})),e.keys=function(t){var e=Object(t),n=[];for(var a in e)n.push(a);return n.reverse(),function t(){for(;n.length;){var a=n.pop();if(a in e)return t.value=a,t.done=!1,t}return t.done=!0,t}},e.values=O,A.prototype={constructor:A,reset:function(e){if(this.prev=0,this.next=0,this.sent=this._sent=t,this.done=!1,this.delegate=null,this.method="next",this.arg=t,this.tryEntries.forEach(L),!e)for(var n in this)"t"===n.charAt(0)&&a.call(this,n)&&!isNaN(+n.slice(1))&&(this[n]=t)},stop:function(){this.done=!0;var t=this.tryEntries[0].completion;if("throw"===t.type)throw t.arg;return this.rval},dispatchException:function(e){if(this.done)throw e;var n=this;function r(a,r){return c.type="throw",c.arg=e,n.next=a,r&&(n.method="next",n.arg=t),!!r}for(var o=this.tryEntries.length-1;o>=0;--o){var i=this.tryEntries[o],c=i.completion;if("root"===i.tryLoc)return r("end");if(i.tryLoc<=this.prev){var s=a.call(i,"catchLoc"),d=a.call(i,"finallyLoc");if(s&&d){if(this.prev<i.catchLoc)return r(i.catchLoc,!0);if(this.prev<i.finallyLoc)return r(i.finallyLoc)}else if(s){if(this.prev<i.catchLoc)return r(i.catchLoc,!0)}else{if(!d)throw Error("try statement without catch or finally");if(this.prev<i.finallyLoc)return r(i.finallyLoc)}}}},abrupt:function(t,e){for(var n=this.tryEntries.length-1;n>=0;--n){var r=this.tryEntries[n];if(r.tryLoc<=this.prev&&a.call(r,"finallyLoc")&&this.prev<r.finallyLoc){var o=r;break}}o&&("break"===t||"continue"===t)&&o.tryLoc<=e&&e<=o.finallyLoc&&(o=null);var i=o?o.completion:{};return i.type=t,i.arg=e,o?(this.method="next",this.next=o.finallyLoc,v):this.complete(i)},complete:function(t,e){if("throw"===t.type)throw t.arg;return"break"===t.type||"continue"===t.type?this.next=t.arg:"return"===t.type?(this.rval=this.arg=t.arg,this.method="return",this.next="end"):"normal"===t.type&&e&&(this.next=e),v},finish:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.finallyLoc===t)return this.complete(n.completion,n.afterLoc),L(n),v}},catch:function(t){for(var e=this.tryEntries.length-1;e>=0;--e){var n=this.tryEntries[e];if(n.tryLoc===t){var a=n.completion;if("throw"===a.type){var r=a.arg;L(n)}return r}}throw Error("illegal catch attempt")},delegateYield:function(e,n,a){return this.delegate={iterator:O(e),resultName:n,nextLoc:a},"next"===this.method&&(this.arg=t),v}},e}function m(t,e){return m=Object.setPrototypeOf?Object.setPrototypeOf.bind():function(t,e){return t.__proto__=e,t},m(t,e)}function v(t,e){return function(t){if(Array.isArray(t))return t}(t)||function(t,e){var n=null==t?null:"undefined"!=typeof Symbol&&t[Symbol.iterator]||t["@@iterator"];if(null!=n){var a,r,o,i,c=[],s=!0,d=!1;try{if(o=(n=n.call(t)).next,0===e){if(Object(n)!==n)return;s=!1}else for(;!(s=(a=o.call(n)).done)&&(c.push(a.value),c.length!==e);s=!0);}catch(t){d=!0,r=t}finally{try{if(!s&&null!=n.return&&(i=n.return(),Object(i)!==i))return}finally{if(d)throw r}}return c}}(t,e)||w(t,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}()}function y(t){var e=function(t,e){if("object"!=typeof t||!t)return t;var n=t[Symbol.toPrimitive];if(void 0!==n){var a=n.call(t,e||"default");if("object"!=typeof a)return a;throw new TypeError("@@toPrimitive must return a primitive value.")}return("string"===e?String:Number)(t)}(t,"string");return"symbol"==typeof e?e:e+""}function b(t){return b="function"==typeof Symbol&&"symbol"==typeof Symbol.iterator?function(t){return typeof t}:function(t){return t&&"function"==typeof Symbol&&t.constructor===Symbol&&t!==Symbol.prototype?"symbol":typeof t},b(t)}function w(t,n){if(t){if("string"==typeof t)return e(t,n);var a={}.toString.call(t).slice(8,-1);return"Object"===a&&t.constructor&&(a=t.constructor.name),"Map"===a||"Set"===a?Array.from(t):"Arguments"===a||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(a)?e(t,n):void 0}}function x(t){var e="function"==typeof Map?new Map:void 0;return x=function(t){if(null===t||!function(t){try{return-1!==Function.toString.call(t).indexOf("[native code]")}catch(e){return"function"==typeof t}}(t))return t;if("function"!=typeof t)throw new TypeError("Super expression must either be null or a function");if(void 0!==e){if(e.has(t))return e.get(t);e.set(t,n)}function n(){return function(t,e,n){if(p())return Reflect.construct.apply(null,arguments);var a=[null];a.push.apply(a,e);var r=new(t.bind.apply(t,a));return n&&m(r,n.prototype),r}(t,arguments,l(this).constructor)}return n.prototype=Object.create(t.prototype,{constructor:{value:n,enumerable:!1,writable:!0,configurable:!0}}),m(n,t)},x(t)}var z=function(){return c((function t(){o(this,t),this.isEnabled=!0,this.logLevels={error:!0,warn:!0,info:!0,log:!0,highlight:!0}}),[{key:"enable",value:function(){this.isEnabled=!0}},{key:"disable",value:function(){this.isEnabled=!1}},{key:"setLogLevel",value:function(t,e){this.logLevels.hasOwnProperty(t)&&(this.logLevels[t]=e)}},{key:"log",value:function(){var t;this.isEnabled&&this.logLevels.log&&(t=console).log.apply(t,arguments)}},{key:"error",value:function(){var t;this.isEnabled&&this.logLevels.error&&(t=console).error.apply(t,arguments)}},{key:"warn",value:function(){var t;this.isEnabled&&this.logLevels.warn&&(t=console).warn.apply(t,arguments)}},{key:"info",value:function(){var t;this.isEnabled&&this.logLevels.info&&(t=console).info.apply(t,arguments)}},{key:"highlight",value:function(){if(this.isEnabled&&this.logLevels.highlight){for(var t=arguments.length,e=new Array(t),n=0;n<t;n++)e[n]=arguments[n];var a=e.join(" ");console.log("%c"+a,"font-family:Rubik; font-size: 14px; color: #00008B; padding: 2px 5px")}}}])}(),k=new z;"undefined"!=typeof window&&(window.logger=k);var C=function(){return c((function t(){o(this,t)}),[{key:"fetchCart",value:(p=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("fetchCart method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(){return p.apply(this,arguments)})},{key:"addToCart",value:(u=a(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("addToCart method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t){return u.apply(this,arguments)})},{key:"removeFromCart",value:(l=a(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("removeFromCart method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t){return l.apply(this,arguments)})},{key:"fetchProduct",value:(d=a(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("fetchProduct method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t){return d.apply(this,arguments)})},{key:"fetchCampaigns",value:(s=a(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("fetchCampaigns method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t){return s.apply(this,arguments)})},{key:"getCampaignData",value:(i=a(f().mark((function t(e,n,a){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("getCampaignData method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t,e,n){return i.apply(this,arguments)})},{key:"sendClickData",value:function(){var t=a(f().mark((function t(e,n,a,r,o){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("sendClickData method must be implemented");case 1:case"end":return t.stop()}}),t)})));return function(e,n,a,r,o){return t.apply(this,arguments)}}()},{key:"sendConversionData",value:(r=a(f().mark((function t(e,n){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("sendConversionData method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t,e){return r.apply(this,arguments)})},{key:"fetchSettings",value:function(){var t=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("fetchSettings method must be implemented");case 1:case"end":return t.stop()}}),t)})));return function(){return t.apply(this,arguments)}}()},{key:"logApiCall",value:function(t,e){k.log("API Call: ".concat(t),e)}},{key:"getLanguage",value:function(){throw new Error("Method 'getLanguage' must be implemented.")}},{key:"getStoreId",value:function(){throw new Error("getStoreId method must be implemented")}},{key:"fetchProductVariants",value:(n=a(f().mark((function t(e,n,a){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("fetchProductVariants method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(t,e,a){return n.apply(this,arguments)})},{key:"handleOrderPage",value:(e=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("handleOrderPage method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(){return e.apply(this,arguments)})},{key:"addAllProducts",value:(t=a(f().mark((function t(e,n){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("addAllProducts method must be implemented");case 1:case"end":return t.stop()}}),t)}))),function(e,n){return t.apply(this,arguments)})}]);var t,e,n,r,i,s,d,l,u,p}(),_="https://backend.ziadah.app/api/v1",S=["en","ar"],E={en:{add:"Add to cart",added_all_to_cart:"All Products have been added successfully",added_to_cart:"Product has been added successfully",add_them_all:"Add them all",add_them_all_campaign:"Add them all",add_to_cart:"Add to cart",all_products_added_to_cart:"All products added to cart successfully",cart_updated:"Cart has been updated",cash_on_delivery:"Free Cash on Delivery",choose:"Choose",close_button:"Close",cod_not_free:"Cash on Delivery charges apply",color:"Color",continue:"Continue shopping",copy_coupon:"Copy",copy_failed:"Failed to copy code",code_copied:'Code "{code}" copied',coupon_code_label:"Coupon Code",coupon_copied:"Coupon {code} copied",coupon_copy:"Coupon copied",coupon_valid:"Valid until",cross_sell_campaign:"Cross-sell",currency_symbol:"SAR",default_currency:"SAR",discount_of:"Discount of",error_adding_product:"Error adding product to cart",error_adding_products_to_cart:"Error adding products to cart",error_product_id_missing:"Error: Product ID is missing",error_replacing_product:"Error replacing product in cart",find:"Find this sets together",freeshipping:"Free Shipping",helpful:"Most of the customers find these items helpful",in_stock:"In stock",items_left:"items left",max_quantity_reached:"Maximum quantity reached",no_campaigns_available:"No campaigns available",no_more_campaigns:"No more campaigns",not_enough_stock:"Not enough stock available",off:"off",offer:"Special Offer for you get",options:"Options",out_of_stock:"Out of stock",product_added_to_cart:"Product has been added to cart successfully",product_not_found:"Product not found",product_replaced:"Product has been replaced in your cart",replace:"Replace",replaced:"Product has been replaced successfully",replaced_all:"All Products have been replaced successfully",replace_campaign:"Replace",replace_them_all:"Replace them all",replace_them_all_campaign:"Replace them all",save:"Save",shipping_not_free:"Shipping charges apply",size:"Size",some_products_failed_to_add:"Some Products failed to add to Cart",some_products_failed_to_replace:"Some Products failed to replace",something_went_wrong:"Something Went Wrong",unlimited_stock:"Unlimited stock",unknown_campaign:"Unknown",upsell_campaign:"Upsell",weight:"Weight"},ar:{add:"إضافة للسلة",added_all_to_cart:"تمت إضافة المنتجات بنجاح",added_to_cart:"تمت إضافة المنتج بنجاح",add_them_all:"أضف الكل",add_them_all_campaign:"حملة إضافة الكل",add_to_cart:"أضف إلى السلة",all_products_added_to_cart:"تمت إضافة المنتجات بنجاح",cart_updated:"تم تحديث السلة",cash_on_delivery:"دفع عند الاستلام مجاني",choose:"اختيار",close_button:"إغلاق",cod_not_free:"تطبق رسوم الدفع عند الاستلام",color:"اللون",continue:"أكمل التسوق",copy_coupon:"نسخ الكوبون",copy_failed:"فشل نسخ الكود",code_copied:'تم نسخ الكود "{code}"',coupon_code_label:"كود القسيمة",coupon_copied:"تم نسخ الكوبون {code}",coupon_copy:"تم نسخ القسيمة",coupon_valid:"صالح حتى",cross_sell_campaign:"حملة البيع المتقاطع",currency_symbol:"ر.س",default_currency:"ر.س",discount_of:"خصم بقيمة",error_adding_product:"فشل إضافة المنتج إلى سلة التسوق",error_adding_products_to_cart:"فشل إضافة المنتجات إلى السلة",error_product_id_missing:"فشل: معرف المنتج مفقود",error_replacing_product:"فشل استبدال المنتج في سلة التسوق",find:"ابحث عن هذه المجموعات معًا",freeshipping:"شحن مجاني",helpful:"يجد معظم العملاء هذه العناصر مفيدة",in_stock:"متوفر في المخزون",items_left:"قطع متبقية",max_quantity_reached:"تم الوصول إلى الحد الأقصى للكمية",no_campaigns_available:"لا توجد حملات متاحة",no_more_campaigns:"لا توجد حملات أخرى",not_enough_stock:"لا يوجد مخزون كافٍ",off:"خصم",offer:"عرض خاص لك تحصل على",options:"الخيارات",out_of_stock:"نفذت الكمية",product_added_to_cart:"تم إضافة المنتج إلى سلة التسوق",product_not_found:"لم يتم العثور على المنتج",product_replaced:"تم إستبدال المنتج في سلة التسوق",replace:"إستبدال",replaced:"تم إستبدال المنتج بنجاح",replaced_all:"تم استبدال المنتجات بنجاح",replace_campaign:"استبدال",replace_all_to_cart:"إستبدال الكل",replace_them_all:"استبدال الكل",replace_them_all_campaign:"حملة استبدال الكل",save:"حفظ",shipping_not_free:"تطبق رسوم الشحن",size:"المقاس",some_products_failed_to_add:"بعض المنتجات لم يتم إضافتها إلى سلة التسوق",some_products_failed_to_replace:"بعض المنتجات لم يتم استبدالها",something_went_wrong:"حدث حطأ اثناء العمليه",unlimited_stock:"مخزون غير محدود",unknown_campaign:"حملة غير معروفة",upsell_campaign:"حملة البيع التصاعدي",weight:"الوزن"}},I=new(function(){return c((function t(e){o(this,t),this.state=e,this.listeners=[]}),[{key:"getState",value:function(){return this.state}},{key:"setState",value:function(t){var e=this;k.log("Setting new state:",t),this.state=g(g({},this.state),t),k.log("State after update:",this.state),this.listeners.forEach((function(t){return t(e.state)}))}},{key:"subscribe",value:function(t){var e=this;return this.listeners.push(t),function(){e.listeners=e.listeners.filter((function(e){return e!==t}))}}}])}())({campaigns:[],activePopup:null,cart:[],language:document.documentElement.lang||"en",currentCampaignID:"",lastEventID:"",lastEventName:"",lastEventData:{},lowerCampaign:{},isRestarted:!1,killThePopup:!1,allAddedSuccessfully:!0,replacableProduct:[],productAdded:!1,settings:{},popupType:"modal",pluginActive:!1,campaignActive:!1,popupFactory:null}),P=function(){return I.getState()},L=function(t){I.setState(t),k.log("State updated:",I.getState())};function A(){return P().language||"en"}function O(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n=P(),a=S.includes(n.language)?n.language:"en",r=E[a][t]||t;return Object.entries(e).forEach((function(t){var e=v(t,2),n=e[0],a=e[1];r=r.replace(new RegExp("{{\\s*".concat(n,"\\s*}}"),"g"),a)})),r}var D=[],T=null;function N(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];k.log("Notification: ".concat(e?"Error: ":"").concat(t));var n=function(){if(!T){T=document.createElement("div");var t="rtl"===document.documentElement.dir;T.style.cssText="\n position: fixed;\n top: 20px;\n ".concat(t?"right":"left",": 20px;\n z-index: 9999;\n "),document.body.appendChild(T)}return T}(),a=document.createElement("div");a.textContent=t,a.style.cssText="\n padding: 10px 20px;\n margin-bottom: 10px;\n background-color: ".concat(e?"#ff4444":"#00a86b",";\n color: #ffffff;\n border-radius: 5px;\n box-shadow: 0 2px 10px rgba(0,0,0,0.2);\n font-family: Arial, sans-serif;\n font-size: 16px;\n transition: all 0.5s ease-out;\n max-width: 300px;\n word-wrap: break-word;\n font-family: ").concat(F(),"\n "),n.appendChild(a),D.push(a),setTimeout((function(){a.style.opacity="0",a.style.transform="translateX(100%)",setTimeout((function(){n.removeChild(a);var t=D.indexOf(a);t>-1&&D.splice(t,1),0===D.length&&n.parentNode&&(document.body.removeChild(n),T=null)}),500)}),3e3)}function R(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"";k.error("[Ziadah Plugin Error]".concat(e?" (".concat(e,")"):"",": "),t)}function F(){try{var t=window.getComputedStyle(document.body).getPropertyValue("font-family");if(k.log("Body font family:",t),t&&"none"!==t)return t}catch(t){k.warn("Error detecting store font:",t)}return"'Rubik', sans-serif"}var M=3e5,j=new Map;function U(t){var e=arguments.length>1&&void 0!==arguments[1]?arguments[1]:{},n="ziadah_".concat(t).concat(JSON.stringify(e)),a=(new Date).getTime();if(j.has(n)){var r=j.get(n);if(a-r.timestamp<M)return Promise.resolve(r.data)}var o=localStorage.getItem(n);if(o){var i=JSON.parse(o);if(a-i.timestamp<M)return j.set(n,i),Promise.resolve(i.data)}return fetch(t,e).then((function(t){return t.json()})).then((function(t){var e={timestamp:a,data:t};return j.set(n,e),localStorage.setItem(n,JSON.stringify(e)),t}))}function B(){if(window.__INITIAL_STATE__&&window.__INITIAL_STATE__.session&&window.__INITIAL_STATE__.session.currency){var t,e=window.__INITIAL_STATE__.session.currency,n=document.documentElement.lang||"en";return{code:e.code,symbol:"en"===n?e.code:e.symbol,countryCode:(null===(t=e.country)||void 0===t?void 0:t.country_code)||null}}return null}var q={mainColor:"#4A4A4A",subColor:"#787878",backgroundColor:"#F0F0F0",textColor:"#333333",headerTextColor:"#4A4A4A",buttonColor:"#4A4A4A",buttonTextColor:"#FFFFFF",borderColor:"#CCCCCC",hoverColor:"#333333",overlayColor:"rgba(0, 0, 0, 0.5)",shadowColor:"rgba(0, 0, 0, 0.1)",activeColor:"#333333",disabledColor:"#AAAAAA",lightBackgroundColor:"#E6E6E6",lightBackgroundColorHover:"#D9D9D9",darkBackgroundColor:"#CCCCCC",darkBackgroundColorHover:"#BFBFBF",focusShadowColor:"rgba(74, 74, 74, 0.25)",iconCheckColor:"#4A4A4A",couponCopiedColor:"#2E8B57",modalRadius:"0px",buttonRadius:"0px",productBorderRadius:"0px",couponBorderRadius:"0px",imageBorderRadius:"0px"},H=g({enabled:!0,display_type:"popup",trigger_type:"exit_intent",delay:5e3,frequency:"once_per_session",modalRadius:"8px",modalBackground:"#ffffff",fontFamily:"".concat(F(),", 'Rubik', sans-serif"),fontSize:"16px",buttonRadius:"4px",animationDuration:"0.3s",maxWidth:"600px",fontWeight:"normal",buttonFontSize:"14px",buttonFontWeight:"500",buttonPadding:"10px 20px",buttonBorderRadius:"4px",productBorderRadius:"8px",couponBorderRadius:"4px",imageBorderRadius:"8px",attributesFontSize:"14px",customCSS:"",userCSS:""},q),V={STORE_EVENTS:"".concat(_,"/zid/store-events"),CAMPAIGN:"".concat(_,"/zid/store-events/campaign"),CAMPAIGN_CLICKS:"".concat(_,"/zid/store-front/campaign/clicks"),CAMPAIGN_CONVERSIONS:"".concat(_,"/zid/store-front/campaign/conversions"),PRODUCT_VARIANT:"".concat(_,"/zid/store-front/variant"),PLUGIN_SETTINGS:"".concat(_,"/zid/store-front/plugin-settings")},J=function(t){function e(){var t;if(o(this,e),t=r(this,e),!window.zid)throw console.error("Zid store object not found. The plugin may not function correctly."),new Error("Zid store object is required.");if(t.zid=window.zid,!window.store_uuid)throw k.error("store_uuid is not defined. Please set window.store_uuid."),new Error("store_uuid is required.");return t.storeId=window.store_uuid,t.language=document.documentElement.lang||"en",t.settingsInitialized=!1,t.cachedSettings=null,t.cachedLanguage=null,t.cacheDuration=144e5,t.updateInterval=144e5,t.lastUpdateTime=0,t.allCampaignsCacheKey="all_campaigns_".concat(t.storeId,"_v").concat(e.CACHE_VERSION),t.isUpdating=!1,t.updateQueue=[],t.startPeriodicUpdates(),t._initializationPromise=null,t._campaignsLogged=!1,a(f().mark((function e(){return f().wrap((function(e){for(;;)switch(e.prev=e.next){case 0:return e.next=2,t.initializeCampaigns();case 2:case"end":return e.stop()}}),e)})))(),t.campaignFetchPromises=new Map,t.campaignCache=new Map,t.cacheDuration=3e5,t}return u(e,t),c(e,[{key:"initializeCampaigns",value:(S=a(f().mark((function t(){var e=this;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._initializationPromise){t.next=2;break}return t.abrupt("return",this._initializationPromise);case 2:return this._initializationPromise=a(f().mark((function t(){var n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=localStorage.getItem(e.allCampaignsCacheKey),a=localStorage.getItem("".concat(e.allCampaignsCacheKey,"_timestamp")),!n||!a){t.next=9;break}if(!(Date.now()-parseInt(a)<e.cacheDuration)){t.next=9;break}return k.log("Using cached campaigns on initialization"),e.logCachedCampaigns(),t.abrupt("return");case 9:return k.log("Fetching all campaigns on initialization"),t.next=12,e.fetchAllCampaigns();case 12:e.logCachedCampaigns(),t.next=18;break;case 15:t.prev=15,t.t0=t.catch(0),k.error("Error in initializeCampaigns:",t.t0);case 18:case"end":return t.stop()}}),t,null,[[0,15]])})))(),t.abrupt("return",this._initializationPromise);case 4:case"end":return t.stop()}}),t,this)}))),function(){return S.apply(this,arguments)})},{key:"isCacheExpired",value:function(t){return Date.now()-parseInt(t)>=this.cacheDuration}},{key:"getLanguage",value:function(){if(this.cachedLanguage)return this.cachedLanguage;var t=P();return this.cachedLanguage=t.language||this.language,this.cachedLanguage}},{key:"setLanguage",value:function(t){this.language=t,this.cachedLanguage=null}},{key:"getStoreId",value:function(){return this.storeId}},{key:"fetchCart",value:(_=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.zid.store.cart.fetch();case 3:return e=t.sent,t.abrupt("return",e.data.cart);case 7:throw t.prev=7,t.t0=t.catch(0),k.error("Error fetching cart:",t.t0),t.t0;case 11:case"end":return t.stop()}}),t,this,[[0,7]])}))),function(){return _.apply(this,arguments)})},{key:"fetchAllCampaigns",value:(C=a(f().mark((function t(){var e,n,a,r,o,i,c,s,d,l,u=this;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=Date.now(),!((n=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_timestamp")))&&e-parseInt(n)<this.updateInterval)){t.next=5;break}return k.log("Skipping fetch, campaigns are up to date"),t.abrupt("return");case 5:k.log("Fetching all campaigns"),a=[1,2,3,4,5,6],r=new Map,o=f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:e=c[i],r.has(e)||r.set(e,u.fetchFreshCampaigns(e).catch((function(t){return k.error("Error fetching campaign for event ID ".concat(e,":"),t),null})));case 2:case"end":return t.stop()}}),t)})),i=0,c=a;case 10:if(!(i<c.length)){t.next=15;break}return t.delegateYield(o(),"t0",12);case 12:i++,t.next=10;break;case 15:return t.prev=15,t.next=18,Promise.all(r.values());case 18:return s=t.sent,d=Object.fromEntries(Array.from(r.keys()).map((function(t,e){return[t,s[e]]}))),k.log("All campaigns fetched:",d),Object.values(d).every((function(t){return!t||0===t.length}))&&k.warn("No campaigns data received for any event"),this.storeAllCampaigns(d),t.abrupt("return",d);case 26:return t.prev=26,t.t1=t.catch(15),k.error("Error in fetchAllCampaigns:",t.t1),l=localStorage.getItem(this.allCampaignsCacheKey),t.abrupt("return",l?JSON.parse(l):{});case 31:case"end":return t.stop()}}),t,this,[[15,26]])}))),function(){return C.apply(this,arguments)})},{key:"addToCart",value:(z=a(f().mark((function t(e){var n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.zid.store.cart.addProduct(e);case 3:if((n=t.sent)&&n.data){t.next=6;break}throw new Error("Invalid response from addToCart");case 6:return t.abrupt("return",n.data);case 9:throw t.prev=9,t.t0=t.catch(0),k.error("Error adding to cart:",t.t0),t.t0;case 13:case"end":return t.stop()}}),t,this,[[0,9]])}))),function(t){return z.apply(this,arguments)})},{key:"removeFromCart",value:(x=a(f().mark((function t(e){var n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.zid.store.cart.removeProduct(e);case 3:if((n=t.sent)&&n.data){t.next=6;break}throw new Error("Invalid response from removeFromCart");case 6:return t.abrupt("return",n.data);case 9:throw t.prev=9,t.t0=t.catch(0),k.error("Error removing from cart:",t.t0),t.t0;case 13:case"end":return t.stop()}}),t,this,[[0,9]])}))),function(t){return x.apply(this,arguments)})},{key:"silentlyUpdateAllCampaigns",value:(w=a(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Starting silent update of all campaigns"),!((e=Date.now())-this.lastUpdateTime>=this.updateInterval)){t.next=22;break}return t.prev=3,t.next=6,this.fetchAllCampaigns();case 6:return n=t.sent,this.storeAllCampaigns(n),this.lastUpdateTime=e,k.log("Silent update of all campaigns completed successfully"),this.logCachedCampaigns(),"function"==typeof this.onCampaignsUpdated&&this.onCampaignsUpdated(n),window.dispatchEvent(new CustomEvent("ziadahCampaignsUpdated",{detail:n})),t.abrupt("return",!0);case 16:return t.prev=16,t.t0=t.catch(3),k.error("Error updating campaigns in the background:",t.t0),t.abrupt("return",!1);case 20:t.next=24;break;case 22:return k.log("Cache is still valid, skipping update"),t.abrupt("return",!0);case 24:case"end":return t.stop()}}),t,this,[[3,16]])}))),function(){return w.apply(this,arguments)})},{key:"setCampaignsUpdatedCallback",value:function(t){this.onCampaignsUpdated=t}},{key:"startPeriodicUpdates",value:function(){var t=this,e=this.updateInterval/36e5,n=e>=1?"".concat(e.toFixed(2)," hours"):"".concat(this.updateInterval/1e3," seconds");k.log("Setting up periodic updates with interval of ".concat(n)),this.periodicUpdateTimer&&clearInterval(this.periodicUpdateTimer),this.periodicUpdateTimer=setInterval((function(){t.fetchAllCampaigns()}),this.updateInterval)}},{key:"changeUpdateInterval",value:function(t){"number"==typeof t&&t>0?(this.updateInterval=t,this.startPeriodicUpdates(),k.log("Update interval changed to ".concat(this.updateInterval,"ms"))):k.error("Invalid update interval provided")}},{key:"fetchCampaigns",value:(b=a(f().mark((function t(n){var a,r,o,i;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Fetching campaigns for event ID: ".concat(n)),a=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_v").concat(e.CACHE_VERSION)),r=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_timestamp_v").concat(e.CACHE_VERSION)),!a||!r){t.next=8;break}if(this.isCacheExpired(r)){t.next=8;break}return k.log("Using cached campaign data for event ".concat(n)),o=JSON.parse(a),t.abrupt("return",{data:o[n],isCached:!0});case 8:return k.log("Cache expired or not found, fetching all campaigns"),t.next=11,this.fetchAllCampaigns();case 11:return i=t.sent,t.abrupt("return",{data:i[n],isCached:!1});case 13:case"end":return t.stop()}}),t,this)}))),function(t){return b.apply(this,arguments)})},{key:"checkAndUpdateCampaigns",value:(y=a(f().mark((function t(){var n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.isUpdating){t.next=3;break}return this.updateQueue.push(Date.now()),t.abrupt("return");case 3:if(this.isUpdating=!0,t.prev=4,(n=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_timestamp_v").concat(e.CACHE_VERSION)))&&!this.isCacheExpired(n)){t.next=14;break}return k.log("Cache expired, starting silent update of all campaigns"),t.next=10,this.silentlyUpdateAllCampaigns();case 10:a=t.sent,k.log("Silent update ".concat(a?"completed successfully":"failed")),t.next=15;break;case 14:k.log("Cache is still valid, no update needed");case 15:return t.prev=15,this.isUpdating=!1,this.updateQueue.length>0&&(this.updateQueue.shift(),this.checkAndUpdateCampaigns()),t.finish(15);case 19:case"end":return t.stop()}}),t,this,[[4,,15,19]])}))),function(){return y.apply(this,arguments)})},{key:"fetchFreshCampaigns",value:(m=a(f().mark((function t(e){var n,r,o,i=this;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.campaignFetchPromises||(this.campaignFetchPromises=new Map),this.campaignCache||(this.campaignCache=new Map),!this.campaignFetchPromises.has(e)){t.next=5;break}return k.log("Fetch already in progress for event ID: ".concat(e)),t.abrupt("return",this.campaignFetchPromises.get(e));case 5:if(!((n=this.campaignCache.get(e))&&Date.now()-n.timestamp<this.cacheDuration)){t.next=9;break}return k.log("Using cached data for event ID: ".concat(e)),t.abrupt("return",n.data);case 9:return r="".concat(V.STORE_EVENTS,"?store-id=").concat(this.storeId,"&event-id=").concat(e),o=a(f().mark((function t(){var n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,k.log("Fetching fresh campaign data for event ID: ".concat(e)),t.next=4,fetch(r);case 4:if((n=t.sent).ok){t.next=7;break}throw new Error("HTTP error! status: ".concat(n.status));case 7:return t.next=9,n.json();case 9:return a=t.sent,k.log("Received data for event ID ".concat(e,":"),a),i.campaignCache.set(e,{data:a,timestamp:Date.now()}),t.abrupt("return",a);case 15:throw t.prev=15,t.t0=t.catch(0),k.error("Error fetching campaigns for event ID ".concat(e,":"),t.t0),t.t0;case 19:return t.prev=19,i.campaignFetchPromises.delete(e),t.finish(19);case 22:case"end":return t.stop()}}),t,null,[[0,15,19,22]])})))(),this.campaignFetchPromises.set(e,o),t.abrupt("return",o);case 13:case"end":return t.stop()}}),t,this)}))),function(t){return m.apply(this,arguments)})},{key:"getCampaignData",value:(h=a(f().mark((function t(e,n,a){var r,o,i,c,s,d,l;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r="campaign_".concat(this.storeId,"_").concat(e,"_").concat(n),o=localStorage.getItem(r),i=localStorage.getItem("".concat(r,"_timestamp")),!o||!i){t.next=8;break}if(!(Date.now()-parseInt(i)<this.cacheDuration)){t.next=8;break}return k.log("Using cached campaign data for campaign ".concat(e)),t.abrupt("return",{data:JSON.parse(o),isCached:!0});case 8:return t.prev=8,c=a.map((function(t){return{id:t.id,child_ids:t.attributes.map((function(t){return t.presets.map((function(t){return t.id}))})).flat()}})),s={campaign_id:e,event_id:n,store_id:this.storeId,action_product_ids:c,currency:this.getCurrency()},k.log("Sending request to getCampaignData with body:",s),t.next=14,fetch(V.CAMPAIGN,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(s)});case 14:return d=t.sent,t.next=17,d.json();case 17:if(l=t.sent,d.ok){t.next=20;break}throw new Error("Server error ".concat(d.status,": ").concat(JSON.stringify(l)));case 20:return localStorage.setItem(r,JSON.stringify(l)),localStorage.setItem("".concat(r,"_timestamp"),Date.now().toString()),t.abrupt("return",{data:l,isCached:!1});case 25:return t.prev=25,t.t0=t.catch(8),k.error("Error getting campaign data:",t.t0),t.abrupt("return",{is_success:!1,message:"Failed to fetch campaign data",data:null,isCached:!1});case 29:case"end":return t.stop()}}),t,this,[[8,25]])}))),function(t,e,n){return h.apply(this,arguments)})},{key:"sendClickData",value:function(){var t=a(f().mark((function t(e,n,a,r,o){var i,c,s,d;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,i={store_uuid:e,campaign_id:n,click_type:Number(a),quantity:o},null!==r&&(i.product_uuid=r),k.log("ZidAdapter: Click data payload",i),t.next=6,fetch(V.CAMPAIGN_CLICKS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify(i)});case 6:if((c=t.sent).ok){t.next=13;break}return t.next=10,c.text();case 10:throw s=t.sent,k.error("ZidAdapter: Click data error response",{status:c.status,statusText:c.statusText,errorText:s}),new Error("Server error ".concat(c.status,": ").concat(s));case 13:return t.next=15,c.json();case 15:return d=t.sent,k.log("ZidAdapter: Click data sent successfully",d),t.abrupt("return",{success:!0,data:d});case 20:return t.prev=20,t.t0=t.catch(0),k.log("ZidAdapter: Error sending click data:",t.t0),t.abrupt("return",{success:!1,error:t.t0.message});case 24:case"end":return t.stop()}}),t,null,[[0,20]])})));return function(e,n,a,r,o){return t.apply(this,arguments)}}()},{key:"sendConversionData",value:(p=a(f().mark((function t(e,n){var a,r;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return k.log("Sending conversion data:",{storeUUID:e,products:n}),t.prev=1,t.next=4,fetch(V.CAMPAIGN_CONVERSIONS,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({store_uuid:e,products:n.map((function(t){return{uuid:t.uuid,campaign_id:t.campaign_id,quantity:t.quantity,gross_price:t.gross_price}}))})});case 4:if((a=t.sent).ok){t.next=10;break}return t.next=8,a.text();case 8:throw r=t.sent,new Error("Server error ".concat(a.status,": ").concat(r));case 10:return t.next=12,a.json();case 12:return t.abrupt("return",t.sent);case 15:throw t.prev=15,t.t0=t.catch(1),k.error("Error sending conversion data:",t.t0),t.t0;case 19:case"end":return t.stop()}}),t,null,[[1,15]])}))),function(t,e){return p.apply(this,arguments)})},{key:"fetchSettings",value:function(){var t=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.settingsInitialized){t.next=2;break}return t.abrupt("return",this.cachedSettings);case 2:return t.prev=2,t.next=5,U(V.PLUGIN_SETTINGS);case 5:return e=t.sent,this.cachedSettings=e,this.settingsInitialized=!0,t.abrupt("return",this.cachedSettings);case 11:return t.prev=11,t.t0=t.catch(2),k.warn("Settings endpoint not available, using fallback settings"),this.cachedSettings=this.getDefaultSettings(),this.settingsInitialized=!0,t.abrupt("return",this.cachedSettings);case 17:case"end":return t.stop()}}),t,this,[[2,11]])})));return function(){return t.apply(this,arguments)}}()},{key:"getDefaultSettings",value:function(){return H}},{key:"fetchProductVariants",value:(l=a(f().mark((function t(e,n,a){var r,o;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,k.log("Fetching variants for product:",e),k.log("Selected attributes:",n),k.log("Language:",a),t.next=6,fetch(V.PRODUCT_VARIANT,{method:"POST",headers:{"Content-Type":"application/json"},body:JSON.stringify({product_id:e,lang:a,names:n})});case 6:if((r=t.sent).ok){t.next=12;break}return t.next=10,r.text();case 10:throw o=t.sent,new Error("Server error ".concat(r.status,": ").concat(o));case 12:return t.next=14,r.json();case 14:return t.abrupt("return",t.sent);case 17:throw t.prev=17,t.t0=t.catch(0),k.error("Error fetching product variants:",t.t0),t.t0;case 21:case"end":return t.stop()}}),t,null,[[0,17]])}))),function(t,e,n){return l.apply(this,arguments)})},{key:"handleOrderPage",value:(d=a(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.fetchCart();case 3:if("completed"!==(e=t.sent).status){t.next=8;break}return n=e.items.map((function(t){return{product_uuid:t.product_id,quantity:t.quantity,campaign_id:t.campaign_id}})),t.next=8,this.sendConversionData(this.storeId,n);case 8:t.next=14;break;case 10:throw t.prev=10,t.t0=t.catch(0),k.error("Error handling order page:",t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[0,10]])}))),function(){return d.apply(this,arguments)})},{key:"applySettings",value:function(t){return k.log("Applying settings to ZidAdapter:",t),this.settings=t,this.settings}},{key:"getCurrency",value:function(){var t=B();return t?t.code:"SAR"}},{key:"getCurrencySymbol",value:function(){var t=B();return t?t.symbol:"SR"}},{key:"getCountryCode",value:function(){var t=B();return t?t.countryCode:null}},{key:"changeRefreshInterval",value:function(t){k.log("Changing refresh interval to ".concat(t,"ms")),this.startPeriodicUpdates(t)}},{key:"logCachedCampaigns",value:function(){if(this._campaignsLogged)k.log("Campaigns already logged, skipping.");else{k.log("Logging cached Ziadah campaigns");var t=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_v").concat(e.CACHE_VERSION));if(t)try{var n=JSON.parse(t);Object.entries(n).forEach((function(t){var e=v(t,2),n=e[0],a=e[1];k.log("Event ID ".concat(n,":")),k.log(a)}))}catch(t){k.error("Error parsing cached campaigns:",t)}else k.log("No cached campaigns found");this._campaignsLogged=!0}}},{key:"storeAllCampaigns",value:function(t){k.log("Storing campaigns:",t),localStorage.setItem("".concat(this.allCampaignsCacheKey,"_v").concat(e.CACHE_VERSION),JSON.stringify(t)),localStorage.setItem("".concat(this.allCampaignsCacheKey,"_timestamp_v").concat(e.CACHE_VERSION),Date.now().toString()),k.log("Dispatching ziadahCampaignsUpdated event"),window.dispatchEvent(new CustomEvent("ziadahCampaignsUpdated",{detail:t}))}},{key:"forceRefreshAllCampaigns",value:(s=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return k.log("Force refreshing all campaigns"),t.prev=1,t.next=4,this.fetchAllCampaigns();case 4:return e=t.sent,this.storeAllCampaigns(e),k.log("All campaigns forcefully refreshed: ZidAdapter"),t.abrupt("return",e);case 10:throw t.prev=10,t.t0=t.catch(1),k.error("Error forcefully refreshing campaigns:",t.t0),t.t0;case 14:case"end":return t.stop()}}),t,this,[[1,10]])}))),function(){return s.apply(this,arguments)})},{key:"clearCache",value:function(){k.log("Clearing Ziadah cache"),localStorage.removeItem("".concat(this.allCampaignsCacheKey,"_v").concat(e.CACHE_VERSION)),localStorage.removeItem("".concat(this.allCampaignsCacheKey,"_timestamp_v").concat(e.CACHE_VERSION)),this.cachedSettings=null,this.settingsInitialized=!1}},{key:"replaceProduct",value:(i=a(f().mark((function t(e,n){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.removeFromCart(e);case 3:return t.next=5,this.addToCart(n);case 5:return t.abrupt("return",t.sent);case 8:throw t.prev=8,t.t0=t.catch(0),k.error("Error replacing product:",t.t0),t.t0;case 12:case"end":return t.stop()}}),t,this,[[0,8]])}))),function(t,e){return i.apply(this,arguments)})},{key:"replaceAllProducts",value:(n=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,t.next=3,this.removeAllProducts();case 3:return t.next=5,this.addAllProducts();case 5:return e=t.sent,t.abrupt("return",g({success:!0},e));case 9:return t.prev=9,t.t0=t.catch(0),k.error("Error replacing all products:",t.t0),t.abrupt("return",{success:!1,error:t.t0.message});case 13:case"end":return t.stop()}}),t,this,[[0,9]])}))),function(){return n.apply(this,arguments)})},{key:"getCachedCampaigns",value:function(){var t=localStorage.getItem("".concat(this.allCampaignsCacheKey,"_v").concat(e.CACHE_VERSION));return t?JSON.parse(t):null}}]);var n,i,s,d,l,p,h,m,y,b,w,x,z,C,_,S}(C);d(J,"CACHE_VERSION",2);var Z=null;function K(t){if(Z)return k.log("Returning existing adapter instance"),Z;if(k.log("Creating adapter for platform:",t),"zid"!==t.toLowerCase())throw k.error("Unsupported platform: ".concat(t)),new Error("Unsupported platform in production: ".concat(t));return Z=new J}var G=function(){return c((function t(e,n){if(o(this,t),(this instanceof t?this.constructor:void 0)===t)throw new TypeError("Cannot construct AbstractPopup instances directly");this.shadowRoot=e,this.adapter=n,this.popupElement=null,this.state=P()}),[{key:"create",value:(t=a(f().mark((function t(e,n){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:throw new Error("Method 'create' must be implemented.");case 1:case"end":return t.stop()}}),t)}))),function(e,n){return t.apply(this,arguments)})},{key:"getAdapter",value:function(){return this.adapter}},{key:"getLanguage",value:function(){return P().language||"en"}},{key:"show",value:function(){throw new Error("Method 'show' must be implemented.")}},{key:"hide",value:function(){throw new Error("Method 'hide' must be implemented.")}},{key:"update",value:function(t){throw new Error("Method 'update' must be implemented.")}},{key:"updateContent",value:function(t){throw new Error("Method 'updateContent' must be implemented.")}},{key:"destroy",value:function(){throw new Error("Method 'destroy' must be implemented.")}},{key:"isOpen",value:function(){throw new Error("Method 'isOpen' must be implemented.")}},{key:"getElement",value:function(){throw new Error("Method 'getElement' must be implemented.")}},{key:"handleAddToCart",value:function(t){throw new Error("Method 'handleAddToCart' must be implemented.")}},{key:"handleAddAllToCart",value:function(){throw new Error("Method 'handleAddAllToCart' must be implemented.")}},{key:"handleReplaceProduct",value:function(t,e){throw new Error("Method 'handleReplaceProduct' must be implemented.")}},{key:"handleReplaceAllProducts",value:function(){throw new Error("Method 'handleReplaceAllProducts' must be implemented.")}},{key:"handleCouponCopy",value:function(t){throw new Error("Method 'handleCouponCopy' must be implemented.")}}]);var t}(),W={classNames:{popup:"ziadah-popup",modal:"ziadah-modal",modalContent:"ziadah-modal-content",closeButton:"ziadah-close",productsContainer:"ziadah-products-container",product:"ziadah-product",productImage:"ziadah-product-image",productDetails:"ziadah-product-details",addToCart:"ziadah-add-to-cart",coupon:"zd-coupon",couponHeader:"zd-coupon-header",couponCode:"zd-coupon-code",copyCoupon:"zd-copy-coupon",discountAmount:"zd-discount-amount",couponDetails:"zd-coupon-details",freeShipping:"zd-free-shipping",cashOnDelivery:"zd-cash-on-delivery",couponFooter:"zd-coupon-footer",validUntil:"zd-valid-until",error:"zd-error",variantDropdown:"ziadah-variant-dropdown",dropdownHeader:"ziadah-dropdown-header",dropdownContent:"ziadah-dropdown-content",variantCollapse:"ziadah-variant-collapse",collapseHeader:"ziadah-collapse-header",collapseContent:"ziadah-collapse-content",chevronIcon:"ziadah-chevron-icon",productAttribute:"ziadah-product-attribute",modalFooter:"ziadah-modal-footer",addAllToCart:"ziadah-addAllToCart",addAllButton:"ziadah-add-all-button",continueButton:"ziadah-continue-button",pluginModalContinue:"ziadah-pluginModalContinue",modalVisible:"ziadah-modal-visible",attributeOption:"ziadah-attribute-option"},selectors:{modalContent:".ziadah-modal-content",closeButton:".ziadah-close",productsContainer:".ziadah-products-container",addToCart:".ziadah-add-to-cart",coupon:".ziadah-coupon",copyCoupon:".ziadah-copy-coupon",productAttribute:".ziadah-product-attribute"},dataAttributes:{productId:"data-product-id",attributeName:"data-attribute-name",attributeValue:"data-attribute-value"}};var Y=function(){return c((function t(e,n,a,r){o(this,t),this.shadowRoot=e,this.adapter=n,this.productData=a,this.campaignId=r||(null==a?void 0:a.campaignId)||null,k.log("Product constructor - Processed Campaign ID:",this.campaignId),this.config=W,this.chevronDownIcon='\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-icon">\n <polyline points="6 9 12 15 18 9"></polyline>\n </svg>\n '.trim(),this.chevronUpIcon='\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-icon">\n <polyline points="18 15 12 9 6 15"></polyline>\n </svg>\n '.trim()}),[{key:"create",value:function(t,e,n,a){var r,o,i;this.productData=t,k.log("Product create - Full campaignData:",JSON.stringify(e,null,2)),Number.isInteger(Number(e))&&Number(e)>0?(this.campaignId=Number(e),k.log("Product create - Campaign ID set from campaignData:",this.campaignId)):Number.isInteger(Number(this.productData.campaignId))&&Number(this.productData.campaignId)>0?(this.campaignId=Number(this.productData.campaignId),k.log("Product create - Campaign ID set from productData:",this.campaignId)):(k.warn("Product create - No valid campaign ID found in campaignData or productData"),this.campaignId=null);var c,s=this.adapter.getLanguage(),d=(null===(r=t.name)||void 0===r?void 0:r[s])||(null===(o=t.name)||void 0===o?void 0:o.en)||"";t.isLastProduct,!this.productData.campaignId&&e&&e.id&&(this.productData.campaignId=e.id,k.log("Added campaign ID to productData:",this.productData.campaignId)),k.highlight("Product create - Full campaignData:",JSON.stringify(e,null,2)),k.highlight("Product create - isSingleProduct:",a),c="object"===b(e)&&null!==e?e.id||0:"number"==typeof e?e:0,k.highlight("Product create - Campaign type:",c);var l=this.getButtonText(c,a),u=this.getButtonClass(c,a),p=this.getCampaignTypeText(c,a);k.highlight("Button text: ".concat(l,", Campaign type text: ").concat(p)),this.hasOptions=t.attributes&&t.attributes.some((function(t){return t.presets&&t.presets.length>0})),k.log("Product has options:",this.hasOptions);var h=this.hasOptions?this.generateAttributesHTML(t.attributes):"",g='\n <button class="ziadah-'.concat(u,'" data-product-id="').concat(t.uuid||"",'">\n <span class="ziadah-button-text">').concat(l,'</span>\n <span class="ziadah-spinner" style="display: none;"></span>\n </button>\n '),f='\n <div class="ziadah-product" data-product-id="'.concat(t.uuid||"",'">\n <div class="ziadah-product-image-container">\n <img class="ziadah-product-image" src="').concat((null===(i=t.images[0])||void 0===i?void 0:i.images.small)||"",'" alt="').concat(d,'">\n </div>\n <div class="ziadah-product-details">\n <div class="ziadah-product-info">\n <div class="ziadah-product-name" title="').concat(d,'">').concat(d,'</div>\n <div class="ziadah-product-price">').concat(t.price||""," ").concat(t.currency||"","</div>\n </div>\n ").concat(this.hasOptions?'\n <div class="ziadah-attributes-container">\n <div class="ziadah-attributes-header">\n <span class="ziadah-attributes-title">'.concat(this.adapter.t("options")||"الخيارات",'</span>\n <span class="ziadah-chevron-icon">\n ').concat(this.chevronDownIcon,'\n </span>\n </div>\n <div class="ziadah-attributes-content" style="display: none;">\n ').concat(h,"\n </div>\n </div>\n "):"",'\n <div class="ziadah-product-action-container">\n ').concat(g,'\n <span class="ziadah-campaign-type" style="display: none;"> type is ').concat(p,"</span>\n </div>\n </div>\n </div>\n "),m=document.createElement("div");m.innerHTML=f;var v=m.firstElementChild;return this.setupEventListeners(v),this.hasOptions&&this.updateButtonState(v),v.outerHTML}},{key:"setupEventListeners",value:function(t){var e=this;if(t){var n=t.querySelector(".ziadah-attributes-header");n&&n.addEventListener("click",(function(){k.log("Attributes header clicked"),e.toggleAttributesContent(t)}));var a=t.querySelector(".ziadah-add-to-cart, .ziadah-replace, .ziadah-replace-all, .ziadah-add-all-to-cart");a&&a.addEventListener("click",(function(){var t=a.dataset.productId,n=a.classList.contains("ziadah-replace")||a.classList.contains("ziadah-replace-all");k.log("".concat(n?"Replace":"Add to cart"," clicked for product ID:"),t),e.handleProductAction(t,n)})),t.querySelectorAll(".ziadah-attribute-header").forEach((function(t){t.addEventListener("click",(function(){e.toggleAttributeOptions(t.closest(".ziadah-product-attribute"))}))})),t.querySelectorAll('input[type="radio"]').forEach((function(n){n.addEventListener("change",(function(){e.updateButtonState(t)}))}))}else k.error("Product element not found")}},{key:"toggleAttributesContent",value:function(t){k.log("Toggling attributes content");var e=t.querySelector(".ziadah-attributes-content"),n=t.querySelector(".ziadah-attributes-header .ziadah-chevron-icon"),a=t.querySelector(".ziadah-product-info"),r=t.querySelector(".ziadah-product-image-container");e&&n&&a&&r&&("none"===e.style.display?(e.style.display="block",n.innerHTML=this.chevronUpIcon,a.style.display="none",r.style.display="none"):(e.style.display="none",n.innerHTML=this.chevronDownIcon,a.style.display="block",r.style.display="block"))}},{key:"toggleAttributeOptions",value:function(t){this.shadowRoot.querySelectorAll(".ziadah-product-attribute").forEach((function(e){if(e!==t){var n=e.querySelector(".ziadah-attribute-header"),a=e.querySelector(".ziadah-attribute-options");n&&a&&(n.classList.remove("open"),a.classList.remove("open"))}}));var e=t.querySelector(".ziadah-attribute-header"),n=t.querySelector(".ziadah-attribute-options");e&&n&&(e.classList.toggle("open"),n.classList.toggle("open"),k.log("Toggled:",{headerOpen:e.classList.contains("open"),optionsOpen:n.classList.contains("open")}))}},{key:"lazyLoadAttributes",value:function(t){if(t&&0!==t.length){var e=document.createDocumentFragment(),n=this.adapter.getLanguage();t.forEach((function(t){var a=document.createElement("div");a.className="ziadah-product-attribute",a.innerHTML='\n <div class="ziadah-attribute-header" data-attribute-id="'.concat(t.id,'">\n <span class="ziadah-attribute-name">').concat(t.name[n]||t.name.en||"",'</span>\n <span class="ziadah-chevron-icon">&#9660;</span>\n </div>\n <div class="ziadah-attribute-options" style="display: none;"></div>\n '),e.appendChild(a)})),this.productElement.querySelector(".attributes-content").appendChild(e)}else this.productElement.querySelector(".attributes-content").textContent="No options available"}},{key:"lazyLoadOptions",value:function(t,e){var n=t.querySelector(".attribute-options");if(!(n.children.length>0)){var a=document.createDocumentFragment(),r=this.adapter.getLanguage();e.forEach((function(e){var n=document.createElement("label");n.className="ziadah-attribute-option",n.innerHTML='\n <input type="radio" name="attribute-'.concat(t.dataset.attributeId,'" value="').concat(e.id,'">\n ').concat(e.value[r]||e.value.en||"","\n "),a.appendChild(n)})),n.appendChild(a)}}},{key:"getButtonText",value:function(t,e){return k.highlight("getButtonText - type:",t,"isSingleProduct:",e),1===t?e?this.adapter.t("replace"):this.adapter.t("replace_all_to_cart"):e?this.adapter.t("add_to_cart"):this.adapter.t("add_them_all")}},{key:"getCampaignTypeText",value:function(t,e){switch(k.highlight("getCampaignTypeText - type:",t,"isSingleProduct:",e),t){case 1:return e?this.adapter.t("replace_campaign"):this.adapter.t("replace_them_all_campaign");case 2:return e?this.adapter.t("upsell_campaign"):this.adapter.t("add_them_all_campaign");case 3:return e?this.adapter.t("cross_sell_campaign"):this.adapter.t("add_them_all_campaign");default:return k.warn("Unknown campaign type: ".concat(t)),this.adapter.t("unknown_campaign")}}},{key:"getButtonClass",value:function(t,e){return 1===t?e?"replace":"replace-all":e?"add-to-cart":"add-all-to-cart"}},{key:"getStyles",value:function(){return"\n .ziadah-product {\n border: 1px solid #ddd;\n padding: 15px;\n margin-bottom: 15px;\n border-radius: 5px;\n }\n .ziadah-product-image {\n max-width: 100%;\n height: auto;\n margin-bottom: 10px;\n }\n .ziadah-product-name {\n font-size: 18px;\n font-weight: bold;\n margin-bottom: 10px;\n }\n .ziadah-product-price {\n font-size: 16px;\n margin-bottom: 10px;\n }\n\n .ziadah-add-to-cart {\n background-color: #4CAF50;\n border: none;\n color: white;\n padding: 10px 20px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n cursor: pointer;\n border-radius: 5px;\n }\n .ziadah-product-attributes {\n margin-bottom: 10px;\n }\n .ziadah-attribute-select {\n margin-bottom: 5px;\n }\n\n .ziadah-product-action-container {\n display: flex;\n align-items: center;\n justify-content: space-between;\n margin-top: 10px;\n }\n\n .ziadah-campaign-type {\n font-size: 14px;\n color: #666;\n margin-left: 10px;\n }\n\n .ziadah-replace,\n .ziadah-replace-all {\n background-color: #ff6b6b;\n border: none;\n color: white;\n padding: 10px 20px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n cursor: pointer;\n border-radius: 5px;\n }\n\n .ziadah-add-all-to-cart {\n background-color: #4CAF50;\n border: none;\n color: white;\n padding: 10px 20px;\n text-align: center;\n text-decoration: none;\n display: inline-block;\n font-size: 16px;\n margin: 4px 2px;\n cursor: pointer;\n border-radius: 5px;\n }\n "}},{key:"generateProductContent",value:function(t){var e,n=this.adapter.getLanguage();return'\n <img class="ziadah-product-image" src="'.concat((null===(e=t.images[0])||void 0===e?void 0:e.images.small)||"",'" alt="').concat(t.name[n],'">\n <div class="ziadah-product-name">').concat(t.name[n],'</div>\n <div class="ziadah-product-price">').concat(t.price," ").concat(t.currency,"</div>\n\n ").concat(this.generateAttributesHTML(t.attributes),'\n <button class="ziadah-add-to-cart" data-product-id="').concat(t.uuid,'">').concat(this.adapter.t("add_to_cart"),"</button>\n ")}},{key:"generateAttributesHTML",value:function(t){var e=this,n=this.adapter.getLanguage();return t.filter((function(t){return t.presets&&t.presets.length>0})).map((function(t){return'\n <div class="ziadah-product-attribute">\n <div class="ziadah-attribute-header" data-attribute-id="'.concat(t.id,'">\n <span class="ziadah-attribute-name">').concat(t.name[n]||t.name.en||"",'</span>\n <span class="ziadah-chevron-icon">\n ').concat(e.chevronDownIcon,'\n </span>\n </div>\n <div class="ziadah-attribute-options">\n ').concat(e.generateOptionsHTML(t.presets,t.id,n),"\n </div>\n </div>\n ")})).join("")}},{key:"handleProductAction",value:(t=a(f().mark((function t(e,n){var a,r,o,i,c,s,d,l,u,p;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Handling ".concat(n?"replace":"add to cart"," for product ID:"),e),e){t.next=5;break}return k.error("Product ID is undefined or null"),N(this.adapter.t("error_product_id_missing"),!0),t.abrupt("return");case 5:if(a=this.shadowRoot.querySelector('[data-product-id="'.concat(e,'"]')),r=a.querySelector(".ziadah-button-text"),o=a.querySelector(".ziadah-spinner"),r.style.display="none",o.style.display="inline-block",a.disabled=!0,t.prev=11,i=e,!this.hasOptions){t.next=33;break}if(c=this.getSelectedAttributes(),k.log("Selected attributes:",c),!(c.length>0)){t.next=32;break}return t.prev=17,t.next=20,this.adapter.fetchProductVariants(e,c,this.adapter.getLanguage());case 20:s=t.sent,k.log("Fetched variants result:",s),s.is_success&&s.data&&s.data.length>0?(d=s.data.find((function(t){return c.every((function(e){return t.variant_name.includes(e)}))})))?(i=d.variant_id,k.log("Using exact matching variant ID:",i)):(k.warn("No exact matching variant found, using first variant"),i=s.data[0].variant_id):k.warn("No matching variants found, using original product ID"),t.next=30;break;case 25:return t.prev=25,t.t0=t.catch(17),k.error("Error processing variants:",t.t0),N(this.adapter.t("error_processing_variants"),!0),t.abrupt("return");case 30:t.next=33;break;case 32:k.warn("No attributes selected, using original product ID");case 33:if(!n){t.next=48;break}return t.next=36,this.adapter.fetchCart();case 36:if(!((l=t.sent)&&l.items&&l.items.length>0)){t.next=41;break}return k.log("Removing existing product from cart"),t.next=41,this.adapter.removeFromCart(l.items[0].id);case 41:return k.log("Adding replacement product:",i),t.next=44,this.adapter.addToCart({productId:i,quantity:1});case 44:u=t.sent,k.log("Replace result:",u),t.next=53;break;case 48:return k.log("Adding to cart:",i),t.next=51,this.adapter.addToCart({productId:i,quantity:1});case 51:p=t.sent,k.log("Add to cart result:",p);case 53:this.campaignId?this.adapter.sendClickData(this.adapter.getStoreId(),this.campaignId,n?3:1,e,1):k.warn("Cannot send click data: Campaign ID is missing"),N(n?this.adapter.t("product_replaced"):this.adapter.t("product_added_to_cart")),t.next=61;break;case 57:t.prev=57,t.t1=t.catch(11),k.error("Failed to ".concat(n?"replace":"add"," product to cart: "),t.t1),N(this.adapter.t("error_".concat(n?"replacing":"adding","_product")),!0);case 61:return t.prev=61,r.style.display="inline-block",o.style.display="none",a.disabled=!1,t.finish(61);case 66:case"end":return t.stop()}}),t,this,[[11,57,61,66],[17,25]])}))),function(e,n){return t.apply(this,arguments)})},{key:"getSelectedAttributes",value:function(){var t=this.shadowRoot.querySelectorAll(".ziadah-product-attribute");return Array.from(t).map((function(t){var e=t.querySelector('input[type="radio"]:checked');return e?e.value:null})).filter((function(t){return null!==t}))}},{key:"generateOptionsHTML",value:function(t,e,n){return t.map((function(t){return'\n <label class="ziadah-attribute-option">\n <input type="radio" name="attribute-'.concat(e,'" value="').concat(t.value[n]||t.value.en||"",'">\n ').concat(t.value[n]||t.value.en||"","\n </label>\n ")})).join("")}},{key:"update",value:function(t){this.productElement&&(this.productElement.innerHTML=this.generateProductContent(t))}},{key:"initializeEventListeners",value:function(){var t=this;this.shadowRoot.addEventListener("change",(function(e){if("radio"===e.target.type){k.log("Radio button changed:",e.target.value);var n=e.target.closest(".ziadah-product");if(n){var a=n.querySelector(".ziadah-add-to-cart");if(a){k.log("Checking all options after change");var r=t.checkAllOptionsSelected(n);k.log("All options selected:",r),a.disabled=!r,k.log("Button disabled:",a.disabled)}else k.log("Add to cart button not found")}else k.log("Product element not found")}})),this.shadowRoot.addEventListener("click",(function(e){var n=e.target.closest(".ziadah-attribute-header");if(n){var a=n.closest(".ziadah-product-attribute");t.toggleAttributeOptions(a)}}))}},{key:"checkAllOptionsSelected",value:function(t){var e=t.querySelectorAll(".ziadah-product-attribute");k.log("Checking ".concat(e.length," attributes"));var n,a=s(e);try{for(a.s();!(n=a.n()).done;){var r=n.value,o=r.querySelectorAll('input[type="radio"]'),i=r.querySelector(".ziadah-attribute-name").textContent;if(k.log('Attribute: "'.concat(i,'"')),k.log(" Options count: ".concat(o.length)),0!==o.length){var c=r.querySelector('input[type="radio"]:checked');if(k.log(" Selected option: ".concat(c?c.value:"none")),!c)return k.log(" Not all options selected"),!1}else k.log(" No options, skipping")}}catch(t){a.e(t)}finally{a.f()}return k.log("All options selected"),!0}},{key:"updateButtonState",value:function(t){k.log("Updating button state");var e=t.querySelector(".ziadah-add-to-cart");if(e){var n=this.checkAllOptionsSelected(t);k.log("All options selected:",n),e.disabled=!n,k.log("Button disabled:",e.disabled)}else k.error("Add to cart button not found")}}]);var t}(),X=function(){return c((function t(e){o(this,t),this.initialize(e)}),[{key:"initialize",value:function(t){this.container=t,this.productContainer=t.querySelector(".ziadah-products-container"),this.products=this.productContainer.querySelectorAll(".product"),this.currentIndex=0,this.productsPerView=2,k.log("ProductSlider initialized"),k.log("Container:",this.container),k.log("Number of products:",this.products.length),this.init()}},{key:"reinitialize",value:function(t){this.initialize(t)}},{key:"init",value:function(){k.log("ProductSlider init called"),this.products.length<=this.productsPerView?k.log("Not enough products for slider, exiting init"):(this.productContainer.classList.add("multi-product"),this.setupProductContainer(),this.createButtons(),this.updateButtonVisibility())}},{key:"setupProductContainer",value:function(){var t=this;k.log("Setting up product container"),this.productContainer.style.display="flex",this.productContainer.style.transition="transform 0.3s ease-in-out",this.productContainer.style.overflow="hidden",this.products.forEach((function(e){e.style.flex="0 0 ".concat(100/t.productsPerView,"%")}))}},{key:"createButtons",value:function(){var t=this;k.log("Creating slider buttons");var e=this.container.querySelector(".ziadah-slider-button.prev"),n=this.container.querySelector(".ziadah-slider-button.next");e&&e.remove(),n&&n.remove();var a=document.createElement("button");a.innerHTML="&lt;",a.classList.add("ziadah-slider-button","prev"),a.addEventListener("click",(function(){return t.slide("prev")}));var r=document.createElement("button");r.innerHTML="&gt;",r.classList.add("ziadah-slider-button","next"),r.addEventListener("click",(function(){return t.slide("next")})),this.productContainer.parentNode.insertBefore(a,this.productContainer),this.productContainer.parentNode.insertBefore(r,this.productContainer.nextSibling),this.prevButton=a,this.nextButton=r,k.log("Slider buttons created")}},{key:"slide",value:function(t){k.log("Sliding ".concat(t)),"next"===t&&this.currentIndex<this.products.length-this.productsPerView?this.currentIndex++:"prev"===t&&this.currentIndex>0&&this.currentIndex--;var e=-this.currentIndex*(100/this.productsPerView);this.productContainer.style.transform="translateX(".concat(e,"%)"),this.updateButtonVisibility()}},{key:"updateButtonVisibility",value:function(){k.log("Updating button visibility"),this.prevButton.classList.toggle("hidden",0===this.currentIndex),this.nextButton.classList.toggle("hidden",this.currentIndex>=this.products.length-this.productsPerView)}}])}(),$=function(){return c((function t(e,n){o(this,t),this.shadowRoot=e,this.adapter=n,this.config=W,this.products=[],this.productSlider=null}),[{key:"render",value:function(t,e,n,a){var r=this;if(k.log("ProductList render method called with:",JSON.stringify(t,null,2),"Campaign data:",JSON.stringify(n,null,2)),!Array.isArray(t)||0===t.length)return k.warn("No products to render or invalid products array:",t),"";this.products=t.map((function(t){return new Y(r.shadowRoot,r.adapter,t)}));var o=this.products.map((function(t){if(!t||!t.productData)return k.warn("Invalid product data:",t),"";var e=r.shouldShowReplaceButton(t.productData,n);return'\n <div class="product" data-product-id="'.concat(t.productData.id||t.productData.uuid||"",'">\n ').concat(t.create(t.productData,n,e,a),"\n </div>\n ")})).join(""),i=a?"single-product":"multi-product";return'\n <div class="'.concat(this.config.classNames.productsContainer," ").concat(i,'">\n ').concat(o,"\n </div>\n ")}},{key:"shouldShowReplaceButton",value:function(t,e){var n;return 1===(null==e?void 0:e.type)&&(null===(n=e.triggerProducts)||void 0===n?void 0:n.some((function(e){return e.id===t.id||e.variant_id===t.variant_id})))}},{key:"setupEventListeners",value:function(){k.log("Setting up event listeners for ProductList");var t=this.shadowRoot.querySelector(".".concat(this.config.classNames.productsContainer));if(!t)return k.warn("Products container not found. Container class:",this.config.classNames.productsContainer),void k.log("Shadow DOM content:",this.shadowRoot.innerHTML);this.products.forEach((function(e){var n=t.querySelector('[data-product-id="'.concat(e.productData.uuid,'"]'));n?e.setupEventListeners(n):k.warn("Product element not found for UUID: ".concat(e.productData.uuid))})),this.products.length>20&&this.initializeProductSlider(t)}},{key:"initializeProductSlider",value:function(t){var e=t.closest(".ziadah-modal-content");e?this.productSlider?(this.productSlider.reinitialize(e),k.log("ProductSlider reinitialized")):(this.productSlider=new X(e),k.log("ProductSlider initialized")):k.warn("Modal content container not found")}},{key:"update",value:function(t,e){k.log("Updating ProductList with new data");var n=this.shadowRoot.querySelector(".".concat(this.config.classNames.productsContainer));n?(n.innerHTML=this.render(t,e),this.setupEventListeners()):k.warn("Products container not found during update")}},{key:"getProductById",value:function(t){var e=this.products.find((function(e){return e.productData.uuid===t}));return k.log("ProductList.getProductById - Found product:",e),e}}])}();var Q=function(){return c((function t(e,n,a){o(this,t),this.shadowRoot=e,this.adapter=n,this.config=W,this.campaignId=a,k.log("CouponSection constructed with campaign ID:",this.campaignId)}),[{key:"render",value:function(t,e){if(e&&(this.campaignId=e,k.log("CouponSection render with campaign ID:",this.campaignId)),!t||!t.code)return"";var n=t.code.replace(/&/g,"&amp;").replace(/</g,"&lt;").replace(/>/g,"&gt;").replace(/"/g,"&quot;").replace(/'/g,"&#039;"),a=this.adapter.t("coupon_code_label")||"Coupon code",r=this.adapter.t("copy_coupon")||"Copy",o=this.adapter.t("coupon_copied")||"Coupon Copied",i="";t.is_free_shipping&&(i=this.adapter.t("freeshipping")||"Free Shipping");var c="";t.is_free_cod&&(c=this.adapter.t("cash_on_delivery")||"Free Cash on Delivery");var s,d,l,u,p,h=t.fixed_expiration_date?"\n <span>\n ".concat(this.adapter.t("coupon_valid")||"Valid until",": ").concat((s=t.fixed_expiration_date,d=new Date(s),l=String(d.getDate()).padStart(2,"0"),u=String(d.getMonth()+1).padStart(2,"0"),p=d.getFullYear(),"".concat(p,"/").concat(u,"/").concat(l)),"\n </span>\n "):"",g="";if(t.discount_type&&t.discount&&parseFloat(t.discount)>0){var f=2===t.discount_type.value;this.adapter.getCurrency(),this.adapter.getCurrencySymbol();var m=B();g=f?'\n <div class="ziadah-discount-grid">\n <span class="ziadah-discount-value">'.concat(t.discount,'</span>\n <span class="ziadah-discount-unit">%</span>\n </div>\n '):'\n <div class="ziadah-discount-grid">\n <span class="ziadah-discount-value">'.concat(t.discount,'</span>\n <span class="ziadah-discount-unit">').concat(m.symbol,"</span>\n </div>\n ")}return k.log("Coupon rendered:",t),'\n <div class="ziadah-coupon">\n <div class="ziadah-coupon-main">\n <div class="ziadah-coupon-details">\n <div class="ziadah-discount-amount">'.concat(g,'</div>\n <div class="ziadah-shipping-cod">\n ').concat(i?'\n <p class="ziadah-free-shipping">\n <span class="ziadah-check-icon">'.concat('\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ziadah-check-icon">\n <circle cx="12" cy="12" r="10"></circle>\n <polyline points="16 9 11 14 8 11"></polyline>\n </svg>\n ',"</span>\n <span>").concat(i,"</span>\n </p>\n "):"","\n ").concat(c?'\n <p class="ziadah-cash-on-delivery">\n <span class="ziadah-check-icon">'.concat('\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ziadah-check-icon">\n <circle cx="12" cy="12" r="10"></circle>\n <polyline points="16 9 11 14 8 11"></polyline>\n </svg>\n ',"</span>\n <span>").concat(c,"</span>\n </p>\n "):"",'\n </div>\n \n </div>\n </div>\n <div class="ziadah-coupon-footer">\n <div class="ziadah-coupon-header">\n <div class="ziadah-coupon-code-container">\n <button class="ziadah-copy-coupon" data-coupon="').concat(n,'" data-copy-text="').concat(r,'" data-copied-text="').concat(o,'">\n ').concat('\n <svg width="9" height="14" viewBox="0 0 13 16" fill="none" xmlns="http://www.w3.org/2000/svg">\n <rect x="3.44727" y="1.41772" width="8.47368" height="10.8421" stroke="#000"/>\n <rect x="1.0791" y="4.57568" width="8.47368" height="10.8421" stroke="#000"/>\n </svg>\n ',"<span>").concat(r,'</span>\n </button>\n \x3c!-- <span class="ziadah-coupon-label">').concat(a,':</span>\n <span class="ziadah-coupon-code">').concat(n,'</span> --\x3e\n </div>\n </div>\n <div class="ziadah-coupon-footer-right">\n \n ').concat(h?'<p class="ziadah-coupon-valid">'.concat(h,"</p>"):"","\n \n </div>\n </div>\n </div>\n ")}},{key:"setupEventListeners",value:function(){k.log("Setting up event listeners");var t=this.shadowRoot.querySelector(".ziadah-copy-coupon");t?(t.addEventListener("click",this.handleCopyClick.bind(this)),k.log("Copy button listener attached")):k.log("Copy button not found")}},{key:"handleCopyClick",value:function(t){var e=this,n=t.currentTarget,a=n.getAttribute("data-coupon"),r=this.adapter.t("coupon_copied")||"Coupon {code} Copied",o=this.shadowRoot.querySelector(".ziadah-coupon-footer-right"),i=o.querySelector(".ziadah-coupon-valid"),c=i?i.textContent:"",s=n.innerHTML,d=n.className,l=this.shadowRoot.querySelector(".ziadah-coupon-footer"),u=l.querySelector(".ziadah-spinner-container");u||((u=document.createElement("div")).className="ziadah-spinner-container",u.innerHTML='<div class="ziadah-spinner"></div>',l.appendChild(u)),a&&navigator.clipboard.writeText(a).then((function(){if(e.campaignId){k.log("Sending click data with campaign ID:",e.campaignId),e.adapter.sendClickData(e.adapter.getStoreId(),e.campaignId,5,null,1);var t=r.replace("{code}",a);n.innerHTML="".concat('\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="ziadah-check-icon">\n <circle cx="12" cy="12" r="10"></circle>\n <polyline points="16 9 11 14 8 11"></polyline>\n </svg>\n ',"<span>").concat(t,"</span>"),n.className="".concat(d," ziadah-copied"),n.disabled=!0,o&&o.classList.add("hidden"),setTimeout((function(){u.classList.add("show"),n.style.visibility="hidden",setTimeout((function(){u.classList.remove("show"),n.style.visibility="visible",n.innerHTML=s,n.className=d,n.disabled=!1,o&&i&&(o.classList.remove("hidden"),i.textContent=c,i.classList.add("fade-in"),i.offsetWidth,i.classList.remove("fade-in"))}),500)}),2e3)}else k.error("Campaign ID is missing in CouponSection")})).catch((function(t){k.error("Failed to copy: ",t)}))}},{key:"copyToClipboard",value:function(t){k.log("Attempting to copy:",t);var e=document.createElement("textarea");e.value=t,document.body.appendChild(e),e.select();try{var n=document.execCommand("copy");if(document.body.removeChild(e),!n)throw new Error("Copy command was unsuccessful");this.showCopiedMessage(this.adapter.t("code_copied",{code:t}))}catch(t){k.error("Failed to copy coupon code:",t),this.showCopiedMessage(this.adapter.t("copy_failed"),!0)}}},{key:"showCopiedMessage",value:function(t){var e=arguments.length>1&&void 0!==arguments[1]&&arguments[1];k.log("Showing message:",t,"Error:",e);var n=this.shadowRoot.querySelector(".ziadah-copy-coupon");if(n){var a=n.textContent;t=t.replace("{code}",n.getAttribute("data-coupon")),n.textContent=t,n.disabled=!0,e&&n.classList.add("ziadah-error"),setTimeout((function(){n.textContent=a,n.disabled=!1,e&&n.classList.remove("ziadah-error")}),2e3)}else k.error("Copy button not found for showing message")}},{key:"update",value:function(t){k.log("Updating coupon section");var e=this.shadowRoot.querySelector(".ziadah-coupon");e?(e.innerHTML=this.render(t),this.setupEventListeners()):k.error("Coupon container not found")}}])}();function tt(t){var e=P();return{storeId:e.storeId||t.getStoreId(),language:e.language}}function et(t,e,n,a,r,o){return nt.apply(this,arguments)}function nt(){return(nt=a(f().mark((function t(e,n,a,r,o,i){var c;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return console.log("sendClickData called with:",{storeUUID:e,campaignID:n,clickType:a,productId:r,quantity:o}),t.prev=1,t.next=4,i.sendClickData(e,n,a,r,o);case 4:return c=t.sent,console.log("API: Click data sent",c),t.abrupt("return",c);case 9:return t.prev=9,t.t0=t.catch(1),console.error("API: Error sending click data:",t.t0),t.abrupt("return",{success:!1,error:t.t0.message});case 13:case"end":return t.stop()}}),t,null,[[1,9]])})))).apply(this,arguments)}function at(t){return rt.apply(this,arguments)}function rt(){return(rt=a(f().mark((function t(e){var n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return t.prev=0,n=tt(e),a=n.language,t.next=4,e.fetchSettings(a);case 4:return t.abrupt("return",t.sent);case 7:return t.prev=7,t.t0=t.catch(0),console.error("Error fetching settings:",t.t0),N(O("error_fetching_settings"),!0),t.abrupt("return",{});case 12:case"end":return t.stop()}}),t,null,[[0,7]])})))).apply(this,arguments)}var ot=function(){return c((function t(e,n,a){if(o(this,t),!e)throw new Error("shadowRoot is required for ModalContent");this.shadowRoot=e,this.adapter=n,this.config=W,this.campaignData=a,this.productList=new $(e,n),this.couponSection=new Q(e,n,null==a?void 0:a.id),this.t=O,this.getLanguage=A,"function"!=typeof this.adapter.t&&(this.adapter.t=function(t){return t}),this.isDragging=!1,this.currentX=0,this.currentY=0,this.initialX=0,this.initialY=0,this.xOffset=0,this.yOffset=0,this.eventListeners=new Map,this.handleOutsideClick=this.handleOutsideClick.bind(this),this.handleKeyDown=this.handleKeyDown.bind(this),this.isSingleProductModal=!1,this.injectStyles()}),[{key:"render",value:function(t){var e;if(!(t=t||this.campaignData))return k.error("No campaign data available for rendering"),"";k.log("Rendering ModalContent with campaign data:",t);var n=this.getLanguage();k.log("ModalContent render method called with:",JSON.stringify(t,null,2)),k.log("Current language:",this.adapter.getLanguage());var a='<span class="'.concat(this.config.classNames.closeButton,'" aria-label="').concat(this.adapter.t("close_button"),'" title="').concat(this.adapter.t("close_button"),'">\n ').concat('\n <svg width="24" height="24" viewBox="0 0 24 24" fill="none" xmlns="http://www.w3.org/2000/svg">\n <path d="M18 6L6 18" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>\n <path d="M6 6L18 18" stroke="currentColor" stroke-width="1" stroke-linecap="round" stroke-linejoin="round"/>\n </svg>\n ',"\n </span>"),r="<h2>".concat(this.adapter.t(t.title&&t.title[n]?t.title[n]:""),"</h2>");k.log("Campaign title:",t.title);var o='<p class="ziadah-campaign-description">'.concat(t.description&&t.description[n]?t.description[n]:(null===(e=t.description)||void 0===e?void 0:e.en)||"","</p>");k.log("Campaign description:",t.description);var i='\n\n <div class="ziadah-header">\n <div class="ziadah-header-content">\n '.concat(r,"\n ").concat(o,'\n </div>\n <div class="ziadah-header-close">\n ').concat(a,"\n </div>\n </div>\n "),c="";t.action_products&&Array.isArray(t.action_products)&&(k.log("Rendering product list"),this.isSingleProductModal=1===t.action_products.length,this.isSingleProductModal&&k.log("Modal is rendering only one product:",t.action_products[0]),c=this.productList.render(t.action_products,t.triggerProducts,t.type,this.isSingleProductModal));var s="";t.coupon&&(k.log("Rendering coupon section with campaign ID:",t.id),s=this.couponSection.render(t.coupon,t.id));var d="";if(this.isSingleProductModal){var l=t.action_products[0];d='\n <div class="ziadah-modal-footer">\n <button class="'.concat(this.config.classNames.addToCart,'" data-product-id="').concat(l.id,'">\n ').concat(this.adapter.t("add_to_cart"),"\n </button>\n </div>\n ")}var u=this.isSingleProductModal?"single-product-modal":"",p='\n <div class="'.concat(u,'">\n ').concat(i,"\n ").concat(s,"\n ").concat(c,"\n ").concat(d,"\n </div>\n ");return k.log("Rendered HTML:",p),p}},{key:"setupEventListeners",value:function(){var t=this;if(this.shadowRoot){this.removeExistingEventListeners();var e=this.shadowRoot.querySelector(".".concat(this.config.classNames.closeButton));e&&this.addEventListenerWithTracking(e,"click",(function(){return t.handleClose()})),this.shadowRoot.querySelectorAll(".add-button, .replace-button").forEach((function(e){var n=e.getAttribute("data-product-id");t.addEventListenerWithTracking(e,"click",(function(){return e.classList.contains("replace-button")?t.handleReplaceProduct(n):t.handleAddToCart(n)}))}));try{this.productList.setupEventListeners()}catch(t){k.error("Error in ProductList.setupEventListeners:",t)}try{this.couponSection.setupEventListeners()}catch(t){k.error("Error in CouponSection.setupEventListeners:",t)}this.setupVariantEventListeners(),this.setupDraggable(),this.loadPosition(),this.shadowRoot.host.addEventListener("mousedown",this.handleOutsideClick),document.addEventListener("keydown",this.handleKeyDown)}else k.error("Shadow root is not available in ModalContent")}},{key:"setupDraggable",value:function(){var t=this.shadowRoot.querySelector(".".concat(this.config.classNames.modalContent)),e=this.shadowRoot.querySelector(".ziadah-header");t&&e&&(document.addEventListener("mousemove",this.drag.bind(this),!1),document.addEventListener("mouseup",this.dragEnd.bind(this),!1))}},{key:"dragStart",value:function(t){t.target.closest(".ziadah-header")&&(this.initialX=t.clientX-this.xOffset,this.initialY=t.clientY-this.yOffset,this.isDragging=!0)}},{key:"drag",value:function(t){this.isDragging&&(t.preventDefault(),this.currentX=t.clientX-this.initialX,this.currentY=t.clientY-this.initialY,this.xOffset=this.currentX,this.yOffset=this.currentY,this.setTranslate(this.currentX,this.currentY,this.shadowRoot.querySelector(".".concat(this.config.classNames.modalContent))))}},{key:"dragEnd",value:function(t){this.initialX=this.currentX,this.initialY=this.currentY,this.isDragging=!1,this.savePosition()}},{key:"setTranslate",value:function(t,e,n){n.style.transform="translate3d(".concat(t,"px, ").concat(e,"px, 0)")}},{key:"savePosition",value:function(){localStorage.setItem("ziadahModalPosition",JSON.stringify({x:this.xOffset,y:this.yOffset}))}},{key:"loadPosition",value:function(){var t=localStorage.getItem("ziadahModalPosition");if(t){var e=JSON.parse(t);this.xOffset=e.x,this.yOffset=e.y,this.setTranslate(this.xOffset,this.yOffset,this.shadowRoot.querySelector(".".concat(this.config.classNames.modalContent)))}}},{key:"handleClose",value:function(){var t=new CustomEvent("modalClose",{bubbles:!0,composed:!0});this.shadowRoot.dispatchEvent(t),this.shadowRoot.host.removeEventListener("mousedown",this.handleOutsideClick),document.removeEventListener("keydown",this.handleKeyDown)}},{key:"update",value:function(t){var e=this.shadowRoot.querySelector(".".concat(this.config.classNames.modalContent));e?(e.innerHTML=this.render(t),this.setupEventListeners()):k.error("Modal content container not found")}},{key:"setupVariantEventListeners",value:function(){var t=this;this.shadowRoot.addEventListener("click",(function(e){var n=e.target.closest(".".concat(t.config.classNames.collapseHeader));if(n){var a=n.closest(".".concat(t.config.classNames.variantCollapse)),r=a.querySelector(".".concat(t.config.classNames.collapseContent)),o=a.querySelector(".".concat(t.config.classNames.chevron));"none"===r.style.display?(r.style.display="block",o.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-icon">\n <polyline points="18 15 12 9 6 15"></polyline>\n </svg>\n '):(r.style.display="none",o.innerHTML='\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="chevron-icon">\n <polyline points="6 9 12 15 18 9"></polyline>\n </svg>\n ')}})),this.shadowRoot.addEventListener("change",(function(e){if(e.target.classList.contains(t.config.classNames.productAttribute)){var n=e.target.dataset.productId,a=e.target.dataset.attributeId,r=e.target.value;t.handleAttributeChange(n,a,r)}}))}},{key:"handleAttributeChange",value:(e=a(f().mark((function t(e,n,a){var r,o,i,c,s,d;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Attribute changed for product ".concat(e,", attribute ").concat(n," to value ").concat(a)),t.prev=1,r=this.productList.getProductById(e)){t.next=6;break}return k.error("Product not found"),t.abrupt("return");case 6:if(o=r.attributes.find((function(t){return t.id.toString()===n}))){t.next=10;break}return k.error("Attribute not found"),t.abrupt("return");case 10:if(i=this.adapter.getLanguage()||"en",c=o.presets.find((function(t){return t.value&&t.value[i]===a}))){t.next=15;break}return k.error("Selected preset not found"),t.abrupt("return");case 15:return s={product_id:r.id,names:[c.value.en||"",c.value.ar||""],attribute_values:[{attribute_id:parseInt(n),value:c.id.toString()}]},t.next=18,this.adapter.updateVariant(s);case 18:d=t.sent,k.log("Variant updated successfully:",d),this.updateProductVariantInfo(e,d),this.notifyUser(this.adapter.t("variant_updated_successfully")),t.next=28;break;case 24:t.prev=24,t.t0=t.catch(1),k.error("Error updating variant:",t.t0),this.notifyUser(this.adapter.t("error_updating_variant"),!0);case 28:case"end":return t.stop()}}),t,this,[[1,24]])}))),function(t,n,a){return e.apply(this,arguments)})},{key:"updateProductVariantInfo",value:function(t,e){var n=this.shadowRoot.querySelector('.product[data-product-id="'.concat(t,'"]'));if(n){var a,r,o,i=n.querySelector(".".concat(this.config.classNames.productPrice));i&&e.price&&(i.textContent=(a=e.price,r=e.currency,o=this.adapter.getLanguage(),new Intl.NumberFormat(o,{style:"currency",currency:r}).format(a)));var c=n.querySelector(".".concat(this.config.classNames.productQuantity));c&&void 0!==e.quantity&&(c.textContent=e.quantity>0?"".concat(this.adapter.t("in_stock"),": ").concat(e.quantity):this.adapter.t("out_of_stock"));var s=n.querySelector(".".concat(this.config.classNames.addToCart));s&&(s.disabled=0===e.quantity)}else k.error("Product element not found for product ID: ".concat(t))}},{key:"handleAddToCart",value:function(t){k.log("Adding product ".concat(t," to cart")),k.log("this.campaignData:",this.campaignData);var e,n,a=this.productList.getProductById(t);(k.log("Product:",a),a)?(this.adapter.addToCart({productId:t,quantity:1}),this.saveCampaignData(a),k.log("Sending click data with:"),k.log("Store ID:",this.adapter.getStoreId()),k.log("Campaign ID:",null===(e=this.campaignData)||void 0===e?void 0:e.id),k.log("Product UUID:",a.uuid),et(this.adapter.getStoreId(),null===(n=this.campaignData)||void 0===n?void 0:n.id,1,a.uuid,1,this.adapter),this.saveCampaignData(a),this.notifyUser(this.adapter.t("product_added_to_cart"))):(k.error("Product not found"),this.notifyUser(this.adapter.t("product_not_found"),!0))}},{key:"saveCampaignData",value:function(t){var e,n="ziadah_modal_saved_campaigns",a=JSON.parse(localStorage.getItem(n)||"[]"),r={uuid:t.uuid,campaign_id:null===(e=this.campaignData)||void 0===e?void 0:e.id,quantity:1,gross_price:t.price};a.push(r),localStorage.setItem(n,JSON.stringify(a)),k.log("saveCampaignData called"),k.log("Product:",t),k.log("Campaign data saved:",r),k.log("Total saved campaigns:",a.length),k.log("All localStorage keys after saving:",Object.keys(localStorage)),k.log("ziadah_modal_saved_campaigns value:",localStorage.getItem(n))}},{key:"handleReplaceProduct",value:function(t){k.log("Replacing product ".concat(t," in cart")),this.productList.getProductById(t)?(this.adapter.replaceProduct({productId:t,quantity:1}),this.notifyUser(this.adapter.t("product_replaced_in_cart"))):(k.error("Product not found"),this.notifyUser(this.adapter.t("product_not_found"),!0))}},{key:"handleReplaceAllProducts",value:(t=a(f().mark((function t(){var e,n,a,r;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return k.log("Replacing all products in cart"),t.prev=1,t.next=4,this.adapter.replaceAllProducts();case 4:if(!(e=t.sent).success){t.next=12;break}r=(null===(n=this.adapter.getCampaignData())||void 0===n?void 0:n.action_products)||[],et(this.adapter.getStoreId(),null===(a=this.adapter.getCampaignData())||void 0===a?void 0:a.id,4,null,r.length,this.adapter),N(this.adapter.t("all_products_replaced"),!1),this.handleClose(),t.next=13;break;case 12:throw new Error(e.error||"Unknown error");case 13:t.next=19;break;case 15:t.prev=15,t.t0=t.catch(1),k.error("Error replacing all products:",t.t0),N(this.adapter.t("error_replacing_products"),!0);case 19:case"end":return t.stop()}}),t,this,[[1,15]])}))),function(){return t.apply(this,arguments)})},{key:"notifyUser",value:function(t){N(t,arguments.length>1&&void 0!==arguments[1]&&arguments[1])}},{key:"addEventListenerWithTracking",value:function(t,e,n){var a=function(t){t.stopPropagation(),n(t)};t.addEventListener(e,a),this.eventListeners.set(t,{eventType:e,handler:a})}},{key:"removeExistingEventListeners",value:function(){this.eventListeners.forEach((function(t,e){e.removeEventListener(t.eventType,t.handler)})),this.eventListeners.clear()}},{key:"destroy",value:function(){this.removeExistingEventListeners(),this.shadowRoot.host.removeEventListener("mousedown",this.handleOutsideClick),document.removeEventListener("keydown",this.handleKeyDown)}},{key:"handleOutsideClick",value:function(t){k.log("Click detected",t.target);var e=this.shadowRoot.querySelector(".".concat(this.config.classNames.modalContent));k.log("Modal content:",e),k.log("Is click in shadow DOM?",this.shadowRoot.contains(t.target)),this.shadowRoot.contains(t.target)?e&&!e.contains(t.target)&&this.handleClose():this.handleClose()}},{key:"handleKeyDown",value:function(t){"Escape"===t.key&&this.handleClose()}},{key:"injectStyles",value:function(){var t=document.createElement("style");t.textContent="\n .single-product {\n text-align: center;\n }\n \n .single-product-modal .ziadah-add-to-cart {\n display: none !important;\n }\n \n .single-product-modal .ziadah-product {\n max-height: min-content;\n overflow: hidden;\n }\n\n .ziadah-modal-content:has(.single-product-modal) {\n width: 340px;\n max-width: none;\n }\n\n .ziadah-modal-content:has(.single-product-modal) .ziadah-modal-footer {\n display: grid;\n grid-template-columns: 1fr;\n gap: 10px;\n width: 100%;\n margin-top: 20px; \n }\n\n .ziadah-modal-content:has(.single-product-modal) .ziadah-modal-footer button {\n width: 100%;\n padding: 10px;\n text-align: center;\n }\n\n /* For multi-product modals */\n .ziadah-modal-content:not(:has(.single-product-modal)) .ziadah-modal-footer {\n display: flex;\n justify-content: space-between;\n margin-top: 20px;\n }\n\n .ziadah-modal-content:not(:has(.single-product-modal)){\n flex: 0 1 auto;\n margin: 0 5px;\n }\n\n /* Multi-product Slider Styles */\n\n /**\n .ziadah-modal-content {\n position: relative;\n overflow: hidden;\n }\n\n .ziadah-products-container.multi-product {\n display: flex;\n transition: transform 0.3s ease-in-out;\n // width: 200%; \n }\n\n .ziadah-products-container.multi-product .product {\n // flex: 0 0 50%;\n box-sizing: border-box;\n padding: 10px;\n }\n\n .ziadah-slider-button {\n position: absolute;\n top: 50%;\n transform: translateY(-50%);\n background-color: rgba(255, 255, 255, 0.7);\n border: 1px solid #ccc;\n border-radius: 50%;\n width: 40px;\n height: 40px;\n font-size: 24px;\n display: flex;\n align-items: center;\n justify-content: center;\n cursor: pointer;\n z-index: 10;\n }\n\n .ziadah-slider-button.prev {\n left: 10px;\n }\n\n .ziadah-slider-button.next {\n right: 10px;\n }\n\n .ziadah-slider-button.hidden {\n display: none;\n }\n */\n ",this.shadowRoot.appendChild(t)}}]);var t,e}(),it=function(){return c((function t(){o(this,t),this.config=W,this.state=P()}),[{key:"getStyles",value:function(){var t=g(g({},H),this.state.settings),e=document.createElement("style"),n="\n\n /** Modal styles variables */\n :host {\n --ziadah-font-family: ".concat(t.fontFamily,";\n --ziadah-background-color: ").concat(t.backgroundColor,";\n --ziadah-text-color: ").concat(t.textColor,";\n --ziadah-header-text-color: ").concat(t.headerTextColor,";\n --ziadah-button-color: ").concat(t.buttonColor,";\n --ziadah-button-text-color: ").concat(t.buttonTextColor,";\n --ziadah-border-color: ").concat(t.borderColor,";\n --ziadah-hover-color: ").concat(t.hoverColor,";\n --ziadah-overlay-color: ").concat(t.overlayColor,";\n --ziadah-shadow-color: ").concat(t.shadowColor,";\n --ziadah-active-color: ").concat(t.activeColor,";\n --ziadah-font-size: ").concat(t.fontSize,";\n --ziadah-font-weight: ").concat(t.fontWeight,";\n --ziadah-button-font-size: ").concat(t.buttonFontSize,";\n --ziadah-button-font-weight: ").concat(t.buttonFontWeight,";\n --ziadah-button-padding: ").concat(t.buttonPadding,";\n --ziadah-button-border-radius: ").concat(t.buttonBorderRadius,";\n --ziadah-product-border-radius: ").concat(t.productBorderRadius,";\n --ziadah-product-coupon-radius: ").concat(t.couponBorderRadius,";\n --ziadah-image-border-radius: ").concat(t.imageBorderRadius,";\n --ziadah-disabled-color: ").concat(t.disabledColor,";\n --ziadah-light-background-color: ").concat(t.lightBackgroundColor,";\n --ziadah-light-background-color-hover: ").concat(t.lightBackgroundColorHover,";\n --ziadah-dark-background-color: ").concat(t.darkBackgroundColor,";\n --ziadah-dark-background-color-hover: ").concat(t.darkBackgroundColorHover,";\n --ziadah-focus-shadow-color: ").concat(t.focusShadowColor,";\n --ziadah-attributes-font-size: ").concat(t.attributesFontSize,";\n --ziadah-icon-check: ").concat(t.iconCheckColor,";\n --ziadah-coupon-copied-color: ").concat(t.couponCopiedColor,';\n }\n /** Modal content */\n .ziadah-modal-content {\n transition: opacity 0.3s ease-in-out;\n }\n\n /** Modal */\n .ziadah-modal {\n display: none;\n position: fixed;\n z-index: 9999999;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n overflow: auto;\n background-color: var(--ziadah-overlay-color);\n font-family: var(--ziadah-font-family);\n font-size: var(--ziadah-font-size);\n font-weight: var(--ziadah-font-weight);\n color: var(--ziadah-text-color);\n }\n\n /** Modal visible */\n .ziadah-modal.ziadah-modal-visible {\n display: flex !important;\n align-items: center;\n justify-content: center;\n }\n\n /** Modal content */\n .ziadah-modal-content {\n background-color: var(--ziadah-background-color);\n margin: 5% auto;\n padding: 20px;\n border: 1px solid var(--ziadah-border-color);\n max-width: 800px;\n min-width: 340px;\n border-radius: 8px;\n box-shadow: 0 5px 15px var(--ziadah-shadow-color);\n position: absolute;\n z-index: 10000000;\n box-sizing: border-box;\n }\n\n .ziadah-modal-content.single-product {\n width: auto;\n max-width: none;\n }\n\n /** Modal Header */\n .ziadah-modal-header {\n padding: 10px;\n background-color: var(--ziadah-light-background-color);\n border-bottom: 1px solid var(--ziadah-border-color);\n margin: -20px -20px 20px -20px;\n border-top-left-radius: 8px;\n border-top-right-radius: 8px;\n position: relative;\n }\n\n .ziadah-header {\n display: flex;\n justify-content: space-between;\n align-items: flex-start;\n padding-bottom: 15px;\n margin-bottom: 20px;\n border-bottom: 1px solid var(--ziadah-border-color);\n }\n\n .ziadah-header-content {\n flex-grow: 1;\n }\n\n .ziadah-header-content p, \n .ziadah-header-content h2 {\n margin: 0;\n padding: 0;\n color: var(--ziadah-header-text-color);\n }\n\n .ziadah-header-close {\n flex-shrink: 0;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .ziadah-modal-title {\n font-size: 1.5em;\n margin-bottom: 10px;\n }\n\n .ziadah-modal-description {\n font-size: 1em;\n margin-bottom: 0;\n }\n\n .ziadah-close {\n font-size: 28px;\n font-weight: bold;\n cursor: pointer;\n line-height: 1;\n color: var(--ziadah-text-color);\n background-color: transparent;\n border: none;\n padding: 5px;\n border-radius: 50%;\n transition: all 0.3s ease;\n width: 40px;\n height: 40px;\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .ziadah-close:hover,\n .ziadah-close:focus {\n color: var(--ziadah-text-color);\n background-color: var(--ziadah-light-background-color);\n transform: rotate(90deg);\n outline: none;\n }\n\n /** Products Container */\n .ziadah-products-container {\n display: flex;\n justify-content: center;\n align-items: stretch;\n gap: 20px;\n padding: 20px 0;\n width: 100%;\n flex-wrap: nowrap;\n overflow-x: auto;\n scrollbar-width: none;\n -ms-overflow-style: none;\n }\n\n .ziadah-products-container::-webkit-scrollbar {\n display: none;\n }\n\n /** Product Item */\n .ziadah-product {\n flex: 0 0 160px;\n width: 160px;\n min-width: 160px;\n max-width: 160px;\n height: 300px; \n display: flex;\n flex-direction: column;\n padding: 10px;\n overflow: hidden;\n position: relative; \n }\n\n .ziadah-product-image-container {\n width: 100%;\n height: 140px; \n min-height: 140px;\n max-height: 140px;\n overflow: hidden;\n position: relative;\n margin-bottom: 10px;\n border-radius: var(--ziadah-image-border-radius);\n }\n\n .ziadah-product-image {\n width: 100%;\n height: 100%;\n object-fit: scale-down;\n margin-bottom: 10px;\n transition: transform 0.3s ease;\n }\n\n .ziadah-product-image-container:hover .ziadah-product-image {\n transform: scale(1.2);\n }\n\n .ziadah-product-details {\n display: flex;\n flex-direction: column;\n flex-grow: 1;\n overflow: hidden;\n }\n\n .ziadah-product-info {\n flex-grow: 1;\n overflow: hidden;\n display: flex;\n flex-direction: column;\n }\n\n .ziadah-product-name {\n font-size: var(--ziadah-font-size);\n font-weight: var(--ziadah-font-weight);\n margin-bottom: 5px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n max-width: 100%;\n }\n\n .ziadah-product-price {\n font-size: calc(var(--ziadah-font-size) * 0.9);\n margin-bottom: 5px;\n }\n\n .ziadah-product-description-container {\n max-height: 40px;\n overflow: hidden;\n margin-bottom: 5px;\n }\n\n .ziadah-product-description {\n font-size: 0.9em;\n line-height: 1.2;\n }\n\n .ziadah-product-action-container {\n position: absolute;\n bottom: 10px;\n left: 10px;\n right: 10px;\n }\n\n .ziadah-campaign-description {\n display: -webkit-box;\n line-clamp: 2;\n -webkit-box-orient: vertical;\n overflow: hidden;\n text-overflow: ellipsis;\n white-space: normal;\n max-height: 3em; \n }\n\n .ziadah-add-to-cart {\n width: 100%;\n padding: var(--ziadah-button-padding);\n background-color: var(--ziadah-button-color);\n color: var(--ziadah-button-text-color);\n border: none;\n border-radius: var(--ziadah-button-border-radius);\n cursor: pointer;\n font-family: var(--ziadah-font-family);\n font-size: var(--ziadah-button-font-size);\n font-weight: var(--ziadah-button-font-weight);\n display: flex;\n align-items: center;\n justify-content: center;\n gap: 5px;\n }\n\n .ziadah-add-to-cart:hover {\n background-color: var(--ziadah-hover-color);\n }\n\n .ziadah-add-to-cart:active {\n background-color: var(--ziadah-active-color);\n }\n\n .ziadah-add-to-cart:focus {\n outline: none;\n }\n\n .ziadah-add-to-cart:disabled {\n background-color: var(--ziadah-disabled-color, #cccccc);\n cursor: not-allowed;\n opacity: 0.7;\n }\n\n .ziadah-add-to-cart:not(:disabled) {\n cursor: pointer;\n }\n\n /* Modal Footer */\n .ziadah-modal-footer {\n display: flex;\n justify-content: space-between;\n flex-direction: row-reverse;\n align-items: center;\n margin-top: 20px;\n }\n\n .ziadah-modal-footer:has(> :nth-child(2)) {\n gap: 10px;\n }\n\n .ziadah-modal-footer > :not(:only-child) {\n margin-inline-end: 10px;\n }\n\n .ziadah-modal-footer > :first-child {\n margin-inline-end: 0;\n }\n\n .ziadah-modal-footer button {\n flex: 1;\n padding: var(--ziadah-button-padding);\n border-radius: var(--ziadah-button-border-radius);\n cursor: pointer;\n font-family: var(--ziadah-font-family);\n font-size: var(--ziadah-button-font-size);\n font-weight: var(--ziadah-button-font-weight);\n transition: background-color 0.3s ease;\n white-space: nowrap;\n text-align: center;\n display: flex;\n align-items: center;\n justify-content: space-between;\n gap: 5px;\n }\n\n .ziadah-icon {\n display: flex;\n align-items: center;\n justify-content: center;\n }\n\n .ziadah-icon svg {\n width: 20px;\n height: 20px;\n vertical-align: middle;\n }\n\n .ziadah-continue-button {\n background-color: var(--ziadah-background-color);\n color: var(--ziadah-text-color);\n border: 1px solid var(--ziadah-border-color);\n order: 1;\n }\n\n .ziadah-continue-button:hover {\n background-color: var(--ziadah-border-color);\n color: var(--ziadah-hover-color);\n }\n\n .ziadah-add-all-button {\n background-color: var(--ziadah-button-color);\n border: 1px solid var(--ziadah-border-color);\n color: var(--ziadah-button-text-color);\n order: 2;\n }\n\n .ziadah-add-all-button:hover {\n background-color: var(--ziadah-hover-color);\n }\n\n .ziadah-placeholder-button {\n visibility: hidden;\n }\n\n /* Attributes */\n .ziadah-attributes-container {\n border: 1px solid var(--ziadah-border-color);\n border-radius: var(--ziadah-product-border-radius);\n margin-bottom: 50px;\n font-size: var(--ziadah-attributes-font-size);\n display: flex;\n flex-direction: column;\n overflow: hidden;\n }\n\n .ziadah-attributes-header {\n padding: 10px;\n cursor: pointer;\n display: flex;\n justify-content: space-between;\n align-items: center;\n }\n\n .ziadah-attributes-title {\n font-weight: bold;\n }\n\n .ziadah-attributes-content {\n overflow-y: auto;\n flex-grow: 1;\n max-height: 180px; \n }\n\n .ziadah-product-attribute {\n border-bottom: 1px solid var(--ziadah-border-color);\n }\n\n .ziadah-attribute-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 8px;\n cursor: pointer;\n }\n\n .ziadah-attribute-name {\n font-weight: bold;\n }\n\n .ziadah-chevron-icon {\n font-size: 1em;\n transition: transform 0.3s ease;\n }\n\n .ziadah-attribute-option {\n display: flex;\n margin-bottom: 5px;\n align-content: center;\n justify-content: flex-start;\n align-items: center;\n flex-direction: row;\n flex-wrap: nowrap;\n }\n\n .ziadah-attribute-option input[type="radio"] {\n appearance: none;\n -webkit-appearance: none;\n -moz-appearance: none;\n width: 14px;\n height: 14px;\n border: 2px solid var(--ziadah-border-color);\n border-radius: 50%;\n outline: none;\n cursor: pointer;\n margin-right: 5px;\n position: relative;\n }\n\n .ziadah-attribute-option input[type="radio"]:checked::before {\n content: "";\n width: 12px;\n height: 12px;\n background-color: var(--ziadah-button-color);\n border-radius: 50%;\n position: absolute;\n top: 50%;\n left: 50%;\n transform: translate(-50%, -50%);\n }\n\n .ziadah-attribute-option:hover input[type="radio"] {\n border-color: var(--ziadah-button-color);\n }\n\n /* Updated Coupon Styles */\n .ziadah-coupon {\n border: 1px solid var(--ziadah-border-color);\n border-radius: var(--ziadah-product-coupon-radius);\n padding: 0 15px;\n }\n\n .ziadah-coupon-header {\n display: flex;\n justify-content: space-between;\n align-items: center;\n margin: 10px 0;\n }\n\n .ziadah-discount-amount {\n font-size: 1.2em;\n font-weight: bold;\n color: var(--ziadah-text-color);\n }\n\n .ziadah-coupon-code-container {\n display: flex;\n align-items: center;\n gap: 5px;\n }\n\n .ziadah-coupon-label {\n font-size: 0.9em;\n color: var(--ziadah-text-color);\n }\n\n .ziadah-coupon-code {\n font-size: 1.1em;\n font-weight: bold;\n background-color: var(--ziadah-background-color);\n padding: 5px 10px;\n border-radius: 4px;\n }\n\n .ziadah-coupon-details {\n display: flex;\n justify-content: space-between;\n align-items: center;\n padding: 10px 0;\n }\n\n .ziadah-shipping-cod {\n display: grid;\n }\n\n .ziadah-free-shipping,\n .ziadah-cash-on-delivery {\n display: flex;\n align-items: center;\n gap: 8px;\n margin: 0;\n }\n\n .ziadah-check-icon {\n flex-shrink: 0;\n width: 18px;\n height: 18px;\n }\n\n .ziadah-coupon-footer {\n display: flex;\n justify-content: space-between;\n align-items: baseline;\n border-top: 1px solid #e0e0e0;\n gap: 5px;\n position: relative;\n }\n\n .ziadah-coupon-valid {\n font-size: 0.8em;\n color: #757575;\n }\n\n .ziadah-copy-coupon {\n background-color: var(--ziadah-dark-background-color);\n color: var(--ziadah-text-color);\n border: none;\n padding: 5px 10px;\n border-radius: var(--ziadah-button-border-radius);\n cursor: pointer;\n font-size: var(--ziadah-button-font-size);\n font-family: var(--ziadah-font-family);\n transition: background-color 0.3s ease;\n min-width: 100px;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n\n .ziadah-copy-coupon:hover {\n background-color: var(--ziadah-dark-background-color-hover);\n }\n\n .ziadah-copy-coupon:disabled {\n background-color: var(--ziadah-disabled-color);\n cursor: not-allowed;\n opacity: 1;\n cursor: default;\n }\n\n .ziadah-copy-coupon.ziadah-copied {\n background-color: #4CAF50;\n color: white;\n }\n\n .ziadah-copy-coupon .ziadah-check-icon {\n width: 16px;\n height: 16px;\n stroke: currentColor;\n vertical-align: middle;\n }\n\n .ziadah-copy-coupon svg {\n width: 16px;\n height: 16px;\n vertical-align: middle;\n }\n\n .ziadah-copy-coupon span {\n vertical-align: middle;\n }\n\n .ziadah-error {\n background-color: #ff6b6b;\n }\n\n .ziadah-discount-grid {\n display: flex;\n justify-items: end;\n text-align: right;\n align-items: baseline;\n }\n\n .ziadah-discount-value {\n font-size: 2em;\n font-weight: bold;\n line-height: 1;\n }\n\n .ziadah-discount-unit {\n font-size: 1em;\n font-weight: normal;\n }\n\n /* Responsive styles for coupon section */\n @media (max-width: 768px) {\n .ziadah-coupon {\n padding: 10px;\n }\n\n .ziadah-discount-amount,\n .ziadah-coupon-code {\n font-size: 1em;\n }\n\n .ziadah-free-shipping,\n .ziadah-cash-on-delivery,\n .ziadah-coupon-valid {\n font-size: 0.8em;\n }\n\n .ziadah-copy-coupon {\n font-size: 0.9em;\n padding: 4px 8px;\n }\n }\n\n /* RTL Support */\n :host([dir="rtl"]) .ziadah-header-content {\n padding-right: 0;\n padding-left: 20px;\n }\n\n :host([dir="rtl"]) .ziadah-product-image-container {\n margin-right: 0;\n margin-left: 15px;\n }\n\n :host([dir="rtl"]) .ziadah-close {\n left: 10px;\n right: auto;\n }\n\n :host([dir="rtl"]) .ziadah-attribute-option input[type="radio"] {\n margin-right: 0;\n margin-left: 5px;\n }\n\n :host([dir="rtl"]) .ziadah-chevron-icon {\n margin-left: 0;\n margin-right: 8px;\n }\n\n :host([dir="rtl"]) .ziadah-modal-footer {\n flex-direction: row-reverse;\n }\n\n :host([dir="rtl"]) .ziadah-continue-button {\n order: 2;\n }\n\n :host([dir="rtl"]) .ziadah-add-all-button {\n order: 1;\n }\n\n :host([dir="rtl"]) .ziadah-products-container {\n direction: rtl;\n }\n\n :host([dir="rtl"]) .ziadah-product-name,\n :host([dir="rtl"]) .ziadah-product-price,\n :host([dir="rtl"]) .ziadah-product-description {\n text-align: right;\n }\n\n :host([dir="rtl"]) .ziadah-attributes-header,\n :host([dir="rtl"]) .ziadah-attribute-header {\n flex-direction: row-reverse;\n }\n\n :host([dir="rtl"]) .ziadah-attributes-header[aria-expanded="true"] .ziadah-chevron-icon svg,\n :host([dir="rtl"]) .ziadah-attribute-header[aria-expanded="true"] .ziadah-chevron-icon svg {\n transform: rotate(-180deg);\n }\n\n :host([dir="rtl"]) .ziadah-coupon {\n padding-right: 15px;\n padding-left: 6px;\n }\n\n :host([dir="rtl"]) .ziadah-coupon-mobile {\n right: 50%;\n left: auto;\n transform: translate(50%, -50%);\n }\n\n /* Media Queries */\n @media (max-width: 768px) {\n .ziadah-modal-content {\n padding: 15px;\n width: 95%;\n max-width: 600px;\n }\n\n .ziadah-products-container {\n justify-content: flex-start;\n padding: 10px 0;\n }\n\n .ziadah-product {\n flex: 0 0 180px;\n width: 180px;\n min-width: 180px;\n max-width: 180px;\n height: 300px; \n padding: 10px;\n }\n\n .ziadah-product-image-container {\n height: 130px; \n min-height: 130px;\n max-height: 130px;\n }\n\n .ziadah-product-info {\n margin-bottom: 35px; \n }\n\n .ziadah-product-name {\n font-size: 1em;\n line-clamp: 2;\n display: -webkit-box;\n -webkit-box-orient: vertical;\n white-space: normal;\n }\n\n .ziadah-product-price {\n font-size: 0.9em;\n margin-bottom: 3px;\n }\n\n .ziadah-product-description-container {\n max-height: 30px;\n }\n\n .ziadah-product-description {\n font-size: 0.8em;\n line-height: 1.2;\n }\n\n .ziadah-add-to-cart {\n padding: 6px 12px;\n font-size: 0.9em;\n }\n\n .ziadah-modal-footer {\n flex-direction: column;\n gap: 10px;\n }\n\n .ziadah-modal-footer button {\n width: 100%;\n }\n\n .ziadah-header {\n flex-direction: column;\n align-items: flex-start;\n padding-bottom: 10px;\n margin-bottom: 15px;\n }\n\n .ziadah-header-content {\n width: 100%;\n padding-right: 0;\n margin-bottom: 10px;\n }\n\n .ziadah-header-close {\n align-self: flex-end;\n margin-top: -30px; \n }\n\n .ziadah-modal-title {\n font-size: 1.3em;\n margin-bottom: 8px;\n padding-right: 40px; \n }\n\n .ziadah-modal-description {\n font-size: 0.9em;\n line-height: 1.4;\n }\n\n .ziadah-close {\n font-size: 24px;\n width: 36px;\n height: 36px;\n }\n\n .ziadah-coupon {\n font-size: 10px;\n min-width: 80px;\n }\n\n .ziadah-copy-coupon {\n padding: 2px 4px;\n }\n\n .ziadah-coupon-info,\n .ziadah-coupon-props {\n font-size: 10px;\n }\n\n /* For RTL languages */\n :host([dir="rtl"]) .ziadah-header-content {\n padding-left: 0;\n }\n\n :host([dir="rtl"]) .ziadah-modal-title {\n padding-right: 0;\n padding-left: 40px;\n }\n\n :host([dir="rtl"]) .ziadah-header-close {\n align-self: flex-start;\n }\n }\n\n @media (max-width: 480px) {\n .ziadah-modal-content {\n padding: 10px;\n }\n\n .ziadah-product {\n padding: 8px;\n height: 300px; \n }\n\n .ziadah-product-image-container {\n height: 120px; \n min-height: 120px;\n max-height: 120px;\n }\n\n .ziadah-product-info {\n margin-bottom: 30px; \n }\n\n .ziadah-product-name {\n font-size: 0.9em;\n }\n\n .ziadah-product-price {\n font-size: 0.85em;\n }\n\n .ziadah-product-description-container {\n max-height: 25px;\n }\n\n .ziadah-product-description {\n font-size: 0.75em;\n }\n\n .ziadah-add-to-cart {\n padding: 5px 10px;\n font-size: 0.85em;\n }\n\n .ziadah-modal-title {\n font-size: 1.2em;\n }\n\n .ziadah-modal-description {\n font-size: 0.85em;\n }\n\n .ziadah-close {\n font-size: 22px;\n width: 32px;\n height: 32px;\n }\n\n .ziadah-product-action-container {\n bottom: 8px;\n left: 8px;\n right: 8px;\n }\n }\n\n /* Chevron Icon Styles */\n .ziadah-chevron-icon {\n display: inline-flex;\n align-items: center;\n justify-content: center;\n transition: transform 0.3s ease;\n }\n\n .ziadah-chevron-icon svg {\n width: 16px;\n height: 16px;\n fill: none;\n stroke: currentColor;\n stroke-width: 2;\n stroke-linecap: round;\n stroke-linejoin: round;\n transition: transform 0.3s ease;\n }\n\n .ziadah-attributes-header[aria-expanded="true"] .ziadah-chevron-icon svg,\n .ziadah-attribute-header[aria-expanded="true"] .ziadah-chevron-icon svg {\n transform: rotate(180deg);\n }\n\n .ziadah-attributes-header,\n .ziadah-attribute-header {\n display: flex;\n align-items: center;\n justify-content: space-between;\n cursor: pointer;\n }\n\n .ziadah-chevron-icon {\n margin-left: 8px;\n }\n\n /* Attribute options animation */\n .ziadah-attribute-options {\n overflow: hidden;\n transition: max-height 0.3s ease, opacity 0.3s ease;\n max-height: 0;\n opacity: 0;\n }\n\n .ziadah-attribute-options.open {\n max-height: 500px;\n opacity: 1;\n }\n\n /** Spinner */\n .ziadah-spinner {\n display: inline-block;\n width: 10px;\n height: 10px;\n border: 2px solid rgba(255,255,255,.3);\n border-radius: 50%;\n border-top-color: #fff;\n animation: ziadah-spin 1s ease-in-out infinite;\n -webkit-animation: ziadah-spin 1s ease-in-out infinite;\n }\n\n @keyframes ziadah-spin {\n to { -webkit-transform: rotate(360deg); }\n }\n @-webkit-keyframes ziadah-spin {\n to { -webkit-transform: rotate(360deg); }\n }\n\n /** Scrollbar styles */\n .ziadah-attributes-content::-webkit-scrollbar {\n width: 6px;\n }\n\n .ziadah-attributes-content::-webkit-scrollbar-track {\n background: var(--ziadah-light-background-color);\n }\n\n .ziadah-attributes-content::-webkit-scrollbar-thumb {\n background-color: var(--ziadah-border-color);\n border-radius: 3px;\n }\n\n /** Coupon footer styles */\n .ziadah-coupon-footer {\n display: flex;\n justify-content: space-between;\n align-items: center;\n transition: all 0.3s ease;\n position: relative;\n }\n\n /** Spinner container */\n .ziadah-spinner-container {\n position: absolute;\n left: 0;\n right: 0;\n top: 0;\n bottom: 0;\n display: flex;\n justify-content: center;\n align-items: center;\n background-color: rgba(255, 255, 255, 0.9);\n opacity: 0;\n visibility: hidden;\n transition: opacity 0.3s ease, visibility 0.3s ease;\n }\n\n .ziadah-spinner-container.show {\n opacity: 1;\n visibility: visible;\n }\n\n /** Spinner */\n .ziadah-spinner {\n width: 15px;\n height: 15px;\n border: 2px solid rgba(0, 0, 0, 0.1);\n border-left-color: var(--ziadah-button-color);\n border-radius: 50%;\n animation: spin 1s linear infinite;\n }\n\n @keyframes spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n /** Copy coupon */\n .ziadah-copy-coupon {\n transition: all 0.3s ease;\n flex-grow: 0;\n }\n\n .ziadah-copy-coupon.ziadah-copied {\n flex-grow: 1;\n background-color: var(--ziadah-coupon-copied-color);\n color: white;\n }\n\n /** Coupon footer right */\n .ziadah-coupon-footer-right {\n transition: opacity 0.3s ease, max-height 0.3s ease, width 0.3s ease;\n opacity: 1;\n max-height: 50px;\n width: auto;\n overflow: hidden;\n }\n\n .ziadah-coupon-footer-right.hidden {\n opacity: 0;\n max-height: 0;\n width: 0;\n }\n\n /** Coupon valid */\n .ziadah-coupon-valid {\n transition: opacity 0.5s ease;\n opacity: 1;\n }\n\n .ziadah-coupon-valid.fade-in {\n opacity: 0;\n }\n\n /** Custom CSS */\n ').concat(t.customCSS,"\n\n /** User-defined CSS overrides */\n ").concat(t.userCSS,"\n ");return e.textContent=n,e}}])}();function ct(t){var e=document.createElement("style");e.textContent=t;var n=document.createElement("div");n.appendChild(e),document.body.appendChild(n);var a={};try{var r,o=s(e.sheet.cssRules);try{for(o.s();!(r=o.n()).done;){var i=r.value;if(i instanceof CSSStyleRule){a[i.selectorText]={};for(var c=0;c<i.style.length;c++){var d=i.style[c],l=i.style.getPropertyValue(d);a[i.selectorText][d]=l}}else i instanceof CSSMediaRule&&(a["@media ".concat(i.conditionText)]=st(i))}}catch(t){o.e(t)}finally{o.f()}}catch(t){k.error("Error parsing CSS:",t)}return document.body.removeChild(n),a}function st(t){var e,n={},a=s(t.cssRules);try{for(a.s();!(e=a.n()).done;){var r=e.value;if(r instanceof CSSStyleRule){n[r.selectorText]={};for(var o=0;o<r.style.length;o++){var i=r.style[o],c=r.style.getPropertyValue(i);n[r.selectorText][i]=c}}}}catch(t){a.e(t)}finally{a.f()}return n}var dt=["color","background-color","font-size","font-family","font-weight","text-align","line-height","letter-spacing","text-transform","border","border-radius","padding","margin","width","height","display","flex-direction","justify-content","align-items","box-shadow","opacity","transition"],lt=[/^#([0-9A-Fa-f]{3}){1,2}$/,/^rgb\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*\)$/,/^rgba\(\s*\d+\s*,\s*\d+\s*,\s*\d+\s*,\s*(?:0|1|0?\.\d+)\s*\)$/,/^(?:(?:0|[1-9]\d*)(?:\.\d+)?|\.\d+)(?:px|em|rem|%|vh|vw)$/,/^(?:normal|bold|bolder|lighter|100|200|300|400|500|600|700|800|900)$/,/^(?:left|center|right|justify)$/,/^(?:flex|block|inline|inline-block|none)$/,/^(?:row|column)$/,/^(?:flex-start|flex-end|center|space-between|space-around)$/];function ut(t){if("string"!=typeof t)return k.warn("Invalid CSS input:",t),"";var e=function(t){var e={},n=t.match(/[^\{\}]+\{[^\}]+\}/g)||[];return n.forEach((function(t){var n=v(t.split("{"),2),a=n[0],r=n[1];e[a.trim()]={},r.slice(0,-1).split(";").forEach((function(t){var n=v(t.split(":"),2),r=n[0],o=n[1];r&&o&&(e[a.trim()][r.trim()]=o.trim())}))})),e}(t=(t=(t=(t=t.replace(/\/\*[\s\S]*?\*\//g,"")).replace(/@import/gi,"")).replace(/expression\s*\(/gi,"")).replace(/@(document|charset|import|namespace|page|supports)/gi,""));for(var n in e){var a={};for(var r in e[n])if(dt.includes(r)){var o=e[n][r];pt(o)&&(a[r]=o)}e[n]=a}return function(t){var e="";for(var n in t){for(var a in e+="".concat(n," {\n"),t[n])e+=" ".concat(a,": ").concat(t[n][a],";\n");e+="}\n"}return e}(e)}function pt(t){return lt.some((function(e){return e.test(t)}))}var ht=function(t){function e(t,n){var a;return o(this,e),"function"!=typeof(a=r(this,e,[t,n])).adapter.t&&(k.warn("Adapter does not have a t method for translations. Using fallback."),a.adapter.t=O),a.config=W,a.content=new ot(a.shadowRoot,a.adapter),a.styles=new it,a.state=P(),a.handleOutsideClick=a.handleOutsideClick.bind(a),a.handleEscKey=a.handleEscKey.bind(a),a.handleModalClick=a.handleModalClick.bind(a),a.isListening=!1,"function"!=typeof a.adapter.showNotification&&(k.warn("Adapter does not have a showNotification method. Using fallback."),a.adapter.showNotification=a.fallbackShowNotification.bind(a)),a.handleCloseButtonClick=a.handleCloseButtonClick.bind(a),a.closeListenerAdded=!1,a}return u(e,t),c(e,[{key:"create",value:(s=a(f().mark((function t(e,n){var a,r,o,i,c;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return k.log("Creating modal popup"),k.log("Settings:",n),a=ct(n.customCSS||""),r=ut(a),(o=document.createElement("div")).classList.add(this.config.classNames.popup,this.config.classNames.modal),i=this.styles.getStyles(n,r),o.appendChild(i),(c=document.createElement("div")).classList.add(this.config.classNames.modalContent),c.innerHTML=this.content.render(e),o.appendChild(c),this.popupElement=o,this.contentElement=c,this.shadowRoot.appendChild(o),k.log("Content element created:",this.contentElement),this.content.setupEventListeners(),this.setupEventListeners(),this.setupCloseButtonListener(),t.abrupt("return",this);case 20:case"end":return t.stop()}}),t,this)}))),function(t,e){return s.apply(this,arguments)})},{key:"showLoading",value:(i=a(f().mark((function t(){var e,n,a=arguments;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return e=a.length>1&&void 0!==a[1]?a[1]:0,n='\n <style>\n .ziadah-preload-container {\n display: flex;\n flex-direction: column;\n align-items: center;\n justify-content: center;\n height: 100%;\n padding: 20px;\n }\n .ziadah-preload-spinner-container {\n width: 50px;\n height: 50px;\n margin-bottom: 15px;\n }\n\n .ziadah-preload-spinner {\n width: 100%;\n height: 100%;\n border: 3px solid rgba(0, 0, 0, 0.1);\n border-top: 3px solid var(--ziadah-header-text-color, #4CAF50);\n border-radius: 50%;\n animation: ziadah-preload-spin 1s linear infinite;\n }\n\n .ziadah-preload-message {\n font-size: 18px;\n font-weight: bold;\n color: var(--ziadah-text-color, #333);\n text-align: center;\n margin: 0;\n }\n\n @keyframes ziadah-preload-spin {\n 0% { transform: rotate(0deg); }\n 100% { transform: rotate(360deg); }\n }\n\n :host([dir="rtl"]) .ziadah-preload-message {\n font-family: var(--ziadah-font-family, \'Arial\', sans-serif);\n }\n </style>\n <div class="ziadah-preload-container">\n <div class="ziadah-preload-spinner-container">\n <div class="ziadah-preload-spinner"></div>\n </div>\n <p class="ziadah-preload-message">'.concat((a.length>0&&void 0!==a[0]?a[0]:{en:"Campaings are loading...",ar:"جاري تحميل الحملة..."})[this.getLanguage()],"</p>\n </div>\n "),this.contentElement.innerHTML=n,this.setupEventListeners(),this.show(),t.abrupt("return",new Promise((function(t){return setTimeout(t,e)})));case 7:case"end":return t.stop()}}),t,this)}))),function(){return i.apply(this,arguments)})},{key:"showProducts",value:(n=a(f().mark((function t(e,n,a,r,o,i,c,s,d){var l,u=arguments;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Received action products:",e),0!==u.length){t.next=4;break}return k.error("showProducts method called with no arguments"),t.abrupt("return");case 4:return k.log("2. Input parameters:",{actionProducts:e,triggerProducts:n,options:a,campaignTypeId:r,card:o,alternativeProducts:i,isAlternativeEnabled:c,lastEventProductId:s,campaignSettings:d}),t.next=7,this.showLoading();case 7:if(k.log("actionProducts:",e),k.log("triggerProducts:",n),k.log("options:",a),k.log("campaignTypeId:",r),k.log("card:",o),k.log("alternativeProducts:",i),k.log("isAlternativeEnabled:",c),k.log("lastEventProductId:",s),k.log("campaignSettings:",d),e||k.warn("actionProducts is undefined"),n||k.warn("triggerProducts is undefined"),a||k.warn("options is undefined"),r||k.warn("campaignTypeId is undefined"),o||k.warn("card is undefined"),i||k.warn("alternativeProducts is undefined"),c||k.warn("isAlternativeEnabled is undefined"),s||k.warn("lastEventProductId is undefined"),d||k.warn("campaignSettings is undefined"),l={title:(null==o?void 0:o.title)||{en:"No Title"},description:(null==o?void 0:o.description)||{en:"No Description"},action_products:e.map((function(t,n){return g(g({},t),{},{type:r,isLastProduct:n===e.length-1})})),coupon:null==a?void 0:a.coupon,type:r,totalProducts:e.length},L({campaignData:l}),this.state=P(),k.log("4. Campaign Data:",l),k.log("5. Campaign Type:",r),k.log("5.5 this.contentElement:",this.contentElement),this.contentElement){t.next=38;break}return k.log("6. Content element doesn't exist, creating modal"),t.next=35,this.create(l,d);case 35:k.log("6.5 Modal created, this.contentElement:",this.contentElement),t.next=40;break;case 38:k.log("6. Content element exists, updating content"),this.updateContent(l);case 40:k.log("7. Showing modal"),this.show(),k.log("8. Exiting showProducts method"),setTimeout((function(){k.log("Updating state after delay")}),100);case 44:case"end":return t.stop()}}),t,this)}))),function(t,e,a,r,o,i,c,s,d){return n.apply(this,arguments)})},{key:"updateContent",value:function(t){var e=this;if(k.log("1. Entering updateContent method"),k.log("2. Updating modal content with data:",JSON.stringify(t,null,2)),k.log("3. Checking this.contentElement"),this.contentElement){k.log("4. this.contentElement exists"),k.log("5. Getting language");var n=A();k.log("6. Current language in ModalPopup:",n),k.log("7. Testing translation"),k.log("8. Testing translation in ModalPopup:",O("add_to_cart")),k.log("9. Applying fade-out effect"),this.contentElement.style.transition="opacity 0.3s ease-in-out",this.contentElement.style.opacity="0",setTimeout((function(){k.log("10. Rendering content");var n=e.content.render(t);k.log("11. Rendered content:",n),k.log("12. Updating innerHTML"),e.contentElement.innerHTML=n,k.log("13. Generating footer");var a=e.generateFooter(t);k.log("14. Footer HTML:",a),k.log("15. Appending footer to content"),e.contentElement.insertAdjacentHTML("beforeend",a),k.log("16. Setting up event listeners"),e.content.setupEventListeners(),e.setupFooterEventListeners(),e.setupEventListeners(),k.log("17. Applying fade-in effect"),e.contentElement.style.opacity="1"}),300)}else k.log("4. this.contentElement does not exist");k.log("18. Exiting updateContent method")}},{key:"generateFooter",value:function(t){var e,n=t.type,a=t.action_products,r=t.coupon,o=a?a.length:0,i=(1!==n||1===o)&&o>0,c=r&&r.code&&0===o,s=1===o;e=1===n?s?this.adapter.t("replace"):this.adapter.t("replace_them_all"):s?this.adapter.t("add"):this.adapter.t("add_them_all");var d="rtl"===document.dir||"ar"===document.documentElement.lang?'\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="19" y1="12" x2="5" y2="12"></line>\n <polyline points="12 19 5 12 12 5"></polyline>\n </svg>\n ':'\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <line x1="5" y1="12" x2="19" y2="12"></line>\n <polyline points="12 5 19 12 12 19"></polyline>\n </svg>\n ';return'\n <div class="'.concat(this.config.classNames.modalFooter,'">\n ').concat(i&&!c?'\n <button type="button" id="'.concat(this.config.classNames.addAllToCart,'" class="').concat(this.config.classNames.addAllButton,'">\n ').concat(e,' \n <span class="ziadah-icon">').concat('\n <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">\n <circle cx="9" cy="21" r="1"></circle>\n <circle cx="20" cy="21" r="1"></circle>\n <path d="M1 1h4l2.68 13.39a2 2 0 0 0 2 1.61h9.72a2 2 0 0 0 2-1.61L23 6H6"></path>\n </svg>\n ',"</span>\n </button>\n "):"",'\n <button type="button" class="').concat(this.config.classNames.continueButton,'" id="').concat(this.config.classNames.pluginModalContinue,'">\n ').concat(this.adapter.t("continue"),'\n <span class="ziadah-icon">').concat(d,"</span>\n </button>\n </div>\n ")}},{key:"setupFooterEventListeners",value:function(){var t=this,e=this.contentElement.querySelector("#".concat(this.config.classNames.addAllToCart));e&&e.addEventListener("click",(function(){return t.handleAddAllToCart()}));var n=this.contentElement.querySelector("#".concat(this.config.classNames.pluginModalContinue));n&&n.addEventListener("click",(function(){return t.handleContinue()}))}},{key:"handleAddAllToCart",value:function(){var t=this;k.log("Add all to cart clicked");var e=this.state.campaignData,n=null==e?void 0:e.action_products;if(k.log("Action products in state:",n),n&&0!==n.length){var a=1===n.length,r=n.map((function(e){return k.log("Adding product to cart:",e),t.adapter.addToCart(e.id,1,e.variant_id)}));Promise.all(r).then((function(){k.log("All products added to cart successfully"),n.forEach((function(e){t.adapter.sendClickData(t.adapter.getStoreId(),t.campaignId,2,e.uuid,1)})),N(a?t.adapter.t("product_added_to_cart"):t.adapter.t("all_products_added_to_cart"),!1),t.hide()})).catch((function(e){k.error("Error adding products to cart:",e),N(a?t.adapter.t("error_adding_product_to_cart"):t.adapter.t("error_adding_products_to_cart"),!0)}))}else k.warn("No action products found to add to cart")}},{key:"handleContinue",value:function(){k.log("Continue clicked"),this.hide()}},{key:"setupEventListeners",value:function(){var t=this;this.shadowRoot.addEventListener("modalClose",(function(){return t.hide()})),this.popupElement&&this.popupElement.addEventListener("mousedown",this.handleModalClick),this.setupCloseButtonListener()}},{key:"setupCloseButtonListener",value:function(){k.log("Setting up close button listener with event delegation"),this.closeListenerAdded||(this.shadowRoot.addEventListener("click",this.handleCloseButtonClick),this.closeListenerAdded=!0)}},{key:"handleCloseButtonClick",value:function(t){t.target.closest(".".concat(this.config.classNames.closeButton))&&(k.log("Close button clicked (via delegation)"),t.stopPropagation(),this.handleClose())}},{key:"handleClose",value:function(){k.log("Handling close action"),this.hide()}},{key:"handleModalClick",value:function(t){t.stopPropagation()}},{key:"handleOutsideClick",value:function(t){this.popupElement&&!this.popupElement.contains(t.target)&&this.hide()}},{key:"handleEscKey",value:function(t){"Escape"===t.key&&this.hide()}},{key:"show",value:function(){k.log("Entering show method");try{if(!this.popupElement)throw new Error("Popup element not found");this.popupElement.classList.add("ziadah-modal-visible"),document.body.style.overflow="hidden",k.log("Modal visibility class added"),k.log("Is modal visible?",window.getComputedStyle(this.popupElement).display)}catch(t){k.error("Error showing modal:",t)}k.log("Exiting show method")}},{key:"hide",value:function(){this.popupElement&&(this.popupElement.classList.remove(this.config.classNames.modalVisible),document.body.style.overflow=""),this.removeEventListeners()}},{key:"removeEventListeners",value:function(){this.isListening&&(document.removeEventListener("mousedown",this.handleOutsideClick),document.removeEventListener("keydown",this.handleEscKey),this.isListening=!1),this.closeListenerAdded&&(this.shadowRoot.removeEventListener("click",this.handleCloseButtonClick),this.closeListenerAdded=!1)}},{key:"update",value:function(t){this.content.update(t)}},{key:"destroy",value:function(){this.popupElement&&(this.popupElement.removeEventListener("mousedown",this.handleModalClick),this.popupElement.parentNode&&this.popupElement.parentNode.removeChild(this.popupElement)),this.popupElement=null,this.removeEventListeners()}},{key:"isOpen",value:function(){var t=this.popupElement&&this.popupElement.classList.contains(this.config.classNames.modalVisible);return k.log("Is modal open?",t),this.popupElement&&(k.log("Modal element:",this.popupElement.outerHTML),k.log("Computed style display:",window.getComputedStyle(this.popupElement).display)),t}},{key:"getElement",value:function(){return this.popupElement}},{key:"fallbackShowNotification",value:function(t,e){k.log("Notification (".concat(e,"): ").concat(t));var n=document.createElement("div");n.textContent=t,n.style.cssText="\n position: fixed;\n top: 20px;\n right: 20px;\n padding: 10px;\n background-color: ".concat("success"===e?"#00a86b":"#F44336",";\n color: white;\n border-radius: 4px;\n z-index: 10000;\n "),document.body.appendChild(n),setTimeout((function(){document.body.removeChild(n)}),3e3)}},{key:"setCampaignId",value:function(t){this.campaignId=t,k.log("Campaign ID set in ModalPopup:",this.campaignId)}}]);var n,i,s}(G),gt=function(){return c((function t(e,n){o(this,t),this.shadowRoot=e,this.adapter=n,k.log("PopupFactory constructed with:",{shadowRoot:e,adapter:n}),this.popupInstances={},this.fontFamily=F(),this.fontLoaded=!1}),[{key:"loadFontIfNeeded",value:(e=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(this.fontLoaded||!this.fontFamily.includes("Rubik")){t.next=4;break}return t.next=3,e=void 0,(e=document.createElement("link")).href="https://fonts.googleapis.com/css2?family=Rubik&display=swap",e.rel="stylesheet",void document.head.appendChild(e);case 3:this.fontLoaded=!0;case 4:case"end":return t.stop()}var e}),t,this)}))),function(){return e.apply(this,arguments)})},{key:"createPopup",value:(t=a(f().mark((function t(e,n,a){var r,o,i;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Creating popup:",{type:e,campaignData:n,settings:a}),n&&"object"===b(n)&&0!==Object.keys(n).length){t.next=4;break}return k.error("Invalid or empty campaign data passed to createPopup"),t.abrupt("return",null);case 4:if(!this.popupInstances[e]){t.next=7;break}return k.log("Reusing existing popup instance for type:",e),t.abrupt("return",this.popupInstances[e]);case 7:return t.next=9,this.loadFontIfNeeded();case 9:t.t0=e,t.next=("popup card"===t.t0||t.t0,12);break;case 12:return r=ht,t.abrupt("break",14);case 14:return o=ut((null==a?void 0:a.css)||""),i=new r(this.shadowRoot,this.adapter),t.next=18,i.create(n,g(g({},a),{},{css:o,fontFamily:this.fontFamily}));case 18:return this.popupInstances[e]=i,t.abrupt("return",i);case 20:case"end":return t.stop()}}),t,this)}))),function(e,n,a){return t.apply(this,arguments)})},{key:"showProducts",value:function(t){k.log("Entering showProducts method"),k.log("Campaign data:",t),this.popupInstance?(k.log("Popup instance exists, updating content"),this.popupInstance.updateContent(t),k.log("Content updated, showing popup"),this.popupInstance.show(),k.log("Popup shown")):k.error("Popup instance not created"),k.log("Exiting showProducts method")}}]);var t,e}();function ft(t,e,n){return mt.apply(this,arguments)}function mt(){return mt=a(f().mark((function t(e,n,a){var r,o,i,c,s,d,l,u,p,h,g,m,v=arguments;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(r=v.length>3&&void 0!==v[3]&&v[3],k.log("Campaign called for event ID: ".concat(e,", event name: ").concat(n,", restart with lower: ").concat(r)),o=P(),k.log("Current state:",o),!o.campaignActive||r){t.next=7;break}return k.log("Campaign is already active, skipping campaign"),t.abrupt("return");case 7:L({campaignActive:!0}),t.prev=8,i=o.adapter,k.log("Adapter:",i),t.t0=e,t.next="1"===t.t0?14:"2"===t.t0?16:"3"===t.t0?18:"5"===t.t0?20:"6"===t.t0?22:24;break;case 14:return k.log("Handling start-checkout event"),t.abrupt("break",26);case 16:return k.log("Handling add-to-cart event"),t.abrupt("break",26);case 18:return k.log("Handling remove-from-cart event"),t.abrupt("break",26);case 20:return k.log("Handling product-view event"),t.abrupt("break",26);case 22:return k.log("Handling purchase event"),t.abrupt("break",26);case 24:return k.warn("Unrecognized Zid event ID: ".concat(e)),t.abrupt("break",26);case 26:return t.next=28,yt();case 28:if(c=t.sent,!r){t.next=35;break}k.log("Restarting with lower priority campaign"),s={data:[o.lowerCampaign]},d=o.lowerCampaign,t.next=50;break;case 35:return k.log("Fetching campaigns for event ID: ".concat(e)),t.next=38,i.fetchCampaigns(e);case 38:if(l=t.sent,s=l.data,k.log("Campaigns data:",s),s&&Array.isArray(s.data)&&0!==s.data.length){t.next=45;break}return k.warn("No campaign data available for event ID: ".concat(e)),N(O("no_campaigns_available"),!1),t.abrupt("return");case 45:k.log("Event data:",a),u=(null==a?void 0:a.id)||(null==a?void 0:a.uuid)||(null==a?void 0:a.product_id),k.log("Target product ID for filtering:",u),d=vt(s.data,u,n),k.log("Filtered highest priority campaign:",d);case 50:if(k.log("Highest priority campaign:",d),d){t.next=55;break}return k.log("No matching campaign found"),N(O("no_matching_campaign"),!1),t.abrupt("return");case 55:return k.log("Fetching campaign data for campaign ID: ".concat(d.id)),t.next=58,i.getCampaignData(d.id,e,d.action_products);case 58:if(p=t.sent,k.log("Campaign result:",p),p&&p.data&&p.data.data){t.next=64;break}return k.warn("Invalid campaign result received"),c.hide(),t.abrupt("return");case 64:return h=p.data.data,k.log("Campaign data:",h),g=s.data.find((function(t){return t.priority<d.priority}))||{},L({currentCampaignID:h.id,lowerCampaign:g,lastEventID:e,lastEventName:n,lastEventData:a}),c.hide(),t.next=71,wt(p);case 71:m=t.sent,k.log("Popup shown:",m),t.next=80;break;case 75:t.prev=75,t.t1=t.catch(8),k.error("Error in campaign:",t.t1),R(t.t1,"Campaign Execution"),N(O("campaign_error"),!0);case 80:return t.prev=80,L({campaignActive:!1}),t.finish(80);case 83:case"end":return t.stop()}}),t,null,[[8,75,80,83]])}))),mt.apply(this,arguments)}function vt(t,e,n){if(k.log("Filtering campaigns. Campaigns:",t),k.log("Target product ID:",e),k.log("Event name:",n),!Array.isArray(t)||0===t.length)return k.log("No campaigns available or campaigns is not an array"),null;var a=t.filter((function(t){var n,a,r,o;if(k.log("Checking campaign:",t),1!==(null===(n=t.status)||void 0===n?void 0:n.value))return k.log("Campaign ".concat(t.id," is not active (status: ").concat(null===(o=t.status)||void 0===o?void 0:o.value,")")),!1;var i=null===(a=t.trigger_product_type)||void 0===a||null===(a=a.value_string)||void 0===a?void 0:a.toLowerCase();if(k.log("Campaign ".concat(t.id," trigger type: ").concat(i)),2===(null===(r=t.type)||void 0===r?void 0:r.id)){if(k.log("Processing upsell campaign ".concat(t.id)),"specific products"===i){if(!t.trigger_products||!Array.isArray(t.trigger_products))return k.log("Campaign ".concat(t.id," has no valid trigger products")),!1;var c=t.trigger_products.some((function(t){var n=t.uuid||t.id,a=n===e;return k.log("Comparing product ".concat(n," with target ").concat(e,": ").concat(a)),a}));return k.log("Campaign ".concat(t.id," matches trigger product: ").concat(c)),c}return"all products"===i?(k.log("Campaign ".concat(t.id," accepts all products")),!0):(k.log("Campaign ".concat(t.id," has unhandled trigger type: ").concat(i)),!1)}return k.log("Campaign ".concat(t.id," is not an upsell campaign")),!0}));if(k.log("Active campaigns after filtering:",a),0===a.length)return k.log("No active campaigns found"),null;a.sort((function(t,e){var n,a,r,o;return 2===(null===(n=t.type)||void 0===n?void 0:n.id)&&2!==(null===(a=e.type)||void 0===a?void 0:a.id)?-1:2!==(null===(r=t.type)||void 0===r?void 0:r.id)&&2===(null===(o=e.type)||void 0===o?void 0:o.id)?1:(e.priority||0)-(t.priority||0)}));var r=a[0];return k.log("Selected highest priority campaign:",r),r}function yt(){return bt.apply(this,arguments)}function bt(){return(bt=a(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if((e=P())&&e.popupFactory){t.next=4;break}return k.error("State or PopupFactory is not initialized"),t.abrupt("return",null);case 4:return t.prev=4,t.next=7,e.popupFactory.createPopup("modal",{title:{en:"The campaign is loading..",ar:"جاري تحميل الحملة.."}},e.settings);case 7:if(n=t.sent){t.next=10;break}throw new Error("Failed to create loading popup component");case 10:return t.next=12,n.show();case 12:return t.abrupt("return",n);case 15:return t.prev=15,t.t0=t.catch(4),k.error("Error showing loading popup:",t.t0),t.abrupt("return",null);case 19:case"end":return t.stop()}}),t,null,[[4,15]])})))).apply(this,arguments)}function wt(t){return xt.apply(this,arguments)}function xt(){return(xt=a(f().mark((function t(e){var n,a,r,o,i,c,s,d;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Showing campaign popup with result:",e),e&&e.data&&"object"===b(e.data)){t.next=5;break}return k.error("Invalid campaign result:",e),N(O("campaign_error"),!0),t.abrupt("return",null);case 5:if((n=e.data.data)&&n.id){t.next=10;break}return k.error("Campaign data is missing or invalid:",n),N(O("campaign_error"),!0),t.abrupt("return",null);case 10:if((a=P())&&a.popupFactory){t.next=15;break}return k.error("State or PopupFactory is not initialized"),N(O("campaign_error"),!0),t.abrupt("return",null);case 15:return t.prev=15,c=(null===(r=n.style)||void 0===r||null===(r=r.title)||void 0===r||null===(r=r.en)||void 0===r?void 0:r.toLowerCase())||"modal",k.log("Creating popup of type:",c),t.next=20,a.popupFactory.createPopup(c,n,a.settings);case 20:if(s=t.sent){t.next=23;break}throw new Error("Failed to create popup component");case 23:return k.log("PopupComponent created:",s),s.setCampaignId(n.id),d={actionProducts:n.action_products||[],triggerProducts:n.trigger_products||[],couponInfo:{has_coupon:n.is_product_coupon_enabled,coupon:n.coupon},campaignType:null===(o=n.type)||void 0===o?void 0:o.id,card:n.card,alternativeProducts:n.alternative_products,isAlternativeProductEnabled:n.is_alternative_product_enabled,lastEventProductId:"add-remove-cart"===a.lastEventName?null===(i=a.lastEventData)||void 0===i?void 0:i.id:null,campaignSettings:n.campaign_settings},k.log("Calling showProducts with params:",d),t.next=29,s.showProducts(d.actionProducts,d.triggerProducts,d.couponInfo,d.campaignType,d.card,d.alternativeProducts,d.isAlternativeProductEnabled,d.lastEventProductId,d.campaignSettings);case 29:return t.abrupt("return",s);case 32:return t.prev=32,t.t0=t.catch(15),k.error("Error showing popup:",t.t0),R(t.t0,"Show Campaign Popup"),N(O("campaign_error"),!0),t.abrupt("return",null);case 38:case"end":return t.stop()}}),t,null,[[15,32]])})))).apply(this,arguments)}function zt(){var t=P();ft(t.lastEventID,t.lastEventName,t.lastEventData,!0)}function kt(t){ft("2","add-remove-cart",t)}function Ct(t){ft("3","add-remove-cart",t)}function _t(t){ft("1","start-checkout",t)}function St(t){ft("5","product-view",t)}function Et(t){ft("6","purchase",t)}var It=null;function Pt(){return Lt.apply(this,arguments)}function Lt(){return(Lt=a(f().mark((function t(){var e,n,a,r,o;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!It){t.next=2;break}return t.abrupt("return",It);case 2:if(e=P(),t.prev=3,!(n=localStorage.getItem("ziadah_settings"))){t.next=11;break}return a=JSON.parse(n),L({settings:a}),At(a),It=a,t.abrupt("return",a);case 11:return t.next=13,at(e.adapter);case 13:return r=t.sent,o=g(g({},H),r),L({settings:o}),At(o),It=o,localStorage.setItem("ziadah_settings",JSON.stringify(o)),t.abrupt("return",o);case 22:return t.prev=22,t.t0=t.catch(3),k.error("Error initializing settings:",t.t0),N(O("error_initializing_settings"),!0),L({settings:H}),At(H),It=H,localStorage.setItem("ziadah_settings",JSON.stringify(H)),t.abrupt("return",H);case 31:case"end":return t.stop()}}),t,null,[[3,22]])})))).apply(this,arguments)}function At(t){var e=document.createElement("style");e.textContent="\n :root {\n --ziadah-modal-radius: ".concat(t.modalRadius,";\n --ziadah-modal-background: ").concat(t.modalBackground,";\n --ziadah-main-color: ").concat(t.mainColor,";\n --ziadah-sub-color: ").concat(t.subColor,";\n --ziadah-font-family: ").concat(t.fontFamily,";\n --ziadah-font-size: ").concat(t.fontSize,";\n --ziadah-button-radius: ").concat(t.buttonRadius,";\n --ziadah-animation-duration: ").concat(t.animationDuration,";\n --ziadah-max-width: ").concat(t.maxWidth,";\n --ziadah-background-color: ").concat(t.backgroundColor,";\n --ziadah-text-color: ").concat(t.textColor,";\n --ziadah-header-text-color: ").concat(t.headerTextColor,";\n --ziadah-button-color: ").concat(t.buttonColor,";\n --ziadah-button-text-color: ").concat(t.buttonTextColor,";\n --ziadah-border-color: ").concat(t.borderColor,";\n --ziadah-hover-color: ").concat(t.hoverColor,";\n --ziadah-overlay-color: ").concat(t.overlayColor,";\n --ziadah-shadow-color: ").concat(t.shadowColor,";\n --ziadah-active-color: ").concat(t.activeColor,";\n --ziadah-font-weight: ").concat(t.fontWeight,";\n --ziadah-button-font-size: ").concat(t.buttonFontSize,";\n --ziadah-button-font-weight: ").concat(t.buttonFontWeight,";\n --ziadah-button-padding: ").concat(t.buttonPadding,";\n --ziadah-button-border-radius: ").concat(t.buttonBorderRadius,";\n --ziadah-product-border-radius: ").concat(t.productBorderRadius,";\n --ziadah-product-coupon-radius: ").concat(t.couponBorderRadius,";\n --ziadah-image-border-radius: ").concat(t.imageBorderRadius,";\n --ziadah-disabled-color: ").concat(t.disabledColor,";\n --ziadah-light-background-color: ").concat(t.lightBackgroundColor,";\n --ziadah-light-background-color-hover: ").concat(t.lightBackgroundColorHover,";\n --ziadah-dark-background-color: ").concat(t.darkBackgroundColor,";\n --ziadah-dark-background-color-hover: ").concat(t.darkBackgroundColorHover,";\n --ziadah-focus-shadow-color: ").concat(t.focusShadowColor,";\n --ziadah-attributes-font-size: ").concat(t.attributesFontSize,";\n --ziadah-icon-check: ").concat(t.iconCheckColor,";\n --ziadah-coupon-copied-color: ").concat(t.couponCopiedColor,";\n }\n \n ").concat(t.customCSS,"\n \n /* User-defined CSS overrides */\n ").concat(ut(t.userCSS),"\n ");var n=document.getElementById("ziadah-styles");n&&n.remove(),e.id="ziadah-styles",document.head.appendChild(e)}var Ot="1",Dt="2",Tt="3",Nt="4",Rt="5",Ft="6",Mt="ziadah_initialization_timestamp",jt=18e5,Ut=function(t){function e(){var t;return o(this,e),(t=r(this,e)).attachShadow({mode:"open"}),t._initialized=!1,t.lastInitializationTime=0,t._eventListenersSetup=!1,t._adapterInitialized=!1,t._popupFactoryInitialized=!1,t._campaignsInitialized=!1,t._cachedCampaignsLogged=!1,t._orderHandled=!1,t.orderObserver=new MutationObserver((function(e){var n,a=s(e);try{for(a.s();!(n=a.n()).done;){var r=n.value;if("childList"===r.type){var o,i=s(r.addedNodes);try{for(i.s();!(o=i.n()).done;){if(o.value.nodeType===Node.ELEMENT_NODE&&t.isOrderConfirmationPage()&&!t._orderHandled)return k.log("Order confirmation page detected by observer"),t.handleOrderPage(),void t.orderObserver.disconnect()}}catch(t){i.e(t)}finally{i.f()}}}}catch(t){a.e(t)}finally{a.f()}})),t}return u(e,t),c(e,[{key:"adapter",get:function(){return this._adapter}},{key:"getPlatform",value:function(){return"undefined"!=typeof window&&window.Shopify?"shopify":"undefined"!=typeof window&&window.Salla?"salla":"zid"}},{key:"shouldInitialize",value:function(){var t=localStorage.getItem(Mt);if(!t)return!0;var e=Date.now()-parseInt(t,10);return k.log("Time since last initialization: ".concat(e/1e3," seconds")),e>jt?(k.log("Initialization expired, reinitializing"),!0):(k.log("Using stored initialization"),!1)}},{key:"setInitializationTimestamp",value:function(){localStorage.setItem(Mt,Date.now().toString())}},{key:"connectedCallback",value:(x=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:return k.log("ZiadahPlugin connectedCallback called"),t.next=3,this.initializeIfNeeded();case 3:k.log("ConnectedCallback complete. Current state:",P()),this._cachedCampaignsLogged||(this.logCachedCampaigns(),this._cachedCampaignsLogged=!0),this.orderObserver.observe(document.body,{childList:!0,subtree:!0}),this.isOrderConfirmationPage()&&!this._orderHandled&&(k.log("Order confirmation page detected on initial load"),this.handleOrderPage());case 7:case"end":return t.stop()}}),t,this)}))),function(){return x.apply(this,arguments)})},{key:"isOrderConfirmationPage",value:function(){return window.location.pathname.includes("/order-confirmation")||null!==document.querySelector(".order-confirmation")}},{key:"initializeIfNeeded",value:(w=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!((e=Date.now())-this.lastInitializationTime>jt)){t.next=8;break}return k.log("Initialization expired, reinitializing"),t.next=5,this.initialize();case 5:this.lastInitializationTime=e,t.next=11;break;case 8:return k.log("Using cached initialization data"),t.next=11,this.restoreState();case 11:if(!this.adapter||"function"!=typeof this.adapter.initializeCampaigns||this._campaignsInitialized){t.next=16;break}return k.log("Initializing campaigns"),t.next=15,this.adapter.initializeCampaigns();case 15:this._campaignsInitialized=!0;case 16:case"end":return t.stop()}}),t,this)}))),function(){return w.apply(this,arguments)})},{key:"logCachedCampaigns",value:function(){this._adapter&&"function"==typeof this._adapter.logCachedCampaigns?this._adapter.logCachedCampaigns():k.log("Adapter does not support logging cached campaigns")}},{key:"initialize",value:(y=a(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._initialized){t.next=3;break}return k.log("Plugin already initialized, skipping initialization"),t.abrupt("return");case 3:return t.prev=3,t.next=6,Pt();case 6:return e=t.sent,n=this.mergeWithOtherSettings(e),t.next=10,this.initializePlugin(n);case 10:this.lastInitializationTime=Date.now(),localStorage.setItem("ziadahPluginInitData",JSON.stringify({settings:n,timestamp:this.lastInitializationTime})),this._initialized=!0,t.next=18;break;case 15:t.prev=15,t.t0=t.catch(3),k.error("Failed to initialize plugin:",t.t0);case 18:case"end":return t.stop()}}),t,this,[[3,15]])}))),function(){return y.apply(this,arguments)})},{key:"mergeWithOtherSettings",value:function(t){return t}},{key:"initializePlugin",value:(m=a(f().mark((function t(e){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Initializing plugin"),L({settings:e}),this._adapterInitialized){t.next=5;break}return t.next=5,this.initializeAdapter(e);case 5:this._popupFactoryInitialized||this.initPopupFactory(),this._eventListenersSetup||this.setupEventListeners(),L({pluginActive:!0}),this.setInitializationTimestamp(),k.log("Plugin initialization complete. Current state:",P());case 10:case"end":return t.stop()}}),t,this)}))),function(t){return m.apply(this,arguments)})},{key:"getSettings",value:(g=a(f().mark((function t(){var e,n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!(e=localStorage.getItem("ziadah_settings"))){t.next=4;break}return k.log("Using saved settings from localStorage"),t.abrupt("return",JSON.parse(e));case 4:return k.log("No saved settings found, fetching from server"),t.prev=5,t.next=8,this.adapter.fetchSettings();case 8:return n=t.sent,localStorage.setItem("ziadah_settings",JSON.stringify(n)),t.abrupt("return",n);case 13:return t.prev=13,t.t0=t.catch(5),k.warn("Error fetching settings, using fallback settings",t.t0),a=this.getFallbackSettings(),localStorage.setItem("ziadah_settings",JSON.stringify(a)),t.abrupt("return",a);case 19:case"end":return t.stop()}}),t,this,[[5,13]])}))),function(){return g.apply(this,arguments)})},{key:"getFallbackSettings",value:function(){return{theme:{primary:"#3498db",secondary:"#2ecc71",textColor:"#333333",backgroundColor:"#ffffff"},fonts:{primary:"'Rubik', Arial, sans-serif",fontSize:"16px"},layout:{maxWidth:"800px"},language:"en",currency:{code:"SAR",symbol:"ر.س"}}}},{key:"initializeAdapter",value:(h=a(f().mark((function t(e){var n,a;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this._adapterInitialized){t.next=3;break}return k.log("Adapter already initialized, skipping"),t.abrupt("return");case 3:k.log("Creating new adapter"),n=this.getPlatform(),this._adapter=K(n),L({adapter:this._adapter}),a=P(),this._adapter.language=a.language||document.documentElement.lang||"en","function"==typeof this._adapter.applySettings?this._adapter.applySettings(e):(k.warn("adapter.applySettings is not a function. Settings will be set directly on the adapter."),this._adapter.settings=e),this._adapterInitialized=!0,k.log("Adapter initialized");case 12:case"end":return t.stop()}}),t,this)}))),function(t){return h.apply(this,arguments)})},{key:"restoreState",value:(p=a(f().mark((function t(){var e,n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Restoring plugin state"),!(e=P()).settings){t.next=7;break}return t.next=5,this.initializeAdapter(e.settings);case 5:t.next=14;break;case 7:return k.warn("No settings found in state, fetching new settings"),t.next=10,this.getSettings();case 10:return n=t.sent,L({settings:n}),t.next=14,this.initializeAdapter(n);case 14:this.initPopupFactory(),this.setupEventListeners(),L({pluginActive:!0}),k.log("Plugin state restored. Current state:",P());case 18:case"end":return t.stop()}}),t,this)}))),function(){return p.apply(this,arguments)})},{key:"initPopupFactory",value:function(){this._popupFactoryInitialized?k.log("PopupFactory already initialized, skipping"):(k.log("Initializing PopupFactory"),this.popupFactory=new gt(this.shadowRoot,this._adapter),L({popupFactory:this.popupFactory}),this._popupFactoryInitialized=!0,k.log("PopupFactory initialized:",this.popupFactory))}},{key:"setupEventListeners",value:function(){if(this._eventListenersSetup)k.log("Event listeners already set up, skipping");else{var t={"product-view":{id:Rt,handler:function(t){return ft(Rt,"product-view",t.detail)}},"add-to-cart":{id:Dt,handler:function(t){return ft(Dt,"add-remove-cart",t.detail)}},"remove-from-cart":{id:Tt,handler:function(t){return ft(Tt,"add-remove-cart",t.detail)}},"start-checkout":{id:Ot,handler:function(){return ft(Ot,"start-checkout",{})}},purchase:{id:Ft,handler:function(t){return ft(Ft,"purchase",t.detail)}},"product-page-leave":{id:Nt,handler:function(){return ft(Nt,"product-page-leave",{})}}};Object.entries(t).forEach((function(t){var e=v(t,2),n=e[0],a=e[1].handler;document.addEventListener(n,a)})),this._eventListenersSetup=!0}}},{key:"showPopup",value:(l=a(f().mark((function t(e){var n;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,k.log("Showing popup for campaign:",JSON.stringify(e,null,2)),this.popupFactory){t.next=5;break}return k.error("PopupFactory is not initialized"),t.abrupt("return");case 5:return t.next=7,this.adapter.fetchSettings();case 7:return n=t.sent,t.next=10,this.showCampaignPopup(e,{popupFactory:this.popupFactory,settings:n,lastEventName:this.lastEventName,lastEventData:this.lastEventData});case 10:t.next=16;break;case 12:t.prev=12,t.t0=t.catch(0),k.error("Error showing popup:",t.t0),k.error("Stack trace:",t.t0.stack);case 16:case"end":return t.stop()}}),t,this,[[0,12]])}))),function(t){return l.apply(this,arguments)})},{key:"showCampaignPopup",value:function(){var t=a(f().mark((function t(e){var n,a,r,o,i,c,s;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(k.log("Showing campaign popup with data:",e),e&&e.id){t.next=5;break}return k.error("Invalid campaign data"),N(O("campaign_error"),!0),t.abrupt("return");case 5:if(n=P(),k.log("Current state before showing popup:",n),n.popupFactory||(k.warn("PopupFactory not found in state, attempting to initialize"),this.initPopupFactory(),a=P(),k.log("State after re-initializing PopupFactory:",a)),n.popupFactory){t.next=12;break}return k.error("Failed to initialize PopupFactory"),N(O("campaign_error"),!0),t.abrupt("return");case 12:return t.prev=12,c=(null===(r=e.style)||void 0===r||null===(r=r.title)||void 0===r||null===(r=r.en)||void 0===r?void 0:r.toLowerCase())||"modal",k.log("Creating popup of type:",c),k.log("PopupFactory instance:",n.popupFactory),t.next=18,n.popupFactory.createPopup(c,e,n.settings);case 18:if(s=t.sent){t.next=21;break}throw new Error("Failed to create popup component");case 21:return k.log("Popup component created successfully:",s),t.next=24,s.showProducts(e.action_products||[],e.trigger_products||[],{has_coupon:e.is_product_coupon_enabled,coupon:e.coupon},null===(o=e.type)||void 0===o?void 0:o.id,e.card,e.alternative_products,e.is_alternative_product_enabled,"add-remove-cart"===n.lastEventName?null===(i=n.lastEventData)||void 0===i?void 0:i.id:null,e.campaign_settings);case 24:t.next=30;break;case 26:t.prev=26,t.t0=t.catch(12),k.error("Error showing popup:",t.t0),N(O("campaign_error"),!0);case 30:case"end":return t.stop()}}),t,this,[[12,26]])})));return function(e){return t.apply(this,arguments)}}()},{key:"refreshCampaigns",value:(d=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!this.adapter||"function"!=typeof this.adapter.forceRefreshAllCampaigns){t.next=15;break}return t.prev=1,t.next=4,this.adapter.forceRefreshAllCampaigns();case 4:return e=t.sent,k.log("All campaigns forcefully refreshed : Plugin"),t.abrupt("return",e);case 9:throw t.prev=9,t.t0=t.catch(1),k.error("Error forcefully refreshing campaigns:",t.t0),t.t0;case 13:t.next=17;break;case 15:throw k.error("Adapter does not support force refreshing all campaigns"),new Error("Force refresh not supported");case 17:case"end":return t.stop()}}),t,this,[[1,9]])}))),function(){return d.apply(this,arguments)})},{key:"handleOrderPage",value:(i=a(f().mark((function t(){var e,n,a,r,o;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(e=this.getOrderIdFromDOM()){t.next=3;break}return t.abrupt("return");case 3:if(!(n=JSON.parse(localStorage.getItem("processedOrders")||"[]")).includes(e)){t.next=6;break}return t.abrupt("return");case 6:if(a=JSON.parse(localStorage.getItem("savedCampaigns")||"[]"),r=a.filter((function(t){return"modal"===t.source})),!(r.length>0)){t.next=15;break}return o=this.adapter,t.next=12,o.sendConversionData(o.getStoreId(),r);case 12:n.push(e),localStorage.setItem("processedOrders",JSON.stringify(n)),localStorage.removeItem("savedCampaigns");case 15:case"end":return t.stop()}}),t,this)}))),function(){return i.apply(this,arguments)})},{key:"clearSentCampaigns",value:function(t){var e="ziadah_modal_saved_campaigns",n=JSON.parse(localStorage.getItem(e)||"[]");k.log("Clearing campaigns. Before:",n);var a=n.filter((function(e){return!t.some((function(t){return t.uuid===e.uuid&&t.campaign_id===e.campaign_id}))}));a.length>0?(localStorage.setItem(e,JSON.stringify(a)),k.log("Updated localStorage. After:",a)):(localStorage.removeItem(e),k.log("All campaigns were sent, removed modalSavedCampaignsKey from localStorage"))}},{key:"getOrderIdFromDOM",value:function(){for(var t=0,e=[".order-number","#order-id","[data-order-id]",".order-details h1",".invoice-body td.d-flex > div"];t<e.length;t++){var n=e[t],a=document.querySelector(n);if(a){var r=a.textContent.trim().match(/(\d+)/);if(r)return k.log("Order ID found: ".concat(r[1])),r[1]}}return k.error("Unable to find order ID in the DOM"),null}},{key:"handlePurchase",value:(n=a(f().mark((function t(e){var n,a,r,o,i,c;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(t.prev=0,n=P(),a=n.adapter,r=a.getStoreId(),k.log("Purchase event:",e),e&&"object"===b(e)){t.next=8;break}throw k.error("Invalid purchase data:",e),new Error("Invalid purchase data");case 8:if(o={orderId:e.orderId||"unknown",total:e.total||0,currency:e.currency||"USD",products:Array.isArray(e.products)?e.products.map((function(t){return{id:t.id||"unknown",name:t.name||"Unknown Product",price:t.price||0,quantity:t.quantity||1,category:t.category||"Uncategorized"}})):[]},i=JSON.parse(localStorage.getItem("savedCampaigns")||"[]"),c=i.filter((function(t){return o.products.some((function(e){return e.id===t.uuid}))})),!(c.length>0)){t.next=15;break}return t.next=14,a.sendConversionData(r,c);case 14:localStorage.removeItem("savedCampaigns");case 15:return this.updatePurchaseUI(o),t.next=18,ft.call(this,Ft,"post-purchase",o);case 18:t.next=24;break;case 20:t.prev=20,t.t0=t.catch(0),k.error("Error handling purchase:",t.t0),N(O("error_processing_purchase"),!0);case 24:case"end":return t.stop()}}),t,this,[[0,20]])}))),function(t){return n.apply(this,arguments)})},{key:"updatePurchaseUI",value:function(t){k.log("Updating UI with purchase data:",t);var e=document.getElementById("purchase-confirmation");e&&(e.textContent="Thank you for your purchase! Order ID: ".concat(t.orderId))}},{key:"setLanguage",value:function(t){P().languages[t]?(L({language:t}),this.updateUI()):(k.warn("Language '".concat(t,"' is not supported. Falling back to English.")),L({language:"en"}))}},{key:"updateUI",value:function(){var t=P();t.activePopup&&t.activePopup.updateContent()}},{key:"restartCampaign",value:function(){zt.call(this)}},{key:"disconnectedCallback",value:function(){var t=this;k.log("ZiadahPlugin disconnectedCallback called"),this.cleanup(),this.orderObserver.disconnect();["product-view","add-to-cart","remove-from-cart","start-checkout","purchase","product-page-leave"].forEach((function(e){document.removeEventListener(e,t["handle".concat(e.replace(/-./g,(function(t){return t[1].toUpperCase()})))])}))}},{key:"cleanup",value:function(){k.log("Cleaning up ZiadahPlugin"),L({pluginActive:!1})}},{key:"isInitialized",value:function(){return this._initialized}}]);var n,i,d,l,p,h,g,m,y,w,x}(x(HTMLElement));customElements.define("ziadah-plugin",Ut);var Bt=!1,qt=null;function Ht(){return Vt.apply(this,arguments)}function Vt(){return(Vt=a(f().mark((function t(){var e;return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!Bt){t.next=3;break}return k.log("Ziadah plugin already initialized"),t.abrupt("return");case 3:if(k.log("Attempting to initialize Ziadah plugin"),window.zid){t.next=7;break}return k.highlight("Zid store object not found. Cannot initialize Ziadah plugin."),t.abrupt("return");case 7:return qt||(qt=document.querySelector("ziadah-plugin"))||(qt=document.createElement("ziadah-plugin"),document.body.appendChild(qt)),t.next=10,qt.initialize();case 10:(e=qt.adapter)?(e.setCampaignsUpdatedCallback((function(t){k.log("Campaigns were silently updated:",t)})),e.startPeriodicUpdates()):k.error("ZiadahAdapter not found in the plugin"),window.restartZiadahCampaign=function(){return qt.restartCampaign()},window.setZiadahLanguage=function(t){return qt.setLanguage(t)},window.triggerZiadahCampaign=function(t,e,n){document.dispatchEvent(new CustomEvent(e,{detail:n}))},window.resetZiadahPlugin=function(){L({pluginActive:!1}),Bt=!1,e&&e.clearCache(),k.log("Ziadah plugin state reset and cache cleared")},window.isZiadahPluginActive=function(){return P().pluginActive},window.logZiadahCachedCampaigns=function(){qt&&"function"==typeof qt.logCachedCampaigns?qt.logCachedCampaigns():k.log("ZiadahPlugin not found or logCachedCampaigns method not available")},window.forceRefreshZiadahCampaigns=a(f().mark((function t(){return f().wrap((function(t){for(;;)switch(t.prev=t.next){case 0:if(!qt||"function"!=typeof qt.refreshCampaigns){t.next=12;break}return t.prev=1,t.next=4,qt.refreshCampaigns();case 4:k.log("All campaigns refreshed: Index"),t.next=10;break;case 7:t.prev=7,t.t0=t.catch(1),k.error("Error refreshing campaigns:",t.t0);case 10:t.next=13;break;case 12:k.error("ZiadahPlugin or refreshCampaigns method not found");case 13:case"end":return t.stop()}}),t,null,[[1,7]])}))),window.changeZiadahUpdateInterval=function(t){e&&"function"==typeof e.changeUpdateInterval?e.changeUpdateInterval(t):k.error("Ziadah adapter or changeUpdateInterval method not found")},window.logZiadahLocalStorage=function(){k.log("All localStorage items:");for(var t=0;t<localStorage.length;t++){var e=localStorage.key(t),n=localStorage.getItem(e);k.log("".concat(e,": ").concat(n))}},window.addEventListener("ziadahCampaignsUpdated",(function(t){k.log("ziadahCampaignsUpdated event received",t.detail);var e=t.detail,n=P(),a=Object.values(e).flatMap((function(t){return t.data}));L(g(g({},n),{},{campaigns:a})),k.log("State updated with new campaigns:",a)})),Bt=!0,k.log("Ziadah plugin initialized successfully"),window.campaign=ft,window.restartCampaign=zt,window.handleAddToCart=kt,window.handleRemoveFromCart=Ct,window.handleStartCheckout=_t,window.handleProductView=St,window.handlePurchase=Et;case 31:case"end":return t.stop()}}),t)})))).apply(this,arguments)}return k.setLogLevel("error",!0),k.setLogLevel("warn",!0),k.setLogLevel("info",!0),k.setLogLevel("log",!0),k.setLogLevel("highlight",!0),"loading"===document.readyState?document.addEventListener("DOMContentLoaded",Ht,{once:!0}):Ht(),window.ZIADAH_PLUGIN_VERSION="1.0.1","undefined"!=typeof window&&(window.campaign||(window.campaign=ft)),t.initZiadahPlugin=Ht,Object.defineProperty(t,"__esModule",{value:!0}),t}({});
//# sourceMappingURL=index.min.js.map
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment