PageSourceSearch

https://freshkarma.com/wp-content/cache/min/1/TerpliPlugin.js?ver=1790880184

js freshkarma.com collected 2026-10-08 21:07:20 UTC 65,900 bytes, 1 lines download raw bytes

1!function(){if(localStorage.getItem("debug")?.includes("dev")||"dev"===new URLSearchParams(window.location.search).get("debug")||"demo.terpli.io"==document.location.host){console.log("[Terpli Plugin] Loading alternative version of TerpliPlugin.js");const e=document.querySelector('script[src*="TerpliPlugin.js"]');if(!e)return void console.error("TerpliPlugin script tag not found!");const t=document.createElement("script");t.src="https://assets.terpli.io/TerpliPlugin.dev.js",t.async=!0,Array.from(e.attributes).forEach(e=>{e.name.startsWith("data-")&&t.setAttribute(e.name,e.value)}),document.head.appendChild(t)}else(()=>{let e,t,n,r,i,o=document.location.host+document.location.pathname;window.__terpli_patches=window.__terpli_patches||{ga:!1,gtag:!1,dataLayerPush:!1,dataLayerEarlyInstalled:!1,dataLayerDispatcherWired:!1,fetchSimple:!1,fetchEnhanced:!1,xhrSimpleOpen:!1,xhrSimpleSend:!1,xhrSimpleHeader:!1,xhrEnhancedOpen:!1,xhrEnhancedSend:!1,xhrEnhancedHeader:!1,responseJson:!1,responseText:!1,readableStreamGetReader:!1},window.__terpli_listeners=window.__terpli_listeners||{dutchie:function(e){try{const t=window.__terpli_listeners._dutchieHandler;t&&t(e)}catch(e){console.debug("[Terpli Analytics] dutchie listener error",e)}},jane:function(e){try{const t=window.__terpli_listeners._janeHandler;t&&t(e)}catch(e){console.debug("[Terpli Analytics] jane listener error",e)}},_dutchieHandler:null,_janeHandler:null},window.__terpli_dataLayer_state=window.__terpli_dataLayer_state||{pending:[],seenRefs:new WeakSet,seenIds:new Set,dispatcher:null,MAX_PENDING:1e3};let a=null,l=0,s=!1,c=!1,d=!1;function u(e){if(!e||"object"!=typeof e)return;const t=window.__terpli_dataLayer_state;if(t.seenRefs.has(e))return;const n=e["gtm.uniqueEventId"];if(null!=n&&t.seenIds.has(n))return void t.seenRefs.add(e);t.seenRefs.add(e),null!=n&&t.seenIds.add(n);const r=t.dispatcher;if("function"==typeof r)try{r(e)}catch(e){console.debug("[Terpli Analytics] dataLayer dispatcher error",e)}else t.pending.length<t.MAX_PENDING?t.pending.push(e):console.debug("[Terpli Analytics] dataLayer pending buffer full; dropping entry")}function p(e,t){if(null==e)return!1;try{return Array.from(e).some(e=>String(e).includes(t))}catch{return!1}}function m(e=n?.selectedLocation?.()){try{if(!e)return!1;if(!p(e.ab_enabled,"pixel"))return!1;return!p(e.debug_features,"pixel")||y("pixel")}catch{return!1}}async function g(r,i=!1){n=new R(r,i),n.initialize(),t=new I,t.initialize(),e||(e=new k(r,i),e.initialize()),window.terpliPlugin=e,e.showPlugin()}function h(t,n){void 0!==r&&(clearInterval(r),r=void 0);const i=[/\/product\/|\/products\//,/[?&]dtche%5Bproduct/,/checkout/];r=setInterval(()=>{const r=window.location.search.replace(/utm_source=terpli&utm_medium=[a-z]+&utm_campaign=[a-z]+/g,"").replace(/^&|&$/g,"").replace(/&&+/g,"&").replace(/^\?*&*/,"").trim(),a=r?`?${r}`:"",l=(s=a,i.some(e=>e.test(s))?`${window.location.origin}${window.location.pathname}${a}`:`${window.location.origin}${window.location.pathname}`);var s;o!==l?(o=l,setTimeout(()=>{g(t,n)},1e3)):e?.showPlugin()},1e3)}function _(){return(()=>{let e=null;try{e=([1e7]+-1e3+-4e3+-8e3+-1e11).replace(/[018]/g,e=>(e^crypto.getRandomValues(new Uint8Array(1))[0]&15>>e/4).toString(16))}catch(e){console.error("[Terpli Plugin] Error getting UUID using Crypto API",e)}return e})()??(()=>{let e=null;try{const t=e=>Math.random().toString(16).slice(15-e),n=e=>(new Date).getTime().toString().slice(13-e);e=`${t(8)}-${t(4)}-${t(4)}-${t(4)}-${n(12)}`}catch(e){console.error("[Terpli Plugin] Error getting a fallback for UUID",e)}return e})()}function f(e){return document.cookie.split("; ").find(t=>t.startsWith(e+"="))?.split("=")[1]||null}function y(e){try{const t=e=>x("debug")?.includes(e)||document.location.href.includes(`debug=${e}`),n=e=>document.location.href.includes(e);return"demo.terpli.io"==document.location.host?!(!document.location.pathname.includes("test")||"test"!=e)||(!(!document.location.pathname.includes("mock")||"mock"!=e)||(!(!document.location.pathname.includes("prod")||"prod"!=e)||(!(n("test")||n("mock")||n("prod")||"dev"!=e)||t(e)))):t(e)}catch{return!1}}function b(e,t=n.selectedLocation()){return!t?.debug_features?.includes(e)||y(e)}function w(e,t=n.selectedLocation()){const r=t?.ab_enabled||[];let i=!0;const o=n.getValidIframe(),a=[/\/product\/|\/products\//,/[?&]dtche%5Bproduct/,/checkout/,/budtender/],l=e=>a.some(t=>t.test(e));if((o&&l(o.src)||l(document.location.href))&&(i=!1),"popup_banner"===e){let n=t?.retail_location?.f
1ilter(e=>!e.includes("(floating)"))||[];const o=t?.location_url||"";return n=n.filter(e=>!o||o.search(e)>=0||document.location.href.search(e)>=0),r.includes(e)&&n.length>0&&i}return r.includes(e)&&i}function v(e){try{const t=JSON.parse(e);return"object"==typeof t&&null!==t}catch(e){return!1}}function T(e){try{if("object"==typeof e&&null!==e)return e;if("string"!=typeof e)return e;if(v(e))return JSON.parse(e);if(function(e){try{return!("string"!=typeof e||!/%[0-9A-Fa-f]{2}/.test(e))&&v(decodeURIComponent(e))}catch(e){return!1}}(e)){const t=decodeURIComponent(e);return JSON.parse(t)}return e}catch{return e}}function S(e,t={}){try{return T(window.localStorage.getItem(e))||t}catch{return t}}function x(e,t=null){try{return window.localStorage.getItem(e)||t}catch{return t}}function A(e,t){try{window.localStorage.setItem(e,JSON.stringify(t))}catch(t){console.debug(`[Terpli Plugin] Error setting ${e} in localStorage`,t)}}function L(e,t){try{window.localStorage.setItem(e,t)}catch(t){console.debug(`[Terpli Plugin] Error setting ${e} in localStorage`,t)}}function P(e){try{window.localStorage.removeItem(e)}catch(t){console.debug(`[Terpli Plugin] Error removing ${e} from localStorage`,t)}}function E(e){const t=e.indexOf("?");return t>=0?decodeURIComponent(e.substring(0,t))+e.substring(t):decodeURIComponent(e)}function k(r,i){this.retailerList=r,this.isSingleLocation=i;let o,a,l=null,s=null,c=null,d=null,u=null,p=null,g=!1,_=!1,f=0,v=[],A=null,k=0,I=0;const R=1e3;let B=!1;function C(){return[/Android/i,/webOS/i,/iPhone/i,/iPad/i,/iPod/i,/BlackBerry/i,/Windows Phone/i].some(e=>new RegExp(e,"ig").exec(navigator.userAgent))}function G(){return window.innerWidth<=600}function $(){const e=n.selectedLocation(),t=e?.floating_side?.toLowerCase()||"full",r=M();return["left","right"].includes(t)&&-1==document.location.href.indexOf("budtender")&&-1==document.location.href.indexOf(r)}function q(e,t){e=e.replace(/[[]]/g,"\\$&");let n=new RegExp("[?&]"+e+"(=([^&#]*)|&|#|$)").exec(t||document.location.href);return n?n[2]?decodeURIComponent(n[2].replace(/\+/g," ")):"":null}function U(e){const t=document.head.getElementsByTagName("link");let r=!1;for(const n of t)if(n.getAttribute("href")&&n.getAttribute("href").indexOf(e)>=0){r=!0;break}if(!r){const t=document.createElement("link");t.setAttribute("rel","stylesheet"),t.setAttribute("href",`${n.assetsURL}/${e}`),document.head.appendChild(t)}}function z(e,t){e&&!e.classList.contains(t)&&("terpli_hidden"==t?(e.classList.remove("terpli_visible"),e.classList.add("terpli_hidden")):"terpli_visible"==t&&(e.classList.remove("terpli_hidden"),e.classList.add("terpli_visible")),e.style.display="")}function O(){if(!$())return;const e=n.selectedLocation(),t=e?.ecom_platform||"Unknown",r=e?.css_class?.toLowerCase(),i=document.querySelector("#terpli_floating");if(!i)return;const o=["menu","shop","product","checkout","category","collection"].some(e=>document.location.pathname.includes(e)),a=window.innerWidth,l="10px",s=[{classes:["seshnycbronx_KIOSK","cannabisrealm_KIOSK"],margin:"80px",condition:()=>o},{classes:["the_source","the_source_tinder","the_source_420","the_source_mother","the_source_father","the_source_poolside","the_source_hot","the_source_fall","the_source_halloween","the_source_thanksgiving","the_source_christmas"],margin:"60px",condition:()=>a<1024},{classes:["noxx","cookies"],margin:"80px",condition:()=>!0},{classes:["fromtheearth"],margin:"70px",condition:()=>a<1200},{classes:["zahara"],margin:"95px",condition:()=>a<768},{classes:["faranddotter"],margin:"60px",condition:()=>a>=768},{classes:["faranddotter"],margin:"95px",condition:()=>a<768},{classes:["happydays"],margin:"80px",condition:()=>!!document.querySelector('div[data-testid="menu-bottom-bar"]')},{classes:["pureoptions"],margin:"65px",condition:()=>!0},{classes:["cannaprovisions"],margin:"80px",condition:()=>!0},{classes:["mhwdispensaries"],margin:"80px",condition:()=>a<768}];if(r)for(const e of s)if(e.classes.includes(r)&&e.condition())return void(i.style.marginBottom=e.margin);const c=[{ecom:["Tymber"],margin:"110px",condition:()=>o&&a<768},{ecom:["Dispense"],margin:"80px",condition:()=>o&&!document.location.href.includes("happydaysli.com")},{ecom:["RRH"],margin:"80px",condition:()=>a<=1024},{ecom:["Range"],margin:"80px",condition:()=>!0}];for(const e of c)if(e.ecom.includes(t)&&e.condition())return void(i.style.marginBottom=e.margin);i.style.marginBottom=l,i.style.paddingBottom=l}function H(){const e=n.selectedLocation();return e?.css_class||"terpli_hidden"}function N(){const e=n.selectedLocation(),t=($()?e?.floating_side:"full").toLowerCase(),r=C()&&G()?"mobile":"desktop";return"full"==t?"terpli_"+t+"_"+r:"terpli_"+t}function D(e){const t=x("terpli_session"),r=function(){const e=n.selectedLocation();return e?.retail_token}();let i=n.appUrl();if(i=i.concat("/?",`token=${r}`),window.location.href.search("demo.terpli.io")>=0){const e=`https://${function(){const e=n.selectedLocation();return e?.retail_domain}()}`;i=i.concat("&",`from=${encodeURIComponent(e)}`)}else i=i.concat("&",`from=${encodeURIComponent(window.location.href)}`);i=i.concat("&","mode="+($()?"floating":"popup_banner"==x("terpli_mode")?"popup_banner":"fpe")),i=i.concat("&",`cls=${H()}`),i=i.concat("&",`rgn=${function(){const e=n.selectedLocation();return e?.regionId||"terpli_default"}()}`),i=i.concat("&",`cid=${n.callbackId()}`),i=i.concat("&",`uid=${n.uuid()}`),i=i.concat("&",`sid=${t}
1`),i=C()||$()?i.concat("&","showClose=true"):i.concat("&","showClose=false"),(e||N().indexOf("full")>=0)&&(i=i.concat("&","autoStart=true"));const o=function(){let e=[];const t=n.selectedLocation();Array.isArray(t?.debug_features)&&(e=e.concat(t?.debug_features)),new URLSearchParams(window.location.search).forEach((t,n)=>{"debug"===n&&t&&e.push(t)});const r=window.localStorage.getItem("debug");return r&&r.split(",").forEach(t=>{const n=t.trim();n&&e.push(n)}),e=Array.from(new Set(e.filter(Boolean))),e}();return o&&Array.isArray(o)&&o.forEach(e=>{i=i.concat("&",`debug=${e}`)}),i}function j(){const e=n.selectedLocation(),t=e?.assets_folder||"/";return n.assetsURL+t}function M(){const e=n.selectedLocation();return e?.fpe_url}function Q(){return document.querySelector("div.x-container")||document.getElementById("terpli_container")||document.querySelectorAll("main#PAGES_CONTAINER > #SITE_PAGES > #SITE_PAGES_TRANSITION_GROUP")[0]||document.querySelectorAll("main#PAGES_CONTAINER > #SITE_PAGES")[0]||document.querySelectorAll("div[data-ux='Grid']")[1]||document.querySelectorAll("iframe[title='terpli_container']")[0]||document.querySelector("main#page.container")||document.querySelector("div.content-wrapper")}function F(){return`${j()}terpli_launcher.svg`}function V(){return!$()&&C()&&G()}function W(e){"terpli_full_mobile"==N()&&setTimeout(()=>{try{let t=document.querySelector(".terpli-loader"),n=document.querySelector("#terpli_placeholder > img");!!n&&(n.complete&&0!==n.naturalHeight)?setTimeout(()=>{t&&(t.style.display="none"),n&&(n.style.display=""),e&&ie()},2e3):W(e)}catch(e){console.debug("[Terpli Plugin] Error at showLoading ",e)}},1e3)}function X(){document.getElementById("terpli_floating").classList.remove("terpli-fade-out"),document.getElementById("terpli_floating").classList.add("terpli-fade-in")}function J(){$()&&window.addEventListener("scroll",()=>{const t=Date.now(),n=window.scrollY||document.documentElement.scrollTop;n>a?(t-k>=R&&(e?.isOpened()||(document.getElementById("terpli_floating").classList.remove("terpli-fade-in"),document.getElementById("terpli_floating").classList.add("terpli-fade-out")),I=t),clearTimeout(o),o=setTimeout(()=>{const e=Date.now();e-I>=R&&(X(),k=e)},R)):n<a&&t-I>=R&&(X(),k=t),a=n})}function K(){let e=document.getElementById("terpli_link");return e||(e=document.createElement("a"),e.setAttribute("id","terpli_link")),e.setAttribute("target","_blank"),e.setAttribute("href",D(!0)),e.className="",e.classList.add(H()),e}async function Y(){let e=document.getElementById("terpli_launcher_button");if(C()&&navigator.userAgent.toLowerCase().includes("safari")){if(!e||"svg"!==e.nodeName.toLowerCase()){const t=document.createElement("div"),n=await fetch(F()),r=await n.text();t.insertAdjacentHTML("afterbegin",r),e=t.firstElementChild}e&&(e.setAttribute("id","terpli_launcher_button"),e.className="",e.classList.add("terpli_hidden","safari_mobile",H()),e.style.display="none",e.setAttribute("aria-label","Terpli plugin launcher. Tap to open our budtender."),e.setAttribute("aria-hidden","false"))}else e&&"input"===e.nodeName.toLowerCase()||(e=document.createElement("input"),e.setAttribute("type","image")),e&&(e.setAttribute("src",F()),e.setAttribute("id","terpli_launcher_button"),e.setAttribute("alt","Terpli Launcher"),e.className="",e.classList.add("terpli_hidden",H()),e.style.display="none",e.setAttribute("aria-label","Terpli plugin launcher. Tap to open our budtender."),e.setAttribute("aria-hidden","false"));return l.contains(e)||l.appendChild(e),e}function Z(){t.trackAnalyticalEvent("AB_closed",{experiment:"welcome_message",variation:[{type:"messages",value:v}]}),L("terpli_message_viewed",Date.now()),u.removeChild(u.firstChild)}function ee(){if(function(){if(!document.querySelector("#terpli_app.terpli_hidden")||!$())return!1;const e=x("terpli_message_viewed",0);return Math.abs(Date.now()-e)/6e4>=15}()){let e=document.location.href.search("livewithsol.com")>=0?1e4:0;setTimeout(()=>{for(;f<v.length;f++){const e=document.createElement("div");e.setAttribute("key",`${f}`),e.classList.add("welcome_messages"),e.classList.add("balloon"),e.classList.add(H()),e.setAttribute("aria-hidden","true");const n=document.createElement("div");
1n.style.height="100%",n.style.width="85%",n.style.marginLeft="-15%",n.style.marginTop="2px",n.style.borderRadius="32px 0px 0px 32px",n.style.position="absolute",n.style.cursor="pointer",n.setAttribute("aria-hidden","true"),n.addEventListener("click",()=>{ie()}),e.appendChild(n);const r=document.createElement("span");r.classList.add(H()),r.classList.add("balloon_text"),r.innerText=v[f],r.setAttribute("aria-hidden","false"),r.setAttribute("aria-label",`Terpli plugin says: ${v[f]}. Tap to open our budtender.`),r.addEventListener("click",()=>{ie()});const i=document.createElement("a");i.classList.add("terpli_close"),i.classList.add(H()),i.setAttribute("aria-hidden","false"),i.setAttribute("aria-label","Tap to close this message balloon."),i.addEventListener("click",Z);const o=document.createElement("span");o.classList.add("terpli-icon-close"),o.classList.add(H()),i.appendChild(o);const a=document.createElement("div");a.classList.add(H()),a.classList.add("balloon_fit"),a.setAttribute("aria-hidden","true"),a.appendChild(r),a.appendChild(i),e.appendChild(a),u.insertBefore(e,u.firstChild);let l=document.querySelector(".welcome_messages");l&&!!(l.offsetWidth||l.offsetHeight||l.getClientRects().length)&&t.trackAnalyticalEvent("AB_shown",{experiment:"welcome_message",variation:[{type:"messages",value:v}]})}},e)}}function te(){y("dev")&&(!function(e,t){if(!document.getElementById(e)){const r=document.createElement("script");r.id=e,r.src=`${n.assetsURL}/${t}`,r.async=!0,document.head.appendChild(r)}}("aiq-loops-loader","aiq-loops-widget.iife.js"),U("aiq-loops-widget.css"),U("aiq-loops-builder.css"))}function ne(){const e=x("terpli_loops_closed",0),t=Math.abs(Date.now()-e)/6e4;let n=[/\/product\/|\/products\//,/[?&]dtche%5Bproduct/,/checkout/,/budtender/].some(e=>e.test(document.location.href));return document.location.href.includes("cannabisrealmny.com")&&document.querySelector('div[data-testid="product-page-container"]')&&(n=!0),t>=15&&!n}function re(e){document.querySelector(".aiq_loops_container")?.remove(),e&&L("terpli_loops_closed",Date.now()),console.log("[Terpli AIQLoops] Loops banner closed")}function ie(){if(!_){_=!0;try{e?.isOpened()?(document.querySelector("#terpli_floating")?.style&&document.querySelector("#terpli_floating").style.removeProperty("z-index"),e?.closePlugin()):(document.querySelector("#terpli_floating")?.style&&document.querySelector("#terpli_floating").style.setProperty("z-index",2147483647,"important"),e?.openPlugin())}catch(e){console.error("[Terpli Plugin] Open/Close Plugin Error")}finally{_=!1}}}async function oe(){W(),s??=K(),l??=function(){let e;if($()?(e=document.getElementById("terpli_floating")||document.createElement("div"),e.setAttribute("id","terpli_floating"),e.className=`${H()} ${N()}`):(e=Q(),e?.classList.add(H())),!e)return;e.innerHTML="";let t=document.getElementById(N())||document.createElement("div");if(t.setAttribute("id",N()),t.className=H(),e.appendChild(t),V()){let e=document.getElementById("terpli_link")||document.createElement("a");e.setAttribute("id","terpli_link"),e.setAttribute("target","_blank"),e.onclick=ie,e.className=H();let n=document.getElementById("terpli_placeholder")||document.createElement("div");n.setAttribute("id","terpli_placeholder"),n.className=H();let r=n.querySelector("img")||document.createElement("img");r.setAttribute("width","100%"),r.setAttribute("src",`${j()}get_started_placeholder.svg`),r.style.display="none",r.className=H(),n.contains(r)||n.appendChild(r);let i=n.querySelector(".terpli-loader")||document.createElement("div");i.className=`terpli-loader ${H()}`,i.innerHTML='<svg class="terpli-circular-loader" viewBox="25 25 50 50"><circle class="terpli-loader-path" cx="50" cy="50" r="20" fill="none"></circle></svg>',n.contains(i)||n.appendChild(i),e.innerHTML="",e.appendChild(n),t.innerHTML="",t.appendChild(e)}return $()&&!document.body.contains(e)&&document.body.appendChild(e),t}(),l?(c??=function(){let e=document.getElementById("terpli_app");return e||(e=document.createElement("iframe"),e.setAttribute("id","terpli_app"),l.appendChild(e)),e.setAttribute("title","Terpli Plugin"),e.setAttribute("allow","clipboard-read; clipboard-write"),e.setAttribute("frameborder","0"),e.className=H(),e.setAttribute("src",D()),z(e,$()||V()?"terpli_hidden":"terpli_visible"),e}(),d??=await Y(),u??=function(){let e=document.getElementById("terpli_welcome_messages");return e?(e.className="",e.classList.add(H()),z(e,"terpli_hidden")):(e=document.createElement("div"),e.setAttribute("id","terpli_welcome_messages"),e.classList.add(H()),z(e,"terpli_hidden"),l.insertBefore(e,d)),e}(),te()):console.debug("[Terpli Plugin] Initialization Error")}function ae(){const e=x("terpli_banner_viewed",0);let t=Math.abs(Date.now()-e)/6e4;y("popup_banner")&&(t=1540);let n=t>60;const r=document.querySelector("#terpli_banner"),i=!r||"block"!==r?.style.display;return n&&$()&&i}function le(){if($()&&P("terpli_mode"),A&&ae()){let r=y("dev")?0:15e3;document.location.href.search("sevenpoint.org")>=0&&(r=6e4),setTimeout(()=>{function r(){let n=document.getElementById("terpli_banner_img"),i=n.complete&&0!==n.naturalHeight&&0!==n.height;if(document.location.href.search("noxx.com")>=0){const e=0==document.querySelector('div[data-elementor-type="popup"]')?.hidden;i=i&&!e}if(i){!function(n){if(!w("popup_banner")||!ae())return;
1t.trackAnalyticalEvent("AB_shown",{experiment:"popup_banner",variation:[{type:"image",value:A.imageURL},{type:"text",value:A.buttonText},{type:"url",value:A.fullPagePath},{type:"alias",value:A.alias}]}),L("terpli_banner_viewed",Date.now()),P("terpli_banner");let r=document.getElementById("terpli_banner"),i=document.getElementsByClassName("terpli-close")[0],o=document.getElementsByClassName("terpli-button-container")[0];r.style.display="block",e?.hidePlugin(),i.onclick=function(){t.trackAnalyticalEvent("AB_closed",{experiment:"popup_banner",variation:[{type:"image",value:A.imageURL},{type:"text",value:A.buttonText},{type:"url",value:A.fullPagePath},{type:"alias",value:A.alias}]}),r.style.display="none",n&&n(),e?.showPlugin()},o.onclick=function(){L("terpli_mode","popup_banner"),t.trackAnalyticalEvent("AB_clicked",{experiment:"popup_banner",variation:[{type:"image",value:A.imageURL},{type:"text",value:A.buttonText},{type:"url",value:A.fullPagePath},{type:"alias",value:A.alias}]}),r.style.display="none",n&&n(),A.fullPagePath?window.location.href=A.fullPagePath+window.location.search:window.location.href=window.location.origin+"/budtender"+window.location.search},window.onclick=function(i){i.target==r&&(t.trackAnalyticalEvent("AB_closed",{experiment:"popup_banner",variation:[{type:"image",value:A.imageURL},{type:"text",value:A.buttonText},{type:"url",value:A.fullPagePath},{type:"alias",value:A.alias}]}),r.style.display="none",n&&n(),e?.showPlugin())}}(()=>{document.head.querySelectorAll("link[href*='TerpliBanner']").forEach(e=>e.remove()),document.getElementById("terpli_banner").style.display="none"})}else setTimeout(()=>{r()},1e3)}const i=H(),o=A.customCss?` ${A.customCss}`:"",a=y("dev")?".dev":"";let l=document.createElement("link");l.setAttribute("rel","stylesheet"),l.setAttribute("href",`${n.assetsURL}/TerpliBanner${a}.css`),l.addEventListener("load",function(e){const t=document.createElement("div");t.setAttribute("id","terpli_banner"),t.classList.add("terpli-modal"),t.classList.add(i),o.length>0&&t.classList.add(o.trim()),t.innerHTML=`\n                <div aria-hidden="true" class="terpli-modal-content terpli-transparent ${i}${o}">\n                  <div class="terpli-close-container terpli-transparent ${i}${o}">\n                    <span class="terpli-close terpli-transparent ${i}${o}">×</span>\n                  </div>\n                  <img id="terpli_banner_img" class="${i}${o}" src="${A.imageURL}" alt="Terpli">\n                  <div class="terpli-button-container terpli-transparent ${i}${o}">\n                    <span class="terpli-button terpli-transparent ${i}${o}">${A.buttonText}</span>\n                  </div>\n                </div>\n              `,document.body.appendChild(t),r()}),document.head.appendChild(l)},r)}}function se(t=1){try{if(t<=0||e.isVisible())return;setTimeout(async()=>{await e.initialize(!1),e.isVisible()||se(t-1)},2500)}catch(e){console.debug("[Terpli Plugin] Error at fallbackToFirstLoad ",e),se(t-1)}}function ce(t){try{const{origin:r,data:i}=t;if(r!==n.appUrl()&&r!==document.location.origin)return;if("string"!=typeof i)return;if(console.debug("[Terpli Message Received]",i),function(e){try{const t=T(e);if(t.url&&t.url.includes("http")){let e=q("terpli_url",t.url)||t.url;if(e){e=E(e);const r=new URL(e).hostname;if(document.location.hostname.indexOf(r)>=0||r.indexOf(document.location.hostname)>=0)document.location.href=e;else{let r=n.getValidIframe();if(r)r.src=e,C()&&ie();else{L("terpli_pdp",t.url);const e=(window.top||window).open(t.url,"_blank","noreferrer");e&&e.focus()}}}}}catch(e){}}(i),function(e){try{if(w("welcome_messages"))return;const t=T(e);!t.welcomeMessage||A&&!A.showFloating||(v=[t.welcomeMessage],ee())}catch(e){}}(i),function(e){try{const t=T(e);t.loops&&console.debug("[Terpli AIQLoops] tryMountLoops",t.loops)}catch(e){}}(i),"hidden"===i)return e.closePlugin();if("visible"===i)return e.openPlugin();i.includes("authorized")&&(console.debug("[Terpli Plugin] Authorized"),function(){const e=M(),t=w("show_floating"),r=S("terpli_banner");if(r.imageURL&&r.buttonText)return void(A={...r,fullPagePath:e,showFloating:t});const i={"noxx.com(?!.*cookies).*":[{image:"banner_noxx_illinois.svg",text:"Get Started"}],"noxx.com.*cookies.*":[{image:"banner_cookies_1.svg",text:"Get Started"},{image:"banner_cookies_2.svg",text:"Get Started"}],"zaharacannabis.com":[{image:"banner_zahara_1.svg",text:"Get Started"}],"nycbud.com":[{image:"banner_nycbud_1.svg",text:"Get Started"},{image:"banner_nycbud_2.svg",text:"Get Started"},{image:"banner_nycbud_3.svg",text:"Get Started"}],"sevenpoint.org":[{image:"banner_sevenpoint_1.svg",text:"Get Started"},{image:"banner_sevenpoint_2.svg",text:"Get Started"},{image:"banner_sevenpoint_3.svg",text:"Get Started"}],"theapothecaryshoppe.net":[{image:"banner_apothecary_1.svg",text:"Get Started"},{image:"banner_apothecary_2.svg",text:"Start Here"},{image:"banner_apothecary_3.svg",text:"Start Here"}],"thehigherpath.com":[{image:"banner_thehigherpath_1.svg",text:"Get Started"},{image:"banner_thehigherpath_3.svg",text:"Get Started"}],"menu.arizonaorganix.org":[{image:"banner_azo_3.svg",text:"Get Started"}],"freshkarma.com":[{image:"banner_freshkarma_1.svg",text:"Get Started"},{image:"banner_freshkarma_2.svg",text:"Get Started"},{image:"banner_freshkarma_3.svg",text:"Get Started"}],"budsgarage.com":[{image:"banner_budsgarage_1.svg",text:"Get Started"},{image:"banner_budsgarage_2.svg",text:"Get Started"},{image:"banner_budsgarage_3.svg",text:"Get Started"}],"primitivgroup.com":[{image:"banner_primitiv_1.svg",text:"Get Started"},{image:"banner_primitiv_2.svg",text:"Get Started"},{image:"banner_primitiv_3.svg",text:"Get Started"},{image:"banner_primitiv_4.svg",text:"Get Started"}],"ethoscannabis.com":[{image:"banner_ethos_1.svg",text:"Get Started"},{image:"banner_ethos_2.svg",text:"Get Started"},{image:"banner_ethos_3.svg",text:"Get Started"}],"shangriladispensaries.com/?.+":[{image:"banner_shangrila_1.svg",text:"Get Started"},{image:"banner_shangrila_2.svg",text:"Get Started"},{image:"banner_shangrila_3.svg",text:"Get Started"},{image:"banner_shangrila_4.svg",text:"Get Started"},{image:"banner_shangrila_5.svg",text:"Get Started"},{image:"banner_shangrila_6.svg",text:"Get Started"}],"nobogoods.com":[{image:"banner_nobo_1.svg",text:"Get Started"},{image:"banner_nobo_2.svg",text:"Get Started"},{image:"banner_nobo_3.svg",text:"Get Started"}]};if(w("popup_banner")&&b("popup_banner")){const r=Object.keys(i).find(e=>document.location.href.search(e)>=0),o=function(e){if(!i[e]||0===i[e].length)return null;const t=Math.floor(Math.random()*i[e].length);return i[e][t]}(r);if(o&&(A={imageURL:`${n.assetsURL}/banner/${o.image}`,buttonText:o.text,customCss:o.customCss,fullPagePath:e,showFloating:t}),!A&&!r){const r=[{image:"Terpli vBG3_T1_S1_B1.svg",text:"Get Started",alias:"Terpli vBG3_T1_S1_B1"},{image:"Terpli vBG3_T1_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG3_T1_S2_B2"},{image:"Terpli vBG3_T2_S1_B1.svg",text:"Get Started",alias:"Terpli vBG3_T2_S1_B1"},{image:"Terpli vBG3_T2_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG3_T2_S1_B2"},{image:"Terpli vBG3_T2_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG3_T2_S2_B2"},{image:"Terpli vBG3_T3_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG3_T3_S1_B2"},{image:"Terpli vBG4_T1_S1_B1.svg",text:"Get Started",alias:"Terpli vBG4_T1_S1_B1",customCss:"terpli_green_button"},{image:"Terpli vBG4_T1_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG4_T1_S2_B2",customCss:"terpli_green_button"},{image:"Terpli vBG4_T2_S1_B1.svg",text:"Get Started",alias:"Terpli vBG4_T2_S1_B1",customCss:"terpli_green_button"},{image:"Terpli vBG4_T2_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG4_T2_S1_B2",customCss:"terpli_green_button"},{image:"Terpli vBG4_T2_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG4_T2_S2_B2",customCss:"terpli_green_button"},{image:"Terpli vBG4_T3_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG4_T3_S1_B2",customCss:"terpli_green_button"},{image:"Terpli vBG5_T1_S1_B1.svg",text:"Get Started",alias:"Terpli vBG5_T1_S1_B1",customCss:"terpli_green_button"},{image:"Terpli vBG5_T1_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG5_T1_S2_B2",customCss:"terpli_green_button"},{image:"Terpli vBG5_T2_S1_B1.svg",text:"Get Started",alias:"Terpli vBG5_T2_S1_B1",customCss:"terpli_green_button"},{image:"Terpli vBG5_T2_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG5_T2_S1_B2",customCss:"terpli_green_button"},{image:"Terpli vBG5_T2_S2_B2.svg",text:"Take The Quiz",alias:"Terpli vBG5_T2_S2_B2",customCss:"terpli_green_button"},{image:"Terpli vBG5_T3_S1_B2.svg",text:"Take The Quiz",alias:"Terpli vBG5_T3_S1_B2",customCss:"terpli_green_button"}],i=r[Math.floor(Math.random()*r.length)];A={imageURL:`${n.assetsURL}/banner/${i.image}`,buttonText:i.text,alias:i.alias,customCss:i.customCss,fullPagePath:e,showFloating:t}}}if(w("welcome_messages")&&b("welcome_messages")){const e=[];document.location.href.includes("fardotter.com")?e.push("Shop with our virtual budtender","Reveal your perfect strain here!","Try our cannabis quiz!","Find your perfect product."):e.push("Unlock your ideal strain!","Reveal your perfect strain here!","Try our cannabis quiz!","Find Your Perfect Strain Here!"),v=[e[Math.floor(Math.random()*e.length)]],ee()}}(),le(),J(),e.showPlugin(),window.addEventListener("resize",()=>{O()}),setTimeout(()=>{console.debug("[Terpli AIQLoops] Using static UID for testing:","1896"),e.setupLoops({uid:"1896"})},2e3)),i.includes("unauthorized")&&$()&&e.hidePlugin()}catch(e){console.debug("[Terpli Plugin] Error handling message",e)}}this.setupLoops=async({uid:e,placement:t="customerWidget"}={})=>{try{if(!e||!y("dev")||!ne())return;let r="aiq_loops_banner",i="cover-card",o=`${n.assetsURL}/aiq-loops-core.iife.js`;const a=await fetch(`https://lab.alpineiq.com/sponsored-loops-enabled/${encodeURIComponent(e)}/${encodeURIComponent(t)}`),s=await a.json().catch(()=>null);if(!s?.data?.enabled)return;if(!this.isVisible())return;if(p=document.getElementById(r),!p){const e=document.createElement("div");e.className="aiq_loops_container";const t=document.createElement("button");t.type="button",t.className="aiq_loops_close_btn",t.classList.add(H()),t.setAttribute("aria-hidden","false"),t.setAttribute("aria-label","Tap to close this banner."),t.setAttribute("tabindex","0"),t.addEventListener("click",function(e){e.stopPropagation(),e.preventDefault(),re(!0)});const n=document.createElement("span");n.className="aiq_loops_close_icon",t.appendChild(n),p=document.createElement("div"),p.id=r,z(e,"terpli_hidden"),e.appendChild(t),e.appendChild(p),p._wrapperDiv=e}if(p._wrapperDiv.parentElement===l&&p._wrapperDiv.nextSibling===u||l.insertBefore(p._wrapperDiv,u),window.AIQLoops?.mount)try{const n=!1;console.debug("[Terpli AIQLoops] disableImpressionTracking:",n);const r=await window.AIQLoops.mount({element:p,uid:e,placement:t,coreSrc:o,variant:i,disableImpressionTracking:n}),a=await r.ads;Array.isArray(a)&&a.length>0&&(this.closePlugin(),z(p._wrapperDiv,"terpli_visible")),console.debug("[Terpli AIQLoops] Ads:",a)}catch(e){console.error("[Terpli AIQLoops] Mount failed:",e)}}catch(e){y("terpli")&&console.error("[Terpli AIQLoops] init error:",e)}},this.isOpened=()=>document.querySelector("#terpli_app")?.offsetParent,this.openPlugin=()=>{try{if((v?.length??0)>0){const e=[...v];!function(){for(z(u,"terpli_hidden");u.lastElementChild;)u.removeChild(u.lastElementChild);f=0,v=[]}
1(),L("terpli_message_viewed",Date.now()),t.trackAnalyticalEvent("AB_clicked",{experiment:"welcome_message",variation:[{type:"messages",value:e}]})}z(c,"terpli_visible"),z(d,"terpli_hidden"),re(!1),c.focus(),L("terpli_banner_viewed",Date.now()),G()&&document.body.classList.add("terpli_body_noscroll"),B||(B=!0,setTimeout(()=>{postMessageToIframe("open")},1e3)),g=!0}catch(e){console.debug("[Terpli Plugin] Error at openPlugin ",e)}},this.closePlugin=()=>{try{if(document.querySelector("#terpli_full_desktop"))return;z(c,"terpli_hidden"),z(d,"terpli_visible"),z(u,"terpli_visible"),document.body.classList.remove("terpli_body_noscroll"),d?.setAttribute("src",F()),ee(),g=!1}catch(e){console.debug("[Terpli Plugin] Error at closePlugin ",e)}},this.checkLoopsVisibility=()=>{ne()||re(!1)},this.updatePlugin=async()=>{try{if(m())return;const t=n.selectedLocation();if("enabled"==t?.retail_status||"debug"==t?.retail_status&&y("terpli")){const t=document.getElementById("terpli_app");t?(this.closePlugin(),t.setAttribute("src",D())):await e.initialize(),s=K(),this.showPlugin()}else this.hidePlugin()}catch(e){console.debug("[Terpli Plugin] Error at updatePlugin ",e)}},this.hidePlugin=()=>{try{document.querySelector("#terpli_floating")&&z(l,"terpli_hidden"),window.AIQLoops&&p&&window.AIQLoops.unmount?.({element:p})}catch(e){console.debug("[Terpli Plugin] Error at hidePlugin ",e)}},this.isVisible=()=>["#terpli_app","#terpli_left","#terpli_right","#terpli_floating","#terpli_full_mobile","#terpli_full_desktop"].some(e=>document.querySelector(e)?.classList.contains("terpli_visible")),this.showPlugin=()=>{try{if(m())return;const e=[/checkout/],t=t=>e.some(e=>e.test(t));if(A&&!A.showFloating)return void this.hidePlugin();if(document.location.href.includes("ftemo.com")&&window.innerWidth>=600&&window.innerWidth<=1024&&C())return void this.hidePlugin();if(document.location.href.includes("happydaysli.com")&&C())return void this.hidePlugin();if(t(document.location.href))return void this.hidePlugin();let n=0;document.location.href.search("sevenpoint.org")>=0&&(n=2e4),setTimeout(()=>{$()?(z(l,"terpli_visible"),this.isOpened()||(z(d,"terpli_visible"),z(u,"terpli_visible"),O())):"terpli_full_desktop"===N()&&(B||(B=!0,setTimeout(()=>{postMessageToIframe("open")},1e3)))},n)}catch(e){console.debug("[Terpli Plugin] Error at showPlugin ",e)}},this.initialize=async(e=!0)=>{try{if(m()){if(!document.getElementById("aiq"))try{const e=n.selectedLocation(),t=Array.isArray(e?.ab_enabled)&&e.ab_enabled.find(e=>"string"==typeof e&&e.includes("pixel")&&e.includes(":"))||null,r=t?.split(":")[1]?.trim(),i=r?n.pixelUrl():null,o=i&&r?`${i}${r}`:null;if(o){new URL(o);const e=Object.assign(document.createElement("script"),{async:!0,id:"aiq",src:o,onerror:e=>console.error("[Terpli Plugin] Failed to load pixel script:",o,e)});document.head.appendChild(e),console.debug("[Terpli Plugin] Pixel activated",o)}else console.debug("[Terpli Plugin] Pixel activation skipped: missing pixelId, baseUrl, or malformed pixel flag (expected e.g. pixel:####)",{ab_enabled:e?.ab_enabled,pixelUrl:o})}catch(e){console.error("[Terpli Plugin] Error during pixel activation",e)}return}if(!0===this.vInitialized)return void console.debug("[Terpli Plugin] Already initialized");!function(e){try{let t=q("terpli_url",x("terpli_pdp"));if(t){t=E(t);let r=n.getValidIframe();if(r){let e=t.indexOf("?");e=e>0?e:t.length,t=t.substring(0,e),r.src!=t&&(r.src=t)}else e&&(window.top||window).open(t,"_self");P("terpli_pdp")}}catch(e){console.debug("[Terpli Plugin] Error to load PDP")}}(!0);const e=n.selectedLocation();if(!e||"debug"===e?.retail_status&&!y("terpli")||"disabled"===e?.retail_status)return void console.debug("[Terpli Plugin] Retail status is disabled",e);if($()&&Q()?.getElementsByClassName("terpli_fpe").length>0)return;this.closePlugin(),h(this.retailerList,this.isSingleLocation),this.checkLoopsVisibility();const t=y("dev")?".dev":"";if(U(`TerpliPlugin${t}.css`),U(`TerpliTricks${t}.css`),await oe(),!c||!d)return;d.addEventListener("click",ie),window.removeEventListener("message",ce,!1),window.addEventListener("message",ce,!1),this.vInitialized=!0,console.debug("[Terpli Plugin] Initialized")}catch(e){console.debug("[Terpli Plugin] Error at initialize ",e)}finally{e&&se(3)}}}function I(){let e,r,i,o;function d(e,t){if(e?.details?.error)return;const n=`Exception at ${e.action}`,r={...e.details,error:t,stack:t?.stack};console.debug("[Terpli Analytics] Ecom tracking error ",{event:n,data:r})}async function u(e,r,i,a,l,s){let c={};try{const u=Math.floor(Date.now()/1e3),p=function(e){if("object"!=typeof e||null===e)throw new Error("Input must be a non-null object");const t=JSON.stringify(e,Object.keys(e).sort());let n=2166136261;for(let e=0;e<t.length;e++)n^=t.charCodeAt(e),n+=(n<<1)+(n<<4)+(n<<7)+(n<<8)+(n<<24);return(n>>>0).toString(36)}({action:r,data:i}),m=u-(o?.timestamp||u);if(p===o?.eventHash&&0===m)return console.debug(`[Terpli Analytics] Duplicate event in sequence has been ignored ${r}`),void(o&&(o.timestamp=u));o={eventHash:p,timestamp:u};let g=n.getValidIframe(),h=g?decodeURIComponent(g.getAttribute("src")):"",f=decodeURIComponent(document.location.href),b=e||n.uuid(),w=t.getTerpliReccId(f,h),v=t.getTerpliViewed(w,b,r,i?.ecommerce??i),T=x("terpli_session");T||(T=_(),L("terpli_session",T),L("terpli_session_updated",Date.now()));let S=n.selectedLocation(),A=S?.retail_token;c={token:A,userId:b,firebaseId:b,sessionId:T,action:r,details:{terpli_rec:w,terpli_viewed:v,data:i,iframe_url:h,url:f,source:a,route:s||null},ecom_platform:l||S?.ecom_platform||"Unknown"},y("error")&&!i.error&&(c.token="");const E=await fetch(`${n.analyticsApiUrl()}
1ecom/transaction`,{method:"POST",cache:"no-cache",redirect:"follow",headers:{"content-type":"application/json","x-api-key":n.analyticsApiKey()},body:JSON.stringify(c)}),k=await E.json();return 200!==E.status&&d(c,{status:E.status,body:k}),"checkout"===r&&P("terpli"),k}catch(e){console.debug("[Terpli Analytics] Error at sendEcomTransaction",e),d(c,{name:e.name,message:e.message,stack:e.stack})}}async function p(e,t,n){if(!t)return void console.debug(`[Terpli Analytics] Event with no data has been ignored ${e}`);if(["view_item_list","productImpressions","engagementTimer","gtm.linkClick","gtm.click","gtm.load","gtm.historyChange","gtm.historyChange-v2"].find(t=>e.toLowerCase().indexOf(t.toLowerCase())>=0))return void console.debug(`[Terpli Analytics] Blacklist event has been ignored ${e}`);["add to cart","added item","addeditem","completed order","completedorder","lb_addtocart","lb_begincheckout","lb_purchase","lb_removecartitem","lb_updatecart","lb_viewitem","purchased item","purchaseditem","remove from cart","removeditem","started checkout","started checkout item","startedcheckout","startedcheckoutitem","viewed item","vieweditem","addproduct.add","addproduct.checkout","addproduct.click","addproduct.detail","addproduct.purchase","addproduct.remove","addtocart","add_to_cart","begin_checkout","cartitemadd","cartpageload","checkout","checkoutpageload","menuload","productclick","productview","purchase","removefromcart","remove_from_cart","select_item","send","view_cart","view_item","view_product","additemtocheckout","updateitemquantity","createorder","updateorder","createcheckout","updatecheckout","sendanalyticspayload","persistcheckoutv2","viewed_product","open_cart"].find(t=>e.toLowerCase().includes(t))?e.toLowerCase().includes("send")&&["pageview"].includes(t)?console.debug(`[Terpli Analytics] Unbound event has been ignored ${e}`,t):await u(null,e,t,n,null):console.debug(`[Terpli Analytics] Unbound event has been ignored ${e}`,t)}function g(t,n,o,...a){try{"string"!=typeof n||n.includes("ec:addImpression")||"Product Impressions"===o?.eventAction||(n.includes("ec:setAction")?r=o:n.includes("ec:")?(e=n,i=o):n.includes("send")&&(p(e&&r?`${e}.${r}`:n,i||o,t),e=r=i=void 0))}catch(e){console.debug("[Terpli Analytics] Error at mapEcomEventForUAGA4",e)}}function h(){a||(l>=10?y("retry")&&console.log("[Terpli Analytics] Maximum retry attempts reached. Stopping reinitialization."):window.__terpli_patches.gtag&&window.__terpli_patches.dataLayerPush?y("retry")&&console.log("[Terpli Analytics] GA initialization detected. No further retries needed."):a=setTimeout(()=>{if(a=null,l+=1,y("retry")&&console.log(`[Terpli Analytics] Retry attempt ${l} for GA initialization.`),window.__terpli_patches.gtag&&window.__terpli_patches.dataLayerPush)y("retry")&&console.log("[Terpli Analytics] GA initialization detected. No further retries needed.");else{try{f(!0)}catch(e){console.debug("[Terpli Analytics] retry error",e)}h()}},300))}function f(e){try{function t(e,t,n,r){window.__terpli_patches[t]||"function"==typeof n&&(window[e]=r(n),window.__terpli_patches[t]=!0,y("analytics")&&console.log(`[Terpli Analytics] Initialized for ${e}`,{originalFnPreview:"function"==typeof n?String(n).slice(0,120):null}))}if(t("ga","ga",window.ga,function(e){return function(...t){if(c)console.warn("[Terpli Analytics] Reentrant ga() call detected; breaking 3rd-party recursion cycle.",{args:t});else{c=!0;try{try{y("analytics")&&console.log("[Terpli Analytics] GoogleAnalytics.all ",{source:"UA",args:t}),g("UA",t[0],t[1],...t.slice(2))}catch(e){console.debug("[Terpli Analytics] GoogleAnalytics.error: ",e)}return e.apply(this,t)}finally{c=!1}}}}),t("gtag","gtag",window.gtag,function(e){return function(...t){if(s)console.warn("[Terpli Analytics] Reentrant gtag() call detected; breaking 3rd-party recursion cycle.",{args:t});else{s=!0;try{try{y("analytics")&&console.log("[Terpli Analytics] GoogleAnalytics.all ",{source:"GA4",args:t}),g("GA4",t[1],t[2])}catch(e){console.debug("[Terpli Analytics] GoogleAnalytics.error: ",e)}return e.apply(this,t)}finally{s=!1}}}}),!window.__terpli_patches.dataLayerDispatcherWired){window.__terpli_dataLayer_state.dispatcher=function(e){y("analytics")&&console.log("[Terpli Analytics] GoogleAnalytics.all ",{source:"GA4.dataLayer",args:[e]}),function(e,t){try{let n=t?.event||("event"===t[0]?t[1]:null),r=t?.ecommerce||("event"===t[0]?t[2]:null);n&&p(n,r||t,e)}catch(e){console.debug("[Terpli Analytics] Error at mapEcomEventForGA4DataLayer",e)}}("GA4.dataLayer",e)},window.__terpli_patches.dataLayerDispatcherWired=!0;const n=window.__terpli_dataLayer_state.pending;window.__terpli_dataLayer_state.pending=[];for(const r of n)try{window.__terpli_dataLayer_state.dispatcher(r)}catch(i){console.debug("[Terpli Analytics] flush error",i)}y("analytics")&&console.log(`[Terpli Analytics] Initialized for GA4.dataLayer (flushed ${n.length} buffered events)`)}}catch(o){console.debug("[Terpli Analytics] Error at gaInitialization ",o)}finally{e||(l=0,h())}}function b(e,t,n){try{if(!window.XMLHttpRequest)return;let r,i,o=[];const a=window.XMLHttpRequest.prototype.open,l=window.XMLHttpRequest.prototype.setRequestHeader,s=window.XMLHttpRequest.prototype.send;if(!window.__terpli_patches.xhrSimpleOpen&&"function"==typeof a){const t=function(t,n){try{e&&null!=n&&n.search(e)>=0&&(r=t,i=n,o=[])}catch(e){console.debug("[Terpli Analytics] XMLHttpRequest.open error: ",e)}return a.apply(this,arguments)};window.XMLHttpRequest.prototype.open=t,window.__terpli_patches.xhrSimpleOpen=!0}if(!window.__terpli_patches.xhrSimpleHeader&&"function"==typeof l){const t=function(t,n){try{null!=i&&i.search(e)>=0&&o.push([t,n])}catch(e){console.debug("[Terpli Analytics] XMLHttpRequest.setRequestHeader error: ",e)}return l.apply(this,arguments)};window.XMLHttpRequest.prototype.setRequestHeader=t,window.__terpli_patches.xhrSimpleHeader=!0}if(!window.__terpli_patches.xhrSimpleSend&&"function"==typeof s){const a=function(a){try{if(null!=i&&i.search(e)>=0){let e=T((e=>{try{return(new TextDecoder).decode(e)}catch{return e}})(a)),l={url:i,method:r,headers:o,body:e};const s=t?t(l):i;p(s,n?n(l):l,"XHR")}}catch(e){console.debug("[Terpli Analytics] XMLHttpRequest.send error: ",e)}return s.apply(this,arguments)};window.XMLHttpRequest.prototype.send=a,window.__terpli_patches.xhrSimpleSend=!0}y("analytics")&&console.log("[Terpli Analytics] Initialized for XHR ",e)}catch(e){console.debug("[Terpli Analytics] Error at xhrInitialization ",e)}}function w(e){const t=e=>e&&"string"==typeof e&&!e.includes("addImpression")&&!e.includes("setA
1ction")&&!e.includes("send")&&!e.includes("push"),n=e=>{"object"==typeof e&&null!==e&&((e=>{if("event"in e&&"payload"in e||"name"in e&&"properties"in e){const n=e.payload?.event||e.event||e.name;if(!t(n))return;p(n,e.payload||e.properties||e,"dutchie")}})(e),(e=>{if("object"==typeof e&&null!==e&&"event"===e[0]&&"1"in e){const n=e[1],r=e[2]||null;if(!t(n))return;p(n,r||e,"dutchie")}})(e),(e=>{(Array.isArray(e)?e:Object.values(e)).forEach(n)})(e))};e.origin.includes("terpli.io")||(y("postmessage")&&console.log("[Terpli Analytics] PostMessage at dutchieEventsListener ",e),n((e=>{try{const t=e?.data?.data||e?.data||null,n="string"==typeof t?T(t):t;return n?.payload||n||null}catch(t){return y("dutchie")&&console.error("[Terpli Analytics] JSON parsing error:",e.data,t),e?.data?.data||e?.data||null}})(e)))}function v(e){try{if(e.origin.includes("terpli.io"))return;let t=e.data&&e.data.payload;if(!t||"analyticsEvent"!==e.data.messageType)return;y("postmessage")&&console.log("[Terpli Analytics] PostMessage at janeEventsListener ",e);try{p(t.name,t.properties,"iheartjane")}catch(e){console.debug("[Terpli Analytics] Error at janeEventsListener ",e)}}catch(e){}}this.getTerpliReccId=(e,t)=>{const n=[/terpli_rec=(?<recId>[^&]+)/i,/terpli_rec=(?<recId>.+)$/i],r=e=>{if(!e)return null;try{for(const t of n){const n=t.exec(e),r=n?.groups?.recId;if(r){const e=S("terpli");return e.rec!==r&&(e.rec=r,A("terpli",e)),r}}}catch(e){console.debug("[Terpli Analytics] Error at getUrlTerpliRec:",e)}return null};return r(e)||r(t)||""},this.getTerpliViewed=(e,t,n,r)=>{try{if(!e||0===e.length)return[];const i=S("terpli"),o=Array.isArray(i.viewed)?i.viewed:[],a=e=>"object"==typeof e&&null!==e?JSON.stringify(e,Object.keys(e).sort()):String(e),l=r?.productId??r?.directUrl??(Array.isArray(r?.items)&&r.items.length>0?r.items[0]:null);if(["productView","view_product","view_item"].includes(n)&&t.length>0&&l){const e=a(l);o.map(a).includes(e)||(o.push(l),i.viewed=o,A("terpli",i))}return o}catch(e){return console.debug("[Terpli Analytics] Error at getTerpliViewed:",e),null}},this.trackAnalyticalEvent=async(e,t,r)=>{try{await async function(e,t,r){try{let i=n.getValidIframe(),o=i?decodeURIComponent(i.getAttribute("src")):"",a=decodeURIComponent(document.location.href),l=n.uuid(),s=x("terpli_session");s||(s=_(),L("terpli_session",s),L("terpli_session_updated",Date.now()));let c=n.selectedLocation(),d=c?.retail_token,u={token:d,userId:l,firebaseId:l,sessionId:s,event:e,data:t,iframeUrl:o,url:a,route:r||null};const p=await fetch(`${n.analyticsApiUrl()}analytics`,{method:"POST",cache:"no-cache",redirect:"follow",headers:{"content-type":"application/json","x-api-key":n.analyticsApiKey()},body:JSON.stringify(u)}),m=await p.json();return 200!==p.status&&console.debug("[Terpli Analytics] Error at sendAnalyticsEvent",{status:p.status,body:m}),m}catch(e){console.debug("[Terpli Analytics] Error at sendAnalyticsEvent",e)}}(e,t,r)}catch(e){console.debug("[Terpli Analytics] Error at trackAnalyticalEvent",e)}},this.initialize=e=>{try{if(m())return;let t=n.selectedLocation();if(!t||"debug"===t?.retail_status&&!y("terpli")||"disabled"===t?.retail_status)return void console.debug("[Terpli Analytics] Retail status is disabled",t);let r=t?t?.ecom_platform?.toLowerCase().trim():"Unknown",i=t?t?.retailId?.toLowerCase().trim():"Unknown";f(e),"tymber"==r&&y("tymber")&&b("api.tymber.io"),"dutchie"!=r&&"leafbridge"!=r||(window.__terpli_listeners._dutchieHandler=w,window.addEventListener("message",window.__terpli_listeners.dutchie,!1),y("analytics")&&console.log("[Terpli Analytics] Initialized for Dutchie")),"iheartjane"==r&&(window.__terpli_listeners._janeHandler=v,window.addEventListener("message",window.__terpli_listeners.jane,!1),y("analytics")&&console.log("[Terpli Analytics] Initialized for Jane")),"dispense"==r&&-1==i.indexOf("happydays")&&function(e,t,n){try{if(window.__terpli_patches.fetchSimple)return;if("function"!=typeof window.fetch)return;const r=window.fetch,i=function(i,o){try{const r=o||{},a=null!=i?i.toString():"";if(e&&a.search(e)>=0){const e=T(r.body),i={url:a,method:r.method||"GET",headers:r.headers||{},body:e};p(t?t(i):a,n?n(i):i,"Fetch")}}catch(e){console.debug("[Terpli Fetch] Error:",e)}return r.apply(this,arguments)};window.fetch=i,window.__terpli_patches.fetchSimple=!0,y("analytics")&&console.log("[Terpli Analytics] Initialized for Fetch",e)}catch(e){console.debug("[Terpli Analytics] Error at fetchInitialization",e)}}("api.dispenseapp.com/track",e=>e?.body?.event||"unknown",e=>e?.body?.data||e?.body||e)}catch(e){console.debug("[Terpli Analytics] Error at initialize ",e)}}}function R(t,r){const o=function(){const e="terpli";let t=(()=>{try{return S(e).uid||null}catch(e){return console.error("[Terpli Plugin] Error getting UUID from local storage",e),null}})();t||(t=_(),(t=>{try{const n=S(e);n.uid=t,A(e,n)}catch(e){console.error("[Terpli Plugin] Error setting UUID in local storage",e)}})(t));return t}(),a=_();let l=t?.at(0);this.uuid=()=>o,this.callbackId=()=>a,this.selectedLocation=()=>l,this.updateLocation=()=>{try{let e=r?t[0]:b();if(!l||e?.retail_token!==l?.retail_token)return l=e,console.debug("[Terpli Shared] Set to",JSON.stringify(l)),!0}catch(e){throw new Error("Location not found",e)}return!1};const s=Object.freeze({prod:Object.freeze({url:"https://zt6taxfu2g.execute-api.us-west-1.amazonaws.com/prod/",key:"2t7qHRHOaN2bvRLLZsfnJ81JAuhqVau86xzCqiFW",pixelUrl:"https://lab.alpineiq.com/p/"}),dev:Object.freeze({url:"https://7udvxg15wi.execute-api.us-west-1.amazonaws.com/dev/",key:"p7Qnf9y7OOaMXlOkmsjYp4l6hOc7zDLE11jLrw31",pixelUrl:"https://lab.aiqstaging.net/p
1/"}),test:Object.freeze({url:"https://me82k1m9h7.execute-api.us-west-1.amazonaws.com/test/",key:"unPZKZIpRV1ll0ht2v0AJ6TwL4wXoSnp4Rmkvgox",pixelUrl:"https://lab.aiqstaging.net/p/"}),gcp:Object.freeze({url:"https://lab.alpineiq.com/api/v1/terpli/",key:"",pixelUrl:"https://lab.aiqstaging.net/p/"})});this.getApiConfig=()=>s;const c=(e=!1)=>y("gcp")?s.gcp:y("dev")?s.dev:y("test")?s.test:l?.[e?"analytics_production":"script_production"]?s.prod:s.dev;function d(e){return e.normalize("NFD").replace(/[\u0300-\u036f]+/g,"").replace(/\W+/g,"_").replace(/^_+|_+$/g,"").toLowerCase()}function u(e,t,n){try{const r=t||(e?document.querySelector(e):null);if(!r)return;const i=e=>{["class","style"].includes(e.attributeName)||"string"==typeof e.target.className&&e.target.className.indexOf("swiper")>=0||(n?n(e):p())};r.removeEventListener("click",i),r.addEventListener("click",i);const o=new MutationObserver(e=>{for(let t of e)"childList"!==t.type&&"attributes"!==t.type&&"characterData"!==t.type||i(t)});return o.observe(r,{childList:!0,subtree:!0,attributes:!0,characterData:!0,characterDataOldValue:!0}),o}catch(e){console.error("[Terpli Plugin] Listening Error",e)}}function p(){const t=n?.updateLocation();t&&e?.updatePlugin()}function m(e){const n=e+document.location.search;if(t.sort((e,t)=>{const n=e.retailId.includes("_CHAIN"),r=t.retailId.includes("_CHAIN");return n&&!r?1:!n&&r?-1:t.retailId.length-e.retailId.length}),y("location")&&console.log(`[Terpli Plugin] Searching for a location matching ${n}`),n.includes("nycbud.com/events"))return null;for(const e of t){const t=e.retail_location.map(e=>e.replace("(floating)",""));for(const r of t)if(n.search(r)>=0||n.includes(r))return y("location")&&console.log(`[Terpli Plugin] Location match found for [${e.retailId}]: ${r}`),e.location_url=n,e}if(0==t.length)return void(y("location")&&console.log(`[Terpli Plugin] There is no location registered for ${e}`));const r=t[t.length-1];return r.location_url=n,r.retail_status="disabled",r}this.apiUrl=()=>c().url,this.pixelUrl=()=>c().pixelUrl,this.apiKey=()=>c().key,this.analyticsApiUrl=()=>c(!0).url,this.analyticsApiKey=()=>c(!0).key,this.appUrl=()=>function(e){const t={gcp:"https://dev.terpli.io",dev:"https://staging.terpli.io",mock:"https://mock.terpli.io",prod:"https://app.terpli.io"};for(const[e,n]of Object.entries(t))if(y(e))return n;return e?t.prod:t.dev}(l?.app_production),this.assetsURL="https://assets.terpli.io",this.initialize=()=>{try{l=r?t[0]:b(),"disabled"===l?.retail_status&&e?.hidePlugin(),function(){void 0!==i&&(clearInterval(i),i=void 0);const t=()=>{const t=x("terpli_session"),n=f("dispense_session");if(n)t!==n&&(L("terpli_session",n),L("terpli_session_updated",Date.now()),P("terpli_message_viewed"),postMessageToIframe("update_session="+n),console.debug("[Terpli Plugin] Session has updated: ",n));else{e?.isOpened()&&L("terpli_session_updated",Date.now());const n=Number(x("terpli_session_updated",0)),r=(Date.now()-n)/6e4;if(!t||r>=20){const e=_();L("terpli_session",e),L("terpli_session_updated",Date.now()),P("terpli_message_viewed"),postMessageToIframe("update_session="+e),console.debug("[Terpli Plugin] Session has updated: ",e)}}};t(),i=setInterval(t,6e4)}(),async function(){const t=['div[class*="storeListItem_button"]','button[class*="store-menu-list-item_button"]'],n=['[class*="currentStore_storeTitle"]','[class*="current-store_storeTitle"]'],r=['div[class*="store-selector"]','div[class*="currentStore_select"]','div[class*="current-store_select"]'],i=[".elementor-widget-wrap.elementor-element-populated",'div[aria-label*="Select store"]',".joint-dutchie-store-selector-app",".joint-jane-store-selector-app"];function o(e){return e.map(e=>document.querySelector(e)).filter(Boolean)}function a(){let t=o(n)[0];if(t){let n=d(t.innerText);if(y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] Found selectedElem:",t,"; Normalized text:",n),n)try{let t=m(`${document.location.host}/${n}`);y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] Matched location by URL:",`${document.location.host}/${n}`,"; Got:",t?.retailId),t?.retail_token!==l?.retail_token?(y("rrh")&&(console.debug("[Terpli RRH][setupToCurrentStore] Changing location from",l?.retailId,"to",t?.retailId),console.debug("[Terpli RRH][setupToCurrentStore] Calling terpliPlugin.updatePlugin because location changed")),l=t,e?.updatePlugin()):y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] Selected location is the same, not updating plugin.")}catch(e){y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] Error matching location, retrying in 2s",e),setTimeout(()=>{s(),a()},2e3)}else y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] Normalized selectedText is falsy, not proceeding.")}else y("rrh")&&console.debug("[Terpli RRH][setupToCurrentStore] No current store element found; calling defaultOnChange()"),p()}function s(){let e=o(r)[0];e?(y("rrh")&&console.debug("[Terpli RRH][attachToStoreSelector] Found storeSelector:",e,"- Setting listener for store selector UI."),u(null,e,g)):y("rrh")&&console.debug("[Terpli RRH][attachToStoreSelector] N
1o storeSelector element found."),g()}function c(){y("rrh")&&console.debug("[Terpli RRH][listenStoreListItem] Store list item clicked or changed. Re-evaluating selected store and attaching to store selector..."),setTimeout(()=>{a(),s()},1e3)}function g(){setTimeout(()=>{let e=t.flatMap(e=>[...document.querySelectorAll(e)]);y("rrh")&&console.debug("[Terpli RRH][listenStoreSelector] Attaching listeners to",e.length,"store list items.");for(const t of e)u(null,t,c)},1e3)}async function h(){let e=5;for(let t=0;t<e;t++){y("rrh")&&console.debug(`[Terpli RRH][observeLocationChanges] Attempt ${t+1} of ${e}: Looking for observer target elements...`);let n=o(i).find(e=>e?.innerText?.includes("SELECT\n\nSTORE:"))||o(i).find(e=>e?.innerText?.length>0);if(n){y("rrh")&&console.debug("[Terpli RRH][observeLocationChanges] Found observer target node:",n),u(null,n,()=>{y("rrh")&&console.debug("[Terpli RRH][observeLocationChanges] Target node mutated (click/add/remove). Resetting listeners and store logic."),s(),a()}),setTimeout(()=>{y("rrh")&&console.debug("[Terpli RRH][observeLocationChanges] Initial setup after observer found; running attachToStoreSelector and setupToCurrentStore after delay."),s(),a()},2e3);break}y("rrh")&&console.debug("[Terpli RRH][observeLocationChanges] Observer target node not found, retrying..."),await new Promise(e=>setTimeout(e,1e3))}}y("rrh")&&console.debug("[Terpli RRH] Starting observeLocationChanges (RRH integration location listeners)...");h()}();const n=e=>e.some(e=>document.location.href.search(e)>=0);let o={"noxx.com":["#msoLocationDropdown option:checked","#currently-shopping option:checked"],"shangriladispensaries.com":['script[type="application/ld+json"]'],"mm-ma.org":["span#locationName_Drop","div#med-or-rec-container"],"ethoscannabis.com":['span[class*="retailer_name"]'],"medscafe.com":['div[class*="storelocator_store_locator__container"]'],"fardotter.com":['div[class*="LocationInfo"]',"span.retailer_name"],"culturecannabisclub.com":["#currently-shopping",'header[class*="Wrapper"]'],"pureoptions.com":['span[class*="retailer_name"]'],"storycannabis.com":[".put_lb_retailer_name"],"storycannabisla.com":[".store_name"],"deeprootsharvest.com":[".range-location-nav-select-wrapper:first-child > select",'div[class*="storeSwitcher"]'],"stashdispensaries.com":['span[class*="storelocator_method"]'],"thesocialcannabis.com":[".location-selector-toggle-name"],"remedymaryland.com":['span[class*="retailer_name"]'],"thesourcenv.com":[".range-location-nav-select-wrapper:first-child > select",'div[class*="storeSwitcher"]'],"kaleafa.com":["span.locname"],"nueracannabis.com":['[class*="storeName"]'],"thekindgoods.com":["#locationName_Drop"]};if("RRH"===l?.ecom_platform?.toUpperCase()&&l?.retail_domain?.length>0&&(Array.isArray(o[l?.retail_domain])?o[l?.retail_domain].push('div[class*="StoreTitle"]'):o[l?.retail_domain]=['div[class*="StoreTitle"]']),Object.entries(o).forEach(([e,t])=>{n([e])&&t.forEach(e=>u(e))}),u('div[class*="CartContainer"]',null,()=>{let t=document.querySelector('div[class*="CartContainer"]');"none"!==window.getComputedStyle(t)["box-shadow"]?e?.hidePlugin():e?.showPlugin()}),n(["starbudscolorado.com"])){let e=document.querySelector("#lake-pop")?.closest("div.elementor-widget-wrap");e&&u(null,e)}if(n(["propercannabis.com"])){let e=document.querySelector('svg[data-icon-name="wp-location_pin_thin"]')?.closest("div.dmRespColsWrapper");e&&u(null,e)}n(["capewaycannabis.com"])&&u('div[title="Accessibility Menu"]',null,()=>{let t=document.querySelector('div[title="Accessibility Menu"]');t?.classList.contains("uon")?e?.hidePlugin():e?.showPlugin()})}catch(e){console.debug("[Terpli Shared] Error at initialize ",e)}},this.getValidIframe=()=>{const e=["[src*='iheartjane.com']","[src*='dutchie.com']","#dutchie--embed__iframe","[src*='leafly.com']","#wm-store-embed"];for(const t of e){let e=document;if(t.includes("wm-store-embed")){const t=document.querySelector("wm-store-embed");e=t?.shadowRoot||e}const n=[...e.querySelectorAll(`iframe${t}`)].find(e=>"terpli_app"!==e.id);if(n)return n}return null};const g={"noxx.com":{domainPrefix:"noxx.com/",custom:()=>{const e=document.querySelector("#msoLocationDropdown option:checked"),t=document.querySelector("#currently-shopping option:checked"),n=e?.textContent?.trim()||t?.value?.replace(/^.*\/location\//,"").replace(/\/$/,"").trim()||"";return n?d(n):null},selectors:["#msoLocationDropdown option:checked","#currently-shopping option:checked"],transform:d},"greennv.com":{domainPrefix:"greennv.com/",selectors:['div[class*="StoreTitle"]'],transform:d},"thesourcenv.com":{domainPrefix:"thesourcenv.com/",selectors:[".range-location-nav-select-wrapper:first-child > select",'div[class*="storeSwitcher"]'],transform:e=>d(e.replace("My store","").replace("The Source + ","")),custom:()=>{const e=[...document.querySelectorAll(".range-location-nav-select-wrapper:first-child > select")].at(-1)?.selectedOptions?.[0]?.text;return e?d(e):null}},"ftemo.com":{domainPrefix:"ftemo.com/",selectors:['div[class*="StoreTitle"]'],transform:d},"refinemi.com":{domainPrefix:"refinemi.com/",selectors:['div[class*="StoreTitle"]'],transform:d},"mm-ma.org":{domainPrefix:"mm-ma.org/",selectors:["span#locationName_Drop",'div#med-or-rec-container>div[class*="active"]'],transform:d},"ethoscannabis.com":{domainPrefix:"ethoscannabis.com/",custom:()=>{const e=S("leafbridge_recent_location")?.retailer_name,t=S("leafbridge_wizard_data")?.menu_type;return e&&t?d(`${e}_${t}`):null},selectors:['span[class*="retailer_name"]'],transform:d},"shangriladispensaries.com":{domainPrefix:"shangriladispensaries.com/",custom:()=>{const e=e=>{if(!e)return null;const t=e.toUpperCase().replace("YOU ARE SHOPPING AT SHANGRI-LA:","").replace("YOU'RE SHOPPING AT SHANGRI-LA - ","").replace("CHANGE STORE","").trim();return t.length>0?t:null},t=document.querySelector("header > div")?.shadowRoot||document,n=e(t.querySelector('div[class*="header__HeaderBottom"]')?.innerText),r=e(document.querySelector('span[id*="els-current-location"]')?.innerText),i=n||r;if(i)return d(i);const o=T(document.querySelector('script[type="application/ld+json"]')?.innerText);
1return o?.name?d(o?.name):null},transform:d},"medscafe.com":{domainPrefix:"medscafe.com/",custom:()=>{const e=Object.keys(localStorage).find(e=>e.indexOf("@gapcommerce")>=0),t=S(e)?.state?.treez_store_name;return t?d(t):null},selectors:['span[class*="storelocator_method"]'],transform:d},"fardotter.com":{domainPrefix:"fardotter.com/",custom:()=>{const e=(document.querySelector('div[class*="LocationInfo"]')||document.querySelector("span.retailer_name"))?.innerText;return e?d((e=>{if(!e)return null;const t=e.toUpperCase().replace("YOU'RE SHOPPING AT:","").replace("❯","").trim();return t.length>0?t:null})(e)):null},transform:d},"culturecannabisclub.com":{domainPrefix:"culturecannabisclub.com/",custom:()=>{const e=document.querySelector("#currently-shopping")||Array.from(document.querySelector('header[class*="Wrapper"]')?.children??[]).find(e=>e.shadowRoot)?.shadowRoot.querySelector("select");if(e){const t=e.options[e.selectedIndex].textContent.trim();if(t)return d(t)}const t=f("selected_location");return t?d(t):null},transform:d},"pureoptions.com":{domainPrefix:"pureoptions.com/",custom:()=>{const e=S("leafbridge_recent_location")?.retailer_name,t=S("leafbridge_wizard_data")?.menu_type;return e&&t?d(`${e}_${t}`):null},selectors:['span[class*="retailer_name"]'],transform:d},"storycannabis.com":{domainPrefix:"storycannabis.com/",custom:()=>{const e=S("leafbridge_recent_location")?.retailer_name,t=S("leafbridge_wizard_data")?.menu_type;return e&&t?d(`${e}_${t}`):null},selectors:["header .ds-dropdown > label > span"],transform:d},"storycannabisla.com":{domainPrefix:"storycannabisla.com/",selectors:[".store_name"],transform:d},"deeprootsharvest.com":{domainPrefix:"deeprootsharvest.com/",selectors:[".range-location-nav-select-wrapper:first-child > select",'div[class*="storeSwitcher"]'],transform:e=>d(e.replace("My store","").replace("Deep Roots Harvest - ","")),custom:()=>{const e=[...document.querySelectorAll(".range-location-nav-select-wrapper:first-child > select")].at(-1)?.selectedOptions?.[0]?.text;return e?d(e):null}},"stashdispensaries.com":{domainPrefix:"stashdispensaries.com/",selectors:['span[class*="storelocator_method"]'],transform:d},"propercannabis.com":{domainPrefix:"propercannabis.com/",custom:()=>window.Parameters&&window.Parameters.InitialPageAlias?d(window.Parameters.InitialPageAlias):null,transform:e=>d(e)},"starbudscolorado.com":{domainPrefix:"starbudscolorado.com/",custom:()=>{let e=document.querySelector("#lake-pop")?.closest("div.elementor-widget-wrap")?.innerText;return e?d(e):null},transform:e=>d(e)},"thesocialcannabis.com":{domainPrefix:"thesocialcannabis.com/",custom:()=>{let e=document.querySelectorAll(".location-selector-toggle-name");return e.length>0?d(e[e.length-1].innerText):null},transform:e=>d(e)},"remedymaryland.com":{domainPrefix:"remedymaryland.com/",custom:()=>{let e=document.querySelector('span[class*="retailer_name"]');return e?d(e.innerText):null},transform:e=>d(e)},"kaleafa.com":{domainPrefix:"kaleafa.com/",custom:()=>{let e=document.querySelector("span.locname");return e?d(e.innerText+document.location.pathname):null},transform:e=>d(e)},"happytimescannabis.com":{domainPrefix:"happytimescannabis.com/",selectors:['div[class*="StoreTitle"]'],transform:e=>d(e)?.replace("happy_times_","")},"nueracannabis.com":{domainPrefix:"nueracannabis.com/",selectors:['[class*="storeName"]'],transform:e=>d(e)},"thekindgoods.com":{domainPrefix:"thekindgoods.com/",selectors:["#locationName_Drop"],transform:e=>d(e)},"terrabis.co":{domainPrefix:"terrabis.co/",selectors:['div[class*="StoreTitle"]'],transform:d}};function h(e){const t=e.custom?e.custom():null;return t?m(e.domainPrefix+t):function({domainPrefix:e,selectors:t,transform:n=e=>e,fallback:r=()=>m(document.location.origin+document.location.pathname)}){const i=t.map(e=>{const t=document.querySelector(e);return t?t.innerText:""}).filter(e=>""!==e.trim());if(i.length>0)return m(e+n(i.join("_")));return r()}({domainPrefix:e.domainPrefix,selectors:e.selectors||[],transform:e.transform||(e=>e),fallback:()=>m(document.location.origin+document.location.pathname)})}function b(){const e=document.location.href,t=Object.keys(g);for(const n of t)if(e.search(n)>=0)return h(g[n]);return m(document.location.origin+document.location.pathname)}}!function(){try{if(window.dataLayer=window.dataLayer||[],!Array.isArray(window.dataLayer))return;for(const e of window.dataLayer)u(e);if(window.__terpli_patches.dataLayerPush)return;const e=window.dataLayer.push;if("function"!=typeof e)return;window.dataLayer.push=function(...t){if(d)console.warn("[Terpli Analytics] Reentrant dataLayer.push() detected; breaking 3rd-party recursion cycle.",{args:t});else{d=!0;try{try{t.forEach(u)}catch(e){console.debug("[Terpli Analytics] early dataLayer push wrap error",e)}return e.apply(this,t)}finally{d=!1}}},window.__terpli_patches.dataLayerPush=!0,window.__terpli_patches.dataLayerEarlyInstalled=!0,y("analytics")&&console.log("[Terpli Analytics] Early dataLayer interceptor installed",{existingDrained:window.dataLayer.length})}catch(e){console.debug("[Terpli Analytics] installEarlyDataLayerInterceptor error",e)}}(),window.postMessageToIframe=e=>{const t=document.getElementById("terpli_app");t?t.contentWindow.postMessage(e,n.appUrl()):console.debug("[Terpli Plugin] Iframe not found")},async function(){const e=function(){let e=document.currentScript.getAttribute("data-retailer");
1return e?T(atob(e)):null}();if(e)await g([e],!0);else{const e=(document.currentScript.getAttribute("data-env")||"PRD").toUpperCase();n=new R([{app_production:"PRD"===e,script_production:"PRD"===e,analytics_production:"PRD"===e}]),await async function(){try{const e=await fetch(`${n.apiUrl()}retail/all?retailURL=${document.location.href}`,{headers:{"x-api-key":n.apiKey()}}),t=await e.json();await g(t.retailerList)}catch(e){console.debug("[Terpli Initialization]",e)}}()}}()})()}()

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.