{"version":3,"file":"wpm-public.p1.min.js","mappings":"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","sources":["webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/facebook/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/ads/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga3/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/ga4/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/analytics/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/base/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/google/optimize/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/hotjar/loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/cookie_consent.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/event_listeners.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/functions_loader.js","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/wpm/init.js","webpack://Pixel-Manager-for-WooCommerce/webpack/bootstrap","webpack://Pixel-Manager-for-WooCommerce/./src/js/public/main.js"],"sourcesContent":["/**\n * All event listeners\n *\n * https://developers.facebook.com/docs/meta-pixel/reference\n * */\n\n// Load pixel event\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.facebook?.pixel_id && !wpmDataLayer?.pixels?.facebook?.loaded) {\n\t\tif (wpm.canIFire(\"ads\", \"facebook-ads\")) wpm.loadFacebookPixel()\n\t}\n})\n\n// AddToCart event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToCart\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\tconsole.log(product)\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToCart\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// InitiateCheckout event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmBeginCheckout\", function (event) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"InitiateCheckout\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"InitiateCheckout\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// AddToWishlist event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmAddToWishlist\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"AddToWishlist\", {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_name: product.name,\n\t\t\tcontent_ids : product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\tvalue : parseFloat(product.quantity * product.price),\n\t\t\tcurrency : product.currency,\n\t\t}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"AddToWishlist\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// ViewContent event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmViewItem\", function (event, product) {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.fbViewContent(product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view search event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tlet eventId = wpm.getRandomEventId()\n\n\t\tfbq(\"track\", \"Search\", {}, {\n\t\t\teventID: eventId,\n\t\t})\n\n\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\tevent_name : \"Search\",\n\t\t\tevent_id : eventId,\n\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\tevent_source_url: window.location.href,\n\t\t\tcustom_data : {\n\t\t\t\tsearch_string: wpm.getSearchTermFromUrl(),\n\t\t\t},\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// load always event\njQuery(document).on(\"wpmLoadAlways\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\twpm.setFbUserData()\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view order received page event\n// https://developers.facebook.com/docs/meta-pixel/reference\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\n\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\tfbq(\"track\", \"Purchase\",\n\t\t\t{\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tcontent_ids : wpm.facebookContentIds(),\n\t\t\t},\n\t\t\t{eventID : wpmDataLayer.order.id},\n\t\t)\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Add functions for Facebook\n * */\n\n(function (wpm, $, undefined) {\n\n\tlet fBUserData\n\n\twpm.loadFacebookPixel = () => {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.facebook.loaded = true\n\n\t\t\t// @formatter:off\n\t\t\t!function(f,b,e,v,n,t,s)\n\t\t\t{if(f.fbq)return;n=f.fbq=function(){n.callMethod?\n\t\t\t\tn.callMethod.apply(n,arguments):n.queue.push(arguments)};\n\t\t\t\tif(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';\n\t\t\t\tn.queue=[];t=b.createElement(e);t.async=!0;\n\t\t\t\tt.src=v;s=b.getElementsByTagName(e)[0];\n\t\t\t\ts.parentNode.insertBefore(t,s)}(window, document,'script',\n\t\t\t\t'https://connect.facebook.net/en_US/fbevents.js');\n\t\t\t// @formatter:on\n\n\t\t\t// https://developers.facebook.com/docs/meta-pixel/advanced/advanced-matching\n\n\t\t\tlet data = {}\n\t\t\tif (wpmDataLayer?.user?.id) data.external_id = wpmDataLayer.user.id\n\t\t\tif (wpmDataLayer?.order?.user_id) data.external_id = wpmDataLayer.order.user_id\n\t\t\tif (wpmDataLayer?.order?.billing_email_hashed) data.em = wpmDataLayer.order.billing_email_hashed\n\t\t\tif (wpmDataLayer?.order?.billing_first_name) data.fn = wpmDataLayer.order.billing_first_name\n\t\t\tif (wpmDataLayer?.order?.billing_last_name) data.ln = wpmDataLayer.order.billing_last_name\n\t\t\tif (wpmDataLayer?.order?.billing_phone) data.ph = wpmDataLayer.order.billing_phone\n\t\t\tif (wpmDataLayer?.order?.billing_city) data.ct = wpmDataLayer.order.billing_city\n\t\t\tif (wpmDataLayer?.order?.billing_state) data.st = wpmDataLayer.order.billing_state\n\t\t\tif (wpmDataLayer?.order?.billing_postcode) data.zp = wpmDataLayer.order.billing_postcode\n\t\t\tif (wpmDataLayer?.order?.billing_country) data.country = wpmDataLayer.order.billing_country\n\n\t\t\tfbq(\"init\", wpmDataLayer.pixels.facebook.pixel_id, data)\n\t\t\tfbq(\"track\", \"PageView\")\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getRandomEventId = () => (Math.random() + 1).toString(36).substring(2)\n\n\twpm.getFbUserData = () => {\n\n\t\t/**\n\t\t * We need the first one for InitiateCheckout\n\t\t * where getting the user_data from the browser is too slow\n\t\t * using wpm.getCookie(), so we cache the user_data earlier.\n\t\t * And we need the second one because the ViewContent hit happens too fast\n\t\t * after adding a variation to the cart because the function to cache\n\t\t * the user_data is too slow. But we can get the user_data using wpm.getCookie()\n\t\t * because we don't move away from the page and can wait for the browser\n\t\t * to get it.\n\t\t */\n\n\t\tif (fBUserData) {\n\t\t\treturn fBUserData\n\t\t} else {\n\t\t\treturn wpm.getFbUserDataFromBrowser()\n\t\t}\n\t}\n\n\twpm.setFbUserData = () => {\n\t\tfBUserData = wpm.getFbUserDataFromBrowser()\n\t}\n\n\twpm.getFbUserDataFromBrowser = () => {\n\n\t\tlet\n\t\t\tdata = {}\n\n\t\tif (wpm.getCookie(\"_fbp\")) {\n\t\t\tdata.fbp = wpm.getCookie(\"_fbp\")\n\t\t}\n\n\t\tif (wpm.getCookie(\"_fbc\")) {\n\t\t\tdata.fbp = wpm.getCookie(\"_fbc\")\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.external_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (navigator.userAgent) {\n\t\t\tdata.client_user_agent = navigator.userAgent\n\t\t}\n\n\t\treturn data\n\t}\n\n\twpm.fbViewContent = product => {\n\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getRandomEventId()\n\n\t\t\tfbq(\"track\", \"ViewContent\", {\n\t\t\t\tcontent_type: \"product\",\n\t\t\t\tcontent_name: product.name,\n\t\t\t\t// content_category: product.category,\n\t\t\t\tcontent_ids: product.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\t\tvalue : product.price,\n\t\t\t}, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tproduct[\"currency\"] = wpmDataLayer.shop.currency\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\t\tevent_name : \"ViewContent\",\n\t\t\t\tevent_id : eventId,\n\t\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\t\tevent_source_url: window.location.href,\n\t\t\t\tcustom_data : wpm.fbGetProductDataForCapiEvent(product),\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fbGetProductDataForCapiEvent = product => {\n\t\treturn {\n\t\t\tcontent_type: \"product\",\n\t\t\tcontent_ids : [\n\t\t\t\tproduct.dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type],\n\t\t\t],\n\t\t\tvalue : product.quantity * product.price,\n\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t}\n\t}\n\n\twpm.facebookContentIds = () => {\n\t\tlet prodIds = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t} else {\n\t\t\t\tprodIds.push(String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.facebook.dynamic_remarketing.id_type]))\n\t\t\t}\n\t\t}\n\n\t\treturn prodIds\n\t}\n\n\twpm.trackCustomFacebookEvent = (eventName, customData = {}) => {\n\t\ttry {\n\t\t\tif (!wpmDataLayer?.pixels?.facebook?.loaded) return\n\n\t\t\tlet eventId = wpm.getRandomEventId()\n\n\t\t\tfbq(\"trackCustom\", eventName, customData, {\n\t\t\t\teventID: eventId,\n\t\t\t})\n\n\t\t\tjQuery(document).trigger(\"wpmFbCapiEvent\", {\n\t\t\t\tevent_name : eventName,\n\t\t\t\tevent_id : eventId,\n\t\t\t\tuser_data : wpm.getFbUserData(),\n\t\t\t\tevent_source_url: window.location.href,\n\t\t\t\tcustom_data : customData,\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Facebook loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n\n","/**\n * Load Google Ads event listeners\n * */\n\n// view_item_list event\njQuery(document).on(\"wpmViewItemList\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tif (\n\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\tproduct.isVariable &&\n\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t) return\n\n\t\t// try to prevent that WC sends cached hits to Google\n\t\tif (!product) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item_list\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// add_to_cart event\njQuery(document).on(\"wpmAddToCart\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : product.quantity * product.price,\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : product.quantity,\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"add_to_cart\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// view_item event\njQuery(document).on(\"wpmViewItem\", function (event, product) {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : (product.quantity ? product.quantity : 1) * product.price,\n\t\t\titems : [{\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tquantity : (product.quantity ? product.quantity : 1),\n\t\t\t\tprice : product.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}],\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_item\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view search event\njQuery(document).on(\"wpmSearch\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\n\t\tlet products = []\n\n\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n\n\t\t\tif (\n\t\t\t\twpmDataLayer?.general?.variationsOutput &&\n\t\t\t\tproduct.isVariable &&\n\t\t\t\twpmDataLayer.pixels.google.ads.dynamic_remarketing.send_events_with_parent_ids === false\n\t\t\t) return\n\n\t\t\tproducts.push({\n\t\t\t\tid : product.dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type],\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t})\n\t\t}\n\n\t\t// console.log(products);\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\t// value : 1 * product.price,\n\t\t\titems: products,\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"view_search_results\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// view order received page event\n// TODO distinguish with or without cart data active\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\titems : wpm.getGoogleAdsDynamicRemarketingOrderItems(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", data)\n\t\t})\n\n\t\t// console.log(wpm.getGoogleAdsDynamicRemarketingOrderItems())\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// user log in event\njQuery(document).on(\"wpmLogin\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpmDataLayer?.pixels?.google?.ads?.dynamic_remarketing?.status) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data = {\n\t\t\tsend_to: wpm.getGoogleAdsConversionIdentifiers(),\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"login\", data)\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// conversion event\n// new_customer parameter: https://support.google.com/google-ads/answer/9917012\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) return\n\t\tif (!wpm.googleConfigConditionsMet(\"ads\")) return\n\n\t\tlet data_basic = {}\n\t\tlet data_with_cart = {}\n\n\t\tdata_basic = {\n\t\t\tsend_to : wpm.getGoogleAdsConversionIdentifiersWithLabel(),\n\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\tvalue : wpmDataLayer.order.value_filtered,\n\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\tnew_customer : wpmDataLayer.order.new_customer,\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.clv_order_value_filtered) {\n\t\t\tdata_basic.customer_lifetime_value = wpmDataLayer.order.clv_order_value_filtered\n\t\t}\n\n\t\tif (wpmDataLayer?.user?.id) {\n\t\t\tdata_basic.user_id = wpmDataLayer.user.id\n\t\t}\n\n\t\tif (wpmDataLayer?.order?.aw_merchant_id) {\n\t\t\tdata_with_cart = {\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\taw_merchant_id : wpmDataLayer.order.aw_merchant_id,\n\t\t\t\taw_feed_country : wpmDataLayer.order.aw_feed_country,\n\t\t\t\taw_feed_language: wpmDataLayer.order.aw_feed_language,\n\t\t\t\titems : wpm.getGoogleAdsRegularOrderItems(),\n\t\t\t}\n\t\t}\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"conversion\", {...data_basic, ...data_with_cart})\n\t\t})\n\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load Google Ads functions\n * */\n\n(function (wpm, $, undefined) {\n\n\tlet conversionIdentifiers = []\n\n\twpm.getGoogleAdsConversionIdentifiersWithLabel = function () {\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tconversionIdentifiers.push(key + \"/\" + item)\n\t\t}\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsConversionIdentifiers = function () {\n\n\t\tlet conversionIdentifiers = []\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\tconversionIdentifiers.push(key)\n\t\t}\n\n\t\treturn conversionIdentifiers\n\t}\n\n\twpm.getGoogleAdsRegularOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.getGoogleAdsDynamicRemarketingOrderItems = function () {\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tgoogle_business_vertical: wpmDataLayer.pixels.google.ads.google_business_vertical,\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.ads.dynamic_remarketing.id_type])\n\t\t\t\torderItems.push(orderItem)\n\t\t\t}\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load Google Ads\n */\n\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Google Universal Analytics (GA3) event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.universal.property_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGAUAOrderItems(),\n\t\t\t})\n\t\t})\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Add functions for Google Analytics Universal\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGAUAOrderItems = function () {\n\n\t\t// \"id\" : \"34\",\n\t\t// \"name\" : \"Hoodie\",\n\t\t// \"brand\" : \"\",\n\t\t// \"category\" : \"Hoodies\",\n\t\t// \"list_position\": 1,\n\t\t// \"price\" : 45,\n\t\t// \"quantity\" : 1,\n\t\t// \"variant\" : \"Color: blue | Logo: yes\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity: item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\tname : item.name,\n\t\t\t\tcurrency: wpmDataLayer.order.currency,\n\t\t\t\tcategory: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItem = wpm.ga3AddListNameToProduct(orderItem)\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n\twpm.ga3AddListNameToProduct = function (item_data, productPosition = null) {\n\n\t\t// if (wpm.ga3CanProductListBeSet(item_data.id)) {\n\t\t// \titem_data.listname = wpmDataLayer.shop.list_name\n\t\t//\n\t\t// \tif (productPosition) {\n\t\t// \t\titem_data.list_position = productPosition\n\t\t// \t}\n\t\t// }\n\n\t\titem_data.list_name = wpmDataLayer.shop.list_name\n\n\t\tif (productPosition) {\n\t\t\titem_data.list_position = productPosition\n\t\t}\n\n\t\treturn item_data\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Google Universal Analytics (GA3) loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load GA4 event listeners\n * */\n\n\n// view order received page event\njQuery(document).on(\"wpmOrderReceivedPage\", function () {\n\n\ttry {\n\t\tif (!wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) return\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.mp_active) return\n\t\tif (!wpm.googleConfigConditionsMet(\"analytics\")) return\n\n\t\twpm.gtagLoaded().then(function () {\n\t\t\tgtag(\"event\", \"purchase\", {\n\t\t\t\tsend_to : [wpmDataLayer.pixels.google.analytics.ga4.measurement_id],\n\t\t\t\ttransaction_id: wpmDataLayer.order.number,\n\t\t\t\taffiliation : wpmDataLayer.order.affiliation,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\tvalue : wpmDataLayer.order.value_regular,\n\t\t\t\tdiscount : wpmDataLayer.order.discount,\n\t\t\t\ttax : wpmDataLayer.order.tax,\n\t\t\t\tshipping : wpmDataLayer.order.shipping,\n\t\t\t\tcoupon : wpmDataLayer.order.coupon,\n\t\t\t\titems : wpm.getGA4OrderItems(),\n\t\t\t})\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n","/**\n * Load GA4 functions\n * */\n\n(function (wpm, $, undefined) {\n\n\twpm.getGA4OrderItems = function () {\n\n\t\t// \"item_id\" : \"34\",\n\t\t// \"item_name\" : \"Hoodie\",\n\t\t// \"quantity\" : 1,\n\t\t// \"item_brand\" : \"\",\n\t\t// \"item_variant\" : \"Color: blue | Logo: yes\",\n\t\t// \"price\" : 45,\n\t\t// \"currency\" : \"CHF\",\n\t\t// \"item_category\": \"Hoodies\"\n\n\n\t\tlet orderItems = []\n\n\t\tfor (const [key, item] of Object.entries(wpmDataLayer.order.items)) {\n\n\t\t\tlet orderItem\n\n\t\t\torderItem = {\n\t\t\t\tquantity : item.quantity,\n\t\t\t\tprice : item.price,\n\t\t\t\titem_name : item.name,\n\t\t\t\tcurrency : wpmDataLayer.order.currency,\n\t\t\t\titem_category: wpmDataLayer.products[item.id].category.join(\"/\"),\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.general?.variationsOutput && 0 !== item.variation_id) {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.variation_id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_variant = wpmDataLayer.products[item.variation_id].variant_name\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.variation_id].brand\n\t\t\t} else {\n\n\t\t\t\torderItem.item_id = String(wpmDataLayer.products[item.id].dyn_r_ids[wpmDataLayer.pixels.google.analytics.id_type])\n\t\t\t\torderItem.item_brand = wpmDataLayer.products[item.id].brand\n\t\t\t}\n\n\t\t\torderItems.push(orderItem)\n\t\t}\n\n\t\treturn orderItems\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * GA4 loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Google Analytics loader\n */\n\nrequire(\"./ga3/loader\")\nrequire(\"./ga4/loader\")\n","/**\n * Load Google base event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") {\n\t\tif (wpm.canGoogleLoad()) {\n\t\t\twpm.loadGoogle()\n\t\t} else {\n\t\t\twpm.logPreventedPixelLoading(\"google\", \"analytics / ads\")\n\t\t}\n\t}\n})\n","/**\n * Load Google base functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.googleConfigConditionsMet = function (type) {\n\n\t\t// always returns true if Google Consent Mode is active\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (wpm.getConsentValues().mode === \"category\") {\n\t\t\treturn wpm.getConsentValues().categories[type] === true\n\t\t} else if (wpm.getConsentValues().mode === \"pixel\") {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-\" + type)\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings = function (google_consent_settings) {\n\n\t\tif (wpm.getConsentValues().mode === \"category\") {\n\n\t\t\tif (wpm.getConsentValues().categories.analytics) google_consent_settings.analytics_storage = \"granted\"\n\t\t\tif (wpm.getConsentValues().categories.ads) google_consent_settings.ad_storage = \"granted\"\n\t\t} else if ((wpm.getConsentValues().mode === \"pixel\")) {\n\n\t\t\tgoogle_consent_settings.analytics_storage = wpm.getConsentValues().pixels.includes(\"google-analytics\") ? \"granted\" : \"denied\"\n\t\t\tgoogle_consent_settings.ad_storage = wpm.getConsentValues().pixels.includes(\"google-ads\") ? \"granted\" : \"denied\"\n\t\t}\n\n\t\treturn google_consent_settings\n\t}\n\n\twpm.updateGoogleConsentMode = function (analytics = true, ads = true) {\n\n\t\ttry {\n\t\t\tif (\n\t\t\t\t!window.gtag ||\n\t\t\t\t!wpmDataLayer.shop.cookie_consent_mgmt.explicit_consent\n\t\t\t) return\n\n\t\t\tgtag(\"consent\", \"update\", {\n\t\t\t\tanalytics_storage: analytics ? \"granted\" : \"denied\",\n\t\t\t\tad_storage : ads ? \"granted\" : \"denied\",\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAds = function () {\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.ads.state = \"loading\"\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.enhanced_conversions?.active) {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key, {\"allow_enhanced_conversions\": true})\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tfor (const [key, item] of Object.entries(wpmDataLayer.pixels.google.ads.conversionIds)) {\n\t\t\t\t\tgtag(\"config\", key)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.pixels?.google?.ads?.conversionIds && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_label && wpmDataLayer?.pixels?.google?.ads?.phone_conversion_number) {\n\t\t\t\tgtag(\"config\", Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0] + \"/\" + wpmDataLayer.pixels.google.ads.phone_conversion_label, {\n\t\t\t\t\tphone_conversion_number: wpmDataLayer.pixels.google.ads.phone_conversion_number,\n\t\t\t\t})\n\t\t\t}\n\n\t\t\t// ! enhanced_conversion_data needs to set on the window object\n\t\t\t// https://support.google.com/google-ads/answer/9888145#zippy=%2Cvalidate-your-implementation-using-chrome-developer-tools\n\t\t\tif (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer?.order?.google?.ads?.enhanced_conversion_data) {\n\t\t\t\twindow.enhanced_conversion_data = wpmDataLayer.order.google.ads.enhanced_conversion_data\n\t\t\t}\n\n\t\t\twpmDataLayer.pixels.google.ads.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsUA = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"loading\"\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.universal.property_id, wpmDataLayer.pixels.google.analytics.universal.parameters)\n\t\t\twpmDataLayer.pixels.google.analytics.universal.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.fireGtagGoogleAnalyticsGA4 = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"loading\"\n\n\t\t\tgtag(\"config\", wpmDataLayer.pixels.google.analytics.ga4.measurement_id, wpmDataLayer.pixels.google.analytics.ga4.parameters)\n\t\t\twpmDataLayer.pixels.google.analytics.ga4.state = \"ready\"\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.isGoogleActive = function () {\n\n\t\tif (\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.universal?.property_id ||\n\t\t\twpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id ||\n\t\t\t!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)\n\t\t) {\n\t\t\treturn true\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.getGoogleGtagId = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.universal.property_id\n\t\t} else if (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) {\n\t\t\treturn wpmDataLayer.pixels.google.analytics.ga4.measurement_id\n\t\t} else {\n\t\t\treturn Object.keys(wpmDataLayer.pixels.google.ads.conversionIds)[0]\n\t\t}\n\t}\n\n\twpm.loadGoogle = function () {\n\n\t\tif (wpm.isGoogleActive()) {\n\n\t\t\twpmDataLayer.pixels.google.state = \"loading\"\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googletagmanager.com/gtag/js?id=\" + wpm.getGoogleGtagId())\n\t\t\t\t.done(function (script, textStatus) {\n\n\t\t\t\t\ttry {\n\n\t\t\t\t\t\t// Initiate Google dataLayer and gtag\n\t\t\t\t\t\twindow.dataLayer = window.dataLayer || []\n\t\t\t\t\t\twindow.gtag = function gtag() {\n\t\t\t\t\t\t\tdataLayer.push(arguments)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Consent Mode\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\n\t\t\t\t\t\t\tlet google_consent_settings = {\n\t\t\t\t\t\t\t\t\"ad_storage\" : wpmDataLayer.pixels.google.consent_mode.ad_storage,\n\t\t\t\t\t\t\t\t\"analytics_storage\": wpmDataLayer.pixels.google.consent_mode.analytics_storage,\n\t\t\t\t\t\t\t\t\"wait_for_update\" : wpmDataLayer.pixels.google.consent_mode.wait_for_update,\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.region) {\n\t\t\t\t\t\t\t\tgoogle_consent_settings.region = wpmDataLayer.pixels.google.consent_mode.region\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tgoogle_consent_settings = wpm.getVisitorConsentStatusAndUpdateGoogleConsentSettings(google_consent_settings)\n\n\t\t\t\t\t\t\tgtag(\"consent\", \"default\", google_consent_settings)\n\t\t\t\t\t\t\tgtag(\"set\", \"ads_data_redaction\", wpmDataLayer.pixels.google.consent_mode.ads_data_redaction)\n\t\t\t\t\t\t\tgtag(\"set\", \"url_passthrough\", wpmDataLayer.pixels.google.consent_mode.url_passthrough)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// Google Linker\n\t\t\t\t\t\t// https://developers.google.com/gtagjs/devguide/linker\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.linker?.settings) {\n\t\t\t\t\t\t\tgtag(\"set\", \"linker\", wpmDataLayer.pixels.google.linker.settings)\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tgtag(\"js\", new Date())\n\n\t\t\t\t\t\t// Google Ads loader\n\t\t\t\t\t\tif (!jQuery.isEmptyObject(wpmDataLayer?.pixels?.google?.ads?.conversionIds)) { // Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"ads\")) { \t\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAds()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-ads\", \"ads\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\n\t\t\t\t\t\t// Google Universal Analytics loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.universal?.property_id) { \t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsUA()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"google-universal-analytics\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\t// GA4 loader\n\t\t\t\t\t\tif (wpmDataLayer?.pixels?.google?.analytics?.ga4?.measurement_id) { \t\t\t// Only run if the pixel has set up\n\n\t\t\t\t\t\t\tif (wpm.googleConfigConditionsMet(\"analytics\")) {\t\t\t\t\t\t// Only run if cookie consent has been given\n\t\t\t\t\t\t\t\twpm.fireGtagGoogleAnalyticsGA4()\n\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\twpm.logPreventedPixelLoading(\"ga4\", \"analytics\")\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\twpmDataLayer.pixels.google.state = \"ready\"\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\tconsole.error(e)\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t}\n\t}\n\n\twpm.canGoogleLoad = function () {\n\n\t\tif (wpmDataLayer?.pixels?.google?.consent_mode?.active) {\n\t\t\treturn true\n\t\t} else if (\"category\" === wpm.getConsentValues().mode) {\n\t\t\treturn !!(wpm.getConsentValues().categories[\"ads\"] || wpm.getConsentValues().categories[\"analytics\"])\n\t\t} else if (\"pixel\" === wpm.getConsentValues().mode) {\n\t\t\treturn wpm.getConsentValues().pixels.includes(\"google-ads\") || wpm.getConsentValues().pixels.includes(\"google-analytics\")\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid load condition for Google mode in wpmConsentValues\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.gtagLoaded = function () {\n\t\treturn new Promise(function (resolve, reject) {\n\n\t\t\tif (typeof wpmDataLayer?.pixels?.google?.state === \"undefined\") reject()\n\n\t\t\tlet startTime = 0\n\t\t\tlet timeout = 5000\n\t\t\tlet frequency = 200;\n\n\t\t\t(function wait() {\n\t\t\t\tif (wpmDataLayer?.pixels?.google?.state === \"ready\") return resolve()\n\t\t\t\tif (startTime >= timeout) return reject()\n\t\t\t\tstartTime += frequency\n\t\t\t\tsetTimeout(wait, frequency)\n\t\t\t})()\n\t\t})\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Load Google base\n */\n\n// Load base\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// require(\"./event_listeners_premium\")\n// #endif\n","/**\n * Load Google\n */\n\n// Load base\nrequire(\"./base/loader\")\n\n//Load additional Google libraries\nrequire(\"./ads/loader\")\nrequire(\"./analytics/loader\")\nrequire(\"./optimize/loader\")\n\n\n","/**\n * Load Google Optimize event listeners\n */\n\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.google?.optimize?.container_id && !wpmDataLayer?.pixels?.google?.optimize?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"google-optimize\")) wpm.load_google_optimize_pixel()\n\t}\n})\n","/**\n * Load Google Optimize functions\n */\n\n\n(function (wpm, $, undefined) {\n\n\twpm.load_google_optimize_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.google.optimize.loaded = true\n\n\t\t\twpm.loadScriptAndCacheIt(\"https://www.googleoptimize.com/optimize.js?id=\" + wpmDataLayer.pixels.google.optimize.container_id)\n\t\t\t// .done(function (script, textStatus) {\n\t\t\t// \t\tconsole.log('Google Optimize loaded')\n\t\t\t// });\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Load Google Optimize\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Load Hotjar event listeners\n */\n\n// Pixel load event listener\njQuery(document).on(\"wpmLoadPixels\", function () {\n\n\tif (wpmDataLayer?.pixels?.hotjar?.site_id && !wpmDataLayer?.pixels?.hotjar?.loaded) {\n\t\tif (wpm.canIFire(\"analytics\", \"hotjar\") && !wpmDataLayer?.pixels?.hotjar?.loaded) wpm.load_hotjar_pixel()\n\t}\n})\n","/**\n * Load Hotjar functions\n */\n\n(function (wpm, $, undefined) {\n\n\twpm.load_hotjar_pixel = function () {\n\n\t\ttry {\n\t\t\twpmDataLayer.pixels.hotjar.loaded = true;\n\n\t\t\t// @formatter:off\n\t\t\t(function(h,o,t,j,a,r){\n\t\t\t\th.hj=h.hj||function(){(h.hj.q=h.hj.q||[]).push(arguments)};\n\t\t\t\th._hjSettings={hjid:wpmDataLayer.pixels.hotjar.site_id,hjsv:6};\n\t\t\t\ta=o.getElementsByTagName('head')[0];\n\t\t\t\tr=o.createElement('script');r.async=1;\n\t\t\t\tr.src=t+h._hjSettings.hjid+j+h._hjSettings.hjsv;\n\t\t\t\ta.appendChild(r);\n\t\t\t})(window,document,'https://static.hotjar.com/c/hotjar-','.js?sv=');\n\t\t\t// @formatter:on\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery));\n","/**\n * Hotjar loader\n */\n\nrequire(\"./functions\")\nrequire(\"./event_listeners\")\n","/**\n * Consent Mode functions\n */\n\n(function (wpm, $, undefined) {\n\n\n\t/**\n\t * Handle Cookie Management Platforms\n\t */\n\n\tlet getComplianzCookies = () => {\n\n\t\tlet cmplz_statistics = wpm.getCookie(\"cmplz_statistics\")\n\t\tlet cmplz_marketing = wpm.getCookie(\"cmplz_marketing\")\n\t\tlet cmplz_consent_status = wpm.getCookie(\"cmplz_consent_status\") || wpm.getCookie(\"cmplz_banner-status\")\n\n\t\tif (cmplz_consent_status) {\n\t\t\treturn {\n\t\t\t\tanalytics : cmplz_statistics === \"allow\",\n\t\t\t\tads : cmplz_marketing === \"allow\",\n\t\t\t\tvisitorHasChosen: true,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\tlet getCookieLawInfoCookies = () => {\n\n\t\tlet analyticsCookie = wpm.getCookie(\"cookielawinfo-checkbox-analytics\") || wpm.getCookie(\"cookielawinfo-checkbox-analytiques\")\n\t\tlet adsCookie = wpm.getCookie(\"cookielawinfo-checkbox-advertisement\") || wpm.getCookie(\"cookielawinfo-checkbox-performance\") || wpm.getCookie(\"cookielawinfo-checkbox-publicite\")\n\t\tlet visitorHasChosen = wpm.getCookie(\"CookieLawInfoConsent\")\n\n\t\tif (analyticsCookie || adsCookie) {\n\n\t\t\treturn {\n\t\t\t\tanalytics : analyticsCookie === \"yes\",\n\t\t\t\tads : adsCookie === \"yes\",\n\t\t\t\tvisitorHasChosen: !!visitorHasChosen,\n\t\t\t}\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\n\tlet\n\t\twpmConsentValues = {}\n\twpmConsentValues.categories = {}\n\twpmConsentValues.pixels = []\n\twpmConsentValues.mode = \"category\"\n\twpmConsentValues.visitorHasChosen = false\n\n\twpm.getConsentValues = () => wpmConsentValues\n\n\twpm.setConsentValueCategories = (analytics = false, ads = false) => {\n\t\twpmConsentValues.categories.analytics = analytics\n\t\twpmConsentValues.categories.ads = ads\n\t}\n\n\twpm.updateConsentCookieValues = (analytics = null, ads = null, explicitConsent = false) => {\n\n\t\t// ad_storage\n\t\t// analytics_storage\n\t\t// functionality_storage\n\t\t// personalization_storage\n\t\t// security_storage\n\n\t\tlet cookie\n\n\t\tif (analytics || ads) {\n\n\t\t\tif (analytics) {\n\t\t\t\twpmConsentValues.categories.analytics = !!analytics\n\t\t\t}\n\t\t\tif (ads) {\n\t\t\t\twpmConsentValues.categories.ads = !!ads\n\t\t\t}\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieConsent\")) {\n\n\t\t\t// Cookiebot\n\t\t\t// https://wordpress.org/plugins/cookiebot/\n\t\t\tcookie = decodeURI(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.indexOf(\"statistics:true\") >= 0\n\t\t\twpmConsentValues.categories.ads = cookie.indexOf(\"marketing:true\") >= 0\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"CookieScriptConsent\")) {\n\n\t\t\t// Cookie Script\n\t\t\t// https://wordpress.org/plugins/cookie-script-com/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\tif (cookie.action === \"reject\") {\n\t\t\t\twpmConsentValues.categories.analytics = false\n\t\t\t\twpmConsentValues.categories.ads = false\n\t\t\t} else if (cookie.categories.length === 2) {\n\t\t\t\twpmConsentValues.categories.analytics = true\n\t\t\t\twpmConsentValues.categories.ads = true\n\t\t\t} else {\n\t\t\t\twpmConsentValues.categories.analytics = cookie.categories.indexOf(\"performance\") >= 0\n\t\t\t\twpmConsentValues.categories.ads = cookie.categories.indexOf(\"targeting\") >= 0\n\t\t\t}\n\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"borlabs-cookie\")) {\n\n\t\t\t// Borlabs Cookie\n\t\t\t// https://borlabs.io/borlabs-cookie/\n\n\t\t\tcookie = decodeURI(cookie)\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie?.consents?.statistics\n\t\t\twpmConsentValues.categories.ads = !!cookie?.consents?.marketing\n\t\t\twpmConsentValues.visitorHasChosen = true\n\t\t\twpmConsentValues.pixels = [...cookie?.consents?.statistics || [], ...cookie?.consents?.marketing || []]\n\t\t\twpmConsentValues.mode = \"pixel\"\n\n\t\t} else if (cookie = getComplianzCookies()) {\n\n\t\t\t// Complianz Cookie\n\t\t\t// https://wordpress.org/plugins/complianz-gdpr/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen\n\n\t\t} else if (cookie = wpm.getCookie(\"cookie_notice_accepted\")) {\n\n\t\t\t// Cookie Compliance (free version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\twpmConsentValues.categories.analytics = true\n\t\t\twpmConsentValues.categories.ads = true\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = wpm.getCookie(\"hu-consent\")) {\n\n\t\t\t// Cookie Compliance (pro version)\n\t\t\t// https://wordpress.org/plugins/cookie-notice/\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = !!cookie.categories[\"3\"]\n\t\t\twpmConsentValues.categories.ads = !!cookie.categories[\"4\"]\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else if (cookie = getCookieLawInfoCookies()) {\n\n\t\t\t// CookieYes, GDPR Cookie Consent (Cookie Law Info)\n\t\t\t// https://wordpress.org/plugins/cookie-law-info/\n\n\t\t\twpmConsentValues.categories.analytics = cookie.analytics === true\n\t\t\twpmConsentValues.categories.ads = cookie.ads === true\n\t\t\twpmConsentValues.visitorHasChosen = cookie.visitorHasChosen === true\n\n\t\t} else if (cookie = wpm.getCookie(\"moove_gdpr_popup\")) {\n\n\t\t\t// GDPR Cookie Compliance Plugin by Moove Agency\n\t\t\t// https://wordpress.org/plugins/gdpr-cookie-compliance/\n\t\t\t// TODO write documentation on how to set up the plugin in order for this to work properly\n\n\t\t\tcookie = JSON.parse(cookie)\n\n\t\t\twpmConsentValues.categories.analytics = cookie.thirdparty === \"1\"\n\t\t\twpmConsentValues.categories.ads = cookie.advanced === \"1\"\n\t\t\twpmConsentValues.visitorHasChosen = true\n\n\t\t} else {\n\t\t\t// consentValues.categories.analytics = true\n\t\t\t// consentValues.categories.ads = true\n\n\t\t\twpmConsentValues.categories.analytics = !explicitConsent\n\t\t\twpmConsentValues.categories.ads = !explicitConsent\n\t\t}\n\t}\n\n\twpm.updateConsentCookieValues()\n\n\twpm.setConsentDefaultValuesToExplicit = () => {\n\t\twpmConsentValues.categories = {\n\t\t\tanalytics: false,\n\t\t\tads : false,\n\t\t}\n\t}\n\n\twpm.canIFire = (category, pixelName) => {\n\n\t\tlet canIFireMode\n\n\t\tif (\"category\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = !!wpmConsentValues.categories[category]\n\t\t} else if (\"pixel\" === wpmConsentValues.mode) {\n\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(pixelName)\n\n\t\t\t// If a user sets \"bing-ads\" in Borlabs Cookie instead of\n\t\t\t// \"microsoft-ads\" in the Borlabs settings, we need to check\n\t\t\t// for that too.\n\t\t\tif (false === canIFireMode && \"microsoft-ads\" === pixelName) {\n\t\t\t\tcanIFireMode = wpmConsentValues.pixels.includes(\"bing-ads\")\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.error(\"Couldn't find a valid consent mode in wpmConsentValues\")\n\t\t\tcanIFireMode = false\n\t\t}\n\n\t\tif (canIFireMode) {\n\t\t\treturn true\n\t\t} else {\n\t\t\tif (true || wpm.urlHasParameter(\"debugConsentMode\")) {\n\t\t\t\twpm.logPreventedPixelLoading(pixelName, category)\n\t\t\t}\n\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.logPreventedPixelLoading = (pixelName, category) => {\n\n\t\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent) {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have not given consent for it yet. (WPM is in explicit consent mode.)\")\n\t\t} else {\n\t\t\tconsole.log(\"Pixel Manager for WooCommerce: The \\\"\" + pixelName + \" (category: \" + category + \")\\\" pixel has not fired because you have removed consent for this pixel. (WPM is in implicit consent mode.)\")\n\t\t}\n\t}\n\n\t/**\n\t * Runs through each script in and blocks / unblocks it according to the plugin settings\n\t * and user consent.\n\t */\n\n\t// https://stackoverflow.com/q/65453565/4688612\n\twpm.scriptTagObserver = new MutationObserver((mutations) => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif ($(node).data(\"wpm-cookie-category\")) {\n\n\t\t\t\t\t\t// If the pixel category has been approved > unblock\n\t\t\t\t\t\t// If the pixel belongs to more than one category, then unblock if one of the categories has been approved\n\t\t\t\t\t\t// If no category has been approved, but the Google Consent Mode is active, then only unblock the Google scripts\n\n\t\t\t\t\t\tif (wpm.shouldScriptBeActive(node)) {\n\t\t\t\t\t\t\twpm.unblockScript(node)\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\twpm.blockScript(node)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\twpm.scriptTagObserver.observe(document.head, {childList: true, subtree: true})\n\tjQuery(document).on(\"DOMContentLoaded\", () => wpm.scriptTagObserver.disconnect())\n\n\twpm.shouldScriptBeActive = node => {\n\n\t\tif (\n\t\t\twpmDataLayer.shop.cookie_consent_mgmt.explicit_consent ||\n\t\t\twpmConsentValues.visitorHasChosen\n\t\t) {\n\n\t\t\tif (wpmConsentValues.mode === \"category\" && $(node).data(\"wpm-cookie-category\").split(\",\").some(element => wpmConsentValues.categories[element])) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && wpmConsentValues.pixels.includes($(node).data(\"wpm-pixel-name\"))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmConsentValues.mode === \"pixel\" && $(node).data(\"wpm-pixel-name\") === \"google\" && [\"google-analytics\", \"google-ads\"].some(element => wpmConsentValues.pixels.includes(element))) {\n\t\t\t\treturn true\n\t\t\t} else if (wpmDataLayer?.pixels?.google?.consent_mode?.active && $(node).data(\"wpm-pixel-name\") === \"google\") {\n\t\t\t\treturn true\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\n\twpm.unblockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tlet wpmSrc = $(scriptNode).data(\"wpm-src\")\n\t\tif (wpmSrc) $(scriptNode).attr(\"src\", wpmSrc)\n\n\t\tscriptNode.type = \"text/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\n\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t}\n\n\twpm.blockScript = (scriptNode, removeAttach = false) => {\n\n\t\tif (removeAttach) $(scriptNode).remove()\n\n\t\tif ($(scriptNode).attr(\"src\")) $(scriptNode).removeAttr(\"src\")\n\t\tscriptNode.type = \"blocked/javascript\"\n\n\t\tif (removeAttach) $(scriptNode).appendTo(\"head\")\n\t}\n\n\twpm.unblockAllScripts = (analytics = true, ads = true) => {\n\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t}\n\n\twpm.unblockSelectedPixels = () => {\n\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t}\n\n\n\t/**\n\t * Block or unblock scripts for each CMP immediately after cookie consent has been updated\n\t * by the visitor.\n\t */\n\n\t// Borlabs Cookie\n\t// If visitor accepts cookies in Borlabs Cookie unblock the scripts\n\tjQuery(document).on(\"borlabs-cookie-consent-saved\", () => {\n\n\t\twpm.updateConsentCookieValues()\n\n\t\tif (wpmConsentValues.mode === \"pixel\") {\n\n\t\t\twpm.unblockSelectedPixels()\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.pixels.includes(\"google-analytics\"), wpmConsentValues.pixels.includes(\"google-ads\"))\n\t\t} else {\n\n\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t}\n\t})\n\n\t// Cookiebot\n\t// If visitor accepts cookies in Cookiebot unblock the scripts\n\t// https://www.cookiebot.com/en/developer/\n\tjQuery(document).on(\"CookiebotOnAccept\", () => {\n\n\t\tif (Cookiebot.consent.statistics) wpmConsentValues.categories.analytics = true\n\t\tif (Cookiebot.consent.marketing) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\n\t}, false)\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/article/20-custom-events\n\t */\n\tjQuery(document).on(\"CookieScriptAccept\", e => {\n\n\t\tif (e.detail.categories.includes(\"performance\")) wpmConsentValues.categories.analytics = true\n\t\tif (e.detail.categories.includes(\"targeting\")) wpmConsentValues.categories.ads = true\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Script\n\t * If visitor accepts cookies in Cookie Script unblock the scripts\n\t * https://support.cookie-script.com/\n\t */\n\tjQuery(document).on(\"CookieScriptAcceptAll\", () => {\n\n\t\twpm.unblockAllScripts(true, true)\n\t\twpm.updateGoogleConsentMode(true, true)\n\t})\n\n\t/**\n\t * Complianz Cookie\n\t *\n\t * If visitor accepts cookies in Complianz unblock the scripts\n\t */\n\n\twpm.cmplzStatusChange = (cmplzConsentData) => {\n\n\t\tif (cmplzConsentData.detail.categories.includes(\"statistics\")) wpm.updateConsentCookieValues(true, null)\n\t\tif (cmplzConsentData.detail.categories.includes(\"marketing\")) wpm.updateConsentCookieValues(null, true)\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t}\n\n\tjQuery(document).on(\"cmplzStatusChange\", wpm.cmplzStatusChange)\n\tjQuery(document).on(\"cmplz_status_change\", wpm.cmplzStatusChange)\n\n\n\t// Cookie Compliance by hu-manity.co (free and pro)\n\t// If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (free version)\n\t// https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\tjQuery(document).on(\"setCookieNotice\", () => {\n\n\t\twpm.updateConsentCookieValues()\n\n\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t})\n\n\t/**\n\t * Cookie Compliance by hu-manity.co (free and pro)\n\t * If visitor accepts cookies in Cookie Notice by hu-manity.co unblock the scripts (pro version)\n\t * https://wordpress.org/support/topic/events-on-consent-change/#post-15202792\n\t * Because Cookie Notice has no documented API or event that is being triggered on consent save or update\n\t * we have to solve this by using a mutation observer.\n\t *\n\t * @type {MutationObserver}\n\t */\n\n\twpm.huObserver = new MutationObserver(mutations => {\n\t\tmutations.forEach(({addedNodes}) => {\n\t\t\t[...addedNodes]\n\t\t\t\t.forEach(node => {\n\n\t\t\t\t\tif (node.id === \"hu\") {\n\n\t\t\t\t\t\tjQuery(\".hu-cookies-save\").on(\"click\", function () {\n\t\t\t\t\t\t\twpm.updateConsentCookieValues()\n\t\t\t\t\t\t\twpm.unblockAllScripts(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t\twpm.updateGoogleConsentMode(wpmConsentValues.categories.analytics, wpmConsentValues.categories.ads)\n\t\t\t\t\t\t})\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t})\n\t})\n\n\tif (window.hu) {\n\t\twpm.huObserver.observe(document.documentElement || document.body, {childList: true, subtree: true})\n\t}\n\n\twpm.explicitConsentStateAlreadySet = () => {\n\n\t\tif (wpmConsentValues.explicitConsentStateAlreadySet) {\n\t\t\treturn true\n\t\t} else {\n\t\t\twpmConsentValues.explicitConsentStateAlreadySet = true\n\t\t}\n\t}\n\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Register event listeners\n */\n\n// remove_from_cart event\n// jQuery('.remove_from_cart_button, .remove').on('click', function (e) {\njQuery(document).on(\"click\", \".remove_from_cart_button, .remove\", function () {\n\n\ttry {\n\n\t\tlet url = new URL(jQuery(this).attr(\"href\"))\n\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\t\twpm.removeProductFromCart(productId)\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n// add_to_cart event\n// jQuery('.add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .js-ajax-add-to-cart, .single_add_to_cart_button, .btn_color-2').on('click', function (e) {\njQuery(document).on(\"click\", \".add_to_cart_button:not(.product_type_variable), .ajax_add_to_cart, .single_add_to_cart_button\", function () {\n\n\ttry {\n\n\t\tif (wpmDataLayer.shop.page_type === \"product\") {\n\n\t\t\t// First process related and upsell products\n\t\t\tif (typeof jQuery(this).attr(\"href\") !== \"undefined\" && jQuery(this).attr(\"href\").includes(\"add-to-cart\")) {\n\n\t\t\t\tlet quantity = 1\n\t\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t} else {\n\n\t\t\t\tif (wpmDataLayer.shop.product_type === \"simple\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(this).val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"variable\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"[name='variation_id']\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"grouped\") {\n\n\t\t\t\t\tjQuery(\".woocommerce-grouped-product-list-item\").each(function () {\n\n\t\t\t\t\t\tlet quantity = Number(jQuery(this).find(\".input-text.qty\").val())\n\n\t\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\t\tlet classes = jQuery(this).attr(\"class\")\n\t\t\t\t\t\tlet productId = wpm.getPostIdFromString(classes)\n\n\t\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t\t})\n\t\t\t\t} else if (wpmDataLayer.shop.product_type === \"bundle\") {\n\n\t\t\t\t\tlet quantity = Number(jQuery(\".input-text.qty\").val())\n\n\t\t\t\t\tif (!quantity && quantity !== 0) quantity = 1\n\n\t\t\t\t\tlet productId = jQuery(\"input[name=add-to-cart]\").val()\n\n\t\t\t\t\twpm.addProductToCart(productId, quantity)\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\n\t\t\tlet quantity = 1\n\t\t\tlet productId = jQuery(this).data(\"product_id\")\n\n\t\t\twpm.addProductToCart(productId, quantity)\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n\n/**\n * If someone clicks anywhere on a custom /?add-to-cart=123 link\n * trigger the add to cart event\n */\n// jQuery('a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)').one('click', function (event) {\njQuery(document).one(\"click\", \"a:not(.add_to_cart_button, .ajax_add_to_cart, .single_add_to_cart_button)\", function (event) {\n\n\ttry {\n\t\tif (jQuery(event.target).closest(\"a\").attr(\"href\")) {\n\n\t\t\tlet href = jQuery(event.target).closest(\"a\").attr(\"href\")\n\n\t\t\tif (href.includes(\"add-to-cart=\")) {\n\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) wpm.addProductToCart(matches[2], 1)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// select_content GA UA event\n// select_item GA 4 event\n// jQuery(document).on('click', '.woocommerce-LoopProduct-link, .wc-block-grid__product, .product-small.box', function (e) {\n// jQuery('.woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product').on('click', function (e) {\njQuery(document).on(\"click\", \".woocommerce-LoopProduct-link, .wc-block-grid__product, .product, .product-small, .type-product\", function () {\n\n\ttry {\n\n\t\t/**\n\t\t * On some pages the event fires multiple times, and on product pages\n\t\t * even on page load. Using e.stopPropagation helps to prevent this,\n\t\t * but I don't know why. We don't even have to use this, since only a real\n\t\t * product click yields a valid productId. So we filter the invalid click\n\t\t * events out later down in the code. I'll keep it that way because this is\n\t\t * the most compatible way across shops.\n\t\t *\n\t\t * e.stopPropagation();\n\t\t * */\n\n\t\tlet productId = jQuery(this).nextAll(\".wpmProductId:first\").data(\"id\")\n\n\t\t/**\n\t\t * On product pages, for some reason, the click event is triggered on the main product on page load.\n\t\t * In that case no ID is found. But we can discard it, since we only want to trigger the event on\n\t\t * related products, which are found below.\n\t\t */\n\n\t\tif (productId) {\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmSelectContentGaUa\", product)\n\t\t\t\tjQuery(document).trigger(\"wpmSelectItem\", product)\n\t\t\t}\n\t\t}\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// begin_checkout event\nlet checkoutButtonClasses = [\n\t\".checkout-button\",\n\t\".cart-checkout-button\",\n\t\".button.checkout\",\n\t\".xoo-wsc-ft-btn-checkout\", // https://xootix.com/side-cart-for-woocommerce/\n]\n\njQuery(document).one(\"click\", checkoutButtonClasses.join(\",\"), function () {\n\tjQuery(document).trigger(\"wpmBeginCheckout\")\n})\n\n\n// checkout_progress event\n// track checkout option event: entered valid billing email\njQuery(document).on(\"input\", \"#billing_email\", function () {\n\n\tif (wpm.isEmail(jQuery(this).val())) {\n\t\t// wpm.fireCheckoutOption(2);\n\t\twpm.fireCheckoutProgress(2)\n\t\twpm.emailSelected = true\n\t}\n})\n\n// track checkout option event: purchase click\njQuery(document).on(\"click\", \".wc_payment_methods\", function () {\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t}\n\n\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\twpm.paymentMethodSelected = true\n})\n\n// track checkout option event: purchase click\n// jQuery('#place_order').one('click', function () {\njQuery(document).one(\"click\", \"#place_order\", function () {\n\n\tif (false === wpm.emailSelected) {\n\t\twpm.fireCheckoutProgress(2)\n\t}\n\n\tif (false === wpm.paymentMethodSelected) {\n\t\twpm.fireCheckoutProgress(3)\n\t\twpm.fireCheckoutOption(3, jQuery(\"input[name='payment_method']:checked\").val())\n\t}\n\n\twpm.fireCheckoutProgress(4)\n})\n\n// update cart event\n// jQuery(\"[name='update_cart']\").on('click', function (e) {\njQuery(document).on(\"click\", \"[name='update_cart']\", function () {\n\n\ttry {\n\t\tjQuery(\".cart_item\").each(function () {\n\n\t\t\tlet url = new URL(jQuery(this).find(\".product-remove\").find(\"a\").attr(\"href\"))\n\t\t\tlet productId = wpm.getProductIdByCartItemKeyUrl(url)\n\n\n\t\t\tlet quantity = jQuery(this).find(\".qty\").val()\n\n\t\t\tif (quantity === 0) {\n\t\t\t\twpm.removeProductFromCart(productId)\n\t\t\t} else if (quantity < wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.removeProductFromCart(productId, wpmDataLayer.cart[productId].quantity - quantity)\n\t\t\t} else if (quantity > wpmDataLayer.cart[productId].quantity) {\n\t\t\t\twpm.addProductToCart(productId, quantity - wpmDataLayer.cart[productId].quantity)\n\t\t\t}\n\t\t})\n\t} catch (e) {\n\t\tconsole.error(e)\n\t\twpm.getCartItemsFromBackend()\n\t}\n})\n\n\n// add_to_wishlist\njQuery(document).on(\"click\", \".add_to_wishlist, .wl-add-to\", function () {\n\n\ttry {\n\n\t\tlet productId\n\n\t\tif (jQuery(this).data(\"productid\")) { // for the WooCommerce wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"productid\")\n\t\t} else if (jQuery(this).data(\"product-id\")) { // for the YITH wishlist plugin\n\n\t\t\tproductId = jQuery(this).data(\"product-id\")\n\t\t}\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\tjQuery(document).trigger(\"wpmAddToWishlist\", product)\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\njQuery(document).on(\"updated_cart_totals\", function () {\n\tjQuery(document).trigger(\"wpmViewCart\")\n})\n\n\n/**\n * Called when the user selects all the required dropdowns / attributes\n *\n * Has to be hooked after document ready !\n *\n * https://stackoverflow.com/a/27849208/4688612\n * https://stackoverflow.com/a/65065335/4688612\n */\n\njQuery(function () {\n\n\tjQuery(\".single_variation_wrap\").on(\"show_variation\", function (event, variation) {\n\n\t\ttry {\n\t\t\tlet productId = wpm.getIdBasedOndVariationsOutputSetting(variation.variation_id)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\n\n/**\n * Called on variable products when no selection has been done yet\n * or when the visitor deselects his choice.\n *\n * Has to be hooked after document ready !\n */\n\njQuery(function () {\n\n\tjQuery(\".single_variation_wrap\").on(\"hide_variation\", function () {\n\n\t\ttry {\n\t\t\tlet classes = jQuery(\"body\").attr(\"class\")\n\t\t\tlet productId = classes.match(/(postid-)(\\d+)/)[2]\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\t/**\n\t\t\t * If we have a variable product with no preset,\n\t\t\t * and variations output is enabled,\n\t\t\t * then we send a viewItem event with the first\n\t\t\t * variation we find for the parent.\n\t\t\t * If variations output is disabled,\n\t\t\t * we just send the parent ID.\n\t\t\t *\n\t\t\t * And if Facebook microdata is active, use the\n\t\t\t * microdata product ID.\n\t\t\t */\n\n\t\t\tif (\n\t\t\t\t\"variable\" === wpmDataLayer.shop.product_type &&\n\t\t\t\twpmDataLayer?.general?.variationsOutput\n\t\t\t) {\n\t\t\t\tfor (const [key, product] of Object.entries(wpmDataLayer.products)) {\n\t\t\t\t\tif (\"parentId\" in product) {\n\n\t\t\t\t\t\tproductId = product.id\n\t\t\t\t\t\tbreak\n\t\t\t\t\t}\n\t\t\t\t}\n\n\n\n\t\t\t\tif (wpmDataLayer?.pixels?.facebook?.microdata_product_id) {\n\t\t\t\t\tproductId = wpmDataLayer.pixels.facebook.microdata_product_id\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (wpmDataLayer.products && wpmDataLayer.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId)\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\t\t\t}\n\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t})\n})\n\n\n/**\n * Set up wpm events\n */\n\n// populate the wpmDataLayer with the cart items\njQuery(window).on(\"wpmLoad\", function () {\n\n\ttry {\n\t\t// When a new session is initiated there are no items in the cart,\n\t\t// so we can save the call to get the cart items\n\t\tif (wpm.doesWooCommerceCartExist()) wpm.getCartItems()\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n// get all add-to-cart= products from backend\njQuery(window).on(\"wpmLoad\", function () {\n\n\twpmDataLayer.products = wpmDataLayer.products || {}\n\n\t// scan page for add-to-cart= links\n\tlet productIds = wpm.getAddToCartLinkProductIds()\n\n\twpm.getProductsFromBackend(productIds)\n})\n\n/**\n * Save the referrer into a cookie\n */\n\njQuery(window).on(\"wpmLoad\", function () {\n\n\t// can't use session storage as we can't read it from the server\n\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\n\t\tif (document.referrer) {\n\t\t\tlet referrerUrl = new URL(document.referrer)\n\t\t\tlet referrerHostname = referrerUrl.hostname\n\n\t\t\tif (referrerHostname !== window.location.host) {\n\t\t\t\twpm.setCookie(\"wpmReferrer\", referrerHostname)\n\t\t\t}\n\t\t}\n\t}\n})\n\n\n/**\n * Create our own load event in order to better handle script flow execution when JS \"optimizers\" shuffle the code.\n */\n\njQuery(window).on(\"wpmLoad\", function () {\n\ttry {\n\t\tif (typeof wpmDataLayer != \"undefined\" && !wpmDataLayer?.wpmLoadFired) {\n\n\t\t\tjQuery(document).trigger(\"wpmLoadAlways\")\n\n\t\t\tif (\"product\" === wpmDataLayer.shop.page_type && \"variable\" !== wpmDataLayer.shop.product_type && wpm.getMainProductIdFromProductPage()) {\n\n\t\t\t\tlet product = wpm.getProductDataForViewItemEvent(wpm.getMainProductIdFromProductPage())\n\t\t\t\tjQuery(document).trigger(\"wpmViewItem\", product)\n\n\t\t\t} else if (\"product_category\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmCategory\")\n\n\t\t\t} else if (\"search\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmSearch\")\n\n\t\t\t} else if (\"cart\" === wpmDataLayer.shop.page_type) {\n\n\t\t\t\tjQuery(document).trigger(\"wpmViewCart\")\n\n\t\t\t} else if (\"order_received_page\" === wpmDataLayer.shop.page_type && wpmDataLayer.order) {\n\n\t\t\t\tif (!wpm.isOrderIdStored(wpmDataLayer.order.id)) {\n\n\t\t\t\t\tjQuery(document).trigger(\"wpmOrderReceivedPage\")\n\t\t\t\t\twpm.writeOrderIdToStorage(wpmDataLayer.order.id)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tjQuery(document).trigger(\"wpmEverywhereElse\")\n\t\t\t}\n\n\t\t\tif (wpmDataLayer?.user?.id && !wpm.hasLoginEventFired()) {\n\t\t\t\tjQuery(document).trigger(\"wpmLogin\")\n\t\t\t\twpm.setLoginEventFired()\n\t\t\t}\n\n\t\t\t// /**\n\t\t\t// * Load mini cart fragments into a wpm session storage key,\n\t\t\t// * after the document load event.\n\t\t\t// */\n\t\t\t// jQuery(document).ajaxSend(function (event, jqxhr, settings) {\n\t\t\t// \t// console.log('settings.url: ' + settings.url);\n\t\t\t//\n\t\t\t// \tif (settings.url.includes(\"get_refreshed_fragments\") && sessionStorage) {\n\t\t\t// \t\tif (!sessionStorage.getItem(\"wpmMiniCartActive\")) {\n\t\t\t// \t\t\tsessionStorage.setItem(\"wpmMiniCartActive\", JSON.stringify(true))\n\t\t\t// \t\t}\n\t\t\t// \t}\n\t\t\t// })\n\n\t\t\twpmDataLayer.wpmLoadFired = true\n\t\t}\n\n\t} catch (e) {\n\t\tconsole.error(e)\n\t}\n})\n\n/**\n * Load all pixels\n */\njQuery(window).on(\"wpmPreLoadPixels\", function () {\n\n\tif (wpmDataLayer?.shop?.cookie_consent_mgmt?.explicit_consent && !wpm.explicitConsentStateAlreadySet()) {\n\t\twpm.updateConsentCookieValues(null, null,true)\n\t}\n\n\tjQuery(document).trigger(\"wpmLoadPixels\", {})\n})\n","/**\n * Create a wpm namespace under which all functions are declared\n */\n\n// https://stackoverflow.com/a/5947280/4688612\n\n(function (wpm, $, undefined) {\n\n\tconst wpmDeduper = {\n\t\tkeyName : \"_wpm_order_ids\",\n\t\tcookieExpiresDays: 365,\n\t}\n\n\tconst wpmRestSettings = {\n\t\t// cookiesAvailable : '_wpm_cookies_are_available',\n\t\tcookieWpmRestEndpointAvailable: \"_wpm_endpoint_available\",\n\t\trestEndpoint : \"/wp-json/\",\n\t\trestFails : 0,\n\t\trestFailsThreshold : 10,\n\t}\n\n\twpm.emailSelected = false\n\twpm.paymentMethodSelected = false\n\n\t// wpm.checkIfCookiesAvailable = function () {\n\t//\n\t// // read the cookie if previously set, if it is return true, otherwise continue\n\t// if (wpm.getCookie(wpmRestSettings.cookiesAvailable)) {\n\t// return true;\n\t// }\n\t//\n\t// // set the cookie for the session\n\t// Cookies.set(wpmRestSettings.cookiesAvailable, true);\n\t//\n\t// // read cookie, true if ok, false if not ok\n\t// return !!wpm.getCookie(wpmRestSettings.cookiesAvailable);\n\t// }\n\n\twpm.useRestEndpoint = () => {\n\n\t\t// only if sessionStorage is available\n\n\t\t// only if REST API endpoint is generally accessible\n\t\t// check in sessionStorage if we checked before and return answer\n\t\t// otherwise check if the endpoint is available, save answer in sessionStorage and return answer\n\n\t\t// only if not too many REST API errors happened\n\n\t\treturn wpm.isSessionStorageAvailable() &&\n\t\t\twpm.isRestEndpointAvailable() &&\n\t\t\twpm.isBelowRestErrorThreshold()\n\t}\n\n\twpm.isBelowRestErrorThreshold = () => window.sessionStorage.getItem(wpmRestSettings.restFails) <= wpmRestSettings.restFailsThreshold\n\n\twpm.isRestEndpointAvailable = () => {\n\n\t\tif (window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable)) {\n\t\t\treturn JSON.parse(window.sessionStorage.getItem(wpmRestSettings.cookieWpmRestEndpointAvailable))\n\t\t} else {\n\t\t\t// return wpm.testEndpoint();\n\t\t\t// just set the value whenever possible in order not to wait or block the main thread\n\t\t\twpm.testEndpoint()\n\t\t}\n\t}\n\n\twpm.isSessionStorageAvailable = () => !!window.sessionStorage\n\n\twpm.testEndpoint = (\n\t\turl = location.protocol + \"//\" + location.host + wpmRestSettings.restEndpoint,\n\t\tcookieName = wpmRestSettings.cookieWpmRestEndpointAvailable,\n\t) => {\n\t\t// console.log('testing endpoint');\n\n\t\tjQuery.ajax(url, {\n\t\t\ttype : \"HEAD\",\n\t\t\ttimeout: 1000,\n\t\t\t// async: false,\n\t\t\tstatusCode: {\n\t\t\t\t200: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, true);\n\t\t\t\t\t// console.log('endpoint works');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(true))\n\t\t\t\t},\n\t\t\t\t404: function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t\t0 : function (response) {\n\t\t\t\t\t// Cookies.set(cookieName, false);\n\t\t\t\t\t// console.log('endpoint doesn\\'t work');\n\t\t\t\t\twindow.sessionStorage.setItem(cookieName, JSON.stringify(false))\n\t\t\t\t},\n\t\t\t},\n\t\t}).then(response => {\n\t\t\t// console.log('test done')\n\t\t\t// console.log('result: ' + JSON.parse(window.sessionStorage.getItem(cookieName)));\n\t\t\t// return JSON.parse(window.sessionStorage.getItem(cookieName));\n\t\t})\n\t}\n\n\twpm.isWpmRestEndpointAvailable = (cookieName = wpmRestSettings.cookieWpmRestEndpointAvailable) => !!wpm.getCookie(cookieName)\n\n\twpm.writeOrderIdToStorage = (orderId, expireDays = 365) => {\n\n\t\t// save the order ID in the browser storage\n\n\t\tif (!window.Storage) {\n\t\t\tlet expiresDate = new Date()\n\t\t\texpiresDate.setDate(expiresDate.getDate() + wpmDeduper.cookieExpiresDays)\n\n\t\t\tlet ids = []\n\t\t\tif (checkCookie()) {\n\t\t\t\tids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t}\n\n\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\tids.push(orderId)\n\t\t\t\tdocument.cookie = wpmDeduper.keyName + \"=\" + JSON.stringify(ids) + \";expires=\" + expiresDate.toUTCString()\n\t\t\t}\n\n\t\t} else {\n\t\t\tif (localStorage.getItem(wpmDeduper.keyName) === null) {\n\t\t\t\tlet ids = []\n\t\t\t\tids.push(orderId)\n\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\n\t\t\t} else {\n\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\tif (!ids.includes(orderId)) {\n\t\t\t\t\tids.push(orderId)\n\t\t\t\t\twindow.localStorage.setItem(wpmDeduper.keyName, JSON.stringify(ids))\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tif (typeof wpm.storeOrderIdOnServer === \"function\" && wpmDataLayer.orderDeduplication) {\n\t\t\twpm.storeOrderIdOnServer(orderId)\n\t\t}\n\t}\n\n\tfunction checkCookie() {\n\t\tlet key = wpm.getCookie(wpmDeduper.keyName)\n\t\treturn key !== \"\"\n\t}\n\n\twpm.isOrderIdStored = orderId => {\n\n\t\tif (wpmDataLayer.orderDeduplication) {\n\n\t\t\tif (!window.Storage) {\n\n\t\t\t\tif (checkCookie()) {\n\t\t\t\t\tlet ids = JSON.parse(wpm.getCookie(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (localStorage.getItem(wpmDeduper.keyName) !== null) {\n\t\t\t\t\tlet ids = JSON.parse(localStorage.getItem(wpmDeduper.keyName))\n\t\t\t\t\treturn ids.includes(orderId)\n\t\t\t\t} else {\n\t\t\t\t\treturn false\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.log(\"order duplication prevention: off\")\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.isEmail = email => {\n\n\t\t// https://emailregex.com/\n\n\t\tlet regex = /^(([^<>()\\[\\]\\\\.,;:\\s@\"]+(\\.[^<>()\\[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/\n\n\t\treturn regex.test(email)\n\t}\n\n\twpm.removeProductFromCart = (productId, quantityToRemove = null) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tlet quantity\n\n\t\t\tif (quantityToRemove == null) {\n\t\t\t\tquantity = wpmDataLayer.cart[productId].quantity\n\t\t\t} else {\n\t\t\t\tquantity = quantityToRemove\n\t\t\t}\n\n\t\t\tif (wpmDataLayer.cart[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmRemoveFromCart\", product)\n\n\t\t\t\tif (quantityToRemove == null || wpmDataLayer.cart[productId].quantity === quantityToRemove) {\n\n\t\t\t\t\tdelete wpmDataLayer.cart[productId]\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t} else {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity - quantity\n\n\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t\t// console.log('getting cart from back end');\n\t\t\t// wpm.getCartItemsFromBackend();\n\t\t\t// console.log('getting cart from back end done');\n\t\t}\n\t}\n\n\twpm.getIdBasedOndVariationsOutputSetting = productId => {\n\n\t\ttry {\n\t\t\tif (wpmDataLayer?.general?.variationsOutput) {\n\n\t\t\t\treturn productId\n\t\t\t} else {\n\t\t\t\tif (wpmDataLayer.products[productId].isVariation) {\n\n\t\t\t\t\treturn wpmDataLayer.products[productId].parentId\n\t\t\t\t} else {\n\n\t\t\t\t\treturn productId\n\t\t\t\t}\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// add_to_cart\n\twpm.addProductToCart = (productId, quantity) => {\n\n\t\ttry {\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\t\tif (wpmDataLayer?.products[productId]) {\n\n\t\t\t\tlet product = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\n\t\t\t\tjQuery(document).trigger(\"wpmAddToCart\", product)\n\n\t\t\t\t// add product to cart wpmDataLayer['cart']\n\n\t\t\t\t// if the product already exists in the object, only add the additional quantity\n\t\t\t\t// otherwise create that product object in the wpmDataLayer['cart']\n\t\t\t\tif (wpmDataLayer?.cart[productId]) {\n\n\t\t\t\t\twpmDataLayer.cart[productId].quantity = wpmDataLayer.cart[productId].quantity + quantity\n\t\t\t\t} else {\n\n\t\t\t\t\tif (!(\"cart\" in wpmDataLayer)) wpmDataLayer.cart = {}\n\n\t\t\t\t\twpmDataLayer.cart[productId] = wpm.getProductDetailsFormattedForEvent(productId, quantity)\n\t\t\t\t}\n\n\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(wpmDataLayer.cart))\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\n\t\t\t// fallback if wpmDataLayer.cart and wpmDataLayer.products got out of sync in case cart caching has an issue\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\twpm.getCartItems = () => {\n\n\t\tif (sessionStorage) {\n\t\t\tif (!sessionStorage.getItem(\"wpmDataLayerCart\") || wpmDataLayer.shop.page_type === \"order_received_page\") {\n\t\t\t\tsessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify({}))\n\t\t\t} else {\n\t\t\t\twpm.saveCartObjectToDataLayer(JSON.parse(sessionStorage.getItem(\"wpmDataLayerCart\")))\n\t\t\t}\n\t\t} else {\n\t\t\twpm.getCartItemsFromBackend()\n\t\t}\n\t}\n\n\t// get all cart items from the backend\n\twpm.getCartItemsFromBackend = () => {\n\t\ttry {\n\t\t\tlet data = {\n\t\t\t\taction: \"wpm_get_cart_items\",\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (cartItems) {\n\n\t\t\t\t\t\t// save all cart items into wpmDataLayer\n\n\t\t\t\t\t\tif (!cartItems[\"cart\"]) cartItems[\"cart\"] = {}\n\n\t\t\t\t\t\twpm.saveCartObjectToDataLayer(cartItems[\"cart\"])\n\n\t\t\t\t\t\tif (sessionStorage) sessionStorage.setItem(\"wpmDataLayerCart\", JSON.stringify(cartItems[\"cart\"]))\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// get productIds from the backend\n\twpm.getProductsFromBackend = productIds => {\n\n\n\t\t// reduce productIds by products already in the dataLayer\n\t\tproductIds = productIds.filter(item => !wpmDataLayer.products.hasOwnProperty(item))\n\n\t\t// if no products IDs are in the object, don't try to get anything from the server\n\t\tif (!productIds || productIds.length === 0) return\n\n\t\ttry {\n\t\t\tlet data = {\n\t\t\t\taction : \"wpm_get_product_ids\",\n\t\t\t\tproductIds: productIds,\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"get\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (products) {\n\n\t\t\t\t\t\t// merge products into wpmDataLayer.products\n\t\t\t\t\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, products)\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.saveCartObjectToDataLayer = cartObject => {\n\n\t\twpmDataLayer.cart = cartObject\n\t\twpmDataLayer.products = Object.assign({}, wpmDataLayer.products, cartObject)\n\t}\n\n\twpm.fireCheckoutOption = (step, checkout_option = null, value = null) => {\n\n\t\tlet data = {\n\t\t\tstep : step,\n\t\t\tcheckout_option: checkout_option,\n\t\t\tvalue : value,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutOption\", data)\n\t}\n\n\twpm.fireCheckoutProgress = step => {\n\n\t\tlet data = {\n\t\t\tstep: step,\n\t\t}\n\n\t\tjQuery(document).trigger(\"wpmFireCheckoutProgress\", data)\n\t}\n\n\twpm.getPostIdFromString = string => {\n\n\t\ttry {\n\t\t\treturn string.match(/(post-)(\\d+)/)[2]\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.triggerViewItemList = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tproductId = wpm.getIdBasedOndVariationsOutputSetting(productId)\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\tjQuery(document).trigger(\"wpmViewItemList\", wpm.getProductDataForViewItemEvent(productId))\n\t}\n\n\twpm.getProductDataForViewItemEvent = productId => {\n\n\t\tif (!productId) throw Error(\"Wasn't able to retrieve a productId\")\n\n\t\ttry {\n\t\t\tif (wpmDataLayer.products[productId]) {\n\n\t\t\t\treturn wpm.getProductDetailsFormattedForEvent(productId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getMainProductIdFromProductPage = () => {\n\n\t\ttry {\n\t\t\tif ([\"simple\", \"variable\", \"grouped\", \"composite\", \"bundle\"].indexOf(wpmDataLayer.shop.product_type) >= 0) {\n\t\t\t\treturn jQuery(\".wpmProductId:first\").data(\"id\")\n\t\t\t} else {\n\t\t\t\treturn false\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.viewItemListTriggerTestMode = target => {\n\n\t\tjQuery(target).css({\"position\": \"relative\"})\n\t\tjQuery(target).append(\"
\")\n\t\tjQuery(target).find(\"#viewItemListTriggerOverlay\").css({\n\t\t\t\"z-index\" : \"10\",\n\t\t\t\"display\" : \"block\",\n\t\t\t\"position\" : \"absolute\",\n\t\t\t\"height\" : \"100%\",\n\t\t\t\"top\" : \"0\",\n\t\t\t\"left\" : \"0\",\n\t\t\t\"right\" : \"0\",\n\t\t\t\"opacity\" : wpmDataLayer.viewItemListTrigger.opacity,\n\t\t\t\"background-color\": wpmDataLayer.viewItemListTrigger.backgroundColor,\n\t\t})\n\t}\n\n\twpm.getSearchTermFromUrl = () => {\n\n\t\ttry {\n\t\t\tlet urlParameters = new URLSearchParams(window.location.search)\n\t\t\treturn urlParameters.get(\"s\")\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// we need this to track timeouts for intersection observers\n\tlet ioTimeouts = {}\n\n\twpm.observerCallback = (entries, observer) => {\n\n\t\tentries.forEach((entry) => {\n\n\t\t\ttry {\n\t\t\t\tlet productId\n\n\t\t\t\tlet elementId = jQuery(entry.target).data(\"ioid\")\n\n\t\t\t\t// Get the productId from next element, if wpmProductId is a sibling, like in Gutenberg blocks\n\t\t\t\t// otherwise go search in children, like in regular WC loop items\n\t\t\t\tif (jQuery(entry.target).next(\".wpmProductId\").length) {\n\t\t\t\t\t// console.log('test 1');\n\t\t\t\t\tproductId = jQuery(entry.target).next(\".wpmProductId\").data(\"id\")\n\t\t\t\t} else {\n\t\t\t\t\tproductId = jQuery(entry.target).find(\".wpmProductId\").data(\"id\")\n\t\t\t\t}\n\n\n\t\t\t\tif (!productId) throw Error(\"wpmProductId element not found\")\n\n\t\t\t\tif (entry.isIntersecting) {\n\n\t\t\t\t\tioTimeouts[elementId] = setTimeout(() => {\n\n\t\t\t\t\t\twpm.triggerViewItemList(productId)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) wpm.viewItemListTriggerTestMode(entry.target)\n\t\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.repeat === false) observer.unobserve(entry.target)\n\t\t\t\t\t}, wpmDataLayer.viewItemListTrigger.timeout)\n\n\t\t\t\t} else {\n\n\t\t\t\t\tclearTimeout(ioTimeouts[elementId])\n\t\t\t\t\tif (wpmDataLayer.viewItemListTrigger.testMode) jQuery(entry.target).find(\"#viewItemListTriggerOverlay\").remove()\n\t\t\t\t}\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error(e)\n\t\t\t}\n\t\t})\n\t}\n\n\t// fire view_item_list only on products that have become visible\n\tlet io\n\tlet ioid = 0\n\tlet allIoElementsToWatch\n\n\tlet getAllElementsToWatch = () => {\n\n\t\tallIoElementsToWatch = jQuery(\".wpmProductId\")\n\t\t\t.map(function (i, elem) {\n\n\t\t\t\tif (\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"type-product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).parent().hasClass(\"product-item-inner\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(elem).parent()\n\t\t\t\t} else if (\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"wc-block-grid__product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"product-small\") ||\n\t\t\t\t\tjQuery(elem).prev().hasClass(\"woocommerce-LoopProduct-link\")\n\t\t\t\t) {\n\t\t\t\t\treturn jQuery(this).prev()\n\t\t\t\t} else if (jQuery(elem).closest(\".product\").length) {\n\t\t\t\t\treturn jQuery(elem).closest(\".product\")\n\t\t\t\t}\n\t\t\t})\n\t}\n\n\twpm.startIntersectionObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// enable view_item_list test mode from browser\n\t\t\tif (wpm.urlHasParameter(\"vildemomode\")) wpmDataLayer.viewItemListTrigger.testMode = true\n\n\t\t\t// set up intersection observer\n\t\t\tio = new IntersectionObserver(wpm.observerCallback, {\n\t\t\t\tthreshold: wpmDataLayer.viewItemListTrigger.threshold,\n\t\t\t})\n\n\t\t\tgetAllElementsToWatch()\n\n\t\t\tallIoElementsToWatch.each((i, elem) => {\n\n\t\t\t\tjQuery(elem[0]).data(\"ioid\", ioid++)\n\n\t\t\t\tio.observe(elem[0])\n\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// watch DOM for new lazy loaded products and add them to the intersection observer\n\twpm.startProductsMutationObserverToWatch = () => {\n\n\t\ttry {\n\t\t\t// Pass in the target node, as well as the observer options\n\n\t\t\t// selects the most common parent node\n\t\t\t// https://stackoverflow.com/a/7648323/4688612\n\t\t\tlet productsNode = jQuery(\".wpmProductId:eq(0)\").parents().has(jQuery(\".wpmProductId:eq(1)\").parents()).first()\n\n\t\t\tif (productsNode.length) {\n\t\t\t\tproductsMutationObserver.observe(productsNode[0], {\n\t\t\t\t\tattributes : true,\n\t\t\t\t\tchildList : true,\n\t\t\t\t\tcharacterData: true,\n\t\t\t\t})\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\t// Create an observer instance\n\tlet productsMutationObserver = new MutationObserver(mutations => {\n\n\t\tmutations.forEach(mutation => {\n\t\t\tlet newNodes = mutation.addedNodes // DOM NodeList\n\t\t\tif (newNodes !== null) { // If there are new nodes added\n\t\t\t\tlet nodes = jQuery(newNodes) // jQuery set\n\t\t\t\tnodes.each(function () {\n\t\t\t\t\tif (\n\t\t\t\t\t\tjQuery(this).hasClass(\"type-product\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"product-small\") ||\n\t\t\t\t\t\tjQuery(this).hasClass(\"wc-block-grid__product\")\n\t\t\t\t\t) {\n\t\t\t\t\t\t// check if the node has a child or sibling wpmProductId\n\t\t\t\t\t\t// if yes add it to the intersectionObserver\n\t\t\t\t\t\tif (hasWpmProductIdElement(this)) {\n\t\t\t\t\t\t\tjQuery(this).data(\"ioid\", ioid++)\n\t\t\t\t\t\t\tio.observe(this)\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t}\n\t\t})\n\t})\n\n\tlet hasWpmProductIdElement = elem =>\n\t\t!!(jQuery(elem).find(\".wpmProductId\").length ||\n\t\tjQuery(elem).siblings(\".wpmProductId\").length)\n\n\twpm.setCookie = (cookieName, cookieValue = \"\", expiryDays = null) => {\n\n\t\tif (expiryDays) {\n\n\t\t\tlet d = new Date()\n\t\t\td.setTime(d.getTime() + (expiryDays * 24 * 60 * 60 * 1000))\n\t\t\tlet expires = \"expires=\" + d.toUTCString()\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";\" + expires + \";path=/\"\n\t\t} else {\n\t\t\tdocument.cookie = cookieName + \"=\" + cookieValue + \";path=/\"\n\t\t}\n\t}\n\n\twpm.getCookie = cookieName => {\n\n\t\tlet name = cookieName + \"=\"\n\t\tlet decodedCookie = decodeURIComponent(document.cookie)\n\t\tlet ca = decodedCookie.split(\";\")\n\n\t\tfor (let i = 0; i < ca.length; i++) {\n\n\t\t\tlet c = ca[i]\n\n\t\t\twhile (c.charAt(0) == \" \") {\n\t\t\t\tc = c.substring(1)\n\t\t\t}\n\n\t\t\tif (c.indexOf(name) == 0) {\n\t\t\t\treturn c.substring(name.length, c.length)\n\t\t\t}\n\t\t}\n\n\t\treturn \"\"\n\t}\n\n\twpm.getWpmSessionData = () => {\n\n\t\tif (window.sessionStorage) {\n\n\t\t\tlet data = window.sessionStorage.getItem(\"_wpm\")\n\n\t\t\tif (data !== null) {\n\t\t\t\treturn JSON.parse(data)\n\t\t\t} else {\n\t\t\t\treturn {}\n\t\t\t}\n\t\t} else {\n\t\t\treturn {}\n\t\t}\n\t}\n\n\twpm.setWpmSessionData = data => {\n\t\tif (window.sessionStorage) {\n\t\t\twindow.sessionStorage.setItem(\"_wpm\", JSON.stringify(data))\n\t\t}\n\t}\n\n\twpm.storeOrderIdOnServer = orderId => {\n\n\t\ttry {\n\t\t\t// save the state in the database\n\t\t\tlet data = {\n\t\t\t\taction : \"wpm_purchase_pixels_fired\",\n\t\t\t\torder_id: orderId,\n\t\t\t\t// nonce : ajax_object.nonce,\n\t\t\t\tnonce: wpm.nonce,\n\t\t\t}\n\n\t\t\tjQuery.ajax(\n\t\t\t\t{\n\t\t\t\t\ttype : \"post\",\n\t\t\t\t\tdataType: \"json\",\n\t\t\t\t\t// url : ajax_object.ajax_url,\n\t\t\t\t\turl : wpm.ajax_url,\n\t\t\t\t\tdata : data,\n\t\t\t\t\tsuccess: function (response) {\n\t\t\t\t\t\tif (response.success === false) {\n\t\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t\t}\n\t\t\t\t\t},\n\t\t\t\t\terror : function (response) {\n\t\t\t\t\t\tconsole.log(response)\n\t\t\t\t\t},\n\t\t\t\t})\n\t\t} catch (e) {\n\t\t\tconsole.error(e)\n\t\t}\n\t}\n\n\twpm.getProductIdByCartItemKeyUrl = url => {\n\n\t\tlet searchParams = new URLSearchParams(url.search)\n\t\tlet cartItemKey = searchParams.get(\"remove_item\")\n\n\t\tlet productId\n\n\t\tif (wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"] === 0) {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"product_id\"]\n\t\t} else {\n\t\t\tproductId = wpmDataLayer.cartItemKeys[cartItemKey][\"variation_id\"]\n\t\t}\n\n\t\treturn productId\n\t}\n\n\twpm.getAddToCartLinkProductIds = () =>\n\t\tjQuery(\"a\").map(function () {\n\t\t\tlet href = jQuery(this).attr(\"href\")\n\n\t\t\tif (href && href.includes(\"?add-to-cart=\")) {\n\t\t\t\tlet matches = href.match(/(add-to-cart=)(\\d+)/)\n\t\t\t\tif (matches) return matches[2]\n\t\t\t}\n\t\t}).get()\n\n\twpm.getProductDetailsFormattedForEvent = (productId, quantity = 1) => {\n\n\t\tlet product = {\n\t\t\tid : productId.toString(),\n\t\t\tdyn_r_ids : wpmDataLayer.products[productId].dyn_r_ids,\n\t\t\tname : wpmDataLayer.products[productId].name,\n\t\t\tlist_name : wpmDataLayer.shop.list_name,\n\t\t\tbrand : wpmDataLayer.products[productId].brand,\n\t\t\tcategory : wpmDataLayer.products[productId].category,\n\t\t\tvariant : wpmDataLayer.products[productId].variant,\n\t\t\tlist_position: wpmDataLayer.products[productId].position,\n\t\t\tquantity : quantity,\n\t\t\tprice : wpmDataLayer.products[productId].price,\n\t\t\tcurrency : wpmDataLayer.shop.currency,\n\t\t\tisVariable : wpmDataLayer.products[productId].isVariable,\n\t\t\tisVariation : wpmDataLayer.products[productId].isVariation,\n\t\t\tparentId : wpmDataLayer.products[productId].parentId,\n\t\t}\n\n\t\tif (product.isVariation) product[\"parentId_dyn_r_ids\"] = wpmDataLayer.products[productId].parentId_dyn_r_ids\n\n\t\treturn product\n\t}\n\n\twpm.setReferrerToCookie = () => {\n\n\t\t// can't use session storage as we can't read it from the server\n\t\tif (!wpm.getCookie(\"wpmReferrer\")) {\n\t\t\twpm.setCookie(\"wpmReferrer\", document.referrer)\n\t\t}\n\t}\n\n\twpm.getReferrerFromCookie = () => {\n\n\t\tif (wpm.getCookie(\"wpmReferrer\")) {\n\t\t\treturn wpm.getCookie(\"wpmReferrer\")\n\t\t} else {\n\t\t\treturn null\n\t\t}\n\t}\n\n\twpm.getClidFromBrowser = (clidId = \"gclid\") => {\n\n\t\tlet clidCookieId\n\n\t\tclidCookieId = {\n\t\t\tgclid: \"_gcl_aw\",\n\t\t\tdclid: \"_gcl_dc\",\n\t\t}\n\n\t\tif (wpm.getCookie(clidCookieId[clidId])) {\n\n\t\t\tlet clidCookie = wpm.getCookie(clidCookieId[clidId])\n\t\t\tlet matches = clidCookie.match(/(GCL.[\\d]*.)(.*)/)\n\t\t\treturn matches[2]\n\t\t} else {\n\t\t\treturn \"\"\n\t\t}\n\t}\n\n\twpm.getUserAgent = () => navigator.userAgent\n\n\twpm.getViewPort = () => ({\n\t\twidth : Math.max(document.documentElement.clientWidth || 0, window.innerWidth || 0),\n\t\theight: Math.max(document.documentElement.clientHeight || 0, window.innerHeight || 0),\n\t})\n\n\n\twpm.version = () => {\n\t\tconsole.log(wpmDataLayer.version)\n\t}\n\n\t// https://api.jquery.com/jquery.getscript/\n\twpm.loadScriptAndCacheIt = (url, options) => {\n\n\t\t// Allow user to set any option except for dataType, cache, and url\n\t\toptions = jQuery.extend(options || {}, {\n\t\t\tdataType: \"script\",\n\t\t\tcache : true,\n\t\t\turl : url,\n\t\t})\n\n\t\t// Use $.ajax() since it is more flexible than $.getScript\n\t\t// Return the jqXHR object so we can chain callbacks\n\t\treturn jQuery.ajax(options)\n\t}\n\n\twpm.getOrderItemPrice = orderItem => (orderItem.total + orderItem.total_tax) / orderItem.quantity\n\n\twpm.hasLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\treturn data?.loginEventFired\n\t}\n\n\twpm.setLoginEventFired = () => {\n\t\tlet data = wpm.getWpmSessionData()\n\t\tdata[\"loginEventFired\"] = true\n\t\twpm.setWpmSessionData(data)\n\t}\n\n\twpm.wpmDataLayerExists = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (typeof wpmDataLayer !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.jQueryExists = () => new Promise(resolve => {\n\t\t(function waitForjQuery() {\n\t\t\tif (typeof jQuery !== \"undefined\") return resolve()\n\t\t\tsetTimeout(waitForjQuery, 100)\n\t\t})()\n\t})\n\n\twpm.pageLoaded = () => new Promise(resolve => {\n\t\t(function waitForVar() {\n\t\t\tif (\"complete\" === document.readyState) return resolve()\n\t\t\tsetTimeout(waitForVar, 50)\n\t\t})()\n\t})\n\n\twpm.pageReady = () => {\n\t\treturn new Promise(resolve => {\n\t\t\t(function waitForVar() {\n\t\t\t\tif (\"interactive\" === document.readyState || \"complete\" === document.readyState) return resolve()\n\t\t\t\tsetTimeout(waitForVar, 50)\n\t\t\t})()\n\t\t})\n\t}\n\n\twpm.isMiniCartActive = () => {\n\t\tif (window.sessionStorage) {\n\t\t\tfor (const [key, value] of Object.entries(window.sessionStorage)) {\n\t\t\t\tif (key.includes(\"wc_fragments\")) {\n\t\t\t\t\treturn true\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn false\n\t\t} else {\n\t\t\treturn false\n\t\t}\n\t}\n\n\twpm.doesWooCommerceCartExist = () => document.cookie.includes(\"woocommerce_items_in_cart\")\n\n\twpm.urlHasParameter = parameter => {\n\t\tlet urlParams = new URLSearchParams(window.location.search)\n\t\treturn urlParams.has(parameter)\n\t}\n\n}(window.wpm = window.wpm || {}, jQuery))\n","/**\n * Load all WPM functions\n *\n * Ignore event listeners. They need to be loaded after\n * we made sure that jQuery has been loaded.\n */\n\nrequire(\"./functions\")\nrequire(\"./cookie_consent\")\n\n// #if process.env.TIER === 'premium'\n// require(\"./functions_premium\")\n// #endif\n","/**\n * After WPM is loaded\n * we first check if wpmDataLayer is loaded,\n * and as soon as it is, we load the pixels,\n * and as soon as the page load is complete,\n * we fire the wpmLoad event.\n *\n * @param {{pro:bool}} wpmDataLayer.version\n *\n * https://stackoverflow.com/a/25868457/4688612\n * https://stackoverflow.com/a/44093516/4688612\n */\n\nwpm.wpmDataLayerExists()\n\t.then(function () {\n\t\tconsole.log(\"Pixel Manager for WooCommerce: \" + (wpmDataLayer.version.pro ? \"Pro\" : \"Free\") +\" Version \" + wpmDataLayer.version.number + \" loaded\")\n\t\tjQuery(document).trigger(\"wpmPreLoadPixels\", {})\n\t})\n\t.then(function () {\n\t\twpm.pageLoaded().then(function () {\n\t\t\tjQuery(document).trigger(\"wpmLoad\", {})\n\t\t})\n\t})\n\n\n\n/**\n * Run when page is ready\n *\n */\n\nwpm.pageReady().then(function () {\n\n\t/**\n\t * Run as soon as wpm namespace is loaded\n\t */\n\n\twpm.wpmDataLayerExists()\n\t\t.then(function () {\n\t\t\t// watch for products visible in viewport\n\t\t\twpm.startIntersectionObserverToWatch()\n\n\t\t\t// watch for lazy loaded products\n\t\t\twpm.startProductsMutationObserverToWatch()\n\t\t})\n})\n\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\t// no module.id needed\n\t\t// no module.loaded needed\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId](module, module.exports, __webpack_require__);\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n","/**\n * Load all essential scripts first\n */\n\nrequire(\"./wpm/functions_loader\")\n\n// Only load the event listeners after jQuery has been loaded for sure\nwpm.jQueryExists().then(function () {\n\n\trequire(\"./wpm/event_listeners\")\n\n\trequire(\"./google/loader\")\n\trequire(\"./facebook/loader\")\n\trequire(\"./hotjar/loader\")\n\n\t/**\n\t * Load all premium scripts\n\t */\n\n\t// #if process.env.TIER === 'premium'\n// \trequire(\"./microsoft-ads/loader\")\n// \trequire(\"./pinterest/loader\")\n// \trequire(\"./snapchat/loader\")\n// \trequire(\"./tiktok/loader\")\n// \trequire(\"./twitter/loader\")\n\t// #endif\n\n\n\t/**\n\t * Initiate WPM.\n\t *\n\t * It makes sure that the script flow gets executed correctly,\n\t * no matter how JS \"optimizers\" shuffle the code.\n\t */\n\n\trequire(\"./wpm/init\")\n})\n\n"],"names":["jQuery","document","on","wpmDataLayer","pixels","facebook","pixel_id","loaded","wpm","canIFire","loadFacebookPixel","event","product","eventId","getRandomEventId","fbq","content_type","content_name","name","content_ids","dyn_r_ids","dynamic_remarketing","id_type","value","parseFloat","quantity","price","currency","eventID","shop","console","log","trigger","event_name","event_id","user_data","getFbUserData","event_source_url","window","location","href","custom_data","fbGetProductDataForCapiEvent","e","error","fbViewContent","search_string","getSearchTermFromUrl","setFbUserData","order","value_filtered","facebookContentIds","id","$","undefined","fBUserData","f","b","n","callMethod","apply","arguments","queue","push","_fbq","version","t","createElement","async","src","s","getElementsByTagName","parentNode","insertBefore","data","user","external_id","user_id","billing_email_hashed","em","billing_first_name","fn","billing_last_name","ln","billing_phone","ph","billing_city","ct","billing_state","st","billing_postcode","zp","billing_country","country","Math","random","toString","substring","getFbUserDataFromBrowser","getCookie","fbp","navigator","userAgent","client_user_agent","prodIds","key","item","Object","entries","items","general","variationsOutput","variation_id","String","products","trackCustomFacebookEvent","eventName","customData","require","isEmptyObject","google","ads","conversionIds","status","googleConfigConditionsMet","isVariable","send_events_with_parent_ids","send_to","getGoogleAdsConversionIdentifiers","google_business_vertical","gtagLoaded","then","gtag","getGoogleAdsDynamicRemarketingOrderItems","data_basic","data_with_cart","getGoogleAdsConversionIdentifiersWithLabel","transaction_id","number","new_customer","clv_order_value_filtered","customer_lifetime_value","aw_merchant_id","discount","aw_feed_country","aw_feed_language","getGoogleAdsRegularOrderItems","conversionIdentifiers","orderItems","orderItem","analytics","universal","property_id","mp_active","affiliation","value_regular","tax","shipping","coupon","getGAUAOrderItems","category","join","variant","variant_name","brand","ga3AddListNameToProduct","item_data","productPosition","list_name","list_position","ga4","measurement_id","getGA4OrderItems","item_name","item_category","item_id","item_variant","item_brand","state","canGoogleLoad","loadGoogle","logPreventedPixelLoading","type","consent_mode","active","getConsentValues","mode","categories","includes","getVisitorConsentStatusAndUpdateGoogleConsentSettings","google_consent_settings","analytics_storage","ad_storage","updateGoogleConsentMode","cookie_consent_mgmt","explicit_consent","fireGtagGoogleAds","enhanced_conversions","phone_conversion_label","phone_conversion_number","keys","page_type","enhanced_conversion_data","fireGtagGoogleAnalyticsUA","parameters","fireGtagGoogleAnalyticsGA4","isGoogleActive","getGoogleGtagId","loadScriptAndCacheIt","done","script","textStatus","dataLayer","wait_for_update","region","ads_data_redaction","url_passthrough","linker","settings","Date","Promise","resolve","reject","startTime","wait","setTimeout","optimize","container_id","load_google_optimize_pixel","hotjar","site_id","load_hotjar_pixel","h","o","hj","q","_hjSettings","hjid","hjsv","a","r","appendChild","getComplianzCookies","cmplz_statistics","cmplz_marketing","visitorHasChosen","getCookieLawInfoCookies","analyticsCookie","adsCookie","wpmConsentValues","setConsentValueCategories","updateConsentCookieValues","cookie","explicitConsent","decodeURI","indexOf","JSON","parse","action","length","consents","statistics","marketing","thirdparty","advanced","setConsentDefaultValuesToExplicit","pixelName","canIFireMode","scriptTagObserver","MutationObserver","mutations","forEach","addedNodes","node","shouldScriptBeActive","unblockScript","blockScript","observe","head","childList","subtree","disconnect","split","some","element","scriptNode","removeAttach","remove","wpmSrc","attr","appendTo","removeAttr","unblockAllScripts","unblockSelectedPixels","Cookiebot","consent","detail","cmplzStatusChange","cmplzConsentData","huObserver","hu","documentElement","body","explicitConsentStateAlreadySet","url","URL","this","productId","getProductIdByCartItemKeyUrl","removeProductFromCart","addProductToCart","product_type","Number","val","each","find","classes","getPostIdFromString","one","target","closest","matches","match","nextAll","getIdBasedOndVariationsOutputSetting","Error","getProductDetailsFormattedForEvent","isEmail","fireCheckoutProgress","emailSelected","paymentMethodSelected","fireCheckoutOption","cart","getCartItemsFromBackend","variation","microdata_product_id","doesWooCommerceCartExist","getCartItems","productIds","getAddToCartLinkProductIds","getProductsFromBackend","referrer","referrerHostname","hostname","host","setCookie","wpmLoadFired","getMainProductIdFromProductPage","getProductDataForViewItemEvent","isOrderIdStored","writeOrderIdToStorage","hasLoginEventFired","setLoginEventFired","wpmDeduper","wpmRestSettings","checkCookie","useRestEndpoint","isSessionStorageAvailable","isRestEndpointAvailable","isBelowRestErrorThreshold","sessionStorage","getItem","testEndpoint","protocol","cookieName","ajax","timeout","statusCode","response","setItem","stringify","isWpmRestEndpointAvailable","orderId","Storage","localStorage","ids","expiresDate","setDate","getDate","toUTCString","storeOrderIdOnServer","orderDeduplication","email","test","quantityToRemove","isVariation","parentId","saveCartObjectToDataLayer","dataType","ajax_url","success","cartItems","filter","hasOwnProperty","assign","cartObject","step","checkout_option","string","triggerViewItemList","viewItemListTriggerTestMode","css","append","viewItemListTrigger","opacity","backgroundColor","URLSearchParams","search","get","io","ioTimeouts","observerCallback","observer","entry","elementId","next","isIntersecting","testMode","repeat","unobserve","clearTimeout","allIoElementsToWatch","ioid","getAllElementsToWatch","map","i","elem","parent","hasClass","prev","startIntersectionObserverToWatch","urlHasParameter","IntersectionObserver","threshold","startProductsMutationObserverToWatch","productsNode","parents","has","first","productsMutationObserver","attributes","characterData","mutation","newNodes","hasWpmProductIdElement","siblings","cookieValue","expiryDays","d","setTime","getTime","expires","ca","decodeURIComponent","c","charAt","getWpmSessionData","setWpmSessionData","order_id","nonce","cartItemKey","cartItemKeys","position","parentId_dyn_r_ids","setReferrerToCookie","getReferrerFromCookie","getClidFromBrowser","clidCookieId","clidId","gclid","dclid","getUserAgent","getViewPort","width","max","clientWidth","innerWidth","height","clientHeight","innerHeight","options","extend","cache","getOrderItemPrice","total","total_tax","loginEventFired","wpmDataLayerExists","waitForVar","jQueryExists","waitForjQuery","pageLoaded","readyState","pageReady","isMiniCartActive","parameter","pro","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","module","__webpack_modules__"],"sourceRoot":""}