customerio-gist-web
Version:
Build beautiful in-app flows with no code and deliver them instantly to your app. http://customer.io
1 lines • 23.9 kB
JavaScript
!function(e,t){"object"==typeof exports&&"object"==typeof module?module.exports=t():"function"==typeof define&&define.amd?define([],t):"object"==typeof exports?exports.Gist=t():e.Gist=t()}(this,(()=>(()=>{var e={548:(e,t,n)=>{"use strict";n.d(t,{A:()=>Ie});class s{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 i(e){Ie.config.logging&&console.log(`Gist: ${e}`)}var a,o=new Uint8Array(16);function r(){if(!a&&!(a="undefined"!=typeof crypto&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto)||"undefined"!=typeof msCrypto&&"function"==typeof msCrypto.getRandomValues&&msCrypto.getRandomValues.bind(msCrypto)))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return a(o)}const u=/^(?:[0-9a-f]{8}-[0-9a-f]{4}-[1-5][0-9a-f]{3}-[89ab][0-9a-f]{3}-[0-9a-f]{12}|00000000-0000-0000-0000-000000000000)$/i;for(var c=[],d=0;d<256;++d)c.push((d+256).toString(16).substr(1));const g=function(e){var t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:0,n=(c[e[t+0]]+c[e[t+1]]+c[e[t+2]]+c[e[t+3]]+"-"+c[e[t+4]]+c[e[t+5]]+"-"+c[e[t+6]]+c[e[t+7]]+"-"+c[e[t+8]]+c[e[t+9]]+"-"+c[e[t+10]]+c[e[t+11]]+c[e[t+12]]+c[e[t+13]]+c[e[t+14]]+c[e[t+15]]).toLowerCase();if(!function(e){return"string"==typeof e&&u.test(e)}(n))throw TypeError("Stringified UUID is invalid");return n},l=function(e,t,n){var s=(e=e||{}).random||(e.rng||r)();if(s[6]=15&s[6]|64,s[8]=63&s[8]|128,t){n=n||0;for(var i=0;i<16;++i)t[n+i]=s[i];return t}return g(s)},m=365,f="gist.web.isPersistingSession";function h(e,t,n=null){var s=n;s||(s=new Date).setDate(s.getDate()+m);const i={value:t,expiry:s};y().setItem(e,JSON.stringify(i))}function p(e){const t=y().getItem(e);if(!t)return null;const n=JSON.parse(t);return(new Date).getTime()>new Date(n.expiry).getTime()?(w(e),null):n.value}function w(e){y().removeItem(e)}function v(){const e=sessionStorage.getItem(f);return null===e?(sessionStorage.setItem(f,"true"),!0):"true"===e}function y(){return v()?localStorage:sessionStorage}const b="gist.web.userQueueVersion",I={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_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 p(b)??"2"},setQueueAPIVersion:function(e){h(b,e,new Date((new Date).getTime()+18e5)),i(`Set user queue version to "${e}"`)}};function $(){const e="3"===I.getQueueAPIVersion()?I.GIST_QUEUE_V3_API_ENDPOINT[Ie.config.env]:I.GIST_QUEUE_API_ENDPOINT[Ie.config.env],t={"X-CIO-Site-Id":Ie.config.siteId,"X-CIO-Client-Platform":"web"},n=M();async function s(n,s={}){const i=e+n,a=new AbortController,o=setTimeout((()=>a.abort()),5e3);try{const e=await fetch(i,{method:s.method||"GET",headers:{...t,...s.headers||{}},body:s.method&&"GET"!==s.method.toUpperCase()?s.body:void 0,signal:a.signal});clearTimeout(o);const n=e.headers.get("content-type")?.includes("application/json"),r=n?await e.json():await e.text(),u=Object.fromEntries(e.headers.entries());if(e.status<200||e.status>=400)throw{response:{status:e.status,data:r,headers:u}};return{status:e.status,headers:u,data:r}}catch(e){throw clearTimeout(o),e.response||(e.response={status:0,data:e.message||"Unknown error"}),e}}return null!=n&&(t["X-Gist-Encoded-User-Token"]=btoa(n)),s.post=(e,t={},n={})=>s(e,{method:"POST",body:JSON.stringify(t),headers:{"Content-Type":"application/json",...n.headers||{}}}),s}const x="gist.web.userLocale";var S=600,T=!1;const D="gist.web.userQueueNextPullCheck",E="gist.web.sessionId";const k="gist.web.userToken",P="gist.web.usingGuestUserToken",q="gist.web.guestUserToken";function C(){return null!==p(P)}function M(){return p(k)}function R(){if(null===M()){var e=p(q);null==e&&(e=l(),h(q,e),i(`Set guest user token "${e}" with expiry date set to 1 year from today`)),h(k,e),h(P,!0),i(`Using anonymous session with token: "${e}"`)}}async function L(){var e=M();return null===e?null:await async function(e){const 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("")}(e)}function A(e){const 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 N=["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"];const U=e=>new Promise((t=>setTimeout(t,e))),W=["x-gist-top","x-gist-bottom","x-gist-floating-top","x-gist-floating-bottom"];function O(e){var t=Q(e);if(t)return t.style&&t.style.height&&"0px"!=t.style.height}function V(e,t){const n=document.getElementById(e);n&&(n.onload=function(){!function(e,t){const n=document.getElementById(e);n&&n.contentWindow&&n.contentWindow.postMessage({options:t},"*")}(e,t)})}function _(){var e=document.querySelector("#gist-embed-message");e&&e.parentNode.removeChild(e)}function G(e){return`gist-${e}`}function j(){var e=document.querySelector(".gist-message");e&&e.classList.add("visible")}function Q(e){try{return document.querySelector(`#${e}`)||null}catch{return null}}const H="gist.web.message.broadcasts";async function z(e,t){return p(e).find((e=>e.queueId===t))}function X(e){return e.properties&&e.properties.gist&&e.properties.gist.broadcast}async function B(){const e=await L();return e?`${H}.${e}`:null}function J(e,t){return`${e}.${t}.numberOfTimesShown`}function F(e,t){return`${e}.${t}.shouldShow`}const Y="gist.web.message.user";async function K(){const e=await L();return e?`${Y}.${e}`:null}async function Z(){const e=await L();return e?`${Y}.${e}.seen`:null}async function ee(e){const t=await L();return t?`${Y}.${t}.message.${e}.loading`:null}async function te(e){if(Ie.isDocumentVisible){if(Ie.overlayInstanceId)return i(`Message ${Ie.overlayInstanceId} already showing.`),null;var t=A(e);return e.instanceId=l(),e.overlay=!0,e.firstLoad=!0,e.shouldResizeHeight=!0,e.shouldScale=t.shouldScale,e.renderStartTime=(new Date).getTime(),Ie.overlayInstanceId=e.instanceId,Ie.currentMessages.push(e),re(e)}return i("Document hidden, not showing message now."),null}async function ne(e,t){return Ie.isDocumentVisible?(e.instanceId=l(),e.overlay=!1,e.firstLoad=!0,e.shouldScale=!1,e.elementId=t,e.shouldResizeHeight=!O(t),e.renderStartTime=(new Date).getTime(),Ie.currentMessages.push(e),re(e,t)):(i("Document hidden, not showing message now."),null)}async function se(e){e?(Ie.messageDismissed(e),e.overlay?await oe(!0,e):ae(e)):i(`Message with instance id: ${e.instanceId} not found`)}async function ie(e){var t=A(e);e?t.persistent&&(i("Persistent message dismissed, logging view"),await fe(e),await ue(e)):i(`Message with instance id: ${e.instanceId} not found`)}function ae(e){var t;de(e.instanceId),(t=Q(e.elementId))&&(t.classList.remove("gist-visible"),t.style.removeProperty("height"),t.innerHTML="")}async function oe(e,t){de(t.instanceId),Ie.overlayInstanceId=null,e?await async function(){var e=document.querySelector(".gist-message");e&&(e.classList.remove("visible"),await U(300)),_()}():_(),0==Ie.currentMessages.length&&(window.removeEventListener("message",me),window.removeEventListener("touchstart",le))}function re(e,t=null){if(t&&function(e){var t=Q(e);return!(!t||!t.classList.contains("gist-visible"))}(t))return i(`Message ${e.messageId} already showing in element ${t}.`),null;var n={endpoint:I.ENGINE_API_ENDPOINT[Ie.config.env],siteId:Ie.config.siteId,dataCenter:Ie.config.dataCenter,messageId:e.messageId,instanceId:e.instanceId,livePreview:!1,properties:e.properties},s=`${I.GIST_VIEW_ENDPOINT[Ie.config.env]}/index.html`;return window.addEventListener("message",me),window.addEventListener("touchstart",le),t?(N.includes(t)&&function(e){const t=document.createElement("div");t.id=e,"x-gist-top"===e?document.body.insertBefore(t,document.body.firstChild):document.body.insertAdjacentElement("beforeend",t),i("Top & bottom elements injected into page")}(t),function(e,t,n,s){var a=Q(e);if(a){var o=G(n.instanceId);a.classList.add(o);var r=A(n),u=r.messageWidth+"px";W.includes(e)&&!r.hasCustomWidth&&(u="100%"),N.includes(e)&&(a.style.width=u),O(e)||(a.style.height="0px"),a.innerHTML=function(e,t,n){var s=function(e,t,n){var s=800;return t.messageWidth>s&&(s=t.messageWidth),`\n <div id="gist-embed">\n <style>\n #x-gist-floating-top, #x-gist-floating-top-left, #x-gist-floating-top-right {\n position: fixed;\n top: 0px;\n z-index: 1000000;\n }\n #x-gist-floating-bottom, #x-gist-floating-bottom-left, #x-gist-floating-bottom-right {\n position: fixed;\n bottom: 0px;\n z-index: 1000000;\n }\n #x-gist-bottom, #x-gist-top, #x-gist-floating-top, #x-gist-floating-bottom {\n left: 50%;\n transform: translate(-50%, 0%);\n }\n #x-gist-floating-top-right, #x-gist-floating-bottom-right {\n right: 0px;\n }\n #gist-embed {\n position: relative;\n height: 100%;\n width: 100%;\n }\n #gist-embed-container {\n position: relative;\n height: 100%;\n width: 100%;\n }\n #gist-embed-container .gist-frame {\n height: 100%;\n width: 100%;\n border: none;\n }\n #x-gist-top.${e},\n #x-gist-bottom.${e},\n #x-gist-floating-top.${e},\n #x-gist-floating-bottom.${e},\n #x-gist-floating-top-left.${e},\n #x-gist-floating-top-right.${e},\n #x-gist-floating-bottom-left.${e},\n #x-gist-floating-bottom-right.${e} {\n transition: height 0.1s ease-in-out;\n }\n @media (max-width: ${s}px) {\n #x-gist-top.${e},\n #x-gist-bottom.${e},\n #x-gist-floating-top.${e},\n #x-gist-floating-bottom.${e},\n #x-gist-floating-top-left.${e},\n #x-gist-floating-top-right.${e},\n #x-gist-floating-bottom-left.${e},\n #x-gist-floating-bottom-right.${e} {\n width: 100% !important;\n }\n }\n </style>\n <div id="gist-embed-container">\n <iframe id="${e}" class="gist-frame" src="${n}"></iframe>\n </div>\n </div>`}(G(t.instanceId),n,e);return s}(t,n,r),V(o,s)}else i(`Message could not be embedded, elementId ${e} not found.`)}(t,s,e,n)):function(e,t,n){document.body.insertAdjacentHTML("afterbegin",function(e,t){var n=A(t),s=function(e,t,n){var s=600;return t.messageWidth>s&&(s=t.messageWidth),`\n <div id="gist-embed-message">\n <style>\n #gist-overlay.background {\n position: fixed;\n z-index: 9999999998;\n left: 0;\n top: 0;\n width: 100%;\n height: 100%;\n background-color: ${t.overlayColor};\n visibility: hidden;\n }\n #gist-overlay.background.visible {\n visibility: visible;\n }\n #gist-overlay.background.is-blacked-out {\n display: block;\n }\n .gist-message {\n width: ${t.messageWidth}px;\n position: absolute;\n border: none;\n opacity: 0;\n transition: opacity 0.3s ease-in-out, height 0.1s ease-in-out;\n z-index: 9999999999;\n left: 50%;\n transform: translateX(-50%);\n }\n .gist-message.visible {\n opacity: 1;\n pointer-events: auto;\n }\n .gist-message.center {\n transform: translate(-50%, -50%);\n top: 50%;\n }\n .gist-message.bottom {\n bottom: 0;\n }\n .gist-message.top {\n top: 0;\n }\n @media (max-width: ${s}px) {\n .gist-message {\n width: 100%;\n }\n }\n </style>\n <div id="gist-overlay" class="background">\n <iframe id="${e}" class="gist-message" src="${n}"></iframe>\n </div>\n </div>`}(G(t.instanceId),n,e);return s}(e,t)),V(G(t.instanceId),n)}(s,e,n),e}async function ue(e){i(`Message shown, logging view for: ${e.messageId}`);var t={};null!=e.queueId?(await fe(e),t=await async function(e){try{return await $().post(`/api/v1/logs/queue/${e}`)}catch(e){return e.response}}(e.queueId)):t=await async function(e){try{return await $().post(`/api/v1/logs/message/${e}`)}catch(e){return e.response}}(e.messageId),200===t.status?i("Message view logged"):i(`Problem logging message: ${t.status}`)}function ce(e){return Ie.currentMessages.find((t=>t.instanceId===e))}function de(e){Ie.currentMessages=Ie.currentMessages.filter((t=>t.instanceId!==e))}function ge(e,t){de(e),Ie.currentMessages.push(t)}function le(){}async function me(e){if(e.data.gist){var t=e.data.gist.instanceId,n=ce(t);if(!n)return;var s=A(n);switch(e.data.gist.method){case"routeLoaded":var a=.001*((new Date).getTime()-n.renderStartTime);i(`Engine render for message: ${n.messageId} timer elapsed in ${a.toFixed(3)} seconds`),async function(e){const t=await ee(e);if(!t)return!1;w(t)}(n.queueId),n.currentRoute=e.data.gist.parameters.route,n.firstLoad&&(n.overlay?function(e){var t=A(e),n=document.querySelector("#gist-overlay");if(n){n.classList.add("visible");var s=document.querySelector(".gist-message");e.position?s.classList.add(e.position):s.classList.add("center"),setTimeout(j,100),t.exitClick&&setTimeout((()=>function(e){var t=document.querySelector("#gist-overlay");t&&t.addEventListener("click",(function(){Ie.dismissMessage(e)}))}(e.instanceId)),1e3)}else _()}(n):(g=Q(n.elementId))&&g.classList.add("gist-visible"),Ie.messageShown(n),s.persistent?i("Persistent message shown, skipping logging view"):await ue(n),n.firstLoad=!1),ge(t,n);break;case"tap":var o=e.data.gist.parameters.action,r=e.data.gist.parameters.name;if(Ie.messageAction(n,o,r),e.data.gist.parameters.system&&!s.persistent){await se(n);break}try{var u=new URL(o);if(u&&"gist:"===u.protocol)switch(u.href.replace("gist://","").split("?")[0]){case"close":await se(n),await ie(n),await he(n),await ye();break;case"showMessage":var c=u.searchParams.get("messageId"),d=u.searchParams.get("properties");c&&(d&&(d=JSON.parse(atob(d))),await Ie.showMessage({messageId:c,properties:d}));break;case"loadPage":(u=u.href.substring(u.href.indexOf("?url=")+5))&&(u.startsWith("https://")||u.startsWith("http://")||u.startsWith("/")?window.location.href=u:window.location.href=window.location+u)}}catch{}break;case"routeChanged":n.currentRoute=e.data.gist.parameters.route,n.renderStartTime=(new Date).getTime(),ge(t,n),i(`Route changed to: ${n.currentRoute}`);break;case"sizeChanged":i(`Size Changed Width: ${e.data.gist.parameters.width} - Height: ${e.data.gist.parameters.height}`),n.elementId&&!n.shouldResizeHeight||function(e,t){var n=Q(e.elementId?e.elementId:G(e.instanceId));if(n){var s=n.style;if(t.height>0)if(t.height>window.innerHeight){var i=1-(t.height/window.innerHeight-1);e.shouldScale&&i>=.4?(s.height=`${t.height}px`,s.transform=`translateX(-50%) translateY(-50%) scale(${i})`):s.height=`${window.innerHeight}px`}else s.height=`${t.height}px`}}(n,e.data.gist.parameters);break;case"titleChanged":i(`Overlay title changed to: ${e.data.gist.parameters.title}`),function(e,t){var n=Q(G(e));n&&(n.title=t)}(t,e.data.gist.parameters.title);break;case"eventDispatched":Ie.events.dispatch("eventDispatched",{name:e.data.gist.parameters.name,payload:e.data.gist.parameters.payload});break;case"error":case"routeError":Ie.messageError(n),Ie.overlayInstanceId?oe(!1,n):ae(n)}}var g}async function fe(e){i(`Logging user message view locally for: ${e.queueId}`),X(e)?await async function(e){i(`Marking broadcast ${e} as seen.`);const t=await B();if(!t)return;const n=await z(t,e);if(!n)return;const{broadcast:s}=n.properties.gist,a=J(t,e),o=F(t,e);let r=p(a)||0;if(h(a,r+1),1===s.frequency.count)h(o,!1),i(`Marked broadcast ${e} as seen.`);else{let t=new Date;t.setSeconds(t.getSeconds()+s.frequency.delay),h(o,!1,t),i(`Marked broadcast ${e} as seen, broadcast was seen ${r+1} times, next show date is ${t}.`)}}(e.queueId):await async function(e){const t=await Z();if(!t)return;const n=p(t)??[];n.push(e),h(t,n)}(e.queueId)}async function he(e){X(e)&&(i(`Logging broadcast dismissed locally for: ${e.queueId}`),await async function(e){i(`Marking broadcast ${e} as dismissed.`);const t=await B();if(!t)return;const n=await z(t,e);if(!n)return;const{broadcast:s}=n.properties.gist;!0!==s.frequency.ignoreDismiss?(h(F(t,e),!1),i(`Marked broadcast ${e} as dismissed and will not show again.`)):i(`Broadcast ${e} is set to ignore dismiss.`)}(e.queueId))}var pe=(e,t)=>e().then((e=>new Promise((t=>setTimeout(t,e))))(t).then((()=>pe(e,t)))),we=!1;async function ve(){we?ye():(async function(){var e=`G${l().substring(0,8)}`,t=document.createElement("div");t.setAttribute("id",e),t.style.display="none",document.body.appendChild(t),await U(5e3),ne({messageId:""},e)}(),M()?(i("Queue watcher started"),we=!0,pe((()=>new Promise((()=>async function(){if(M())if(Ie.isDocumentVisible)if(null===p(D)){var e=await async function(){var e,t;try{if(!T){T=!0;var n={"X-Gist-User-Anonymous":C(),"Content-Language":null!==p(x)?p(x):navigator.language};if("3"===I.getQueueAPIVersion())e=await $().post(`/api/v3/users?sessionId=${t=p(E),t||(t=l()),h(E,t,new Date((new Date).getTime()+18e5)),t}`,{},{headers:n});else{var s=(new Date).getTime();e=await $().post(`/api/v2/users?timestamp=${s}`,{},{headers:n})}}}catch(t){t.response?e=t.response:i(`Error getting user queue: ${t}`)}finally{T=!1,function(e){if(e&&e.headers){var t=e.headers["x-gist-queue-polling-interval"];t&&t>0&&(S=t)}var n=new Date((new Date).getTime()+1e3*S);h(D,S,n)}(e),function(e){if(e&&e.headers){var t=e.headers["x-cio-queue-version"];t&&I.setQueueAPIVersion(t)}}(e)}return e}(),t=[];e?(200===e.status||204===e.status?(i("200 response, updating local store."),async function(e){const t=await K();t&&h(t,e.filter((e=>!(e.properties&&e.properties.gist&&e.properties.gist.broadcast))),new Date(Date.now()+36e5))}(t=e.data),async function(e){const t=await B();if(!t)return;const n=new Date;n.setDate(n.getDate()+30),h(t,e.filter(X),n)}(t)):304===e.status&&i("304 response, using local store."),await ye()):i("There was an error while checking message queue.")}else i("Next queue pull scheduled for later.");else i("Document not visible, skipping queue check.");else i("User token reset, skipping queue check.")}()))),1e3)):i("User token not setup, queue not started."))}async function ye(){var e=await async function(){const e=await B();return e?(p(e)??[]).filter((t=>{const{broadcast:n}=t.properties.gist,s=p(F(e,t.queueId))??!0,i=p(J(e,t.queueId))||0,a=0===n.frequency.count;return s&&(a||i<n.frequency.count)})):[]}(),t=await async function(){const e=await K();if(!e)return[];const t=p(e)??[],n=await async function(){const e=await Z();return e?p(e)??[]:[]}();return t.filter((e=>!n.includes(e.queueId)))}(),n=e.concat(t);i(`Messages in local queue: ${n.length}`);var s=n.sort(((e,t)=>e.priority-t.priority));for(const e of s)await be(e)}async function be(e){var t=A(e);if(t.hasRouteRule){var n=Ie.currentRoute;null==n&&(n=new URL(window.location.href).pathname);var s=t.routeRule;if(i(`Verifying route against rule: ${s}`),!new RegExp(s).test(n))return i(`Route ${n} does not match rule.`),!1}if(t.hasPosition&&(e.position=t.position),t.persistent||function(e){if(!X(e))return!1;const{broadcast:t}=e.properties.gist;return 0===t.frequency.delay&&0===t.frequency.count}(e)||!await async function(e){const t=await ee(e);return!!t&&null!==p(t)}(e.queueId)){var a;return(a=t.isEmbedded?await ne(e,t.elementId):await te(e))&&async function(e){const t=await ee(e);if(!t)return!1;h(t,!0,new Date(Date.now()+5e3))}(e.queueId),a}return i(`Not showing message with queueId ${e.queueId} because its already loading.`),!1}const Ie=class{static async setup(e){this.events=new s,this.config={useAnonymousSession:void 0!==e.useAnonymousSession&&e.useAnonymousSession,siteId:e.siteId,dataCenter:e.dataCenter,env:void 0===e.env?"prod":e.env,logging:void 0!==e.logging&&e.logging,experiments:void 0!==e.experiments&&e.experiments},this.currentMessages=[],this.overlayInstanceId=null,this.currentRoute=null,this.isDocumentVisible=!0,this.config.isPreviewSession=function(){const e=new URLSearchParams(window.location.search).get("cioPreviewId");return e&&(sessionStorage.setItem(f,!1),Ie.setUserToken(e),i(`Preview mode enabled with user token: ${e}`)),!v()}(),i(`Setup complete on ${this.config.env} environment.`),!this.config.isPreviewSession&&this.config.useAnonymousSession&&R(),await ve(),document.addEventListener("visibilitychange",(async()=>{"hidden"===document.visibilityState?this.isDocumentVisible=!1:(this.isDocumentVisible=!0,await ye())}),!1)}static async setCurrentRoute(e){this.currentRoute=e,i(`Current route set to: ${e}`),await ye()}static async setUserToken(e,t){this.config.isPreviewSession||(function(e,t){void 0===t&&(t=new Date).setDate(t.getDate()+30),h(k,e,t),C()&&(w(D),w(P)),i(`Set user token "${e}" with expiry date set to ${t}`)}(e,t),await ve())}static setUserLocale(e){var t;h(x,t=e),i(`Set user locate to "${t}"`)}static async clearUserToken(){this.config.isPreviewSession||(w(k),i("Cleared user token"),this.config.useAnonymousSession&&R(),await ve())}static async dismissMessage(e){var t=ce(e);await se(t),await ie(t),await he(t),await ye()}static async embedMessage(e,t){var n=await ne(e,t);return n?n.instanceId:null}static async showMessage(e){var t=await te(e);return t?t.instanceId:null}static messageShown(e){i(`Message shown: ${e.messageId}`),this.events.dispatch("messageShown",e)}static messageDismissed(e){null!==e&&(i(`Message dismissed: ${e.messageId}`),this.events.dispatch("messageDismissed",e))}static messageError(e){i(`Message error: ${e.messageId}`),this.events.dispatch("messageError",e)}static messageAction(e,t,n){i(`Message action: ${e.currentRoute}, ${t} with name ${n} on ${e.instanceId}`),this.events.dispatch("messageAction",{message:e,action:t,name:n})}}},44:(e,t,n)=>{const s=n(548).A;e.exports=s}},t={};function n(s){var i=t[s];if(void 0!==i)return i.exports;var a=t[s]={exports:{}};return e[s](a,a.exports,n),a.exports}return n.d=(e,t)=>{for(var s in t)n.o(t,s)&&!n.o(e,s)&&Object.defineProperty(e,s,{enumerable:!0,get:t[s]})},n.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),n(44)})()));