@sprig-technologies/sprig-browser 2.34.0 → 2.34.2

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,12 +1,12 @@
1
- "use strict";var ct=Object.defineProperty;var ut=(r,t,o)=>t in r?ct(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o;var M=(r,t,o)=>ut(r,typeof t!="symbol"?t+"":t,o);const i=require("./metricsReporter-Cc-ZSIZD.cjs"),Ce=()=>{try{return window.parent.Intercom}catch{return null}},He=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const r=Ce();r&&(r.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),r.ul_wasVisible&&r("update",{hide_default_launcher:!0}))},enable:()=>{const r=Ce();r&&(r.ul_wasVisible&&r("update",{hide_default_launcher:!1}),delete r.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class We{static disable(){He.forEach(t=>t.disable())}static enable(){He.forEach(t=>t.enable())}}const Te="ul-view-sdk-script",wt=["ios","android"],P="visitors",C="environments";async function x(r,t){var n,s,d;const{shouldDropOnRateLimit:o,...a}=t;a.headers=Object.assign(i.getHttpHeaders(window.UserLeap),a.headers);const e=await i.sprigFetch(r,{...a,shouldDropOnRateLimit:o});if(e.ok){const p=(n=e.headers)==null?void 0:n.get("Authorization"),u=p?p.split(" "):void 0,l=u&&u.length===2?u[1]:void 0,c=(s=e.headers)==null?void 0:s.get("x-ul-visitor-id");if(window.UserLeap.userId&&c===window.UserLeap.visitorId){const g=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map");g&&g[window.UserLeap.envId]===c&&(delete g[window.UserLeap.envId],i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",g))}l&&c&&(c!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(k("token",l),k("vid",c),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:c}),window.UserLeap.token=l,window.UserLeap.visitorId=c)}return(d=e.json)!=null&&d.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function k(r,t){const o=i.localStorageHelper.getItemObject("userleap.ids");let a=o[window.UserLeap.envId];a?a[r]=t:a={[r]:t},o[window.UserLeap.envId]=a,i.localStorageHelper.setItemObject("userleap.ids",o)}function Le(){return window.previewMode?"0":window.UserLeap.visitorId??""}function _(r,t,o){const a=[window.UserLeap._API_URL,"sdk",r];return t&&t.forEach(e=>{a.push(e),e===C?a.push(window.UserLeap.envId):e===P&&a.push(Le())}),o&&a.push(o),a.join("/")}const z=async(r,t,o)=>{var xe,Ae,Oe;const{context:a,delay:e,forceBrandedLogo:n,endCard:s,isFeedback:d=!1,heatmap:p,locale:u,previewMode:l,productConfig:c,questions:g,responseGroupUid:y,surveyId:w,uuid:E,vid:I,sessionReplay:m,studyType:b}=r,h=i.getHttpHeaders(window.UserLeap),L=J(h),O=ae(h);if(m)if(L)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:y,hasQuestions:!!(g!=null&&g.length),surveyId:w,uploadId:m.uploadId,replayType:m.replayDurationType??"before",seconds:m.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:y,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:y,surveyId:w,visitorId:I,replayParams:m,completeUploadHeaders:h,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:g.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:N,responseGroupUid:pe,surveyId:ce}=p;await i.modules.replay.initializeReplay({maxReplayDurationSeconds:300,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0,apiUrl:window.UserLeap._API_URL,replaySettings:o}),i.modules.replay.tryReplayAction(()=>{var Pe;return(Pe=i.modules.replay)==null?void 0:Pe.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:h,eventId:S,isHeatmap:!0,replayParams:N,responseGroupId:pe,surveyId:ce,triggerTimestamp:Date.now(),visitorId:I})},"Error in scheduling/capturing replay")}if(I==null||!(g!=null&&g.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:I}),{success:!1,message:"[Sprig] no survey found",surveyState:"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:"no survey"}}if(I!==window.UserLeap.visitorId&&E!==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:w}),(xe=i.modules.replay)==null||xe.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),We.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let v,R,U,H,T=document.createElement("div");const ke=S=>{const{"view.version":N}=S;N!==h["x-ul-sdk-version"]&&$e(),i.eventEmitter.removeListener("verify.view.version",ke)};i.eventEmitter.on("verify.view.version",ke),window.UserLeap.useMobileStyling=O,i.shouldDirectEmbed(h)?(v="ul-direct-embeded-frame",R=document.head,U=window,H=!1,(()=>{const S=i.getHttpHeaders(window.UserLeap),N=J(S),pe=window.UserLeap.forceDirectEmbed,ce=S["userleap-platform"]==="web";return N||pe&&ce})()&&(ze(w,d),T.id=v,window.UserLeap.container.appendChild(T),Ge(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:v,contentWinDocHead:R,contentWindow:U,hasOverlay:H,iframe:T}=mt({productConfig:c,useMobileStyling:O,surveyId:w,isFeedback:d}),window.UserLeap.frameId=v;const F={apiURL:window.UserLeap._API_URL,cards:g,configureExitOnOverlayClick:S=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,S)},context:a,endCard:s,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:n,frame:T,headers:h,locale:u,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:l,productConfig:{framePosition:c==null?void 0:c.framePosition,desktopDisplay:c==null?void 0:c.desktopDisplay,placement:c==null?void 0:c.placement},responseGroupUid:y,startingQuestionIdx:(Ae=window.UserLeap.config)==null?void 0:Ae.startingQuestionIdx,studyType:b,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:t,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:O,userId:E,viewDocument:U==null?void 0:U.document,viewWindow:U,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(Oe=window.UserLeap._config)!=null&&Oe.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const pt=(d?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??c.customStyles;F.customStyles=pt,U&&(U.__cfg=F);const de=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:F.path,Re=document.getElementById(Te);Re&&Re.remove();const le=function(){const S=document.createElement("script");return window.UserLeap.nonce&&S.setAttribute("nonce",window.UserLeap.nonce),S.id=Te,S}(),_e=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(F.installationMethod==="web-npm"||F.installationMethod==="web-npm-bundled"){const{default:S}=await Promise.resolve().then(()=>require("./view-Bze4Vd-1.cjs"));S.configure(F),H&&window.UserLeap.container&&_e()}else de&&(le.src=de,H&&le.addEventListener("load",()=>{window.UserLeap.container&&_e()}),U==null||U.addEventListener("error",S=>{S.target instanceof HTMLScriptElement&&S.target.src===de&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));R==null||R.appendChild(le);const De={success:!0,surveyState:"ready",surveyId:w,responseGroupUid:y};return window.UserLeap.isMobileSDK&&e&&(De.delay=e),De};function ae(r){var o;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const t=((o=window.UserLeap.windowDimensions)==null?void 0:o.width)??document.body.clientWidth;return J(r)||t>10&&t<500}function J(r){return wt.includes(r["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 ue="0px",ze=(r,t,o)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className="ul-container"+(t?" ul-container-feedback":""),r&&(window.UserLeap.container.dataset.studyId=r.toString());const a=Qe();o&&a&&!window.UserLeap.useMobileStyling?a.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},$e=(r,t)=>{var a;vt();const o=window.UserLeap.container;if(o)try{(a=o.parentNode)==null||a.removeChild(o),window.UserLeap.container=null,k("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(o.dataset.studyId),...t&&{studyType:t}})}catch(e){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${r} `+o),e instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",e)}},Ge=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:r,studyType:t})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),$e(r,t)})},gt=(r,t,o,a)=>{var l,c;const e={position:"fixed",bottom:"0px",right:ue,border:0,backgroundColor:"rgba(0,0,0,0)",zIndex:2147483646,transition:"height 0.2s ease-in-out",maxWidth:"100%"},n=Object.assign({},t,window.UserLeap),{desktopDisplay:s}=t||{},d=s==="center-modal";let p;d&&(n.framePosition="center");let u=!1;if(o)(l=window.UserLeap.windowDimensions)!=null&&l.width?e.width=`${window.UserLeap.windowDimensions.width}px`:e.width="100%",(c=window.UserLeap.windowDimensions)!=null&&c.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(n.overlayStyleMobile)&&(u=!0);else{e.width="360px",e.maxHeight=window.UserLeap.maxHeight||"66vh";const g=()=>{u=!0,p={margin:"auto",position:"static"}};if(a)d?g():p={position:"relative",height:"300px"};else switch(n.framePosition){case"bottomLeft":p={left:ue};break;case"topLeft":p={left:ue,top:0};break;case"topRight":p={top:0};break;case"center":g()}}return u&&((g,y)=>{const w={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},E=y?g.overlayStyleMobile:g.overlayStyle;w["background-color"]=E==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",y||(w.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,w)})(n,o),Object.assign(r.style,e,p),u},mt=({productConfig:r,useMobileStyling:t,surveyId:o,isFeedback:a})=>{var g,y;const e=Ue,n=a&&r.desktopDisplay==="slider";ze(o,a,n),yt();const s=document.createElement("iframe");s.id=e,s.setAttribute("title","Sprig User Feedback Dialog");const d=gt(s,r,t,a);Ge();let p=!1;s.setHeight=w=>{parseInt(s.style.height)==w&&p||(p=!0,s.style.height=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:w,"survey.id":o}))};let u=!1;s.setWidth=w=>{parseInt(s.style.width)==w&&u||(u=!0,s.style.width=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:w,"survey.id":o}))},(g=window.UserLeap.container)==null||g.appendChild(s),r&&(t?r.exitOnOverlayClickMobile:r.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":o});const l=(y=s.contentWindow)==null?void 0:y.document;if(l&&(l.open("text/html","replace"),l.write("<!doctype html><head></head><body></body></html>"),l.close(),!t)){const w=l.body;w.style.display="flex",w.style.alignItems="center"}const c=l==null?void 0:l.head;return{frameId:e,contentWinDocHead:c,contentWindow:s.contentWindow,hasOverlay:d,iframe:s}},Ke={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},yt=()=>{Object.entries(Ke).forEach(([r,t])=>{i.eventEmitter.on(r,t)})},vt=()=>{Object.entries(Ke).forEach(([r,t])=>{i.eventEmitter.off(r,t)})},D=r=>!!r&&r.nodeType===Node.ELEMENT_NODE,Me=r=>r instanceof HTMLElement||r instanceof SVGElement,Q=({document:r,elementId:t,styleString:o,nonce:a})=>{const e=r.getElementById(t);if(e)return void(e.textContent=o);const n=r.createElement("style");a&&(n.nonce=a),n.textContent=o,n.id=t,r.head.appendChild(n)},ft=(r,t)=>{const o=t.querySelector(".sprig-question-body");if(!D(o))return r;const a=o.scrollHeight;return a<100?r:r-(a-100)},qe=(r,t)=>{const o=t.querySelector(r);if(!D(o))return 0;const a=getComputedStyle(o);return parseFloat(a.paddingLeft)+parseFloat(a.paddingRight)+(parseFloat(a.marginLeft)+parseFloat(a.marginRight))+(parseFloat(a.borderLeftWidth)+parseFloat(a.borderRightWidth))},Je=(r,t,o)=>{const a=r.querySelector(".ul-card__container"),e=r.querySelector(".ul-app");let n=600,s=360,d=0;if(D(a)&&D(e)){const p=a.querySelector(".ul-card--matrix_grid"),u=!p&&t&&o;try{u&&(e.style.width="360px"),n=a.clientHeight,n+=(g=>{const y=g.querySelector(".sprig-question-body"),w=g.querySelector(".ul-card"),E=g.querySelector(".ul-card-main-content"),I=g.querySelector(".ul-footer"),m=g.querySelector(".sprig-container");let b=0;return D(w)&&(b+=w.scrollHeight-w.clientHeight),D(E)&&(b+=E.scrollHeight-E.clientHeight),D(y)&&(b+=y.scrollHeight-y.clientHeight),D(I)&&D(m)&&m.clientHeight===0&&(b+=I.clientHeight),b})(r);const l=getComputedStyle(a);d=n;const c=parseFloat(l.marginTop)+parseFloat(l.marginBottom);n+=c+(parseFloat(l.borderTopWidth)+parseFloat(l.borderBottomWidth)),p&&(s=p.scrollWidth,s+=qe(".ul-card__container",r),s+=qe(".sprig-question-body",r))}finally{u&&e.style.removeProperty("width")}}return[n+1,s,ft(d,r)]},Qe=()=>f,V=()=>document.getElementById("sprig-feedback-container"),ye=()=>document.getElementById("sprig-feedback-loading-animation"),Ye=()=>!!document.getElementById(Ue);let je=!1,f=null,A=null,Ee=!1,$=null,q=null;const ht=["bottom-left","bottom-right","center-left","center-right"],Z=()=>{var t;const r=window.UserLeap.container;return((t=r==null?void 0:r.parentElement)==null?void 0:t.id)==="sprig-feedback-loading-container"},Xe=()=>document.getElementById("sprig-feedback-error-container"),Ze=()=>{if(!f)return 0;const r=f==null?void 0:f.clientWidth,t=window.getComputedStyle(f);return r+parseInt(t.borderRightWidth||"0")+parseInt(t.borderLeftWidth||"0")},ee=r=>{const t=V();t&&(q!=null&&q.endsWith("right")?t.style.right=`${r}px`:q!=null&&q.endsWith("left")&&(t.style.left=`${r}px`))},we=()=>{if(f&&(Z()||Xe())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,W),ve();const r=Ze();return ee(-r),!0}return!1},W=()=>{if(!f||!A)return;const r=ye();r&&r.remove(),f.style.height="auto",f.style.width="auto",A.disabled=!1,Ee=!1},ve=()=>{if(f&&!ye()){const r=(()=>{if(ye())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 ct=Object.defineProperty;var ut=(r,t,o)=>t in r?ct(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o;var M=(r,t,o)=>ut(r,typeof t!="symbol"?t+"":t,o);const i=require("./metricsReporter-Dy3EDEs8.cjs"),Ce=()=>{try{return window.parent.Intercom}catch{return null}},He=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const r=Ce();r&&(r.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),r.ul_wasVisible&&r("update",{hide_default_launcher:!0}))},enable:()=>{const r=Ce();r&&(r.ul_wasVisible&&r("update",{hide_default_launcher:!1}),delete r.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class We{static disable(){He.forEach(t=>t.disable())}static enable(){He.forEach(t=>t.enable())}}const Te="ul-view-sdk-script",wt=["ios","android"],P="visitors",C="environments";async function x(r,t){var n,s,d;const{shouldDropOnRateLimit:o,...a}=t;a.headers=Object.assign(i.getHttpHeaders(window.UserLeap),a.headers);const e=await i.sprigFetch(r,{...a,shouldDropOnRateLimit:o});if(e.ok){const p=(n=e.headers)==null?void 0:n.get("Authorization"),u=p?p.split(" "):void 0,l=u&&u.length===2?u[1]:void 0,c=(s=e.headers)==null?void 0:s.get("x-ul-visitor-id");if(window.UserLeap.userId&&c===window.UserLeap.visitorId){const g=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map");g&&g[window.UserLeap.envId]===c&&(delete g[window.UserLeap.envId],i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",g))}l&&c&&(c!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(k("token",l),k("vid",c),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:c}),window.UserLeap.token=l,window.UserLeap.visitorId=c)}return(d=e.json)!=null&&d.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function k(r,t){const o=i.localStorageHelper.getItemObject("userleap.ids");let a=o[window.UserLeap.envId];a?a[r]=t:a={[r]:t},o[window.UserLeap.envId]=a,i.localStorageHelper.setItemObject("userleap.ids",o)}function Le(){return window.previewMode?"0":window.UserLeap.visitorId??""}function _(r,t,o){const a=[window.UserLeap._API_URL,"sdk",r];return t&&t.forEach(e=>{a.push(e),e===C?a.push(window.UserLeap.envId):e===P&&a.push(Le())}),o&&a.push(o),a.join("/")}const z=async(r,t,o)=>{var xe,Ae,Oe;const{context:a,delay:e,forceBrandedLogo:n,endCard:s,isFeedback:d=!1,heatmap:p,locale:u,previewMode:l,productConfig:c,questions:g,responseGroupUid:m,surveyId:w,uuid:E,vid:y,sessionReplay:v,studyType:S}=r,h=i.getHttpHeaders(window.UserLeap),I=J(h),O=ae(h);if(v)if(I)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:m,hasQuestions:!!(g!=null&&g.length),surveyId:w,uploadId:v.uploadId,replayType:v.replayDurationType??"before",seconds:v.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:m,surveyId:w,updatedAt:new Date().toISOString(),visitorId:window.UserLeap.visitorId,isReplay:!0}});else{if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};i.modules.replay.scheduleOrCaptureReplay({responseGroupId:m,surveyId:w,visitorId:y,replayParams:v,completeUploadHeaders:h,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:g.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:L,replayParams:N,responseGroupUid:pe,surveyId:ce}=p;await i.modules.replay.initializeReplay({maxReplayDurationSeconds:300,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0,apiUrl:window.UserLeap._API_URL,replaySettings:o}),i.modules.replay.tryReplayAction(()=>{var Pe;return(Pe=i.modules.replay)==null?void 0:Pe.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:h,eventId:L,isHeatmap:!0,replayParams:N,responseGroupId:pe,surveyId:ce,triggerTimestamp:Date.now(),visitorId:y})},"Error in scheduling/capturing replay")}if(y==null||!(g!=null&&g.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:y}),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.breadcrumbsLogger.info("AlreadyDisplayingSurvey");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(y!==window.UserLeap.visitorId&&E!==window.UserLeap.visitorId&&!window.previewMode){const L="Attempted to display survey to a different visitor";return window.UserLeap.reportError("DisplaySurvey",new Error(L)),{success:!1,message:L,surveyState:"no survey"}}i.breadcrumbsLogger.info("ShowingSurvey",{surveyId:w}),(xe=i.modules.replay)==null||xe.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),We.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let b,R,U,H,T=document.createElement("div");const ke=L=>{const{"view.version":N}=L;N!==h["x-ul-sdk-version"]&&$e(),i.eventEmitter.removeListener("verify.view.version",ke)};i.eventEmitter.on("verify.view.version",ke),window.UserLeap.useMobileStyling=O,i.shouldDirectEmbed(h)?(b="ul-direct-embeded-frame",R=document.head,U=window,H=!1,(()=>{const L=i.getHttpHeaders(window.UserLeap),N=J(L),pe=window.UserLeap.forceDirectEmbed,ce=L["userleap-platform"]==="web";return N||pe&&ce})()&&(ze(w,d),T.id=b,window.UserLeap.container.appendChild(T),Ge(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:b,contentWinDocHead:R,contentWindow:U,hasOverlay:H,iframe:T}=mt({productConfig:c,useMobileStyling:O,surveyId:w,isFeedback:d}),window.UserLeap.frameId=b;const F={apiURL:window.UserLeap._API_URL,cards:g,configureExitOnOverlayClick:L=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,L)},context:a,endCard:s,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:n,frame:T,headers:h,locale:u,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:l,productConfig:{framePosition:c==null?void 0:c.framePosition,desktopDisplay:c==null?void 0:c.desktopDisplay,placement:c==null?void 0:c.placement},responseGroupUid:m,startingQuestionIdx:(Ae=window.UserLeap.config)==null?void 0:Ae.startingQuestionIdx,studyType:S,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:t,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:O,userId:E,viewDocument:U==null?void 0:U.document,viewWindow:U,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(Oe=window.UserLeap._config)!=null&&Oe.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const pt=(d?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??c.customStyles;F.customStyles=pt,U&&(U.__cfg=F);const de=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:F.path,Re=document.getElementById(Te);Re&&Re.remove();const le=function(){const L=document.createElement("script");return window.UserLeap.nonce&&L.setAttribute("nonce",window.UserLeap.nonce),L.id=Te,L}(),_e=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(F.installationMethod==="web-npm"||F.installationMethod==="web-npm-bundled"){const{default:L}=await Promise.resolve().then(()=>require("./view-DJLfkjCB.cjs"));L.configure(F),H&&window.UserLeap.container&&_e()}else de&&(le.src=de,H&&le.addEventListener("load",()=>{window.UserLeap.container&&_e()}),U==null||U.addEventListener("error",L=>{L.target instanceof HTMLScriptElement&&L.target.src===de&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));R==null||R.appendChild(le);const De={success:!0,surveyState:"ready",surveyId:w,responseGroupUid:m};return window.UserLeap.isMobileSDK&&e&&(De.delay=e),De};function ae(r){var o;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const t=((o=window.UserLeap.windowDimensions)==null?void 0:o.width)??document.body.clientWidth;return J(r)||t>10&&t<500}function J(r){return wt.includes(r["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 ue="0px",ze=(r,t,o)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className="ul-container"+(t?" ul-container-feedback":""),r&&(window.UserLeap.container.dataset.studyId=r.toString());const a=Qe();o&&a&&!window.UserLeap.useMobileStyling?a.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},$e=(r,t)=>{var a;vt();const o=window.UserLeap.container;if(o)try{(a=o.parentNode)==null||a.removeChild(o),window.UserLeap.container=null,k("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(o.dataset.studyId),...t&&{studyType:t}})}catch(e){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${r} `+o),e instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",e)}},Ge=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:r,studyType:t})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),$e(r,t)})},gt=(r,t,o,a)=>{var l,c;const e={position:"fixed",bottom:"0px",right:ue,border:0,backgroundColor:"rgba(0,0,0,0)",zIndex:2147483646,transition:"height 0.2s ease-in-out",maxWidth:"100%"},n=Object.assign({},t,window.UserLeap),{desktopDisplay:s}=t||{},d=s==="center-modal";let p;d&&(n.framePosition="center");let u=!1;if(o)(l=window.UserLeap.windowDimensions)!=null&&l.width?e.width=`${window.UserLeap.windowDimensions.width}px`:e.width="100%",(c=window.UserLeap.windowDimensions)!=null&&c.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(n.overlayStyleMobile)&&(u=!0);else{e.width="360px",e.maxHeight=window.UserLeap.maxHeight||"66vh";const g=()=>{u=!0,p={margin:"auto",position:"static"}};if(a)d?g():p={position:"relative",height:"300px"};else switch(n.framePosition){case"bottomLeft":p={left:ue};break;case"topLeft":p={left:ue,top:0};break;case"topRight":p={top:0};break;case"center":g()}}return u&&((g,m)=>{const w={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},E=m?g.overlayStyleMobile:g.overlayStyle;w["background-color"]=E==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",m||(w.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,w)})(n,o),Object.assign(r.style,e,p),u},mt=({productConfig:r,useMobileStyling:t,surveyId:o,isFeedback:a})=>{var g,m;const e=Ue,n=a&&r.desktopDisplay==="slider";ze(o,a,n),yt();const s=document.createElement("iframe");s.id=e,s.setAttribute("title","Sprig User Feedback Dialog");const d=gt(s,r,t,a);Ge();let p=!1;s.setHeight=w=>{parseInt(s.style.height)==w&&p||(p=!0,s.style.height=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:w,"survey.id":o}))};let u=!1;s.setWidth=w=>{parseInt(s.style.width)==w&&u||(u=!0,s.style.width=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:w,"survey.id":o}))},(g=window.UserLeap.container)==null||g.appendChild(s),r&&(t?r.exitOnOverlayClickMobile:r.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":o});const l=(m=s.contentWindow)==null?void 0:m.document;if(l&&(l.open("text/html","replace"),l.write("<!doctype html><head></head><body></body></html>"),l.close(),!t)){const w=l.body;w.style.display="flex",w.style.alignItems="center"}const c=l==null?void 0:l.head;return{frameId:e,contentWinDocHead:c,contentWindow:s.contentWindow,hasOverlay:d,iframe:s}},Ke={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},yt=()=>{Object.entries(Ke).forEach(([r,t])=>{i.eventEmitter.on(r,t)})},vt=()=>{Object.entries(Ke).forEach(([r,t])=>{i.eventEmitter.off(r,t)})},D=r=>!!r&&r.nodeType===Node.ELEMENT_NODE,Me=r=>r instanceof HTMLElement||r instanceof SVGElement,Q=({document:r,elementId:t,styleString:o,nonce:a})=>{const e=r.getElementById(t);if(e)return void(e.textContent=o);const n=r.createElement("style");a&&(n.nonce=a),n.textContent=o,n.id=t,r.head.appendChild(n)},ft=(r,t)=>{const o=t.querySelector(".sprig-question-body");if(!D(o))return r;const a=o.scrollHeight;return a<100?r:r-(a-100)},qe=(r,t)=>{const o=t.querySelector(r);if(!D(o))return 0;const a=getComputedStyle(o);return parseFloat(a.paddingLeft)+parseFloat(a.paddingRight)+(parseFloat(a.marginLeft)+parseFloat(a.marginRight))+(parseFloat(a.borderLeftWidth)+parseFloat(a.borderRightWidth))},Je=(r,t,o)=>{const a=r.querySelector(".ul-card__container"),e=r.querySelector(".ul-app");let n=600,s=360,d=0;if(D(a)&&D(e)){const p=a.querySelector(".ul-card--matrix_grid"),u=!p&&t&&o;try{u&&(e.style.width="360px"),n=a.clientHeight,n+=(g=>{const m=g.querySelector(".sprig-question-body"),w=g.querySelector(".ul-card"),E=g.querySelector(".ul-card-main-content"),y=g.querySelector(".ul-footer"),v=g.querySelector(".sprig-container");let S=0;return D(w)&&(S+=w.scrollHeight-w.clientHeight),D(E)&&(S+=E.scrollHeight-E.clientHeight),D(m)&&(S+=m.scrollHeight-m.clientHeight),D(y)&&D(v)&&v.clientHeight===0&&(S+=y.clientHeight),S})(r);const l=getComputedStyle(a);d=n;const c=parseFloat(l.marginTop)+parseFloat(l.marginBottom);n+=c+(parseFloat(l.borderTopWidth)+parseFloat(l.borderBottomWidth)),p&&(s=p.scrollWidth,s+=qe(".ul-card__container",r),s+=qe(".sprig-question-body",r))}finally{u&&e.style.removeProperty("width")}}return[n+1,s,ft(d,r)]},Qe=()=>f,V=()=>document.getElementById("sprig-feedback-container"),ye=()=>document.getElementById("sprig-feedback-loading-animation"),Ye=()=>!!document.getElementById(Ue);let je=!1,f=null,A=null,Ee=!1,$=null,q=null;const ht=["bottom-left","bottom-right","center-left","center-right"],Z=()=>{var t;const r=window.UserLeap.container;return((t=r==null?void 0:r.parentElement)==null?void 0:t.id)==="sprig-feedback-loading-container"},Xe=()=>document.getElementById("sprig-feedback-error-container"),Ze=()=>{if(!f)return 0;const r=f==null?void 0:f.clientWidth,t=window.getComputedStyle(f);return r+parseInt(t.borderRightWidth||"0")+parseInt(t.borderLeftWidth||"0")},ee=r=>{const t=V();t&&(q!=null&&q.endsWith("right")?t.style.right=`${r}px`:q!=null&&q.endsWith("left")&&(t.style.left=`${r}px`))},we=()=>{if(f&&(Z()||Xe())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,W),ve();const r=Ze();return ee(-r),!0}return!1},W=()=>{if(!f||!A)return;const r=ye();r&&r.remove(),f.style.height="auto",f.style.width="auto",A.disabled=!1,Ee=!1},ve=()=>{if(f&&!ye()){const r=(()=>{if(ye())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>
5
5
  <div class="third"></div>
6
6
  <div class="fourth"></div>
7
7
  </div>
8
- `,t})();r&&(f.style.height="300px",f.style.width="360px",f.appendChild(r))}},Fe=()=>{f&&A&&(ee(0),A.disabled=!0,Ee=!0)},et=async(r,t,o)=>{const{buttonTheme:a,customStyles:e,eventId:n,placement:s,desktopDisplay:d,feedbackLabel:p,surveyUuid:u,surveyId:l}=r;window.UserLeap.feedbackCustomStyles=void 0;let c=V();if(c){if(!t&&n===$)return;c.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,we)}$=n,Q({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}),Q({document,elementId:"ul-custom-style",styleString:e??"",nonce:window.UserLeap.styleNonce}),je=d==="center-modal",q=s;const[g,y]=s.split("-");(m=>{if(V()||!ht.includes(m))return;const[b,h]=m.split("-"),L=document.createElement("div");L.id="sprig-feedback-container",L.classList.add(`sprig-feedback-container-${h}`,`sprig-feedback-container-${b}`),document.body.appendChild(L)})(s),c=V(),A=document.createElement("button");const w=document.createElement("div");w.className="sprig-feedback-button-label",w.innerText=p,A.appendChild(w),A.id="sprig-feedback-button",A.classList.add(`sprig-feedback-button-${y}`,`sprig-feedback-button-${g}`,`sprig-feedback-button-${a}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,we),A.addEventListener("click",async()=>{const m=document.getElementById("sprig-feedback-error-container");if(Ye()||Xe()){if(we()){i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l});const h=V();m&&h&&(h.remove(),$=null,f=null)}return}if(ae(i.getHttpHeaders(window.UserLeap))||Ee||Fe(),t)return f&&f.classList.add("sprig-feedback-loading-container-previews"),await z(t),void W();const b=await(async h=>{const L=await x(_("1",[P],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:h}),method:"POST"});return L.ok?L.json:null})(u);if(b)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,W),z({...b,studyType:"feedbackButton"},o);else if(f){const h=St();f.appendChild(h),W(),f.style.height="300px",f.style.width="360px"}}),c==null||c.appendChild(A),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":l});const{useMobileStyling:E,_config:{border:I}}=window.UserLeap;if(je||E)ee(0);else{const m=document.createElement("div");m.id="sprig-feedback-loading-container",m.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${y}`,m.style.setProperty("--feedback-border",I),f=m,ve(),c==null||c.appendChild(m);const b=Ze();ee(-b)}window.UserLeap._config.isOnQuestionsTab&&t&&!Z()&&f&&(Fe(),ve(),f&&f.classList.add("sprig-feedback-loading-container-previews"),z(t),W())},St=()=>{const r=document.createElement("div");r.id="sprig-feedback-error-container",r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
8
+ `,t})();r&&(f.style.height="300px",f.style.width="360px",f.appendChild(r))}},Fe=()=>{f&&A&&(ee(0),A.disabled=!0,Ee=!0)},et=async(r,t,o)=>{const{buttonTheme:a,customStyles:e,eventId:n,placement:s,desktopDisplay:d,feedbackLabel:p,surveyUuid:u,surveyId:l}=r;window.UserLeap.feedbackCustomStyles=void 0;let c=V();if(c){if(!t&&n===$)return;c.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,we)}$=n,Q({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}),Q({document,elementId:"ul-custom-style",styleString:e??"",nonce:window.UserLeap.styleNonce}),je=d==="center-modal",q=s;const[g,m]=s.split("-");(v=>{if(V()||!ht.includes(v))return;const[S,h]=v.split("-"),I=document.createElement("div");I.id="sprig-feedback-container",I.classList.add(`sprig-feedback-container-${h}`,`sprig-feedback-container-${S}`),document.body.appendChild(I)})(s),c=V(),A=document.createElement("button");const w=document.createElement("div");w.className="sprig-feedback-button-label",w.innerText=p,A.appendChild(w),A.id="sprig-feedback-button",A.classList.add(`sprig-feedback-button-${m}`,`sprig-feedback-button-${g}`,`sprig-feedback-button-${a}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,we),A.addEventListener("click",async()=>{const v=document.getElementById("sprig-feedback-error-container");if(Ye()||Xe()){if(we()){i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l});const h=V();v&&h&&(h.remove(),$=null,f=null)}return}if(ae(i.getHttpHeaders(window.UserLeap))||Ee||Fe(),t)return f&&f.classList.add("sprig-feedback-loading-container-previews"),await z(t),void W();const S=await(async h=>{const I=await x(_("1",[P],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:h}),method:"POST"});return I.ok?I.json:null})(u);if(S)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,W),z({...S,studyType:"feedbackButton"},o);else if(f){const h=St();f.appendChild(h),W(),f.style.height="300px",f.style.width="360px"}}),c==null||c.appendChild(A),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":l});const{useMobileStyling:E,_config:{border:y}}=window.UserLeap;if(je||E)ee(0);else{const v=document.createElement("div");v.id="sprig-feedback-loading-container",v.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${m}`,v.style.setProperty("--feedback-border",y),f=v,ve(),c==null||c.appendChild(v);const S=Ze();ee(-S)}window.UserLeap._config.isOnQuestionsTab&&t&&!Z()&&f&&(Fe(),ve(),f&&f.classList.add("sprig-feedback-loading-container-previews"),z(t),W())},St=()=>{const r=document.createElement("div");r.id="sprig-feedback-error-container",r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
9
9
  <circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
10
10
  <path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
11
11
  <circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
12
- </svg>`;const t=document.createElement("h3");return t.className="sprig-feedback-error-text",t.innerText="There was an error while loading the survey",r.appendChild(t),r},fe=new class{constructor(){M(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(r){try{return!(!r||typeof r!="object"||Array.isArray(r))&&(Object.keys(this._ldData).forEach(t=>{delete this._ldData[t]}),Object.keys(r).forEach(t=>this._ldData[`!launch_darkly_${t}`]=(r[t]??0)+1),!0)}catch(t){return t instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",t),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}};Object.freeze(fe);const X=new class{constructor(){M(this,"_optimizelyData",{})}setOptimizelyExperiment(r,t=!0){if(!r||typeof r!="object")return!1;const{experiments:o}=r;try{return t&&Object.keys(this._optimizelyData).map(a=>{delete this._optimizelyData[a]}),o&&o.map(a=>{const{id:e,variation:n}=a,s=this.transformExperimentId(e);n&&typeof n=="string"&&(this._optimizelyData[s]=n)}),!0}catch(a){return a instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",a),!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 t=(r=window.optimizely.get("state"))==null?void 0:r.getExperimentStates({isActive:!0});if(t){const o=Object.keys(t).map(a=>{var e,n;return(e=t[a].variation)!=null&&e.name?{id:a,variation:(n=t[a].variation)==null?void 0:n.name}:{id:a,variation:"Original"}});return this.setOptimizelyExperiment({experiments:o},!1),!0}return!1}return!1}catch(t){return t instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",t),!1}}};Object.freeze(X);class bt{constructor(t,o){M(this,"paused");M(this,"queue");M(this,"ul");this.ul=t,this.paused=!1,this.queue=[],this.flush(o)}flush(t){const o=t.length;if(o)for(let a=0;a<o;a++)this.push(t[a])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const t=this.queue.slice();this.empty(),this.flush(t)}push(t){if(this.paused)this.queue.push(t);else if(t instanceof Function)t();else{const o=Array.prototype.slice.call(t,1),a=t[0],e=this.ul[a];e instanceof Function?e.apply(this.ul,o):a&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",a)}}perform(t){if(this.paused){let o=()=>{};const a=new Promise(function(e){o=function(){e(t())}});return this.queue.push(o),a}return t()}empty(){this.queue.length=0}}let tt,rt;const he=r=>{let t=0,o=r.firstElementChild;for(;o;)t+=he(o),o.shadowRoot&&(t+=he(o.shadowRoot)),o=o.nextElementSibling,t++;return t},Ve=()=>{tt.report(he(document.body)),rt.report(document.documentElement.innerHTML.length)},Se=(r,t)=>{const o=performance.now();document.hidden?setTimeout(()=>Se(r,t),r):setTimeout(()=>{const a=performance.now()-o;t.report(a/1e3),setTimeout(()=>Se(r,t),r)},0)};let te,re,ie,ne,Ne,j={};const Y=(r,t=1)=>{const{name:o}=r;j[o]=(j[o]||0)+t},it=r=>{let t=1;return r.childNodes.forEach(o=>{t+=it(o)}),t},Be=r=>{let t=0;return r.forEach(o=>{t+=it(o)}),t},Lt=r=>{switch(r.type){case"childList":return Y(te,Be(r.addedNodes)),void Y(re,Be(r.removedNodes));case"attributes":return void Y(ie);case"characterData":return void Y(ne)}},Ut=r=>r.forEach(Lt),Et=()=>{te.report(j[te.name]||0),re.report(j[re.name]||0),ie.report(j[ie.name]||0),ne.report(j[ne.name]||0),j={}},It=(r=1e3)=>{te=i.registerMetric("sdk_mutations_nodes_added"),re=i.registerMetric("sdk_mutations_nodes_removed"),ie=i.registerMetric("sdk_mutations_attributes_changed"),ne=i.registerMetric("sdk_mutations_character_data"),Ne=new MutationObserver(Ut),Ne.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(Et,r)},kt=({isWeb:r,reportingIntervalSeconds:t,thresholds:o,postMetrics:a})=>{i.registerThresholds(o,(e,n)=>{var s,d;if((s=i.modules.replay)!=null&&s.isReplayRecording()){const p=`Value: ${e} on ${n.metric} violated threshold of ${n.type} ${n.value}`;(d=i.modules.replay)==null||d.disableRecording("Threshold violated",new Error(p),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:n.metric,type:n.type,value:n.value},{metricName:n.metric}),i.disableThresholdChecking()}}),i.initPerformanceReporting({reportingIntervalSeconds:t,postMetrics:a}),r&&(((e=1e3)=>{const n=i.registerMetric("sdk_event_queue_latency_seconds");Se(e,n)})(),((e=1e4)=>{tt=i.registerMetric("sdk_dom_nodes_count"),rt=i.registerMetric("sdk_page_html_characters"),Ve(),setInterval(Ve,e)})(),It())},Rt="test",_t=["popState","pushState","replaceState"];let Ie,G;const oe={},B="!email",nt="pageUrl";let ge=window.location.href;function K(r){var d,p;const{pageUrlEvents:t,interactiveEvents:o,dismissOnPageChange:a,platform:e}=window.UserLeap._config;if(e&&e!=="web")return;ge!==window.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:ge,to:window.location.href}),ge=window.location.href;const n=at().trackStartUrl,s=n?String(n):null;t&&lt(window.location.href),o&&(st(),Dt()),Qe()&&(()=>{if(Z())return;const u=V();u&&(i.checkUrlStillMatching($)||(u.remove(),$=null,f=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((p=(d=i.modules.replay)==null?void 0:d.checkPendingHeatmapsUrl())==null||p.then(u=>{var l;u&&((l=i.modules.replay)==null||l.uploadReadyPendingCaptures(!0))})),!Z()&&a&&s&&s!==window.location.href&&r&&_t.includes(r.type)&&window.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const ot={capture:!0},Dt=()=>{const r=window.UserLeap._config.interactiveEvents.filter(o=>i.checkUrlMatch(o,window.location.href)).map(o=>{const{name:a,properties:e}=o,{selector:n,innerText:s}=e;return n?d=>{if(Me(d.target))try{d.target.closest(n)&&window.UserLeap("track",a)}catch{}return!1}:d=>(Me(d.target)&&d.target.innerText===s&&window.UserLeap("track",a),!1)}),t=o=>r.forEach(a=>a(o));window.UserLeap._config.interactiveEventsHandler=t,window.addEventListener("click",t,ot)},st=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,ot),delete window.UserLeap._config.interactiveEventsHandler};function at(){const r=i.localStorageHelper.getItemObject("userleap.ids");return r&&r[window.UserLeap.envId]||{}}function dt(){if(window.previewMode)return;const r=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map")||{},t=r[window.UserLeap.envId];window.UserLeap.visitorId=t||i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:window.UserLeap.visitorId}),k("vid",window.UserLeap.visitorId),t||(r[window.UserLeap.envId]=window.UserLeap.visitorId,i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",r)),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}function lt(r,t,o,a){var e,n;try{if(r.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:r});const s=(e=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:e.getAttribute("content");(n=i.modules.replay)==null||n.RecordPageView({...s&&{description:s},url:r,referrer:document.referrer,pageTitle:document.title});const d=window.UserLeap._config.pageUrlEvents;let p=!1;if(d&&d.length)for(let l=0;l<d.length&&(p=i.checkUrlMatch(d[l],r),!p);l++);if(!p)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",r);const u={url:r};a&&(u.trackPageView=!0),window.UserLeap._queue.push(["track",nt,t,u,o])}catch(s){s instanceof Error&&(s.stack=r,window.UserLeap.reportError("trackPageView",s)),console.warn("[Sprig] (ERR-428) Failed to track page view",s)}}function xt(){const r="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in r&&(r.pushState=(t=>function(...o){const a=t.apply(this,o),e=new Event("pushState");return window.dispatchEvent(e),K(e),a})(r.pushState)),"replaceState"in r&&(r.replaceState=(t=>function(...o){const a=t.apply(this,o),e=new Event("replaceState");return window.dispatchEvent(e),K(e),a})(r.replaceState)),["hashchange","popstate"].forEach(t=>window.addEventListener(t,K,!0))}async function me(r,t){const o=Le();r&&!t&&(window.UserLeap._config.mode=Rt);const a=ae(i.getHttpHeaders(window.UserLeap)),e=await x(function(n){const s=new URL(_("1",[C],"questions"));return Object.entries(n||{}).forEach(([d,p])=>{p&&s.searchParams.append(d,String(p))}),s.toString()}({desktopDisplay:window.UserLeap._config.desktopDisplay,isMobile:a,previewLanguage:window.UserLeap._config.previewLanguage,surveyid:r==null?void 0:r.surveyId,surveytemplateid:r==null?void 0:r.surveyTemplateId,vid:o}),{shouldDropOnRateLimit:!0});if(!e.ok)return e.reportError&&e.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",e.error),window.UserLeap.reportError("getQuestions",e.error)),{success:!1,surveyState:"no survey"};if(e.json.delay&&await i.delay(e.json.delay),!e.json.isFeedback)return z(e.json,G,Ie);{const{feedbackLabel:n,productConfig:s,surveyUuid:d,feedbackCustomStyles:p}=e.json,{buttonTheme:u,placement:l,desktopDisplay:c}=s;et({customStyles:p,buttonTheme:u,desktopDisplay:c,eventId:0,feedbackLabel:n,placement:l,surveyUuid:d,surveyId:r==null?void 0:r.surveyId},e.json)}}function At(r){if(!r)return;window.UserLeap._config=r,r.mute&&window.UserLeap._queue.pause();const{interactiveEvents:t,pageUrlEvents:o,dismissOnPageChange:a}=r;t&&function(e){let n=e.length;for(;n;){const s=Math.floor(Math.random()*n);n-=1;const d=e[n];e[n]=e[s],e[s]=d}}(t),(t||o||a)&&(xt(),K())}const Ot=function(r){if(!window.UserLeap)return;const t=async(e={})=>{var m,b,h,L,O;const{userId:n,anonymousId:s,metadata:d={},properties:p,showSurveyCallback:u}=e;let{eventName:l}=e;if(window.UserLeap.debugMode&&l!==nt&&console.info("[DEBUG] Sprig track",e),r.mode==="test")return;const c=i.localStorageHelper.getItem("sprig.previewKey")??void 0;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const v="[Sprig] - Skipping tracking without userId";return console.warn(v),{success:!1,message:v,surveyState:"no survey"}}if(!l||l.trim().length===0){l=l?String(l):"";const v="[Sprig] - Invalid event name "+l;return console.warn(v),{success:!1,message:v,surveyState:"no survey"}}const g=G??window.location.href;d.url||(d.url=g),k("trackStartUrl",g),(b=(m=window.UserLeap)==null?void 0:m._config)!=null&&b.optimizelyEnabled&&(J(i.getHttpHeaders(window.UserLeap))||X.getAndSetWebOptimizelyExperiments(),d.optimizelyExperiments=Object.assign({},X.getAllOptimizelyExperiments())),(L=(h=window.UserLeap)==null?void 0:h._config)!=null&&L.launchDarklyEnabled&&(d.launchDarklyFlags=fe.getAllLaunchDarklyVariations()),n&&(window.UserLeap.userId=n),s&&(window.UserLeap.partnerAnonymousId=s),p&&(d.eventProperties=p),(O=i.modules.replay)==null||O.RecordEvent({name:l,url:d.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:l});const y=window.UserLeap.delayingSurvey||Ye()?await x(_("1",[P],"events/batch"),{body:JSON.stringify({events:[{event:l,metadata:d}],previewKey:c}),method:"POST",shouldDropOnRateLimit:!0}):await x(_("1",[P],"events"),{body:JSON.stringify({event:l,metadata:d,previewKey:c}),method:"POST",shouldDropOnRateLimit:!0});if(!y.ok){const v="[Sprig] (ERR-421) Failed to track event";return y.reportError&&(console.warn(v,y.error),y.error&&window.UserLeap.reportError("track",y.error)),{success:!1,message:v,error:y.error,surveyState:"no survey"}}n&&k("uid",n),s&&k("aid",s);const w=y.json;w.invalidPreviewKey&&i.localStorageHelper.removeItem("sprig.previewKey");const E=d.trackPageView?d.url:void 0;return w!=null&&w.feedbackButton&&et(w.feedbackButton,void 0,E),await async function(v,R){var H,T;let U=!0;return!(R&&((H=v==null?void 0:v.json)!=null&&H.surveyId)&&(window.UserLeap.delayingSurvey=!0,U=await R(v.json.surveyId),window.UserLeap.delayingSurvey=!1,!U))&&((T=v==null?void 0:v.json)!=null&&T.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await i.delay(v.json.delay),window.UserLeap.delayingSurvey=!1),U)}(y,u)?function(v){if(!window.UserLeap._config.dismissOnPageChange)return!0;const R=new URL(v),U=new URL(G??window.location.href);return R.hostname===U.hostname&&R.pathname===U.pathname}(g)?z(w,E,Ie):{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"}},o=(e,n)=>{var d;const s=(d=e==null?void 0:e.querySelector(`[id="${Ue}"]`))==null?void 0:d.contentDocument;s&&Q({document:s,elementId:"ul-custom-style",styleString:n})},a={displaySurvey:async e=>(console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyId:e},!0)),_previewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyTemplateId:e},!1)},_reviewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyId:e},!1)},previewSurvey(e){a._previewSurvey(e)},reviewSurvey(e){a._reviewSurvey(e)},mute(){window.UserLeap._queue.pause()},unmute(){window.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(e=i.DismissReason.API){window.UserLeap.container&&(e===i.DismissReason.Closed&&window.Sprig.trackHistory&&window.Sprig.trackHistory({event:"closed"}),i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:e,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:e,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}))},async setAttribute(e,n){if(!e||!n&&n!==0&&n!==!1){const s="[Sprig] - Disregarding empty attribute / value provided";return console.warn(s),{success:!1,message:s}}return this.setAttributes({[e]:n})},async setAttributes(e){if(e==null||Object.keys(e).length===0){const n="[Sprig] - Disregarding empty attributes provided";return console.warn(n),{success:!1,message:n}}return this.identifyAndSetAttributes({attributes:e})},async identifyAndSetAttributes(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",e),r.mode==="test")return;if(e===null||typeof e!="object"||!(e.userId||e.anonymousId||e.attributes)){const l="[Sprig] - Disregarding empty payload provided";return console.warn(l),{success:!1,message:l}}const{userId:n,anonymousId:s,attributes:d}=e;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const l="[Sprig] - Skipping tracking without userId";return console.warn(l),{success:!1,message:l}}if(d){d.email&&!d[B]&&(d[B]=d.email,delete d.email);const l=Object.keys(d);for(const c of l)d[c]===oe[c]&&delete d[c]}if(!(d&&Object.keys(d).length!==0||n&&window.UserLeap.userId!==n||s&&window.UserLeap.partnerAnonymousId!==s))return{success:!0};const p={};let u;return n&&(p.userId=window.UserLeap.userId=n),s&&(p.partnerAnonymousId=window.UserLeap.partnerAnonymousId=s),d&&Object.keys(d).length>0?(u=await x(_("1",[C,P],"attributes"),{body:JSON.stringify(d),method:"PUT"}),u.ok?Object.assign(oe,d):u.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",u.error),u.error&&window.UserLeap.reportError("identifyAndSetAttributes",u.error))):u=await x(_("1",[C,P]),{body:JSON.stringify(p),method:"PUT"}),d&&d[B]&&(window.UserLeap.email=d[B]),u.ok&&(n&&k("uid",n),s&&k("aid",s)),{success:!!u.ok}},async removeAttributes(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",e),r.mode==="test")return;if(e==null||e.length===0){const s="[Sprig] - Disregarding empty attributes provided";return console.warn(s),{success:!1,message:s}}if(r.requireUserIdForTracking&&!window.UserLeap.userId){const s="[Sprig] - Skipping tracking without userId";return console.warn(s),{success:!1,message:s}}const n=await x(_("1",[C,P],"attributes"),{body:JSON.stringify({delete:e}),method:"DELETE"});return!n.ok&&n.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",n.error),n.error&&window.UserLeap.reportError("removeAttributes",n.error)),{success:!!n.ok}},async addSurveyListener(e){i.eventEmitter.on(i.SprigEvent.SurveyLifeCycle,e)},async removeSurveyListener(e){i.eventEmitter.removeListener(i.SprigEvent.SurveyLifeCycle,e)},async addListener(e,n){i.eventEmitter.on(e,n)},async removeListener(e,n){i.eventEmitter.removeListener(e,n)},async removeAllListeners(){i.eventEmitter.removeAllListeners()},setPreviewKey(e){e&&typeof e=="string"&&i.localStorageHelper.isStorageAvailable&&e&&i.localStorageHelper.setItem("sprig.previewKey",e)},async setUserId(e){var d;if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",e),e==null){const p=`[Sprig] - Invalid userId ${e}`;return console.warn(p),{success:!1,message:p}}if(r.mode==="test"||e===window.UserLeap.userId)return;window.UserLeap.userId=e;const n=window.UserLeap.visitorId,s=await x(_("1",[C,P]),{body:JSON.stringify({userId:e}),method:"PUT"});s.ok?(n!==window.UserLeap.visitorId&&((d=i.modules.replay)==null||d.clearUserReplayData()),k("uid",e)):s.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",s.error),s.error&&window.UserLeap.reportError("setUserId",s.error))},async setPartnerAnonymousId(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",e),e==null){const n=`[Sprig] - Invalid partnerAnonymousId ${e}`;return console.warn(n),{success:!1,message:n}}return window.UserLeap.partnerAnonymousId=e,k("aid",e),{success:!0}},track:async(e,n,s={},d=void 0)=>t({eventName:e,properties:n,metadata:s,showSurveyCallback:d}),identifyAndTrack:async e=>await t(e),trackPageView(e,n=void 0,s=void 0,d=!0){G=e,lt(e,n,s,d)},applyFeedbackStyles({button:e="",view:n=""}){window.UserLeap.feedbackCustomStyles=n,document.getElementById("sprig-feedback-style")&&Q({document,elementId:"ul-custom-style",styleString:e,nonce:window.UserLeap.styleNonce}),o(document.querySelector(".ul-container-feedback"),n)},applyStyles(e){window.UserLeap.customStyles=e,o(window.UserLeap.container,e)},setWindowDimensions(e,n){var g,y;const s=typeof e=="string"?parseInt(e,10):e,d=typeof n=="string"?parseInt(n,10):n;isNaN(s)||isNaN(d)||(window.UserLeap.windowDimensions={width:s,height:d});const p=i.getHttpHeaders(window.UserLeap),u=ae(p),l=p["userleap-platform"]==="web";if(!window.UserLeap.frameId)return;const c=document.getElementById(window.UserLeap.frameId);c&&(window.UserLeap.useMobileStyling&&((g=window.UserLeap.windowDimensions)!=null&&g.width&&(c.style.width=`${window.UserLeap.windowDimensions.width}px`),(y=window.UserLeap.windowDimensions)!=null&&y.height&&(c.style.maxHeight=window.UserLeap.windowDimensions.height-20+"px"),c.contentDocument&&(c.style.height=String(Je(c.contentDocument,l&&!u,i.shouldDirectEmbed(p))[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:c.clientWidth,contentFrameHeight:c.clientHeight,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}))},logoutUser(){var e;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),i.breadcrumbsLogger.info("LogOut",{vid:window.UserLeap.visitorId,userId:window.UserLeap.userId}),window.UserLeap.visitorId=null,window.UserLeap.userId=null,window.UserLeap.partnerAnonymousId=null,window.UserLeap.token=null,window.UserLeap.email=null,i.localStorageHelper.removeItem("userleap.ids"),window.UserLeap._queue.isPaused()&&window.UserLeap._queue.empty(),dt(),(e=i.modules.replay)==null||e.clearUserReplayData(),window.UserLeap._queue.unpause()},teardown(){["hashchange","popstate"].forEach(e=>window.removeEventListener(e,K,!0)),window.UserLeap._config.interactiveEvents&&st(),window.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete window.UserLeap,delete window.Sprig,delete window._Sprig},integrateOptimizely(e,n=!0){var s,d;if((d=(s=window.UserLeap)==null?void 0:s._config)!=null&&d.optimizelyEnabled)try{const p=typeof e=="string"?JSON.parse(e):e;X.setOptimizelyExperiment(p,n)}catch(p){console.warn("[Sprig] Error with integrating Optimizely data"),p instanceof Error&&window.UserLeap.reportError("integrateOptimizely",p)}else console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.")},integrateOptimizelyClient(e){var n,s;if(!((s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.optimizelyEnabled))return void console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");e.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",({experiment:d,variation:p})=>{const u={experiments:[{id:d.id,variation:p.key}]};window.UserLeap("integrateOptimizely",u,!1)})},importLaunchDarklyData(e){var n,s;(s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.launchDarklyEnabled?fe.setLDFlagsVariations(e):console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.")},setVisitorAttribute:(e,n)=>(console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),a.setAttribute(e,n)),setEmail:async e=>a.setAttribute(B,e),setVisitorEmail:async e=>(console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),a.setEmail(e)),_generateVideoUploadUrl:async e=>async function(n){var d;if(!n)return;const s=`${window.UserLeap._API_URL}/2/environments/integrations/upload`;try{const p=await fetch(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(p.ok){const u=await p.json();return(d=u==null?void 0:u.upload)==null?void 0:d.url}return null}catch(p){console.warn("[Sprig] Error with generating video upload url"),p instanceof Error&&window.UserLeap.reportError("generateVideoUploadUrl",p)}}(e),_reportMetric(e,n){i.reportAndRegister(e,n)},_completeSessionReplay:async({surveyId:e,responseGroupUuid:n,eventDigest:s})=>{var d;return i.modules.replay?(d=i.modules.replay)==null?void 0:d._completeSessionReplay({surveyId:e,responseGroupUuid:n,eventDigest:s,headers:i.getHttpHeaders(window.UserLeap)}):(window.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)},pauseReplayRecording(){var e,n,s,d;(n=(e=i.modules.replay)==null?void 0:e.isReplayPaused)!=null&&n.call(e)||((d=(s=i.modules.replay)==null?void 0:s.recordReplayPaused)==null||d.call(s))},resumeReplayRecording(){var e,n,s,d,p,u;(n=(e=i.modules.replay)==null?void 0:e.isReplayPaused)!=null&&n.call(e)&&((d=(s=i.modules.replay)==null?void 0:s.recordReplayResumed)==null||d.call(s),(u=(p=i.modules.replay)==null?void 0:p.recordFullSnapshot)==null||u.call(p))}};Object.assign(window.UserLeap,a)};async function Pt(r,t,o={},a={}){const e=window.__cfg&&window.__cfg.mode,n=Le(),s=window.UserLeap.envId,d=window.document.documentElement,p={mode:e,screenWidth:window.screen.width,screenHeight:window.screen.height,clientWidth:d.clientWidth,clientHeight:d.clientHeight,location:G??window.location.href,language:window.navigator.language,...o},u={action:r,breadcrumbs:i.breadcrumbsLogger.breadcrumbs,err:{message:`${t==null?void 0:t.name} - ${t==null?void 0:t.message}`,stack:t==null?void 0:t.stack},meta:p,vid:n,envId:s,...a};(await x(_("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(u),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",t)}function Ct(r={}){var a;(a=window.SprigLoggerCallback)==null||a.call(window,"Initializing Sprig");const t=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";async function o(){var g,y,w,E,I;if(window.UserLeap.loaded)return;if((g=window.SprigLoggerCallback)==null||g.call(window,"Loading Sprig"),window.UserLeap.reportError=Pt,window.UserLeap.loaded=!0,window.UserLeap._config=Object.assign({},r,window.UserLeap.config),window.UserLeap.delayingSurvey=!1,window.UserLeap._config&&typeof window.UserLeap._config=="object")for(const m in window.UserLeap._config)window.UserLeap[m]=window.UserLeap._config[m];if(!window.UserLeap.envId){if(!window.UserLeap.appId)throw new Error("Missing Environment id");window.UserLeap.envId=window.UserLeap.appId}window.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const e=at(),n=window.UserLeap.sampleRate;let s=e.sampled;if(n){if(s===null&&(s=Math.random()<n,k("sampled",s)),!s)return}else s!==null&&k("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const d=[...window.UserLeap._queue];window.UserLeap._queue=new bt(window.UserLeap,[]),window.UserLeap._queue.pause();for(let m=0;m<d.length;m++)window.UserLeap._queue.push(d[m]);const p=e.token;p?(window.UserLeap.token=p,window.UserLeap.visitorId=e.vid??null,window.UserLeap.userId=e.uid??null,window.UserLeap.partnerAnonymousId=e.aid??null):dt();const u=J(i.getHttpHeaders(window.UserLeap));(y=window.SprigLoggerCallback)==null||y.call(window,"Sprig fetching config");const l=await async function(m){var O,v;const b=i.getHttpHeaders(window.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const h=await i.sprigFetch(_("1",[C],"config"),{headers:b});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!h.ok)return(O=window.SprigLoggerCallback)==null||O.call(window,"Sprig config fetch failed"),h.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",h.error),h.error&&window.UserLeap.reportError("applyRemoteConfig",h.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),m;const L=h.json;return L!=null&&L.disabled?((v=window.SprigLoggerCallback)==null||v.call(window,"Sprig config fetch disabled"),i.killNetworkRequests(`Disabled: ${L.disabled}`),{disabled:L.disabled}):Object.assign({},L,m)}(r);(w=window.SprigLoggerCallback)==null||w.call(window,"Sprig fetched config"),kt({isWeb:!u,reportingIntervalSeconds:l.metricsReportingEnabled||l.mobileMetricsReportingEnabled?l.metricsReportingIntervalSeconds:0,thresholds:l.metricThresholds,postMetrics:async m=>{var b;await x(_("1",[C],"metrics"),{body:m,method:"POST",headers:{"x-ul-replay-enabled":`${!!((b=i.modules.replay)!=null&&b.isReplayRecording())}`},shouldDropOnRateLimit:!0})}});const c=l.alwaysOnReplay?{userAgent:window.navigator.userAgent,surveyId:l.alwaysOnReplay.surveyId,responseGroupUuid:l.alwaysOnReplay.responseGroupUuid,sdkVersion:"2.34.0",maxDurationSeconds:l.alwaysOnReplay.maxDurationSeconds}:void 0;await((E=i.modules.replay)==null?void 0:E.initializeReplay({maxReplayDurationSeconds:l.maxReplayDurationSeconds,maxInflightRequests:window.UserLeap.maxInflightReplayRequests??2,replaySettings:l.replaySettings,apiUrl:window.UserLeap._API_URL,alwaysOnConfig:c})),Ie=l.replaySettings,Ot(l),await At(l),window.UserLeap._queue.unpause(),(I=window.SprigLoggerCallback)==null||I.call(window,"SdkReady"),i.eventEmitter.emit(i.SprigEvent.SDKReady,{mobileMetricsReportingEnabled:!!l.mobileMetricsReportingEnabled,metricsReportingInterval:l.metricsReportingIntervalSeconds||0,metricsThresholds:l.metricThresholds||[],maxMobileReplayDurationSeconds:l.maxMobileReplayDurationSeconds,mobileReplaySettings:l.mobileReplaySettings}),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId}),i.eventEmitter.on(i.SprigEvent.VisitorIDUpdated,()=>{for(const m in oe)delete oe[m]})}window.UserLeap.UPDATES=i.EVENTS,window.UserLeap("setPreviewKey",t),document.readyState==="complete"?o():window.attachEvent?window.attachEvent("onload",o):window.addEventListener("load",()=>{o()},!1)}class se{constructor(){M(this,"UPDATES",i.EVENTS)}displaySurvey(t){window.Sprig("displaySurvey",t)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(t,o){window.Sprig("setAttribute",t,o)}setAttributes(t){window.Sprig("setAttributes",t)}identifyAndSetAttributes(t){window.Sprig("identifyAndSetAttributes",t)}removeAttributes(t){window.Sprig("removeAttributes",t)}addListener(t,o){window.Sprig("addListener",t,o)}removeListener(t,o){window.Sprig("removeListener",t,o)}removeAllListeners(){window.Sprig("removeAllListeners")}setEmail(t){window.Sprig("setAttribute","!email",t)}setUserId(t){window.Sprig("setUserId",t)}setPartnerAnonymousId(t){window.Sprig("setPartnerAnonymousId",t)}track(t,o={},a={}){window.Sprig("track",t,o,a)}identifyAndTrack(t){window.Sprig("identifyAndTrack",t)}trackPageView(t,o,a){window.Sprig("trackPageView",t,o,a)}applyStyles(t){window.Sprig("applyStyles",t)}setWindowDimensions(t,o){window.Sprig("setWindowDimensions",t,o)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}pauseReplayRecording(){window.Sprig("pauseReplayRecording")}resumeReplayRecording(){window.Sprig("resumeReplayRecording")}}const be={configure:r=>{if(!r.envId&&!r.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(r.envId||(r.envId=r.environmentId??""),r.installationMethod="web-npm",window.Sprig)return window.Sprig;window.Sprig=function(){window.Sprig._queue.push(arguments)},Object.getOwnPropertyNames(se.prototype).map(o=>{o!=="constructor"&&(window.Sprig[o]=se.prototype[o])});const t=window.Sprig;return t.appId=r.envId,t._queue=[],window.UserLeap=t,Ct(r),window.Sprig}},Ht={sprig:be,SprigAPI:se,configure:be.configure};exports.APP_ID="ul-app",exports.ConflictingWidgets=We,exports.DEFAULT_BORDER_COLOR="#e6e6e6",exports.DEFAULT_WIDTH_PX=360,exports.EMBED_MOBILE_MAX_WIDTH=1030,exports.ERROR_BORDER_COLOR="#bd282a",exports.SprigAPI=se,exports.calculateFrameDimensions=Je,exports.core=Ht,exports.isHTMLElement=D,exports.resetScrollPosition=r=>{const t=r.querySelector(".ul-card__container");t&&(t.scrollTop=0)},exports.setSurveyStyles=Q,exports.sprig=be;
12
+ </svg>`;const t=document.createElement("h3");return t.className="sprig-feedback-error-text",t.innerText="There was an error while loading the survey",r.appendChild(t),r},fe=new class{constructor(){M(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(r){try{return!(!r||typeof r!="object"||Array.isArray(r))&&(Object.keys(this._ldData).forEach(t=>{delete this._ldData[t]}),Object.keys(r).forEach(t=>this._ldData[`!launch_darkly_${t}`]=(r[t]??0)+1),!0)}catch(t){return t instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",t),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}};Object.freeze(fe);const X=new class{constructor(){M(this,"_optimizelyData",{})}setOptimizelyExperiment(r,t=!0){if(!r||typeof r!="object")return!1;const{experiments:o}=r;try{return t&&Object.keys(this._optimizelyData).map(a=>{delete this._optimizelyData[a]}),o&&o.map(a=>{const{id:e,variation:n}=a,s=this.transformExperimentId(e);n&&typeof n=="string"&&(this._optimizelyData[s]=n)}),!0}catch(a){return a instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",a),!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 t=(r=window.optimizely.get("state"))==null?void 0:r.getExperimentStates({isActive:!0});if(t){const o=Object.keys(t).map(a=>{var e,n;return(e=t[a].variation)!=null&&e.name?{id:a,variation:(n=t[a].variation)==null?void 0:n.name}:{id:a,variation:"Original"}});return this.setOptimizelyExperiment({experiments:o},!1),!0}return!1}return!1}catch(t){return t instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",t),!1}}};Object.freeze(X);class bt{constructor(t,o){M(this,"paused");M(this,"queue");M(this,"ul");this.ul=t,this.paused=!1,this.queue=[],this.flush(o)}flush(t){const o=t.length;if(o)for(let a=0;a<o;a++)this.push(t[a])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const t=this.queue.slice();this.empty(),this.flush(t)}push(t){if(this.paused)this.queue.push(t);else if(t instanceof Function)t();else{const o=Array.prototype.slice.call(t,1),a=t[0],e=this.ul[a];e instanceof Function?e.apply(this.ul,o):a&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",a)}}perform(t){if(this.paused){let o=()=>{};const a=new Promise(function(e){o=function(){e(t())}});return this.queue.push(o),a}return t()}empty(){this.queue.length=0}}let tt,rt;const he=r=>{let t=0,o=r.firstElementChild;for(;o;)t+=he(o),o.shadowRoot&&(t+=he(o.shadowRoot)),o=o.nextElementSibling,t++;return t},Ve=()=>{tt.report(he(document.body)),rt.report(document.documentElement.innerHTML.length)},Se=(r,t)=>{const o=performance.now();document.hidden?setTimeout(()=>Se(r,t),r):setTimeout(()=>{const a=performance.now()-o;t.report(a/1e3),setTimeout(()=>Se(r,t),r)},0)};let te,re,ie,ne,Ne,j={};const Y=(r,t=1)=>{const{name:o}=r;j[o]=(j[o]||0)+t},it=r=>{let t=1;return r.childNodes.forEach(o=>{t+=it(o)}),t},Be=r=>{let t=0;return r.forEach(o=>{t+=it(o)}),t},Lt=r=>{switch(r.type){case"childList":return Y(te,Be(r.addedNodes)),void Y(re,Be(r.removedNodes));case"attributes":return void Y(ie);case"characterData":return void Y(ne)}},Ut=r=>r.forEach(Lt),Et=()=>{te.report(j[te.name]||0),re.report(j[re.name]||0),ie.report(j[ie.name]||0),ne.report(j[ne.name]||0),j={}},It=(r=1e3)=>{te=i.registerMetric("sdk_mutations_nodes_added"),re=i.registerMetric("sdk_mutations_nodes_removed"),ie=i.registerMetric("sdk_mutations_attributes_changed"),ne=i.registerMetric("sdk_mutations_character_data"),Ne=new MutationObserver(Ut),Ne.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(Et,r)},kt=({isWeb:r,reportingIntervalSeconds:t,thresholds:o,postMetrics:a})=>{i.registerThresholds(o,(e,n)=>{var s,d;if((s=i.modules.replay)!=null&&s.isReplayRecording()){const p=`Value: ${e} on ${n.metric} violated threshold of ${n.type} ${n.value}`;(d=i.modules.replay)==null||d.disableRecording("Threshold violated",new Error(p),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:n.metric,type:n.type,value:n.value},{metricName:n.metric}),i.disableThresholdChecking()}}),i.initPerformanceReporting({reportingIntervalSeconds:t,postMetrics:a}),r&&(((e=1e3)=>{const n=i.registerMetric("sdk_event_queue_latency_seconds");Se(e,n)})(),((e=1e4)=>{tt=i.registerMetric("sdk_dom_nodes_count"),rt=i.registerMetric("sdk_page_html_characters"),Ve(),setInterval(Ve,e)})(),It())},Rt="test",_t=["popState","pushState","replaceState"];let Ie,G;const oe={},B="!email",nt="pageUrl";let ge=window.location.href;function K(r){var d,p;const{pageUrlEvents:t,interactiveEvents:o,dismissOnPageChange:a,platform:e}=window.UserLeap._config;if(e&&e!=="web")return;ge!==window.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:ge,to:window.location.href}),ge=window.location.href;const n=at().trackStartUrl,s=n?String(n):null;t&&lt(window.location.href),o&&(st(),Dt()),Qe()&&(()=>{if(Z())return;const u=V();u&&(i.checkUrlStillMatching($)||(u.remove(),$=null,f=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((p=(d=i.modules.replay)==null?void 0:d.checkPendingHeatmapsUrl())==null||p.then(u=>{var l;u&&((l=i.modules.replay)==null||l.uploadReadyPendingCaptures(!0))})),!Z()&&a&&s&&s!==window.location.href&&r&&_t.includes(r.type)&&window.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const ot={capture:!0},Dt=()=>{const r=window.UserLeap._config.interactiveEvents.filter(o=>i.checkUrlMatch(o,window.location.href)).map(o=>{const{name:a,properties:e}=o,{selector:n,innerText:s}=e;return n?d=>{if(Me(d.target))try{d.target.closest(n)&&window.UserLeap("track",a)}catch{}return!1}:d=>(Me(d.target)&&d.target.innerText===s&&window.UserLeap("track",a),!1)}),t=o=>r.forEach(a=>a(o));window.UserLeap._config.interactiveEventsHandler=t,window.addEventListener("click",t,ot)},st=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,ot),delete window.UserLeap._config.interactiveEventsHandler};function at(){const r=i.localStorageHelper.getItemObject("userleap.ids");return r&&r[window.UserLeap.envId]||{}}function dt(){if(window.previewMode)return;const r=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map")||{},t=r[window.UserLeap.envId];window.UserLeap.visitorId=t||i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:window.UserLeap.visitorId}),k("vid",window.UserLeap.visitorId),t||(r[window.UserLeap.envId]=window.UserLeap.visitorId,i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",r)),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}function lt(r,t,o,a){var e,n;try{if(r.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:r});const s=(e=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:e.getAttribute("content");(n=i.modules.replay)==null||n.RecordPageView({...s&&{description:s},url:r,referrer:document.referrer,pageTitle:document.title});const d=window.UserLeap._config.pageUrlEvents;let p=!1;if(d&&d.length)for(let l=0;l<d.length&&(p=i.checkUrlMatch(d[l],r),!p);l++);if(!p)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",r);const u={url:r};a&&(u.trackPageView=!0),window.UserLeap._queue.push(["track",nt,t,u,o])}catch(s){s instanceof Error&&(s.stack=r,window.UserLeap.reportError("trackPageView",s)),console.warn("[Sprig] (ERR-428) Failed to track page view",s)}}function xt(){const r="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in r&&(r.pushState=(t=>function(...o){const a=t.apply(this,o),e=new Event("pushState");return window.dispatchEvent(e),K(e),a})(r.pushState)),"replaceState"in r&&(r.replaceState=(t=>function(...o){const a=t.apply(this,o),e=new Event("replaceState");return window.dispatchEvent(e),K(e),a})(r.replaceState)),["hashchange","popstate"].forEach(t=>window.addEventListener(t,K,!0))}async function me(r,t){const o=Le();r&&!t&&(window.UserLeap._config.mode=Rt);const a=ae(i.getHttpHeaders(window.UserLeap)),e=await x(function(n){const s=new URL(_("1",[C],"questions"));return Object.entries(n||{}).forEach(([d,p])=>{p&&s.searchParams.append(d,String(p))}),s.toString()}({desktopDisplay:window.UserLeap._config.desktopDisplay,isMobile:a,previewLanguage:window.UserLeap._config.previewLanguage,surveyid:r==null?void 0:r.surveyId,surveytemplateid:r==null?void 0:r.surveyTemplateId,vid:o}),{shouldDropOnRateLimit:!0});if(!e.ok)return e.reportError&&e.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",e.error),window.UserLeap.reportError("getQuestions",e.error)),{success:!1,surveyState:"no survey"};if(e.json.delay&&await i.delay(e.json.delay),!e.json.isFeedback)return z(e.json,G,Ie);{const{feedbackLabel:n,productConfig:s,surveyUuid:d,feedbackCustomStyles:p}=e.json,{buttonTheme:u,placement:l,desktopDisplay:c}=s;et({customStyles:p,buttonTheme:u,desktopDisplay:c,eventId:0,feedbackLabel:n,placement:l,surveyUuid:d,surveyId:r==null?void 0:r.surveyId},e.json)}}function At(r){if(!r)return;window.UserLeap._config=r,r.mute&&window.UserLeap._queue.pause();const{interactiveEvents:t,pageUrlEvents:o,dismissOnPageChange:a}=r;t&&function(e){let n=e.length;for(;n;){const s=Math.floor(Math.random()*n);n-=1;const d=e[n];e[n]=e[s],e[s]=d}}(t),(t||o||a)&&(xt(),K())}const Ot=function(r){if(!window.UserLeap)return;const t=async(e={})=>{var v,S,h,I,O;const{userId:n,anonymousId:s,metadata:d={},properties:p,showSurveyCallback:u}=e;let{eventName:l}=e;if(window.UserLeap.debugMode&&l!==nt&&console.info("[DEBUG] Sprig track",e),r.mode==="test")return;const c=i.localStorageHelper.getItem("sprig.previewKey")??void 0;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const b="[Sprig] - Skipping tracking without userId";return console.warn(b),{success:!1,message:b,surveyState:"no survey"}}if(!l||l.trim().length===0){l=l?String(l):"";const b="[Sprig] - Invalid event name "+l;return console.warn(b),{success:!1,message:b,surveyState:"no survey"}}const g=G??window.location.href;d.url||(d.url=g),k("trackStartUrl",g),(S=(v=window.UserLeap)==null?void 0:v._config)!=null&&S.optimizelyEnabled&&(J(i.getHttpHeaders(window.UserLeap))||X.getAndSetWebOptimizelyExperiments(),d.optimizelyExperiments=Object.assign({},X.getAllOptimizelyExperiments())),(I=(h=window.UserLeap)==null?void 0:h._config)!=null&&I.launchDarklyEnabled&&(d.launchDarklyFlags=fe.getAllLaunchDarklyVariations()),n&&(window.UserLeap.userId=n),s&&(window.UserLeap.partnerAnonymousId=s),p&&(d.eventProperties=p),(O=i.modules.replay)==null||O.RecordEvent({name:l,url:d.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:l});const m=window.UserLeap.delayingSurvey||Ye()?await x(_("1",[P],"events/batch"),{body:JSON.stringify({events:[{event:l,metadata:d}],previewKey:c}),method:"POST",shouldDropOnRateLimit:!0}):await x(_("1",[P],"events"),{body:JSON.stringify({event:l,metadata:d,previewKey:c}),method:"POST",shouldDropOnRateLimit:!0});if(!m.ok){const b="[Sprig] (ERR-421) Failed to track event";return m.reportError&&(console.warn(b,m.error),m.error&&window.UserLeap.reportError("track",m.error)),{success:!1,message:b,error:m.error,surveyState:"no survey"}}n&&k("uid",n),s&&k("aid",s);const w=m.json;w.invalidPreviewKey&&i.localStorageHelper.removeItem("sprig.previewKey");const E=d.trackPageView?d.url:void 0;return w!=null&&w.feedbackButton&&et(w.feedbackButton,void 0,E),await async function(b,R){var H,T;let U=!0;return!(R&&((H=b==null?void 0:b.json)!=null&&H.surveyId)&&(window.UserLeap.delayingSurvey=!0,U=await R(b.json.surveyId),window.UserLeap.delayingSurvey=!1,!U))&&((T=b==null?void 0:b.json)!=null&&T.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await i.delay(b.json.delay),window.UserLeap.delayingSurvey=!1),U)}(m,u)?function(b){if(!window.UserLeap._config.dismissOnPageChange)return!0;const R=new URL(b),U=new URL(G??window.location.href);return R.hostname===U.hostname&&R.pathname===U.pathname}(g)?z(w,E,Ie):{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"}},o=(e,n)=>{var d;const s=(d=e==null?void 0:e.querySelector(`[id="${Ue}"]`))==null?void 0:d.contentDocument;s&&Q({document:s,elementId:"ul-custom-style",styleString:n})},a={displaySurvey:async e=>(console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyId:e},!0)),_previewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyTemplateId:e},!1)},_reviewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),me({surveyId:e},!1)},previewSurvey(e){a._previewSurvey(e)},reviewSurvey(e){a._reviewSurvey(e)},mute(){window.UserLeap._queue.pause()},unmute(){window.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(e=i.DismissReason.API){window.UserLeap.container&&(e===i.DismissReason.Closed&&window.Sprig.trackHistory&&window.Sprig.trackHistory({event:"closed"}),i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:e,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:e,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}))},async setAttribute(e,n){if(!e||!n&&n!==0&&n!==!1){const s="[Sprig] - Disregarding empty attribute / value provided";return console.warn(s),{success:!1,message:s}}return this.setAttributes({[e]:n})},async setAttributes(e){if(e==null||Object.keys(e).length===0){const n="[Sprig] - Disregarding empty attributes provided";return console.warn(n),{success:!1,message:n}}return this.identifyAndSetAttributes({attributes:e})},async identifyAndSetAttributes(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",e),r.mode==="test")return;if(e===null||typeof e!="object"||!(e.userId||e.anonymousId||e.attributes)){const l="[Sprig] - Disregarding empty payload provided";return console.warn(l),{success:!1,message:l}}const{userId:n,anonymousId:s,attributes:d}=e;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const l="[Sprig] - Skipping tracking without userId";return console.warn(l),{success:!1,message:l}}if(d){d.email&&!d[B]&&(d[B]=d.email,delete d.email);const l=Object.keys(d);for(const c of l)d[c]===oe[c]&&delete d[c]}if(!(d&&Object.keys(d).length!==0||n&&window.UserLeap.userId!==n||s&&window.UserLeap.partnerAnonymousId!==s))return{success:!0};const p={};let u;return n&&(p.userId=window.UserLeap.userId=n),s&&(p.partnerAnonymousId=window.UserLeap.partnerAnonymousId=s),d&&Object.keys(d).length>0?(u=await x(_("1",[C,P],"attributes"),{body:JSON.stringify(d),method:"PUT"}),u.ok?Object.assign(oe,d):u.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",u.error),u.error&&window.UserLeap.reportError("identifyAndSetAttributes",u.error))):u=await x(_("1",[C,P]),{body:JSON.stringify(p),method:"PUT"}),d&&d[B]&&(window.UserLeap.email=d[B]),u.ok&&(n&&k("uid",n),s&&k("aid",s)),{success:!!u.ok}},async removeAttributes(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",e),r.mode==="test")return;if(e==null||e.length===0){const s="[Sprig] - Disregarding empty attributes provided";return console.warn(s),{success:!1,message:s}}if(r.requireUserIdForTracking&&!window.UserLeap.userId){const s="[Sprig] - Skipping tracking without userId";return console.warn(s),{success:!1,message:s}}const n=await x(_("1",[C,P],"attributes"),{body:JSON.stringify({delete:e}),method:"DELETE"});return!n.ok&&n.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",n.error),n.error&&window.UserLeap.reportError("removeAttributes",n.error)),{success:!!n.ok}},async addSurveyListener(e){i.eventEmitter.on(i.SprigEvent.SurveyLifeCycle,e)},async removeSurveyListener(e){i.eventEmitter.removeListener(i.SprigEvent.SurveyLifeCycle,e)},async addListener(e,n){i.eventEmitter.on(e,n)},async removeListener(e,n){i.eventEmitter.removeListener(e,n)},async removeAllListeners(){i.eventEmitter.removeAllListeners()},setPreviewKey(e){e&&typeof e=="string"&&i.localStorageHelper.isStorageAvailable&&e&&i.localStorageHelper.setItem("sprig.previewKey",e)},async setUserId(e){var d;if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",e),e==null){const p=`[Sprig] - Invalid userId ${e}`;return console.warn(p),{success:!1,message:p}}if(r.mode==="test"||e===window.UserLeap.userId)return;window.UserLeap.userId=e;const n=window.UserLeap.visitorId,s=await x(_("1",[C,P]),{body:JSON.stringify({userId:e}),method:"PUT"});s.ok?(n!==window.UserLeap.visitorId&&((d=i.modules.replay)==null||d.clearUserReplayData()),k("uid",e)):s.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",s.error),s.error&&window.UserLeap.reportError("setUserId",s.error))},async setPartnerAnonymousId(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",e),e==null){const n=`[Sprig] - Invalid partnerAnonymousId ${e}`;return console.warn(n),{success:!1,message:n}}return window.UserLeap.partnerAnonymousId=e,k("aid",e),{success:!0}},track:async(e,n,s={},d=void 0)=>t({eventName:e,properties:n,metadata:s,showSurveyCallback:d}),identifyAndTrack:async e=>await t(e),trackPageView(e,n=void 0,s=void 0,d=!0){G=e,lt(e,n,s,d)},applyFeedbackStyles({button:e="",view:n=""}){window.UserLeap.feedbackCustomStyles=n,document.getElementById("sprig-feedback-style")&&Q({document,elementId:"ul-custom-style",styleString:e,nonce:window.UserLeap.styleNonce}),o(document.querySelector(".ul-container-feedback"),n)},applyStyles(e){window.UserLeap.customStyles=e,o(window.UserLeap.container,e)},setWindowDimensions(e,n){var g,m;const s=typeof e=="string"?parseInt(e,10):e,d=typeof n=="string"?parseInt(n,10):n;isNaN(s)||isNaN(d)||(window.UserLeap.windowDimensions={width:s,height:d});const p=i.getHttpHeaders(window.UserLeap),u=ae(p),l=p["userleap-platform"]==="web";if(!window.UserLeap.frameId)return;const c=document.getElementById(window.UserLeap.frameId);c&&(window.UserLeap.useMobileStyling&&((g=window.UserLeap.windowDimensions)!=null&&g.width&&(c.style.width=`${window.UserLeap.windowDimensions.width}px`),(m=window.UserLeap.windowDimensions)!=null&&m.height&&(c.style.maxHeight=window.UserLeap.windowDimensions.height-20+"px"),c.contentDocument&&(c.style.height=String(Je(c.contentDocument,l&&!u,i.shouldDirectEmbed(p))[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:c.clientWidth,contentFrameHeight:c.clientHeight,"survey.id":parseInt(window.UserLeap.container.dataset.studyId)}))},logoutUser(){var e;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),i.breadcrumbsLogger.info("LogOut",{vid:window.UserLeap.visitorId,userId:window.UserLeap.userId}),window.UserLeap.visitorId=null,window.UserLeap.userId=null,window.UserLeap.partnerAnonymousId=null,window.UserLeap.token=null,window.UserLeap.email=null,i.localStorageHelper.removeItem("userleap.ids"),window.UserLeap._queue.isPaused()&&window.UserLeap._queue.empty(),dt(),(e=i.modules.replay)==null||e.clearUserReplayData(),window.UserLeap._queue.unpause()},teardown(){["hashchange","popstate"].forEach(e=>window.removeEventListener(e,K,!0)),window.UserLeap._config.interactiveEvents&&st(),window.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete window.UserLeap,delete window.Sprig,delete window._Sprig},integrateOptimizely(e,n=!0){var s,d;if((d=(s=window.UserLeap)==null?void 0:s._config)!=null&&d.optimizelyEnabled)try{const p=typeof e=="string"?JSON.parse(e):e;X.setOptimizelyExperiment(p,n)}catch(p){console.warn("[Sprig] Error with integrating Optimizely data"),p instanceof Error&&window.UserLeap.reportError("integrateOptimizely",p)}else console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.")},integrateOptimizelyClient(e){var n,s;if(!((s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.optimizelyEnabled))return void console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");e.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",({experiment:d,variation:p})=>{const u={experiments:[{id:d.id,variation:p.key}]};window.UserLeap("integrateOptimizely",u,!1)})},importLaunchDarklyData(e){var n,s;(s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.launchDarklyEnabled?fe.setLDFlagsVariations(e):console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.")},setVisitorAttribute:(e,n)=>(console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),a.setAttribute(e,n)),setEmail:async e=>a.setAttribute(B,e),setVisitorEmail:async e=>(console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),a.setEmail(e)),_generateVideoUploadUrl:async e=>async function(n){var d;if(!n)return;const s=`${window.UserLeap._API_URL}/2/environments/integrations/upload`;try{const p=await fetch(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(p.ok){const u=await p.json();return(d=u==null?void 0:u.upload)==null?void 0:d.url}return null}catch(p){console.warn("[Sprig] Error with generating video upload url"),p instanceof Error&&window.UserLeap.reportError("generateVideoUploadUrl",p)}}(e),_reportMetric(e,n){i.reportAndRegister(e,n)},_completeSessionReplay:async({surveyId:e,responseGroupUuid:n,eventDigest:s})=>{var d;return i.modules.replay?(d=i.modules.replay)==null?void 0:d._completeSessionReplay({surveyId:e,responseGroupUuid:n,eventDigest:s,headers:i.getHttpHeaders(window.UserLeap)}):(window.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)},pauseReplayRecording(){var e,n,s,d;(n=(e=i.modules.replay)==null?void 0:e.isReplayPaused)!=null&&n.call(e)||((d=(s=i.modules.replay)==null?void 0:s.recordReplayPaused)==null||d.call(s))},resumeReplayRecording(){var e,n,s,d,p,u;(n=(e=i.modules.replay)==null?void 0:e.isReplayPaused)!=null&&n.call(e)&&((d=(s=i.modules.replay)==null?void 0:s.recordReplayResumed)==null||d.call(s),(u=(p=i.modules.replay)==null?void 0:p.recordFullSnapshot)==null||u.call(p))}};Object.assign(window.UserLeap,a)};async function Pt(r,t,o={},a={}){const e=window.__cfg&&window.__cfg.mode,n=Le(),s=window.UserLeap.envId,d=window.document.documentElement,p={mode:e,screenWidth:window.screen.width,screenHeight:window.screen.height,clientWidth:d.clientWidth,clientHeight:d.clientHeight,location:G??window.location.href,language:window.navigator.language,...o},u={action:r,breadcrumbs:i.breadcrumbsLogger.breadcrumbs,err:{message:`${t==null?void 0:t.name} - ${t==null?void 0:t.message}`,stack:t==null?void 0:t.stack},meta:p,vid:n,envId:s,...a};(await x(_("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(u),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",t)}function Ct(r={}){var a;(a=window.SprigLoggerCallback)==null||a.call(window,"Initializing Sprig");const t=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";async function o(){var c,g,m,w,E;if(window.UserLeap.loaded)return;if((c=window.SprigLoggerCallback)==null||c.call(window,"Loading Sprig"),window.UserLeap.reportError=Pt,window.UserLeap.loaded=!0,window.UserLeap._config=Object.assign({},r,window.UserLeap.config),window.UserLeap.delayingSurvey=!1,window.UserLeap._config&&typeof window.UserLeap._config=="object")for(const y in window.UserLeap._config)window.UserLeap[y]=window.UserLeap._config[y];if(window.Sprig.outstandingTransactionLimit!==void 0&&(r.outstandingTransactionLimit=window.Sprig.outstandingTransactionLimit),!window.UserLeap.envId){if(!window.UserLeap.appId)throw new Error("Missing Environment id");window.UserLeap.envId=window.UserLeap.appId}window.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const e=at(),n=window.UserLeap.sampleRate;let s=e.sampled;if(n){if(s===null&&(s=Math.random()<n,k("sampled",s)),!s)return}else s!==null&&k("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const d=[...window.UserLeap._queue];window.UserLeap._queue=new bt(window.UserLeap,[]),window.UserLeap._queue.pause();for(let y=0;y<d.length;y++)window.UserLeap._queue.push(d[y]);const p=e.token;p?(window.UserLeap.token=p,window.UserLeap.visitorId=e.vid??null,window.UserLeap.userId=e.uid??null,window.UserLeap.partnerAnonymousId=e.aid??null):dt();const u=J(i.getHttpHeaders(window.UserLeap));(g=window.SprigLoggerCallback)==null||g.call(window,"Sprig fetching config");const l=await async function(y){var I,O;const v=i.getHttpHeaders(window.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const S=await i.sprigFetch(_("1",[C],"config"),{headers:v});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!S.ok)return(I=window.SprigLoggerCallback)==null||I.call(window,"Sprig config fetch failed"),S.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",S.error),S.error&&window.UserLeap.reportError("applyRemoteConfig",S.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),y;const h=S.json;return h!=null&&h.disabled?((O=window.SprigLoggerCallback)==null||O.call(window,"Sprig config fetch disabled"),i.killNetworkRequests(`Disabled: ${h.disabled}`),{disabled:h.disabled}):Object.assign({},h,y)}(r);if((m=window.SprigLoggerCallback)==null||m.call(window,"Sprig fetched config"),kt({isWeb:!u,reportingIntervalSeconds:l.metricsReportingEnabled||l.mobileMetricsReportingEnabled?l.metricsReportingIntervalSeconds:0,thresholds:l.metricThresholds,postMetrics:async y=>{var v;await x(_("1",[C],"metrics"),{body:y,method:"POST",headers:{"x-ul-replay-enabled":`${!!((v=i.modules.replay)!=null&&v.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),!u){const y=l.alwaysOnReplay?{userAgent:window.navigator.userAgent,surveyId:l.alwaysOnReplay.surveyId,responseGroupUuid:l.alwaysOnReplay.responseGroupUuid,sdkVersion:"2.34.2",maxDurationSeconds:l.alwaysOnReplay.maxDurationSeconds}:void 0;await((w=i.modules.replay)==null?void 0:w.initializeReplay({maxReplayDurationSeconds:l.maxReplayDurationSeconds,maxInflightRequests:window.UserLeap.maxInflightReplayRequests??2,replaySettings:l.replaySettings,apiUrl:window.UserLeap._API_URL,alwaysOnConfig:y})),Ie=l.replaySettings}Ot(l),await At(l),window.UserLeap._queue.unpause(),(E=window.SprigLoggerCallback)==null||E.call(window,"SdkReady"),i.eventEmitter.emit(i.SprigEvent.SDKReady,{mobileMetricsReportingEnabled:!!l.mobileMetricsReportingEnabled,metricsReportingInterval:l.metricsReportingIntervalSeconds||0,metricsThresholds:l.metricThresholds||[],maxMobileReplayDurationSeconds:l.maxMobileReplayDurationSeconds,mobileReplaySettings:l.mobileReplaySettings}),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId}),i.eventEmitter.on(i.SprigEvent.VisitorIDUpdated,()=>{for(const y in oe)delete oe[y]})}window.UserLeap.UPDATES=i.EVENTS,window.UserLeap("setPreviewKey",t),document.readyState==="complete"?o():window.attachEvent?window.attachEvent("onload",o):window.addEventListener("load",()=>{o()},!1)}class se{constructor(){M(this,"UPDATES",i.EVENTS)}displaySurvey(t){window.Sprig("displaySurvey",t)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(t,o){window.Sprig("setAttribute",t,o)}setAttributes(t){window.Sprig("setAttributes",t)}identifyAndSetAttributes(t){window.Sprig("identifyAndSetAttributes",t)}removeAttributes(t){window.Sprig("removeAttributes",t)}addListener(t,o){window.Sprig("addListener",t,o)}removeListener(t,o){window.Sprig("removeListener",t,o)}removeAllListeners(){window.Sprig("removeAllListeners")}setEmail(t){window.Sprig("setAttribute","!email",t)}setUserId(t){window.Sprig("setUserId",t)}setPartnerAnonymousId(t){window.Sprig("setPartnerAnonymousId",t)}track(t,o={},a={}){window.Sprig("track",t,o,a)}identifyAndTrack(t){window.Sprig("identifyAndTrack",t)}trackPageView(t,o,a){window.Sprig("trackPageView",t,o,a)}applyStyles(t){window.Sprig("applyStyles",t)}setWindowDimensions(t,o){window.Sprig("setWindowDimensions",t,o)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}pauseReplayRecording(){window.Sprig("pauseReplayRecording")}resumeReplayRecording(){window.Sprig("resumeReplayRecording")}}const be={configure:r=>{if(!r.envId&&!r.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(r.envId||(r.envId=r.environmentId??""),r.installationMethod="web-npm",window.Sprig)return window.Sprig;window.Sprig=function(){window.Sprig._queue.push(arguments)},Object.getOwnPropertyNames(se.prototype).map(o=>{o!=="constructor"&&(window.Sprig[o]=se.prototype[o])});const t=window.Sprig;return t.appId=r.envId,t._queue=[],window.UserLeap=t,Ct(r),window.Sprig}},Ht={sprig:be,SprigAPI:se,configure:be.configure};exports.APP_ID="ul-app",exports.ConflictingWidgets=We,exports.DEFAULT_BORDER_COLOR="#e6e6e6",exports.DEFAULT_WIDTH_PX=360,exports.EMBED_MOBILE_MAX_WIDTH=1030,exports.ERROR_BORDER_COLOR="#bd282a",exports.SprigAPI=se,exports.calculateFrameDimensions=Je,exports.core=Ht,exports.isHTMLElement=D,exports.resetScrollPosition=r=>{const t=r.querySelector(".ul-card__container");t&&(t.scrollTop=0)},exports.setSurveyStyles=Q,exports.sprig=be;
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-Cc-ZSIZD.cjs"),e=require("./core-i4jnjCfb.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.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 i=require("./metricsReporter-Dy3EDEs8.cjs"),e=require("./core-B84vH8bq.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.SprigEvent,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig;
package/dist/core.d.ts CHANGED
@@ -1020,7 +1020,7 @@ declare const BOOLEAN_OPERATOR: {
1020
1020
  };
1021
1021
  type BooleanOperator = (typeof BOOLEAN_OPERATOR)[keyof typeof BOOLEAN_OPERATOR];
1022
1022
 
1023
- type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1023
+ type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "rankorder" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1024
1024
  type ConceptUrl = string | null;
1025
1025
  interface BaseCard {
1026
1026
  name: number;
@@ -1028,8 +1028,10 @@ interface BaseCard {
1028
1028
  updatedAt: string;
1029
1029
  value?: unknown;
1030
1030
  type: CardType;
1031
+ groupId?: number;
1031
1032
  }
1032
1033
  type Comparator = "answered" | "contains" | "notcontains" | "list_dni" | "eq" | "given_up" | "gt" | "gte" | "lt" | "lte" | "list_all" | "list_alo" | "list_exact" | "neq" | "partial" | "skipped";
1034
+ type Randomize = "none" | "all";
1033
1035
  type DefaultComparator = Extract<Comparator, "answered" | "skipped">;
1034
1036
  type RoutingOption<C extends Comparator = DefaultComparator> = OldRoutingOption<C> | GroupRoutingOption;
1035
1037
  type OldRoutingOption<C extends Comparator = DefaultComparator> = {
@@ -1052,7 +1054,12 @@ type RoutingGroupOption = {
1052
1054
  type RoutingOptions<C extends Comparator = DefaultComparator> = RoutingOption<C | DefaultComparator>[] | null;
1053
1055
  /** @example <p>Body</p> */
1054
1056
  type RichTextBody = string;
1055
- type PromptActionType = "CONTINUE" | "EXTERNAL";
1057
+ declare enum PromptActionTypeEnum {
1058
+ CONTINUE = "CONTINUE",
1059
+ EXTERNAL = "EXTERNAL",
1060
+ NO_BUTTON = "NO_BUTTON"
1061
+ }
1062
+ type PromptActionType = keyof typeof PromptActionTypeEnum;
1056
1063
  interface TextUrlPromptCard extends BaseCard {
1057
1064
  props: {
1058
1065
  message: string;
@@ -1235,7 +1242,7 @@ interface CommonMultipleChoiceProps {
1235
1242
  * Text when multiple items are selected, such as "2 items selected" / "3 items selected"
1236
1243
  */
1237
1244
  dropdownMultiselectedText?: string;
1238
- randomize: "none" | "all";
1245
+ randomize: Randomize;
1239
1246
  required: boolean;
1240
1247
  };
1241
1248
  }
@@ -1264,7 +1271,7 @@ interface MatrixCard extends BaseCard {
1264
1271
  label: string;
1265
1272
  value: string;
1266
1273
  }[];
1267
- randomize: "none" | "all";
1274
+ randomize: Randomize;
1268
1275
  required: boolean;
1269
1276
  };
1270
1277
  };
@@ -1272,26 +1279,49 @@ interface MatrixCard extends BaseCard {
1272
1279
  }
1273
1280
  interface NPSCard extends BaseCard {
1274
1281
  props: {
1275
- labels: {
1276
- left: string;
1277
- right: string;
1278
- };
1282
+ labels: Labels;
1279
1283
  message: string;
1280
1284
  options: [];
1281
1285
  properties: {
1282
1286
  buttonText?: string;
1283
1287
  captionText: string;
1284
1288
  conceptUrl: null;
1285
- labels: {
1286
- left: string;
1287
- right: string;
1288
- };
1289
+ labels: Labels;
1289
1290
  required: boolean;
1290
1291
  };
1291
1292
  routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1292
1293
  };
1293
1294
  type: "nps";
1294
1295
  }
1296
+ interface RankOrderOption {
1297
+ createdAt: string;
1298
+ deletedAt: null;
1299
+ id: number;
1300
+ label: string;
1301
+ order: number;
1302
+ productId: number;
1303
+ surveyId: number;
1304
+ surveyQuestionId: number;
1305
+ updatedAt: string;
1306
+ value: string;
1307
+ }
1308
+ interface RankOderType extends BaseCard {
1309
+ props: {
1310
+ labels: Labels;
1311
+ message: string;
1312
+ options: RankOrderOption[];
1313
+ properties: {
1314
+ captionText: string;
1315
+ buttonText?: string;
1316
+ conceptUrl: ConceptUrl;
1317
+ labels: Labels;
1318
+ required: boolean;
1319
+ randomize: Randomize;
1320
+ };
1321
+ routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1322
+ };
1323
+ type: "rankorder";
1324
+ }
1295
1325
  interface VideoVoiceCard extends BaseCard {
1296
1326
  props: {
1297
1327
  message: string;
@@ -1311,7 +1341,7 @@ interface VideoVoiceCard extends BaseCard {
1311
1341
  };
1312
1342
  type: "videovoice";
1313
1343
  }
1314
- type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | VideoVoiceCard;
1344
+ type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | RankOderType | VideoVoiceCard;
1315
1345
 
1316
1346
  type InteractiveMatchType = "exactly" | "legacy";
1317
1347
  type PageUrlMatchType = "contains" | "exactly" | "legacy" | "notContains" | "regex" | "startsWith";
@@ -1340,7 +1370,7 @@ declare enum DismissReason {
1340
1370
  API = "api",// JS called Sprig('dismissActiveSurvey')
1341
1371
  Override = "override"
1342
1372
  }
1343
- type StudyType = "feedbackButton" | "inProductSurvey";
1373
+ type StudyType = "feedbackButton" | "inProductSurvey" | "longFormSurvey";
1344
1374
  declare enum SprigEvent {
1345
1375
  ReplayCapture = "replay.capture",
1346
1376
  ReplayPaused = "replay.paused",
@@ -1676,6 +1706,7 @@ interface Config extends MobileReplayConfig {
1676
1706
  mode?: string;
1677
1707
  mute?: boolean;
1678
1708
  optimizelyEnabled?: boolean;
1709
+ outstandingTransactionLimit?: number | null;
1679
1710
  overlayStyle: "light";
1680
1711
  overlayStyleMobile: "none";
1681
1712
  pageUrlEvents: PageUrlEvent[];
@@ -1946,6 +1977,7 @@ declare namespace sprigConfig {
1946
1977
  locale?: string;
1947
1978
  maxHeight?: number | string;
1948
1979
  maxInflightReplayRequests?: number;
1980
+ outstandingTransactionLimit?: number | null;
1949
1981
  mobileHeadersJSON?: string;
1950
1982
  nonce?: string;
1951
1983
  partnerAnonymousId: string | null;
@@ -2032,12 +2064,17 @@ declare class SprigAPI {
2032
2064
  SURVEY_WILL_PRESENT: SprigEvent;
2033
2065
  QUESTION_ANSWERED: SprigEvent;
2034
2066
  REPLAY_CAPTURE: SprigEvent;
2035
- CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent;
2067
+ CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent; /**
2068
+ * Tracks a page view with the provided URL and additional event properties.
2069
+ */
2036
2070
  VISITOR_ID_UPDATED: SprigEvent;
2037
2071
  DATA: {
2038
2072
  DISMISS_REASONS: {
2039
2073
  API: DismissReason;
2040
2074
  CLOSED: DismissReason;
2075
+ /**
2076
+ * Apply a css string representing the customized styles
2077
+ */
2041
2078
  COMPLETE: DismissReason;
2042
2079
  PAGE_CHANGE: DismissReason;
2043
2080
  OVERRIDE: DismissReason;
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D as r, S as e } from "./metricsReporter-CEzz54S2.js";
2
- import { S as o, c as p, s as t } from "./core-DE6rbUl1.js";
1
+ import { D as r, S as e } from "./metricsReporter-BzXI6BiM.js";
2
+ import { S as o, c as p, s as t } from "./core-9nFfVPj6.js";
3
3
  export {
4
4
  r as DismissReason,
5
5
  o as SprigAPI,
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-i4jnjCfb.cjs");require("./replay.cjs");const r=require("./metricsReporter-Cc-ZSIZD.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-B84vH8bq.cjs");require("./replay.cjs");const r=require("./metricsReporter-Dy3EDEs8.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
@@ -1020,7 +1020,7 @@ declare const BOOLEAN_OPERATOR: {
1020
1020
  };
1021
1021
  type BooleanOperator = (typeof BOOLEAN_OPERATOR)[keyof typeof BOOLEAN_OPERATOR];
1022
1022
 
1023
- type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1023
+ type CardType = "consentlegal" | "likert" | "matrix" | "multiplechoice" | "multipleselect" | "nps" | "open" | "rankorder" | "recordedtask" | "texturlprompt" | "thanks" | "uploading" | "videovoice";
1024
1024
  type ConceptUrl = string | null;
1025
1025
  interface BaseCard {
1026
1026
  name: number;
@@ -1028,8 +1028,10 @@ interface BaseCard {
1028
1028
  updatedAt: string;
1029
1029
  value?: unknown;
1030
1030
  type: CardType;
1031
+ groupId?: number;
1031
1032
  }
1032
1033
  type Comparator = "answered" | "contains" | "notcontains" | "list_dni" | "eq" | "given_up" | "gt" | "gte" | "lt" | "lte" | "list_all" | "list_alo" | "list_exact" | "neq" | "partial" | "skipped";
1034
+ type Randomize = "none" | "all";
1033
1035
  type DefaultComparator = Extract<Comparator, "answered" | "skipped">;
1034
1036
  type RoutingOption<C extends Comparator = DefaultComparator> = OldRoutingOption<C> | GroupRoutingOption;
1035
1037
  type OldRoutingOption<C extends Comparator = DefaultComparator> = {
@@ -1052,7 +1054,12 @@ type RoutingGroupOption = {
1052
1054
  type RoutingOptions<C extends Comparator = DefaultComparator> = RoutingOption<C | DefaultComparator>[] | null;
1053
1055
  /** @example <p>Body</p> */
1054
1056
  type RichTextBody = string;
1055
- type PromptActionType = "CONTINUE" | "EXTERNAL";
1057
+ declare enum PromptActionTypeEnum {
1058
+ CONTINUE = "CONTINUE",
1059
+ EXTERNAL = "EXTERNAL",
1060
+ NO_BUTTON = "NO_BUTTON"
1061
+ }
1062
+ type PromptActionType = keyof typeof PromptActionTypeEnum;
1056
1063
  interface TextUrlPromptCard extends BaseCard {
1057
1064
  props: {
1058
1065
  message: string;
@@ -1235,7 +1242,7 @@ interface CommonMultipleChoiceProps {
1235
1242
  * Text when multiple items are selected, such as "2 items selected" / "3 items selected"
1236
1243
  */
1237
1244
  dropdownMultiselectedText?: string;
1238
- randomize: "none" | "all";
1245
+ randomize: Randomize;
1239
1246
  required: boolean;
1240
1247
  };
1241
1248
  }
@@ -1264,7 +1271,7 @@ interface MatrixCard extends BaseCard {
1264
1271
  label: string;
1265
1272
  value: string;
1266
1273
  }[];
1267
- randomize: "none" | "all";
1274
+ randomize: Randomize;
1268
1275
  required: boolean;
1269
1276
  };
1270
1277
  };
@@ -1272,26 +1279,49 @@ interface MatrixCard extends BaseCard {
1272
1279
  }
1273
1280
  interface NPSCard extends BaseCard {
1274
1281
  props: {
1275
- labels: {
1276
- left: string;
1277
- right: string;
1278
- };
1282
+ labels: Labels;
1279
1283
  message: string;
1280
1284
  options: [];
1281
1285
  properties: {
1282
1286
  buttonText?: string;
1283
1287
  captionText: string;
1284
1288
  conceptUrl: null;
1285
- labels: {
1286
- left: string;
1287
- right: string;
1288
- };
1289
+ labels: Labels;
1289
1290
  required: boolean;
1290
1291
  };
1291
1292
  routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1292
1293
  };
1293
1294
  type: "nps";
1294
1295
  }
1296
+ interface RankOrderOption {
1297
+ createdAt: string;
1298
+ deletedAt: null;
1299
+ id: number;
1300
+ label: string;
1301
+ order: number;
1302
+ productId: number;
1303
+ surveyId: number;
1304
+ surveyQuestionId: number;
1305
+ updatedAt: string;
1306
+ value: string;
1307
+ }
1308
+ interface RankOderType extends BaseCard {
1309
+ props: {
1310
+ labels: Labels;
1311
+ message: string;
1312
+ options: RankOrderOption[];
1313
+ properties: {
1314
+ captionText: string;
1315
+ buttonText?: string;
1316
+ conceptUrl: ConceptUrl;
1317
+ labels: Labels;
1318
+ required: boolean;
1319
+ randomize: Randomize;
1320
+ };
1321
+ routingOptions: RoutingOptions<"eq" | "gt" | "gte" | "lt" | "lte" | "neq">;
1322
+ };
1323
+ type: "rankorder";
1324
+ }
1295
1325
  interface VideoVoiceCard extends BaseCard {
1296
1326
  props: {
1297
1327
  message: string;
@@ -1311,7 +1341,7 @@ interface VideoVoiceCard extends BaseCard {
1311
1341
  };
1312
1342
  type: "videovoice";
1313
1343
  }
1314
- type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | VideoVoiceCard;
1344
+ type Card = TextUrlPromptCard | ConsentLegalCard | RecordedTaskCard | LikertCard | OpenTextCard | MatrixCard | MultipleChoiceSingleSelectCard | MultipleChoiceMultiSelectCard | NPSCard | RankOderType | VideoVoiceCard;
1315
1345
 
1316
1346
  type InteractiveMatchType = "exactly" | "legacy";
1317
1347
  type PageUrlMatchType = "contains" | "exactly" | "legacy" | "notContains" | "regex" | "startsWith";
@@ -1340,7 +1370,7 @@ declare enum DismissReason {
1340
1370
  API = "api",// JS called Sprig('dismissActiveSurvey')
1341
1371
  Override = "override"
1342
1372
  }
1343
- type StudyType = "feedbackButton" | "inProductSurvey";
1373
+ type StudyType = "feedbackButton" | "inProductSurvey" | "longFormSurvey";
1344
1374
  declare enum SprigEvent {
1345
1375
  ReplayCapture = "replay.capture",
1346
1376
  ReplayPaused = "replay.paused",
@@ -1676,6 +1706,7 @@ interface Config extends MobileReplayConfig {
1676
1706
  mode?: string;
1677
1707
  mute?: boolean;
1678
1708
  optimizelyEnabled?: boolean;
1709
+ outstandingTransactionLimit?: number | null;
1679
1710
  overlayStyle: "light";
1680
1711
  overlayStyleMobile: "none";
1681
1712
  pageUrlEvents: PageUrlEvent[];
@@ -1946,6 +1977,7 @@ declare namespace sprigConfig {
1946
1977
  locale?: string;
1947
1978
  maxHeight?: number | string;
1948
1979
  maxInflightReplayRequests?: number;
1980
+ outstandingTransactionLimit?: number | null;
1949
1981
  mobileHeadersJSON?: string;
1950
1982
  nonce?: string;
1951
1983
  partnerAnonymousId: string | null;
@@ -2032,12 +2064,17 @@ declare class SprigAPI {
2032
2064
  SURVEY_WILL_PRESENT: SprigEvent;
2033
2065
  QUESTION_ANSWERED: SprigEvent;
2034
2066
  REPLAY_CAPTURE: SprigEvent;
2035
- CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent;
2067
+ CLOSE_SURVEY_ON_OVERLAY_CLICK: SprigEvent; /**
2068
+ * Tracks a page view with the provided URL and additional event properties.
2069
+ */
2036
2070
  VISITOR_ID_UPDATED: SprigEvent;
2037
2071
  DATA: {
2038
2072
  DISMISS_REASONS: {
2039
2073
  API: DismissReason;
2040
2074
  CLOSED: DismissReason;
2075
+ /**
2076
+ * Apply a css string representing the customized styles
2077
+ */
2041
2078
  COMPLETE: DismissReason;
2042
2079
  PAGE_CHANGE: DismissReason;
2043
2080
  OVERRIDE: DismissReason;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { S as i, c as o, s as p } from "./core-DE6rbUl1.js";
1
+ import { S as i, c as o, s as p } from "./core-9nFfVPj6.js";
2
2
  import "./replay.js";
3
- import { D as t, S as m } from "./metricsReporter-CEzz54S2.js";
3
+ import { D as t, S as m } from "./metricsReporter-BzXI6BiM.js";
4
4
  export {
5
5
  t as DismissReason,
6
6
  i as SprigAPI,