@sprig-technologies/sprig-browser 2.30.2 → 2.30.3

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.
@@ -1,4 +1,4 @@
1
- var it=Object.defineProperty,ot=(t,e,n)=>e in t?it(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,B=(t,e,n)=>(ot(t,typeof e!="symbol"?e+"":e,n),n);import{h as F,s as Ee,f as w,S as g,l as k,i as x,v as xe,m as U,j as st,E as N,D as j,c as at,r as dt,k as lt,n as ct,o as pt,p as ut,q as _e,t as Ae,u as wt,a as gt,x as de,b as yt,y as Re}from"./metricsReporter-B6Yx0G8b.js";const mt='.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}',De="360px",vt="ul-app",ft="#e6e6e6",ht="#bd282a",bt=500,Lt=1030,Oe=()=>{try{return window.parent.Intercom}catch{return null}},Ut=()=>{const t=Oe();t&&(t.ul_wasVisible&&t("update",{hide_default_launcher:!1}),delete t.ul_wasVisible)},St=()=>{const t=Oe();t&&(t.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),t.ul_wasVisible&&t("update",{hide_default_launcher:!0}))},It=Object.freeze(Object.defineProperty({__proto__:null,disable:St,enable:Ut},Symbol.toStringTag,{value:"Module"})),Pe=[It];class Ce{static disable(){Pe.forEach(e=>e.disable())}static enable(){Pe.forEach(e=>e.enable())}}const Te="ul-view-sdk-script",kt=["ios","android"],C="visitors",T="environments";async function D(t,e){var n,o,r;const{shouldDropOnRateLimit:i,...a}=e;a.headers=Object.assign(F(window.UserLeap),a.headers);const s=await Ee(t,{...a,shouldDropOnRateLimit:i});if(s.ok){const d=(n=s.headers)==null?void 0:n.get("Authorization"),p=d?d.split(" "):void 0,l=p&&p.length===2?p[1]:void 0,c=(o=s.headers)==null?void 0:o.get("x-ul-visitor-id");l&&c&&(c!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(E("token",l),E("vid",c),w.emit(g.VisitorIDUpdated,{visitorId:c}),window.UserLeap.token=l,window.UserLeap.visitorId=c)}return(r=s.json)!=null&&r.logMessage&&console.warn(`[Sprig] ${s.json.logMessage}`),s}function E(t,e){const n=k.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[t]=e:r={[t]:e},o[window.UserLeap.envId]=r;try{k.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 le(){return window.previewMode?"0":window.UserLeap.visitorId??""}function R(t,e,n){const o=[window.UserLeap._API_URL,"sdk",t];return e&&e.forEach(r=>{o.push(r),r===T?o.push(window.UserLeap.envId):r===C&&o.push(le())}),n&&o.push(n),o.join("/")}const W=async(t,e)=>{var n,o,r;const{context:i,forceBrandedLogo:a,endCard:s,isFeedback:d=!1,heatmap:p,locale:l,previewMode:c,productConfig:u,questions:f,responseGroupUid:m,surveyId:y,uuid:_,vid:b,sessionReplay:h,studyType:A}=t,S=F(window.UserLeap),I=pe(S),ie=ce(S);if(x(`Attempting to display survey: ${y}`),h)if(x("Survey has replay attached"),I)w.emit(g.ReplayCapture,{responseGroupUid:m,hasQuestions:!!(f!=null&&f.length),surveyId:y,uploadId:h.uploadId,replayType:h.replayDurationType??"before",seconds:h.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:xe(),mediaType:"screen",questionId:1,responseGroupUid:m,surveyId:y,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:m,surveyId:y,visitorId:b,replayParams:h,completeUploadHeaders:S,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:f.length===0})}if(p){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:L,replayParams:ae,responseGroupUid:rt,surveyId:nt}=p;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:S,eventId:L,isHeatmap:!0,replayParams:ae,responseGroupId:rt,surveyId:nt,triggerTimestamp:Date.now(),visitorId:b})}if(b==null||!(f!=null&&f.length))return x(`Not displaying survey: vid: ${b} / questions: ${f}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){x("Already displaying a survey");const L="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}if(b!==window.UserLeap.visitorId&&_!==window.UserLeap.visitorId&&!window.previewMode){const L="Attempted to display survey to a different visitor";return x(L),window.UserLeap.reportError("DisplaySurvey",new Error(L)),{success:!1,message:L,surveyState:"no survey"}}x(`Showing survey: ${y}`),(n=U.replay)==null||n.RecordSurveyShown({id:y,userAgent:window.navigator.userAgent}),Ce.disable(),w.emit(g.SurveyWillPresent,{name:g.SurveyWillPresent,"survey.id":y});let K,Q=document.createElement("div"),Y,P,X;const Se=L=>{const{"view.version":ae}=L;ae!==S["x-ul-sdk-version"]&&je(),w.removeListener("verify.view.version",Se)};w.on("verify.view.version",Se),window.UserLeap.useMobileStyling=ie,st(S)?(K="ul-direct-embeded-frame",Y=document.head,P=window,X=!1,I&&(Fe(d),Q.id=K,window.UserLeap.container.appendChild(Q),Me(),w.emit(g.SurveyLifeCycle,{state:"presented"}),w.emit(g.SurveyPresented,{name:g.SurveyPresented,"survey.id":y}))):{frameId:K,contentWinDocHead:Y,contentWindow:P,hasOverlay:X,iframe:Q}=Rt({productConfig:u,useMobileStyling:ie,surveyId:y,isFeedback:d}),window.UserLeap.frameId=K;const Ze=L=>{w.once(g.CloseSurveyOnOverlayClick,L)},q={apiURL:window.UserLeap._API_URL,cards:f,configureExitOnOverlayClick:Ze,context:i,endCard:s,envId:window.UserLeap.envId,eventEmitFn:w.emit.bind(w),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:a,frame:Q,headers:S,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:k.getItem("sprig.previewKey"),previewMode:c,productConfig:{framePosition:u?.framePosition,desktopDisplay:u?.desktopDisplay,placement:u?.placement},responseGroupUid:m,startingQuestionIdx:(o=window.UserLeap.config)==null?void 0:o.startingQuestionIdx,studyType:A,styleNonce:window.UserLeap.styleNonce,surveyId:y,tabTitle:document.title,trackPageViewUrl:e,ulEvents:N,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:ie,userId:_,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 et=(d?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??u.customStyles;q.customStyles=et,P&&(P.__cfg=q);function tt(){const L=document.createElement("script");return window.UserLeap.nonce&&L.setAttribute("nonce",window.UserLeap.nonce),L.id=Te,L}const oe=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:q.path,Ie=document.getElementById(Te);Ie&&Ie.remove();const se=tt(),ke=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(q.installationMethod==="web-npm"||q.installationMethod==="web-npm-bundled"){const{default:L}=await import("./view-C5kHSC2Q.js");L.configure(q),X&&window.UserLeap.container&&ke()}else oe&&(se.src=oe,X&&se.addEventListener("load",()=>{window.UserLeap.container&&ke()}),P?.addEventListener("error",L=>{L.target instanceof HTMLScriptElement&&L.target.src===oe&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));return Y?.appendChild(se),{success:!0,surveyState:"ready",surveyId:y,responseGroupUid:m}};function ce(t){var e;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const n=((e=window.UserLeap.windowDimensions)==null?void 0:e.width)??document.body.clientWidth;return pe(t)||n>10&&n<bt}function pe(t){return kt.includes(t["userleap-platform"])}const ue="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 Et="rgba(255,255,255, 0.95)",xt="rgba(0,0,0,0.9)",we="0px",Fe=(t,e)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${t&&"ul-container-feedback"}`;const n=Ne();e&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},je=(t,e)=>{var n;Ot();const o=window.UserLeap.container;if(o)try{(n=o.parentNode)==null||n.removeChild(o),window.UserLeap.container=null,E("trackStartUrl",null),w.emit(g.SurveyLifeCycle,{state:"dismissed"}),w.emit(g.SurveyClosed,{name:g.SurveyClosed,initiator:t,studyType:e})}catch(r){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${t} `+o),r instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",r)}},Me=()=>{w.once(g.SurveyWillClose,({initiator:t,studyType:e})=>{w.removeAllListeners(g.CloseSurveyOnOverlayClick),je(t,e)})},_t=(t,e)=>{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=e?t.overlayStyleMobile:t.overlayStyle;n["background-color"]=o==="light"?Et:xt,e||(n.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,n)},At=(t,e,n,o)=>{var r,i;const a={position:"fixed",bottom:"0px",right:we,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%"},s=Object.assign({},e,window.UserLeap),{desktopDisplay:d}=e||{},p=d==="center-modal";p&&(s.framePosition="center");let l,c=!1;if(n)(r=window.UserLeap.windowDimensions)!=null&&r.width?a.width=`${window.UserLeap.windowDimensions.width}px`:a.width="100%",(i=window.UserLeap.windowDimensions)!=null&&i.height?a.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?a.maxHeight=window.UserLeap.maxHeight:a.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(s.overlayStyleMobile)&&(c=!0);else{a.width=De,a.maxHeight=window.UserLeap.maxHeight||"66vh";const u=()=>{c=!0,l={margin:"auto",position:"static"}};if(o)p?u():l={position:"relative",height:"300px"};else switch(s.framePosition){case"bottomLeft":l={left:we};break;case"topLeft":l={left:we,top:0};break;case"topRight":l={top:0};break;case"center":u();break}}return c&&_t(s,n),Object.assign(t.style,a,l),c},Rt=({productConfig:t,useMobileStyling:e,surveyId:n,isFeedback:o})=>{var r,i;const a=ue,s=o&&t.desktopDisplay==="slider";Fe(o,s),Dt();const d=document.createElement("iframe");d.id=a,d.setAttribute("title","Sprig User Feedback Dialog");const p=At(d,t,e,o);Me();let l=!1;d.setHeight=m=>{(parseInt(d.style.height)!=m||!l)&&(l=!0,d.style.height=`${m}px`,w.emit(g.SurveyHeight,{name:g.SurveyHeight,contentFrameHeight:m}))};let c=!1;d.setWidth=m=>{(parseInt(d.style.width)!=m||!c)&&(c=!0,d.style.width=`${m}px`,w.emit(g.SurveyWidth,{name:g.SurveyWidth,contentFrameWidth:m}))},(r=window.UserLeap.container)==null||r.appendChild(d),t&&(e?t.exitOnOverlayClickMobile:t.exitOnOverlayClick)&&window.UserLeap.container&&(window.UserLeap.container.onclick=()=>{w.emit(g.CloseSurveyOnOverlayClick)}),w.emit(g.SurveyLifeCycle,{state:"presented"}),w.emit(g.SurveyPresented,{name:g.SurveyPresented,"survey.id":n});const u=(i=d.contentWindow)==null?void 0:i.document;if(u&&(u.open("text/html","replace"),u.write("<!doctype html><head></head><body></body></html>"),u.close(),!e)){const m=u.body;m.style.display="flex",m.style.alignItems="center"}const f=u?.head;return{frameId:a,contentWinDocHead:f,contentWindow:d.contentWindow,hasOverlay:p,iframe:d}},qe={[g.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},Dt=()=>{Object.entries(qe).forEach(([t,e])=>{w.on(t,e)})},Ot=()=>{Object.entries(qe).forEach(([t,e])=>{w.off(t,e)})},Pt=1,ze=t=>t instanceof HTMLElement||t instanceof SVGElement,Z=(t,e,n)=>{const o="ul-custom-style",r=t.getElementById(o);if(r){r.textContent=e;return}const i=t.createElement("style");n&&(i.nonce=n),i.textContent=e,i.id=o,t.head.appendChild(i)},Be=t=>{const e=t.querySelector(".ul-card__container");let n=600,o=360;if(e){n=e.scrollHeight;const r=getComputedStyle(e),i=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),s=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);n+=i+a+s;const d=e.querySelector(".ul-card--matrix_grid");o=d?d.scrollWidth:e.scrollWidth;const p=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),l=parseFloat(r.marginLeft)+parseFloat(r.marginRight),c=parseFloat(r.borderLeftWidth)+parseFloat(r.borderRightWidth);o+=l+c+p}return[n+Pt,o]},Ct=t=>{const e=t.querySelector(".ul-card__container");e&&(e.scrollTop=0)},Ne=()=>v,z=()=>document.getElementById("sprig-feedback-container"),ge=()=>document.getElementById("sprig-feedback-loading-animation"),Tt=()=>{if(ge())return;const t=document.createElement("div");return t.className="ul-loading-spinner-container",t.id="sprig-feedback-loading-animation",t.role="progressbar",t.setAttribute("aria-live","polite"),t.setAttribute("aria-busy","true"),t.setAttribute("aria-label","Processing..."),t.innerHTML=`
1
+ var it=Object.defineProperty,ot=(t,e,n)=>e in t?it(t,e,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[e]=n,B=(t,e,n)=>(ot(t,typeof e!="symbol"?e+"":e,n),n);import{h as F,s as Ee,f as w,S as g,l as k,i as x,v as xe,m as U,j as st,E as N,D as j,c as at,r as dt,k as lt,n as ct,o as pt,p as ut,q as _e,t as Ae,u as wt,a as gt,x as de,b as yt,y as Re}from"./metricsReporter-DNUikwDb.js";const mt='.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}',De="360px",vt="ul-app",ft="#e6e6e6",ht="#bd282a",bt=500,Lt=1030,Oe=()=>{try{return window.parent.Intercom}catch{return null}},Ut=()=>{const t=Oe();t&&(t.ul_wasVisible&&t("update",{hide_default_launcher:!1}),delete t.ul_wasVisible)},St=()=>{const t=Oe();t&&(t.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),t.ul_wasVisible&&t("update",{hide_default_launcher:!0}))},It=Object.freeze(Object.defineProperty({__proto__:null,disable:St,enable:Ut},Symbol.toStringTag,{value:"Module"})),Pe=[It];class Ce{static disable(){Pe.forEach(e=>e.disable())}static enable(){Pe.forEach(e=>e.enable())}}const Te="ul-view-sdk-script",kt=["ios","android"],C="visitors",T="environments";async function D(t,e){var n,o,r;const{shouldDropOnRateLimit:i,...a}=e;a.headers=Object.assign(F(window.UserLeap),a.headers);const s=await Ee(t,{...a,shouldDropOnRateLimit:i});if(s.ok){const d=(n=s.headers)==null?void 0:n.get("Authorization"),p=d?d.split(" "):void 0,l=p&&p.length===2?p[1]:void 0,c=(o=s.headers)==null?void 0:o.get("x-ul-visitor-id");l&&c&&(c!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(E("token",l),E("vid",c),w.emit(g.VisitorIDUpdated,{visitorId:c}),window.UserLeap.token=l,window.UserLeap.visitorId=c)}return(r=s.json)!=null&&r.logMessage&&console.warn(`[Sprig] ${s.json.logMessage}`),s}function E(t,e){const n=k.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[t]=e:r={[t]:e},o[window.UserLeap.envId]=r;try{k.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 le(){return window.previewMode?"0":window.UserLeap.visitorId??""}function R(t,e,n){const o=[window.UserLeap._API_URL,"sdk",t];return e&&e.forEach(r=>{o.push(r),r===T?o.push(window.UserLeap.envId):r===C&&o.push(le())}),n&&o.push(n),o.join("/")}const W=async(t,e)=>{var n,o,r;const{context:i,forceBrandedLogo:a,endCard:s,isFeedback:d=!1,heatmap:p,locale:l,previewMode:c,productConfig:u,questions:f,responseGroupUid:m,surveyId:y,uuid:_,vid:b,sessionReplay:h,studyType:A}=t,S=F(window.UserLeap),I=pe(S),ie=ce(S);if(x(`Attempting to display survey: ${y}`),h)if(x("Survey has replay attached"),I)w.emit(g.ReplayCapture,{responseGroupUid:m,hasQuestions:!!(f!=null&&f.length),surveyId:y,uploadId:h.uploadId,replayType:h.replayDurationType??"before",seconds:h.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:xe(),mediaType:"screen",questionId:1,responseGroupUid:m,surveyId:y,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:m,surveyId:y,visitorId:b,replayParams:h,completeUploadHeaders:S,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:f.length===0})}if(p){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:L,replayParams:ae,responseGroupUid:rt,surveyId:nt}=p;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:S,eventId:L,isHeatmap:!0,replayParams:ae,responseGroupId:rt,surveyId:nt,triggerTimestamp:Date.now(),visitorId:b})}if(b==null||!(f!=null&&f.length))return x(`Not displaying survey: vid: ${b} / questions: ${f}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){x("Already displaying a survey");const L="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}if(b!==window.UserLeap.visitorId&&_!==window.UserLeap.visitorId&&!window.previewMode){const L="Attempted to display survey to a different visitor";return x(L),window.UserLeap.reportError("DisplaySurvey",new Error(L)),{success:!1,message:L,surveyState:"no survey"}}x(`Showing survey: ${y}`),(n=U.replay)==null||n.RecordSurveyShown({id:y,userAgent:window.navigator.userAgent}),Ce.disable(),w.emit(g.SurveyWillPresent,{name:g.SurveyWillPresent,"survey.id":y});let K,Q=document.createElement("div"),Y,P,X;const Se=L=>{const{"view.version":ae}=L;ae!==S["x-ul-sdk-version"]&&je(),w.removeListener("verify.view.version",Se)};w.on("verify.view.version",Se),window.UserLeap.useMobileStyling=ie,st(S)?(K="ul-direct-embeded-frame",Y=document.head,P=window,X=!1,I&&(Fe(d),Q.id=K,window.UserLeap.container.appendChild(Q),Me(),w.emit(g.SurveyLifeCycle,{state:"presented"}),w.emit(g.SurveyPresented,{name:g.SurveyPresented,"survey.id":y}))):{frameId:K,contentWinDocHead:Y,contentWindow:P,hasOverlay:X,iframe:Q}=Rt({productConfig:u,useMobileStyling:ie,surveyId:y,isFeedback:d}),window.UserLeap.frameId=K;const Ze=L=>{w.once(g.CloseSurveyOnOverlayClick,L)},q={apiURL:window.UserLeap._API_URL,cards:f,configureExitOnOverlayClick:Ze,context:i,endCard:s,envId:window.UserLeap.envId,eventEmitFn:w.emit.bind(w),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:a,frame:Q,headers:S,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:k.getItem("sprig.previewKey"),previewMode:c,productConfig:{framePosition:u?.framePosition,desktopDisplay:u?.desktopDisplay,placement:u?.placement},responseGroupUid:m,startingQuestionIdx:(o=window.UserLeap.config)==null?void 0:o.startingQuestionIdx,studyType:A,styleNonce:window.UserLeap.styleNonce,surveyId:y,tabTitle:document.title,trackPageViewUrl:e,ulEvents:N,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:ie,userId:_,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 et=(d?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??u.customStyles;q.customStyles=et,P&&(P.__cfg=q);function tt(){const L=document.createElement("script");return window.UserLeap.nonce&&L.setAttribute("nonce",window.UserLeap.nonce),L.id=Te,L}const oe=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:q.path,Ie=document.getElementById(Te);Ie&&Ie.remove();const se=tt(),ke=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(q.installationMethod==="web-npm"||q.installationMethod==="web-npm-bundled"){const{default:L}=await import("./view-CJBVxA0k.js");L.configure(q),X&&window.UserLeap.container&&ke()}else oe&&(se.src=oe,X&&se.addEventListener("load",()=>{window.UserLeap.container&&ke()}),P?.addEventListener("error",L=>{L.target instanceof HTMLScriptElement&&L.target.src===oe&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));return Y?.appendChild(se),{success:!0,surveyState:"ready",surveyId:y,responseGroupUid:m}};function ce(t){var e;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const n=((e=window.UserLeap.windowDimensions)==null?void 0:e.width)??document.body.clientWidth;return pe(t)||n>10&&n<bt}function pe(t){return kt.includes(t["userleap-platform"])}const ue="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 Et="rgba(255,255,255, 0.95)",xt="rgba(0,0,0,0.9)",we="0px",Fe=(t,e)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${t&&"ul-container-feedback"}`;const n=Ne();e&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},je=(t,e)=>{var n;Ot();const o=window.UserLeap.container;if(o)try{(n=o.parentNode)==null||n.removeChild(o),window.UserLeap.container=null,E("trackStartUrl",null),w.emit(g.SurveyLifeCycle,{state:"dismissed"}),w.emit(g.SurveyClosed,{name:g.SurveyClosed,initiator:t,studyType:e})}catch(r){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${t} `+o),r instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",r)}},Me=()=>{w.once(g.SurveyWillClose,({initiator:t,studyType:e})=>{w.removeAllListeners(g.CloseSurveyOnOverlayClick),je(t,e)})},_t=(t,e)=>{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=e?t.overlayStyleMobile:t.overlayStyle;n["background-color"]=o==="light"?Et:xt,e||(n.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,n)},At=(t,e,n,o)=>{var r,i;const a={position:"fixed",bottom:"0px",right:we,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%"},s=Object.assign({},e,window.UserLeap),{desktopDisplay:d}=e||{},p=d==="center-modal";p&&(s.framePosition="center");let l,c=!1;if(n)(r=window.UserLeap.windowDimensions)!=null&&r.width?a.width=`${window.UserLeap.windowDimensions.width}px`:a.width="100%",(i=window.UserLeap.windowDimensions)!=null&&i.height?a.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?a.maxHeight=window.UserLeap.maxHeight:a.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(s.overlayStyleMobile)&&(c=!0);else{a.width=De,a.maxHeight=window.UserLeap.maxHeight||"66vh";const u=()=>{c=!0,l={margin:"auto",position:"static"}};if(o)p?u():l={position:"relative",height:"300px"};else switch(s.framePosition){case"bottomLeft":l={left:we};break;case"topLeft":l={left:we,top:0};break;case"topRight":l={top:0};break;case"center":u();break}}return c&&_t(s,n),Object.assign(t.style,a,l),c},Rt=({productConfig:t,useMobileStyling:e,surveyId:n,isFeedback:o})=>{var r,i;const a=ue,s=o&&t.desktopDisplay==="slider";Fe(o,s),Dt();const d=document.createElement("iframe");d.id=a,d.setAttribute("title","Sprig User Feedback Dialog");const p=At(d,t,e,o);Me();let l=!1;d.setHeight=m=>{(parseInt(d.style.height)!=m||!l)&&(l=!0,d.style.height=`${m}px`,w.emit(g.SurveyHeight,{name:g.SurveyHeight,contentFrameHeight:m}))};let c=!1;d.setWidth=m=>{(parseInt(d.style.width)!=m||!c)&&(c=!0,d.style.width=`${m}px`,w.emit(g.SurveyWidth,{name:g.SurveyWidth,contentFrameWidth:m}))},(r=window.UserLeap.container)==null||r.appendChild(d),t&&(e?t.exitOnOverlayClickMobile:t.exitOnOverlayClick)&&window.UserLeap.container&&(window.UserLeap.container.onclick=()=>{w.emit(g.CloseSurveyOnOverlayClick)}),w.emit(g.SurveyLifeCycle,{state:"presented"}),w.emit(g.SurveyPresented,{name:g.SurveyPresented,"survey.id":n});const u=(i=d.contentWindow)==null?void 0:i.document;if(u&&(u.open("text/html","replace"),u.write("<!doctype html><head></head><body></body></html>"),u.close(),!e)){const m=u.body;m.style.display="flex",m.style.alignItems="center"}const f=u?.head;return{frameId:a,contentWinDocHead:f,contentWindow:d.contentWindow,hasOverlay:p,iframe:d}},qe={[g.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},Dt=()=>{Object.entries(qe).forEach(([t,e])=>{w.on(t,e)})},Ot=()=>{Object.entries(qe).forEach(([t,e])=>{w.off(t,e)})},Pt=1,ze=t=>t instanceof HTMLElement||t instanceof SVGElement,Z=(t,e,n)=>{const o="ul-custom-style",r=t.getElementById(o);if(r){r.textContent=e;return}const i=t.createElement("style");n&&(i.nonce=n),i.textContent=e,i.id=o,t.head.appendChild(i)},Be=t=>{const e=t.querySelector(".ul-card__container");let n=600,o=360;if(e){n=e.scrollHeight;const r=getComputedStyle(e),i=parseFloat(r.marginTop)+parseFloat(r.marginBottom),a=parseFloat(r.borderTopWidth)+parseFloat(r.borderBottomWidth),s=parseFloat(r.paddingTop)+parseFloat(r.paddingBottom);n+=i+a+s;const d=e.querySelector(".ul-card--matrix_grid");o=d?d.scrollWidth:e.scrollWidth;const p=parseFloat(r.paddingLeft)+parseFloat(r.paddingRight),l=parseFloat(r.marginLeft)+parseFloat(r.marginRight),c=parseFloat(r.borderLeftWidth)+parseFloat(r.borderRightWidth);o+=l+c+p}return[n+Pt,o]},Ct=t=>{const e=t.querySelector(".ul-card__container");e&&(e.scrollTop=0)},Ne=()=>v,z=()=>document.getElementById("sprig-feedback-container"),ge=()=>document.getElementById("sprig-feedback-loading-animation"),Tt=()=>{if(ge())return;const t=document.createElement("div");return t.className="ul-loading-spinner-container",t.id="sprig-feedback-loading-animation",t.role="progressbar",t.setAttribute("aria-live","polite"),t.setAttribute("aria-busy","true"),t.setAttribute("aria-label","Processing..."),t.innerHTML=`
2
2
  <div class="ul-loading-spinner">
3
3
  <div class="first"></div>
4
4
  <div class="second"></div>
@@ -1,4 +1,4 @@
1
- "use strict";var $e=Object.defineProperty;var qe=(t,r,n)=>r in t?$e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n;var F=(t,r,n)=>(qe(t,typeof r!="symbol"?r+"":r,n),n);const i=require("./metricsReporter-BIT_adF4.cjs"),Ge='.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}',Ee="360px",Ke="ul-app",Je="#e6e6e6",Qe="#bd282a",Ye=500,Xe=1030,Ue=()=>{try{return window.parent.Intercom}catch{return null}},Ze=()=>{const t=Ue();t&&(t.ul_wasVisible&&t("update",{hide_default_launcher:!1}),delete t.ul_wasVisible)},et=()=>{const t=Ue();t&&(t.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),t.ul_wasVisible&&t("update",{hide_default_launcher:!0}))},tt=Object.freeze(Object.defineProperty({__proto__:null,disable:et,enable:Ze},Symbol.toStringTag,{value:"Module"})),ve=[tt];class Ie{static disable(){ve.forEach(r=>r.disable())}static enable(){ve.forEach(r=>r.enable())}}const he="ul-view-sdk-script",rt=["ios","android"],O="visitors",x="environments";async function R(t,r){var o,a,l;const{shouldDropOnRateLimit:n,...s}=r;s.headers=Object.assign(i.getHttpHeaders(window.UserLeap),s.headers);const e=await i.sprigFetch(t,{...s,shouldDropOnRateLimit:n});if(e.ok){const d=(o=e.headers)==null?void 0:o.get("Authorization"),p=d?d.split(" "):void 0,c=p&&p.length===2?p[1]:void 0,u=(a=e.headers)==null?void 0:a.get("x-ul-visitor-id");c&&u&&(u!==window.UserLeap.visitorId||window.UserLeap.token!==c)&&(U("token",c),U("vid",u),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:u}),window.UserLeap.token=c,window.UserLeap.visitorId=u)}return(l=e.json)!=null&&l.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function U(t,r){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 e=s[window.UserLeap.envId];e?e[t]=r:e={[t]:r},s[window.UserLeap.envId]=e;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 se(){return window.previewMode?"0":window.UserLeap.visitorId??""}function I(t,r,n){const s=[window.UserLeap._API_URL,"sdk",t];return r&&r.forEach(e=>{s.push(e),e===x?s.push(window.UserLeap.envId):e===O&&s.push(se())}),n&&s.push(n),s.join("/")}const N=async(t,r)=>{var fe,me,ye;const{context:n,forceBrandedLogo:s,endCard:e,isFeedback:o=!1,heatmap:a,locale:l,previewMode:d,productConfig:p,questions:c,responseGroupUid:u,surveyId:w,uuid:m,vid:g,sessionReplay:y,studyType:A}=t,b=i.getHttpHeaders(window.UserLeap),S=de(b),L=ae(b);if(i.info(`Attempting to display survey: ${w}`),y)if(i.info("Survey has replay attached"),S)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:u,hasQuestions:!!(c!=null&&c.length),surveyId:w,uploadId:y.uploadId,replayType:y.replayDurationType??"before",seconds:y.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:u,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:u,surveyId:w,visitorId:g,replayParams:y,completeUploadHeaders:b,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:c.length===0})}if(a){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:h,replayParams:Y,responseGroupUid:je,surveyId:ze}=a;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:b,eventId:h,isHeatmap:!0,replayParams:Y,responseGroupId:je,surveyId:ze,triggerTimestamp:Date.now(),visitorId:g})}if(g==null||!(c!=null&&c.length))return i.info(`Not displaying survey: vid: ${g} / questions: ${c}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.info("Already displaying a survey");const h="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(h),{success:!1,message:h,surveyState:"no survey"}}if(g!==window.UserLeap.visitorId&&m!==window.UserLeap.visitorId&&!window.previewMode){const h="Attempted to display survey to a different visitor";return i.info(h),window.UserLeap.reportError("DisplaySurvey",new Error(h)),{success:!1,message:h,surveyState:"no survey"}}i.info(`Showing survey: ${w}`),(fe=i.modules.replay)==null||fe.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),Ie.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let D,k=document.createElement("div"),E,v,M;const ue=h=>{const{"view.version":Y}=h;Y!==b["x-ul-sdk-version"]&&Re(),i.eventEmitter.removeListener("verify.view.version",ue)};i.eventEmitter.on("verify.view.version",ue),window.UserLeap.useMobileStyling=L,i.shouldDirectEmbed(b)?(D="ul-direct-embeded-frame",E=document.head,v=window,M=!1,S&&(ke(o),k.id=D,window.UserLeap.container.appendChild(k),_e(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:D,contentWinDocHead:E,contentWindow:v,hasOverlay:M,iframe:k}=at({productConfig:p,useMobileStyling:L,surveyId:w,isFeedback:o}),window.UserLeap.frameId=D;const Be=h=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,h)},C={apiURL:window.UserLeap._API_URL,cards:c,configureExitOnOverlayClick:Be,context:n,endCard:e,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:s,frame:k,headers:b,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:d,productConfig:{framePosition:p==null?void 0:p.framePosition,desktopDisplay:p==null?void 0:p.desktopDisplay,placement:p==null?void 0:p.placement},responseGroupUid:u,startingQuestionIdx:(me=window.UserLeap.config)==null?void 0:me.startingQuestionIdx,studyType:A,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:r,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:L,userId:m,viewDocument:v==null?void 0:v.document,viewWindow:v,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(ye=window.UserLeap._config)!=null&&ye.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const Ne=(o?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??p.customStyles;C.customStyles=Ne,v&&(v.__cfg=C);function We(){const h=document.createElement("script");return window.UserLeap.nonce&&h.setAttribute("nonce",window.UserLeap.nonce),h.id=he,h}const J=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:C.path,we=document.getElementById(he);we&&we.remove();const Q=We(),ge=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(C.installationMethod==="web-npm"||C.installationMethod==="web-npm-bundled"){const{default:h}=await Promise.resolve().then(()=>require("./view-4ILgM5Tw.cjs"));h.configure(C),M&&window.UserLeap.container&&ge()}else J&&(Q.src=J,M&&Q.addEventListener("load",()=>{window.UserLeap.container&&ge()}),v==null||v.addEventListener("error",h=>{h.target instanceof HTMLScriptElement&&h.target.src===J&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));return E==null||E.appendChild(Q),{success:!0,surveyState:"ready",surveyId:w,responseGroupUid:u}};function ae(t){var n;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const r=((n=window.UserLeap.windowDimensions)==null?void 0:n.width)??document.body.clientWidth;return de(t)||r>10&&r<Ye}function de(t){return rt.includes(t["userleap-platform"])}const le="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 it="rgba(255,255,255, 0.95)",nt="rgba(0,0,0,0.9)",X="0px",ke=(t,r)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${t&&"ul-container-feedback"}`;const n=Oe();r&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},Re=(t,r)=>{var s;lt();const n=window.UserLeap.container;if(n)try{(s=n.parentNode)==null||s.removeChild(n),window.UserLeap.container=null,U("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:t,studyType:r})}catch(e){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${t} `+n),e instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",e)}},_e=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:t,studyType:r})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),Re(t,r)})},ot=(t,r)=>{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}},e=r?t.overlayStyleMobile:t.overlayStyle;s["background-color"]=e==="light"?it:nt,r||(s.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,s)},st=(t,r,n,s)=>{var c,u;const e={position:"fixed",bottom:"0px",right:X,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({},r,window.UserLeap),{desktopDisplay:a}=r||{},l=a==="center-modal";l&&(o.framePosition="center");let d,p=!1;if(n)(c=window.UserLeap.windowDimensions)!=null&&c.width?e.width=`${window.UserLeap.windowDimensions.width}px`:e.width="100%",(u=window.UserLeap.windowDimensions)!=null&&u.height?e.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?e.maxHeight=window.UserLeap.maxHeight:e.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(o.overlayStyleMobile)&&(p=!0);else{e.width=Ee,e.maxHeight=window.UserLeap.maxHeight||"66vh";const w=()=>{p=!0,d={margin:"auto",position:"static"}};if(s)l?w():d={position:"relative",height:"300px"};else switch(o.framePosition){case"bottomLeft":d={left:X};break;case"topLeft":d={left:X,top:0};break;case"topRight":d={top:0};break;case"center":w();break}}return p&&ot(o,n),Object.assign(t.style,e,d),p},at=({productConfig:t,useMobileStyling:r,surveyId:n,isFeedback:s})=>{var w,m;const e=le,o=s&&t.desktopDisplay==="slider";ke(s,o),dt();const a=document.createElement("iframe");a.id=e,a.setAttribute("title","Sprig User Feedback Dialog");const l=st(a,t,r,s);_e();let d=!1;a.setHeight=g=>{(parseInt(a.style.height)!=g||!d)&&(d=!0,a.style.height=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:g}))};let p=!1;a.setWidth=g=>{(parseInt(a.style.width)!=g||!p)&&(p=!0,a.style.width=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:g}))},(w=window.UserLeap.container)==null||w.appendChild(a),t&&(r?t.exitOnOverlayClickMobile:t.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=(m=a.contentWindow)==null?void 0:m.document;if(c&&(c.open("text/html","replace"),c.write("<!doctype html><head></head><body></body></html>"),c.close(),!r)){const g=c.body;g.style.display="flex",g.style.alignItems="center"}const u=c==null?void 0:c.head;return{frameId:e,contentWinDocHead:u,contentWindow:a.contentWindow,hasOverlay:l,iframe:a}},Ae={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},dt=()=>{Object.entries(Ae).forEach(([t,r])=>{i.eventEmitter.on(t,r)})},lt=()=>{Object.entries(Ae).forEach(([t,r])=>{i.eventEmitter.off(t,r)})},ct=1,Se=t=>t instanceof HTMLElement||t instanceof SVGElement,$=(t,r,n)=>{const s="ul-custom-style",e=t.getElementById(s);if(e){e.textContent=r;return}const o=t.createElement("style");n&&(o.nonce=n),o.textContent=r,o.id=s,t.head.appendChild(o)},De=t=>{const r=t.querySelector(".ul-card__container");let n=600,s=360;if(r){n=r.scrollHeight;const e=getComputedStyle(r),o=parseFloat(e.marginTop)+parseFloat(e.marginBottom),a=parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth),l=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom);n+=o+a+l;const d=r.querySelector(".ul-card--matrix_grid");s=d?d.scrollWidth:r.scrollWidth;const p=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),c=parseFloat(e.marginLeft)+parseFloat(e.marginRight),u=parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth);s+=c+u+p}return[n+ct,s]},pt=t=>{const r=t.querySelector(".ul-card__container");r&&(r.scrollTop=0)},Oe=()=>f,H=()=>document.getElementById("sprig-feedback-container"),ce=()=>document.getElementById("sprig-feedback-loading-animation"),ut=()=>{if(ce())return;const t=document.createElement("div");return t.className="ul-loading-spinner-container",t.id="sprig-feedback-loading-animation",t.role="progressbar",t.setAttribute("aria-live","polite"),t.setAttribute("aria-busy","true"),t.setAttribute("aria-label","Processing..."),t.innerHTML=`
1
+ "use strict";var $e=Object.defineProperty;var qe=(t,r,n)=>r in t?$e(t,r,{enumerable:!0,configurable:!0,writable:!0,value:n}):t[r]=n;var F=(t,r,n)=>(qe(t,typeof r!="symbol"?r+"":r,n),n);const i=require("./metricsReporter-dYIN7Y-U.cjs"),Ge='.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}',Ee="360px",Ke="ul-app",Je="#e6e6e6",Qe="#bd282a",Ye=500,Xe=1030,Ue=()=>{try{return window.parent.Intercom}catch{return null}},Ze=()=>{const t=Ue();t&&(t.ul_wasVisible&&t("update",{hide_default_launcher:!1}),delete t.ul_wasVisible)},et=()=>{const t=Ue();t&&(t.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),t.ul_wasVisible&&t("update",{hide_default_launcher:!0}))},tt=Object.freeze(Object.defineProperty({__proto__:null,disable:et,enable:Ze},Symbol.toStringTag,{value:"Module"})),ve=[tt];class Ie{static disable(){ve.forEach(r=>r.disable())}static enable(){ve.forEach(r=>r.enable())}}const he="ul-view-sdk-script",rt=["ios","android"],O="visitors",x="environments";async function R(t,r){var o,a,l;const{shouldDropOnRateLimit:n,...s}=r;s.headers=Object.assign(i.getHttpHeaders(window.UserLeap),s.headers);const e=await i.sprigFetch(t,{...s,shouldDropOnRateLimit:n});if(e.ok){const d=(o=e.headers)==null?void 0:o.get("Authorization"),p=d?d.split(" "):void 0,c=p&&p.length===2?p[1]:void 0,u=(a=e.headers)==null?void 0:a.get("x-ul-visitor-id");c&&u&&(u!==window.UserLeap.visitorId||window.UserLeap.token!==c)&&(U("token",c),U("vid",u),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:u}),window.UserLeap.token=c,window.UserLeap.visitorId=u)}return(l=e.json)!=null&&l.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function U(t,r){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 e=s[window.UserLeap.envId];e?e[t]=r:e={[t]:r},s[window.UserLeap.envId]=e;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 se(){return window.previewMode?"0":window.UserLeap.visitorId??""}function I(t,r,n){const s=[window.UserLeap._API_URL,"sdk",t];return r&&r.forEach(e=>{s.push(e),e===x?s.push(window.UserLeap.envId):e===O&&s.push(se())}),n&&s.push(n),s.join("/")}const N=async(t,r)=>{var fe,me,ye;const{context:n,forceBrandedLogo:s,endCard:e,isFeedback:o=!1,heatmap:a,locale:l,previewMode:d,productConfig:p,questions:c,responseGroupUid:u,surveyId:w,uuid:m,vid:g,sessionReplay:y,studyType:A}=t,b=i.getHttpHeaders(window.UserLeap),S=de(b),L=ae(b);if(i.info(`Attempting to display survey: ${w}`),y)if(i.info("Survey has replay attached"),S)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:u,hasQuestions:!!(c!=null&&c.length),surveyId:w,uploadId:y.uploadId,replayType:y.replayDurationType??"before",seconds:y.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:u,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:u,surveyId:w,visitorId:g,replayParams:y,completeUploadHeaders:b,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:c.length===0})}if(a){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:h,replayParams:Y,responseGroupUid:je,surveyId:ze}=a;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:b,eventId:h,isHeatmap:!0,replayParams:Y,responseGroupId:je,surveyId:ze,triggerTimestamp:Date.now(),visitorId:g})}if(g==null||!(c!=null&&c.length))return i.info(`Not displaying survey: vid: ${g} / questions: ${c}`),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.info("Already displaying a survey");const h="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(h),{success:!1,message:h,surveyState:"no survey"}}if(g!==window.UserLeap.visitorId&&m!==window.UserLeap.visitorId&&!window.previewMode){const h="Attempted to display survey to a different visitor";return i.info(h),window.UserLeap.reportError("DisplaySurvey",new Error(h)),{success:!1,message:h,surveyState:"no survey"}}i.info(`Showing survey: ${w}`),(fe=i.modules.replay)==null||fe.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),Ie.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let D,k=document.createElement("div"),E,v,M;const ue=h=>{const{"view.version":Y}=h;Y!==b["x-ul-sdk-version"]&&Re(),i.eventEmitter.removeListener("verify.view.version",ue)};i.eventEmitter.on("verify.view.version",ue),window.UserLeap.useMobileStyling=L,i.shouldDirectEmbed(b)?(D="ul-direct-embeded-frame",E=document.head,v=window,M=!1,S&&(ke(o),k.id=D,window.UserLeap.container.appendChild(k),_e(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:D,contentWinDocHead:E,contentWindow:v,hasOverlay:M,iframe:k}=at({productConfig:p,useMobileStyling:L,surveyId:w,isFeedback:o}),window.UserLeap.frameId=D;const Be=h=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,h)},C={apiURL:window.UserLeap._API_URL,cards:c,configureExitOnOverlayClick:Be,context:n,endCard:e,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:s,frame:k,headers:b,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:d,productConfig:{framePosition:p==null?void 0:p.framePosition,desktopDisplay:p==null?void 0:p.desktopDisplay,placement:p==null?void 0:p.placement},responseGroupUid:u,startingQuestionIdx:(me=window.UserLeap.config)==null?void 0:me.startingQuestionIdx,studyType:A,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:r,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:L,userId:m,viewDocument:v==null?void 0:v.document,viewWindow:v,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(ye=window.UserLeap._config)!=null&&ye.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const Ne=(o?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??p.customStyles;C.customStyles=Ne,v&&(v.__cfg=C);function We(){const h=document.createElement("script");return window.UserLeap.nonce&&h.setAttribute("nonce",window.UserLeap.nonce),h.id=he,h}const J=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:C.path,we=document.getElementById(he);we&&we.remove();const Q=We(),ge=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(C.installationMethod==="web-npm"||C.installationMethod==="web-npm-bundled"){const{default:h}=await Promise.resolve().then(()=>require("./view-Jfb4S82A.cjs"));h.configure(C),M&&window.UserLeap.container&&ge()}else J&&(Q.src=J,M&&Q.addEventListener("load",()=>{window.UserLeap.container&&ge()}),v==null||v.addEventListener("error",h=>{h.target instanceof HTMLScriptElement&&h.target.src===J&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));return E==null||E.appendChild(Q),{success:!0,surveyState:"ready",surveyId:w,responseGroupUid:u}};function ae(t){var n;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const r=((n=window.UserLeap.windowDimensions)==null?void 0:n.width)??document.body.clientWidth;return de(t)||r>10&&r<Ye}function de(t){return rt.includes(t["userleap-platform"])}const le="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 it="rgba(255,255,255, 0.95)",nt="rgba(0,0,0,0.9)",X="0px",ke=(t,r)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className=`ul-container ${t&&"ul-container-feedback"}`;const n=Oe();r&&n&&!window.UserLeap.useMobileStyling?n.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},Re=(t,r)=>{var s;lt();const n=window.UserLeap.container;if(n)try{(s=n.parentNode)==null||s.removeChild(n),window.UserLeap.container=null,U("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:t,studyType:r})}catch(e){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${t} `+n),e instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",e)}},_e=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:t,studyType:r})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),Re(t,r)})},ot=(t,r)=>{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}},e=r?t.overlayStyleMobile:t.overlayStyle;s["background-color"]=e==="light"?it:nt,r||(s.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,s)},st=(t,r,n,s)=>{var c,u;const e={position:"fixed",bottom:"0px",right:X,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({},r,window.UserLeap),{desktopDisplay:a}=r||{},l=a==="center-modal";l&&(o.framePosition="center");let d,p=!1;if(n)(c=window.UserLeap.windowDimensions)!=null&&c.width?e.width=`${window.UserLeap.windowDimensions.width}px`:e.width="100%",(u=window.UserLeap.windowDimensions)!=null&&u.height?e.maxHeight=`${window.UserLeap.windowDimensions.height-20}px`:window.UserLeap.maxHeight?e.maxHeight=window.UserLeap.maxHeight:e.maxHeight=`${document.body.clientHeight-20}px`,["light","dark"].includes(o.overlayStyleMobile)&&(p=!0);else{e.width=Ee,e.maxHeight=window.UserLeap.maxHeight||"66vh";const w=()=>{p=!0,d={margin:"auto",position:"static"}};if(s)l?w():d={position:"relative",height:"300px"};else switch(o.framePosition){case"bottomLeft":d={left:X};break;case"topLeft":d={left:X,top:0};break;case"topRight":d={top:0};break;case"center":w();break}}return p&&ot(o,n),Object.assign(t.style,e,d),p},at=({productConfig:t,useMobileStyling:r,surveyId:n,isFeedback:s})=>{var w,m;const e=le,o=s&&t.desktopDisplay==="slider";ke(s,o),dt();const a=document.createElement("iframe");a.id=e,a.setAttribute("title","Sprig User Feedback Dialog");const l=st(a,t,r,s);_e();let d=!1;a.setHeight=g=>{(parseInt(a.style.height)!=g||!d)&&(d=!0,a.style.height=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:g}))};let p=!1;a.setWidth=g=>{(parseInt(a.style.width)!=g||!p)&&(p=!0,a.style.width=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:g}))},(w=window.UserLeap.container)==null||w.appendChild(a),t&&(r?t.exitOnOverlayClickMobile:t.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=(m=a.contentWindow)==null?void 0:m.document;if(c&&(c.open("text/html","replace"),c.write("<!doctype html><head></head><body></body></html>"),c.close(),!r)){const g=c.body;g.style.display="flex",g.style.alignItems="center"}const u=c==null?void 0:c.head;return{frameId:e,contentWinDocHead:u,contentWindow:a.contentWindow,hasOverlay:l,iframe:a}},Ae={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},dt=()=>{Object.entries(Ae).forEach(([t,r])=>{i.eventEmitter.on(t,r)})},lt=()=>{Object.entries(Ae).forEach(([t,r])=>{i.eventEmitter.off(t,r)})},ct=1,Se=t=>t instanceof HTMLElement||t instanceof SVGElement,$=(t,r,n)=>{const s="ul-custom-style",e=t.getElementById(s);if(e){e.textContent=r;return}const o=t.createElement("style");n&&(o.nonce=n),o.textContent=r,o.id=s,t.head.appendChild(o)},De=t=>{const r=t.querySelector(".ul-card__container");let n=600,s=360;if(r){n=r.scrollHeight;const e=getComputedStyle(r),o=parseFloat(e.marginTop)+parseFloat(e.marginBottom),a=parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth),l=parseFloat(e.paddingTop)+parseFloat(e.paddingBottom);n+=o+a+l;const d=r.querySelector(".ul-card--matrix_grid");s=d?d.scrollWidth:r.scrollWidth;const p=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight),c=parseFloat(e.marginLeft)+parseFloat(e.marginRight),u=parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth);s+=c+u+p}return[n+ct,s]},pt=t=>{const r=t.querySelector(".ul-card__container");r&&(r.scrollTop=0)},Oe=()=>f,H=()=>document.getElementById("sprig-feedback-container"),ce=()=>document.getElementById("sprig-feedback-loading-animation"),ut=()=>{if(ce())return;const t=document.createElement("div");return t.className="ul-loading-spinner-container",t.id="sprig-feedback-loading-animation",t.role="progressbar",t.setAttribute("aria-live","polite"),t.setAttribute("aria-busy","true"),t.setAttribute("aria-label","Processing..."),t.innerHTML=`
2
2
  <div class="ul-loading-spinner">
3
3
  <div class="first"></div>
4
4
  <div class="second"></div>
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const r=require("./metricsReporter-BIT_adF4.cjs"),e=require("./core-BTd5RhnR.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-dYIN7Y-U.cjs"),e=require("./core-DL58LekA.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
@@ -2762,6 +2762,7 @@ type ArgumentType<T> = T extends (arg1: infer U, ...args: unknown[]) => unknown
2762
2762
  type PublicOf<T> = { [K in keyof T]: T[K] };
2763
2763
  type rrwebRecord = (typeof rrweb)["record"];
2764
2764
  type rrwebCustomEvent = (typeof rrweb)["record"]["addCustomEvent"];
2765
+ type rrwebFullSnapshot = (typeof rrweb)["record"]["takeFullSnapshot"];
2765
2766
  declare global {
2766
2767
  interface Window {
2767
2768
  __cfg: Config;
@@ -2786,6 +2787,9 @@ declare global {
2786
2787
  addCustomEvent: (
2787
2788
  ...args: ArgumentTypes<rrwebCustomEvent>
2788
2789
  ) => PublicOf<ReturnType<rrwebCustomEvent>>;
2790
+ takeFullSnapshot: (
2791
+ ...args: ArgumentTypes<rrwebFullSnapshot>
2792
+ ) => PublicOf<ReturnType<rrwebFullSnapshot>>;
2789
2793
  } & ((
2790
2794
  arg: Omit<ArgumentType<rrwebRecord>, "hooks">,
2791
2795
  ) => PublicOf<ReturnType<rrwebRecord>>);
package/dist/core.js CHANGED
@@ -1 +1 @@
1
- import{D as s,S as a}from"./metricsReporter-B6Yx0G8b.js";import{S as r,c as i,s as o}from"./core-BzwoEbTD.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-DNUikwDb.js";import{S as r,c as i,s as o}from"./core-ChUnpqXT.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-BTd5RhnR.cjs");require("./replay.cjs");const r=require("./metricsReporter-BIT_adF4.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-DL58LekA.cjs");require("./replay.cjs");const r=require("./metricsReporter-dYIN7Y-U.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
@@ -2762,6 +2762,7 @@ type ArgumentType<T> = T extends (arg1: infer U, ...args: unknown[]) => unknown
2762
2762
  type PublicOf<T> = { [K in keyof T]: T[K] };
2763
2763
  type rrwebRecord = (typeof rrweb)["record"];
2764
2764
  type rrwebCustomEvent = (typeof rrweb)["record"]["addCustomEvent"];
2765
+ type rrwebFullSnapshot = (typeof rrweb)["record"]["takeFullSnapshot"];
2765
2766
  declare global {
2766
2767
  interface Window {
2767
2768
  __cfg: Config;
@@ -2786,6 +2787,9 @@ declare global {
2786
2787
  addCustomEvent: (
2787
2788
  ...args: ArgumentTypes<rrwebCustomEvent>
2788
2789
  ) => PublicOf<ReturnType<rrwebCustomEvent>>;
2790
+ takeFullSnapshot: (
2791
+ ...args: ArgumentTypes<rrwebFullSnapshot>
2792
+ ) => PublicOf<ReturnType<rrwebFullSnapshot>>;
2789
2793
  } & ((
2790
2794
  arg: Omit<ArgumentType<rrwebRecord>, "hooks">,
2791
2795
  ) => PublicOf<ReturnType<rrwebRecord>>);
package/dist/index.js CHANGED
@@ -1 +1 @@
1
- import{S as s,c as a,s as i}from"./core-BzwoEbTD.js";import"./replay.js";import{D as r,S as o}from"./metricsReporter-B6Yx0G8b.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-ChUnpqXT.js";import"./replay.js";import{D as r,S as o}from"./metricsReporter-DNUikwDb.js";export{r as DismissReason,s as SprigAPI,o as SprigEvent,a as default,i as sprig};
@@ -1,2 +1,2 @@
1
- var K=Object.defineProperty,B=(e,t,s)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,a=(e,t,s)=>(B(e,typeof t!="symbol"?t+"":t,s),s),A=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(A||{}),D=(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))(D||{});const G={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 z=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(z)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function X(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 Z=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),U={randomUUID:Z};function ee(e,t,s){if(U.randomUUID&&!t&&!e)return U.randomUUID();e=e||{};const r=e.random||(e.rng||Q)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,X(r)}var te=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"}},k=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=k.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 te(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=k;C.defaultMaxListeners=10;const se=new C,w=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),re=({"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 ne=new x("sessionStorage"),ie=new x("localStorage");class oe{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},ae=e=>{I.replay=e},le=()=>{const e=[];return I.replay&&e.push("replay"),e.join(",")},ce={RATELIMIT_RESET_DEFAULT:10};let T=!1,P="",_=!1,M=!1,E=[];const ue=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=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`),document.removeEventListener("securitypolicyviolation",N))},V=(e="")=>{T=!0,P=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.2","x-ul-installation-method":ue(e),"sprig-modules":le()};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 W=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const s=new oe(t);return E.push(s),s.promise}},p=async(e,t)=>{const{retries:s=0,shouldDropOnRateLimit:r=!1,shouldRetryRequest:m=!1,...l}=t,c={url:e,options:l,retries:s,shouldDropOnRateLimit:r};if(_&&!m)return W(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(!_&&!r||m){_=!0;const i=o.headers.has("ratelimit-reset")?Number(o.headers.get("ratelimit-reset")):ce.RATELIMIT_RESET_DEFAULT;return await w(i*1e3),p(e,{...l,shouldDropOnRateLimit:r,shouldRetryRequest:!0})}else return W(c);if(_=!1,E.length&&(E.map(i=>{const y=i.payload;p(y.url,{...y.options,retries:y.retries,shouldDropOnRateLimit:y.shouldDropOnRateLimit}).then(J=>{i.resolveRequest(J)})}),E=[]),o.ok){if(o.status===249)return V(),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}),ve=(e,t)=>`${pe(t)}:${e}`,me=()=>{d=d.filter(e=>e.level<=f)},ye=()=>{d.length>b&&d.shift()},S=(e,t)=>{e>f||(d.push({level:e,line:ve(t,new Date)}),ye())},Y=e=>{S(u.Debug,e)},ge=e=>{S(u.Info,e)},j=e=>{S(u.Warn,e)},_e=e=>{S(u.Error,e)},Ee=()=>d.map(e=>e.line),fe=()=>new TextEncoder().encode(Ee().join(`
1
+ var K=Object.defineProperty,B=(e,t,s)=>t in e?K(e,t,{enumerable:!0,configurable:!0,writable:!0,value:s}):e[t]=s,a=(e,t,s)=>(B(e,typeof t!="symbol"?t+"":t,s),s),A=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(A||{}),D=(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))(D||{});const G={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 z=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(z)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function X(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 Z=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),U={randomUUID:Z};function ee(e,t,s){if(U.randomUUID&&!t&&!e)return U.randomUUID();e=e||{};const r=e.random||(e.rng||Q)();return r[6]=r[6]&15|64,r[8]=r[8]&63|128,X(r)}var te=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"}},k=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=k.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 te(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=k;C.defaultMaxListeners=10;const se=new C,w=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),re=({"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 ne=new x("sessionStorage"),ie=new x("localStorage");class oe{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},ae=e=>{I.replay=e},le=()=>{const e=[];return I.replay&&e.push("replay"),e.join(",")},ce={RATELIMIT_RESET_DEFAULT:10};let T=!1,P="",_=!1,M=!1,E=[];const ue=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=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`),document.removeEventListener("securitypolicyviolation",N))},V=(e="")=>{T=!0,P=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.3","x-ul-installation-method":ue(e),"sprig-modules":le()};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 W=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const s=new oe(t);return E.push(s),s.promise}},p=async(e,t)=>{const{retries:s=0,shouldDropOnRateLimit:r=!1,shouldRetryRequest:m=!1,...l}=t,c={url:e,options:l,retries:s,shouldDropOnRateLimit:r};if(_&&!m)return W(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(!_&&!r||m){_=!0;const i=o.headers.has("ratelimit-reset")?Number(o.headers.get("ratelimit-reset")):ce.RATELIMIT_RESET_DEFAULT;return await w(i*1e3),p(e,{...l,shouldDropOnRateLimit:r,shouldRetryRequest:!0})}else return W(c);if(_=!1,E.length&&(E.map(i=>{const y=i.payload;p(y.url,{...y.options,retries:y.retries,shouldDropOnRateLimit:y.shouldDropOnRateLimit}).then(J=>{i.resolveRequest(J)})}),E=[]),o.ok){if(o.status===249)return V(),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}),ve=(e,t)=>`${pe(t)}:${e}`,me=()=>{d=d.filter(e=>e.level<=f)},ye=()=>{d.length>b&&d.shift()},S=(e,t)=>{e>f||(d.push({level:e,line:ve(t,new Date)}),ye())},Y=e=>{S(u.Debug,e)},ge=e=>{S(u.Info,e)},j=e=>{S(u.Warn,e)},_e=e=>{S(u.Error,e)},Ee=()=>d.map(e=>e.line),fe=()=>new TextEncoder().encode(Ee().join(`
2
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),Y(`Initializing logger with limit of ${b} lines and ${he(f)} level`),me()},$=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 F(e,t){const{matchType:s,pattern:r}=e,m=s?$[s]:$.legacy;let l=!1;try{l=m(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?F(s,window.location.href):!1};let q=!0,R=!1;const Ie=()=>q=!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"];let v={},O;class Oe{constructor(t){a(this,"_values",[]),a(this,"_isWebMetric"),this.name=t,this._isWebMetric=Re.includes(this.name)}report(t){if(q&&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=v[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 Ae=(e,t)=>{v={},R=!1,e?.forEach(s=>{var r;s.metric in v||(v[s.metric]=[]),(r=v[s.metric])==null||r.push(s)}),O=t},L={},H=e=>{const t=new Oe(e);return L[e]=t,t},De=(e,t)=>{let s=L[e];return s||(s=H(e)),s.report(t)},Ue=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){j(`Error posting metrics: ${s}`)}},ke=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{Ue(t)},e*1e3):Ie()};export{A as D,G as E,L as P,D as S,ne as a,De as b,we as c,Y as d,_e as e,se as f,ae as g,de as h,ge as i,re as j,Ae as k,ie as l,I as m,ke as n,be as o,Le as p,N as q,H as r,p as s,V as t,Se as u,ee as v,j as w,F as x,w as y};
@@ -1,2 +1,2 @@
1
- "use strict";var J=Object.defineProperty;var K=(e,t,r)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t,r)=>(K(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 G={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 Q=new Uint8Array(16);function z(){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(Q)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function X(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 Z=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),A={randomUUID:Z};function ee(e,t,r){if(A.randomUUID&&!t&&!e)return A.randomUUID();e=e||{};const s=e.random||(e.rng||z)();return s[6]=s[6]&15|64,s[8]=s[8]&63|128,X(s)}var te=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 te(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 re=new D,R=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),se=({"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 ne=new M("sessionStorage"),ie=new M("localStorage");class oe{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 S={replay:null},ae=e=>{S.replay=e},le=()=>{const e=[];return S.replay&&e.push("replay"),e.join(",")},ce={RATELIMIT_RESET_DEFAULT:10};let P=!1,V="",_=!1,H=!1,L=[];const ue=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",W=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`),document.removeEventListener("securitypolicyviolation",W))},Y=(e="")=>{P=!0,V=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.2","x-ul-installation-method":ue(e),"sprig-modules":le()};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 oe(t);return L.push(r),r.promise}},m=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")):ce.RATELIMIT_RESET_DEFAULT;return await R(u*1e3),m(e,{...l,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}else return T(c);if(_=!1,L.length&&(L.map(o=>{const u=o.payload;m(u.url,{...u.options,retries:u.retries,shouldDropOnRateLimit:u.shouldDropOnRateLimit}).then(B=>{o.resolveRequest(B)})}),L=[]),i.ok){if(i.status===249)return Y(),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),m(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}),fe=(e,t)=>`${pe(t)}:${e}`,me=()=>{d=d.filter(e=>e.level<=v)},ye=()=>{d.length>b&&d.shift()},E=(e,t)=>{e>v||(d.push({level:e,line:fe(t,new Date)}),ye())},q=e=>{E(h.Debug,e)},ge=e=>{E(h.Info,e)},N=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 J=Object.defineProperty;var K=(e,t,r)=>t in e?J(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var a=(e,t,r)=>(K(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 G={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 Q=new Uint8Array(16);function z(){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(Q)}const n=[];for(let e=0;e<256;++e)n.push((e+256).toString(16).slice(1));function X(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 Z=typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto),A={randomUUID:Z};function ee(e,t,r){if(A.randomUUID&&!t&&!e)return A.randomUUID();e=e||{};const s=e.random||(e.rng||z)();return s[6]=s[6]&15|64,s[8]=s[8]&63|128,X(s)}var te=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 te(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 re=new D,R=e=>new Promise(t=>{setTimeout(()=>{t()},e)}),se=({"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 ne=new M("sessionStorage"),ie=new M("localStorage");class oe{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 S={replay:null},ae=e=>{S.replay=e},le=()=>{const e=[];return S.replay&&e.push("replay"),e.join(",")},ce={RATELIMIT_RESET_DEFAULT:10};let P=!1,V="",_=!1,H=!1,L=[];const ue=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",W=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`),document.removeEventListener("securitypolicyviolation",W))},Y=(e="")=>{P=!0,V=e};function de(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.30.3","x-ul-installation-method":ue(e),"sprig-modules":le()};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 oe(t);return L.push(r),r.promise}},m=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")):ce.RATELIMIT_RESET_DEFAULT;return await R(u*1e3),m(e,{...l,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}else return T(c);if(_=!1,L.length&&(L.map(o=>{const u=o.payload;m(u.url,{...u.options,retries:u.retries,shouldDropOnRateLimit:u.shouldDropOnRateLimit}).then(B=>{o.resolveRequest(B)})}),L=[]),i.ok){if(i.status===249)return Y(),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),m(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}),fe=(e,t)=>`${pe(t)}:${e}`,me=()=>{d=d.filter(e=>e.level<=v)},ye=()=>{d.length>b&&d.shift()},E=(e,t)=>{e>v||(d.push({level:e,line:fe(t,new Date)}),ye())},q=e=>{E(h.Debug,e)},ge=e=>{E(h.Info,e)},N=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 m(e,{body:t,method:"PUT"})},we=(e,t)=>{e!==void 0&&(b=e),t!==void 0&&(v=t),q(`Initializing logger with limit of ${b} lines and ${he(v)} level`),me()},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 j(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?j(r,window.location.href):!1};let F=!0,k=!1;const be=()=>F=!1,Ie=()=>k=!0,Se=["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"];let f={},I;class ke{constructor(t){a(this,"_values",[]);a(this,"_isWebMetric");this.name=t,this._isWebMetric=Se.includes(this.name)}report(t){if(F&&this._values.push({time:Date.now(),value:t}),k||!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=f[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)=>{f={},k=!1,e==null||e.forEach(r=>{var s;r.metric in f||(f[r.metric]=[]),(s=f[r.metric])==null||s.push(r)}),I=t},w={},$=e=>{const t=new ke(e);return w[e]=t,t},Te=(e,t)=>{let r=w[e];return r||(r=$(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){N(`Error posting metrics: ${r}`)}},Oe=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{Ce(t)},e*1e3):be()};exports.DismissReason=O;exports.EVENTS=G;exports.PerformanceMetrics=w;exports.SprigEvent=U;exports.checkUrlMatch=j;exports.checkUrlStillMatching=Re;exports.configureLogger=we;exports.cspViolationHandler=W;exports.debug=q;exports.delay=R;exports.disableThresholdChecking=Ie;exports.error=_e;exports.eventEmitter=re;exports.getHttpHeaders=de;exports.info=ge;exports.initPerformanceReporting=Oe;exports.killNetworkRequests=Y;exports.localStorageHelper=ie;exports.modules=S;exports.registerMetric=$;exports.registerReplay=ae;exports.registerThresholds=Ae;exports.reportAndRegister=Te;exports.sessionStorageHelper=ne;exports.shouldDirectEmbed=se;exports.sprigFetch=m;exports.uploadLogfile=Ee;exports.v4=ee;exports.warn=N;