ba-js-rt 2.2.0-rc.1 → 2.2.0-rc.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/vt.js +1 -1
- package/package.json +1 -1
package/lib/vt.js
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError("Generator is already executing.");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}},BA=window.BA||{},BUTTON_SELECTOR=".bkn-btn",FORM_SELECTOR=".bkn-frm",isReady=!1,tracker=null,decoratedElements=new WeakSet;function getCookie(name){for(var cookies=document.cookie.split(";"),i=0;i<cookies.length;i+=1){var cookie=cookies[i].trim();if(cookie.startsWith("".concat(name,"=")))return decodeURIComponent(cookie.substring(name.length+1))}return null}function setCookie(name,value){var options=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},cookieStr="".concat(name,"=").concat(encodeURIComponent(value));if(options.expires){var date=new Date(Date.now()+1e3*options.expires);cookieStr+="; expires=".concat(date.toUTCString())}cookieStr+="; path=".concat(options.path||"/"),options.domain&&(cookieStr+="; domain=".concat(options.domain)),options.secure&&(cookieStr+="; Secure"),cookieStr+="; SameSite=".concat(options.sameSite||"Lax"),document.cookie=cookieStr}function getConsentValue(){var cookie=getCookie("cookie-consent");if(!cookie)return 0;var value=parseInt(cookie,10);return Number.isNaN(value)?0:value}function hasConsent(){return getConsentValue()>1}var COOKIE_FIRST_CATEGORIES={necessary:1,performance:2,functional:4,advertising:8};function clearConsentCookie(){document.cookie="cookie-consent=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax; Secure"}function initReferralTracking(){var rParam=new URLSearchParams(window.location.search).get("r");rParam&&(setCookie("r",rParam,{}),hasConsent()&&setCookie("ra",rParam,{expires:2592e3}))}function handleConsent(acceptedCategories){console.log("[vt.js] handleConsent called",acceptedCategories);var value,expires,cct,value1=function(){var cookieFirstConsent=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.entries(COOKIE_FIRST_CATEGORIES).reduce(function(sum,param){var arr,i,_param=function(arr){if(Array.isArray(arr))return arr}(param)||function(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}(param,2)||function(o,minLen){if(o){if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}}(param,2)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),key=_param[0],bit=_param[1];return cookieFirstConsent[key]?sum+bit:sum},0)}(acceptedCategories);(console.log("[vt.js] consent value:",value1),value1>0)?(value=value1,expires=new Date(Date.now()+15552e6).toUTCString(),document.cookie="cookie-consent=".concat(value,"; path=/; expires=").concat(expires,"; SameSite=Lax; Secure")):clearConsentCookie(),initReferralTracking(),tracker&&tracker.event({event:{type:"technical",key:"consent-update"}}),isReady&&(cct=getConsentValue(),document.querySelectorAll(BUTTON_SELECTOR).forEach(function(btn){if(decoratedElements.has(btn)&&btn.href)try{var url=new URL(btn.href,window.location.origin);cct>0?url.searchParams.set("cct",cct.toString()):url.searchParams.delete("cct"),btn.href=url.toString()}catch(e){}}),document.querySelectorAll(FORM_SELECTOR).forEach(function(form){if(decoratedElements.has(form)){var input=form.querySelector('input[name="cct"]');cct>0?(input||((input=document.createElement("input")).type="hidden",input.name="cct",form.appendChild(input)),input.value=cct.toString()):input&&input.remove()}}))}function getGLinker(targetUrl){var retries=arguments.length>1&&void 0!==arguments[1]?arguments[1]:25,delay=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return new Promise(function(resolve){if(!window.gtag&&!window.google_tag_manager){console.log("[vt.js] getGLinker: no gtag/GTM, skipping _gl extraction"),resolve(null);return}25===retries&&console.log("[vt.js] getGLinker: starting _gl extraction for",targetUrl);var tempLink=document.createElement("a");tempLink.href=window.location.origin,tempLink.style.cssText="display:none;visibility:hidden",document.body.appendChild(tempLink),tempLink.dispatchEvent(new MouseEvent("mousedown",{view:window,bubbles:!0,cancelable:!0})),setTimeout(function(){try{var glParam=new URL(tempLink.href).searchParams.get("_gl");document.body.removeChild(tempLink),glParam?(console.log("[vt.js] getGLinker: _gl found",glParam),resolve(glParam)):retries>0?resolve(getGLinker(targetUrl,retries-1,delay)):(console.log("[vt.js] getGLinker: _gl not found after retries"),resolve(null))}catch(err){console.error("Error extracting _gl:",err),document.body.removeChild(tempLink),resolve(null)}},delay)})}function buildDecoratedUrl(baseUrl,glParam){console.log("[vt.js] buildDecoratedUrl:",baseUrl,glParam);try{var url=new URL(baseUrl,window.location.origin);glParam&&!url.searchParams.has("_gl")&&url.searchParams.set("_gl",glParam);var uuidCS=getCookie("bassist-session-uuid"),uuidCU=getCookie("bassist-user-uuid");uuidCS&&uuidCU&&url.searchParams.set("bas",btoa(encodeURIComponent(JSON.stringify({uuidCS:uuidCS,uuidCU:uuidCU}))));var rValue=getCookie("ra")||getCookie("r")||"";rValue&&url.searchParams.set("r",rValue);var cct=getConsentValue();cct>0&&url.searchParams.set("cct",cct.toString());var gclid=new URLSearchParams(window.location.search).get("gclid");return gclid&&url.searchParams.set("gclid",gclid),url.toString()}catch(err){return console.error("Error building decorated URL:",err),baseUrl}}function setElementsEnabled(enabled){var style=enabled?{pointerEvents:"",opacity:""}:{pointerEvents:"none",opacity:"0.6"};document.querySelectorAll(BUTTON_SELECTOR).forEach(function(el){"A"===el.tagName&&Object.assign(el.style,style)}),document.querySelectorAll(".bkn-sbt").forEach(function(el){("BUTTON"===el.tagName||"INPUT"===el.tagName)&&(el.disabled=!enabled)})}function decorateButton(btn){return _decorateButton.apply(this,arguments)}function _decorateButton(){return(_decorateButton=_asyncToGenerator(function(btn){var btnUrl,glParam,existingUrl;return __generator(this,function(_state){switch(_state.label){case 0:if(decoratedElements.has(btn)||"A"!==btn.tagName||!btn.href)return[2];try{if(!new URL(btn.href,window.location.origin).protocol.startsWith("http"))return[2]}catch(e){return[2]}if(console.log("[vt.js] decorateButton:",btn.href),decoratedElements.add(btn),glParam=null,hasConsent())return[3,6];_state.label=1;case 1:if(_state.trys.push([1,4,,6]),new URL(btn.href,window.location.origin).searchParams.has("_gl"))return[3,3];return[4,getGLinker(btn.href)];case 2:glParam=_state.sent(),_state.label=3;case 3:return[3,6];case 4:return _state.sent(),[4,getGLinker(btn.href)];case 5:return glParam=_state.sent(),[3,6];case 6:return btn.href=buildDecoratedUrl(btn.href,glParam),console.log("[vt.js] decorateButton complete:",btn.href),[2]}})})).apply(this,arguments)}function decorateForm(form){return _decorateForm.apply(this,arguments)}function _decorateForm(){return(_decorateForm=_asyncToGenerator(function(form){var glParam,existingUrl,decoratedUrl;return __generator(this,function(_state){switch(_state.label){case 0:if(decoratedElements.has(form)||!form.action)return[2];if(console.log("[vt.js] decorateForm:",form.action),decoratedElements.add(form),glParam=null,hasConsent())return[3,6];_state.label=1;case 1:if(_state.trys.push([1,4,,6]),new URL(form.action,window.location.origin).searchParams.has("_gl"))return[3,3];return[4,getGLinker(form.action)];case 2:glParam=_state.sent(),_state.label=3;case 3:return[3,6];case 4:return _state.sent(),[4,getGLinker(form.action)];case 5:return glParam=_state.sent(),[3,6];case 6:return decoratedUrl=new URL(buildDecoratedUrl(form.action,glParam)),form.action="".concat(decoratedUrl.origin).concat(decoratedUrl.pathname),decoratedUrl.searchParams.forEach(function(value,key){var input=form.querySelector('input[name="'.concat(key,'"]'));input||((input=document.createElement("input")).type="hidden",input.name=key,form.appendChild(input)),input.value=value}),[2]}})})).apply(this,arguments)}function _decorateElement(){return(_decorateElement=_asyncToGenerator(function(el){var ref,ref1;return __generator(this,function(_state){switch(_state.label){case 0:if(!(null===(ref=el.matches)||void 0===ref?void 0:ref.call(el,BUTTON_SELECTOR)))return[3,2];return[4,decorateButton(el)];case 1:return _state.sent(),[3,4];case 2:if(!(null===(ref1=el.matches)||void 0===ref1?void 0:ref1.call(el,FORM_SELECTOR)))return[3,4];return[4,decorateForm(el)];case 3:_state.sent(),_state.label=4;case 4:return[2]}})})).apply(this,arguments)}function _decorateAllElements(){return(_decorateAllElements=_asyncToGenerator(function(){var buttons,forms;return __generator(this,function(_state){switch(_state.label){case 0:return[4,Promise.all(Array.from(document.querySelectorAll(BUTTON_SELECTOR)).map(decorateButton))];case 1:return _state.sent(),[4,Promise.all(Array.from(document.querySelectorAll(FORM_SELECTOR)).map(decorateForm))];case 2:return _state.sent(),[2]}})})).apply(this,arguments)}function init(){return _init.apply(this,arguments)}function _init(){return(_init=_asyncToGenerator(function(){var err;return __generator(this,function(_state){switch(_state.label){case 0:var ref;console.log("[vt.js] init: starting"),setElementsEnabled(!1),console.log("[vt.js] initCookieFirstListeners"),window.addEventListener("cf_consent",function(event){console.log("[vt.js] cf_consent event fired",event.detail);try{handleConsent(event.detail)}catch(error){console.error("Error handling cf_consent:",error)}}),window.addEventListener("cf_consent_loaded",function(event){console.log("[vt.js] cf_consent_loaded event fired",event.detail);try{event.detail?handleConsent(event.detail):(console.log("[vt.js] no previous consent, clearing cookie"),clearConsentCookie())}catch(error){console.error("Error handling cf_consent_loaded:",error)}}),(null===(ref=window.CookieFirst)||void 0===ref?void 0:ref.consent)&&(console.log("[vt.js] CookieFirst already loaded, using existing consent"),handleConsent(window.CookieFirst.consent)),initReferralTracking(),console.log("[vt.js] init: loading ba-js-tracker"),_state.label=1;case 1:return _state.trys.push([1,3,,4]),[4,BA.baJsTracker];case 2:return _state.sent(),console.log("[vt.js] init: ba-js-tracker loaded"),tracker.event({event:{type:"technical",key:"init"}}),[3,4];case 3:return err=_state.sent(),console.error("Failed to load ba-js-tracker:",err),[3,4];case 4:return console.log("[vt.js] observeForNewElements: starting MutationObserver"),new MutationObserver(function(mutations){mutations.forEach(function(mutation){Array.from(mutation.addedNodes).filter(function(node){return node.nodeType===Node.ELEMENT_NODE}).forEach(function(node){var ref,ref1,ref2,ref3,buttons=(null===(ref=node.querySelectorAll)||void 0===ref?void 0:ref.call(node,BUTTON_SELECTOR))||[],forms=(null===(ref1=node.querySelectorAll)||void 0===ref1?void 0:ref1.call(node,FORM_SELECTOR))||[];((null===(ref2=node.matches)||void 0===ref2?void 0:ref2.call(node,BUTTON_SELECTOR))||(null===(ref3=node.matches)||void 0===ref3?void 0:ref3.call(node,FORM_SELECTOR))||buttons.length||forms.length)&&console.log("[vt.js] MutationObserver: new element detected",node),function(el){_decorateElement.apply(this,arguments)}(node),buttons.forEach(decorateButton),forms.forEach(decorateForm)})})}).observe(document.body,{childList:!0,subtree:!0}),console.log("[vt.js] init: decorating elements"),[4,function(){return _decorateAllElements.apply(this,arguments)}()];case 5:return _state.sent(),isReady=!0,setElementsEnabled(!0),console.log("[vt.js] init: complete, isReady =",isReady),[2]}})})).apply(this,arguments)}console.log("[vt.js] script loaded, readyState:",document.readyState),BA.baJsTracker=new Promise(function(resolve,reject){var scriptSrc="https://unpkg.com/ba-js-tracker@5.1.5/dist/ba-js-tracker.umd.js",script=document.createElement("script");script.src=scriptSrc,document.head.appendChild(script),script.addEventListener("load",function(){resolve(tracker=window.baJsTracker.default({trackers:{BookassistAnalytics:{}}}))}),script.addEventListener("error",function(){reject(Error("".concat(scriptSrc," failed to load.")))})}),"loading"===document.readyState?(console.log("[vt.js] waiting for DOMContentLoaded"),document.addEventListener("DOMContentLoaded",init)):(console.log("[vt.js] DOM already ready, calling init immediately"),init());
|
|
1
|
+
function _arrayLikeToArray(arr,len){(null==len||len>arr.length)&&(len=arr.length);for(var i=0,arr2=new Array(len);i<len;i++)arr2[i]=arr[i];return arr2}function asyncGeneratorStep(gen,resolve,reject,_next,_throw,key,arg){try{var info=gen[key](arg),value=info.value}catch(error){reject(error);return}info.done?resolve(value):Promise.resolve(value).then(_next,_throw)}function _asyncToGenerator(fn){return function(){var self=this,args=arguments;return new Promise(function(resolve,reject){var gen=fn.apply(self,args);function _next(value){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"next",value)}function _throw(err){asyncGeneratorStep(gen,resolve,reject,_next,_throw,"throw",err)}_next(void 0)})}}var __generator=this&&this.__generator||function(thisArg,body){var f,y,t,g,_={label:0,sent:function(){if(1&t[0])throw t[1];return t[1]},trys:[],ops:[]};return g={next:verb(0),throw:verb(1),return:verb(2)},"function"==typeof Symbol&&(g[Symbol.iterator]=function(){return this}),g;function verb(n){return function(v){return function(op){if(f)throw new TypeError("Generator is already executing.");for(;_;)try{if(f=1,y&&(t=2&op[0]?y.return:op[0]?y.throw||((t=y.return)&&t.call(y),0):y.next)&&!(t=t.call(y,op[1])).done)return t;switch(y=0,t&&(op=[2&op[0],t.value]),op[0]){case 0:case 1:t=op;break;case 4:return _.label++,{value:op[1],done:!1};case 5:_.label++,y=op[1],op=[0];continue;case 7:op=_.ops.pop(),_.trys.pop();continue;default:if(!(t=(t=_.trys).length>0&&t[t.length-1])&&(6===op[0]||2===op[0])){_=0;continue}if(3===op[0]&&(!t||op[1]>t[0]&&op[1]<t[3])){_.label=op[1];break}if(6===op[0]&&_.label<t[1]){_.label=t[1],t=op;break}if(t&&_.label<t[2]){_.label=t[2],_.ops.push(op);break}t[2]&&_.ops.pop(),_.trys.pop();continue}op=body.call(thisArg,_)}catch(e){op=[6,e],y=0}finally{f=t=0}if(5&op[0])throw op[1];return{value:op[0]?op[1]:void 0,done:!0}}([n,v])}}},BA=window.BA||{},BUTTON_SELECTOR=".bkn-btn",FORM_SELECTOR=".bkn-frm",isReady=!1,tracker=null,decoratedElements=new WeakSet;function getCookie(name){for(var cookies=document.cookie.split(";"),i=0;i<cookies.length;i+=1){var cookie=cookies[i].trim();if(cookie.startsWith("".concat(name,"=")))return decodeURIComponent(cookie.substring(name.length+1))}return null}function setCookie(name,value){var options=arguments.length>2&&void 0!==arguments[2]?arguments[2]:{},cookieStr="".concat(name,"=").concat(encodeURIComponent(value));if(options.expires){var date=new Date(Date.now()+1e3*options.expires);cookieStr+="; expires=".concat(date.toUTCString())}cookieStr+="; path=".concat(options.path||"/"),options.domain&&(cookieStr+="; domain=".concat(options.domain)),options.secure&&(cookieStr+="; Secure"),cookieStr+="; SameSite=".concat(options.sameSite||"Lax"),document.cookie=cookieStr}function getConsentValue(){var cookie=getCookie("cookie-consent");if(!cookie)return 0;var value=parseInt(cookie,10);return Number.isNaN(value)?0:value}function hasConsent(){return getConsentValue()>1}var COOKIE_FIRST_CATEGORIES={necessary:1,performance:2,functional:4,advertising:8};function clearConsentCookie(){document.cookie="cookie-consent=; path=/; expires=Thu, 01 Jan 1970 00:00:00 UTC; SameSite=Lax; Secure"}function initReferralTracking(){var rParam=new URLSearchParams(window.location.search).get("r");rParam&&(setCookie("r",rParam,{}),hasConsent()&&setCookie("ra",rParam,{expires:2592e3}))}function handleConsent(acceptedCategories){console.log("[vt.js] handleConsent called",acceptedCategories);var value,expires,cct,value1=function(){var cookieFirstConsent=arguments.length>0&&void 0!==arguments[0]?arguments[0]:{};return Object.entries(COOKIE_FIRST_CATEGORIES).reduce(function(sum,param){var arr,i,_param=function(arr){if(Array.isArray(arr))return arr}(param)||function(arr,i){var _s,_e,_i=null==arr?null:"undefined"!=typeof Symbol&&arr[Symbol.iterator]||arr["@@iterator"];if(null!=_i){var _arr=[],_n=!0,_d=!1;try{for(_i=_i.call(arr);!(_n=(_s=_i.next()).done)&&(_arr.push(_s.value),!i||_arr.length!==i);_n=!0);}catch(err){_d=!0,_e=err}finally{try{_n||null==_i.return||_i.return()}finally{if(_d)throw _e}}return _arr}}(param,2)||function(o,minLen){if(o){if("string"==typeof o)return _arrayLikeToArray(o,minLen);var n=Object.prototype.toString.call(o).slice(8,-1);if("Object"===n&&o.constructor&&(n=o.constructor.name),"Map"===n||"Set"===n)return Array.from(n);if("Arguments"===n||/^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n))return _arrayLikeToArray(o,minLen)}}(param,2)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance.\\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method.")}(),key=_param[0],bit=_param[1];return cookieFirstConsent[key]?sum+bit:sum},0)}(acceptedCategories);(console.log("[vt.js] consent value:",value1),value1>0)?(value=value1,expires=new Date(Date.now()+15552e6).toUTCString(),document.cookie="cookie-consent=".concat(value,"; path=/; expires=").concat(expires,"; SameSite=Lax; Secure")):clearConsentCookie(),initReferralTracking(),tracker&&tracker.event({event:{type:"technical",key:"consent-update"}}),isReady&&(cct=getConsentValue(),document.querySelectorAll(BUTTON_SELECTOR).forEach(function(btn){if(decoratedElements.has(btn)&&btn.href)try{var url=new URL(btn.href,window.location.origin);cct>0?url.searchParams.set("cct",cct.toString()):url.searchParams.delete("cct"),btn.href=url.toString()}catch(e){}}),document.querySelectorAll(FORM_SELECTOR).forEach(function(form){if(decoratedElements.has(form)){var input=form.querySelector('input[name="cct"]');cct>0?(input||((input=document.createElement("input")).type="hidden",input.name="cct",form.appendChild(input)),input.value=cct.toString()):input&&input.remove()}}))}function getGLinker(targetUrl){var retries=arguments.length>1&&void 0!==arguments[1]?arguments[1]:25,delay=arguments.length>2&&void 0!==arguments[2]?arguments[2]:200;return new Promise(function(resolve){if(!window.gtag&&!window.google_tag_manager){console.log("[vt.js] getGLinker: no gtag/GTM, skipping _gl extraction"),resolve(null);return}25===retries&&console.log("[vt.js] getGLinker: starting _gl extraction for",targetUrl);var tempLink=document.createElement("a");tempLink.href=window.location.origin,tempLink.style.cssText="display:none;visibility:hidden",document.body.appendChild(tempLink),tempLink.dispatchEvent(new MouseEvent("mousedown",{view:window,bubbles:!0,cancelable:!0})),setTimeout(function(){try{var glParam=new URL(tempLink.href).searchParams.get("_gl");document.body.removeChild(tempLink),glParam?(console.log("[vt.js] getGLinker: _gl found",glParam),resolve(glParam)):retries>0?resolve(getGLinker(targetUrl,retries-1,delay)):(console.log("[vt.js] getGLinker: _gl not found after retries"),resolve(null))}catch(err){console.error("Error extracting _gl:",err),document.body.removeChild(tempLink),resolve(null)}},delay)})}function buildDecoratedUrl(baseUrl,glParam){console.log("[vt.js] buildDecoratedUrl:",baseUrl,glParam);try{var url=new URL(baseUrl,window.location.origin);glParam&&!url.searchParams.has("_gl")&&url.searchParams.set("_gl",glParam);var uuidCS=getCookie("bassist-session-uuid"),uuidCU=getCookie("bassist-user-uuid");uuidCS&&uuidCU&&url.searchParams.set("bas",btoa(encodeURIComponent(JSON.stringify({uuidCS:uuidCS,uuidCU:uuidCU}))));var rValue=getCookie("ra")||getCookie("r")||"";rValue&&url.searchParams.set("r",rValue);var cct=getConsentValue();cct>0&&url.searchParams.set("cct",cct.toString());var gclid=new URLSearchParams(window.location.search).get("gclid");return gclid&&url.searchParams.set("gclid",gclid),url.toString()}catch(err){return console.error("Error building decorated URL:",err),baseUrl}}function setElementsEnabled(enabled){var style=enabled?{pointerEvents:"",opacity:""}:{pointerEvents:"none",opacity:"0.6"};document.querySelectorAll(BUTTON_SELECTOR).forEach(function(el){"A"===el.tagName&&Object.assign(el.style,style)}),document.querySelectorAll(".bkn-sbt").forEach(function(el){("BUTTON"===el.tagName||"INPUT"===el.tagName)&&(el.disabled=!enabled)})}function decorateButton(btn){return _decorateButton.apply(this,arguments)}function _decorateButton(){return(_decorateButton=_asyncToGenerator(function(btn){var btnUrl,glParam,existingUrl;return __generator(this,function(_state){switch(_state.label){case 0:if(decoratedElements.has(btn)||"A"!==btn.tagName||!btn.href)return[2];try{if(!new URL(btn.href,window.location.origin).protocol.startsWith("http"))return[2]}catch(e){return[2]}if(console.log("[vt.js] decorateButton:",btn.href),decoratedElements.add(btn),glParam=null,hasConsent())return[3,6];_state.label=1;case 1:if(_state.trys.push([1,4,,6]),new URL(btn.href,window.location.origin).searchParams.has("_gl"))return[3,3];return[4,getGLinker(btn.href)];case 2:glParam=_state.sent(),_state.label=3;case 3:return[3,6];case 4:return _state.sent(),[4,getGLinker(btn.href)];case 5:return glParam=_state.sent(),[3,6];case 6:return btn.href=buildDecoratedUrl(btn.href,glParam),console.log("[vt.js] decorateButton complete:",btn.href),[2]}})})).apply(this,arguments)}function decorateForm(form){return _decorateForm.apply(this,arguments)}function _decorateForm(){return(_decorateForm=_asyncToGenerator(function(form){var glParam,existingUrl,decoratedUrl;return __generator(this,function(_state){switch(_state.label){case 0:if(decoratedElements.has(form)||!form.action)return[2];if(console.log("[vt.js] decorateForm:",form.action),decoratedElements.add(form),glParam=null,hasConsent())return[3,6];_state.label=1;case 1:if(_state.trys.push([1,4,,6]),new URL(form.action,window.location.origin).searchParams.has("_gl"))return[3,3];return[4,getGLinker(form.action)];case 2:glParam=_state.sent(),_state.label=3;case 3:return[3,6];case 4:return _state.sent(),[4,getGLinker(form.action)];case 5:return glParam=_state.sent(),[3,6];case 6:return decoratedUrl=new URL(buildDecoratedUrl(form.action,glParam)),form.action="".concat(decoratedUrl.origin).concat(decoratedUrl.pathname),decoratedUrl.searchParams.forEach(function(value,key){var input=form.querySelector('input[name="'.concat(key,'"]'));input||((input=document.createElement("input")).type="hidden",input.name=key,form.appendChild(input)),input.value=value}),[2]}})})).apply(this,arguments)}function _decorateElement(){return(_decorateElement=_asyncToGenerator(function(el){var ref,ref1;return __generator(this,function(_state){switch(_state.label){case 0:if(!(null===(ref=el.matches)||void 0===ref?void 0:ref.call(el,BUTTON_SELECTOR)))return[3,2];return[4,decorateButton(el)];case 1:return _state.sent(),[3,4];case 2:if(!(null===(ref1=el.matches)||void 0===ref1?void 0:ref1.call(el,FORM_SELECTOR)))return[3,4];return[4,decorateForm(el)];case 3:_state.sent(),_state.label=4;case 4:return[2]}})})).apply(this,arguments)}function _decorateAllElements(){return(_decorateAllElements=_asyncToGenerator(function(){var buttons,forms;return __generator(this,function(_state){switch(_state.label){case 0:return[4,Promise.all(Array.from(document.querySelectorAll(BUTTON_SELECTOR)).map(decorateButton))];case 1:return _state.sent(),[4,Promise.all(Array.from(document.querySelectorAll(FORM_SELECTOR)).map(decorateForm))];case 2:return _state.sent(),[2]}})})).apply(this,arguments)}function init(){return _init.apply(this,arguments)}function _init(){return(_init=_asyncToGenerator(function(){var err;return __generator(this,function(_state){switch(_state.label){case 0:var ref;return console.log("[vt.js] init: starting"),setElementsEnabled(!1),console.log("[vt.js] initCookieFirstListeners"),window.addEventListener("cf_consent",function(event){console.log("[vt.js] cf_consent event fired",event.detail);try{handleConsent(event.detail)}catch(error){console.error("Error handling cf_consent:",error)}}),window.addEventListener("cf_consent_loaded",function(event){console.log("[vt.js] cf_consent_loaded event fired",event.detail);try{event.detail?handleConsent(event.detail):(console.log("[vt.js] no previous consent, clearing cookie"),clearConsentCookie())}catch(error){console.error("Error handling cf_consent_loaded:",error)}}),(null===(ref=window.CookieFirst)||void 0===ref?void 0:ref.consent)&&(console.log("[vt.js] CookieFirst already loaded, using existing consent"),handleConsent(window.CookieFirst.consent)),[4,function(){var timeout=arguments.length>0&&void 0!==arguments[0]?arguments[0]:3e3;return new Promise(function(resolve){if(null===(ref=window.CookieFirst)||void 0===ref?void 0:ref.consent){console.log("[vt.js] waitForCookieFirst: consent already available"),handleConsent(window.CookieFirst.consent),resolve();return}console.log("[vt.js] waitForCookieFirst: waiting for cf_consent_loaded");var ref,handler=function(event){console.log("[vt.js] waitForCookieFirst: cf_consent_loaded received"),window.removeEventListener("cf_consent_loaded",handler),clearTimeout(timer),resolve()};window.addEventListener("cf_consent_loaded",handler);var timer=setTimeout(function(){window.removeEventListener("cf_consent_loaded",handler),console.log("[vt.js] waitForCookieFirst: timeout, proceeding without consent"),resolve()},timeout)})}()];case 1:_state.sent(),initReferralTracking(),console.log("[vt.js] init: loading ba-js-tracker"),_state.label=2;case 2:return _state.trys.push([2,4,,5]),[4,BA.baJsTracker];case 3:return _state.sent(),console.log("[vt.js] init: ba-js-tracker loaded"),tracker.event({event:{type:"technical",key:"init"}}),[3,5];case 4:return err=_state.sent(),console.error("Failed to load ba-js-tracker:",err),[3,5];case 5:return console.log("[vt.js] observeForNewElements: starting MutationObserver"),new MutationObserver(function(mutations){mutations.forEach(function(mutation){Array.from(mutation.addedNodes).filter(function(node){return node.nodeType===Node.ELEMENT_NODE}).forEach(function(node){var ref,ref1,ref2,ref3,buttons=(null===(ref=node.querySelectorAll)||void 0===ref?void 0:ref.call(node,BUTTON_SELECTOR))||[],forms=(null===(ref1=node.querySelectorAll)||void 0===ref1?void 0:ref1.call(node,FORM_SELECTOR))||[];((null===(ref2=node.matches)||void 0===ref2?void 0:ref2.call(node,BUTTON_SELECTOR))||(null===(ref3=node.matches)||void 0===ref3?void 0:ref3.call(node,FORM_SELECTOR))||buttons.length||forms.length)&&console.log("[vt.js] MutationObserver: new element detected",node),function(el){_decorateElement.apply(this,arguments)}(node),buttons.forEach(decorateButton),forms.forEach(decorateForm)})})}).observe(document.body,{childList:!0,subtree:!0}),console.log("[vt.js] init: decorating elements"),[4,function(){return _decorateAllElements.apply(this,arguments)}()];case 6:return _state.sent(),isReady=!0,setElementsEnabled(!0),console.log("[vt.js] init: complete, isReady =",isReady),[2]}})})).apply(this,arguments)}console.log("[vt.js] script loaded, readyState:",document.readyState),BA.baJsTracker=new Promise(function(resolve,reject){var scriptSrc="https://unpkg.com/ba-js-tracker@5.1.5/dist/ba-js-tracker.umd.js",script=document.createElement("script");script.src=scriptSrc,document.head.appendChild(script),script.addEventListener("load",function(){resolve(tracker=window.baJsTracker.default({trackers:{BookassistAnalytics:{}}}))}),script.addEventListener("error",function(){reject(Error("".concat(scriptSrc," failed to load.")))})}),"loading"===document.readyState?(console.log("[vt.js] waiting for DOMContentLoaded"),document.addEventListener("DOMContentLoaded",init)):(console.log("[vt.js] DOM already ready, calling init immediately"),init());
|