@sprig-technologies/sprig-browser 2.32.0 → 2.32.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/core-D-LZZjJw.cjs +12 -0
- package/dist/core-DJ-C8ZCy.js +983 -0
- package/dist/core.cjs +1 -1
- package/dist/core.js +9 -1
- package/dist/electron.cjs +1 -1
- package/dist/electron.js +19 -1
- package/dist/index.cjs +1 -1
- package/dist/index.js +10 -1
- package/dist/metricsReporter-CiE5uf1B.cjs +1 -0
- package/dist/metricsReporter-D0VZ2ZgI.js +348 -0
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +651 -1
- package/dist/view-CDdG2lXT.js +2830 -0
- package/dist/view-CW-37QDp.cjs +669 -0
- package/package.json +1 -1
- package/dist/core-B6K_G_tP.js +0 -12
- package/dist/core-JazVRZuc.cjs +0 -12
- package/dist/metricsReporter-ikJ_RTTQ.cjs +0 -1
- package/dist/metricsReporter-pb5Px0rg.js +0 -1
- package/dist/view-C7NBKswM.cjs +0 -685
- package/dist/view-DtwxhY6m.js +0 -685
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";var at=Object.defineProperty;var dt=(r,t,o)=>t in r?at(r,t,{enumerable:!0,configurable:!0,writable:!0,value:o}):r[t]=o;var N=(r,t,o)=>(dt(r,typeof t!="symbol"?t+"":t,o),o);const i=require("./metricsReporter-CiE5uf1B.cjs"),je="360px",xe=()=>{try{return window.parent.Intercom}catch{return null}},Ae=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const r=xe();r&&(r.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),r.ul_wasVisible&&r("update",{hide_default_launcher:!0}))},enable:()=>{const r=xe();r&&(r.ul_wasVisible&&r("update",{hide_default_launcher:!1}),delete r.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class Ne{static disable(){Ae.forEach(t=>t.disable())}static enable(){Ae.forEach(t=>t.enable())}}const Oe="ul-view-sdk-script",lt=["ios","android"],P="visitors",C="environments";async function x(r,t){var n,s,a;const{shouldDropOnRateLimit:o,...d}=t;d.headers=Object.assign(i.getHttpHeaders(window.UserLeap),d.headers);const e=await i.sprigFetch(r,{...d,shouldDropOnRateLimit:o});if(e.ok){const l=(n=e.headers)==null?void 0:n.get("Authorization"),p=l?l.split(" "):void 0,c=p&&p.length===2?p[1]:void 0,u=(s=e.headers)==null?void 0:s.get("x-ul-visitor-id");c&&u&&(u!==window.UserLeap.visitorId||window.UserLeap.token!==c)&&(E("token",c),E("vid",u),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:u}),window.UserLeap.token=c,window.UserLeap.visitorId=u)}return(a=e.json)!=null&&a.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function E(r,t){const o=i.localStorageHelper.getItem("userleap.ids");let d={};if(o)try{d=JSON.parse(o)}catch(n){n instanceof Error&&(n.stack=o,window.UserLeap.reportError("Failed to parse local storage credentials",n)),console.warn("[Sprig] (ERR-427) Failed to lookup saved ids",n)}let e=d[window.UserLeap.envId];e?e[r]=t:e={[r]:t},d[window.UserLeap.envId]=e;try{i.localStorageHelper.setItem("userleap.ids",JSON.stringify(d))}catch(n){n instanceof Error&&console.warn(`[Sprig] (ERR-426) Unable to write to Local Storage:: ${n.message}`)}}function he(){return window.previewMode?"0":window.UserLeap.visitorId??""}function R(r,t,o){const d=[window.UserLeap._API_URL,"sdk",r];return t&&t.forEach(e=>{d.push(e),e===C?d.push(window.UserLeap.envId):e===P&&d.push(he())}),o&&d.push(o),d.join("/")}const z=async(r,t)=>{var ke,_e,Re;const{context:o,delay:d,forceBrandedLogo:e,endCard:n,isFeedback:s=!1,heatmap:a,locale:l,previewMode:p,productConfig:c,questions:u,responseGroupUid:m,surveyId:w,uuid:g,vid:I,sessionReplay:O,studyType:S}=r,h=i.getHttpHeaders(window.UserLeap),L=oe(h),U=be(h);if(O)if(L)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:m,hasQuestions:!!(u!=null&&u.length),surveyId:w,uploadId:O.uploadId,replayType:O.replayDurationType??"before",seconds:O.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:I,replayParams:O,completeUploadHeaders:h,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:u.length===0})}if(a){if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};const{eventId:f,replayParams:ae,responseGroupUid:ot,surveyId:st}=a;await i.modules.replay.initializeReplay({maxReplayDurationSeconds:300,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0}),i.modules.replay.tryReplayAction(()=>{var De;return(De=i.modules.replay)==null?void 0:De.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:h,eventId:f,isHeatmap:!0,replayParams:ae,responseGroupId:ot,surveyId:st,triggerTimestamp:Date.now(),visitorId:I})},"Error in scheduling/capturing replay")}if(I==null||!(u!=null&&u.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:I}),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.breadcrumbsLogger.info("AlreadyDisplayingSurvey");const f="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(f),{success:!1,message:f,surveyState:"no survey"}}if(I!==window.UserLeap.visitorId&&g!==window.UserLeap.visitorId&&!window.previewMode){const f="Attempted to display survey to a different visitor";return window.UserLeap.reportError("DisplaySurvey",new Error(f)),{success:!1,message:f,surveyState:"no survey"}}i.breadcrumbsLogger.info("ShowingSurvey",{surveyId:w}),(ke=i.modules.replay)==null||ke.RecordSurveyShown({id:w,userAgent:window.navigator.userAgent}),Ne.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":w});let T,v,b,k,_=document.createElement("div");const M=f=>{const{"view.version":ae}=f;ae!==h["x-ul-sdk-version"]&&We(),i.eventEmitter.removeListener("verify.view.version",M)};i.eventEmitter.on("verify.view.version",M),window.UserLeap.useMobileStyling=U,i.shouldDirectEmbed(h)?(T="ul-direct-embeded-frame",v=document.head,b=window,k=!1,L&&(Ve(w,s),_.id=T,window.UserLeap.container.appendChild(_),Be(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":w}))):{frameId:T,contentWinDocHead:v,contentWindow:b,hasOverlay:k,iframe:_}=pt({productConfig:c,useMobileStyling:U,surveyId:w,isFeedback:s}),window.UserLeap.frameId=T;const D={apiURL:window.UserLeap._API_URL,cards:u,configureExitOnOverlayClick:f=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,f)},context:o,endCard:n,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:e,frame:_,headers:h,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:p,productConfig:{framePosition:c==null?void 0:c.framePosition,desktopDisplay:c==null?void 0:c.desktopDisplay,placement:c==null?void 0:c.placement},responseGroupUid:m,startingQuestionIdx:(_e=window.UserLeap.config)==null?void 0:_e.startingQuestionIdx,studyType:S,styleNonce:window.UserLeap.styleNonce,surveyId:w,tabTitle:document.title,trackPageViewUrl:t,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:U,userId:g,viewDocument:b==null?void 0:b.document,viewWindow:b,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(Re=window.UserLeap._config)!=null&&Re.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const J=(s?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??c.customStyles;D.customStyles=J,b&&(b.__cfg=D);const W=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:D.path,Ue=document.getElementById(Oe);Ue&&Ue.remove();const se=function(){const f=document.createElement("script");return window.UserLeap.nonce&&f.setAttribute("nonce",window.UserLeap.nonce),f.id=Oe,f}(),Ee=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(D.installationMethod==="web-npm"||D.installationMethod==="web-npm-bundled"){const{default:f}=await Promise.resolve().then(()=>require("./view-CW-37QDp.cjs"));f.configure(D),k&&window.UserLeap.container&&Ee()}else W&&(se.src=W,k&&se.addEventListener("load",()=>{window.UserLeap.container&&Ee()}),b==null||b.addEventListener("error",f=>{f.target instanceof HTMLScriptElement&&f.target.src===W&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));v==null||v.appendChild(se);const Ie={success:!0,surveyState:"ready",surveyId:w,responseGroupUid:m};return window.UserLeap.isMobileSDK&&d&&(Ie.delay=d),Ie};function be(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 oe(r)||t>10&&t<500}function oe(r){return lt.includes(r["userleap-platform"])}const Se="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 de="0px",Ve=(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 d=$e();o&&d&&!window.UserLeap.useMobileStyling?d.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},We=(r,t)=>{var d;wt();const o=window.UserLeap.container;if(o)try{(d=o.parentNode)==null||d.removeChild(o),window.UserLeap.container=null,E("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:r,"survey.id":parseInt(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)}},Be=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:r,studyType:t})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),We(r,t)})},ct=(r,t,o,d)=>{var c,u;const e={position:"fixed",bottom:"0px",right:de,border:0,backgroundColor:"rgba(0,0,0,0)",zIndex:2147483646,transition:"width 0.2s ease-in-out, height 0.2s ease-in-out",maxWidth:"100%"},n=Object.assign({},t,window.UserLeap),{desktopDisplay:s}=t||{},a=s==="center-modal";let l;a&&(n.framePosition="center");let p=!1;if(o)(c=window.UserLeap.windowDimensions)!=null&&c.width?e.width=`${window.UserLeap.windowDimensions.width}px`:e.width="100%",(u=window.UserLeap.windowDimensions)!=null&&u.height?e.maxHeight=window.UserLeap.windowDimensions.height-20+"px":window.UserLeap.maxHeight?e.maxHeight=window.UserLeap.maxHeight:e.maxHeight=document.body.clientHeight-20+"px",["light","dark"].includes(n.overlayStyleMobile)&&(p=!0);else{e.width=je,e.maxHeight=window.UserLeap.maxHeight||"66vh";const m=()=>{p=!0,l={margin:"auto",position:"static"}};if(d)a?m():l={position:"relative",height:"300px"};else switch(n.framePosition){case"bottomLeft":l={left:de};break;case"topLeft":l={left:de,top:0};break;case"topRight":l={top:0};break;case"center":m()}}return p&&((m,w)=>{const g={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},I=w?m.overlayStyleMobile:m.overlayStyle;g["background-color"]=I==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",w||(g.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,g)})(n,o),Object.assign(r.style,e,l),p},pt=({productConfig:r,useMobileStyling:t,surveyId:o,isFeedback:d})=>{var m,w;const e=Se,n=d&&r.desktopDisplay==="slider";Ve(o,d,n),ut();const s=document.createElement("iframe");s.id=e,s.setAttribute("title","Sprig User Feedback Dialog");const a=ct(s,r,t,d);Be();let l=!1;s.setHeight=g=>{parseInt(s.style.height)==g&&l||(l=!0,s.style.height=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:g,"survey.id":o}))};let p=!1;s.setWidth=g=>{parseInt(s.style.width)==g&&p||(p=!0,s.style.width=`${g}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:g,"survey.id":o}))},(m=window.UserLeap.container)==null||m.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 c=(w=s.contentWindow)==null?void 0:w.document;if(c&&(c.open("text/html","replace"),c.write("<!doctype html><head></head><body></body></html>"),c.close(),!t)){const g=c.body;g.style.display="flex",g.style.alignItems="center"}const u=c==null?void 0:c.head;return{frameId:e,contentWinDocHead:u,contentWindow:s.contentWindow,hasOverlay:a,iframe:s}},qe={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},ut=()=>{Object.entries(qe).forEach(([r,t])=>{i.eventEmitter.on(r,t)})},wt=()=>{Object.entries(qe).forEach(([r,t])=>{i.eventEmitter.off(r,t)})},Pe=r=>r instanceof HTMLElement||r instanceof SVGElement,K=({document:r,elementId:t,styleString:o,nonce:d})=>{const e=r.getElementById(t);if(e)return void(e.textContent=o);const n=r.createElement("style");d&&(n.nonce=d),n.textContent=o,n.id=t,r.head.appendChild(n)},ze=r=>{const t=r.querySelector(".ul-card__container");let o=600,d=360;if(t){o=t.scrollHeight;const e=getComputedStyle(t);o+=parseFloat(e.marginTop)+parseFloat(e.marginBottom)+(parseFloat(e.borderTopWidth)+parseFloat(e.borderBottomWidth))+(parseFloat(e.paddingTop)+parseFloat(e.paddingBottom));const n=t.querySelector(".ul-card--matrix_grid");d=n?n.scrollWidth:t.scrollWidth;const s=parseFloat(e.paddingLeft)+parseFloat(e.paddingRight);d+=parseFloat(e.marginLeft)+parseFloat(e.marginRight)+(parseFloat(e.borderLeftWidth)+parseFloat(e.borderRightWidth))+s}return[o+1,d]},$e=()=>y,V=()=>document.getElementById("sprig-feedback-container"),ue=()=>document.getElementById("sprig-feedback-loading-animation"),Ge=()=>!!document.getElementById(Se);let Ce=!1,y=null,A=null,Le=!1,$=null,H=null;const gt=["bottom-left","bottom-right","center-left","center-right"],X=()=>{var t;const r=window.UserLeap.container;return((t=r==null?void 0:r.parentElement)==null?void 0:t.id)==="sprig-feedback-loading-container"},Ke=()=>document.getElementById("sprig-feedback-error-container"),Je=()=>{if(!y)return 0;const r=y==null?void 0:y.clientWidth,t=window.getComputedStyle(y);return r+parseInt(t.borderRightWidth||"0")+parseInt(t.borderLeftWidth||"0")},Z=r=>{const t=V();t&&(H!=null&&H.endsWith("right")?t.style.right=`${r}px`:H!=null&&H.endsWith("left")&&(t.style.left=`${r}px`))},le=()=>{if(y&&(X()||Ke())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,q),we();const r=Je();return Z(-r),!0}return!1},q=()=>{if(!y||!A)return;const r=ue();r&&r.remove(),y.style.height="auto",y.style.width="auto",A.disabled=!1,Le=!1},we=()=>{if(y&&!ue()){const r=(()=>{if(ue())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
|
+
<div class="ul-loading-spinner">
|
|
3
|
+
<div class="first"></div>
|
|
4
|
+
<div class="second"></div>
|
|
5
|
+
<div class="third"></div>
|
|
6
|
+
<div class="fourth"></div>
|
|
7
|
+
</div>
|
|
8
|
+
`,t})();r&&(y.style.height="300px",y.style.width="360px",y.appendChild(r))}},Te=()=>{y&&A&&(Z(0),A.disabled=!0,Le=!0)},Qe=async(r,t,o)=>{const{buttonTheme:d,customStyles:e,eventId:n,placement:s,desktopDisplay:a,feedbackLabel:l,surveyUuid:p,surveyId:c}=r;window.UserLeap.feedbackCustomStyles=void 0;let u=V();if(u){if(!t&&n===$)return;u.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,le)}$=n,K({document,elementId:"sprig-feedback-style",styleString:'.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}',nonce:window.UserLeap.styleNonce}),K({document,elementId:"ul-custom-style",styleString:e??"",nonce:window.UserLeap.styleNonce}),Ce=a==="center-modal",H=s;const[m,w]=s.split("-");(S=>{if(V()||!gt.includes(S))return;const[h,L]=S.split("-"),U=document.createElement("div");U.id="sprig-feedback-container",U.classList.add(`sprig-feedback-container-${L}`,`sprig-feedback-container-${h}`),document.body.appendChild(U)})(s),u=V(),A=document.createElement("button");const g=document.createElement("div");g.className="sprig-feedback-button-label",g.innerText=l,A.appendChild(g),A.id="sprig-feedback-button",A.classList.add(`sprig-feedback-button-${w}`,`sprig-feedback-button-${m}`,`sprig-feedback-button-${d}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,le),A.addEventListener("click",async()=>{const S=document.getElementById("sprig-feedback-error-container");if(Ge()||Ke()){if(le()){i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":c});const L=V();S&&L&&(L.remove(),$=null,y=null)}return}if(be(i.getHttpHeaders(window.UserLeap))||Le||Te(),t)return y&&y.classList.add("sprig-feedback-loading-container-previews"),await z(t),void q();const h=await(async L=>{const U=await x(R("1",[P],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:L}),method:"POST"});return U.ok?U.json:null})(p);if(h)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,q),z({...h,studyType:"feedbackButton"},o);else if(y){const L=mt();y.appendChild(L),q(),y.style.height="300px",y.style.width="360px"}}),u==null||u.appendChild(A),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":c});const{useMobileStyling:I,_config:{border:O}}=window.UserLeap;if(Ce||I)Z(0);else{const S=document.createElement("div");S.id="sprig-feedback-loading-container",S.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${w}`,S.style.setProperty("--feedback-border",O),y=S,we(),u==null||u.appendChild(S);const h=Je();Z(-h)}window.UserLeap._config.isOnQuestionsTab&&t&&!X()&&y&&(Te(),we(),y&&y.classList.add("sprig-feedback-loading-container-previews"),z(t),q())},mt=()=>{const r=document.createElement("div");r.id="sprig-feedback-error-container",r.innerHTML=`<svg xmlns="http://www.w3.org/2000/svg" width="40" height="40" viewBox="0 0 40 40" fill="none">
|
|
9
|
+
<circle cx="20" cy="20" r="14.5" stroke="#B0B5B7" stroke-width="3"/>
|
|
10
|
+
<path d="M20 12L20 21.6" stroke="#B0B5B7" stroke-width="3" stroke-linecap="round"/>
|
|
11
|
+
<circle cx="19.9984" cy="27.6" r="1.6" fill="#B0B5B7"/>
|
|
12
|
+
</svg>`;const t=document.createElement("h3");return t.className="sprig-feedback-error-text",t.innerText="There was an error while loading the survey",r.appendChild(t),r},ge=new class{constructor(){N(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(ge);const Y=new class{constructor(){N(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(d=>{delete this._optimizelyData[d]}),o&&o.map(d=>{const{id:e,variation:n}=d,s=this.transformExperimentId(e);n&&typeof n=="string"&&(this._optimizelyData[s]=n)}),!0}catch(d){return d instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",d),!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(d=>{var e,n;return(e=t[d].variation)!=null&&e.name?{id:d,variation:(n=t[d].variation)==null?void 0:n.name}:{id:d,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(Y);class yt{constructor(t,o){N(this,"paused");N(this,"queue");N(this,"ul");this.ul=t,this.paused=!1,this.queue=[],this.flush(o)}flush(t){const o=t.length;if(o)for(let d=0;d<o;d++)this.push(t[d])}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),d=t[0],e=this.ul[d];e instanceof Function?e.apply(this.ul,o):d&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",d)}}perform(t){if(this.paused){let o=()=>{};const d=new Promise(function(e){o=function(){e(t())}});return this.queue.push(o),d}return t()}empty(){this.queue.length=0}}let Ye,Xe;const me=r=>{let t=0,o=r.firstElementChild;for(;o;)t+=me(o),o.shadowRoot&&(t+=me(o.shadowRoot)),o=o.nextElementSibling,t++;return t},Me=()=>{Ye.report(me(document.body)),Xe.report(document.documentElement.innerHTML.length)},ye=(r,t)=>{const o=performance.now();document.hidden?setTimeout(()=>ye(r,t),r):setTimeout(()=>{const d=performance.now()-o;t.report(d/1e3),setTimeout(()=>ye(r,t),r)},0)};let ee,te,re,ie,He,j={};const Q=(r,t=1)=>{const{name:o}=r;j[o]=(j[o]||0)+t},Ze=r=>{let t=1;return r.childNodes.forEach(o=>{t+=Ze(o)}),t},Fe=r=>{let t=0;return r.forEach(o=>{t+=Ze(o)}),t},vt=r=>{switch(r.type){case"childList":return Q(ee,Fe(r.addedNodes)),void Q(te,Fe(r.removedNodes));case"attributes":return void Q(re);case"characterData":return void Q(ie)}},ft=r=>r.forEach(vt),ht=()=>{ee.report(j[ee.name]||0),te.report(j[te.name]||0),re.report(j[re.name]||0),ie.report(j[ie.name]||0),j={}},bt=(r=1e3)=>{ee=i.registerMetric("sdk_mutations_nodes_added"),te=i.registerMetric("sdk_mutations_nodes_removed"),re=i.registerMetric("sdk_mutations_attributes_changed"),ie=i.registerMetric("sdk_mutations_character_data"),He=new MutationObserver(ft),He.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(ht,r)},St=({isWeb:r,reportingIntervalSeconds:t,thresholds:o,postMetrics:d})=>{i.registerThresholds(o,(e,n)=>{var s,a;if((s=i.modules.replay)!=null&&s.isReplayRecording()){const l=`Value: ${e} on ${n.metric} violated threshold of ${n.type} ${n.value}`;(a=i.modules.replay)==null||a.disableRecording("Threshold violated",new Error(l),{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:d}),r&&(((e=1e3)=>{const n=i.registerMetric("sdk_event_queue_latency_seconds");ye(e,n)})(),((e=1e4)=>{Ye=i.registerMetric("sdk_dom_nodes_count"),Xe=i.registerMetric("sdk_page_html_characters"),Me(),setInterval(Me,e)})(),bt())},Lt="test",Ut=["popState","pushState","replaceState"];let ve;const B="!email",et="pageUrl";let ce=window.location.href;function G(r){var a;const{pageUrlEvents:t,interactiveEvents:o,dismissOnPageChange:d,platform:e}=window.UserLeap._config;if(e&&e!=="web")return;ce!==window.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:ce,to:window.location.href}),ce=window.location.href;const n=F("trackStartUrl"),s=n?String(n):null;t&&nt(window.location.href),o&&(rt(),Et()),$e()&&(()=>{if(X())return;const l=V();l&&(i.checkUrlStillMatching($)||(l.remove(),$=null,y=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((a=i.modules.replay)==null||a.checkPendingHeatmapsUrl()),!X()&&d&&s&&s!==window.location.href&&r&&Ut.includes(r.type)&&window.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const tt={capture:!0},Et=()=>{const r=window.UserLeap._config.interactiveEvents.filter(o=>i.checkUrlMatch(o,window.location.href)).map(o=>{const{name:d,properties:e}=o,{selector:n,innerText:s}=e;return n?a=>{if(Pe(a.target))try{a.target.closest(n)&&window.UserLeap("track",d)}catch{}return!1}:a=>(Pe(a.target)&&a.target.innerText===s&&window.UserLeap("track",d),!1)}),t=o=>r.forEach(d=>d(o));window.UserLeap._config.interactiveEventsHandler=t,window.addEventListener("click",t,tt)},rt=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,tt),delete window.UserLeap._config.interactiveEventsHandler};function F(r){const t=i.localStorageHelper.getItem("userleap.ids");if(t)try{const o=JSON.parse(t)[window.UserLeap.envId];return o&&o[r]||null}catch(o){o instanceof Error&&(o.stack=t,window.UserLeap.reportError("Failed to parse local storage credentials",o))}return null}function it(){window.previewMode||(window.UserLeap.visitorId=i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:window.UserLeap.visitorId}),E("vid",window.UserLeap.visitorId),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId}))}function nt(r,t,o,d){var e,n;try{if(r.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:r});const s=window.UserLeap._config.pageUrlEvents;let a=!1;if(s&&s.length)for(let c=0;c<s.length&&(a=i.checkUrlMatch(s[c],r),!a);c++);if(!a)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",r);const l={url:r};d&&(l.trackPageView=!0),window.UserLeap._queue.push(["track",et,t,l,o]);const p=(e=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:e.getAttribute("content");(n=i.modules.replay)==null||n.RecordPageView({...p&&{description:p},url:r,referrer:document.referrer,pageTitle:document.title})}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 It(){const r="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in r&&(r.pushState=(t=>function(...o){const d=t.apply(this,o),e=new Event("pushState");return window.dispatchEvent(e),G(e),d})(r.pushState)),"replaceState"in r&&(r.replaceState=(t=>function(...o){const d=t.apply(this,o),e=new Event("replaceState");return window.dispatchEvent(e),G(e),d})(r.replaceState)),["hashchange","popstate"].forEach(t=>window.addEventListener(t,G,!0))}async function pe(r,t){const o=he();r&&!t&&(window.UserLeap._config.mode=Lt);const d=be(i.getHttpHeaders(window.UserLeap)),e=await x(function(n){const s=new URL(R("1",[C],"questions"));return Object.entries(n||{}).forEach(([a,l])=>{l&&s.searchParams.append(a,String(l))}),s.toString()}({desktopDisplay:window.UserLeap._config.desktopDisplay,isMobile:d,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,ve);{const{feedbackLabel:n,productConfig:s,surveyUuid:a,feedbackCustomStyles:l}=e.json,{buttonTheme:p,placement:c,desktopDisplay:u}=s;Qe({customStyles:l,buttonTheme:p,desktopDisplay:u,eventId:0,feedbackLabel:n,placement:c,surveyUuid:a,surveyId:r==null?void 0:r.surveyId},e.json)}}function kt(r){if(!r)return;window.UserLeap._config=r,r.mute&&window.UserLeap._queue.pause();const{interactiveEvents:t,pageUrlEvents:o,dismissOnPageChange:d}=r;t&&function(e){let n=e.length;for(;n;){const s=Math.floor(Math.random()*n);n-=1;const a=e[n];e[n]=e[s],e[s]=a}}(t),(t||o||d)&&(It(),G())}const _t=function(r){if(!window.UserLeap)return;const t=async(e={})=>{var S,h,L,U,T;const{userId:n,anonymousId:s,metadata:a={},properties:l,showSurveyCallback:p}=e;let{eventName:c}=e;if(window.UserLeap.debugMode&&c!==et&&console.info("[DEBUG] Sprig track",e),r.mode==="test")return;const u=i.localStorageHelper.getItem("sprig.previewKey")??void 0;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const v="[Sprig] - Skipping tracking without userId";return console.warn(v),{success:!1,message:v,surveyState:"no survey"}}if(!c||c.trim().length===0){c=c?String(c):"";const v="[Sprig] - Invalid event name "+c;return console.warn(v),{success:!1,message:v,surveyState:"no survey"}}const m=ve??window.location.href;a.url||(a.url=m),E("trackStartUrl",m),(h=(S=window.UserLeap)==null?void 0:S._config)!=null&&h.optimizelyEnabled&&(oe(i.getHttpHeaders(window.UserLeap))||Y.getAndSetWebOptimizelyExperiments(),a.optimizelyExperiments=Object.assign({},Y.getAllOptimizelyExperiments())),(U=(L=window.UserLeap)==null?void 0:L._config)!=null&&U.launchDarklyEnabled&&(a.launchDarklyFlags=ge.getAllLaunchDarklyVariations()),n&&(window.UserLeap.userId=n),s&&(window.UserLeap.partnerAnonymousId=s),l&&(a.eventProperties=l),(T=i.modules.replay)==null||T.RecordEvent({name:c,url:a.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:c});const w=window.UserLeap.delayingSurvey||Ge()?await x(R("1",[P],"events/batch"),{body:JSON.stringify({events:[{event:c,metadata:a}],previewKey:u}),method:"POST",shouldDropOnRateLimit:!0}):await x(R("1",[P],"events"),{body:JSON.stringify({event:c,metadata:a,previewKey:u}),method:"POST",shouldDropOnRateLimit:!0});if(!w.ok){const v="[Sprig] (ERR-421) Failed to track event";return w.reportError&&(console.warn(v,w.error),w.error&&window.UserLeap.reportError("track",w.error)),{success:!1,message:v,error:w.error,surveyState:"no survey"}}n&&E("uid",n),s&&E("aid",s);const g=w.json;g.invalidPreviewKey&&i.localStorageHelper.removeItem("sprig.previewKey");const I=a.trackPageView?a.url:void 0;return g!=null&&g.feedbackButton&&Qe(g.feedbackButton,void 0,I),await async function(v,b){var _,M;let k=!0;return!(b&&((_=v==null?void 0:v.json)!=null&&_.surveyId)&&(window.UserLeap.delayingSurvey=!0,k=await b(v.json.surveyId),window.UserLeap.delayingSurvey=!1,!k))&&((M=v==null?void 0:v.json)!=null&&M.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await i.delay(v.json.delay),window.UserLeap.delayingSurvey=!1),k)}(w,p)?function(v,b){const{pageUrlEvents:k,interactiveEvents:_,dismissOnPageChange:M}=window.UserLeap._config;if(!M)return!0;const D=[];k&&k.length&&D.push(...k),_&&_.length&&D.push(..._);const J=v&&D.find(W=>W.id===v);return J?i.checkUrlMatch(J,window.location.href):b===window.location.href}(g.eventId,m)?z(g,I):{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 a;const s=(a=e==null?void 0:e.querySelector(`[id="${Se}"]`))==null?void 0:a.contentDocument;s&&K({document:s,elementId:"ul-custom-style",styleString:n})},d={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),pe({surveyId:e},!0)),_previewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),pe({surveyTemplateId:e},!1)},_reviewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),pe({surveyId:e},!1)},previewSurvey(e){d._previewSurvey(e)},reviewSurvey(e){d._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&&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 c="[Sprig] - Disregarding empty payload provided";return console.warn(c),{success:!1,message:c}}const{userId:n,anonymousId:s,attributes:a}=e;if(r.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const c="[Sprig] - Skipping tracking without userId";return console.warn(c),{success:!1,message:c}}if(!(a||n&&window.UserLeap.userId!==n||s&&window.UserLeap.partnerAnonymousId!==s))return{success:!0};const l={};let p;return n&&(l.userId=window.UserLeap.userId=n),s&&(l.partnerAnonymousId=window.UserLeap.partnerAnonymousId=s),a?(a.email&&!Object.prototype.hasOwnProperty.call(a,B)&&(a[B]=a.email,delete a.email),p=await x(R("1",[C,P],"attributes"),{body:JSON.stringify(a),method:"PUT"}),!p.ok&&p.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",p.error),p.error&&window.UserLeap.reportError("identifyAndSetAttributes",p.error))):p=await x(R("1",[C,P]),{body:JSON.stringify(l),method:"PUT"}),a&&a[B]&&(window.UserLeap.email=a[B]),p.ok&&(n&&E("uid",n),s&&E("aid",s)),{success:!!p.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(R("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 a;if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",e),e==null){const l=`[Sprig] - Invalid userId ${e}`;return console.warn(l),{success:!1,message:l}}if(r.mode==="test"||e===window.UserLeap.userId)return;window.UserLeap.userId=e;const n=window.UserLeap.visitorId,s=await x(R("1",[C,P]),{body:JSON.stringify({userId:e}),method:"PUT"});s.ok?(n!==window.UserLeap.visitorId&&((a=i.modules.replay)==null||a.clearUserReplayData()),E("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,E("aid",e),{success:!0}},track:async(e,n,s={},a=void 0)=>t({eventName:e,properties:n,metadata:s,showSurveyCallback:a}),identifyAndTrack:async e=>await t(e),trackPageView(e,n=void 0,s=void 0,a=!0){ve=e,nt(e,n,s,a)},applyFeedbackStyles({button:e="",view:n=""}){window.UserLeap.feedbackCustomStyles=n,document.getElementById("sprig-feedback-style")&&K({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 p,c;const s=typeof e=="string"?parseInt(e,10):e,a=typeof n=="string"?parseInt(n,10):n;if(isNaN(s)||isNaN(a)||(window.UserLeap.windowDimensions={width:s,height:a}),!window.UserLeap.frameId)return;const l=document.getElementById(window.UserLeap.frameId);l&&(window.UserLeap.useMobileStyling&&((p=window.UserLeap.windowDimensions)!=null&&p.width&&(l.style.width=`${window.UserLeap.windowDimensions.width}px`),(c=window.UserLeap.windowDimensions)!=null&&c.height&&(l.style.maxHeight=window.UserLeap.windowDimensions.height-20+"px"),l.contentDocument&&(l.style.height=String(ze(l.contentDocument)[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:l.clientWidth,contentFrameHeight:l.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(),it(),(e=i.modules.replay)==null||e.clearUserReplayData(),window.UserLeap._queue.unpause()},teardown(){["hashchange","popstate"].forEach(e=>window.removeEventListener(e,G,!0)),window.UserLeap._config.interactiveEvents&&rt(),window.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete window.UserLeap,delete window.Sprig,delete window._Sprig},integrateOptimizely(e,n=!0){var s,a;if((a=(s=window.UserLeap)==null?void 0:s._config)!=null&&a.optimizelyEnabled)try{const l=typeof e=="string"?JSON.parse(e):e;Y.setOptimizelyExperiment(l,n)}catch(l){console.warn("[Sprig] Error with integrating Optimizely data"),l instanceof Error&&window.UserLeap.reportError("integrateOptimizely",l)}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:a,variation:l})=>{const p={experiments:[{id:a.id,variation:l.key}]};window.UserLeap("integrateOptimizely",p,!1)})},importLaunchDarklyData(e){var n,s;(s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.launchDarklyEnabled?ge.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"),d.setAttribute(e,n)),setEmail:async e=>d.setAttribute(B,e),setVisitorEmail:async e=>(console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),d.setEmail(e)),_generateVideoUploadUrl:async e=>async function(n){var a;if(!n)return;const s=`${window.UserLeap._API_URL}/2/environments/integrations/upload`;try{const l=await fetch(s,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(n)});if(l.ok){const p=await l.json();return(a=p==null?void 0:p.upload)==null?void 0:a.url}return null}catch(l){console.warn("[Sprig] Error with generating video upload url"),l instanceof Error&&window.UserLeap.reportError("generateVideoUploadUrl",l)}}(e),_reportMetric(e,n){i.reportAndRegister(e,n)},_completeSessionReplay:async({surveyId:e,responseGroupUuid:n,eventDigest:s})=>{var a;return i.modules.replay?(a=i.modules.replay)==null?void 0:a._completeSessionReplay({surveyId:e,responseGroupUuid:n,eventDigest:s,headers:i.getHttpHeaders(window.UserLeap)}):(window.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)}};Object.assign(window.UserLeap,d)};async function Rt(r,t,o={},d={}){const e=window.__cfg&&window.__cfg.mode,n=he(),s=window.UserLeap.envId,a=window.document.documentElement,l={mode:e,screenWidth:window.screen.width,screenHeight:window.screen.height,clientWidth:a.clientWidth,clientHeight:a.clientHeight,location:window.location.href,language:window.navigator.language,...o},p={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:l,vid:n,envId:s,...d};(await x(R("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(p),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",t)}function Dt(r={}){const t=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";async function o(){var l;if(window.UserLeap.loaded)return;if(window.UserLeap.reportError=Rt,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 p in window.UserLeap._config)window.UserLeap[p]=window.UserLeap._config[p];if(!window.UserLeap.envId){if(!window.UserLeap.appId)throw new Error("Missing Environment id");window.UserLeap.envId=window.UserLeap.appId}window.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const d=window.UserLeap.sampleRate;if(d){let p=F("sampled");if(p===null&&(p=Math.random()<d,E("sampled",p)),!p)return}else F("sampled")!==null&&E("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const e=[...window.UserLeap._queue];window.UserLeap._queue=new yt(window.UserLeap,[]),window.UserLeap._queue.pause();for(let p=0;p<e.length;p++)window.UserLeap._queue.push(e[p]);const n=F("token");n?(window.UserLeap.token=n,window.UserLeap.visitorId=F("vid"),window.UserLeap.userId=F("uid"),window.UserLeap.partnerAnonymousId=F("aid")):(i.localStorageHelper.removeItem("userleap.ids"),it());const s=oe(i.getHttpHeaders(window.UserLeap)),a=await async function(p){const c=i.getHttpHeaders(window.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const u=await i.sprigFetch(R("1",[C],"config"),{headers:c});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!u.ok)return u.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",u.error),u.error&&window.UserLeap.reportError("applyRemoteConfig",u.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),p;const m=u.json;return m!=null&&m.disabled?(i.killNetworkRequests(`Disabled: ${m.disabled}`),{disabled:m.disabled}):Object.assign({},m,p)}(r);St({isWeb:!s,reportingIntervalSeconds:a.metricsReportingEnabled||a.mobileMetricsReportingEnabled?a.metricsReportingIntervalSeconds:0,thresholds:a.metricThresholds,postMetrics:async p=>{var c;await x(R("1",[C],"metrics"),{body:p,method:"POST",headers:{"x-ul-replay-enabled":`${!!((c=i.modules.replay)!=null&&c.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),await((l=i.modules.replay)==null?void 0:l.initializeReplay({maxReplayDurationSeconds:a.maxReplayDurationSeconds,maxInflightRequests:window.UserLeap.maxInflightReplayRequests??2,replaySettings:a.replaySettings})),_t(a),await kt(a),window.UserLeap._queue.unpause(),i.eventEmitter.emit(i.SprigEvent.SDKReady,{mobileMetricsReportingEnabled:!!a.mobileMetricsReportingEnabled,metricsReportingInterval:a.metricsReportingIntervalSeconds||0,metricsThresholds:a.metricThresholds||[],maxMobileReplayDurationSeconds:a.maxMobileReplayDurationSeconds,mobileReplaySettings:a.mobileReplaySettings}),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}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 ne{constructor(){this.UPDATES=i.EVENTS}displaySurvey(t){window.Sprig("displaySurvey",t)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(t,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={},d={}){window.Sprig("track",t,o,d)}identifyAndTrack(t){window.Sprig("identifyAndTrack",t)}trackPageView(t,o,d){window.Sprig("trackPageView",t,o,d)}applyStyles(t){window.Sprig("applyStyles",t)}setWindowDimensions(t,o){window.Sprig("setWindowDimensions",t,o)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}}const fe={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(ne.prototype).map(o=>{o!=="constructor"&&(window.Sprig[o]=ne.prototype[o])});const t=window.Sprig;return t.appId=r.envId,t._queue=[],window.UserLeap=t,Dt(r),window.Sprig}},xt={sprig:fe,SprigAPI:ne,configure:fe.configure};exports.APP_ID="ul-app",exports.ConflictingWidgets=Ne,exports.DEFAULT_BORDER_COLOR="#e6e6e6",exports.DEFAULT_WIDTH=je,exports.EMBED_MOBILE_MAX_WIDTH=1030,exports.ERROR_BORDER_COLOR="#bd282a",exports.SprigAPI=ne,exports.calculateFrameDimensions=ze,exports.core=xt,exports.resetScrollPosition=r=>{const t=r.querySelector(".ul-card__container");t&&(t.scrollTop=0)},exports.setSurveyStyles=K,exports.sprig=fe;
|