(function(wc_order_attribution){'use strict';const params=wc_order_attribution.params;const $=document.querySelector.bind(document);const propertyAccessor=(obj,path)=>path.split('.').reduce((acc,part)=>acc&&acc[part],obj);const returnNull=()=>null;const stringifyFalsyInputValue=(value)=>value===null||value===undefined?'':value;const CHECKOUT_STORE_KEY='wc/store/checkout';wc_order_attribution.getAttributionData=function(){const accessor=params.allowTracking&&isSbjsAvailable()?propertyAccessor:returnNull;const getter=isSbjsAvailable()?sbjs.get:{};const entries=Object.entries(wc_order_attribution.fields).map(([key,property])=>[key,accessor(getter,property)]);return Object.fromEntries(entries)} function updateFormValues(values){for(const element of document.querySelectorAll('wc-order-attribution-inputs')){element.values=values}};function updateCheckoutBlockData(values){if(window.wp&&window.wp.data&&window.wp.data.dispatch&&window.wc&&window.wc.wcBlocksData){window.wp.data.dispatch(window.wc.wcBlocksData.CHECKOUT_STORE_KEY).__internalSetExtensionData('woocommerce/order-attribution',values,!0)}} function isSbjsAvailable(){return typeof sbjs!=='undefined'} wc_order_attribution.setOrderTracking=function(allow){params.allowTracking=allow;if(!allow){removeTrackingCookies()}else if(!isSbjsAvailable()){return}else{sbjs.init({lifetime:Number(params.lifetime),session_length:Number(params.session),base64:Boolean(params.base64),timezone_offset:'0',})} const values=wc_order_attribution.getAttributionData();updateFormValues(values);updateCheckoutBlockData(values)} function removeTrackingCookies(){const domain=window.location.hostname;const sbCookies=['sbjs_current','sbjs_current_add','sbjs_first','sbjs_first_add','sbjs_session','sbjs_udata','sbjs_migrations','sbjs_promo'];sbCookies.forEach((name)=>{document.cookie=`${name}=; path=/; max-age=-999; domain=.${domain};`})} wc_order_attribution.setOrderTracking(params.allowTracking);function eventuallyInitializeCheckoutBlock(){if(window.wp&&window.wp.data&&typeof window.wp.data.subscribe==='function'){const unsubscribe=window.wp.data.subscribe(function(){unsubscribe();updateCheckoutBlockData(wc_order_attribution.getAttributionData())},CHECKOUT_STORE_KEY)}};if(document.readyState==="loading"){document.addEventListener("DOMContentLoaded",eventuallyInitializeCheckoutBlock)}else{eventuallyInitializeCheckoutBlock()} window.customElements.define('wc-order-attribution-inputs',class extends HTMLElement{constructor(){super();this._fieldNames=Object.keys(wc_order_attribution.fields);if(this.hasOwnProperty('_values')){let values=this.values;delete this.values;this.values=values||{}}} connectedCallback(){this.innerHTML='';const inputs=new DocumentFragment();for(const fieldName of this._fieldNames){const input=document.createElement('input');input.type='hidden';input.name=`${params.prefix}${fieldName}`;input.value=stringifyFalsyInputValue((this.values&&this.values[fieldName])||'');inputs.appendChild(input)} this.appendChild(inputs)} set values(values){this._values=values;if(this.isConnected){for(const fieldName of this._fieldNames){const input=this.querySelector(`input[name="${params.prefix}${fieldName}"]`);if(input){input.value=stringifyFalsyInputValue(this.values[fieldName])}else{console.warn(`Field "${fieldName}" not found. `+`Most likely, the '' element was manipulated.`)}}}} get values(){return this._values}})}(window.wc_order_attribution))