@sprig-technologies/sprig-browser
Version:
npm package for the sprig web sdk
12 lines • 55.5 kB
JavaScript
"use strict";var Lt=Object.defineProperty;var Tt=(r,e,s)=>e in r?Lt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[e]=s;var q=(r,e,s)=>Tt(r,typeof e!="symbol"?e+"":e,s);const i=require("./metricsReporter-Bin621Yz.cjs"),We=()=>{try{return window.parent.Intercom}catch{return null}},ze=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const r=We();r&&(r.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),r.ul_wasVisible&&r("update",{hide_default_launcher:!0}))},enable:()=>{const r=We();r&&(r.ul_wasVisible&&r("update",{hide_default_launcher:!1}),delete r.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class et{static disable(){ze.forEach(e=>e.disable())}static enable(){ze.forEach(e=>e.enable())}}const Ne="ul-view-sdk-script",Ut=new Set(["ios","android"]),P="visitors",C="environments";async function D(r,e){var o,l,a;const{shouldDropOnRateLimit:s,...n}=e;n.headers=Object.assign(i.getHttpHeaders(window.UserLeap),n.headers);const t=await i.sprigFetch(r,{...n,shouldDropOnRateLimit:s});if(t.ok){const d=(o=t.headers)==null?void 0:o.get("Authorization"),c=d?d.split(" "):void 0,p=c&&c.length===2?c[1]:void 0,g=(l=t.headers)==null?void 0:l.get("x-ul-visitor-id");if(window.UserLeap.userId&&g===window.UserLeap.visitorId){const m=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map");m&&m[window.UserLeap.envId]===g&&(delete m[window.UserLeap.envId],i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",m))}p&&g&&(g!==window.UserLeap.visitorId||window.UserLeap.token!==p)&&(E("token",p),E("vid",g),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:g}),window.UserLeap.token=p,window.UserLeap.visitorId=g)}return(a=t.json)!=null&&a.logMessage&&console.warn(`[Sprig] ${t.json.logMessage}`),t}function E(r,e){const s=i.localStorageHelper.getItemObject("userleap.ids");let n=s[window.UserLeap.envId];n?n[r]=e:n={[r]:e},s[window.UserLeap.envId]=n,i.localStorageHelper.setItemObject("userleap.ids",s)}function _e(){return window.previewMode?"0":window.UserLeap.visitorId??""}function R(r,e,s){const n=[window.UserLeap._API_URL,"sdk",r];return e&&e.forEach(t=>{n.push(t),t===C?n.push(window.UserLeap.envId):t===P&&n.push(_e())}),s&&n.push(s),n.join("/")}const $=async(r,e,s)=>{var Me,qe,je,Fe;const{context:n,delay:t,avatars:o,experimentFlags:l,forceBrandedLogo:a,endCard:d,isFeedback:c=!1,heatmap:p,locale:g,layout:m,previewMode:b,productConfig:u,providerPersona:w,questions:h,responseGroupUid:y,surveyId:v,uuid:L,vid:U,sessionReplay:I,showProviderPersona:T,studyType:H,surveyVisitorAttributes:O}=r,_=i.getHttpHeaders(window.UserLeap),Z=Q(_),me=ge(_);if(I)if(Z)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:y,hasQuestions:!!(h!=null&&h.length),surveyId:v,uploadId:I.uploadId,replayType:I.replayDurationType??"before",seconds:I.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:y,surveyId:v,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:y,surveyId:v,visitorId:U,replayParams:I,completeUploadHeaders:_,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:h.length===0})}if(p){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:S,replayParams:M,responseGroupUid:be,surveyId:ve}=p;await i.modules.replay.initializeReplay({maxReplayDurationSeconds:300,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0,apiUrl:window.UserLeap._API_URL,replaySettings:s}),i.modules.replay.tryReplayAction(()=>{var Ve;return(Ve=i.modules.replay)==null?void 0:Ve.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:_,eventId:S,isHeatmap:!0,replayParams:M,responseGroupId:be,surveyId:ve,triggerTimestamp:Date.now(),visitorId:U})},"Error in scheduling/capturing replay")}if(U==null||!(h!=null&&h.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:U}),{success:!1,message:"[Sprig] no survey found",surveyState:window.UserLeap.container?"previous survey ready":"no survey"};if(window.UserLeap.container){i.breadcrumbsLogger.info("AlreadyDisplayingSurvey");const S="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(S),{success:!1,message:S,surveyState:"previous survey ready"}}if(U!==window.UserLeap.visitorId&&L!==window.UserLeap.visitorId&&!window.previewMode){const S="Attempted to display survey to a different visitor";return window.UserLeap.reportError("DisplaySurvey",new Error(S)),{success:!1,message:S,surveyState:"no survey"}}i.breadcrumbsLogger.info("ShowingSurvey",{surveyId:v}),(Me=i.modules.replay)==null||Me.RecordSurveyShown({id:v,userAgent:window.navigator.userAgent}),et.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":v,layout:m});let ee,z,k,te,re=document.createElement("div");const Oe=S=>{const{"view.version":M}=S;M!==_["x-ul-sdk-version"]&&rt(),i.eventEmitter.removeListener("verify.view.version",Oe)};i.eventEmitter.on("verify.view.version",Oe),window.UserLeap.useMobileStyling=me,i.shouldDirectEmbed(_)?(ee="ul-direct-embeded-frame",z=document.head,k=window,te=!1,(()=>{const S=i.getHttpHeaders(window.UserLeap),M=Q(S),be=window.UserLeap.forceDirectEmbed,ve=S["userleap-platform"]==="web";return M||be&&ve})()&&(tt(v,c),re.id=ee,window.UserLeap.container.appendChild(re),it(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":v}))):{frameId:ee,contentWinDocHead:z,contentWindow:k,hasOverlay:te,iframe:re}=kt({productConfig:u,useMobileStyling:me,surveyId:v,isFeedback:c,enableCspTrustedTypes:(qe=window.UserLeap._config)==null?void 0:qe.enableCspTrustedTypes}),window.UserLeap.frameId=ee;const V={apiURL:window.UserLeap._API_URL,avatars:o,cards:h,configureExitOnOverlayClick:S=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,S)},context:n,endCard:d,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),experimentFlags:l,fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:a,frame:re,headers:_,layout:m,locale:g,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.sessionStorageHelper.getItem("sprig.previewKey"),previewMode:b||!!window.previewMode,productConfig:{framePosition:u==null?void 0:u.framePosition,desktopDisplay:u==null?void 0:u.desktopDisplay,placement:u==null?void 0:u.placement},providerPersona:w,responseGroupUid:y,showProviderPersona:T,startingQuestionIdx:(je=window.UserLeap.config)==null?void 0:je.startingQuestionIdx,studyType:H,styleNonce:window.UserLeap.styleNonce,surveyId:v,tabTitle:document.title,trackPageViewUrl:e,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:me,userId:L,viewDocument:k==null?void 0:k.document,viewWindow:k,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},surveyVisitorAttributes:O||{},...window.UserLeap._config};(Fe=window.UserLeap._config)!=null&&Fe.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const St=(c?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??u.customStyles;V.customStyles=St,k&&(k.__cfg=V);const he=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:V.path,Pe=document.getElementById(Ne);Pe&&Pe.remove();const ye=function(){const S=document.createElement("script");return window.UserLeap.isMobileSDK||S.setAttribute("type","module"),window.UserLeap.nonce&&S.setAttribute("nonce",window.UserLeap.nonce),S.id=Ne,S}(),Ce=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(V.installationMethod==="web-npm"||V.installationMethod==="web-npm-bundled"){const{default:S}=await Promise.resolve().then(()=>require("./view-D5tiGfXK.cjs")).then(M=>M.view);S.configure(V),te&&window.UserLeap.container&&Ce()}else he&&(ye.src=`${he}${window.UserLeap.isMobileSDK?"":`?t=${Date.now()}`}`,te&&ye.addEventListener("load",()=>{window.UserLeap.container&&Ce()}),k==null||k.addEventListener("error",S=>{S.target instanceof HTMLScriptElement&&S.target.src===he&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));z==null||z.appendChild(ye);const He={success:!0,surveyState:"ready",surveyId:v,responseGroupUid:y};return window.UserLeap.isMobileSDK&&t&&(He.delay=t),He};function ge(r){var s;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const e=((s=window.UserLeap.windowDimensions)==null?void 0:s.width)??document.body.clientWidth;return Q(r)||e>10&&e<500}function Q(r){return Ut.has(r["userleap-platform"])}const Be=new WeakMap,Et=(r,e)=>{try{return(n=>{var l,a;const t=Be.get(n);if(t)return t;if(!((l=n.trustedTypes)!=null&&l.createPolicy))throw new Error("Trusted types not supported");const o=(a=n.trustedTypes)==null?void 0:a.createPolicy("sprig-sdk",{createHTML:d=>d,createScript:d=>d,createScriptURL:d=>d});return Be.set(n,o),o})(e).createHTML(r)}catch(s){return console.warn("Could not create TrustedHTML object",s),r}},ue=(r,e,s=window)=>{var n;return e&&((n=s.trustedTypes)!=null&&n.createPolicy)?Et(r,s):r},De="ul-frame";globalThis.UserLeap&&globalThis.Sprig&&(globalThis.Sprig._gtm?globalThis.Sprig=globalThis.UserLeap:globalThis.UserLeap=globalThis.Sprig),globalThis.UserLeap||(globalThis.UserLeap=globalThis.Sprig),globalThis.Sprig||(globalThis.Sprig=globalThis.UserLeap);const fe="0px",tt=(r,e,s)=>{globalThis.UserLeap.container=document.createElement("div"),globalThis.UserLeap.container.className="ul-container"+(e?" ul-container-feedback":""),r&&(globalThis.UserLeap.container.dataset.studyId=r.toString());const n=nt();s&&n&&!globalThis.UserLeap.useMobileStyling?n.appendChild(globalThis.UserLeap.container):document.body.appendChild(globalThis.UserLeap.container)},rt=(r,e)=>{var n;_t();const s=globalThis.UserLeap.container;if(s)try{(n=s.parentNode)==null||n.removeChild(s),globalThis.UserLeap.container=null,E("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:r,"survey.id":parseInt(s.dataset.studyId),...e&&{studyType:e}})}catch(t){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${r} `+s),t instanceof Error&&globalThis.UserLeap.reportError("dismissActiveSurvey",t)}},it=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:r,studyType:e})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),rt(r,e)})},It=(r,e,s,n)=>{var p,g;const t={position:"fixed",bottom:"0px",right:fe,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({},e,globalThis.UserLeap),{desktopDisplay:l}=e||{},a=l==="center-modal";let d;a&&(o.framePosition="center");let c=!1;if(s)(p=globalThis.UserLeap.windowDimensions)!=null&&p.width?t.width=`${globalThis.UserLeap.windowDimensions.width}px`:t.width="100%",(g=globalThis.UserLeap.windowDimensions)!=null&&g.height?t.maxHeight=globalThis.UserLeap.windowDimensions.height-20+"px":globalThis.UserLeap.maxHeight?t.maxHeight=globalThis.UserLeap.maxHeight:t.maxHeight=document.body.clientHeight-20+"px",["light","dark"].includes(o.overlayStyleMobile)&&(c=!0);else{t.width="360px",t.maxHeight=globalThis.UserLeap.maxHeight||"66vh";const m=()=>{c=!0,d={margin:"auto",position:"static"}};if(n)a?m():d={position:"relative",height:"300px"};else switch(o.framePosition){case"bottomLeft":d={left:fe};break;case"topLeft":d={left:fe,top:0};break;case"topRight":d={top:0};break;case"center":m()}}return c&&((m,b)=>{const u={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},w=b?m.overlayStyleMobile:m.overlayStyle;u["background-color"]=w==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",b||(u.margin="auto"),globalThis.UserLeap.container&&Object.assign(globalThis.UserLeap.container.style,u)})(o,s),Object.assign(r.style,t,d),c},kt=({productConfig:r,useMobileStyling:e,surveyId:s,isFeedback:n,enableCspTrustedTypes:t})=>{var b,u;const o=De,l=n&&r.desktopDisplay==="slider";tt(s,n,l),Rt();const a=document.createElement("iframe");a.id=o,a.setAttribute("title","Sprig User Feedback Dialog");const d=It(a,r,e,n);it();let c=!1;a.setHeight=w=>{parseInt(a.style.height)==w&&c||(c=!0,a.style.height=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:w,"survey.id":s}))};let p=!1;a.setWidth=w=>{parseInt(a.style.width)==w&&p||(p=!0,a.style.width=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:w,"survey.id":s}))},(b=globalThis.UserLeap.container)==null||b.appendChild(a),r&&(e?r.exitOnOverlayClickMobile:r.exitOnOverlayClick)&&globalThis.UserLeap.container&&(globalThis.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":s});const g=(u=a.contentWindow)==null?void 0:u.document;if(g&&(g.open("text/html","replace"),g.write(ue("<!doctype html><head></head><body></body></html>",t,a.contentWindow)),g.close(),!e)){const w=g.body;w.style.display="flex",w.style.alignItems="center"}const m=g==null?void 0:g.head;return{frameId:o,contentWinDocHead:m,contentWindow:a.contentWindow,hasOverlay:d,iframe:a}},st={[i.SprigEvent.SurveyFadingOut]:()=>{globalThis.UserLeap.container&&Object.assign(globalThis.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},Rt=()=>{Object.entries(st).forEach(([r,e])=>{i.eventEmitter.on(r,e)})},_t=()=>{Object.entries(st).forEach(([r,e])=>{i.eventEmitter.off(r,e)})},A=r=>!!r&&r.nodeType===Node.ELEMENT_NODE,$e=r=>r instanceof HTMLElement||r instanceof SVGElement,Y=({document:r,elementId:e,styleString:s,nonce:n})=>{const t=r.getElementById(e);if(t)return void(t.textContent=s);const o=r.createElement("style");n&&(o.nonce=n),o.textContent=s,o.id=e,r.head.appendChild(o)},Ge=(r,e)=>{const s=e.querySelector(r);if(!A(s))return 0;const n=getComputedStyle(s);return parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+(parseFloat(n.marginLeft)+parseFloat(n.marginRight))+(parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth))},ot=(r,e,s)=>{const n=r.querySelector(".ul-card__container"),t=r.querySelector(".ul-app");let o=600,l=360;if(A(n)&&A(t)){const a=n.querySelector(".ul-card--matrix_grid"),d=!a&&e&&s;try{d&&(t.style.width="360px"),o=n.scrollHeight,o+=(g=>{const m=g.querySelector(".sprig-question-body"),b=g.querySelector(".ul-card"),u=g.querySelector(".ul-card-main-content"),w=g.querySelector(".ul-footer"),h=g.querySelector(".sprig-container");let y=0;return A(b)&&(y+=b.scrollHeight-b.clientHeight),A(u)&&(y+=u.scrollHeight-u.clientHeight),A(m)&&(y+=m.scrollHeight-m.clientHeight),A(w)&&A(h)&&h.clientHeight===0&&(y+=w.clientHeight),y})(r);const c=getComputedStyle(n),p=parseFloat(c.marginTop)+parseFloat(c.marginBottom);o+=p+(parseFloat(c.borderTopWidth)+parseFloat(c.borderBottomWidth)),a&&(l=a.scrollWidth,l+=Ge(".ul-card__container",r),l+=Ge(".sprig-question-body",r))}finally{d&&t.style.removeProperty("width")}}return[o+2,l]},nt=()=>f,W=()=>document.getElementById("sprig-feedback-container"),Te=()=>document.getElementById("sprig-feedback-loading-animation"),at=()=>!!document.getElementById(De);let Ke=!1,f=null,x=null,xe=!1,G=null,j=null;const Dt=["bottom-left","bottom-right","center-left","center-right"],oe=()=>{var e;const r=window.UserLeap.container;return((e=r==null?void 0:r.parentElement)==null?void 0:e.id)==="sprig-feedback-loading-container"},lt=()=>document.getElementById("sprig-feedback-error-container"),dt=()=>{if(!f)return 0;const r=f==null?void 0:f.clientWidth,e=window.getComputedStyle(f);return r+parseInt(e.borderRightWidth||"0")+parseInt(e.borderLeftWidth||"0")},ne=r=>{const e=W();e&&(j!=null&&j.endsWith("right")?e.style.right=`${r}px`:j!=null&&j.endsWith("left")&&(e.style.left=`${r}px`))},we=()=>{if(f&&(oe()||lt())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,B),Ue();const r=dt();return ne(-r),!0}return!1},B=()=>{if(!f||!x)return;const r=Te();r&&r.remove(),f.style.height="auto",f.style.width="auto",x.disabled=!1,xe=!1},Ue=()=>{if(f&&!Te()){const r=(()=>{var s;if(Te())return;const e=document.createElement("div");return e.className="ul-loading-spinner-container",e.id="sprig-feedback-loading-animation",e.role="progressbar",e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true"),e.setAttribute("aria-label","Processing..."),e.innerHTML=ue(`
<div class="ul-loading-spinner">
<div class="first"></div>
<div class="second"></div>
<div class="third"></div>
<div class="fourth"></div>
</div>
`,(s=window.UserLeap._config)==null?void 0:s.enableCspTrustedTypes),e})();r&&(f.style.height="300px",f.style.width="360px",f.appendChild(r))}},Je=()=>{f&&x&&(ne(0),x.disabled=!0,xe=!0)},pt=async(r,e,s)=>{const{buttonTheme:n,customStyles:t,eventId:o,placement:l,desktopDisplay:a,feedbackLabel:d,surveyUuid:c,surveyId:p}=r;window.UserLeap.feedbackCustomStyles=void 0;let g=W();if(g){if(!e&&o===G)return;g.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,we)}G=o,Y({document,elementId:"sprig-feedback-style",styleString:'.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}',nonce:window.UserLeap.styleNonce}),Y({document,elementId:"ul-custom-style",styleString:t??"",nonce:window.UserLeap.styleNonce}),Ke=a==="center-modal",j=l;const[m,b]=l.split("-");(y=>{if(W()||!Dt.includes(y))return;const[v,L]=y.split("-"),U=document.createElement("div");U.id="sprig-feedback-container",U.classList.add(`sprig-feedback-container-${L}`,`sprig-feedback-container-${v}`),document.body.appendChild(U)})(l),g=W(),x=document.createElement("button");const u=document.createElement("div");u.className="sprig-feedback-button-label",u.innerText=d,x.appendChild(u),x.id="sprig-feedback-button",x.classList.add(`sprig-feedback-button-${b}`,`sprig-feedback-button-${m}`,`sprig-feedback-button-${n}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,we),x.addEventListener("click",async()=>{const y=document.getElementById("sprig-feedback-error-container");if(at()||lt()){if(we()){i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":p}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":p});const L=W();y&&L&&(L.remove(),G=null,f=null)}return}if(ge(i.getHttpHeaders(window.UserLeap))||xe||Je(),e)return f&&f.classList.add("sprig-feedback-loading-container-previews"),await $(e),void B();const v=await(async L=>{const U=await D(R("1",[P],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:L}),method:"POST"});return U.ok?U.json:null})(c);if(v)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,B),$({...v,studyType:"feedbackButton"},s);else if(f){const L=xt();f.appendChild(L),B(),f.style.height="300px",f.style.width="360px"}}),g==null||g.appendChild(x),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":p});const{useMobileStyling:w,_config:{border:h}}=window.UserLeap;if(Ke||w)ne(0);else{const y=document.createElement("div");y.id="sprig-feedback-loading-container",y.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${b}`,y.style.setProperty("--feedback-border",h),f=y,Ue(),g==null||g.appendChild(y);const v=dt();ne(-v)}window.UserLeap._config.isOnQuestionsTab&&e&&!oe()&&f&&(Je(),Ue(),f&&f.classList.add("sprig-feedback-loading-container-previews"),$(e),B())},xt=()=>{var s;const r=document.createElement("div");r.id="sprig-feedback-error-container",r.innerHTML=ue(`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
<circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
<path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
<circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
</svg>`,(s=window.UserLeap._config)==null?void 0:s.enableCspTrustedTypes);const e=document.createElement("h3");return e.className="sprig-feedback-error-text",e.innerText="There was an error while loading the survey",r.appendChild(e),r},Ee=new class{constructor(){q(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(r){try{return!(!r||typeof r!="object"||Array.isArray(r))&&(Object.keys(this._ldData).forEach(e=>{delete this._ldData[e]}),Object.keys(r).forEach(e=>this._ldData[`!launch_darkly_${e}`]=(r[e]??0)+1),!0)}catch(e){return e instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",e),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}};Object.freeze(Ee);const se=new class{constructor(){q(this,"_optimizelyData",{})}setOptimizelyExperiment(r,e=!0){if(!r||typeof r!="object")return!1;const{experiments:s}=r;try{return e&&Object.keys(this._optimizelyData).map(n=>{delete this._optimizelyData[n]}),s&&s.map(n=>{const{id:t,variation:o}=n,l=this.transformExperimentId(t);o&&typeof o=="string"&&(this._optimizelyData[l]=o)}),!0}catch(n){return n instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",n),!1}}getAllOptimizelyExperiments(){return this._optimizelyData}getOptimizelyVariationName(r){return this._optimizelyData[this.transformExperimentId(r)]}transformExperimentId(r){return"!optimizely_experiments_"+r}getAndSetWebOptimizelyExperiments(){var r;try{if(window&&window.optimizely&&typeof window.optimizely.get=="function"){const e=(r=window.optimizely.get("state"))==null?void 0:r.getExperimentStates({isActive:!0});if(e){const s=Object.keys(e).map(n=>{var t,o;return(t=e[n].variation)!=null&&t.name?{id:n,variation:(o=e[n].variation)==null?void 0:o.name}:{id:n,variation:"Original"}});return this.setOptimizelyExperiment({experiments:s},!1),!0}return!1}return!1}catch(e){return e instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",e),!1}}};Object.freeze(se);class At{constructor(e,s){q(this,"paused");q(this,"queue");q(this,"ul");this.ul=e,this.paused=!1,this.queue=[],this.flush(s)}flush(e){const s=e.length;if(s)for(let n=0;n<s;n++)this.push(e[n])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const e=this.queue.slice();this.empty(),this.flush(e)}push(e){if(this.paused)this.queue.push(e);else if(e instanceof Function)e();else{const s=Array.prototype.slice.call(e,1),n=e[0],t=this.ul[n];t instanceof Function?t.apply(this.ul,s):n&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",n)}}perform(e){if(this.paused){let s=()=>{};const n=new Promise(function(t){s=function(){t(e())}});return this.queue.push(s),n}return e()}empty(){this.queue.length=0}}let ct,gt;const Ie=r=>{let e=0,s=r.firstElementChild;for(;s;)e+=Ie(s),s.shadowRoot&&(e+=Ie(s.shadowRoot)),s=s.nextElementSibling,e++;return e},Qe=()=>{ct.report(Ie(document.body)),gt.report(document.documentElement.innerHTML.toString().length)},ke=(r,e)=>{const s=performance.now();document.hidden?setTimeout(()=>ke(r,e),r):setTimeout(()=>{const n=performance.now()-s;e.report(n/1e3),setTimeout(()=>ke(r,e),r)},0)};let ae,le,de,pe,Ye,F={};const ie=(r,e=1)=>{const{name:s}=r;F[s]=(F[s]||0)+e},ut=r=>{let e=1;return r.childNodes.forEach(s=>{e+=ut(s)}),e},Xe=r=>{let e=0;return r.forEach(s=>{e+=ut(s)}),e},Ot=r=>{switch(r.type){case"childList":return ie(ae,Xe(r.addedNodes)),void ie(le,Xe(r.removedNodes));case"attributes":return void ie(de);case"characterData":return void ie(pe)}},Pt=r=>r.forEach(Ot),Ct=()=>{ae.report(F[ae.name]||0),le.report(F[le.name]||0),de.report(F[de.name]||0),pe.report(F[pe.name]||0),F={}},Ht=(r=1e3)=>{ae=i.registerMetric("sdk_mutations_nodes_added"),le=i.registerMetric("sdk_mutations_nodes_removed"),de=i.registerMetric("sdk_mutations_attributes_changed"),pe=i.registerMetric("sdk_mutations_character_data"),Ye=new MutationObserver(Pt),Ye.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(Ct,r)},Mt=({isWeb:r,reportingIntervalSeconds:e,thresholds:s,postMetrics:n})=>{i.registerThresholds(s,(t,o)=>{var l,a;if((l=i.modules.replay)!=null&&l.isReplayRecording()){const d=`Value: ${t} on ${o.metric} violated threshold of ${o.type} ${o.value}`;(a=i.modules.replay)==null||a.disableRecording("Threshold violated",new Error(d),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:o.metric,type:o.type,value:o.value},{metricName:o.metric}),i.disableThresholdChecking()}}),i.initPerformanceReporting({reportingIntervalSeconds:e,postMetrics:n}),r&&(((t=1e3)=>{const o=i.registerMetric("sdk_event_queue_latency_seconds");ke(t,o)})(),((t=1e4)=>{ct=i.registerMetric("sdk_dom_nodes_count"),gt=i.registerMetric("sdk_page_html_characters"),Qe(),setInterval(Qe,t)})(),Ht())},qt="test",jt=["popState","pushState","replaceState"];let Ae,K;const ce={},N="!email",mt="pageUrl";var Ze;let Se=((Ze=globalThis.location)==null?void 0:Ze.href)||"";function J(r){var a,d;const{pageUrlEvents:e,interactiveEvents:s,dismissOnPageChange:n,platform:t}=globalThis.UserLeap._config;if(t&&t!=="web")return;Se!==globalThis.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:Se,to:globalThis.location.href}),Se=globalThis.location.href;const o=bt().trackStartUrl,l=o?String(o):null;e&&ft(globalThis.location.href),s&&(yt(),Ft()),nt()&&(()=>{if(oe())return;const c=W();c&&(i.checkUrlStillMatching(G)||(c.remove(),G=null,f=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((d=(a=i.modules.replay)==null?void 0:a.checkPendingHeatmapsUrl())==null||d.then(c=>{var p;c&&((p=i.modules.replay)==null||p.uploadReadyPendingCaptures(!0))})),!oe()&&n&&l&&l!==globalThis.location.href&&r&&jt.includes(r.type)&&globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const ht={capture:!0},Ft=()=>{const r=globalThis.UserLeap._config.interactiveEvents.filter(s=>i.checkUrlMatch(s,globalThis.location.href)).map(s=>{const{name:n,properties:t}=s,{selector:o,innerText:l}=t;return o?a=>{if($e(a.target))try{a.target.closest(o)&&globalThis.UserLeap("track",n)}catch{}return!1}:a=>($e(a.target)&&a.target.innerText===l&&globalThis.UserLeap("track",n),!1)}),e=s=>r.forEach(n=>n(s));globalThis.UserLeap._config.interactiveEventsHandler=e,globalThis.addEventListener("click",e,ht)},yt=()=>{globalThis.UserLeap._config.interactiveEventsHandler&&globalThis.removeEventListener("click",globalThis.UserLeap._config.interactiveEventsHandler,ht),delete globalThis.UserLeap._config.interactiveEventsHandler};function bt(){const r=i.localStorageHelper.getItemObject("userleap.ids");return(r==null?void 0:r[globalThis.UserLeap.envId])||{}}function vt(){if(globalThis.previewMode)return;const r=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map")||{},e=r[globalThis.UserLeap.envId];globalThis.UserLeap.visitorId=e||i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:globalThis.UserLeap.visitorId}),E("vid",globalThis.UserLeap.visitorId),e||(r[globalThis.UserLeap.envId]=globalThis.UserLeap.visitorId,i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",r)),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:globalThis.UserLeap.visitorId})}function ft(r,e,s,n){var t,o;try{if(r.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:r});const l=(t=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:t.getAttribute("content");(o=i.modules.replay)==null||o.RecordPageView({...l&&{description:l},url:r,referrer:document.referrer,pageTitle:document.title});const a=globalThis.UserLeap._config.pageUrlEvents;let d=!1;if(a&&a.length)for(let p=0;p<a.length&&(d=i.checkUrlMatch(a[p],r),!d);p++);if(!d)return;globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",r);const c={url:r};n&&(c.trackPageView=!0),globalThis.UserLeap._queue.push(["track",mt,e,c,s])}catch(l){l instanceof Error&&(l.stack=r,globalThis.UserLeap.reportError("trackPageView",l)),console.warn("[Sprig] (ERR-428) Failed to track page view",l)}}function Vt(){var e;const r=((e=globalThis.Backbone)==null?void 0:e.history)||globalThis.history;"pushState"in r&&(r.pushState=(s=>function(...n){const t=s.apply(this,n),o=new Event("pushState");return globalThis.dispatchEvent(o),J(o),t})(r.pushState)),"replaceState"in r&&(r.replaceState=(s=>function(...n){const t=s.apply(this,n),o=new Event("replaceState");return globalThis.dispatchEvent(o),J(o),t})(r.replaceState)),["hashchange","popstate"].forEach(s=>globalThis.addEventListener(s,J,!0))}async function Le(r,e){const s=_e();r&&!e&&(globalThis.UserLeap._config.mode=qt);const n=ge(i.getHttpHeaders(globalThis.UserLeap)),t=await D(function(o){const l=new URL(R("1",[C],"questions"));return Object.entries(o||{}).forEach(([a,d])=>{d&&l.searchParams.append(a,String(d))}),l.toString()}({desktopDisplay:globalThis.UserLeap._config.desktopDisplay,isMobile:n,previewLanguage:globalThis.UserLeap._config.previewLanguage,surveyid:r==null?void 0:r.surveyId,surveytemplateid:r==null?void 0:r.surveyTemplateId,vid:s}),{shouldDropOnRateLimit:!0});if(!t.ok)return t.reportError&&t.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",t.error),globalThis.UserLeap.reportError("getQuestions",t.error)),{success:!1,surveyState:"no survey"};if(t.json.delay&&await i.delay(t.json.delay),!t.json.isFeedback)return $(t.json,K,Ae);{const{feedbackLabel:o,productConfig:l,surveyUuid:a,feedbackCustomStyles:d}=t.json,{buttonTheme:c,placement:p,desktopDisplay:g}=l;pt({customStyles:d,buttonTheme:c,desktopDisplay:g,eventId:0,feedbackLabel:o,placement:p,surveyUuid:a,surveyId:r==null?void 0:r.surveyId},t.json)}}function Wt(r){if(!r)return;globalThis.UserLeap._config=r,r.mute&&globalThis.UserLeap._queue.pause();const{interactiveEvents:e,pageUrlEvents:s,dismissOnPageChange:n}=r;e&&function(t){let o=t.length;for(;o;){const l=Math.floor(Math.random()*o);o-=1;const a=t[o];t[o]=t[l],t[l]=a}}(e),(e||s||n)&&(Vt(),J())}const zt=function(r){if(!globalThis.UserLeap)return;const e=async(t={})=>{var y,v,L,U,I;const{userId:o,anonymousId:l,metadata:a={},properties:d,showSurveyCallback:c}=t;let{eventName:p}=t;if(globalThis.UserLeap.debugMode&&p!==mt&&console.info("[DEBUG] Sprig track",t),r.mode==="test")return;const g=i.sessionStorageHelper.getItem("sprig.previewKey")??void 0;if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId&&!o){const T="[Sprig] - Skipping tracking without userId";return console.warn(T),{success:!1,message:T,surveyState:"no survey"}}if(!p||p.trim().length===0){p=p?String(p):"";const T="[Sprig] - Invalid event name "+p;return console.warn(T),{success:!1,message:T,surveyState:"no survey"}}const m=K??globalThis.location.href;a.url||(a.url=m),E("trackStartUrl",m),(v=(y=globalThis.UserLeap)==null?void 0:y._config)!=null&&v.optimizelyEnabled&&(Q(i.getHttpHeaders(globalThis.UserLeap))||se.getAndSetWebOptimizelyExperiments(),a.optimizelyExperiments=Object.assign({},se.getAllOptimizelyExperiments())),(U=(L=globalThis.UserLeap)==null?void 0:L._config)!=null&&U.launchDarklyEnabled&&(a.launchDarklyFlags=Ee.getAllLaunchDarklyVariations()),o&&(globalThis.UserLeap.userId=o),l&&(globalThis.UserLeap.partnerAnonymousId=l),d&&(a.eventProperties=d),(I=i.modules.replay)==null||I.RecordEvent({name:p,url:a.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:p});const b=globalThis.UserLeap.delayingSurvey||at()?await D(R("1",[P],"events/batch"),{body:JSON.stringify({events:[{event:p,metadata:a}],previewKey:g}),method:"POST",shouldDropOnRateLimit:!0}):await D(R("1",[P],"events"),{body:JSON.stringify({event:p,metadata:a,previewKey:g}),method:"POST",shouldDropOnRateLimit:!0});if(!b.ok){const T="[Sprig] (ERR-421) Failed to track event";return b.reportError&&(console.warn(T,b.error),b.error&&globalThis.UserLeap.reportError("track",b.error)),{success:!1,message:T,error:b.error,surveyState:"no survey"}}o&&E("uid",o),l&&E("aid",l);const u=b.json;u.invalidPreviewKey&&i.sessionStorageHelper.removeItem("sprig.previewKey");const w=a.trackPageView?a.url:void 0;return u!=null&&u.feedbackButton&&pt(u.feedbackButton,void 0,w),await async function(T,H){var _,Z;let O=!0;return!(H&&((_=T==null?void 0:T.json)!=null&&_.surveyId)&&(globalThis.UserLeap.delayingSurvey=!0,O=await H(T.json.surveyId),globalThis.UserLeap.delayingSurvey=!1,!O))&&((Z=T==null?void 0:T.json)!=null&&Z.delay&&!globalThis.UserLeap.isMobileSDK&&(globalThis.UserLeap.delayingSurvey=!0,await i.delay(T.json.delay),globalThis.UserLeap.delayingSurvey=!1),O)}(b,c)?function(T){if(!globalThis.UserLeap._config.dismissOnPageChange)return!0;const H=new URL(T),O=new URL(K??globalThis.location.href);return H.hostname===O.hostname&&H.pathname===O.pathname}(m)?$(u,w,Ae):{success:!1,message:"Study should not be displayed after page navigation",surveyState:"no survey"}:{success:!1,message:"[Sprig] Callback returned false, aborting rendering of survey",surveyState:"no survey"}},s=(t,o)=>{var a;const l=(a=t==null?void 0:t.querySelector(`[id="${De}"]`))==null?void 0:a.contentDocument;l&&Y({document:l,elementId:"ul-custom-style",styleString:o})},n={displaySurvey:async t=>(console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),Le({surveyId:t},!0)),_previewSurvey(t){globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),Le({surveyTemplateId:t},!1)},_reviewSurvey(t){globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),Le({surveyId:t},!1)},previewSurvey(t){n._previewSurvey(t)},reviewSurvey(t){n._reviewSurvey(t)},mute(){globalThis.UserLeap._queue.pause()},unmute(){globalThis.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(t=i.DismissReason.API){globalThis.UserLeap.container&&(t===i.DismissReason.Closed&&globalThis.Sprig.trackHistory&&globalThis.Sprig.trackHistory({event:"closed"}),i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:t,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:t,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}))},async setAttribute(t,o){if(!t||!o&&o!==0&&o!==!1){const l="[Sprig] - Disregarding empty attribute / value provided";return console.warn(l),{success:!1,message:l}}return this.setAttributes({[t]:o})},async setAttributes(t){if(t==null||Object.keys(t).length===0){const o="[Sprig] - Disregarding empty attributes provided";return console.warn(o),{success:!1,message:o}}return this.identifyAndSetAttributes({attributes:t})},async identifyAndSetAttributes(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",t),r.mode==="test")return;if(t===null||typeof t!="object"||!(t.userId||t.anonymousId||t.attributes)){const p="[Sprig] - Disregarding empty payload provided";return console.warn(p),{success:!1,message:p}}const{userId:o,anonymousId:l,attributes:a}=t;if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId&&!o){const p="[Sprig] - Skipping tracking without userId";return console.warn(p),{success:!1,message:p}}if(a){a.email&&!a[N]&&(a[N]=a.email,delete a.email);const p=Object.keys(a);for(const g of p)a[g]===ce[g]&&delete a[g]}if(!(a&&Object.keys(a).length!==0||o&&globalThis.UserLeap.userId!==o||l&&globalThis.UserLeap.partnerAnonymousId!==l))return{success:!0};const d={};let c;return o&&(d.userId=globalThis.UserLeap.userId=o),l&&(d.partnerAnonymousId=globalThis.UserLeap.partnerAnonymousId=l),a&&Object.keys(a).length>0?(c=await D(R("1",[C,P],"attributes"),{body:JSON.stringify(a),method:"PUT"}),c.ok?Object.assign(ce,a):c.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",c.error),c.error&&globalThis.UserLeap.reportError("identifyAndSetAttributes",c.error))):c=await D(R("1",[C,P]),{body:JSON.stringify(d),method:"PUT"}),a&&a[N]&&(globalThis.UserLeap.email=a[N]),c.ok&&(o&&E("uid",o),l&&E("aid",l)),{success:!!c.ok}},async removeAttributes(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",t),r.mode==="test")return;if(t==null||t.length===0){const l="[Sprig] - Disregarding empty attributes provided";return console.warn(l),{success:!1,message:l}}if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId){const l="[Sprig] - Skipping tracking without userId";return console.warn(l),{success:!1,message:l}}const o=await D(R("1",[C,P],"attributes"),{body:JSON.stringify({delete:t}),method:"DELETE"});return!o.ok&&o.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",o.error),o.error&&globalThis.UserLeap.reportError("removeAttributes",o.error)),{success:!!o.ok}},async addSurveyListener(t){i.eventEmitter.on(i.SprigEvent.SurveyLifeCycle,t)},async removeSurveyListener(t){i.eventEmitter.removeListener(i.SprigEvent.SurveyLifeCycle,t)},async addListener(t,o){i.eventEmitter.on(t,o)},async removeListener(t,o){i.eventEmitter.removeListener(t,o)},async removeAllListeners(){i.eventEmitter.removeAllListeners()},setPreviewKey(t){t&&typeof t=="string"&&i.sessionStorageHelper.isStorageAvailable&&t&&i.sessionStorageHelper.setItem("sprig.previewKey",t)},async setUserId(t){var a;if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",t),t==null){const d=`[Sprig] - Invalid userId ${t}`;return console.warn(d),{success:!1,message:d}}if(r.mode==="test"||t===globalThis.UserLeap.userId)return;globalThis.UserLeap.userId=t;const o=globalThis.UserLeap.visitorId,l=await D(R("1",[C,P]),{body:JSON.stringify({userId:t}),method:"PUT"});l.ok?(o!==globalThis.UserLeap.visitorId&&((a=i.modules.replay)==null||a.clearUserReplayData()),E("uid",t)):l.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",l.error),l.error&&globalThis.UserLeap.reportError("setUserId",l.error))},async setPartnerAnonymousId(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",t),t==null){const o=`[Sprig] - Invalid partnerAnonymousId ${t}`;return console.warn(o),{success:!1,message:o}}return globalThis.UserLeap.partnerAnonymousId=t,E("aid",t),{success:!0}},track:async(t,o,l={},a=void 0)=>e({eventName:t,properties:o,metadata:l,showSurveyCallback:a}),identifyAndTrack:async t=>await e(t),trackPageView(t,o=void 0,l=void 0,a=!0){K=t,ft(t,o,l,a)},applyFeedbackStyles({button:t="",view:o=""}){globalThis.UserLeap.feedbackCustomStyles=o,document.getElementById("sprig-feedback-style")&&Y({document,elementId:"ul-custom-style",styleString:t,nonce:globalThis.UserLeap.styleNonce}),s(document.querySelector(".ul-container-feedback"),o)},applyStyles(t){globalThis.UserLeap.customStyles=t,s(globalThis.UserLeap.container,t)},setWindowDimensions(t,o){var m,b;const l=typeof t=="string"?parseInt(t,10):t,a=typeof o=="string"?parseInt(o,10):o;isNaN(l)||isNaN(a)||(globalThis.UserLeap.windowDimensions={width:l,height:a});const d=i.getHttpHeaders(globalThis.UserLeap),c=ge(d),p=d["userleap-platform"]==="web";if(!globalThis.UserLeap.frameId)return;const g=document.getElementById(globalThis.UserLeap.frameId);g&&(globalThis.UserLeap.useMobileStyling&&((m=globalThis.UserLeap.windowDimensions)!=null&&m.width&&(g.style.width=`${globalThis.UserLeap.windowDimensions.width}px`),(b=globalThis.UserLeap.windowDimensions)!=null&&b.height&&(g.style.maxHeight=globalThis.UserLeap.windowDimensions.height-20+"px"),g.contentDocument&&(g.style.height=String(ot(g.contentDocument,p&&!c,i.shouldDirectEmbed(d))[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:g.clientWidth,contentFrameHeight:g.clientHeight,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}))},logoutUser(){var t;globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),i.breadcrumbsLogger.info("LogOut",{vid:globalThis.UserLeap.visitorId,userId:globalThis.UserLeap.userId}),globalThis.UserLeap.visitorId=null,globalThis.UserLeap.userId=null,globalThis.UserLeap.partnerAnonymousId=null,globalThis.UserLeap.token=null,globalThis.UserLeap.email=null,i.localStorageHelper.removeItem("userleap.ids"),globalThis.UserLeap._queue.isPaused()&&globalThis.UserLeap._queue.empty(),vt(),(t=i.modules.replay)==null||t.clearUserReplayData(),globalThis.UserLeap._queue.unpause()},teardown(){["hashchange","popstate"].forEach(t=>globalThis.removeEventListener(t,J,!0)),globalThis.UserLeap._config.interactiveEvents&&yt(),globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete globalThis.UserLeap,delete globalThis.Sprig,delete globalThis._Sprig},integrateOptimizely(t,o=!0){var l,a;if((a=(l=globalThis.UserLeap)==null?void 0:l._config)!=null&&a.optimizelyEnabled)try{const d=typeof t=="string"?JSON.parse(t):t;se.setOptimizelyExperiment(d,o)}catch(d){console.warn("[Sprig] Error with integrating Optimizely data"),d instanceof Error&&globalThis.UserLeap.reportError("integrateOptimizely",d)}else console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.")},integrateOptimizelyClient(t){var o,l;if(!((l=(o=globalThis.UserLeap)==null?void 0:o._config)!=null&&l.optimizelyEnabled))return void console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");t.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",({experiment:a,variation:d})=>{const c={experiments:[{id:a.id,variation:d.key}]};globalThis.UserLeap("integrateOptimizely",c,!1)})},importLaunchDarklyData(t){var o,l;(l=(o=globalThis.UserLeap)==null?void 0:o._config)!=null&&l.launchDarklyEnabled?Ee.setLDFlagsVariations(t):console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.")},setVisitorAttribute:(t,o)=>(console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),n.setAttribute(t,o)),setEmail:async t=>n.setAttribute(N,t),setVisitorEmail:async t=>(console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),n.setEmail(t)),_generateVideoUploadUrl:async t=>async function(o){var a;if(!o)return;const l=`${globalThis.UserLeap._API_URL}/2/environments/integrations/upload`;try{const d=await fetch(l,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(d.ok){const c=await d.json();return(a=c==null?void 0:c.upload)==null?void 0:a.url}return null}catch(d){console.warn("[Sprig] Error with generating video upload url"),d instanceof Error&&globalThis.UserLeap.reportError("generateVideoUploadUrl",d)}}(t),_reportMetric(t,o){i.reportAndRegister(t,o)},_completeSessionReplay:async({surveyId:t,responseGroupUuid:o,eventDigest:l})=>{var a;return i.modules.replay?(a=i.modules.replay)==null?void 0:a._completeSessionReplay({surveyId:t,responseGroupUuid:o,eventDigest:l,headers:i.getHttpHeaders(globalThis.UserLeap)}):(globalThis.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)},pauseReplayRecording(){var t,o,l,a;(o=(t=i.modules.replay)==null?void 0:t.isReplayPaused)!=null&&o.call(t)||((a=(l=i.modules.replay)==null?void 0:l.recordReplayPaused)==null||a.call(l))},resumeReplayRecording(){var t,o,l,a,d,c;(o=(t=i.modules.replay)==null?void 0:t.isReplayPaused)!=null&&o.call(t)&&((a=(l=i.modules.replay)==null?void 0:l.recordReplayResumed)==null||a.call(l),(c=(d=i.modules.replay)==null?void 0:d.recordFullSnapshot)==null||c.call(d))}};Object.assign(globalThis.UserLeap,n)};async function Nt(r,e,s={},n={}){var p;const t=(p=globalThis.__cfg)==null?void 0:p.mode,o=_e(),l=globalThis.UserLeap.envId,a=globalThis.document.documentElement,d={mode:t,screenWidth:globalThis.screen.width,screenHeight:globalThis.screen.height,clientWidth:a.clientWidth,clientHeight:a.clientHeight,location:K??globalThis.location.href,language:globalThis.navigator.language,...s},c={action:r,breadcrumbs:i.breadcrumbsLogger.breadcrumbs,err:{message:`${e==null?void 0:e.name} - ${e==null?void 0:e.message}`,stack:e==null?void 0:e.stack},meta:d,vid:o,envId:l,...n};(await D(R("1",null,"errors"),{method:"POST",headers:{"x-ul-error":globalThis.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(c),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",e)}function Bt(r={}){var n;(n=globalThis.SprigLoggerCallback)==null||n.call(globalThis,"Initializing Sprig");const e=new URLSearchParams(globalThis.location.search).get("sprigPreviewKey")??"";async function s(){var g,m,b,u,w;if(globalThis.UserLeap.loaded)return;if((g=globalThis.SprigLoggerCallback)==null||g.call(globalThis,"Loading Sprig"),globalThis.UserLeap.reportError=Nt,globalThis.UserLeap.loaded=!0,globalThis.UserLeap._config=Object.assign({},r,globalThis.UserLeap.config),globalThis.UserLeap.delayingSurvey=!1,globalThis.UserLeap._config&&typeof globalThis.UserLeap._config=="object")for(const h in globalThis.UserLeap._config)globalThis.UserLeap[h]=globalThis.UserLeap._config[h];if(globalThis.Sprig.outstandingTransactionLimit!==void 0&&(r.outstandingTransactionLimit=globalThis.Sprig.outstandingTransactionLimit),!globalThis.UserLeap.envId){if(!globalThis.UserLeap.appId)throw new Error("Missing Environment id");globalThis.UserLeap.envId=globalThis.UserLeap.appId}globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const t=bt(),o=globalThis.UserLeap.sampleRate;let l=t.sampled;if(o){if(l===null&&(l=Math.random()<o,E("sampled",l)),!l)return}else l!==null&&E("sampled",null);globalThis.UserLeap._API_URL||(globalThis.UserLeap._API_URL="https://api.sprig.com");const a=[...globalThis.UserLeap._queue];globalThis.UserLeap._queue=new At(globalThis.UserLeap,[]),globalThis.UserLeap._queue.pause();for(let h=0;h<a.length;h++)globalThis.UserLeap._queue.push(a[h]);const d=t.token;d?(globalThis.UserLeap.token=d,globalThis.UserLeap.visitorId=t.vid??null,globalThis.UserLeap.userId=t.uid??null,globalThis.UserLeap.partnerAnonymousId=t.aid??null):vt();const c=Q(i.getHttpHeaders(globalThis.UserLeap));(m=globalThis.SprigLoggerCallback)==null||m.call(globalThis,"Sprig fetching config");const p=await async function(h){var U,I;const y=i.getHttpHeaders(globalThis.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const v=await i.sprigFetch(R("1",[C],"config"),{headers:y});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!v.ok)return(U=globalThis.SprigLoggerCallback)==null||U.call(globalThis,"Sprig config fetch failed"),v.reportError&&(console.warn("[Sprig] (E