import{a as e,n as t,o as n,r,t as i}from"./rolldown-runtime-Bhmf7a9N.js";import{d as a,f as o}from"./analytics-p_StUAKk.js";import{i as s,n as c}from"./tslib.es6-CQzwG08B.js";var l;(function(e){e.MessageOpened=`in-app:message-opened`,e.MessageDismissed=`in-app:message-dismissed`,e.MessageError=`in-app:message-error`,e.MessageAction=`in-app:message-action`})(l||={});var ee=Object.values(l),u;(function(e){e.Metric=`Report Delivery Event`,e.Content=`Report Content Event`,e.Opened=`opened`,e.Clicked=`clicked`,e.ViewedContent=`viewed_content`,e.ClickedContent=`clicked_content`})(u||={});var te=`in_app_content`;function ne(e,t){return new CustomEvent(e,{detail:t})}function re(e){switch(e){case`messageShown`:return l.MessageOpened;case`messageDismissed`:return l.MessageDismissed;case`messageError`:return l.MessageError;case`messageAction`:return l.MessageAction;default:return``}}var d,ie=t((()=>{d=class{on(e,t){var n=this[e];n?n.push(t):this[e]=[t]}dispatch(e,t){var n=this[e];n&&n.forEach(e=>e(t))}}}));function f(e){Z.config.logging&&console.log(`Gist: ${e}`)}var p=t((()=>{Q()}));function ae(e){sessionStorage.setItem(v,e)}function m(e,t,n=null){var r=n;r||(r=new Date,r.setDate(r.getDate()+se));let i={value:t,expiry:r};_().setItem(e,JSON.stringify(i))}function h(e){let t=_().getItem(e);if(!t)return null;let n=JSON.parse(t);return new Date().getTime()>new Date(n.expiry).getTime()?(g(e),null):n.value}function g(e){_().removeItem(e)}function oe(){let e=sessionStorage.getItem(v);return e===null?(sessionStorage.setItem(v,`true`),!0):e===`true`}function _(){return oe()?localStorage:sessionStorage}var se,v,y=t((()=>{se=365,v=`gist.web.isPersistingSession`})),b,x,S,C,w=t((()=>{y(),p(),b=`gist.web.userQueueVersion`,x=`gist.web.userQueueUseSSE`,S=`gist.web.activeSSEConnection`,C={RENDERER_HOST:`https://code.gist.build`,ENGINE_API_ENDPOINT:{prod:`https://engine.api.gist.build`,dev:`https://engine.api.dev.gist.build`,local:`http://engine.api.local.gist.build:82`},GIST_QUEUE_API_ENDPOINT:{prod:`https://gist-queue-consumer-api.cloud.gist.build`,dev:`https://gist-queue-consumer-api.cloud.dev.gist.build`,local:`http://api.local.gist.build:86`},GIST_QUEUE_V3_API_ENDPOINT:{prod:`https://consumer.cloud.gist.build`,dev:`https://consumer.cloud.dev.gist.build`,local:`http://api.local.gist.build:86`},GIST_QUEUE_REALTIME_API_ENDPOINT:{prod:`https://realtime.cloud.gist.build`,dev:`https://realtime.cloud.dev.gist.build`,local:`http://api.local.gist.build:3000`},GIST_VIEW_ENDPOINT:{prod:`https://renderer.gist.build/3.0`,dev:`https://renderer.gist.build/3.0`,local:`http://app.local.gist.build:8080/web`},getQueueAPIVersion:function(){return h(b)??`2`},setQueueAPIVersion:function(e){m(b,e,new Date(new Date().getTime()+18e5)),f(`Set user queue version to "${e}"`)},useSSE:function(){return h(x)??!1},setUseSSEFlag:function(e){m(x,e,new Date(new Date().getTime()+6e4)),f(`Set user uses SSE to "${e}"`)},setActiveSSEConnection:function(){m(S,!0,new Date(new Date().getTime()+31e3))},hasActiveSSEConnection:function(){return h(S)??!1}}}));function T(){let e=C.getQueueAPIVersion()===`3`?C.GIST_QUEUE_V3_API_ENDPOINT[Z.config.env]:C.GIST_QUEUE_API_ENDPOINT[Z.config.env],t={"X-CIO-Site-Id":Z.config.siteId,"X-CIO-Client-Platform":`web`},n=Se();n!=null&&(t[`X-Gist-Encoded-User-Token`]=n);async function r(n,r={}){let i=e+n,a=new AbortController,o=setTimeout(()=>a.abort(),5e3);try{let e=await fetch(i,{method:r.method||`GET`,headers:{...t,...r.headers||{}},body:r.method&&r.method.toUpperCase()!==`GET`?r.body:void 0,signal:a.signal});clearTimeout(o);let n=e.headers.get(`content-type`)?.includes(`application/json`)?await e.json():await e.text(),s=Object.fromEntries(e.headers.entries());if(e.status<200||e.status>=400)throw{response:{status:e.status,data:n,headers:s}};return{status:e.status,headers:s,data:n}}catch(e){throw clearTimeout(o),e.response||={status:0,data:e.message||`Unknown error`},e}}return r.post=(e,t={},n={})=>r(e,{method:`POST`,body:JSON.stringify(t),headers:{"Content-Type":`application/json`,...n.headers||{}}}),r}var ce=t((()=>{Q(),w(),L()}));function le(){return h(E)===null?navigator.language:h(E)}function ue(e){m(E,e),f(`Set user locate to "${e}"`)}var E,de=t((()=>{p(),y(),E=`gist.web.userLocale`}));async function fe(){var e;try{if(!O){O=!0;var t={"X-Gist-User-Anonymous":j(),"Content-Language":le()};if(C.getQueueAPIVersion()===`3`)e=await T().post(`/api/v3/users?sessionId=${he()}`,{},{headers:t});else{var n=new Date().getTime();e=await T().post(`/api/v2/users?timestamp=${n}`,{},{headers:t})}}}catch(t){t.response?e=t.response:f(`Error getting user queue: ${t}`)}finally{O=!1,ge(e),pe(e),me(e)}return e}function pe(e){if(e&&e.headers){var t=e.headers[`x-cio-queue-version`];t&&C.setQueueAPIVersion(t)}}function me(e){let t=e?.headers?.[`x-cio-use-sse`]?.toLowerCase()===`true`;C.setUseSSEFlag(t)}function he(){var e=h(A);return e||=o(),m(A,e,new Date(new Date().getTime()+18e5)),e}function ge(e){if(e&&e.headers){var t=e.headers[`x-gist-queue-polling-interval`];t&&t>0&&(D=t)}var n=new Date(new Date().getTime()+D*1e3);m(k,D,n)}function _e(){var e=Se();return e===null?(f(`No user token available for SSE endpoint.`),null):C.GIST_QUEUE_REALTIME_API_ENDPOINT[Z.config.env]+`/api/v3/sse?userToken=${e}&siteId=${Z.config.siteId}&sessionId=${he()}`}var D,O,k,A,ve=t((()=>{Q(),ce(),y(),p(),L(),de(),w(),a(),D=600,O=!1,k=`gist.web.userQueueNextPullCheck`,A=`gist.web.sessionId`}));function j(){return h(F)!==null}function M(){return h(P)}function ye(e,t){t===void 0&&(t=new Date,t.setDate(t.getDate()+Te)),m(P,e,t),j()&&(g(k),g(F)),f(`Set user token "${e}" with expiry date set to ${t}`)}function be(){if(M()===null){var e=h(I);e??(e=o(),m(I,e),f(`Set guest user token "${e}" with expiry date set to 1 year from today`)),m(P,e),m(F,!0),f(`Using anonymous session with token: "${e}"`)}}function xe(){return j()}async function N(){var e=M();return e===null?null:await we(e)}function Se(){var e=M();return e===null?null:btoa(e)}function Ce(){g(P),f(`Cleared user token`)}async function we(e){let t=new TextEncoder().encode(e),n=await crypto.subtle.digest(`SHA-256`,t);return Array.from(new Uint8Array(n)).map(e=>e.toString(16).padStart(2,`0`)).join(``)}var P,F,I,Te,L=t((()=>{a(),p(),y(),ve(),P=`gist.web.userToken`,F=`gist.web.usingGuestUserToken`,I=`gist.web.guestUserToken`,Te=30}));async function Ee(e){try{return await T().post(`/api/v1/logs/queue/${e}`)}catch(e){return e.response}}async function De(e){try{return await T().post(`/api/v1/logs/message/${e}`)}catch(e){return e.response}}var Oe=t((()=>{ce()}));function R(e){let t={isEmbedded:!1,elementId:``,hasRouteRule:!1,routeRule:``,position:``,hasPosition:!1,shouldScale:!1,campaignId:null,messageWidth:414,overlayColor:`#00000033`,persistent:!1,exitClick:!1,hasCustomWidth:!1},n=e?.properties?.gist;return n?{isEmbedded:!!n.elementId,elementId:n.elementId||``,hasRouteRule:!!n.routeRuleWeb,routeRule:n.routeRuleWeb||``,position:n.position||``,hasPosition:!!n.position,shouldScale:!!n.scale,campaignId:n.campaignId??null,messageWidth:n.messageWidth>0?n.messageWidth:t.messageWidth,hasCustomWidth:n.messageWidth>0,overlayColor:n.overlayColor||t.overlayColor,persistent:!!n.persistent,exitClick:!!n.exitClick}:t}var z=t((()=>{}));function ke(e,t,n){var r=800;return t.messageWidth>r&&(r=t.messageWidth),`
    <div id="gist-embed">
        <style>
            #x-gist-floating-top, #x-gist-floating-top-left, #x-gist-floating-top-right {
                position: fixed;
                top: 0px;
                z-index: 1000000;
            }
            #x-gist-floating-bottom, #x-gist-floating-bottom-left, #x-gist-floating-bottom-right {
                position: fixed;
                bottom: 0px;
                z-index: 1000000;
            }
            #x-gist-bottom, #x-gist-top, #x-gist-floating-top, #x-gist-floating-bottom {
                left: 50%;
                transform: translate(-50%, 0%);
            }
            #x-gist-floating-top-right, #x-gist-floating-bottom-right {
                right: 0px;
            }
            #gist-embed {
                position: relative;
                height: 100%;
                width: 100%;
            }
            #gist-embed-container {
                position: relative;
                height: 100%;
                width: 100%;
            }
            #gist-embed-container .gist-frame {
                height: 100%;
                width: 100%;
                border: none;
            }
            #x-gist-top.${e},
            #x-gist-bottom.${e},
            #x-gist-floating-top.${e},
            #x-gist-floating-bottom.${e},
            #x-gist-floating-top-left.${e},
            #x-gist-floating-top-right.${e},
            #x-gist-floating-bottom-left.${e},
            #x-gist-floating-bottom-right.${e} {
                transition: height 0.1s ease-in-out;
            }
            @media (max-width: ${r}px) {
                #x-gist-top.${e},
                #x-gist-bottom.${e},
                #x-gist-floating-top.${e},
                #x-gist-floating-bottom.${e},
                #x-gist-floating-top-left.${e},
                #x-gist-floating-top-right.${e},
                #x-gist-floating-bottom-left.${e},
                #x-gist-floating-bottom-right.${e} {
                    width: 100% !important;
                }
            }
        </style>
        <div id="gist-embed-container">
            <iframe id="${e}" class="gist-frame" src="${n}"></iframe>
        </div>
    </div>`}var Ae=t((()=>{}));function je(e,t,n){var r=600;return t.messageWidth>r&&(r=t.messageWidth),`
    <div id="gist-embed-message">
        <style>
            #gist-overlay.gist-background {
                position: fixed;
                z-index: 9999999998;
                left: 0;
                top: 0;
                width: 100%;
                height: 100%;
                background-color: ${t.overlayColor};
                visibility: hidden;
            }
            #gist-overlay.gist-background.gist-visible {
                visibility: visible;
            }
            .gist-message {
                width: ${t.messageWidth}px;
                position: absolute;
                border: none;
                opacity: 0;
                transition: opacity 0.3s ease-in-out, height 0.1s ease-in-out;
                z-index: 9999999999;
                left: 50%;
                transform: translateX(-50%);
            }
            .gist-message.gist-visible {
                opacity: 1;
                pointer-events: auto;
            }
            .gist-message.gist-center {
                transform: translate(-50%, -50%);
                top: 50%;
            }
            .gist-message.gist-bottom {
                bottom: 0;
            }
            .gist-message.gist-top {
                top: 0;
            }
            @media (max-width: ${r}px) {
                .gist-message {
                    width: 100%;
                }
            }
        </style>
        <div id="gist-overlay" class="gist-background">
            <iframe id="${e}" class="gist-message" src="${n}"></iframe>
        </div>
    </div>`}var Me=t((()=>{}));function Ne(e){let t=document.createElement(`div`);switch(t.id=e,e){case`x-gist-top`:document.body.insertBefore(t,document.body.firstChild);break;default:document.body.insertAdjacentElement(`beforeend`,t);break}f(`Top & bottom elements injected into page`)}var B,Pe=t((()=>{p(),B=[`x-gist-top`,`x-gist-floating-top`,`x-gist-bottom`,`x-gist-floating-bottom`,`x-gist-floating-bottom-left`,`x-gist-floating-bottom-right`,`x-gist-floating-top-left`,`x-gist-floating-top-right`]}));function Fe(e){var t=H(e);return!!(t&&t.classList.contains(`gist-visible`))}function Ie(e,t,n,r){var i=H(e);if(i){var a=V(n.instanceId);i.classList.add(a);var o=R(n),s=o.messageWidth+`px`;$e.includes(e)&&!o.hasCustomWidth&&(s=`100%`),B.includes(e)&&(i.style.width=s),ze(e)||(i.style.height=`0px`),i.innerHTML=Xe(t,n,o),He(a,r)}else f(`Message could not be embedded, elementId ${e} not found.`)}function Le(e){var t=H(e);t&&t.classList.add(`gist-visible`)}function Re(e){var t=H(e);t&&(t.classList.remove(`gist-visible`),t.style.removeProperty(`height`),t.innerHTML=``)}function ze(e){var t=H(e);if(t)return t.style&&t.style.height&&t.style.height!=`0px`}function Be(e,t){var n=H(e.elementId?e.elementId:V(e.instanceId));if(n){var r=n.style;if(t.height>0)if(t.height>window.innerHeight){var i=1-(t.height/window.innerHeight-1);e.shouldScale&&i>=.4?(r.height=`${t.height}px`,r.transform=`translateX(-50%) translateY(-50%) scale(${i})`):r.height=`${window.innerHeight}px`}else r.height=`${t.height}px`}}function Ve(e,t,n){document.body.insertAdjacentHTML(`afterbegin`,Ze(e,t)),He(V(t.instanceId),n)}function He(e,t){let n=document.getElementById(e);n&&(n.onload=function(){Ue(e,t)})}function Ue(e,t){let n=document.getElementById(e);n&&n.contentWindow&&n.contentWindow.postMessage({options:t},`*`)}function We(e){var t=R(e),n=document.querySelector(`#gist-overlay`);if(n){n.classList.add(`gist-visible`);var r=document.querySelector(`.gist-message`);e.position?r.classList.add(`gist-`+e.position):r.classList.add(`gist-center`),setTimeout(Ye,100),t.exitClick&&setTimeout(()=>Ge(e.instanceId),1e3)}else qe()}function Ge(e){var t=document.querySelector(`#gist-overlay`);t&&t.addEventListener(`click`,function(){Z.dismissMessage(e)})}async function Ke(){var e=document.querySelector(`.gist-message`);e&&(e.classList.remove(`gist-visible`),await Qe(300)),qe()}function qe(){var e=document.querySelector(`#gist-embed-message`);e&&e.parentNode.removeChild(e)}function Je(e,t){var n=H(V(e));n&&(n.title=t)}function V(e){return`gist-${e}`}function Ye(){var e=document.querySelector(`.gist-message`);e&&e.classList.add(`gist-visible`)}function Xe(e,t,n){return ke(V(t.instanceId),n,e)}function Ze(e,t){var n=R(t);return je(V(t.instanceId),n,e)}function H(e){try{return document.querySelector(`#${e}`)||null}catch{return null}}var Qe,$e,et=t((()=>{Q(),p(),z(),Ae(),Me(),Pe(),Qe=e=>new Promise(t=>setTimeout(t,e)),$e=[`x-gist-top`,`x-gist-bottom`,`x-gist-floating-top`,`x-gist-floating-bottom`]}));async function tt(e){let t=await W();if(!t)return;let n=new Date;n.setDate(n.getDate()+ut),m(t,e.filter(U),n)}async function nt(){let e=await W();return e?(h(e)??[]).filter(t=>{let{broadcast:n}=t.properties.gist,r=h(ct(e,t.queueId))??!0,i=h(st(e,t.queueId))||0,a=n.frequency.count===0;return r&&(a||i<n.frequency.count)}):[]}async function rt(e){f(`Marking broadcast ${e} as seen.`);let t=await W();if(!t)return;let n=await at(t,e);if(!n)return;let{broadcast:r}=n.properties.gist,i=st(t,e),a=ct(t,e),o=h(i)||0;if(m(i,o+1),r.frequency.count===1)m(a,!1),f(`Marked broadcast ${e} as seen.`);else{let t=new Date;t.setSeconds(t.getSeconds()+r.frequency.delay),m(a,!1,t),f(`Marked broadcast ${e} as seen, broadcast was seen ${o+1} times, next show date is ${t}.`)}}async function it(e){f(`Marking broadcast ${e} as dismissed.`);let t=await W();if(!t)return;let n=await at(t,e);if(!n)return;let{broadcast:r}=n.properties.gist;if(r.frequency.ignoreDismiss===!0){f(`Broadcast ${e} is set to ignore dismiss.`);return}m(ct(t,e),!1),f(`Marked broadcast ${e} as dismissed and will not show again.`)}async function at(e,t){return h(e).find(e=>e.queueId===t)}function U(e){return e.properties&&e.properties.gist&&e.properties.gist.broadcast}function ot(e){if(!U(e))return!1;let{broadcast:t}=e.properties.gist;return t.frequency.delay===0&&t.frequency.count===0}async function W(){let e=await N();return e?`${lt}.${e}`:null}function st(e,t){return`${e}.${t}.numberOfTimesShown`}function ct(e,t){return`${e}.${t}.shouldShow`}var lt,ut,dt=t((()=>{p(),y(),L(),lt=`gist.web.message.broadcasts`,ut=30}));async function ft(e){let t=await yt();t&&m(t,e.filter(e=>!(e.properties&&e.properties.gist&&e.properties.gist.broadcast)),new Date(Date.now()+St))}async function pt(){let e=await yt();if(!e)return[];let t=h(e)??[],n=await vt();return t.filter(e=>!n.includes(e.queueId))}async function mt(e){let t=await bt();if(!t)return;let n=h(t)??[];n.push(e),m(t,n)}async function ht(e){let t=await xt(e);return t?h(t)!==null:!1}async function gt(e){let t=await xt(e);if(!t)return!1;m(t,!0,new Date(Date.now()+5e3))}async function _t(e){let t=await xt(e);if(!t)return!1;g(t)}async function vt(){let e=await bt();return e?h(e)??[]:[]}async function yt(){let e=await N();return e?`${G}.${e}`:null}async function bt(){let e=await N();return e?`${G}.${e}.seen`:null}async function xt(e){let t=await N();return t?`${G}.${t}.message.${e}.loading`:null}var G,St,Ct=t((()=>{y(),L(),G=`gist.web.message.user`,St=6e4*60}));async function wt(e){if(Z.isDocumentVisible){if(Z.overlayInstanceId)return f(`Message ${Z.overlayInstanceId} already showing.`),null;var t=R(e);return e.instanceId=o(),e.overlay=!0,e.firstLoad=!0,e.shouldResizeHeight=!0,e.shouldScale=t.shouldScale,e.renderStartTime=new Date().getTime(),Z.overlayInstanceId=e.instanceId,Z.currentMessages.push(e),At(e)}else return f(`Document hidden, not showing message now.`),null}async function Tt(e,t){return Z.isDocumentVisible?(e.instanceId=o(),e.overlay=!1,e.firstLoad=!0,e.shouldScale=!1,e.elementId=t,e.shouldResizeHeight=!ze(t),e.renderStartTime=new Date().getTime(),Z.currentMessages.push(e),At(e,t)):(f(`Document hidden, not showing message now.`),null)}async function Et(e){e?(Z.messageDismissed(e),e.overlay?await kt(!0,e):Ot(e)):f(`Message with instance id: ${e.instanceId} not found`)}async function Dt(e){var t=R(e);e?t.persistent&&(f(`Persistent message dismissed, logging view`),await Lt(e),await jt(e)):f(`Message with instance id: ${e.instanceId} not found`)}function Ot(e){Nt(e.instanceId),Re(e.elementId)}async function kt(e,t){e?await Ke():qe(),Z.currentMessages.length==0&&(window.removeEventListener(`message`,It),window.removeEventListener(`touchstart`,Ft)),Nt(t.instanceId),Z.overlayInstanceId=null}function At(e,t=null){if(t&&Fe(t))return f(`Message ${e.messageId} already showing in element ${t}.`),null;var n={endpoint:C.ENGINE_API_ENDPOINT[Z.config.env],siteId:Z.config.siteId,dataCenter:Z.config.dataCenter,messageId:e.messageId,instanceId:e.instanceId,livePreview:!1,properties:e.properties},r=`${C.GIST_VIEW_ENDPOINT[Z.config.env]}/index.html`;return window.addEventListener(`message`,It),window.addEventListener(`touchstart`,Ft),t?(B.includes(t)&&Ne(t),Ie(t,r,e,n)):Ve(r,e,n),e}async function jt(e){f(`Message shown, logging view for: ${e.messageId}`);var t={};e.queueId==null?t=await De(e.messageId):(await Lt(e),t=await Ee(e.queueId)),t.status===200?f(`Message view logged`):f(`Problem logging message: ${t.status}`)}function Mt(e){return Z.currentMessages.find(t=>t.instanceId===e)}function Nt(e){Z.currentMessages=Z.currentMessages.filter(t=>t.instanceId!==e)}function Pt(e,t){Nt(e),Z.currentMessages.push(t)}function Ft(){}async function It(e){if(e.data.gist&&e.origin===C.RENDERER_HOST){var t=e.data.gist.instanceId,n=Mt(t);if(!n)return;var r=R(n);switch(e.data.gist.method){case`routeLoaded`:var i=(new Date().getTime()-n.renderStartTime)*.001;f(`Engine render for message: ${n.messageId} timer elapsed in ${i.toFixed(3)} seconds`),_t(n.queueId),n.currentRoute=e.data.gist.parameters.route,n.firstLoad&&=(n.overlay?We(n):Le(n.elementId),Z.messageShown(n),r.persistent?f(`Persistent message shown, skipping logging view`):await jt(n),!1),Pt(t,n);break;case`tap`:var a=e.data.gist.parameters.action,o=e.data.gist.parameters.name;if(Z.messageAction(n,a,o),e.data.gist.parameters.system&&!r.persistent){await Et(n);break}try{var s=new URL(a);if(s&&s.protocol===`gist:`)switch(s.href.replace(`gist://`,``).split(`?`)[0]){case`close`:await Et(n),await Dt(n),await Rt(n),await q();break;case`showMessage`:var c=s.searchParams.get(`messageId`),l=s.searchParams.get(`properties`);c&&(l&&=JSON.parse(atob(l)),await Z.showMessage({messageId:c,properties:l}));break;case`loadPage`:s=s.href.substring(s.href.indexOf(`?url=`)+5),s&&(s.startsWith(`mailto:`)||s.startsWith(`https://`)||s.startsWith(`http://`)||s.startsWith(`/`)?window.location.href=s:window.location.href=window.location+s);break}}catch{}break;case`routeChanged`:n.currentRoute=e.data.gist.parameters.route,n.renderStartTime=new Date().getTime(),Pt(t,n),f(`Route changed to: ${n.currentRoute}`);break;case`sizeChanged`:f(`Size Changed Width: ${e.data.gist.parameters.width} - Height: ${e.data.gist.parameters.height}`),(!n.elementId||n.shouldResizeHeight)&&Be(n,e.data.gist.parameters);break;case`titleChanged`:f(`Overlay title changed to: ${e.data.gist.parameters.title}`),Je(t,e.data.gist.parameters.title);break;case`eventDispatched`:Z.events.dispatch(`eventDispatched`,{name:e.data.gist.parameters.name,payload:e.data.gist.parameters.payload});break;case`error`:case`routeError`:Z.messageError(n),Z.overlayInstanceId?kt(!1,n):Ot(n);break}}}async function Lt(e){f(`Logging user message view locally for: ${e.queueId}`),U(e)?await rt(e.queueId):await mt(e.queueId)}async function Rt(e){U(e)&&(f(`Logging broadcast dismissed locally for: ${e.queueId}`),await it(e.queueId))}var zt=t((()=>{Q(),p(),Oe(),a(),w(),et(),z(),Pe(),Kt(),dt(),Ct()}));async function K(){Y?await q():M()?(f(`Queue watcher started`),Y=!0,Gt(()=>new Promise(()=>Vt()),1e3)):f(`User token not setup, queue not started.`)}async function q(){var e=await nt(),t=await pt(),n=e.concat(t);f(`Messages in local queue: ${n.length}`);var r=n.sort((e,t)=>e.priority-t.priority);for(let e of r)await Bt(e)}async function Bt(e){var t=R(e);if(t.hasRouteRule){var n=Z.currentRoute;n??=new URL(window.location.href).pathname;var r=t.routeRule;if(f(`Verifying route ${n} against rule: ${r}`),!new RegExp(r).test(n))return f(`Route ${n} does not match rule.`),!1}if(t.hasPosition&&(e.position=t.position),!t.persistent&&!ot(e)&&await ht(e.queueId))return f(`Not showing message with queueId ${e.queueId} because its already loading.`),!1;var i=!1;return i=t.isEmbedded?await Tt(e,t.elementId):await wt(e),i&&gt(e.queueId),i}async function Vt(){if(C.hasActiveSSEConnection()){await q();return}if(C.useSSE()&&!xe()){await Ut();return}await Ht()}async function Ht(){if(M())if(Z.isDocumentVisible)if(h(`gist.web.userQueueNextPullCheck`)===null){var e=await fe(),t=[];e?(e.status===200||e.status===204?(f(`200 response, updating local store.`),t=e.data,ft(t),tt(t)):e.status===304&&f(`304 response, using local store.`),await q()):f(`There was an error while checking message queue.`)}else f(`Next queue pull scheduled for later.`);else f(`Document not visible, skipping queue check.`);else f(`User token reset, skipping queue check.`)}async function Ut(){let e=_e();if(e===null){f(`SSE endpoint not available, falling back to polling.`),await Ht();return}f(`Starting SSE queue listener on ${e}`),X=new EventSource(e),C.setActiveSSEConnection(),X.addEventListener(`connected`,async e=>{f(`SSE connection received:`,e),C.setActiveSSEConnection(),C.setUseSSEFlag(!0),g(k),await Ht()}),X.addEventListener(`messages`,async e=>{try{var t=JSON.parse(e.data);f(`SSE message received:`,t),await ft(t),await tt(t),await q()}catch(e){f(`Failed to parse SSE message`,e),J()}}),X.addEventListener(`error`,async e=>{f(`SSE error received:`,e),J()}),X.addEventListener(`heartbeat`,async e=>{f(`SSE heartbeat received:`,e),C.setActiveSSEConnection(),C.setUseSSEFlag(!0)})}function J(){X&&(f(`Stopping SSE queue listener...`),X.close(),X=null,C.setUseSSEFlag(!1))}var Wt,Gt,Y,X,Kt=t((()=>{Q(),p(),L(),ve(),zt(),z(),y(),dt(),Ct(),w(),Wt=e=>new Promise(t=>setTimeout(t,e)),Gt=(e,t)=>e().then(Wt(t).then(()=>Gt(e,t))),Y=!1,X=null}));function qt(){let e=Jt();return e&&(ae(!1),Z.setUserToken(e),f(`Preview mode enabled with user token: ${e}`)),!oe()}function Jt(){return new URLSearchParams(window.location.search).get(Yt)}var Yt,Xt=t((()=>{Q(),p(),y(),Yt=`cioPreviewId`})),Zt=r({default:()=>Z}),Z,Q=t((()=>{ie(),p(),Kt(),L(),zt(),de(),Xt(),w(),Z=class{static async setup(e){this.events=new d,this.config={useAnonymousSession:e.useAnonymousSession===void 0?!1:e.useAnonymousSession,siteId:e.siteId,dataCenter:e.dataCenter,env:e.env===void 0?`prod`:e.env,logging:e.logging===void 0?!1:e.logging,experiments:e.experiments===void 0?!1:e.experiments},this.currentMessages=[],this.overlayInstanceId=null,this.currentRoute=null,this.isDocumentVisible=!0,this.config.isPreviewSession=qt(),f(`Setup complete on ${this.config.env} environment.`),!this.config.isPreviewSession&&this.config.useAnonymousSession&&be(),await K(),document.addEventListener(`visibilitychange`,async()=>{document.visibilityState===`hidden`?this.isDocumentVisible=!1:(this.isDocumentVisible=!0,await q())},!1)}static async setCurrentRoute(e){this.currentRoute=e,f(`Current route set to: ${e}`),await q()}static async setUserToken(e,t){if(this.config.isPreviewSession)return;let n=C.hasActiveSSEConnection();J(),ye(e,t),n&&(C.setUseSSEFlag(!0),await Ut()),await K()}static setUserLocale(e){ue(e)}static async clearUserToken(){this.config.isPreviewSession||(Ce(),this.config.useAnonymousSession&&be(),J(),await K())}static async dismissMessage(e){var t=Mt(e);await Et(t),await Dt(t),await Rt(t),await q()}static async embedMessage(e,t){var n=await Tt(e,t);return n?n.instanceId:null}static async showMessage(e){var t=await wt(e);return t?t.instanceId:null}static messageShown(e){f(`Message shown: ${e.messageId}`),this.events.dispatch(`messageShown`,e)}static messageDismissed(e){e!==null&&(f(`Message dismissed: ${e.messageId}`),this.events.dispatch(`messageDismissed`,e))}static messageError(e){f(`Message error: ${e.messageId}`),this.events.dispatch(`messageError`,e)}static messageAction(e,t,n){f(`Message action: ${e.currentRoute}, ${t} with name ${n} on ${e.instanceId}`),this.events.dispatch(`messageAction`,{message:e,action:t,name:n})}}})),$=n(i(((t,n)=>{n.exports=(Q(),e(Zt)).default}))());function Qt(e){var t=this,n,r=!1,i=!1,a=new EventTarget;function o(){!r||i||(n.on(`reset`,ie),e.events&&(ee.forEach(function(t){a.addEventListener(t,e?.events)}),[`messageDismissed`,`messageError`].forEach(function(e){$.default.events.on(e,function(t){a.dispatchEvent(ne(re(e),{messageId:t.messageId,deliveryId:t.properties?.gist?.campaignId}))})})),$.default.events.on(`messageShown`,function(t){var r=t?.properties?.gist?.campaignId;if(e.events&&a.dispatchEvent(ne(l.MessageOpened,{messageId:t?.messageId,deliveryId:r,message:{dismiss:function(){$.default.dismissMessage(t?.instanceId)}}})),r!==void 0&&r!=``){n.track(u.Metric,{deliveryId:r,metric:u.Opened});return}var i=t?.properties?.gist?.broadcast?.broadcastIdInt;if(i){var o=t?.properties?.gist?.broadcast?.templateId;n.track(u.Content,{actionType:u.ViewedContent,contentId:i,templateId:o,contentType:te})}}),$.default.events.on(`messageAction`,function(t){var r=t?.message?.properties?.gist?.campaignId;if(e.events&&a.dispatchEvent(ne(l.MessageAction,{messageId:t.message.messageId,deliveryId:r,action:t.action,name:t.name,actionName:t.name,actionValue:t.action,message:{dismiss:function(){$.default.dismissMessage(t.message.instanceId)}}})),t.action!=`gist://close`){if(r!==void 0&&r!=``){n.track(u.Metric,{deliveryId:r,metric:u.Clicked,actionName:t.name,actionValue:t.action});return}var i=t?.message?.properties?.gist?.broadcast?.broadcastIdInt;if(i){var o=t?.message?.properties?.gist?.broadcast?.templateId;n.track(u.Content,{actionType:u.ClickedContent,contentId:i,templateId:o,contentType:te,actionName:t.name,actionValue:t.action})}}}),$.default.events.on(`eventDispatched`,function(e){if(e.name==`analytics:track`){var t=e.payload?.event;if(t===void 0||t==``)return;n.track(t,e.payload?.properties,e.payload?.options)}}))}function d(e){return c(this,void 0,void 0,function(){var t;return s(this,function(n){return i?(t=e.event?.properties?.name??e.event?.properties?.url,typeof t==`string`&&t.length>0&&$.default.setCurrentRoute(t),[2,e]):[2,e]})})}function ie(e){return c(this,void 0,void 0,function(){return s(this,function(t){switch(t.label){case 0:return[4,$.default.clearUserToken()];case 1:return t.sent(),[2,e]}})})}function f(e){return c(this,void 0,void 0,function(){var t;return s(this,function(i){switch(i.label){case 0:return r?(t=n.user().id(),typeof t==`string`&&t.length>0?[4,$.default.setUserToken(t)]:[3,2]):[2,e];case 1:return i.sent(),[3,4];case 2:return[4,$.default.clearUserToken()];case 3:i.sent(),i.label=4;case 4:return[2,e]}})})}return{name:`Customer.io In-App Plugin`,type:`before`,version:`0.0.1`,isLoaded:function(){return i},load:function(a,l){return c(t,void 0,void 0,function(){return s(this,function(t){switch(t.label){case 0:return n=l,e.siteId==null||e.siteId==``?($t(`siteId is required. Can't initialize.`),[2,a]):[4,$.default.setup({siteId:e.siteId,env:e._env?e._env:`prod`,logging:e._logging,useAnonymousSession:e.anonymousInApp})];case 1:return t.sent(),r=!0,[4,f(a)];case 2:return t.sent(),o(),i=!0,[2,Promise.resolve()]}})})},identify:f,page:d,unload:function(){return c(t,void 0,void 0,function(){return s(this,function(t){return e.events&&ee.forEach(function(t){a.removeEventListener(t,e?.events)}),[2]})})}}}function $t(e){console.error(`[Customer.io In-App Plugin] ${e}`)}export{Qt as InAppPlugin};