1(()=>{"use strict";const t=window.wp.data,e="wc/store/cart",r="wc/store/checkout",c="wc/store/payment",o="add_to_cart",n="view_item_list",i="select_item",s="view_item",a=t=>{const e={};for(const r of t)r&&void 0!==r.key&&null!==r.key&&(e[r.key]=r);return e},u=3e5,m=new Map,l=t=>null==t?"":String(t),d=(t,e=1,r=Date.now())=>{const c=l(t);if(!(c&&e>0))return;const o=m.get(c),n=o&&r-o.recordedAt<=u?o.quantity:0;m.set(c,{quantity:n+e,recordedAt:r})},w=(t,e=Number.POSITIVE_INFINITY,r=Date.now())=>{const c=l(t),o=m.get(c);if(!o)return 0;if(r-o.recordedAt>u)return m.delete(c),0;const n=Math.min(o.quantity,Math.max(0,e)),i=o.quantity-n;return i>0?m.set(c,{quantity:i,recordedAt:o.recordedAt}):m.delete(c),n},y=(t,e)=>{const r=window.gtmkit_settings.datalayer_name;window.gtmkit.events.push({ecommerce:null},r),window.gtmkit.events.push({event:t,...e},r),!0===window.gtmkit_settings.console_log&&console.log(`Pushing event ${t}`)},p=()=>{if(!0===window.gtmkit_data.wc.add_shipping_info.fired)return;const t={ecommerce:{currency:window.gtmkit_data.wc.currency,value:window.gtmkit_data.wc.cart_value,shipping_tier:window.gtmkit_data.wc.chosen_shipping_method,items:window.gtmkit_data.wc.cart_items}};y("add_shipping_info",t),window.gtmkit_data.wc.add_shipping_info.fired=!0},_=()=>{if(!0===window.gtmkit_data.wc.add_payment_info.fired)return;const t={ecommerce:{currency:window.gtmkit_data.wc.currency,value:window.gtmkit_data.wc.cart_value,payment_type:window.gtmkit_data.wc.chosen_payment_method,items:window.gtmkit_data.wc.cart_items}};y("add_payment_info",t),window.gtmkit_data.wc.add_payment_info.fired=!0},g=()=>window.gtmkit_data?.wc?.currency??"",f=t=>{if(!t)return{};if("string"==typeof t)try{return JSON.parse(t)}catch(t){return{}}return{...t}},k=(t,e="")=>{const r=f(t?.extensions?.gtmkit?.item);return e&&(r.item_list_name=e),r},h=t=>{let e=!1;return()=>{e||(e=!0,Promise.resolve().then(()=>{e=!1,t()}))}},b=(t,e)=>{!0===window.gtmkit_settings?.console_log&&console.error(`GTM Kit: Error in ${t} handler`,e)},v=(t,e)=>{for(const r of t){let t=r.quantity;if("add_to_cart"===e){if(t-=w(r.item.item_id??r.item.id,t),t<=0)continue;r.item.quantity=t}const c=Number(r.item.price??0)*t;y(e,{ecommerce:{currency:g(),value:c,items:[r.item]}})}},q=({select:t,subscribe:r})=>{let c=null;return r(h(()=>{try{const r=(()=>{const r=t(e);if(!r||"function"!=typeof r.getCartData)return null;if("function"==typeof r.hasFinishedResolution&&!r.hasFinishedResolution("getCartData"))return null;const c=r.getCartData();return c&&Array.isArray(c.items)?(o=c)&&Array.isArray(o.items)?o.items.map(t=>{const e=f(t?.extensions?.gtmkit?.item);e.quantity=t.quantity;const r=Number(t?.prices?.sale_price??0);return{key:t.key,quantity:t.quantity,unitPrice:Number.isFinite(r)?r/100:0,item:e}}):[]:null;var o})();if(null===r)return;if(null===c)return void(c=r);const{added:o,removed:n}=((t=[],e=[])=>{const r=a(t),c=a(e),o=[],n=[];for(const t of Object.keys(c)){const e=c[t],i=r[t]?r[t].quantity:0,s=e.quantity-i;s>0?o.push({item:{...e.item,quantity:s},quantity:s}):s<0&&n.push({item:{...e.item,quantity:-s},quantity:-s})}for(const t of Object.keys(r))if(!c[t]){const e=r[t];n.push({item:{...e.item,quantity:e.quantity},quantity:e.quantity})}return{added:o,removed:n}})(c,r);c=r,v(o,"add_to_cart"),v(n,"remove_from_cart")}catch(t){b("cart-subscriber",t)}}))},A=["before_processing","processing","complete"],S=t=>{if(!t||"function"!=typeof t.getCartData)return"";const e=t.getCartData(),r=e&&Array.isArray(e.shippingRates)?e.shippingRates:[];for(const t of r){const e=(Array.isArray(t.shipping_rates)?t.shipping_rates:[]).find(t=>!0===t.selected);if(e)return e.rate_id??""}return""},N=t=>t&&"function"==typeof t.getActivePaymentMethod?t.getActivePaymentMethod()??"":"",E=({root:t=document}={})=>{let e=null;const r=t=>{const r=t.target;r&&r.closest&&r.closest(".wc-block-mini-cart__button")&&(async()=>{try{const t=await(async()=>{const t=window.gtmkitWooCommerceBlocksBuild;if(!t||!t.root)return null;const e=await fetch(`${t.root}wc/store/v1/cart`,{credentials:"include",headers:{"X-WP-Nonce":t.nonce}});return e.ok?e.json():null})();if(!t)return;const{items:r,value:c,signature:o}=(t=>{const e=Array.isArray(t?.items)?t.items:[],r=e.map(t=>{const e=f(t?.extensions?.gtmkit?.item);return e.quantity=t.quantity,e}),c=(t=>t.map(t=>`${t.key}:${t.quantity}`).sort().join("|"))(e.map(t=>({key:t.key,quantity:t.quantity}))),o=Number(t?.totals?.total_price??0);return{items:r,value:Number.isFinite(o)?o/100:0,signature:c}})(t);if(0===r.length)return;if(o===e)return;e=o,y("view_cart",{ecommerce:{currency:g(),value:c,items:r}})}catch(t){b("mini-cart",t)}})()};return t.addEventListener("click",r,!0),()=>t.removeEventListener("click",r,!0)},C="Cross-sells",L=window.wp.hooks,j="gtmkit/woocommerce-blocks",D="experimental__woocommerce_blocks",F=()=>!!document.querySelector(".wp-block-woocommerce-cart, .wp-block-woocommerce-checkout"),O=".gtmkit_block_product_data",$=".added_to_cart, .wc-forward, .wc_forward",x=".wp-block-woocommerce-cart, .wp-block-woocommerce-checkout",M=(t,e)=>{const r=t.closest(e);
1if(!r||r.closest(x))return null;const c=t.closest("li, .wc-block-product, .wp-block-post"),o=c?c.querySelector(O):null;if(!o)return null;const n=f(o.getAttribute("data-gtmkit_product_data"));return n&&0!==Object.keys(n).length?{item:n,root:r}:null},P=t=>t.getAttribute("data-gtmkit-list-name")||"Product Collection",R=({root:t=document,selector:e=".wp-block-woocommerce-product-collection",listNameResolver:r=P,observerFactory:c=t=>new window.MutationObserver(t)})=>{const s=[];Array.from(t.querySelectorAll(e)).filter(t=>!t.closest(x)).forEach(t=>{const e=r(t);let o=null;const i=()=>{try{(()=>{const r=((t,e)=>{const r=[];return t.querySelectorAll(O).forEach((t,c)=>{const o=f(t.getAttribute("data-gtmkit_product_data"));o&&0!==Object.keys(o).length&&(e&&(o.item_list_name=e),o.index=c+1,r.push(o))}),r})(t,e);if(0===r.length)return;const c=(t=>t.map(t=>`${t.item_id??t.id??""}`).join("|"))(r);c!==o&&(o=c,y(n,{ecommerce:{items:r}}))})()}catch(t){b("product-collection",t)}};i();const a=c(i);a.observe(t,{childList:!0,subtree:!0}),s.push(a)});const a=t=>{try{if(!t.target.closest)return;const c=t.target.closest("a");if(!c||c.closest($))return;const o=M(c,e);if(!o)return;const n=r(o.root);n&&(o.item.item_list_name=n),y(i,{ecommerce:{items:[o.item]}})}catch(t){b("product-collection-select",t)}},u=t=>{try{if(!t.target.closest)return;const c=t.target.closest(".add_to_cart_button, .wc-block-components-product-button__button");if(!c||c.matches($))return;const n=M(c,e);if(!n)return;const i=r(n.root);i&&(n.item.item_list_name=i),n.item.quantity=1,c.matches(".wc-block-components-product-button__button")&&d(n.item.item_id??n.item.id,1),y(o,{ecommerce:{currency:g(),value:Number(n.item.price??0),items:[n.item]}})}catch(t){b("product-collection-add",t)}},m=t===document?document:t;return m.addEventListener("click",a,!0),m.addEventListener("click",u,!0),()=>{s.forEach(t=>t.disconnect()),m.removeEventListener("click",a,!0),m.removeEventListener("click",u,!0)}},I=()=>{try{const a={select:t.select,subscribe:t.subscribe};q(a),document.querySelector(".wc-block-mini-cart")&&E(),((e=>{try{return Boolean((0,t.select)(e))}catch(t){return!1}})(r)||document.querySelector(".wp-block-woocommerce-checkout"))&&(({select:t,subscribe:o})=>{let n=S(t(e)),i=N(t(c)),s=!1;const a=()=>window.gtmkit_settings.wc.add_shipping_info.config,u=()=>window.gtmkit_settings.wc.add_payment_info.config;o(h(()=>{try{if(!0!==window.gtmkit_data?.wc?.is_checkout)return;const m=S(t(e));m&&m!==n&&(n=m,window.gtmkit_data.wc.chosen_shipping_method=m,2===a()&&p());const l=N(t(c));l&&l!==i&&(i=l,window.gtmkit_data.wc.chosen_payment_method=l,2===u()&&_());const d=(o=t(r))&&"function"==typeof o.getCheckoutStatus?o.getCheckoutStatus()??"":"";!s&&A.includes(d)&&(s=!0,0!==a()&&p(),0!==u()&&_())}catch(t){b("checkout-subscriber",t)}var o}))})(a),document.querySelector(".wp-block-woocommerce-cart")&&(({select:t,subscribe:r,root:c=document})=>{let o=null,s=[];const a=()=>{try{if(s=(()=>{const r=t(e);if(!r||"function"!=typeof r.getCartData)return[];const c=r.getCartData();return Array.isArray(c&&c.crossSells)?c.crossSells:[]})(),0===s.length)return;const r=s.map((t,e)=>({...k(t,C),index:e+1})),c=r.map(t=>`${t.item_id??t.id??""}`).join("|");if(c===o)return;o=c,y(n,{ecommerce:{items:r}})}catch(t){b("cart-cross-sells",t)}},u=r(h(a));a();const m=t=>{try{const e=t.target.closest?t.target.closest("a[href]"):null;if(!e)return;const r=e.getAttribute("href");if(!r)return;const c=s.find(t=>t.permalink&&t.permalink===r);if(!c)return;y(i,{ecommerce:{items:[k(c,C)]}})}catch(t){b("cart-cross-sells-select",t)}};c.addEventListener("click",m,!0)})(a),(()=>{const t={};(0,L.addAction)(`${D}-product-list-render`,j,({products:e=[],listName:r="All products"}={})=>{try{if(!e.length||F())return;const c=e.map((t,e)=>({...k(t,r),index:e+1})),o=(t=>t.map(t=>`${t.item_id??t.id??""}`).join("|"))(c);if(t[r]===o)return;t[r]=o,y(n,{ecommerce:{items:c}})}catch(t){b("all-products-list",t)}}),(0,L.addAction)(`${D}-product-view-link`,j,({product:t,listName:e=""}={})=>{try{if(!t||F())return;y(i,{ecommerce:{items:[k(t,e)]}})}catch(t){b("all-products-select",t)}})})(),document.querySelector(".wp-block-woocommerce-product-collection")&&R({}),document.querySelector(".wp-block-woocommerce-related-products")&&(({root:t=document,observerFactory:e}={})=>{R({root:t,selector:".wp-block-woocommerce-related-products",listNameResolver:()=>"Related products",...e?{observerFactory:e}:{}})})(),document.querySelector(".wp-block-woocommerce-single-product")&&(({root:t=document}={})=>{try{const e=t.querySelector(".wp-block-woocommerce-single-product");
1if(!e)return;if((()=>{const t=window.gtmkit_settings?.datalayer_name||"dataLayer",e=window[t];return!!Array.isArray(e)&&e.some(t=>t&&"object"==typeof t&&t.event===s)})())return;const r=e.querySelector(".gtmkit_block_product_data");if(!r)return;const c=f(r.getAttribute("data-gtmkit_product_data"));if(!c||0===Object.keys(c).length)return;y(s,{ecommerce:{currency:g(),value:Number(c.price??0),items:[c]}})}catch(t){b("single-product-block",t)}})(),document.querySelector(".wc-block-add-to-cart-with-options")&&(({root:t=document}={})=>{const e=t=>{try{const e=t.target;if(!e||!e.matches||!e.matches("form[data-wp-on--submit]"))return;const r=(t=>{const e=t.querySelector(".gtmkit_single_product_data");let r=e?e.getAttribute("data-gtmkit_product_data"):null;if(!r){const e=t.querySelector('input[name="gtmkit_product_data"]');r=e?e.value:null}if(!r)return null;const c=f(r);return c&&Object.keys(c).length>0?c:null})(e);if(!r)return;const c=(t=>{const e=t.querySelector('[name="quantity"]'),r=e?parseFloat(e.value):NaN;return Number.isFinite(r)&&r>0?r:1})(e);r.quantity=c,d(r.item_id??r.id,c),y(o,{ecommerce:{currency:g(),value:Number(r.price??0)*c,items:[r]}})}catch(t){b("add-to-cart-with-options",t)}};t.addEventListener("submit",e,!0)})(),document.querySelector(".wc-block-product-search")&&(({root:t=document}={})=>{t.addEventListener("submit",t=>{try{const e=t.target.closest?t.target.closest(".wc-block-product-search"):null;if(!e)return;const r=e.querySelector('.wc-block-product-search__field, input[type="search"], input[name="s"]'),c=r&&r.value?r.value.trim():"";if(!c)return;y("search",{search_term:c})}catch(t){b("product-search",t)}},!0)})()}catch(t){b("boot",t)}};"loading"===document.readyState?document.addEventListener("DOMContentLoaded",I):I()})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.