@sprig-technologies/sprig-browser 2.30.4 → 2.31.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -0,0 +1,12 @@
1
+ var bt=Object.defineProperty,Lt=(e,t,n)=>t in e?bt(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n,W=(e,t,n)=>(Lt(e,typeof t!="symbol"?t+"":t,n),n);import{h as M,s as Te,d as p,S as u,l as R,i as _,v as Me,m as U,j as Ut,E as $,D as F,c as St,r as j,k as kt,n as It,o as Et,p as _t,q as Fe,t as je,u as xt,a as Rt,x as me,b as Dt,y as Ne}from"./metricsReporter-BlH4lcL_.js";const At='.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}',ze="360px",Ot="ul-app",Pt="#e6e6e6",Ct="#bd282a",Tt=500,Mt=1030,Be=()=>{try{return window.parent.Intercom}catch{return null}},Ft=()=>{const e=Be();e&&(e.ul_wasVisible&&e("update",{hide_default_launcher:!1}),delete e.ul_wasVisible)},jt=()=>{const e=Be();e&&(e.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),e.ul_wasVisible&&e("update",{hide_default_launcher:!0}))},Nt=Object.freeze(Object.defineProperty({__proto__:null,disable:jt,enable:Ft},Symbol.toStringTag,{value:"Module"})),qe=[Nt];class We{static disable(){qe.forEach(t=>t.disable())}static enable(){qe.forEach(t=>t.enable())}}const $e="ul-view-sdk-script",zt=["ios","android"],C="visitors",T="environments";async function D(e,t){var n,o,r;const{shouldDropOnRateLimit:i,...s}=t;s.headers=Object.assign(M(window.UserLeap),s.headers);const a=await Te(e,{...s,shouldDropOnRateLimit:i});if(a.ok){const d=(n=a.headers)==null?void 0:n.get("Authorization"),c=d?d.split(" "):void 0,l=c&&c.length===2?c[1]:void 0,w=(o=a.headers)==null?void 0:o.get("x-ul-visitor-id");l&&w&&(w!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(E("token",l),E("vid",w),p.emit(u.VisitorIDUpdated,{visitorId:w}),window.UserLeap.token=l,window.UserLeap.visitorId=w)}return(r=a.json)!=null&&r.logMessage&&console.warn(`[Sprig] ${a.json.logMessage}`),a}function E(e,t){const n=R.getItem("userleap.ids");let o={};if(n)try{o=JSON.parse(n)}catch(i){i instanceof Error&&(i.stack=n,window.UserLeap.reportError("Failed to parse local storage credentials",i)),console.warn("[Sprig] (ERR-427) Failed to lookup saved ids",i)}let r=o[window.UserLeap.envId];r?r[e]=t:r={[e]:t},o[window.UserLeap.envId]=r;try{R.setItem("userleap.ids",JSON.stringify(o))}catch(i){i instanceof Error&&console.warn(`[Sprig] (ERR-426) Unable to write to Local Storage:: ${i.message}`)}}function ye(){return window.previewMode?"0":window.UserLeap.visitorId??""}function x(e,t,n){const o=[window.UserLeap._API_URL,"sdk",e];return t&&t.forEach(r=>{o.push(r),r===T?o.push(window.UserLeap.envId):r===C&&o.push(ye())}),n&&o.push(n),o.join("/")}const V=async(e,t)=>{var n,o,r;const{context:i,delay:s,forceBrandedLogo:a,endCard:d,isFeedback:c=!1,heatmap:l,locale:w,previewMode:g,productConfig:v,questions:m,responseGroupUid:h,surveyId:S,uuid:I,vid:b,sessionReplay:k,studyType:O}=e,L=M(window.UserLeap),De=fe(L),pe=ve(L);if(_(`Attempting to display survey: ${S}`),k)if(_("Survey has replay attached"),De)p.emit(u.ReplayCapture,{responseGroupUid:h,hasQuestions:!!(m!=null&&m.length),surveyId:S,uploadId:k.uploadId,replayType:k.replayDurationType??"before",seconds:k.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:Me(),mediaType:"screen",questionId:1,responseGroupUid:h,surveyId:S,updatedAt:new Date().toISOString(),visitorId:window.UserLeap.visitorId,isReplay:!0}});else{if(!U.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};U.replay.scheduleOrCaptureReplay({responseGroupId:h,surveyId:S,visitorId:b,replayParams:k,completeUploadHeaders:L,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:m.length===0})}if(l){if(!U.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};const{eventId:f,replayParams:ge,responseGroupUid:ft,surveyId:ht}=l;await U.replay.initializeReplay({viewDocument:window.document,maxReplayDurationSeconds:300,replayNonce:window.UserLeap.replayNonce,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0}),U.replay.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:L,eventId:f,isHeatmap:!0,replayParams:ge,responseGroupId:ft,surveyId:ht,triggerTimestamp:Date.now(),visitorId:b})}if(b==null||!(m!=null&&m.length))return _(`Not displaying survey: vid: ${b} / questions: ${m}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){_("Already displaying a survey");const f="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(f),{success:!1,message:f,surveyState:"no survey"}}if(b!==window.UserLeap.visitorId&&I!==window.UserLeap.visitorId&&!window.previewMode){const f="Attempted to display survey to a different visitor";return _(f),window.UserLeap.reportError("DisplaySurvey",new Error(f)),{success:!1,message:f,surveyState:"no survey"}}_(`Showing survey: ${S}`),(n=U.replay)==null||n.RecordSurveyShown({id:S,userAgent:window.navigator.userAgent}),We.disable(),p.emit(u.SurveyWillPresent,{name:u.SurveyWillPresent,"survey.id":S});let X,Z=document.createElement("div"),ee,P,te;const Ae=f=>{const{"view.version":ge}=f;ge!==L["x-ul-sdk-version"]&&He(),p.removeListener("verify.view.version",Ae)};p.on("verify.view.version",Ae),window.UserLeap.useMobileStyling=pe,Ut(L)?(X="ul-direct-embeded-frame",ee=document.head,P=window,te=!1,De&&(Ve(c),Z.id=X,window.UserLeap.container.appendChild(Z),Ge(),p.emit(u.SurveyLifeCycle,{state:"presented"}),p.emit(u.SurveyPresented,{name:u.SurveyPresented,"survey.id":S}))):{frameId:X,contentWinDocHead:ee,contentWindow:P,hasOverlay:te,iframe:Z}=Vt({productConfig:v,useMobileStyling:pe,surveyId:S,isFeedback:c}),window.UserLeap.frameId=X;const mt=f=>{p.once(u.CloseSurveyOnOverlayClick,f)},B={apiURL:window.UserLeap._API_URL,cards:m,configureExitOnOverlayClick:mt,context:i,endCard:d,envId:window.UserLeap.envId,eventEmitFn:p.emit.bind(p),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:a,frame:Z,headers:L,locale:w,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:R.getItem("sprig.previewKey"),previewMode:g,productConfig:{framePosition:v?.framePosition,desktopDisplay:v?.desktopDisplay,placement:v?.placement},responseGroupUid:h,startingQuestionIdx:(o=window.UserLeap.config)==null?void 0:o.startingQuestionIdx,studyType:O,styleNonce:window.UserLeap.styleNonce,surveyId:S,tabTitle:document.title,trackPageViewUrl:t,ulEvents:$,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:pe,userId:I,viewDocument:P?.document,viewWindow:P,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(r=window.UserLeap._config)!=null&&r.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const yt=(c?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??v.customStyles;B.customStyles=yt,P&&(P.__cfg=B);function vt(){const f=document.createElement("script");return window.UserLeap.nonce&&f.setAttribute("nonce",window.UserLeap.nonce),f.id=$e,f}const ue=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:B.path,Oe=document.getElementById($e);Oe&&Oe.remove();const we=vt(),Pe=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(B.installationMethod==="web-npm"||B.installationMethod==="web-npm-bundled"){const{default:f}=await import("./view-6rLSr2_l.js");f.configure(B),te&&window.UserLeap.container&&Pe()}else ue&&(we.src=ue,te&&we.addEventListener("load",()=>{window.UserLeap.container&&Pe()}),P?.addEventListener("error",f=>{f.target instanceof HTMLScriptElement&&f.target.src===ue&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));ee?.appendChild(we);const Ce={success:!0,surveyState:"ready",surveyId:S,responseGroupUid:h};return window.UserLeap.isMobileSDK&&s&&(Ce.delay=s),Ce};function ve(e){var t;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const n=((t=window.UserLeap.windowDimensions)==null?void 0:t.width)??document.body.clientWidth;return fe(e)||n>10&&n<Tt}function fe(e){return zt.includes(e["userleap-platform"])}const he="ul-frame";window.UserLeap&&window.Sprig&&(window.Sprig._gtm?window.Sprig=window.UserLeap:window.UserLeap=window.Sprig),window.UserLeap||(window.UserLeap=window.Sprig),window.Sprig||(window.Sprig=window.UserLeap);const Bt="rgba(255,255,255, 0.95)",qt="rgba(0,0,0,0.9)",be="0px",Ve=(e,t)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${e&&"ul-container-feedback"}`;const n=Ye();t&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},He=(e,t)=>{var n;Gt();const o=window.UserLeap.container;if(o)try{(n=o.parentNode)==null||n.removeChild(o),window.UserLeap.container=null,E("trackStartUrl",null),p.emit(u.SurveyLifeCycle,{state:"dismissed"}),p.emit(u.SurveyClosed,{name:u.SurveyClosed,initiator:e,studyType:t})}catch(r){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${e} `+o),r instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",r)}},Ge=()=>{p.once(u.SurveyWillClose,({initiator:e,studyType:t})=>{p.removeAllListeners(u.CloseSurveyOnOverlayClick),He(e,t)})},Wt=(e,t)=>{const n={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},o=t?e.overlayStyleMobile:e.overlayStyle;n["background-color"]=o==="light"?Bt:qt,t||(n.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,n)},$t=(e,t,n,o)=>{var r,i;const s={position:"fixed",bottom:"0px",right:be,border:0,backgroundColor:"rgba(0,0,0,0)",zIndex:2147483646,transition:"width 0.2s ease-in-out, height 0.2s ease-in-out",maxWidth:"100%"},a=Object.assign({},t,window.UserLeap),{desktopDisplay:d}=t||{},c=d==="center-modal";c&&(a.framePosition="center");let l,w=!1;if(n)(r=window.UserLeap.windowDimensions)!=null&&r.width?s.width=`${window.UserLeap.windowDimensions.width}px`:s.width="100%",(i=window.UserLeap.windowDimensions)!=null&&i.height?s.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?s.maxHeight=window.UserLeap.maxHeight:s.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(a.overlayStyleMobile)&&(w=!0);else{s.width=ze,s.maxHeight=window.UserLeap.maxHeight||"66vh";const g=()=>{w=!0,l={margin:"auto",position:"static"}};if(o)c?g():l={position:"relative",height:"300px"};else switch(a.framePosition){case"bottomLeft":l={left:be};break;case"topLeft":l={left:be,top:0};break;case"topRight":l={top:0};break;case"center":g();break}}return w&&Wt(a,n),Object.assign(e.style,s,l),w},Vt=({productConfig:e,useMobileStyling:t,surveyId:n,isFeedback:o})=>{var r,i;const s=he,a=o&&e.desktopDisplay==="slider";Ve(o,a),Ht();const d=document.createElement("iframe");d.id=s,d.setAttribute("title","Sprig User Feedback Dialog");const c=$t(d,e,t,o);Ge();let l=!1;d.setHeight=m=>{(parseInt(d.style.height)!=m||!l)&&(l=!0,d.style.height=`${m}px`,p.emit(u.SurveyHeight,{name:u.SurveyHeight,contentFrameHeight:m}))};let w=!1;d.setWidth=m=>{(parseInt(d.style.width)!=m||!w)&&(w=!0,d.style.width=`${m}px`,p.emit(u.SurveyWidth,{name:u.SurveyWidth,contentFrameWidth:m}))},(r=window.UserLeap.container)==null||r.appendChild(d),e&&(t?e.exitOnOverlayClickMobile:e.exitOnOverlayClick)&&window.UserLeap.container&&(window.UserLeap.container.onclick=()=>{p.emit(u.CloseSurveyOnOverlayClick)}),p.emit(u.SurveyLifeCycle,{state:"presented"}),p.emit(u.SurveyPresented,{name:u.SurveyPresented,"survey.id":n});const g=(i=d.contentWindow)==null?void 0:i.document;if(g&&(g.open("text/html","replace"),g.write("<!doctype html><head></head><body></body></html>"),g.close(),!t)){const m=g.body;m.style.display="flex",m.style.alignItems="center"}const v=g?.head;return{frameId:s,contentWinDocHead:v,contentWindow:d.contentWindow,hasOverlay:c,iframe:d}},Ke={[u.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},Ht=()=>{Object.entries(Ke).forEach(([e,t])=>{p.on(e,t)})},Gt=()=>{Object.entries(Ke).forEach(([e,t])=>{p.off(e,t)})},Kt=1,Je=e=>e instanceof HTMLElement||e instanceof SVGElement,H=({document:e,elementId:t,styleString:n,nonce:o})=>{const r=e.getElementById(t);if(r){r.textContent=n;return}const i=e.createElement("style");o&&(i.nonce=o),i.textContent=n,i.id=t,e.head.appendChild(i)},Qe=e=>{const t=e.querySelector(".ul-card__container");let n=600,o=360;if(t){n=t.scrollHeight;const r=getComputedStyle(t),i=parseFloat(r.marginTop)+parseFloat(r.marginBottom),s=parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),a=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);n+=i+s+a;const d=t.querySelector(".ul-card--matrix_grid");o=d?d.scrollWidth:t.scrollWidth;const c=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),l=parseFloat(r.marginLeft)+parseFloat(r.marginRight),w=parseFloat(r.borderLeftWidth)+parseFloat(r.borderRightWidth);o+=l+w+c}return[n+Kt,o]},Jt=e=>{const t=e.querySelector(".ul-card__container");t&&(t.scrollTop=0)},Ye=()=>y,q=()=>document.getElementById("sprig-feedback-container"),Le=()=>document.getElementById("sprig-feedback-loading-animation"),Qt=()=>{if(Le())return;const e=document.createElement("div");return e.className="ul-loading-spinner-container",e.id="sprig-feedback-loading-animation",e.role="progressbar",e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true"),e.setAttribute("aria-label","Processing..."),e.innerHTML=`
2
+ <div class="ul-loading-spinner">
3
+ <div class="first"></div>
4
+ <div class="second"></div>
5
+ <div class="third"></div>
6
+ <div class="fourth"></div>
7
+ </div>
8
+ `,e},Xe=()=>!!document.getElementById(he);let Ze=!1,y=null,A=null,Ue=!1,G=null,K=null;const Yt=["bottom-left","bottom-right","center-left","center-right"],Xt=e=>{if(q()||!Yt.includes(e))return;const[t,n]=e.split("-"),o=document.createElement("div");o.id="sprig-feedback-container",o.classList.add(`sprig-feedback-container-${n}`,`sprig-feedback-container-${t}`),document.body.appendChild(o)},re=()=>{var e;const t=window.UserLeap.container;return((e=t?.parentElement)==null?void 0:e.id)==="sprig-feedback-loading-container"},et=()=>document.getElementById("sprig-feedback-error-container"),tt=()=>{if(!y)return 0;const e=y?.clientWidth,t=window.getComputedStyle(y),n=parseInt(t.borderRightWidth||"0"),o=parseInt(t.borderLeftWidth||"0");return e+n+o},ne=e=>{const t=q();t&&(K!=null&&K.endsWith("right")?t.style.right=`${e}px`:K!=null&&K.endsWith("left")&&(t.style.left=`${e}px`))},Se=()=>{if(y&&(re()||et())){p.off(u.SurveyAppeared,J),ke();const e=tt();return ne(-e),!0}return!1},J=()=>{if(!y||!A)return;const e=Le();e&&e.remove(),y.style.height="auto",y.style.width="auto",A.disabled=!1,Ue=!1},ke=()=>{if(y&&!Le()){const e=Qt();e&&(y.style.height="300px",y.style.width="360px",y.appendChild(e))}},rt=()=>{!y||!A||(ne(0),A.disabled=!0,Ue=!0)},Zt=async e=>{const t=await D(x("1",[C],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:e}),method:"POST"});return t.ok?t.json:null},nt=async(e,t,n)=>{const{buttonTheme:o,customStyles:r,eventId:i,placement:s,desktopDisplay:a,feedbackLabel:d,surveyUuid:c,surveyId:l}=e;window.UserLeap.feedbackCustomStyles=void 0;let w=q();if(w){if(!t&&i===G)return;w.remove(),p.off($.SURVEY_FADING_OUT,Se)}G=i,H({document,elementId:"sprig-feedback-style",styleString:At,nonce:window.UserLeap.styleNonce}),H({document,elementId:"ul-custom-style",styleString:r??"",nonce:window.UserLeap.styleNonce}),Ze=a==="center-modal",K=s;const[g,v]=s.split("-");Xt(s),w=q(),A=document.createElement("button");const m=document.createElement("div");m.className="sprig-feedback-button-label",m.innerText=d,A.appendChild(m),A.id="sprig-feedback-button",A.classList.add(`sprig-feedback-button-${v}`,`sprig-feedback-button-${g}`,`sprig-feedback-button-${o}`,"fade-in-transition"),p.on($.SURVEY_FADING_OUT,Se),A.addEventListener("click",async()=>{const I=document.getElementById("sprig-feedback-error-container");if(Xe()||et()){if(Se()){p.emit(u.SurveyWillClose,{name:u.SurveyWillClose,initiator:F.FeedbackClosed,studyType:"feedbackButton"});const O=q();I&&O&&(O.remove(),G=null,y=null)}return}const b=M(window.UserLeap);if(!ve(b)&&!Ue&&rt(),t){y&&y.classList.add("sprig-feedback-loading-container-previews"),await V(t),J();return}const k=await Zt(c);if(k)p.once(u.SurveyAppeared,J),V({...k,studyType:"feedbackButton"},n);else if(y){const O=tr();y.appendChild(O),J(),y.style.height="300px",y.style.width="360px"}}),w?.appendChild(A),p.emit(u.FeedbackButtonLoaded,{name:u.FeedbackButtonLoaded,"survey.id":l});const{useMobileStyling:h,_config:{border:S}}=window.UserLeap;if(!Ze&&!h){const I=document.createElement("div");I.id="sprig-feedback-loading-container",I.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${v}`,I.style.setProperty("--feedback-border",S),y=I,ke(),w?.appendChild(I);const b=tt();ne(-b)}else ne(0);window.UserLeap._config.isOnQuestionsTab&&t&&!re()&&y&&(rt(),ke(),y&&y.classList.add("sprig-feedback-loading-container-previews"),V(t),J())},er=()=>{if(re())return;const e=q();e&&(St(G)||(e.remove(),G=null,y=null))},tr=()=>{const e=document.createElement("div");e.id="sprig-feedback-error-container",e.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
9
+ <circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
10
+ <path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
11
+ <circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
12
+ </svg>`;const t=document.createElement("h3");return t.className="sprig-feedback-error-text",t.innerText="There was an error while loading the survey",e.appendChild(t),e},rr="!launch_darkly_";class nr{constructor(){W(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(t){try{return!t||typeof t!="object"||Array.isArray(t)?!1:(Object.keys(this._ldData).forEach(n=>{delete this._ldData[n]}),Object.keys(t).forEach(n=>this._ldData[`${rr}${n}`]=(t[n]??0)+1),!0)}catch(n){return n instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",n),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}}const Ie=new nr;Object.freeze(Ie);const ir="!optimizely_experiments_";class or{constructor(){W(this,"_optimizelyData",{})}setOptimizelyExperiment(t,n=!0){if(!t||typeof t!="object")return!1;const{experiments:o}=t;try{return n&&Object.keys(this._optimizelyData).map(r=>{delete this._optimizelyData[r]}),o&&o.map(r=>{const{id:i,variation:s}=r,a=this.transformExperimentId(i);s&&typeof s=="string"&&(this._optimizelyData[a]=s)}),!0}catch(r){return r instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",r),!1}}getAllOptimizelyExperiments(){return this._optimizelyData}getOptimizelyVariationName(t){return this._optimizelyData[this.transformExperimentId(t)]}transformExperimentId(t){return ir+t}getAndSetWebOptimizelyExperiments(){var t;try{if(window&&window.optimizely&&typeof window.optimizely.get=="function"){const n=(t=window.optimizely.get("state"))==null?void 0:t.getExperimentStates({isActive:!0});if(n){const o=Object.keys(n).map(r=>{var i,s;return(i=n[r].variation)!=null&&i.name?{id:r,variation:(s=n[r].variation)==null?void 0:s.name}:{id:r,variation:"Original"}});return this.setOptimizelyExperiment({experiments:o},!1),!0}return!1}return!1}catch(n){return n instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",n),!1}}}const ie=new or;Object.freeze(ie);class sr{constructor(t,n){W(this,"paused"),W(this,"queue"),W(this,"ul"),this.ul=t,this.paused=!1,this.queue=[],this.flush(n)}flush(t){const n=t.length;if(n)for(let o=0;o<n;o++)this.push(t[o])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const t=this.queue.slice();this.empty(),this.flush(t)}push(t){if(this.paused)this.queue.push(t);else if(t instanceof Function)t();else{const n=Array.prototype.slice.call(t,1),o=t[0],r=this.ul[o];r instanceof Function?r.apply(this.ul,n):o&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",o)}}perform(t){if(this.paused){let n=()=>{};const o=new Promise(function(r){n=function(){r(t())}});return this.queue.push(n),o}else return t()}empty(){this.queue.length=0}}let it,ot;const Ee=e=>{let t=0,n=e.firstElementChild;for(;n;)t+=Ee(n),n.shadowRoot&&(t+=Ee(n.shadowRoot)),n=n.nextElementSibling,t++;return t},ar=()=>document.documentElement.innerHTML.length,st=()=>{it.report(Ee(document.body)),ot.report(ar())},dr=(e=10*1e3)=>{it=j("sdk_dom_nodes_count"),ot=j("sdk_page_html_characters"),st(),setInterval(st,e)},_e=(e,t)=>{const n=performance.now();document.hidden?setTimeout(()=>_e(e,t),e):setTimeout(()=>{const o=performance.now()-n;t.report(o/1e3),setTimeout(()=>_e(e,t),e)},0)},lr=(e=1e3)=>{const t=j("sdk_event_queue_latency_seconds");_e(e,t)};let oe,se,ae,de,N={},at;const le=(e,t=1)=>{const{name:n}=e;N[n]=(N[n]||0)+t},dt=e=>{let t=1;return e.childNodes.forEach(n=>{t+=dt(n)}),t},lt=e=>{let t=0;return e.forEach(n=>{t+=dt(n)}),t},cr=e=>{switch(e.type){case"childList":le(oe,lt(e.addedNodes)),le(se,lt(e.removedNodes));return;case"attributes":le(ae);return;case"characterData":le(de);return}},pr=e=>e.forEach(cr),ur=()=>{at=new MutationObserver(pr),at.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0})},wr=()=>{oe.report(N[oe.name]||0),se.report(N[se.name]||0),ae.report(N[ae.name]||0),de.report(N[de.name]||0),N={}},gr=(e=1*1e3)=>{oe=j("sdk_mutations_nodes_added"),se=j("sdk_mutations_nodes_removed"),ae=j("sdk_mutations_attributes_changed"),de=j("sdk_mutations_character_data"),ur(),setInterval(wr,e)},mr=({webMetricsEnabled:e,reportingIntervalSeconds:t,thresholds:n,postMetrics:o})=>{kt(n,(r,i)=>{var s,a;if((s=U.replay)!=null&&s.isReplayRecording()){const d=`Value: ${r} on ${i.metric} violated threshold of ${i.type} ${i.value}`;(a=U.replay)==null||a.disableRecording("Threshold violated",new Error(d),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:i.metric,type:i.type,value:i.value},{metricName:i.metric}),Et()}}),It({reportingIntervalSeconds:t,postMetrics:o}),e&&(lr(),dr(),gr())},yr={test:"test"},vr=["popState","pushState","replaceState"],Q="!email",ct="pageUrl";function fr(e,t){const{pageUrlEvents:n,interactiveEvents:o,dismissOnPageChange:r}=window.UserLeap._config;if(!r)return!0;const i=[];n&&n.length&&i.push(...n),o&&o.length&&i.push(...o);const s=e&&i.find(a=>a.id===e);return s?me(s,window.location.href):t===window.location.href}function Y(e){var t;const{pageUrlEvents:n,interactiveEvents:o,dismissOnPageChange:r,platform:i}=window.UserLeap._config;if(i&&i!=="web")return;const s=z("trackStartUrl"),a=s?String(s):null;n&&gt(window.location.href),o&&(ut(),hr()),Ye()&&er(),Rt.getItem("sprig.isCapturingHeatmap")&&((t=U.replay)==null||t.checkPendingHeatmapsUrl()),!re()&&r&&a&&a!==window.location.href&&e&&vr.includes(e.type)&&window.UserLeap("dismissActiveSurvey",F.PageChange)}const pt={capture:!0},hr=()=>{const e=window.UserLeap._config.interactiveEvents.filter(n=>me(n,window.location.href)).map(n=>{const{name:o,properties:r}=n,{selector:i,innerText:s}=r;return i?a=>{if(Je(a.target))try{a.target.closest(i)&&window.UserLeap("track",o)}catch{}return!1}:a=>(Je(a.target)&&a.target.innerText===s&&window.UserLeap("track",o),!1)}),t=n=>e.forEach(o=>o(n));window.UserLeap._config.interactiveEventsHandler=t,window.addEventListener("click",t,pt)},ut=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,pt),delete window.UserLeap._config.interactiveEventsHandler};function br(){["hashchange","popstate"].forEach(e=>window.addEventListener(e,Y,!0))}function Lr(){["hashchange","popstate"].forEach(e=>window.removeEventListener(e,Y,!0)),window.UserLeap._config.interactiveEvents&&ut()}function Ur(e){const t=new URL(x("1",[T],"questions"));return Object.entries(e||{}).forEach(([n,o])=>{o&&t.searchParams.append(n,String(o))}),t.toString()}function z(e){const t=R.getItem("userleap.ids");if(t)try{const n=JSON.parse(t)[window.UserLeap.envId];return n&&n[e]||null}catch(n){n instanceof Error&&(n.stack=t,window.UserLeap.reportError("Failed to parse local storage credentials",n)),console.warn("[Sprig] (ERR-427) Failed to lookup saved ids",n)}return null}function wt(){window.previewMode||(window.UserLeap.visitorId=Me(),_(`Generating new vid: ${window.UserLeap.visitorId}`),E("vid",window.UserLeap.visitorId),p.emit(u.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId}))}function gt(e,t,n,o){var r,i;try{if(e.endsWith("mock_snippet.html"))return;_(`Tracking page view: ${e}`);const s=window.UserLeap._config.pageUrlEvents;let a=!1;if(s&&s.length)for(let l=0;l<s.length&&(a=me(s[l],e),!a);l++);if(!a)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",e);const d={url:e};o&&(d.trackPageView=!0),window.UserLeap._queue.push(["track",ct,t,d,n]);const c=(r=document?.querySelector('meta[name="description"]'))==null?void 0:r.getAttribute("content");(i=U.replay)==null||i.RecordPageView({...c&&{description:c},url:e,referrer:document.referrer,pageTitle:document.title})}catch(s){s instanceof Error&&(s.stack=e,window.UserLeap.reportError("trackPageView",s)),console.warn("[Sprig] (ERR-428) Failed to track page view",s)}}function Sr(){const e="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in e&&(e.pushState=(t=>function(...n){const o=t.apply(this,n),r=new Event("pushState");return window.dispatchEvent(r),Y(r),o})(e.pushState)),"replaceState"in e&&(e.replaceState=(t=>function(...n){const o=t.apply(this,n),r=new Event("replaceState");return window.dispatchEvent(r),Y(r),o})(e.replaceState)),br()}async function xe(e,t){const n=ye();e&&!t&&(window.UserLeap._config.mode=yr.test);const o=M(window.UserLeap),r=ve(o),i=await D(Ur({desktopDisplay:window.UserLeap._config.desktopDisplay,isMobile:r,previewLanguage:window.UserLeap._config.previewLanguage,surveyid:e?.surveyId,surveytemplateid:e?.surveyTemplateId,vid:n}),{shouldDropOnRateLimit:!0});if(!i.ok)return i.reportError&&i.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",i.error),window.UserLeap.reportError("getQuestions",i.error)),{success:!1,surveyState:"no survey"};if(i.json.delay&&await Ne(i.json.delay),i.json.isFeedback){const{feedbackLabel:s,productConfig:a,surveyUuid:d,feedbackCustomStyles:c}=i.json,{buttonTheme:l,placement:w,desktopDisplay:g}=a,v={customStyles:c,buttonTheme:l,desktopDisplay:g,eventId:0,feedbackLabel:s,placement:w,surveyUuid:d,surveyId:e?.surveyId};nt(v,i.json)}else return V(i.json)}function kr(e){let t=e.length;for(;t;){const n=Math.floor(Math.random()*t);t-=1;const o=e[t];e[t]=e[n],e[n]=o}}function Ir(e){if(!e)return;window.UserLeap._config=e,e.mute&&window.UserLeap._queue.pause();const{interactiveEvents:t,pageUrlEvents:n,dismissOnPageChange:o}=e;t&&kr(t),(t||n||o)&&(Sr(),Y())}async function Er(e,t){var n,o;let r=!0;return t&&(n=e?.json)!=null&&n.surveyId&&(window.UserLeap.delayingSurvey=!0,r=await t(e.json.surveyId),window.UserLeap.delayingSurvey=!1,!r)?!1:((o=e?.json)!=null&&o.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await Ne(e.json.delay),window.UserLeap.delayingSurvey=!1),r)}const _r=function(e){if(!window.UserLeap)return;const t=async(r={})=>{var i,s,a,d,c;const{userId:l,anonymousId:w,metadata:g={},properties:v,showSurveyCallback:m}=r;let{eventName:h}=r;if(window.UserLeap.debugMode&&h!==ct&&console.info("[DEBUG] Sprig track",r),e.mode==="test")return;const S=R.getItem("sprig.previewKey")??void 0;if(e.requireUserIdForTracking&&!window.UserLeap.userId&&!l){const L="[Sprig] - Skipping tracking without userId";return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}if(!h||h.trim().length===0){h=h?String(h):"";const L="[Sprig] - Invalid event name "+h;return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}const I=window.location.href;if(g.url||(g.url=I),E("trackStartUrl",I),(s=(i=window.UserLeap)==null?void 0:i._config)!=null&&s.optimizelyEnabled){const L=M(window.UserLeap);fe(L)||ie.getAndSetWebOptimizelyExperiments(),g.optimizelyExperiments=Object.assign({},ie.getAllOptimizelyExperiments())}(d=(a=window.UserLeap)==null?void 0:a._config)!=null&&d.launchDarklyEnabled&&(g.launchDarklyFlags=Ie.getAllLaunchDarklyVariations()),l&&(window.UserLeap.userId=l),w&&(window.UserLeap.partnerAnonymousId=w),v&&(g.eventProperties=v),(c=U.replay)==null||c.RecordEvent({name:h,url:g.url}),_(`Tracking event: ${h}`);const b=window.UserLeap.delayingSurvey||Xe()?await D(x("1",[C],"events/batch"),{body:JSON.stringify({events:[{event:h,metadata:g}],previewKey:S}),method:"POST",shouldDropOnRateLimit:!0}):await D(x("1",[C],"events"),{body:JSON.stringify({event:h,metadata:g,previewKey:S}),method:"POST",shouldDropOnRateLimit:!0});if(!b.ok){const L="[Sprig] (ERR-421) Failed to track event";return b.reportError&&(console.warn(L,b.error),b.error&&window.UserLeap.reportError("track",b.error)),{success:!1,message:L,error:b.error,surveyState:"no survey"}}l&&E("uid",l),w&&E("aid",w);const k=b.json;k.invalidPreviewKey&&R.removeItem("sprig.previewKey");const O=g.trackPageView?g.url:void 0;return k!=null&&k.feedbackButton&&nt(k.feedbackButton,void 0,O),await Er(b,m)?fr(k.eventId,I)?V(k,O):{success:!1,message:"Study should not be displayed after page navigation",surveyState:"no survey"}:{success:!1,message:"[Sprig] Callback returned false, aborting rendering of survey",surveyState:"no survey"}},n=(r,i)=>{var s;const a=(s=r?.querySelector(`[id="${he}"]`))==null?void 0:s.contentDocument;a&&H({document:a,elementId:"ul-custom-style",styleString:i})},o={async displaySurvey(r){return console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),window.UserLeap("dismissActiveSurvey",F.Override),xe({surveyId:r},!0)},_previewSurvey(r){window.UserLeap("dismissActiveSurvey",F.Override),xe({surveyTemplateId:r},!1)},_reviewSurvey(r){window.UserLeap("dismissActiveSurvey",F.Override),xe({surveyId:r},!1)},previewSurvey(r){o._previewSurvey(r)},reviewSurvey(r){o._reviewSurvey(r)},mute(){window.UserLeap._queue.pause()},unmute(){window.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(r=F.API){p.emit(u.SurveyWillClose,{name:u.SurveyWillClose,initiator:r})},async setAttribute(r,i){if(!r||!i&&i!==0&&i!==!1){const s="[Sprig] - Disregarding empty attribute / value provided";return console.warn(s),{success:!1,message:s}}return this.setAttributes({[r]:i})},async setAttributes(r){if(r==null||Object.keys(r).length===0){const i="[Sprig] - Disregarding empty attributes provided";return console.warn(i),{success:!1,message:i}}return this.identifyAndSetAttributes({attributes:r})},async identifyAndSetAttributes(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",r),e.mode==="test")return;if(r===null||typeof r!="object"||!(r.userId||r.anonymousId||r.attributes)){const l="[Sprig] - Disregarding empty payload provided";return console.warn(l),{success:!1,message:l}}const{userId:i,anonymousId:s,attributes:a}=r;if(e.requireUserIdForTracking&&!window.UserLeap.userId&&!i){const l="[Sprig] - Skipping tracking without userId";return console.warn(l),{success:!1,message:l}}if(!a&&(!i||window.UserLeap.userId===i)&&(!s||window.UserLeap.partnerAnonymousId===s))return{success:!0};const d={};i&&(d.userId=window.UserLeap.userId=i),s&&(d.partnerAnonymousId=window.UserLeap.partnerAnonymousId=s);let c;return a?(a.email&&!Object.prototype.hasOwnProperty.call(a,Q)&&(a[Q]=a.email,delete a.email),_(`Setting attributes: ${JSON.stringify(a)}`),c=await D(x("1",[T,C],"attributes"),{body:JSON.stringify(a),method:"PUT"}),!c.ok&&c.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",c.error),c.error&&window.UserLeap.reportError("identifyAndSetAttributes",c.error))):c=await D(x("1",[T,C]),{body:JSON.stringify(d),method:"PUT"}),a&&a[Q]&&(window.UserLeap.email=a[Q]),c.ok&&(i&&E("uid",i),s&&E("aid",s)),{success:!!c.ok}},async removeAttributes(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",r),e.mode==="test")return;if(r==null||r.length===0){const s="[Sprig] - Disregarding empty attributes provided";return console.warn(s),{success:!1,message:s}}if(e.requireUserIdForTracking&&!window.UserLeap.userId){const s="[Sprig] - Skipping tracking without userId";return console.warn(s),{success:!1,message:s}}const i=await D(x("1",[T,C],"attributes"),{body:JSON.stringify({delete:r}),method:"DELETE"});return!i.ok&&i.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",i.error),i.error&&window.UserLeap.reportError("removeAttributes",i.error)),{success:!!i.ok}},async addSurveyListener(r){p.on(u.SurveyLifeCycle,r)},async removeSurveyListener(r){p.removeListener(u.SurveyLifeCycle,r)},async addListener(r,i){p.on(r,i)},async removeListener(r,i){p.removeListener(r,i)},async removeAllListeners(){p.removeAllListeners()},setPreviewKey(r){!r||typeof r!="string"||R.isStorageAvailable&&r&&R.setItem("sprig.previewKey",r)},async setUserId(r){var i;if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",r),r==null){const d=`[Sprig] - Invalid userId ${r}`;return console.warn(d),{success:!1,message:d}}if(e.mode==="test"||r===window.UserLeap.userId)return;window.UserLeap.userId=r;const s=window.UserLeap.visitorId,a=await D(x("1",[T,C]),{body:JSON.stringify({userId:r}),method:"PUT"});if(!a.ok){a.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",a.error),a.error&&window.UserLeap.reportError("setUserId",a.error));return}s!==window.UserLeap.visitorId&&((i=U.replay)==null||i.clearUserReplayData()),E("uid",r)},async setPartnerAnonymousId(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",r),r==null){const i=`[Sprig] - Invalid partnerAnonymousId ${r}`;return console.warn(i),{success:!1,message:i}}return window.UserLeap.partnerAnonymousId=r,E("aid",r),{success:!0}},async track(r,i,s={},a=void 0){return t({eventName:r,properties:i,metadata:s,showSurveyCallback:a})},async identifyAndTrack(r){return await t(r)},trackPageView(r,i=void 0,s=void 0,a=!0){gt(r,i,s,a)},applyFeedbackStyles({button:r="",view:i=""}){window.UserLeap.feedbackCustomStyles=i,document.getElementById("sprig-feedback-style")&&H({document,elementId:"ul-custom-style",styleString:r,nonce:window.UserLeap.styleNonce}),n(document.querySelector(".ul-container-feedback"),i)},applyStyles(r){window.UserLeap.customStyles=r,n(window.UserLeap.container,r)},setWindowDimensions(r,i){var s,a;const d=typeof r=="string"?parseInt(r,10):r,c=typeof i=="string"?parseInt(i,10):i;if(!isNaN(d)&&!isNaN(c)&&(window.UserLeap.windowDimensions={width:d,height:c}),!window.UserLeap.frameId)return;const l=document.getElementById(window.UserLeap.frameId);l&&(window.UserLeap.useMobileStyling&&((s=window.UserLeap.windowDimensions)!=null&&s.width&&(l.style.width=`${window.UserLeap.windowDimensions.width}px`),(a=window.UserLeap.windowDimensions)!=null&&a.height&&(l.style.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`),l.contentDocument&&(l.style.height=String(Qe(l.contentDocument)[0])+"px")),p.emit(u.SurveyDimensions,{name:u.SurveyDimensions,contentFrameWidth:l.clientWidth,contentFrameHeight:l.clientHeight}))},logoutUser(){var r;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),_(`Logging out user: ${window.UserLeap.userId} / vid: ${window.UserLeap.visitorId}`),window.UserLeap.visitorId=null,window.UserLeap.userId=null,window.UserLeap.partnerAnonymousId=null,window.UserLeap.token=null,window.UserLeap.email=null,R.removeItem("userleap.ids"),window.UserLeap._queue.isPaused()&&window.UserLeap._queue.empty(),wt(),(r=U.replay)==null||r.clearUserReplayData(),window.UserLeap._queue.unpause()},teardown(){Lr(),window.UserLeap("dismissActiveSurvey",F.API),delete window.UserLeap,delete window.Sprig,delete window._Sprig},integrateOptimizely(r,i=!0){var s,a;if(!((a=(s=window.UserLeap)==null?void 0:s._config)!=null&&a.optimizelyEnabled)){console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");return}try{const d=typeof r=="string"?JSON.parse(r):r;ie.setOptimizelyExperiment(d,i)}catch(d){console.warn("[Sprig] Error with integrating Optimizely data"),d instanceof Error&&window.UserLeap.reportError("integrateOptimizely",d)}},integrateOptimizelyClient(r){var i,s;if(!((s=(i=window.UserLeap)==null?void 0:i._config)!=null&&s.optimizelyEnabled)){console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");return}const a=({experiment:d,variation:c})=>{const l={experiments:[{id:d.id,variation:c.key}]};window.UserLeap("integrateOptimizely",l,!1)};r.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",a)},importLaunchDarklyData(r){var i,s;if(!((s=(i=window.UserLeap)==null?void 0:i._config)!=null&&s.launchDarklyEnabled)){console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.");return}Ie.setLDFlagsVariations(r)},setVisitorAttribute(r,i){return console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),o.setAttribute(r,i)},async setEmail(r){return o.setAttribute(Q,r)},async setVisitorEmail(r){return console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),o.setEmail(r)},async _generateVideoUploadUrl(r){return Ar(r)},_reportMetric(r,i){Dt(r,i)},async _completeSessionReplay({surveyId:r,responseGroupUuid:i,eventDigest:s}){var a;return U.replay?(a=U.replay)==null?void 0:a._completeSessionReplay({surveyId:r,responseGroupUuid:i,eventDigest:s,headers:M(window.UserLeap)}):(window.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)}};Object.assign(window.UserLeap,o)};async function xr(e){const t=M(window.UserLeap);document.addEventListener("securitypolicyviolation",Fe);const n=await Te(x("1",[T],"config"),{headers:t});if(document.removeEventListener("securitypolicyviolation",Fe),!n.ok)return n.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",n.error),n.error&&window.UserLeap.reportError("applyRemoteConfig",n.error)),je("Disabled: failed to fetch configuration"),e;const o=n.json;return o!=null&&o.disabled?(je(`Disabled: ${o.disabled}`),{disabled:o.disabled}):Object.assign({},o,e)}const Rr=e=>typeof e=="object"&&e&&"inner"in e&&!!e.inner&&typeof e.inner=="object";async function Dr(e,t,n={},o={}){var r,i;const s=window.__cfg&&window.__cfg.mode,a=ye(),d=window.UserLeap.envId,c=window.document.documentElement,l=Rr(t)?{inner:{message:(r=t.inner)==null?void 0:r.message,stack:(i=t.inner)==null?void 0:i.stack}}:{},w={mode:s,screenWidth:window.screen.width,screenHeight:window.screen.height,clientWidth:c.clientWidth,clientHeight:c.clientHeight,location:window.location.href,language:window.navigator.language,...n,...l},g={action:e,err:{message:t.message,stack:t.stack},meta:w,vid:a,envId:d,...o},v=await D(x("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(g),shouldDropOnRateLimit:!0});if(!v.ok)console.warn("[Sprig] (ERR-444) Failed to report error to API",t);else{const{presignedUrl:m}=v.json;xt(m)}}async function Ar(e){var t;if(!e)return;const n=`${window.UserLeap._API_URL}/2/environments/integrations/upload`;try{const o=await fetch(n,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(o.ok){const r=await o.json();return(t=r?.upload)==null?void 0:t.url}else return null}catch(o){console.warn("[Sprig] Error with generating video upload url"),o instanceof Error&&window.UserLeap.reportError("generateVideoUploadUrl",o)}}function Or(e={}){const t=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";window.UserLeap.UPDATES=$,window.UserLeap("setPreviewKey",t);async function n(){var o;if(window.UserLeap.loaded)return;if(_("Loading sprig on page load"),window.UserLeap.reportError=Dr,window.UserLeap.loaded=!0,window.UserLeap._config=Object.assign({},e,window.UserLeap.config),window.UserLeap.delayingSurvey=!1,window.UserLeap._config&&typeof window.UserLeap._config=="object")for(const d in window.UserLeap._config)window.UserLeap[d]=window.UserLeap._config[d];if(!window.UserLeap.envId)if(window.UserLeap.appId)window.UserLeap.envId=window.UserLeap.appId;else throw new Error("Missing Environment id");window.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const r=window.UserLeap.sampleRate;if(r){let d=z("sampled");if(d===null&&(d=Math.random()<r,E("sampled",d)),!d)return}else z("sampled")!==null&&E("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const i=[...window.UserLeap._queue];window.UserLeap._queue=new sr(window.UserLeap,[]),window.UserLeap._queue.pause();for(let d=0;d<i.length;d++)window.UserLeap._queue.push(i[d]);const s=z("token");s?(window.UserLeap.token=s,window.UserLeap.visitorId=z("vid"),window.UserLeap.userId=z("uid"),window.UserLeap.partnerAnonymousId=z("aid")):(R.removeItem("userleap.ids"),wt());const a=await xr(e);mr({webMetricsEnabled:a.metricsReportingEnabled,reportingIntervalSeconds:a.metricsReportingEnabled||a.mobileMetricsReportingEnabled?a.metricsReportingIntervalSeconds:0,thresholds:a.metricThresholds,postMetrics:async d=>{var c;await D(x("1",[T],"metrics"),{body:d,method:"POST",headers:{"x-ul-replay-enabled":`${!!((c=U.replay)!=null&&c.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),(o=U.replay)==null||o.initializeReplay({viewDocument:window.document,maxReplayDurationSeconds:a.maxReplayDurationSeconds,replayNonce:window.UserLeap.replayNonce,maxInflightRequests:window.UserLeap.maxInflightReplayRequests??2,replaySettings:a.replaySettings}),_t(a.logBufferLimit,a.logLevel),_r(a),await Ir(a),window.UserLeap._queue.unpause(),p.emit(u.SDKReady,{mobileMetricsReportingEnabled:!!a.mobileMetricsReportingEnabled,metricsReportingInterval:a.metricsReportingIntervalSeconds||0,metricsThresholds:a.metricThresholds||[],maxMobileReplayDurationSeconds:a.maxMobileReplayDurationSeconds,mobileReplaySettings:a.mobileReplaySettings}),p.emit(u.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}document.readyState==="complete"?n():window.attachEvent?window.attachEvent("onload",n):window.addEventListener("load",()=>{n()},!1)}class ce{constructor(){this.UPDATES=$}displaySurvey(t){window.Sprig("displaySurvey",t)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(t,n){window.Sprig("setAttribute",t,n)}setAttributes(t){window.Sprig("setAttributes",t)}identifyAndSetAttributes(t){window.Sprig("identifyAndSetAttributes",t)}removeAttributes(t){window.Sprig("removeAttributes",t)}addListener(t,n){window.Sprig("addListener",t,n)}removeListener(t,n){window.Sprig("removeListener",t,n)}removeAllListeners(){window.Sprig("removeAllListeners")}setEmail(t){window.Sprig("setAttribute","!email",t)}setUserId(t){window.Sprig("setUserId",t)}setPartnerAnonymousId(t){window.Sprig("setPartnerAnonymousId",t)}track(t,n={},o={}){window.Sprig("track",t,n,o)}identifyAndTrack(t){window.Sprig("identifyAndTrack",t)}trackPageView(t,n,o){window.Sprig("trackPageView",t,n,o)}applyStyles(t){window.Sprig("applyStyles",t)}setWindowDimensions(t,n){window.Sprig("setWindowDimensions",t,n)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}}const Re={configure:e=>{if(!e.envId&&!e.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(e.envId||(e.envId=e.environmentId??""),e.installationMethod="web-npm",window.Sprig)return window.Sprig;window.Sprig=function(){window.Sprig._queue.push(arguments)},Object.getOwnPropertyNames(ce.prototype).map(n=>{n!=="constructor"&&(window.Sprig[n]=ce.prototype[n])});const t=window.Sprig;return t.appId=e.envId,t._queue=[],window.UserLeap=t,Or(e),window.Sprig}},Pr={sprig:Re,SprigAPI:ce,configure:Re.configure};export{Ot as A,We as C,ze as D,Mt as E,ce as S,Qe as a,Ct as b,Pr as c,Pt as d,H as e,Jt as r,Re as s};
@@ -0,0 +1,12 @@
1
+ "use strict";var st=Object.defineProperty;var at=(e,t,n)=>t in e?st(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var F=(e,t,n)=>(at(e,typeof t!="symbol"?t+"":t,n),n);const i=require("./metricsReporter-Bf3t9izL.cjs"),dt='.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}',Pe="360px",lt="ul-app",ct="#e6e6e6",pt="#bd282a",ut=500,wt=1030,Ce=()=>{try{return window.parent.Intercom}catch{return null}},gt=()=>{const e=Ce();e&&(e.ul_wasVisible&&e("update",{hide_default_launcher:!1}),delete e.ul_wasVisible)},ft=()=>{const e=Ce();e&&(e.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),e.ul_wasVisible&&e("update",{hide_default_launcher:!0}))},mt=Object.freeze(Object.defineProperty({__proto__:null,disable:ft,enable:gt},Symbol.toStringTag,{value:"Module"})),Ie=[mt];class Me{static disable(){Ie.forEach(t=>t.disable())}static enable(){Ie.forEach(t=>t.enable())}}const _e="ul-view-sdk-script",yt=["ios","android"],D="visitors",O="environments";async function I(e,t){var o,a,d;const{shouldDropOnRateLimit:n,...s}=t;s.headers=Object.assign(i.getHttpHeaders(window.UserLeap),s.headers);const r=await i.sprigFetch(e,{...s,shouldDropOnRateLimit:n});if(r.ok){const l=(o=r.headers)==null?void 0:o.get("Authorization"),p=l?l.split(" "):void 0,c=p&&p.length===2?p[1]:void 0,u=(a=r.headers)==null?void 0:a.get("x-ul-visitor-id");c&&u&&(u!==window.UserLeap.visitorId||window.UserLeap.token!==c)&&(S("token",c),S("vid",u),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:u}),window.UserLeap.token=c,window.UserLeap.visitorId=u)}return(d=r.json)!=null&&d.logMessage&&console.warn(`[Sprig] ${r.json.logMessage}`),r}function S(e,t){const n=i.localStorageHelper.getItem("userleap.ids");let s={};if(n)try{s=JSON.parse(n)}catch(o){o instanceof Error&&(o.stack=n,window.UserLeap.reportError("Failed to parse local storage credentials",o)),console.warn("[Sprig] (ERR-427) Failed to lookup saved ids",o)}let r=s[window.UserLeap.envId];r?r[e]=t:r={[e]:t},s[window.UserLeap.envId]=r;try{i.localStorageHelper.setItem("userleap.ids",JSON.stringify(s))}catch(o){o instanceof Error&&console.warn(`[Sprig] (ERR-426) Unable to write to Local Storage:: ${o.message}`)}}function we(){return window.previewMode?"0":window.UserLeap.visitorId??""}function U(e,t,n){const s=[window.UserLeap._API_URL,"sdk",e];return t&&t.forEach(r=>{s.push(r),r===O?s.push(window.UserLeap.envId):r===D&&s.push(we())}),n&&s.push(n),s.join("/")}const V=async(e,t)=>{var Ee,Ue,ke;const{context:n,delay:s,forceBrandedLogo:r,endCard:o,isFeedback:a=!1,heatmap:d,locale:l,previewMode:p,productConfig:c,questions:u,responseGroupUid:m,surveyId:w,uuid:f,vid:L,sessionReplay:A,studyType:$}=e,v=i.getHttpHeaders(window.UserLeap),R=fe(v),x=ge(v);if(i.info(`Attempting to display survey: ${w}`),A)if(i.info("Survey has replay attached"),R)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:m,hasQuestions:!!(u!=null&&u.length),surveyId:w,uploadId:A.uploadId,replayType:A.replayDurationType??"before",seconds:A.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:m,surveyId:w,updatedAt:new Date().toISOString(),visitorId:window.UserLeap.visitorId,isReplay:!0}});else{if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};i.modules.replay.scheduleOrCaptureReplay({responseGroupId:m,surveyId:w,visitorId:L,replayParams:A,completeUploadHeaders:v,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:u.length===0})}if(d){if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};const{eventId:y,replayParams:ne,responseGroupUid:nt,surveyId:ot}=d;await i.modules.replay.initializeReplay({viewDocument:window.document,maxReplayDurationSeconds:300,replayNonce:window.UserLeap.replayNonce,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0}),i.modules.replay.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:v,eventId:y,isHeatmap:!0,replayParams:ne,responseGroupId:nt,surveyId:ot,triggerTimestamp:Date.now(),visitorId:L})}if(L==null||!(u!=null&&u.length))return i.info(`Not displaying survey: vid: ${L} / questions: ${u}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.info("Already displaying a survey");const y="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(y),{success:!1,message:y,surveyState:"no survey"}}if(L!==window.UserLeap.visitorId&&f!==window.UserLeap.visitorId&&!window.previewMode){const y="Attempted to display survey to a different visitor";return i.info(y),window.UserLeap.reportError("DisplaySurvey",new Error(y)),{success:!1,message:y,surveyState:"no survey"}}i.info(`Showing survey: ${w}`),(Ee=i.modules.replay)==null||Ee.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),Me.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let k,b=document.createElement("div"),h,E,q;const he=y=>{const{"view.version":ne}=y;ne!==v["x-ul-sdk-version"]&&He(),i.eventEmitter.removeListener("verify.view.version",he)};i.eventEmitter.on("verify.view.version",he),window.UserLeap.useMobileStyling=x,i.shouldDirectEmbed(v)?(k="ul-direct-embeded-frame",h=document.head,E=window,q=!1,R&&(Fe(a),b.id=k,window.UserLeap.container.appendChild(b),Ne(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:k,contentWinDocHead:h,contentWindow:E,hasOverlay:q,iframe:b}=bt({productConfig:c,useMobileStyling:x,surveyId:w,isFeedback:a}),window.UserLeap.frameId=k;const tt=y=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,y)},M={apiURL:window.UserLeap._API_URL,cards:u,configureExitOnOverlayClick:tt,context:n,endCard:o,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:r,frame:b,headers:v,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:p,productConfig:{framePosition:c==null?void 0:c.framePosition,desktopDisplay:c==null?void 0:c.desktopDisplay,placement:c==null?void 0:c.placement},responseGroupUid:m,startingQuestionIdx:(Ue=window.UserLeap.config)==null?void 0:Ue.startingQuestionIdx,studyType:$,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:t,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:x,userId:f,viewDocument:E==null?void 0:E.document,viewWindow:E,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(ke=window.UserLeap._config)!=null&&ke.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const rt=(a?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??c.customStyles;M.customStyles=rt,E&&(E.__cfg=M);function it(){const y=document.createElement("script");return window.UserLeap.nonce&&y.setAttribute("nonce",window.UserLeap.nonce),y.id=_e,y}const re=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:M.path,Se=document.getElementById(_e);Se&&Se.remove();const ie=it(),Le=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(M.installationMethod==="web-npm"||M.installationMethod==="web-npm-bundled"){const{default:y}=await Promise.resolve().then(()=>require("./view-CKowJqLv.cjs"));y.configure(M),q&&window.UserLeap.container&&Le()}else re&&(ie.src=re,q&&ie.addEventListener("load",()=>{window.UserLeap.container&&Le()}),E==null||E.addEventListener("error",y=>{y.target instanceof HTMLScriptElement&&y.target.src===re&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));h==null||h.appendChild(ie);const be={success:!0,surveyState:"ready",surveyId:w,responseGroupUid:m};return window.UserLeap.isMobileSDK&&s&&(be.delay=s),be};function ge(e){var n;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const t=((n=window.UserLeap.windowDimensions)==null?void 0:n.width)??document.body.clientWidth;return fe(e)||t>10&&t<ut}function fe(e){return yt.includes(e["userleap-platform"])}const me="ul-frame";window.UserLeap&&window.Sprig&&(window.Sprig._gtm?window.Sprig=window.UserLeap:window.UserLeap=window.Sprig);window.UserLeap||(window.UserLeap=window.Sprig);window.Sprig||(window.Sprig=window.UserLeap);const vt="rgba(255,255,255, 0.95)",ht="rgba(0,0,0,0.9)",oe="0px",Fe=(e,t)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${e&&"ul-container-feedback"}`;const n=We();t&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},He=(e,t)=>{var s;Ut();const n=window.UserLeap.container;if(n)try{(s=n.parentNode)==null||s.removeChild(n),window.UserLeap.container=null,S("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:e,studyType:t})}catch(r){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${e} `+n),r instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",r)}},Ne=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:e,studyType:t})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),He(e,t)})},St=(e,t)=>{const s={...{position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646}},r=t?e.overlayStyleMobile:e.overlayStyle;s["background-color"]=r==="light"?vt:ht,t||(s.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,s)},Lt=(e,t,n,s)=>{var c,u;const r={position:"fixed",bottom:"0px",right:oe,border:0,backgroundColor:"rgba(0,0,0,0)",zIndex:2147483646,transition:"width 0.2s ease-in-out, height 0.2s ease-in-out",maxWidth:"100%"},o=Object.assign({},t,window.UserLeap),{desktopDisplay:a}=t||{},d=a==="center-modal";d&&(o.framePosition="center");let l,p=!1;if(n)(c=window.UserLeap.windowDimensions)!=null&&c.width?r.width=`${window.UserLeap.windowDimensions.width}px`:r.width="100%",(u=window.UserLeap.windowDimensions)!=null&&u.height?r.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?r.maxHeight=window.UserLeap.maxHeight:r.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(o.overlayStyleMobile)&&(p=!0);else{r.width=Pe,r.maxHeight=window.UserLeap.maxHeight||"66vh";const m=()=>{p=!0,l={margin:"auto",position:"static"}};if(s)d?m():l={position:"relative",height:"300px"};else switch(o.framePosition){case"bottomLeft":l={left:oe};break;case"topLeft":l={left:oe,top:0};break;case"topRight":l={top:0};break;case"center":m();break}}return p&&St(o,n),Object.assign(e.style,r,l),p},bt=({productConfig:e,useMobileStyling:t,surveyId:n,isFeedback:s})=>{var m,w;const r=me,o=s&&e.desktopDisplay==="slider";Fe(s,o),Et();const a=document.createElement("iframe");a.id=r,a.setAttribute("title","Sprig User Feedback Dialog");const d=Lt(a,e,t,s);Ne();let l=!1;a.setHeight=f=>{(parseInt(a.style.height)!=f||!l)&&(l=!0,a.style.height=`${f}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:f}))};let p=!1;a.setWidth=f=>{(parseInt(a.style.width)!=f||!p)&&(p=!0,a.style.width=`${f}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:f}))},(m=window.UserLeap.container)==null||m.appendChild(a),e&&(t?e.exitOnOverlayClickMobile:e.exitOnOverlayClick)&&window.UserLeap.container&&(window.UserLeap.container.onclick=()=>{i.eventEmitter.emit(i.SprigEvent.CloseSurveyOnOverlayClick)}),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":n});const c=(w=a.contentWindow)==null?void 0:w.document;if(c&&(c.open("text/html","replace"),c.write("<!doctype html><head></head><body></body></html>"),c.close(),!t)){const f=c.body;f.style.display="flex",f.style.alignItems="center"}const u=c==null?void 0:c.head;return{frameId:r,contentWinDocHead:u,contentWindow:a.contentWindow,hasOverlay:d,iframe:a}},Be={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},Et=()=>{Object.entries(Be).forEach(([e,t])=>{i.eventEmitter.on(e,t)})},Ut=()=>{Object.entries(Be).forEach(([e,t])=>{i.eventEmitter.off(e,t)})},kt=1,Re=e=>e instanceof HTMLElement||e instanceof SVGElement,j=({document:e,elementId:t,styleString:n,nonce:s})=>{const r=e.getElementById(t);if(r){r.textContent=n;return}const o=e.createElement("style");s&&(o.nonce=s),o.textContent=n,o.id=t,e.head.appendChild(o)},Ve=e=>{const t=e.querySelector(".ul-card__container");let n=600,s=360;if(t){n=t.scrollHeight;const r=getComputedStyle(t),o=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),d=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);n+=o+a+d;const l=t.querySelector(".ul-card--matrix_grid");s=l?l.scrollWidth:t.scrollWidth;const p=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),c=parseFloat(r.marginLeft)+parseFloat(r.marginRight),u=parseFloat(r.borderLeftWidth)+parseFloat(r.borderRightWidth);s+=c+u+p}return[n+kt,s]},It=e=>{const t=e.querySelector(".ul-card__container");t&&(t.scrollTop=0)},We=()=>g,H=()=>document.getElementById("sprig-feedback-container"),ye=()=>document.getElementById("sprig-feedback-loading-animation"),_t=()=>{if(ye())return;const e=document.createElement("div");return e.className="ul-loading-spinner-container",e.id="sprig-feedback-loading-animation",e.role="progressbar",e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true"),e.setAttribute("aria-label","Processing..."),e.innerHTML=`
2
+ <div class="ul-loading-spinner">
3
+ <div class="first"></div>
4
+ <div class="second"></div>
5
+ <div class="third"></div>
6
+ <div class="fourth"></div>
7
+ </div>
8
+ `,e},je=()=>!!document.getElementById(me);let Ae=!1,g=null,_=null,ve=!1,W=null,T=null;const Rt=["bottom-left","bottom-right","center-left","center-right"],At=e=>{if(H()||!Rt.includes(e))return;const[t,n]=e.split("-"),s=document.createElement("div");s.id="sprig-feedback-container",s.classList.add(`sprig-feedback-container-${n}`,`sprig-feedback-container-${t}`),document.body.appendChild(s)},te=()=>{var t;const e=window.UserLeap.container;return((t=e==null?void 0:e.parentElement)==null?void 0:t.id)==="sprig-feedback-loading-container"},ze=()=>document.getElementById("sprig-feedback-error-container"),$e=()=>{if(!g)return 0;const e=g==null?void 0:g.clientWidth,t=window.getComputedStyle(g),n=parseInt(t.borderRightWidth||"0"),s=parseInt(t.borderLeftWidth||"0");return e+n+s},J=e=>{const t=H();t&&(T!=null&&T.endsWith("right")?t.style.right=`${e}px`:T!=null&&T.endsWith("left")&&(t.style.left=`${e}px`))},se=()=>{if(g&&(te()||ze())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,B),de();const e=$e();return J(-e),!0}return!1},B=()=>{if(!g||!_)return;const e=ye();e&&e.remove(),g.style.height="auto",g.style.width="auto",_.disabled=!1,ve=!1},de=()=>{if(!g)return;if(!ye()){const t=_t();t&&(g.style.height="300px",g.style.width="360px",g.appendChild(t))}},De=()=>{!g||!_||(J(0),_.disabled=!0,ve=!0)},Dt=async e=>{const t=await I(U("1",[D],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:e}),method:"POST"});return t.ok?t.json:null},qe=async(e,t,n)=>{const{buttonTheme:s,customStyles:r,eventId:o,placement:a,desktopDisplay:d,feedbackLabel:l,surveyUuid:p,surveyId:c}=e;window.UserLeap.feedbackCustomStyles=void 0;let u=H();if(u){if(!t&&o===W)return;u.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,se)}W=o,j({document,elementId:"sprig-feedback-style",styleString:dt,nonce:window.UserLeap.styleNonce}),j({document,elementId:"ul-custom-style",styleString:r??"",nonce:window.UserLeap.styleNonce}),Ae=d==="center-modal",T=a;const[w,f]=a.split("-");At(a),u=H(),_=document.createElement("button");const L=document.createElement("div");L.className="sprig-feedback-button-label",L.innerText=l,_.appendChild(L),_.id="sprig-feedback-button",_.classList.add(`sprig-feedback-button-${f}`,`sprig-feedback-button-${w}`,`sprig-feedback-button-${s}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,se),_.addEventListener("click",async()=>{const v=document.getElementById("sprig-feedback-error-container");if(je()||ze()){if(se()){i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton"});const b=H();v&&b&&(b.remove(),W=null,g=null)}return}const R=i.getHttpHeaders(window.UserLeap);if(!ge(R)&&!ve&&De(),t){g&&g.classList.add("sprig-feedback-loading-container-previews"),await V(t),B();return}const k=await Dt(p);if(k)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,B),V({...k,studyType:"feedbackButton"},n);else if(g){const b=xt();g.appendChild(b),B(),g.style.height="300px",g.style.width="360px"}}),u==null||u.appendChild(_),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":c});const{useMobileStyling:A,_config:{border:$}}=window.UserLeap;if(!Ae&&!A){const v=document.createElement("div");v.id="sprig-feedback-loading-container",v.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${f}`,v.style.setProperty("--feedback-border",$),g=v,de(),u==null||u.appendChild(v);const R=$e();J(-R)}else J(0);window.UserLeap._config.isOnQuestionsTab&&t&&!te()&&g&&(De(),de(),g&&g.classList.add("sprig-feedback-loading-container-previews"),V(t),B())},Ot=()=>{if(te())return;const e=H();if(!e)return;i.checkUrlStillMatching(W)||(e.remove(),W=null,g=null)},xt=()=>{const e=document.createElement("div");e.id="sprig-feedback-error-container",e.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
9
+ <circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
10
+ <path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
11
+ <circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
12
+ </svg>`;const t=document.createElement("h3");return t.className="sprig-feedback-error-text",t.innerText="There was an error while loading the survey",e.appendChild(t),e},Tt="!launch_darkly_";class Pt{constructor(){F(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(t){try{return!t||typeof t!="object"||Array.isArray(t)?!1:(Object.keys(this._ldData).forEach(n=>{delete this._ldData[n]}),Object.keys(t).forEach(n=>this._ldData[`${Tt}${n}`]=(t[n]??0)+1),!0)}catch(n){return n instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",n),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}}const le=new Pt;Object.freeze(le);const Ct="!optimizely_experiments_";class Mt{constructor(){F(this,"_optimizelyData",{})}setOptimizelyExperiment(t,n=!0){if(!t||typeof t!="object")return!1;const{experiments:s}=t;try{return n&&Object.keys(this._optimizelyData).map(r=>{delete this._optimizelyData[r]}),s&&s.map(r=>{const{id:o,variation:a}=r,d=this.transformExperimentId(o);a&&typeof a=="string"&&(this._optimizelyData[d]=a)}),!0}catch(r){return r instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",r),!1}}getAllOptimizelyExperiments(){return this._optimizelyData}getOptimizelyVariationName(t){return this._optimizelyData[this.transformExperimentId(t)]}transformExperimentId(t){return Ct+t}getAndSetWebOptimizelyExperiments(){var t;try{if(window&&window.optimizely&&typeof window.optimizely.get=="function"){const n=(t=window.optimizely.get("state"))==null?void 0:t.getExperimentStates({isActive:!0});if(n){const s=Object.keys(n).map(r=>{var o,a;return(o=n[r].variation)!=null&&o.name?{id:r,variation:(a=n[r].variation)==null?void 0:a.name}:{id:r,variation:"Original"}});return this.setOptimizelyExperiment({experiments:s},!1),!0}return!1}return!1}catch(n){return n instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",n),!1}}}const K=new Mt;Object.freeze(K);class Ft{constructor(t,n){F(this,"paused");F(this,"queue");F(this,"ul");this.ul=t,this.paused=!1,this.queue=[],this.flush(n)}flush(t){const n=t.length;if(n)for(let s=0;s<n;s++)this.push(t[s])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const t=this.queue.slice();this.empty(),this.flush(t)}push(t){if(this.paused)this.queue.push(t);else if(t instanceof Function)t();else{const n=Array.prototype.slice.call(t,1),s=t[0],r=this.ul[s];r instanceof Function?r.apply(this.ul,n):s&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",s)}}perform(t){if(this.paused){let n=()=>{};const s=new Promise(function(r){n=function(){r(t())}});return this.queue.push(n),s}else return t()}empty(){this.queue.length=0}}let Ge,Ke;const ce=e=>{let t=0,n=e.firstElementChild;for(;n;)t+=ce(n),n.shadowRoot&&(t+=ce(n.shadowRoot)),n=n.nextElementSibling,t++;return t},Ht=()=>document.documentElement.innerHTML.length,Oe=()=>{Ge.report(ce(document.body)),Ke.report(Ht())},Nt=(e=10*1e3)=>{Ge=i.registerMetric("sdk_dom_nodes_count"),Ke=i.registerMetric("sdk_page_html_characters"),Oe(),setInterval(Oe,e)},pe=(e,t)=>{const n=performance.now();document.hidden?setTimeout(()=>pe(e,t),e):setTimeout(()=>{const s=performance.now()-n;t.report(s/1e3),setTimeout(()=>pe(e,t),e)},0)},Bt=(e=1e3)=>{const t=i.registerMetric("sdk_event_queue_latency_seconds");pe(e,t)};let Q,Y,X,Z,C={},xe;const G=(e,t=1)=>{const{name:n}=e;C[n]=(C[n]||0)+t},Je=e=>{let t=1;return e.childNodes.forEach(n=>{t+=Je(n)}),t},Te=e=>{let t=0;return e.forEach(n=>{t+=Je(n)}),t},Vt=e=>{switch(e.type){case"childList":G(Q,Te(e.addedNodes)),G(Y,Te(e.removedNodes));return;case"attributes":G(X);return;case"characterData":G(Z);return}},Wt=e=>e.forEach(Vt),jt=()=>{xe=new MutationObserver(Wt),xe.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0})},zt=()=>{Q.report(C[Q.name]||0),Y.report(C[Y.name]||0),X.report(C[X.name]||0),Z.report(C[Z.name]||0),C={}},$t=(e=1*1e3)=>{Q=i.registerMetric("sdk_mutations_nodes_added"),Y=i.registerMetric("sdk_mutations_nodes_removed"),X=i.registerMetric("sdk_mutations_attributes_changed"),Z=i.registerMetric("sdk_mutations_character_data"),jt(),setInterval(zt,e)},qt=({webMetricsEnabled:e,reportingIntervalSeconds:t,thresholds:n,postMetrics:s})=>{i.registerThresholds(n,(r,o)=>{var a,d;if((a=i.modules.replay)!=null&&a.isReplayRecording()){const l=`Value: ${r} on ${o.metric} violated threshold of ${o.type} ${o.value}`;(d=i.modules.replay)==null||d.disableRecording("Threshold violated",new Error(l),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:o.metric,type:o.type,value:o.value},{metricName:o.metric}),i.disableThresholdChecking()}}),i.initPerformanceReporting({reportingIntervalSeconds:t,postMetrics:s}),e&&(Bt(),Nt(),$t())},Gt={test:"test"},Kt=["popState","pushState","replaceState"],N="!email",Qe="pageUrl";function Jt(e,t){const{pageUrlEvents:n,interactiveEvents:s,dismissOnPageChange:r}=window.UserLeap._config;if(!r)return!0;const o=[];n&&n.length&&o.push(...n),s&&s.length&&o.push(...s);const a=e&&o.find(d=>d.id===e);return a?i.checkUrlMatch(a,window.location.href):t===window.location.href}function z(e){var d;const{pageUrlEvents:t,interactiveEvents:n,dismissOnPageChange:s,platform:r}=window.UserLeap._config;if(r&&r!=="web")return;const o=P("trackStartUrl"),a=o?String(o):null;t&&et(window.location.href),n&&(Xe(),Qt()),We()&&Ot(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((d=i.modules.replay)==null||d.checkPendingHeatmapsUrl()),!te()&&s&&a&&a!==window.location.href&&e&&Kt.includes(e.type)&&window.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const Ye={capture:!0},Qt=()=>{const t=window.UserLeap._config.interactiveEvents.filter(s=>i.checkUrlMatch(s,window.location.href)).map(s=>{const{name:r,properties:o}=s,{selector:a,innerText:d}=o;return a?l=>{if(Re(l.target))try{l.target.closest(a)&&window.UserLeap("track",r)}catch{}return!1}:l=>(Re(l.target)&&l.target.innerText===d&&window.UserLeap("track",r),!1)}),n=s=>t.forEach(r=>r(s));window.UserLeap._config.interactiveEventsHandler=n,window.addEventListener("click",n,Ye)},Xe=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,Ye),delete window.UserLeap._config.interactiveEventsHandler};function Yt(){["hashchange","popstate"].forEach(e=>window.addEventListener(e,z,!0))}function Xt(){["hashchange","popstate"].forEach(e=>window.removeEventListener(e,z,!0)),window.UserLeap._config.interactiveEvents&&Xe()}function Zt(e){const t=new URL(U("1",[O],"questions"));return Object.entries(e||{}).forEach(([n,s])=>{s&&t.searchParams.append(n,String(s))}),t.toString()}function P(e){const t=i.localStorageHelper.getItem("userleap.ids");if(t)try{const s=JSON.parse(t)[window.UserLeap.envId];return s&&s[e]||null}catch(n){n instanceof Error&&(n.stack=t,window.UserLeap.reportError("Failed to parse local storage credentials",n)),console.warn("[Sprig] (ERR-427) Failed to lookup saved ids",n)}return null}function Ze(){window.previewMode||(window.UserLeap.visitorId=i.v4(),i.info(`Generating new vid: ${window.UserLeap.visitorId}`),S("vid",window.UserLeap.visitorId),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId}))}function et(e,t,n,s){var r,o;try{if(e.endsWith("mock_snippet.html"))return;i.info(`Tracking page view: ${e}`);const a=window.UserLeap._config.pageUrlEvents;let d=!1;if(a&&a.length)for(let c=0;c<a.length&&(d=i.checkUrlMatch(a[c],e),!d);c++);if(!d)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",e);const l={url:e};s&&(l.trackPageView=!0),window.UserLeap._queue.push(["track",Qe,t,l,n]);const p=(r=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:r.getAttribute("content");(o=i.modules.replay)==null||o.RecordPageView({...p&&{description:p},url:e,referrer:document.referrer,pageTitle:document.title})}catch(a){a instanceof Error&&(a.stack=e,window.UserLeap.reportError("trackPageView",a)),console.warn("[Sprig] (ERR-428) Failed to track page view",a)}}function er(){const e="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in e&&(e.pushState=(t=>function(...s){const r=t.apply(this,s),o=new Event("pushState");return window.dispatchEvent(o),z(o),r})(e.pushState)),"replaceState"in e&&(e.replaceState=(t=>function(...s){const r=t.apply(this,s),o=new Event("replaceState");return window.dispatchEvent(o),z(o),r})(e.replaceState)),Yt()}async function ae(e,t){const n=we();e&&!t&&(window.UserLeap._config.mode=Gt.test);const s=i.getHttpHeaders(window.UserLeap),r=ge(s),o=await I(Zt({desktopDisplay:window.UserLeap._config.desktopDisplay,isMobile:r,previewLanguage:window.UserLeap._config.previewLanguage,surveyid:e==null?void 0:e.surveyId,surveytemplateid:e==null?void 0:e.surveyTemplateId,vid:n}),{shouldDropOnRateLimit:!0});if(!o.ok)return o.reportError&&o.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",o.error),window.UserLeap.reportError("getQuestions",o.error)),{success:!1,surveyState:"no survey"};if(o.json.delay&&await i.delay(o.json.delay),o.json.isFeedback){const{feedbackLabel:a,productConfig:d,surveyUuid:l,feedbackCustomStyles:p}=o.json,{buttonTheme:c,placement:u,desktopDisplay:m}=d,w={customStyles:p,buttonTheme:c,desktopDisplay:m,eventId:0,feedbackLabel:a,placement:u,surveyUuid:l,surveyId:e==null?void 0:e.surveyId};qe(w,o.json)}else return V(o.json)}function tr(e){let t=e.length;for(;t;){const n=Math.floor(Math.random()*t);t-=1;const s=e[t];e[t]=e[n],e[n]=s}}function rr(e){if(!e)return;window.UserLeap._config=e,e.mute&&window.UserLeap._queue.pause();const{interactiveEvents:t,pageUrlEvents:n,dismissOnPageChange:s}=e;t&&tr(t),(t||n||s)&&(er(),z())}async function ir(e,t){var s,r;let n=!0;return t&&((s=e==null?void 0:e.json)!=null&&s.surveyId)&&(window.UserLeap.delayingSurvey=!0,n=await t(e.json.surveyId),window.UserLeap.delayingSurvey=!1,!n)?!1:((r=e==null?void 0:e.json)!=null&&r.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await i.delay(e.json.delay),window.UserLeap.delayingSurvey=!1),n)}const nr=function(e){if(!window.UserLeap)return;const t=async(r={})=>{var v,R,x,k,b;const{userId:o,anonymousId:a,metadata:d={},properties:l,showSurveyCallback:p}=r;let{eventName:c}=r;if(window.UserLeap.debugMode&&c!==Qe&&console.info("[DEBUG] Sprig track",r),e.mode==="test")return;const u=i.localStorageHelper.getItem("sprig.previewKey")??void 0;if(e.requireUserIdForTracking&&!window.UserLeap.userId&&!o){const h="[Sprig] - Skipping tracking without userId";return console.warn(h),{success:!1,message:h,surveyState:"no survey"}}if(!c||c.trim().length===0){c=c?String(c):"";const h="[Sprig] - Invalid event name "+c;return console.warn(h),{success:!1,message:h,surveyState:"no survey"}}const m=window.location.href;if(d.url||(d.url=m),S("trackStartUrl",m),(R=(v=window.UserLeap)==null?void 0:v._config)!=null&&R.optimizelyEnabled){const h=i.getHttpHeaders(window.UserLeap);fe(h)||K.getAndSetWebOptimizelyExperiments(),d.optimizelyExperiments=Object.assign({},K.getAllOptimizelyExperiments())}(k=(x=window.UserLeap)==null?void 0:x._config)!=null&&k.launchDarklyEnabled&&(d.launchDarklyFlags=le.getAllLaunchDarklyVariations()),o&&(window.UserLeap.userId=o),a&&(window.UserLeap.partnerAnonymousId=a),l&&(d.eventProperties=l),(b=i.modules.replay)==null||b.RecordEvent({name:c,url:d.url}),i.info(`Tracking event: ${c}`);const w=window.UserLeap.delayingSurvey||je()?await I(U("1",[D],"events/batch"),{body:JSON.stringify({events:[{event:c,metadata:d}],previewKey:u}),method:"POST",shouldDropOnRateLimit:!0}):await I(U("1",[D],"events"),{body:JSON.stringify({event:c,metadata:d,previewKey:u}),method:"POST",shouldDropOnRateLimit:!0});if(!w.ok){const h="[Sprig] (ERR-421) Failed to track event";return w.reportError&&(console.warn(h,w.error),w.error&&window.UserLeap.reportError("track",w.error)),{success:!1,message:h,error:w.error,surveyState:"no survey"}}o&&S("uid",o),a&&S("aid",a);const f=w.json;f.invalidPreviewKey&&i.localStorageHelper.removeItem("sprig.previewKey");const L=d.trackPageView?d.url:void 0;return!!(f!=null&&f.feedbackButton)&&qe(f.feedbackButton,void 0,L),await ir(w,p)?Jt(f.eventId,m)?V(f,L):{success:!1,message:"Study should not be displayed after page navigation",surveyState:"no survey"}:{success:!1,message:"[Sprig] Callback returned false, aborting rendering of survey",surveyState:"no survey"}},n=(r,o)=>{var d;const a=(d=r==null?void 0:r.querySelector(`[id="${me}"]`))==null?void 0:d.contentDocument;a&&j({document:a,elementId:"ul-custom-style",styleString:o})},s={async displaySurvey(r){return console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),ae({surveyId:r},!0)},_previewSurvey(r){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),ae({surveyTemplateId:r},!1)},_reviewSurvey(r){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),ae({surveyId:r},!1)},previewSurvey(r){s._previewSurvey(r)},reviewSurvey(r){s._reviewSurvey(r)},mute(){window.UserLeap._queue.pause()},unmute(){window.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(r=i.DismissReason.API){i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:r})},async setAttribute(r,o){if(!r||!o&&o!==0&&o!==!1){const a="[Sprig] - Disregarding empty attribute / value provided";return console.warn(a),{success:!1,message:a}}return this.setAttributes({[r]:o})},async setAttributes(r){if(r==null||Object.keys(r).length===0){const o="[Sprig] - Disregarding empty attributes provided";return console.warn(o),{success:!1,message:o}}return this.identifyAndSetAttributes({attributes:r})},async identifyAndSetAttributes(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",r),e.mode==="test")return;if(r===null||typeof r!="object"||!(r.userId||r.anonymousId||r.attributes)){const c="[Sprig] - Disregarding empty payload provided";return console.warn(c),{success:!1,message:c}}const{userId:o,anonymousId:a,attributes:d}=r;if(e.requireUserIdForTracking&&!window.UserLeap.userId&&!o){const c="[Sprig] - Skipping tracking without userId";return console.warn(c),{success:!1,message:c}}if(!d&&(!o||window.UserLeap.userId===o)&&(!a||window.UserLeap.partnerAnonymousId===a))return{success:!0};const l={};o&&(l.userId=window.UserLeap.userId=o),a&&(l.partnerAnonymousId=window.UserLeap.partnerAnonymousId=a);let p;return d?(d.email&&!Object.prototype.hasOwnProperty.call(d,N)&&(d[N]=d.email,delete d.email),i.info(`Setting attributes: ${JSON.stringify(d)}`),p=await I(U("1",[O,D],"attributes"),{body:JSON.stringify(d),method:"PUT"}),!p.ok&&p.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",p.error),p.error&&window.UserLeap.reportError("identifyAndSetAttributes",p.error))):p=await I(U("1",[O,D]),{body:JSON.stringify(l),method:"PUT"}),d&&d[N]&&(window.UserLeap.email=d[N]),p.ok&&(o&&S("uid",o),a&&S("aid",a)),{success:!!p.ok}},async removeAttributes(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",r),e.mode==="test")return;if(r==null||r.length===0){const a="[Sprig] - Disregarding empty attributes provided";return console.warn(a),{success:!1,message:a}}if(e.requireUserIdForTracking&&!window.UserLeap.userId){const a="[Sprig] - Skipping tracking without userId";return console.warn(a),{success:!1,message:a}}const o=await I(U("1",[O,D],"attributes"),{body:JSON.stringify({delete:r}),method:"DELETE"});return!o.ok&&o.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",o.error),o.error&&window.UserLeap.reportError("removeAttributes",o.error)),{success:!!o.ok}},async addSurveyListener(r){i.eventEmitter.on(i.SprigEvent.SurveyLifeCycle,r)},async removeSurveyListener(r){i.eventEmitter.removeListener(i.SprigEvent.SurveyLifeCycle,r)},async addListener(r,o){i.eventEmitter.on(r,o)},async removeListener(r,o){i.eventEmitter.removeListener(r,o)},async removeAllListeners(){i.eventEmitter.removeAllListeners()},setPreviewKey(r){!r||typeof r!="string"||i.localStorageHelper.isStorageAvailable&&r&&i.localStorageHelper.setItem("sprig.previewKey",r)},async setUserId(r){var d;if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",r),r==null){const l=`[Sprig] - Invalid userId ${r}`;return console.warn(l),{success:!1,message:l}}if(e.mode==="test"||r===window.UserLeap.userId)return;window.UserLeap.userId=r;const o=window.UserLeap.visitorId,a=await I(U("1",[O,D]),{body:JSON.stringify({userId:r}),method:"PUT"});if(!a.ok){a.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",a.error),a.error&&window.UserLeap.reportError("setUserId",a.error));return}o!==window.UserLeap.visitorId&&((d=i.modules.replay)==null||d.clearUserReplayData()),S("uid",r)},async setPartnerAnonymousId(r){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",r),r==null){const o=`[Sprig] - Invalid partnerAnonymousId ${r}`;return console.warn(o),{success:!1,message:o}}return window.UserLeap.partnerAnonymousId=r,S("aid",r),{success:!0}},async track(r,o,a={},d=void 0){return t({eventName:r,properties:o,metadata:a,showSurveyCallback:d})},async identifyAndTrack(r){return await t(r)},trackPageView(r,o=void 0,a=void 0,d=!0){et(r,o,a,d)},applyFeedbackStyles({button:r="",view:o=""}){window.UserLeap.feedbackCustomStyles=o,document.getElementById("sprig-feedback-style")&&j({document,elementId:"ul-custom-style",styleString:r,nonce:window.UserLeap.styleNonce}),n(document.querySelector(".ul-container-feedback"),o)},applyStyles(r){window.UserLeap.customStyles=r,n(window.UserLeap.container,r)},setWindowDimensions(r,o){var p,c;const a=typeof r=="string"?parseInt(r,10):r,d=typeof o=="string"?parseInt(o,10):o;if(!isNaN(a)&&!isNaN(d)&&(window.UserLeap.windowDimensions={width:a,height:d}),!window.UserLeap.frameId)return;const l=document.getElementById(window.UserLeap.frameId);l&&(window.UserLeap.useMobileStyling&&((p=window.UserLeap.windowDimensions)!=null&&p.width&&(l.style.width=`${window.UserLeap.windowDimensions.width}px`),(c=window.UserLeap.windowDimensions)!=null&&c.height&&(l.style.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`),l.contentDocument&&(l.style.height=String(Ve(l.contentDocument)[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:l.clientWidth,contentFrameHeight:l.clientHeight}))},logoutUser(){var r;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),i.info(`Logging out user: ${window.UserLeap.userId} / vid: ${window.UserLeap.visitorId}`),window.UserLeap.visitorId=null,window.UserLeap.userId=null,window.UserLeap.partnerAnonymousId=null,window.UserLeap.token=null,window.UserLeap.email=null,i.localStorageHelper.removeItem("userleap.ids"),window.UserLeap._queue.isPaused()&&window.UserLeap._queue.empty(),Ze(),(r=i.modules.replay)==null||r.clearUserReplayData(),window.UserLeap._queue.unpause()},teardown(){Xt(),window.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete window.UserLeap,delete window.Sprig,delete window._Sprig},integrateOptimizely(r,o=!0){var a,d;if(!((d=(a=window.UserLeap)==null?void 0:a._config)!=null&&d.optimizelyEnabled)){console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");return}try{const l=typeof r=="string"?JSON.parse(r):r;K.setOptimizelyExperiment(l,o)}catch(l){console.warn("[Sprig] Error with integrating Optimizely data"),l instanceof Error&&window.UserLeap.reportError("integrateOptimizely",l)}},integrateOptimizelyClient(r){var a,d;if(!((d=(a=window.UserLeap)==null?void 0:a._config)!=null&&d.optimizelyEnabled)){console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");return}const o=({experiment:l,variation:p})=>{const c={experiments:[{id:l.id,variation:p.key}]};window.UserLeap("integrateOptimizely",c,!1)};r.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",o)},importLaunchDarklyData(r){var o,a;if(!((a=(o=window.UserLeap)==null?void 0:o._config)!=null&&a.launchDarklyEnabled)){console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.");return}le.setLDFlagsVariations(r)},setVisitorAttribute(r,o){return console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),s.setAttribute(r,o)},async setEmail(r){return s.setAttribute(N,r)},async setVisitorEmail(r){return console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),s.setEmail(r)},async _generateVideoUploadUrl(r){return dr(r)},_reportMetric(r,o){i.reportAndRegister(r,o)},async _completeSessionReplay({surveyId:r,responseGroupUuid:o,eventDigest:a}){var d;return i.modules.replay?(d=i.modules.replay)==null?void 0:d._completeSessionReplay({surveyId:r,responseGroupUuid:o,eventDigest:a,headers:i.getHttpHeaders(window.UserLeap)}):(window.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)}};Object.assign(window.UserLeap,s)};async function or(e){const t=i.getHttpHeaders(window.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const n=await i.sprigFetch(U("1",[O],"config"),{headers:t});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!n.ok)return n.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",n.error),n.error&&window.UserLeap.reportError("applyRemoteConfig",n.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),e;const s=n.json;return s!=null&&s.disabled?(i.killNetworkRequests(`Disabled: ${s.disabled}`),{disabled:s.disabled}):Object.assign({},s,e)}const sr=e=>typeof e=="object"&&e&&"inner"in e&&!!e.inner&&typeof e.inner=="object";async function ar(e,t,n={},s={}){var m,w;const r=window.__cfg&&window.__cfg.mode,o=we(),a=window.UserLeap.envId,d=window.document.documentElement,l=sr(t)?{inner:{message:(m=t.inner)==null?void 0:m.message,stack:(w=t.inner)==null?void 0:w.stack}}:{},p={mode:r,screenWidth:window.screen.width,screenHeight:window.screen.height,clientWidth:d.clientWidth,clientHeight:d.clientHeight,location:window.location.href,language:window.navigator.language,...n,...l},c={action:e,err:{message:t.message,stack:t.stack},meta:p,vid:o,envId:a,...s},u=await I(U("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(c),shouldDropOnRateLimit:!0});if(!u.ok)console.warn("[Sprig] (ERR-444) Failed to report error to API",t);else{const{presignedUrl:f}=u.json;i.uploadLogfile(f)}}async function dr(e){var n;if(!e)return;const t=`${window.UserLeap._API_URL}/2/environments/integrations/upload`;try{const s=await fetch(t,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(e)});if(s.ok){const r=await s.json();return(n=r==null?void 0:r.upload)==null?void 0:n.url}else return null}catch(s){console.warn("[Sprig] Error with generating video upload url"),s instanceof Error&&window.UserLeap.reportError("generateVideoUploadUrl",s)}}function lr(e={}){const t=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";window.UserLeap.UPDATES=i.EVENTS,window.UserLeap("setPreviewKey",t);async function n(){var d;if(window.UserLeap.loaded)return;if(i.info("Loading sprig on page load"),window.UserLeap.reportError=ar,window.UserLeap.loaded=!0,window.UserLeap._config=Object.assign({},e,window.UserLeap.config),window.UserLeap.delayingSurvey=!1,window.UserLeap._config&&typeof window.UserLeap._config=="object")for(const l in window.UserLeap._config)window.UserLeap[l]=window.UserLeap._config[l];if(!window.UserLeap.envId)if(window.UserLeap.appId)window.UserLeap.envId=window.UserLeap.appId;else throw new Error("Missing Environment id");window.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const s=window.UserLeap.sampleRate;if(s){let l=P("sampled");if(l===null&&(l=Math.random()<s,S("sampled",l)),!l)return}else P("sampled")!==null&&S("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const r=[...window.UserLeap._queue];window.UserLeap._queue=new Ft(window.UserLeap,[]),window.UserLeap._queue.pause();for(let l=0;l<r.length;l++)window.UserLeap._queue.push(r[l]);const o=P("token");o?(window.UserLeap.token=o,window.UserLeap.visitorId=P("vid"),window.UserLeap.userId=P("uid"),window.UserLeap.partnerAnonymousId=P("aid")):(i.localStorageHelper.removeItem("userleap.ids"),Ze());const a=await or(e);qt({webMetricsEnabled:a.metricsReportingEnabled,reportingIntervalSeconds:a.metricsReportingEnabled||a.mobileMetricsReportingEnabled?a.metricsReportingIntervalSeconds:0,thresholds:a.metricThresholds,postMetrics:async l=>{var p;await I(U("1",[O],"metrics"),{body:l,method:"POST",headers:{"x-ul-replay-enabled":`${!!((p=i.modules.replay)!=null&&p.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),(d=i.modules.replay)==null||d.initializeReplay({viewDocument:window.document,maxReplayDurationSeconds:a.maxReplayDurationSeconds,replayNonce:window.UserLeap.replayNonce,maxInflightRequests:window.UserLeap.maxInflightReplayRequests??2,replaySettings:a.replaySettings}),i.configureLogger(a.logBufferLimit,a.logLevel),nr(a),await rr(a),window.UserLeap._queue.unpause(),i.eventEmitter.emit(i.SprigEvent.SDKReady,{mobileMetricsReportingEnabled:!!a.mobileMetricsReportingEnabled,metricsReportingInterval:a.metricsReportingIntervalSeconds||0,metricsThresholds:a.metricThresholds||[],maxMobileReplayDurationSeconds:a.maxMobileReplayDurationSeconds,mobileReplaySettings:a.mobileReplaySettings}),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}document.readyState==="complete"?n():window.attachEvent?window.attachEvent("onload",n):window.addEventListener("load",()=>{n()},!1)}class ee{constructor(){this.UPDATES=i.EVENTS}displaySurvey(t){window.Sprig("displaySurvey",t)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(t,n){window.Sprig("setAttribute",t,n)}setAttributes(t){window.Sprig("setAttributes",t)}identifyAndSetAttributes(t){window.Sprig("identifyAndSetAttributes",t)}removeAttributes(t){window.Sprig("removeAttributes",t)}addListener(t,n){window.Sprig("addListener",t,n)}removeListener(t,n){window.Sprig("removeListener",t,n)}removeAllListeners(){window.Sprig("removeAllListeners")}setEmail(t){window.Sprig("setAttribute","!email",t)}setUserId(t){window.Sprig("setUserId",t)}setPartnerAnonymousId(t){window.Sprig("setPartnerAnonymousId",t)}track(t,n={},s={}){window.Sprig("track",t,n,s)}identifyAndTrack(t){window.Sprig("identifyAndTrack",t)}trackPageView(t,n,s){window.Sprig("trackPageView",t,n,s)}applyStyles(t){window.Sprig("applyStyles",t)}setWindowDimensions(t,n){window.Sprig("setWindowDimensions",t,n)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}}const ue={configure:e=>{if(!e.envId&&!e.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(e.envId||(e.envId=e.environmentId??""),e.installationMethod="web-npm",window.Sprig)return window.Sprig;window.Sprig=function(){window.Sprig._queue.push(arguments)},Object.getOwnPropertyNames(ee.prototype).map(n=>{n!=="constructor"&&(window.Sprig[n]=ee.prototype[n])});const t=window.Sprig;return t.appId=e.envId,t._queue=[],window.UserLeap=t,lr(e),window.Sprig}},cr={sprig:ue,SprigAPI:ee,configure:ue.configure};exports.APP_ID=lt;exports.ConflictingWidgets=Me;exports.DEFAULT_BORDER_COLOR=ct;exports.DEFAULT_WIDTH=Pe;exports.EMBED_MOBILE_MAX_WIDTH=wt;exports.ERROR_BORDER_COLOR=pt;exports.SprigAPI=ee;exports.calculateFrameDimensions=Ve;exports.core=cr;exports.resetScrollPosition=It;exports.setSurveyStyles=j;exports.sprig=ue;
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./metricsReporter-DwcQeyB8.cjs"),e=require("./core-pJaEAG0Z.cjs");exports.DismissReason=r.DismissReason;exports.SprigEvent=r.SprigEvent;exports.SprigAPI=e.SprigAPI;exports.default=e.core;exports.sprig=e.sprig;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./metricsReporter-Bf3t9izL.cjs"),e=require("./core-D1ixNVBD.cjs");exports.DismissReason=r.DismissReason;exports.SprigEvent=r.SprigEvent;exports.SprigAPI=e.SprigAPI;exports.default=e.core;exports.sprig=e.sprig;
package/dist/core.d.ts CHANGED
@@ -2531,12 +2531,6 @@ declare class SprigQueue {
2531
2531
  empty(): void;
2532
2532
  }
2533
2533
 
2534
- declare global {
2535
- interface SymbolConstructor {
2536
- readonly observable: symbol;
2537
- }
2538
- }
2539
-
2540
2534
  type EventDigest = {
2541
2535
  timestamp: number;
2542
2536
  type: "Sprig_Click";
@@ -2734,6 +2728,7 @@ declare namespace sprigConfig {
2734
2728
  error?: Error;
2735
2729
  feedbackCustomStyles?: string;
2736
2730
  frameId: string;
2731
+ isMobileSDK?: boolean;
2737
2732
  loaded: boolean;
2738
2733
  locale?: string;
2739
2734
  maxHeight?: number | string;
package/dist/core.js CHANGED
@@ -1 +1 @@
1
- import{D as s,S as a}from"./metricsReporter-ChJRb1ed.js";import{S as r,c as i,s as o}from"./core-IYeRexvz.js";export{s as DismissReason,r as SprigAPI,a as SprigEvent,i as default,o as sprig};
1
+ import{D as s,S as a}from"./metricsReporter-BlH4lcL_.js";import{S as r,c as i,s as o}from"./core-BHOVGOBv.js";export{s as DismissReason,r as SprigAPI,a as SprigEvent,i as default,o as sprig};
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-pJaEAG0Z.cjs");require("./replay.cjs");const r=require("./metricsReporter-DwcQeyB8.cjs");exports.SprigAPI=e.SprigAPI;exports.default=e.core;exports.sprig=e.sprig;exports.DismissReason=r.DismissReason;exports.SprigEvent=r.SprigEvent;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-D1ixNVBD.cjs");require("./replay.cjs");const r=require("./metricsReporter-Bf3t9izL.cjs");exports.SprigAPI=e.SprigAPI;exports.default=e.core;exports.sprig=e.sprig;exports.DismissReason=r.DismissReason;exports.SprigEvent=r.SprigEvent;
package/dist/index.d.ts CHANGED
@@ -2531,12 +2531,6 @@ declare class SprigQueue {
2531
2531
  empty(): void;
2532
2532
  }
2533
2533
 
2534
- declare global {
2535
- interface SymbolConstructor {
2536
- readonly observable: symbol;
2537
- }
2538
- }
2539
-
2540
2534
  type EventDigest = {
2541
2535
  timestamp: number;
2542
2536
  type: "Sprig_Click";
@@ -2734,6 +2728,7 @@ declare namespace sprigConfig {
2734
2728
  error?: Error;
2735
2729
  feedbackCustomStyles?: string;
2736
2730
  frameId: string;
2731
+ isMobileSDK?: boolean;
2737
2732
  loaded: boolean;
2738
2733
  locale?: string;
2739
2734
  maxHeight?: number | string;
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{S as s,c as a,s as i}from"./core-IYeRexvz.js";import"./replay.js";import{D as r,S as o}from"./metricsReporter-ChJRb1ed.js";export{r as DismissReason,s as SprigAPI,o as SprigEvent,a as default,i as sprig};
1
+ import{S as s,c as a,s as i}from"./core-BHOVGOBv.js";import"./replay.js";import{D as r,S as o}from"./metricsReporter-BlH4lcL_.js";export{r as DismissReason,s as SprigAPI,o as SprigEvent,a as default,i as sprig};
@@ -1,2 +1,2 @@
1
- "use strict";var B=Object.defineProperty;var J=(e,t,r)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t,r)=>(J(e,typeof t!="symbol"?t+"":t,r),r);var O=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(O||{}),U=(e=>(e.ReplayCapture="replay.capture",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(U||{});const K={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}};let g;const G=new Uint8Array(16);function Q(){if(!g&&(g=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!g))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return g(G)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function z(e,t=0){return n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]}const X=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),A={randomUUID:X};function Z(e,t,r){if(A.randomUUID&&!t&&!e)return A.randomUUID();e=e||{};const s=e.random||(e.rng||Q)();return s[6]=s[6]&15|64,s[8]=s[8]&63|128,z(s)}var ee=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},x=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=x.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new ee(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=x;D.defaultMaxListeners=10;const te=new D,R=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),re=({"userleap-platform":e})=>e!=="web";class M{constructor(t){a(this,"storage");a(this,"tempStorage",{});a(this,"isStorageAvailable");this.storage=window[t],this.isStorageAvailable=this.checkIfStorageAvailable()}checkIfStorageAvailable(){try{const t="__storage_test__";return this.storage.setItem(t,t),this.storage.removeItem(t),!0}catch{return!1}}setItem(t,r){this.isStorageAvailable?this.storage.setItem(t,r):this.tempStorage[t]=r}getItem(t){return this.isStorageAvailable?this.storage.getItem(t):this.tempStorage[t]}removeItem(t){this.isStorageAvailable?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable?this.storage.clear():this.tempStorage={}}}const se=new M("sessionStorage"),ne=new M("localStorage");class ie{constructor(t){a(this,"payload");a(this,"promise");a(this,"reject",()=>{});a(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const k={replay:null},oe=e=>{k.replay=e},ae=()=>{const e=[];return k.replay&&e.push("replay"),e.join(",")},le={RATELIMIT_RESET_DEFAULT:10};let P=!1,V="",_=!1,H=!1,L=[];const ce=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",ue=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(H=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},W=(e="")=>{P=!0,V=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.4","x-ul-installation-method":ce(e),"sprig-modules":ae()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t}const T=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new ie(t);return L.push(r),r.promise}},f=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:y=!1,...l}=t,c={url:e,options:l,retries:r,shouldDropOnRateLimit:s};if(_&&!y)return T(c);const p={ok:!1,reportError:!1};if(P)return console.info(`UserLeap - ${V}`),p;try{const i=await fetch(e,l);if(i.status===429)if(!_&&!s||y){_=!0;const u=i.headers.has("ratelimit-reset")?Number(i.headers.get("ratelimit-reset")):le.RATELIMIT_RESET_DEFAULT;return await R(u*1e3),f(e,{...l,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}else return T(c);if(_=!1,L.length&&(L.map(o=>{const u=o.payload;f(u.url,{...u.options,retries:u.retries,shouldDropOnRateLimit:u.shouldDropOnRateLimit}).then($=>{o.resolveRequest($)})}),L=[]),i.ok){if(i.status===249)return W(),p;const o=await i.text();try{return o&&o!=="OK"&&(i.json=JSON.parse(o)),i}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${o}`)}}}return i}catch(i){const o=r+1;return o>5||H?{ok:!1,reportError:!1,error:i}:(await R(Math.pow(2,r)*1e3),f(e,{...l,retries:o}))}},h={Error:1,Warn:2,Info:3,Debug:4};let b=1e3,v=h.Debug,d=[];const he=e=>{const t=Object.entries(h).find(r=>r[1]===e);return(t==null?void 0:t[0])??""},pe=e=>e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}),me=(e,t)=>`${pe(t)}:${e}`,fe=()=>{d=d.filter(e=>e.level<=v)},ye=()=>{d.length>b&&d.shift()},E=(e,t)=>{e>v||(d.push({level:e,line:me(t,new Date)}),ye())},Y=e=>{E(h.Debug,e)},ge=e=>{E(h.Info,e)},q=e=>{E(h.Warn,e)},_e=e=>{E(h.Error,e)},Le=()=>d.map(e=>e.line),ve=()=>new TextEncoder().encode(Le().join(`
1
+ "use strict";var B=Object.defineProperty;var J=(e,t,r)=>t in e?B(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t,r)=>(J(e,typeof t!="symbol"?t+"":t,r),r);var O=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(O||{}),U=(e=>(e.ReplayCapture="replay.capture",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(U||{});const K={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}};let g;const G=new Uint8Array(16);function Q(){if(!g&&(g=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!g))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return g(G)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function z(e,t=0){return n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]}const X=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),A={randomUUID:X};function Z(e,t,r){if(A.randomUUID&&!t&&!e)return A.randomUUID();e=e||{};const s=e.random||(e.rng||Q)();return s[6]=s[6]&15|64,s[8]=s[8]&63|128,z(s)}var ee=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},x=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=x.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new ee(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=x;D.defaultMaxListeners=10;const te=new D,R=async e=>{await new Promise(t=>{setTimeout(t,e)})},re=({"userleap-platform":e})=>e!=="web";class M{constructor(t){a(this,"storage");a(this,"tempStorage",{});a(this,"isStorageAvailable");this.storage=window[t],this.isStorageAvailable=this.checkIfStorageAvailable()}checkIfStorageAvailable(){try{const t="__storage_test__";return this.storage.setItem(t,t),this.storage.removeItem(t),!0}catch{return!1}}setItem(t,r){this.isStorageAvailable?this.storage.setItem(t,r):this.tempStorage[t]=r}getItem(t){return this.isStorageAvailable?this.storage.getItem(t):this.tempStorage[t]}removeItem(t){this.isStorageAvailable?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable?this.storage.clear():this.tempStorage={}}}const se=new M("sessionStorage"),ne=new M("localStorage");class ie{constructor(t){a(this,"payload");a(this,"promise");a(this,"reject",()=>{});a(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const k={replay:null},oe=e=>{k.replay=e},ae=()=>{const e=[];return k.replay&&e.push("replay"),e.join(",")},le={RATELIMIT_RESET_DEFAULT:10};let P=!1,V="",_=!1,H=!1,L=[];const ce=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",ue=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(H=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},W=(e="")=>{P=!0,V=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.31.1","x-ul-installation-method":ce(e),"sprig-modules":ae()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t}const T=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new ie(t);return L.push(r),r.promise}},f=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:y=!1,...l}=t,c={url:e,options:l,retries:r,shouldDropOnRateLimit:s};if(_&&!y)return T(c);const p={ok:!1,reportError:!1};if(P)return console.info(`UserLeap - ${V}`),p;try{const i=await fetch(e,l);if(i.status===429)if(!_&&!s||y){_=!0;const u=i.headers.has("ratelimit-reset")?Number(i.headers.get("ratelimit-reset")):le.RATELIMIT_RESET_DEFAULT;return await R(u*1e3),f(e,{...l,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}else return T(c);if(_=!1,L.length&&(L.map(o=>{const u=o.payload;f(u.url,{...u.options,retries:u.retries,shouldDropOnRateLimit:u.shouldDropOnRateLimit}).then($=>{o.resolveRequest($)})}),L=[]),i.ok){if(i.status===249)return W(),p;const o=await i.text();try{return o&&o!=="OK"&&(i.json=JSON.parse(o)),i}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${o}`)}}}return i}catch(i){const o=r+1;return o>5||H?{ok:!1,reportError:!1,error:i}:(await R(Math.pow(2,r)*1e3),f(e,{...l,retries:o}))}},h={Error:1,Warn:2,Info:3,Debug:4};let b=1e3,v=h.Debug,d=[];const he=e=>{const t=Object.entries(h).find(r=>r[1]===e);return(t==null?void 0:t[0])??""},pe=e=>e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}),me=(e,t)=>`${pe(t)}:${e}`,fe=()=>{d=d.filter(e=>e.level<=v)},ye=()=>{d.length>b&&d.shift()},E=(e,t)=>{e>v||(d.push({level:e,line:me(t,new Date)}),ye())},Y=e=>{E(h.Debug,e)},ge=e=>{E(h.Info,e)},q=e=>{E(h.Warn,e)},_e=e=>{E(h.Error,e)},Le=()=>d.map(e=>e.line),ve=()=>new TextEncoder().encode(Le().join(`
2
2
  `)),Ee=async e=>{if(!e)return;const t=ve();return f(e,{body:t,method:"PUT"})},we=(e,t)=>{e!==void 0&&(b=e),t!==void 0&&(v=t),Y(`Initializing logger with limit of ${b} lines and ${he(v)} level`),fe()},C=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function N(e,t){const{matchType:r,pattern:s}=e,y=r?C[r]:C.legacy;let l=!1;try{l=y(s,t)}catch(c){const p=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;c instanceof Error&&(console.warn(p,c),c.stack=JSON.stringify(e),window.UserLeap.reportError(p,c))}return l}const Re=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return r?N(r,window.location.href):!1};let j=!0,S=!1;const be=()=>j=!1,Ie=()=>S=!0,ke=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let m={},I;class Se{constructor(t){a(this,"_values",[]);a(this,"_isWebMetric");this.name=t,this._isWebMetric=ke.includes(this.name)}report(t){if(j&&this._values.push({time:Date.now(),value:t}),S||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&I&&I(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=m[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"?t<r.value:!1}}const Ae=(e,t)=>{m={},S=!1,e==null||e.forEach(r=>{var s;r.metric in m||(m[r.metric]=[]),(s=m[r.metric])==null||s.push(r)}),I=t},w={},F=e=>{const t=new Se(e);return w[e]=t,t},Te=(e,t)=>{let r=w[e];return r||(r=F(e)),r.report(t)},Ce=async e=>{const t=Object.values(w).map(r=>({name:r.name,values:r.collect()}));if(t.some(r=>r.values.length))try{await e(JSON.stringify(t))}catch(r){q(`Error posting metrics: ${r}`)}},Oe=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{Ce(t)},e*1e3):be()};exports.DismissReason=O;exports.EVENTS=K;exports.PerformanceMetrics=w;exports.SprigEvent=U;exports.checkUrlMatch=N;exports.checkUrlStillMatching=Re;exports.configureLogger=we;exports.cspViolationHandler=ue;exports.debug=Y;exports.delay=R;exports.disableThresholdChecking=Ie;exports.error=_e;exports.eventEmitter=te;exports.getHttpHeaders=de;exports.info=ge;exports.initPerformanceReporting=Oe;exports.killNetworkRequests=W;exports.localStorageHelper=ne;exports.modules=k;exports.registerMetric=F;exports.registerReplay=oe;exports.registerThresholds=Ae;exports.reportAndRegister=Te;exports.sessionStorageHelper=se;exports.shouldDirectEmbed=re;exports.sprigFetch=f;exports.uploadLogfile=Ee;exports.v4=Z;exports.warn=q;
@@ -1,2 +1,2 @@
1
- var J=Object.defineProperty,K=(e,t,s)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,a=(e,t,s)=>(K(e,typeof t!="symbol"?t+"":t,s),s),k=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(k||{}),A=(e=>(e.ReplayCapture="replay.capture",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});const B={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}};let _;const G=new Uint8Array(16);function z(){if(!_&&(_=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!_))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return _(G)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function Q(e,t=0){return n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]}const X=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),D={randomUUID:X};function Z(e,t,s){if(D.randomUUID&&!t&&!e)return D.randomUUID();e=e||{};const r=e.random||(e.rng||z)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Q(r)}var ee=class extends Error{constructor(e,t,s){super(`Possible EventEmitter memory leak detected. ${s} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=s,this.name="MaxListenersExceededWarning"}},U=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=U.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,s){this.emit(e,t,s)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const s=e.indexOf(t);return s>-1&&e.splice(s,1),[]}_wrapOnceListener(e,t){const s=(...r)=>(this.removeListener(e,s),t.apply(this,r));return Object.defineProperty(s,"name",{value:t.name}),s}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const s=this._getListeners(e);return s.forEach(r=>{r.apply(this,t)}),s.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const s=this._getListeners(e).concat(t);if(this.events.set(e,s),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const r=new ee(this,e,this.listenerCount(e));console.warn(r)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const s=this._getListeners(e);if(s.length>0){const r=[t].concat(s);this.events.set(e,r)}else this.events.set(e,s.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const s=this._getListeners(e);return s.length>0&&(this._removeListener(s,t),this.events.set(e,s),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},C=U;C.defaultMaxListeners=10;const te=new C,w=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),se=({"userleap-platform":e})=>e!=="web";class x{constructor(t){a(this,"storage"),a(this,"tempStorage",{}),a(this,"isStorageAvailable"),this.storage=window[t],this.isStorageAvailable=this.checkIfStorageAvailable()}checkIfStorageAvailable(){try{const t="__storage_test__";return this.storage.setItem(t,t),this.storage.removeItem(t),!0}catch{return!1}}setItem(t,s){this.isStorageAvailable?this.storage.setItem(t,s):this.tempStorage[t]=s}getItem(t){return this.isStorageAvailable?this.storage.getItem(t):this.tempStorage[t]}removeItem(t){this.isStorageAvailable?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable?this.storage.clear():this.tempStorage={}}}const re=new x("sessionStorage"),ne=new x("localStorage");class ie{constructor(t){a(this,"payload"),a(this,"promise"),a(this,"reject",()=>{}),a(this,"resolve",()=>{}),this.payload=t,this.promise=new Promise((s,r)=>{this.reject=r,this.resolve=s})}resolveRequest(t){this.resolve(t)}}const I={replay:null},oe=e=>{I.replay=e},ae=()=>{const e=[];return I.replay&&e.push("replay"),e.join(",")},le={RATELIMIT_RESET_DEFAULT:10};let T=!1,P="",g=!1,M=!1,E=[];const ce=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",ue=e=>{var t;(t=e?.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(M=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},N=(e="")=>{T=!0,P=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.4","x-ul-installation-method":ce(e),"sprig-modules":ae()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const s=JSON.parse(e.mobileHeadersJSON);Object.assign(t,s)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t}const V=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const s=new ie(t);return E.push(s),s.promise}},p=async(e,t)=>{const{retries:s=0,shouldDropOnRateLimit:r=!1,shouldRetryRequest:v=!1,...l}=t,c={url:e,options:l,retries:s,shouldDropOnRateLimit:r};if(g&&!v)return V(c);const h={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${P}`),h;try{const o=await fetch(e,l);if(o.status===429)if(!g&&!r||v){g=!0;const i=o.headers.has("ratelimit-reset")?Number(o.headers.get("ratelimit-reset")):le.RATELIMIT_RESET_DEFAULT;return await w(i*1e3),p(e,{...l,shouldDropOnRateLimit:r,shouldRetryRequest:!0})}else return V(c);if(g=!1,E.length&&(E.map(i=>{const y=i.payload;p(y.url,{...y.options,retries:y.retries,shouldDropOnRateLimit:y.shouldDropOnRateLimit}).then(H=>{i.resolveRequest(H)})}),E=[]),o.ok){if(o.status===249)return N(),h;const i=await o.text();try{return i&&i!=="OK"&&(o.json=JSON.parse(i)),o}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${i}`)}}}return o}catch(o){const i=s+1;return i>5||M?{ok:!1,reportError:!1,error:o}:(await w(Math.pow(2,s)*1e3),p(e,{...l,retries:i}))}},u={Error:1,Warn:2,Info:3,Debug:4};let b=1e3,f=u.Debug,d=[];const he=e=>{const t=Object.entries(u).find(s=>s[1]===e);return t?.[0]??""},pe=e=>e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}),me=(e,t)=>`${pe(t)}:${e}`,ve=()=>{d=d.filter(e=>e.level<=f)},ye=()=>{d.length>b&&d.shift()},S=(e,t)=>{e>f||(d.push({level:e,line:me(t,new Date)}),ye())},W=e=>{S(u.Debug,e)},_e=e=>{S(u.Info,e)},Y=e=>{S(u.Warn,e)},ge=e=>{S(u.Error,e)},Ee=()=>d.map(e=>e.line),fe=()=>new TextEncoder().encode(Ee().join(`
2
- `)),Se=async e=>{if(!e)return;const t=fe();return p(e,{body:t,method:"PUT"})},Le=(e,t)=>{e!==void 0&&(b=e),t!==void 0&&(f=t),W(`Initializing logger with limit of ${b} lines and ${he(f)} level`),ve()},j=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function $(e,t){const{matchType:s,pattern:r}=e,v=s?j[s]:j.legacy;let l=!1;try{l=v(r,t)}catch(c){const h=`[Sprig] (ERR-445) Failed to check url match with pattern ${r}`;c instanceof Error&&(console.warn(h,c),c.stack=JSON.stringify(e),window.UserLeap.reportError(h,c))}return l}const we=e=>{const{pageUrlEvents:t}=window.UserLeap._config,s=t?.find(r=>r.id===e);return s?$(s,window.location.href):!1};let F=!0,R=!1;const Ie=()=>F=!1,be=()=>R=!0,Re=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let m={},O;class Oe{constructor(t){a(this,"_values",[]),a(this,"_isWebMetric"),this.name=t,this._isWebMetric=Re.includes(this.name)}report(t){if(F&&this._values.push({time:Date.now(),value:t}),R||!this._isWebMetric)return;const s=this.findExceededThreshold(t);s&&O&&O(t,s)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const s=m[this.name];if(s)return s.find(r=>this.valueExceedsThreshold(t,r))}valueExceedsThreshold(t,s){return s.type==="max"?t>s.value:s.type==="min"?t<s.value:!1}}const ke=(e,t)=>{m={},R=!1,e?.forEach(s=>{var r;s.metric in m||(m[s.metric]=[]),(r=m[s.metric])==null||r.push(s)}),O=t},L={},q=e=>{const t=new Oe(e);return L[e]=t,t},Ae=(e,t)=>{let s=L[e];return s||(s=q(e)),s.report(t)},De=async e=>{const t=Object.values(L).map(s=>({name:s.name,values:s.collect()}));if(t.some(s=>s.values.length))try{await e(JSON.stringify(t))}catch(s){Y(`Error posting metrics: ${s}`)}},Ue=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{De(t)},e*1e3):Ie()};export{k as D,B as E,L as P,A as S,re as a,Ae as b,we as c,W as d,ge as e,te as f,oe as g,de as h,_e as i,se as j,ke as k,ne as l,I as m,Ue as n,be as o,Le as p,ue as q,q as r,p as s,N as t,Se as u,Z as v,Y as w,$ as x,w as y};
1
+ var J=Object.defineProperty,K=(e,t,s)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,a=(e,t,s)=>(K(e,typeof t!="symbol"?t+"":t,s),s),k=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(k||{}),A=(e=>(e.ReplayCapture="replay.capture",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});const B={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}};let _;const G=new Uint8Array(16);function z(){if(!_&&(_=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!_))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return _(G)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function Q(e,t=0){return n[e[t+0]]+n[e[t+1]]+n[e[t+2]]+n[e[t+3]]+"-"+n[e[t+4]]+n[e[t+5]]+"-"+n[e[t+6]]+n[e[t+7]]+"-"+n[e[t+8]]+n[e[t+9]]+"-"+n[e[t+10]]+n[e[t+11]]+n[e[t+12]]+n[e[t+13]]+n[e[t+14]]+n[e[t+15]]}const X=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),D={randomUUID:X};function Z(e,t,s){if(D.randomUUID&&!t&&!e)return D.randomUUID();e=e||{};const r=e.random||(e.rng||z)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,Q(r)}var ee=class extends Error{constructor(e,t,s){super(`Possible EventEmitter memory leak detected. ${s} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=s,this.name="MaxListenersExceededWarning"}},U=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=U.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,s){this.emit(e,t,s)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const s=e.indexOf(t);return s>-1&&e.splice(s,1),[]}_wrapOnceListener(e,t){const s=(...r)=>(this.removeListener(e,s),t.apply(this,r));return Object.defineProperty(s,"name",{value:t.name}),s}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const s=this._getListeners(e);return s.forEach(r=>{r.apply(this,t)}),s.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const s=this._getListeners(e).concat(t);if(this.events.set(e,s),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const r=new ee(this,e,this.listenerCount(e));console.warn(r)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const s=this._getListeners(e);if(s.length>0){const r=[t].concat(s);this.events.set(e,r)}else this.events.set(e,s.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const s=this._getListeners(e);return s.length>0&&(this._removeListener(s,t),this.events.set(e,s),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},C=U;C.defaultMaxListeners=10;const te=new C,w=async e=>{await new Promise(t=>{setTimeout(t,e)})},se=({"userleap-platform":e})=>e!=="web";class x{constructor(t){a(this,"storage"),a(this,"tempStorage",{}),a(this,"isStorageAvailable"),this.storage=window[t],this.isStorageAvailable=this.checkIfStorageAvailable()}checkIfStorageAvailable(){try{const t="__storage_test__";return this.storage.setItem(t,t),this.storage.removeItem(t),!0}catch{return!1}}setItem(t,s){this.isStorageAvailable?this.storage.setItem(t,s):this.tempStorage[t]=s}getItem(t){return this.isStorageAvailable?this.storage.getItem(t):this.tempStorage[t]}removeItem(t){this.isStorageAvailable?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable?this.storage.clear():this.tempStorage={}}}const re=new x("sessionStorage"),ne=new x("localStorage");class ie{constructor(t){a(this,"payload"),a(this,"promise"),a(this,"reject",()=>{}),a(this,"resolve",()=>{}),this.payload=t,this.promise=new Promise((s,r)=>{this.reject=r,this.resolve=s})}resolveRequest(t){this.resolve(t)}}const I={replay:null},oe=e=>{I.replay=e},ae=()=>{const e=[];return I.replay&&e.push("replay"),e.join(",")},le={RATELIMIT_RESET_DEFAULT:10};let T=!1,P="",g=!1,M=!1,E=[];const ce=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",ue=e=>{var t;(t=e?.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(M=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},N=(e="")=>{T=!0,P=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.31.1","x-ul-installation-method":ce(e),"sprig-modules":ae()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const s=JSON.parse(e.mobileHeadersJSON);Object.assign(t,s)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t}const V=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const s=new ie(t);return E.push(s),s.promise}},p=async(e,t)=>{const{retries:s=0,shouldDropOnRateLimit:r=!1,shouldRetryRequest:v=!1,...l}=t,c={url:e,options:l,retries:s,shouldDropOnRateLimit:r};if(g&&!v)return V(c);const h={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${P}`),h;try{const o=await fetch(e,l);if(o.status===429)if(!g&&!r||v){g=!0;const i=o.headers.has("ratelimit-reset")?Number(o.headers.get("ratelimit-reset")):le.RATELIMIT_RESET_DEFAULT;return await w(i*1e3),p(e,{...l,shouldDropOnRateLimit:r,shouldRetryRequest:!0})}else return V(c);if(g=!1,E.length&&(E.map(i=>{const y=i.payload;p(y.url,{...y.options,retries:y.retries,shouldDropOnRateLimit:y.shouldDropOnRateLimit}).then(H=>{i.resolveRequest(H)})}),E=[]),o.ok){if(o.status===249)return N(),h;const i=await o.text();try{return i&&i!=="OK"&&(o.json=JSON.parse(i)),o}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${i}`)}}}return o}catch(o){const i=s+1;return i>5||M?{ok:!1,reportError:!1,error:o}:(await w(Math.pow(2,s)*1e3),p(e,{...l,retries:i}))}},u={Error:1,Warn:2,Info:3,Debug:4};let b=1e3,f=u.Debug,d=[];const he=e=>{const t=Object.entries(u).find(s=>s[1]===e);return t?.[0]??""},pe=e=>e.toLocaleTimeString([],{hour:"2-digit",minute:"2-digit",second:"2-digit",fractionalSecondDigits:3}),me=(e,t)=>`${pe(t)}:${e}`,ve=()=>{d=d.filter(e=>e.level<=f)},ye=()=>{d.length>b&&d.shift()},S=(e,t)=>{e>f||(d.push({level:e,line:me(t,new Date)}),ye())},W=e=>{S(u.Debug,e)},_e=e=>{S(u.Info,e)},Y=e=>{S(u.Warn,e)},ge=e=>{S(u.Error,e)},Ee=()=>d.map(e=>e.line),fe=()=>new TextEncoder().encode(Ee().join(`
2
+ `)),Se=async e=>{if(!e)return;const t=fe();return p(e,{body:t,method:"PUT"})},Le=(e,t)=>{e!==void 0&&(b=e),t!==void 0&&(f=t),W(`Initializing logger with limit of ${b} lines and ${he(f)} level`),ve()},j=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function $(e,t){const{matchType:s,pattern:r}=e,v=s?j[s]:j.legacy;let l=!1;try{l=v(r,t)}catch(c){const h=`[Sprig] (ERR-445) Failed to check url match with pattern ${r}`;c instanceof Error&&(console.warn(h,c),c.stack=JSON.stringify(e),window.UserLeap.reportError(h,c))}return l}const we=e=>{const{pageUrlEvents:t}=window.UserLeap._config,s=t?.find(r=>r.id===e);return s?$(s,window.location.href):!1};let F=!0,R=!1;const Ie=()=>F=!1,be=()=>R=!0,Re=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let m={},O;class Oe{constructor(t){a(this,"_values",[]),a(this,"_isWebMetric"),this.name=t,this._isWebMetric=Re.includes(this.name)}report(t){if(F&&this._values.push({time:Date.now(),value:t}),R||!this._isWebMetric)return;const s=this.findExceededThreshold(t);s&&O&&O(t,s)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const s=m[this.name];if(s)return s.find(r=>this.valueExceedsThreshold(t,r))}valueExceedsThreshold(t,s){return s.type==="max"?t>s.value:s.type==="min"?t<s.value:!1}}const ke=(e,t)=>{m={},R=!1,e?.forEach(s=>{var r;s.metric in m||(m[s.metric]=[]),(r=m[s.metric])==null||r.push(s)}),O=t},L={},q=e=>{const t=new Oe(e);return L[e]=t,t},Ae=(e,t)=>{let s=L[e];return s||(s=q(e)),s.report(t)},De=async e=>{const t=Object.values(L).map(s=>({name:s.name,values:s.collect()}));if(t.some(s=>s.values.length))try{await e(JSON.stringify(t))}catch(s){Y(`Error posting metrics: ${s}`)}},Ue=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{De(t)},e*1e3):Ie()};export{k as D,B as E,L as P,A as S,re as a,Ae as b,we as c,te as d,ge as e,W as f,oe as g,de as h,_e as i,se as j,ke as k,ne as l,I as m,Ue as n,be as o,Le as p,ue as q,q as r,p as s,N as t,Se as u,Z as v,Y as w,$ as x,w as y};