@sprig-technologies/sprig-browser 2.34.2 → 2.36.0
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.
- package/dist/{core-B84vH8bq.cjs → core-B-mNVA8c.cjs} +2 -2
- package/dist/{core-9nFfVPj6.js → core-PNM_2mYx.js} +3 -3
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +4 -0
- package/dist/core.js +2 -2
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +4 -0
- package/dist/index.js +2 -2
- package/dist/{metricsReporter-BzXI6BiM.js → metricsReporter-B_p_qsZJ.js} +1 -1
- package/dist/{metricsReporter-Dy3EDEs8.cjs → metricsReporter-CWGtDAqh.cjs} +1 -1
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +1 -1
- package/dist/{view-CDp4O3a5.js → view-C3-nqngP.js} +1259 -1169
- package/dist/view-Cji0PL_w.cjs +669 -0
- package/package.json +1 -1
- package/dist/view-DJLfkjCB.cjs +0 -669
|
@@ -1,4 +1,4 @@
|
|
|
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=`
|
|
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-CWGtDAqh.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-Cji0PL_w.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>
|
|
@@ -9,4 +9,4 @@
|
|
|
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&<(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;
|
|
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&<(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.36.0",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;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
var It = Object.defineProperty;
|
|
2
2
|
var kt = (r, t, n) => t in r ? It(r, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : r[t] = n;
|
|
3
3
|
var W = (r, t, n) => kt(r, typeof t != "symbol" ? t + "" : t, n);
|
|
4
|
-
import { l as x, g as P, s as et, e as y, S as w, v as tt, m as S, b as q, h as rt, E as re, D as M, c as Et, r as $, i as _t, j as Rt, k as xt, n as He, o as Ve, d as Dt, a as At, p as it, q as nt } from "./metricsReporter-
|
|
4
|
+
import { l as x, g as P, s as et, e as y, S as w, v as tt, m as S, b as q, h as rt, E as re, D as M, c as Et, r as $, i as _t, j as Rt, k as xt, n as He, o as Ve, d as Dt, a as At, p as it, q as nt } from "./metricsReporter-B_p_qsZJ.js";
|
|
5
5
|
const nr = 360, or = "ul-app", sr = "#e6e6e6", ar = "#bd282a", dr = 1030, We = () => {
|
|
6
6
|
try {
|
|
7
7
|
return window.parent.Intercom;
|
|
@@ -104,7 +104,7 @@ const X = async (r, t, n) => {
|
|
|
104
104
|
window.UserLeap.container && Object.assign(window.UserLeap.container.style, { display: "flex" });
|
|
105
105
|
};
|
|
106
106
|
if (G.installationMethod === "web-npm" || G.installationMethod === "web-npm-bundled") {
|
|
107
|
-
const { default: I } = await import("./view-
|
|
107
|
+
const { default: I } = await import("./view-C3-nqngP.js");
|
|
108
108
|
I.configure(G), H && window.UserLeap.container && Te();
|
|
109
109
|
} else ye && (me.src = ye, H && me.addEventListener("load", () => {
|
|
110
110
|
window.UserLeap.container && Te();
|
|
@@ -850,7 +850,7 @@ function tr(r = {}) {
|
|
|
850
850
|
var v;
|
|
851
851
|
await O(A("1", [z], "metrics"), { body: f, method: "POST", headers: { "x-ul-replay-enabled": `${!!((v = S.replay) != null && v.isReplayRecording())}` }, shouldDropOnRateLimit: !0 });
|
|
852
852
|
} }), !p) {
|
|
853
|
-
const f = d.alwaysOnReplay ? { userAgent: window.navigator.userAgent, surveyId: d.alwaysOnReplay.surveyId, responseGroupUuid: d.alwaysOnReplay.responseGroupUuid, sdkVersion: "2.
|
|
853
|
+
const f = d.alwaysOnReplay ? { userAgent: window.navigator.userAgent, surveyId: d.alwaysOnReplay.surveyId, responseGroupUuid: d.alwaysOnReplay.responseGroupUuid, sdkVersion: "2.36.0", maxDurationSeconds: d.alwaysOnReplay.maxDurationSeconds } : void 0;
|
|
854
854
|
await ((u = S.replay) == null ? void 0 : u.initializeReplay({ maxReplayDurationSeconds: d.maxReplayDurationSeconds, maxInflightRequests: window.UserLeap.maxInflightReplayRequests ?? 2, replaySettings: d.replaySettings, apiUrl: window.UserLeap._API_URL, alwaysOnConfig: f })), Oe = d.replaySettings;
|
|
855
855
|
}
|
|
856
856
|
Zt(d), await Xt(d), window.UserLeap._queue.unpause(), (E = window.SprigLoggerCallback) == null || E.call(window, "SdkReady"), y.emit(w.SDKReady, { mobileMetricsReportingEnabled: !!d.mobileMetricsReportingEnabled, metricsReportingInterval: d.metricsReportingIntervalSeconds || 0, metricsThresholds: d.metricThresholds || [], maxMobileReplayDurationSeconds: d.maxMobileReplayDurationSeconds, mobileReplaySettings: d.mobileReplaySettings }), y.emit(w.VisitorIDUpdated, { visitorId: window.UserLeap.visitorId }), y.on(w.VisitorIDUpdated, () => {
|
package/dist/core.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-CWGtDAqh.cjs"),e=require("./core-B-mNVA8c.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
|
@@ -1009,6 +1009,9 @@ interface PassthroughData {
|
|
|
1009
1009
|
responseGroupUid: UUID;
|
|
1010
1010
|
}
|
|
1011
1011
|
|
|
1012
|
+
type MultiChoiceSecondaryValueType = Record<string, {
|
|
1013
|
+
userText: string;
|
|
1014
|
+
}> | null;
|
|
1012
1015
|
interface RecordedTaskResponseValueType {
|
|
1013
1016
|
mediaRecordingUids?: string[] | null;
|
|
1014
1017
|
taskDurationMillisecond?: number;
|
|
@@ -1029,6 +1032,7 @@ interface BaseCard {
|
|
|
1029
1032
|
value?: unknown;
|
|
1030
1033
|
type: CardType;
|
|
1031
1034
|
groupId?: number;
|
|
1035
|
+
secondaryValue?: MultiChoiceSecondaryValueType | null;
|
|
1032
1036
|
}
|
|
1033
1037
|
type Comparator = "answered" | "contains" | "notcontains" | "list_dni" | "eq" | "given_up" | "gt" | "gte" | "lt" | "lte" | "list_all" | "list_alo" | "list_exact" | "neq" | "partial" | "skipped";
|
|
1034
1038
|
type Randomize = "none" | "all";
|
package/dist/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as r, S as e } from "./metricsReporter-
|
|
2
|
-
import { S as o, c as p, s as t } from "./core-
|
|
1
|
+
import { D as r, S as e } from "./metricsReporter-B_p_qsZJ.js";
|
|
2
|
+
import { S as o, c as p, s as t } from "./core-PNM_2mYx.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-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-B-mNVA8c.cjs");require("./replay.cjs");const r=require("./metricsReporter-CWGtDAqh.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
|
@@ -1009,6 +1009,9 @@ interface PassthroughData {
|
|
|
1009
1009
|
responseGroupUid: UUID;
|
|
1010
1010
|
}
|
|
1011
1011
|
|
|
1012
|
+
type MultiChoiceSecondaryValueType = Record<string, {
|
|
1013
|
+
userText: string;
|
|
1014
|
+
}> | null;
|
|
1012
1015
|
interface RecordedTaskResponseValueType {
|
|
1013
1016
|
mediaRecordingUids?: string[] | null;
|
|
1014
1017
|
taskDurationMillisecond?: number;
|
|
@@ -1029,6 +1032,7 @@ interface BaseCard {
|
|
|
1029
1032
|
value?: unknown;
|
|
1030
1033
|
type: CardType;
|
|
1031
1034
|
groupId?: number;
|
|
1035
|
+
secondaryValue?: MultiChoiceSecondaryValueType | null;
|
|
1032
1036
|
}
|
|
1033
1037
|
type Comparator = "answered" | "contains" | "notcontains" | "list_dni" | "eq" | "given_up" | "gt" | "gte" | "lt" | "lte" | "list_all" | "list_alo" | "list_exact" | "neq" | "partial" | "skipped";
|
|
1034
1038
|
type Randomize = "none" | "all";
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import { S as i, c as o, s as p } from "./core-
|
|
1
|
+
import { S as i, c as o, s as p } from "./core-PNM_2mYx.js";
|
|
2
2
|
import "./replay.js";
|
|
3
|
-
import { D as t, S as m } from "./metricsReporter-
|
|
3
|
+
import { D as t, S as m } from "./metricsReporter-B_p_qsZJ.js";
|
|
4
4
|
export {
|
|
5
5
|
t as DismissReason,
|
|
6
6
|
i as SprigAPI,
|
|
@@ -217,7 +217,7 @@ const J = (e) => e._config && e._config.installationMethod ? e._config.installat
|
|
|
217
217
|
U = !0, A = e;
|
|
218
218
|
};
|
|
219
219
|
function ce(e = {}) {
|
|
220
|
-
const t = { "Content-Type": "application/json", "userleap-platform": "web", "x-ul-sdk-version": "2.
|
|
220
|
+
const t = { "Content-Type": "application/json", "userleap-platform": "web", "x-ul-sdk-version": "2.36.0", "x-ul-installation-method": J(e), "sprig-modules": B() };
|
|
221
221
|
if (e.envId && (t["x-ul-environment-id"] = e.envId), e.token && (t.Authorization = "Bearer " + e.token), e.userId && (t["x-ul-user-id"] = e.userId), e.visitorId && (t["x-ul-visitor-id"] = e.visitorId), e.partnerAnonymousId && (t["x-ul-anonymous-id"] = e.partnerAnonymousId), e.mobileHeadersJSON) {
|
|
222
222
|
const s = JSON.parse(e.mobileHeadersJSON);
|
|
223
223
|
Object.assign(t, s);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Y=Object.defineProperty;var j=(e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>j(e,typeof t!="symbol"?t+"":t,r);var U=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(U||{}),A=(e=>(e.ReplayCapture="replay.capture",e.ReplayPaused="replay.paused",e.ReplayResumed="replay.resumed",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyCloseRequested="survey.closeRequested",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});let m;const F=new Uint8Array(16);function H(){if(!m&&(m=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(F)}const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));const w={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},b=new class{constructor(){l(this,"breadcrumbs",[])}getTimeStamp(){return new Date().toISOString()}addBreadcrumb(e){this.breadcrumbs.push(e),this.breadcrumbs.length>300&&this.breadcrumbs.shift()}debug(e,t="debug"){this.addBreadcrumb({category:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"debug"})}error(e,t={}){this.addBreadcrumb({category:"error",data:t,level:"error",message:e,timestamp:this.getTimeStamp(),type:"error"})}http(e,t){this.addBreadcrumb({category:"xhr",data:t,message:e,timestamp:this.getTimeStamp(),type:"http"})}info(e,t={}){this.addBreadcrumb({category:"info",data:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"info"})}navigation(e,t){this.addBreadcrumb({category:"navigation",data:t,message:e,timestamp:this.getTimeStamp(),type:"navigation"})}};var q=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},C=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=C.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new q(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=C;D.defaultMaxListeners=10;const B=new D,S=async e=>{await new Promise(t=>{setTimeout(t,e)})};class x{constructor(t){l(this,"storage");l(this,"tempStorage",{});l(this,"isStorageAvailable");try{this.storage=window[t];const r="__storage_test__";this.storage.setItem(r,r),this.storage.removeItem(r),this.isStorageAvailable=!0}catch{this.isStorageAvailable=!1}}setItem(t,r){this.isStorageAvailable&&this.storage?this.storage.setItem(t,r):this.tempStorage[t]=r}setItemObject(t,r){try{this.setItem(t,JSON.stringify(r))}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to save to local storage",s))}}getItem(t){return this.isStorageAvailable&&this.storage?this.storage.getItem(t):this.tempStorage[t]}getItemObject(t){const r=this.getItem(t);if(r)try{return JSON.parse(r)}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to parse local storage",s))}return{}}removeItem(t){this.isStorageAvailable&&this.storage?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable&&this.storage?this.storage.clear():this.tempStorage={}}}const J=new x("sessionStorage"),$=new x("localStorage");class K{constructor(t){l(this,"payload");l(this,"promise");l(this,"reject",()=>{});l(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const E={replay:null},G=()=>{const e=[];return E.replay&&e.push("replay"),e.join(",")},z=10;let T=!1,M="",g=!1,P=!1,y=[];const Q=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=(e="")=>{T=!0,M=e},R=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new K(t);return y.push(r),r.promise}},v=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:n=!1,...i}=t,d={url:e,options:i,retries:r,shouldDropOnRateLimit:s};if(g&&!n)return R(d);const u={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${M}`),u;try{const c=await fetch(e,i);if(c.status===429){if(!g&&!s||n){g=!0;const a=c.headers.has("ratelimit-reset")?Number(c.headers.get("ratelimit-reset")):z;return await S(1e3*a),v(e,{...i,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}return R(d)}if(g=!1,y.length&&(y.map(a=>{const h=a.payload;v(h.url,{...h.options,retries:h.retries,shouldDropOnRateLimit:h.shouldDropOnRateLimit}).then(W=>{a.resolveRequest(W)})}),y=[]),c.ok){if(c.status===249)return N(),u;const a=await c.text();try{return a&&a!=="OK"&&(c.json=JSON.parse(a)),c}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${a}`)}}}return c}catch(c){const a=r+1;return a>5||P?{ok:!1,reportError:!1,error:c}:(await S(1e3*Math.pow(2,r)),v(e,{...i,retries:a}))}},I=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function k(e,t){const{matchType:r,pattern:s}=e,n=r?I[r]:I.legacy;let i=!1;try{i=n(s,t)}catch(d){const u=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;d instanceof Error&&(console.warn(u,d),d.stack=JSON.stringify(e),window.UserLeap.reportError(u,d))}return i}let V=!0,f=!1;const X=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let L,p={};class Z{constructor(t){l(this,"_values",[]);l(this,"_isWebMetric");this.name=t,this._isWebMetric=X.includes(this.name)}report(t){if(V&&this._values.push({time:Date.now(),value:t}),f||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&L&&L(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=p[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"&&t<r.value}}const _={},O=e=>{const t=new Z(e);return _[e]=t,t};exports.DismissReason=U,exports.EVENTS={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}},exports.PerformanceMetrics=_,exports.SprigEvent=A,exports.breadcrumbsLogger=b,exports.checkUrlMatch=k,exports.checkUrlStillMatching=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return!!r&&k(r,window.location.href)},exports.cspViolationHandler=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(P=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},exports.delay=S,exports.disableThresholdChecking=()=>f=!0,exports.eventEmitter=B,exports.getHttpHeaders=function(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.34.2","x-ul-installation-method":Q(e),"sprig-modules":G()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t},exports.groupCards=(e,t)=>{const r=[e[t]],s=e[t].groupId;return s?e.slice(t).reduce((n,i)=>(i.groupId===s&&n.push(i),n),[]):r},exports.initPerformanceReporting=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{(async r=>{const s=Object.values(_).map(n=>({name:n.name,values:n.collect()}));if(s.some(n=>n.values.length))try{await r(JSON.stringify(s))}catch(n){n instanceof Error&&b.error("MetricsErr",{error:{message:n.message,name:n.name}})}})(t)},1e3*e):V=!1},exports.isLongFormSurvey=e=>e==="longFormSurvey",exports.killNetworkRequests=N,exports.localStorageHelper=$,exports.modules=E,exports.registerMetric=O,exports.registerReplay=e=>{E.replay=e},exports.registerThresholds=(e,t)=>{p={},f=!1,e==null||e.forEach(r=>{var s;r.metric in p||(p[r.metric]=[]),(s=p[r.metric])==null||s.push(r)}),L=t},exports.reportAndRegister=(e,t)=>{let r=_[e];return r||(r=O(e)),r.report(t)},exports.sessionStorageHelper=J,exports.shouldDirectEmbed=({"userleap-platform":e})=>{var t;return((t=window.UserLeap)==null?void 0:t.forceDirectEmbed)||e!=="web"},exports.sprigFetch=v,exports.v4=function(e,t,r){if(w.randomUUID&&!e)return w.randomUUID();const s=(e=e||{}).random||(e.rng||H)();return s[6]=15&s[6]|64,s[8]=63&s[8]|128,function(n,i=0){return o[n[i+0]]+o[n[i+1]]+o[n[i+2]]+o[n[i+3]]+"-"+o[n[i+4]]+o[n[i+5]]+"-"+o[n[i+6]]+o[n[i+7]]+"-"+o[n[i+8]]+o[n[i+9]]+"-"+o[n[i+10]]+o[n[i+11]]+o[n[i+12]]+o[n[i+13]]+o[n[i+14]]+o[n[i+15]]}(s)};
|
|
1
|
+
"use strict";var Y=Object.defineProperty;var j=(e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>j(e,typeof t!="symbol"?t+"":t,r);var U=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(U||{}),A=(e=>(e.ReplayCapture="replay.capture",e.ReplayPaused="replay.paused",e.ReplayResumed="replay.resumed",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyCloseRequested="survey.closeRequested",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});let m;const F=new Uint8Array(16);function H(){if(!m&&(m=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(F)}const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));const w={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},b=new class{constructor(){l(this,"breadcrumbs",[])}getTimeStamp(){return new Date().toISOString()}addBreadcrumb(e){this.breadcrumbs.push(e),this.breadcrumbs.length>300&&this.breadcrumbs.shift()}debug(e,t="debug"){this.addBreadcrumb({category:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"debug"})}error(e,t={}){this.addBreadcrumb({category:"error",data:t,level:"error",message:e,timestamp:this.getTimeStamp(),type:"error"})}http(e,t){this.addBreadcrumb({category:"xhr",data:t,message:e,timestamp:this.getTimeStamp(),type:"http"})}info(e,t={}){this.addBreadcrumb({category:"info",data:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"info"})}navigation(e,t){this.addBreadcrumb({category:"navigation",data:t,message:e,timestamp:this.getTimeStamp(),type:"navigation"})}};var q=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},C=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=C.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new q(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=C;D.defaultMaxListeners=10;const B=new D,S=async e=>{await new Promise(t=>{setTimeout(t,e)})};class x{constructor(t){l(this,"storage");l(this,"tempStorage",{});l(this,"isStorageAvailable");try{this.storage=window[t];const r="__storage_test__";this.storage.setItem(r,r),this.storage.removeItem(r),this.isStorageAvailable=!0}catch{this.isStorageAvailable=!1}}setItem(t,r){this.isStorageAvailable&&this.storage?this.storage.setItem(t,r):this.tempStorage[t]=r}setItemObject(t,r){try{this.setItem(t,JSON.stringify(r))}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to save to local storage",s))}}getItem(t){return this.isStorageAvailable&&this.storage?this.storage.getItem(t):this.tempStorage[t]}getItemObject(t){const r=this.getItem(t);if(r)try{return JSON.parse(r)}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to parse local storage",s))}return{}}removeItem(t){this.isStorageAvailable&&this.storage?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable&&this.storage?this.storage.clear():this.tempStorage={}}}const J=new x("sessionStorage"),$=new x("localStorage");class K{constructor(t){l(this,"payload");l(this,"promise");l(this,"reject",()=>{});l(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const E={replay:null},G=()=>{const e=[];return E.replay&&e.push("replay"),e.join(",")},z=10;let T=!1,M="",g=!1,P=!1,y=[];const Q=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=(e="")=>{T=!0,M=e},R=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new K(t);return y.push(r),r.promise}},v=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:n=!1,...i}=t,d={url:e,options:i,retries:r,shouldDropOnRateLimit:s};if(g&&!n)return R(d);const u={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${M}`),u;try{const c=await fetch(e,i);if(c.status===429){if(!g&&!s||n){g=!0;const a=c.headers.has("ratelimit-reset")?Number(c.headers.get("ratelimit-reset")):z;return await S(1e3*a),v(e,{...i,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}return R(d)}if(g=!1,y.length&&(y.map(a=>{const h=a.payload;v(h.url,{...h.options,retries:h.retries,shouldDropOnRateLimit:h.shouldDropOnRateLimit}).then(W=>{a.resolveRequest(W)})}),y=[]),c.ok){if(c.status===249)return N(),u;const a=await c.text();try{return a&&a!=="OK"&&(c.json=JSON.parse(a)),c}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${a}`)}}}return c}catch(c){const a=r+1;return a>5||P?{ok:!1,reportError:!1,error:c}:(await S(1e3*Math.pow(2,r)),v(e,{...i,retries:a}))}},I=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function k(e,t){const{matchType:r,pattern:s}=e,n=r?I[r]:I.legacy;let i=!1;try{i=n(s,t)}catch(d){const u=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;d instanceof Error&&(console.warn(u,d),d.stack=JSON.stringify(e),window.UserLeap.reportError(u,d))}return i}let V=!0,f=!1;const X=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let L,p={};class Z{constructor(t){l(this,"_values",[]);l(this,"_isWebMetric");this.name=t,this._isWebMetric=X.includes(this.name)}report(t){if(V&&this._values.push({time:Date.now(),value:t}),f||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&L&&L(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=p[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"&&t<r.value}}const _={},O=e=>{const t=new Z(e);return _[e]=t,t};exports.DismissReason=U,exports.EVENTS={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}},exports.PerformanceMetrics=_,exports.SprigEvent=A,exports.breadcrumbsLogger=b,exports.checkUrlMatch=k,exports.checkUrlStillMatching=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return!!r&&k(r,window.location.href)},exports.cspViolationHandler=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(P=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},exports.delay=S,exports.disableThresholdChecking=()=>f=!0,exports.eventEmitter=B,exports.getHttpHeaders=function(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.36.0","x-ul-installation-method":Q(e),"sprig-modules":G()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t},exports.groupCards=(e,t)=>{const r=[e[t]],s=e[t].groupId;return s?e.slice(t).reduce((n,i)=>(i.groupId===s&&n.push(i),n),[]):r},exports.initPerformanceReporting=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{(async r=>{const s=Object.values(_).map(n=>({name:n.name,values:n.collect()}));if(s.some(n=>n.values.length))try{await r(JSON.stringify(s))}catch(n){n instanceof Error&&b.error("MetricsErr",{error:{message:n.message,name:n.name}})}})(t)},1e3*e):V=!1},exports.isLongFormSurvey=e=>e==="longFormSurvey",exports.killNetworkRequests=N,exports.localStorageHelper=$,exports.modules=E,exports.registerMetric=O,exports.registerReplay=e=>{E.replay=e},exports.registerThresholds=(e,t)=>{p={},f=!1,e==null||e.forEach(r=>{var s;r.metric in p||(p[r.metric]=[]),(s=p[r.metric])==null||s.push(r)}),L=t},exports.reportAndRegister=(e,t)=>{let r=_[e];return r||(r=O(e)),r.report(t)},exports.sessionStorageHelper=J,exports.shouldDirectEmbed=({"userleap-platform":e})=>{var t;return((t=window.UserLeap)==null?void 0:t.forceDirectEmbed)||e!=="web"},exports.sprigFetch=v,exports.v4=function(e,t,r){if(w.randomUUID&&!e)return w.randomUUID();const s=(e=e||{}).random||(e.rng||H)();return s[6]=15&s[6]|64,s[8]=63&s[8]|128,function(n,i=0){return o[n[i+0]]+o[n[i+1]]+o[n[i+2]]+o[n[i+3]]+"-"+o[n[i+4]]+o[n[i+5]]+"-"+o[n[i+6]]+o[n[i+7]]+"-"+o[n[i+8]]+o[n[i+9]]+"-"+o[n[i+10]]+o[n[i+11]]+o[n[i+12]]+o[n[i+13]]+o[n[i+14]]+o[n[i+15]]}(s)};
|