@sprig-technologies/sprig-browser 2.38.0 → 2.39.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.
@@ -0,0 +1,12 @@
1
+ "use strict";var wt=Object.defineProperty;var gt=(t,r,o)=>r in t?wt(t,r,{enumerable:!0,configurable:!0,writable:!0,value:o}):t[r]=o;var q=(t,r,o)=>gt(t,typeof r!="symbol"?r+"":r,o);const i=require("./metricsReporter-BtpOP9Ry.cjs"),Te=()=>{try{return window.parent.Intercom}catch{return null}},Me=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const t=Te();t&&(t.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),t.ul_wasVisible&&t("update",{hide_default_launcher:!0}))},enable:()=>{const t=Te();t&&(t.ul_wasVisible&&t("update",{hide_default_launcher:!1}),delete t.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class $e{static disable(){Me.forEach(r=>r.disable())}static enable(){Me.forEach(r=>r.enable())}}const qe="ul-view-sdk-script",mt=new Set(["ios","android"]),H="visitors",T="environments";async function A(t,r){var n,s,d;const{shouldDropOnRateLimit:o,...a}=r;a.headers=Object.assign(i.getHttpHeaders(window.UserLeap),a.headers);const e=await i.sprigFetch(t,{...a,shouldDropOnRateLimit:o});if(e.ok){const p=(n=e.headers)==null?void 0:n.get("Authorization"),c=p?p.split(" "):void 0,l=c&&c.length===2?c[1]:void 0,u=(s=e.headers)==null?void 0:s.get("x-ul-visitor-id");if(window.UserLeap.userId&&u===window.UserLeap.visitorId){const m=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map");m&&m[window.UserLeap.envId]===u&&(delete m[window.UserLeap.envId],i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",m))}l&&u&&(u!==window.UserLeap.visitorId||window.UserLeap.token!==l)&&(R("token",l),R("vid",u),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:u}),window.UserLeap.token=l,window.UserLeap.visitorId=u)}return(d=e.json)!=null&&d.logMessage&&console.warn(`[Sprig] ${e.json.logMessage}`),e}function R(t,r){const o=i.localStorageHelper.getItemObject("userleap.ids");let a=o[window.UserLeap.envId];a?a[t]=r:a={[t]:r},o[window.UserLeap.envId]=a,i.localStorageHelper.setItemObject("userleap.ids",o)}function Ee(){return window.previewMode?"0":window.UserLeap.visitorId??""}function D(t,r,o){const a=[window.UserLeap._API_URL,"sdk",t];return r&&r.forEach(e=>{a.push(e),e===T?a.push(window.UserLeap.envId):e===H&&a.push(Ee())}),o&&a.push(o),a.join("/")}const z=async(t,r,o)=>{var Oe,Ce,Pe;const{context:a,delay:e,avatars:n,forceBrandedLogo:s,endCard:d,isFeedback:p=!1,heatmap:c,locale:l,layout:u,previewMode:m,productConfig:g,questions:w,responseGroupUid:U,surveyId:y,uuid:h,vid:v,sessionReplay:S,studyType:E}=t,k=i.getHttpHeaders(window.UserLeap),L=J(k),C=le(k);if(S)if(L)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:U,hasQuestions:!!(w!=null&&w.length),surveyId:y,uploadId:S.uploadId,replayType:S.replayDurationType??"before",seconds:S.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:U,surveyId:y,updatedAt:new Date().toISOString(),visitorId:window.UserLeap.visitorId,isReplay:!0}});else{if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};i.modules.replay.scheduleOrCaptureReplay({responseGroupId:U,surveyId:y,visitorId:v,replayParams:S,completeUploadHeaders:k,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:w.length===0})}if(c){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:b,replayParams:M,responseGroupUid:ue,surveyId:we}=c;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 He;return(He=i.modules.replay)==null?void 0:He.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:k,eventId:b,isHeatmap:!0,replayParams:M,responseGroupId:ue,surveyId:we,triggerTimestamp:Date.now(),visitorId:v})},"Error in scheduling/capturing replay")}if(v==null||!(w!=null&&w.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:v}),{success:!1,message:"[Sprig] no survey found",surveyState:"no survey"};if(window.UserLeap.container){i.breadcrumbsLogger.info("AlreadyDisplayingSurvey");const b="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(b),{success:!1,message:b,surveyState:"no survey"}}if(v!==window.UserLeap.visitorId&&h!==window.UserLeap.visitorId&&!window.previewMode){const b="Attempted to display survey to a different visitor";return window.UserLeap.reportError("DisplaySurvey",new Error(b)),{success:!1,message:b,surveyState:"no survey"}}i.breadcrumbsLogger.info("ShowingSurvey",{surveyId:y}),(Oe=i.modules.replay)==null||Oe.RecordSurveyShown({id:y,userAgent:window.navigator.userAgent}),$e.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":y});let _,P,I,Y,X=document.createElement("div");const _e=b=>{const{"view.version":M}=b;M!==k["x-ul-sdk-version"]&&Ke(),i.eventEmitter.removeListener("verify.view.version",_e)};i.eventEmitter.on("verify.view.version",_e),window.UserLeap.useMobileStyling=C,i.shouldDirectEmbed(k)?(_="ul-direct-embeded-frame",P=document.head,I=window,Y=!1,(()=>{const b=i.getHttpHeaders(window.UserLeap),M=J(b),ue=window.UserLeap.forceDirectEmbed,we=b["userleap-platform"]==="web";return M||ue&&we})()&&(Ge(y,p),X.id=_,window.UserLeap.container.appendChild(X),Je(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":y}))):{frameId:_,contentWinDocHead:P,contentWindow:I,hasOverlay:Y,iframe:X}=vt({productConfig:g,useMobileStyling:C,surveyId:y,isFeedback:p}),window.UserLeap.frameId=_;const V={apiURL:window.UserLeap._API_URL,avatars:n,cards:w,configureExitOnOverlayClick:b=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,b)},context:a,endCard:d,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:s,frame:X,headers:k,layout:u,locale:l,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.localStorageHelper.getItem("sprig.previewKey"),previewMode:m,productConfig:{framePosition:g==null?void 0:g.framePosition,desktopDisplay:g==null?void 0:g.desktopDisplay,placement:g==null?void 0:g.placement},responseGroupUid:U,startingQuestionIdx:(Ce=window.UserLeap.config)==null?void 0:Ce.startingQuestionIdx,studyType:E,styleNonce:window.UserLeap.styleNonce,surveyId:y,tabTitle:document.title,trackPageViewUrl:r,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:C,userId:h,viewDocument:I==null?void 0:I.document,viewWindow:I,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},...window.UserLeap._config};(Pe=window.UserLeap._config)!=null&&Pe.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const ut=(p?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??g.customStyles;V.customStyles=ut,I&&(I.__cfg=V);const pe=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:V.path,De=document.getElementById(qe);De&&De.remove();const ce=function(){const b=document.createElement("script");return window.UserLeap.nonce&&b.setAttribute("nonce",window.UserLeap.nonce),b.id=qe,b}(),xe=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(V.installationMethod==="web-npm"||V.installationMethod==="web-npm-bundled"){const{default:b}=await Promise.resolve().then(()=>require("./view-DSmDY1mu.cjs")).then(M=>M.view);b.configure(V),Y&&window.UserLeap.container&&xe()}else pe&&(ce.src=pe,Y&&ce.addEventListener("load",()=>{window.UserLeap.container&&xe()}),I==null||I.addEventListener("error",b=>{b.target instanceof HTMLScriptElement&&b.target.src===pe&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));P==null||P.appendChild(ce);const Ae={success:!0,surveyState:"ready",surveyId:y,responseGroupUid:U};return window.UserLeap.isMobileSDK&&e&&(Ae.delay=e),Ae};function le(t){var o;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const r=((o=window.UserLeap.windowDimensions)==null?void 0:o.width)??document.body.clientWidth;return J(t)||r>10&&r<500}function J(t){return mt.has(t["userleap-platform"])}const Ie="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 ge="0px",Ge=(t,r,o)=>{window.UserLeap.container=document.createElement("div"),window.UserLeap.container.className="ul-container"+(r?" ul-container-feedback":""),t&&(window.UserLeap.container.dataset.studyId=t.toString());const a=Xe();o&&a&&!window.UserLeap.useMobileStyling?a.appendChild(window.UserLeap.container):document.body.appendChild(window.UserLeap.container)},Ke=(t,r)=>{var a;ht();const o=window.UserLeap.container;if(o)try{(a=o.parentNode)==null||a.removeChild(o),window.UserLeap.container=null,R("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:t,"survey.id":parseInt(o.dataset.studyId),...r&&{studyType:r}})}catch(e){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${t} `+o),e instanceof Error&&window.UserLeap.reportError("dismissActiveSurvey",e)}},Je=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:t,studyType:r})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),Ke(t,r)})},yt=(t,r,o,a)=>{var l,u;const e={position:"fixed",bottom:"0px",right:ge,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({},r,window.UserLeap),{desktopDisplay:s}=r||{},d=s==="center-modal";let p;d&&(n.framePosition="center");let c=!1;if(o)(l=window.UserLeap.windowDimensions)!=null&&l.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)&&(c=!0);else{e.width="360px",e.maxHeight=window.UserLeap.maxHeight||"66vh";const m=()=>{c=!0,p={margin:"auto",position:"static"}};if(a)d?m():p={position:"relative",height:"300px"};else switch(n.framePosition){case"bottomLeft":p={left:ge};break;case"topLeft":p={left:ge,top:0};break;case"topRight":p={top:0};break;case"center":m()}}return c&&((m,g)=>{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},U=g?m.overlayStyleMobile:m.overlayStyle;w["background-color"]=U==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",g||(w.margin="auto"),window.UserLeap.container&&Object.assign(window.UserLeap.container.style,w)})(n,o),Object.assign(t.style,e,p),c},vt=({productConfig:t,useMobileStyling:r,surveyId:o,isFeedback:a})=>{var m,g;const e=Ie,n=a&&t.desktopDisplay==="slider";Ge(o,a,n),ft();const s=document.createElement("iframe");s.id=e,s.setAttribute("title","Sprig User Feedback Dialog");const d=yt(s,t,r,a);Je();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 c=!1;s.setWidth=w=>{parseInt(s.style.width)==w&&c||(c=!0,s.style.width=`${w}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:w,"survey.id":o}))},(m=window.UserLeap.container)==null||m.appendChild(s),t&&(r?t.exitOnOverlayClickMobile:t.exitOnOverlayClick)&&window.UserLeap.container&&(window.UserLeap.container.onclick=()=>{i.eventEmitter.emit(i.SprigEvent.CloseSurveyOnOverlayClick)}),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":o});const l=(g=s.contentWindow)==null?void 0:g.document;if(l&&(l.open("text/html","replace"),l.write("<!doctype html><head></head><body></body></html>"),l.close(),!r)){const w=l.body;w.style.display="flex",w.style.alignItems="center"}const u=l==null?void 0:l.head;return{frameId:e,contentWinDocHead:u,contentWindow:s.contentWindow,hasOverlay:d,iframe:s}},Qe={[i.SprigEvent.SurveyFadingOut]:()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},ft=()=>{Object.entries(Qe).forEach(([t,r])=>{i.eventEmitter.on(t,r)})},ht=()=>{Object.entries(Qe).forEach(([t,r])=>{i.eventEmitter.off(t,r)})},x=t=>!!t&&t.nodeType===Node.ELEMENT_NODE,je=t=>t instanceof HTMLElement||t instanceof SVGElement,Q=({document:t,elementId:r,styleString:o,nonce:a})=>{const e=t.getElementById(r);if(e)return void(e.textContent=o);const n=t.createElement("style");a&&(n.nonce=a),n.textContent=o,n.id=r,t.head.appendChild(n)},St=(t,r)=>{const o=r.querySelector(".sprig-question-body");if(!x(o))return t;const a=o.scrollHeight;return a<100?t:t-(a-100)},Fe=(t,r)=>{const o=r.querySelector(t);if(!x(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))},Ye=(t,r,o)=>{const a=t.querySelector(".ul-card__container"),e=t.querySelector(".ul-app");let n=600,s=360,d=0;if(x(a)&&x(e)){const p=a.querySelector(".ul-card--matrix_grid"),c=!p&&r&&o;try{c&&(e.style.width="360px"),n=a.clientHeight,n+=(m=>{const g=m.querySelector(".sprig-question-body"),w=m.querySelector(".ul-card"),U=m.querySelector(".ul-card-main-content"),y=m.querySelector(".ul-footer"),h=m.querySelector(".sprig-container");let v=0;return x(w)&&(v+=w.scrollHeight-w.clientHeight),x(U)&&(v+=U.scrollHeight-U.clientHeight),x(g)&&(v+=g.scrollHeight-g.clientHeight),x(y)&&x(h)&&h.clientHeight===0&&(v+=y.clientHeight),v})(t);const l=getComputedStyle(a);d=n;const u=parseFloat(l.marginTop)+parseFloat(l.marginBottom);n+=u+(parseFloat(l.borderTopWidth)+parseFloat(l.borderBottomWidth)),p&&(s=p.scrollWidth,s+=Fe(".ul-card__container",t),s+=Fe(".sprig-question-body",t))}finally{c&&e.style.removeProperty("width")}}return[n+1,s,St(d,t)]},Xe=()=>f,N=()=>document.getElementById("sprig-feedback-container"),fe=()=>document.getElementById("sprig-feedback-loading-animation"),Ze=()=>!!document.getElementById(Ie);let Ve=!1,f=null,O=null,ke=!1,$=null,j=null;const bt=["bottom-left","bottom-right","center-left","center-right"],te=()=>{var r;const t=window.UserLeap.container;return((r=t==null?void 0:t.parentElement)==null?void 0:r.id)==="sprig-feedback-loading-container"},et=()=>document.getElementById("sprig-feedback-error-container"),tt=()=>{if(!f)return 0;const t=f==null?void 0:f.clientWidth,r=window.getComputedStyle(f);return t+parseInt(r.borderRightWidth||"0")+parseInt(r.borderLeftWidth||"0")},re=t=>{const r=N();r&&(j!=null&&j.endsWith("right")?r.style.right=`${t}px`:j!=null&&j.endsWith("left")&&(r.style.left=`${t}px`))},me=()=>{if(f&&(te()||et())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,W),he();const t=tt();return re(-t),!0}return!1},W=()=>{if(!f||!O)return;const t=fe();t&&t.remove(),f.style.height="auto",f.style.width="auto",O.disabled=!1,ke=!1},he=()=>{if(f&&!fe()){const t=(()=>{if(fe())return;const r=document.createElement("div");return r.className="ul-loading-spinner-container",r.id="sprig-feedback-loading-animation",r.role="progressbar",r.setAttribute("aria-live","polite"),r.setAttribute("aria-busy","true"),r.setAttribute("aria-label","Processing..."),r.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
+ `,r})();t&&(f.style.height="300px",f.style.width="360px",f.appendChild(t))}},Ne=()=>{f&&O&&(re(0),O.disabled=!0,ke=!0)},rt=async(t,r,o)=>{const{buttonTheme:a,customStyles:e,eventId:n,placement:s,desktopDisplay:d,feedbackLabel:p,surveyUuid:c,surveyId:l}=t;window.UserLeap.feedbackCustomStyles=void 0;let u=N();if(u){if(!r&&n===$)return;u.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,me)}$=n,Q({document,elementId:"sprig-feedback-style",styleString:'.ul-loading-spinner-container{font-size:1.8rem;flex-grow:1;width:100%;height:100%;display:flex;align-items:center;justify-content:center}.ul-loading-spinner{display:inline-block;position:relative;width:6rem;height:6rem}.ul-loading-spinner div{box-sizing:border-box;display:block;position:absolute;width:80%;height:80%;margin:5px;border:5px solid #152e3e;border-radius:50%;animation:lds-ring 1.2s cubic-bezier(.5,0,.5,1) infinite;border-color:#152e3e transparent transparent transparent}.ul-loading-spinner .first{animation-delay:-.45s}.ul-loading-spinner .second{animation-delay:-.3s}.ul-loading-spinner .third{animation-delay:-.15s}@keyframes lds-ring{0%{transform:rotate(0)}to{transform:rotate(360deg)}}.fade-in-transition{animation:fadeIn .4s ease-in}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}#sprig-feedback-button{border-left:0;border-radius:0 8px 8px 0;display:grid;padding:8px;text-align:center;transition:all ease-in-out 1s;z-index:inherit}#sprig-feedback-button:hover{cursor:pointer}.sprig-feedback-button-label{writing-mode:vertical-lr;text-orientation:sideways}.sprig-feedback-button-right{transform:rotate(180deg)}.sprig-feedback-button-bottom{align-self:flex-end;margin-bottom:20px}.sprig-feedback-button-light{background:#efefee;color:#000;border:1px solid #e2e3e1}.sprig-feedback-button-dark{background:#000;color:#fff;border:1px solid #000000}#sprig-feedback-container{display:flex;align-items:center;position:fixed;transition:right .2s linear,left .2s linear;z-index:2147483646}.sprig-feedback-container-left{flex-flow:row-reverse}.sprig-feedback-container-center{top:50%;transform:translateY(-50%)}.sprig-feedback-container-bottom{bottom:0%;margin-bottom:15px}.sprig-feedback-loading-container{align-items:center;background-color:#fff;border:2px solid var(--feedback-border);display:flex;max-height:90vh;max-width:90vw;min-width:0px}.sprig-feedback-loading-container-left{border-left:none;border-radius:0 8px 8px 0}.sprig-feedback-loading-container-right{border-right:none;border-radius:8px 0 0 8px}#sprig-feedback-error-container{margin:auto;text-align:center;width:360px}.sprig-feedback-error-text{font-weight:400;font-family:-apple-system,BlinkMacSystemFont,Segoe UI,Roboto,Helvetica,Arial,sans-serif,"Apple Color Emoji","Segoe UI Emoji",Segoe UI Symbol}#sprig-feedback-loading-container .ul-container{position:relative;max-height:inherit}#sprig-feedback-loading-animation{position:absolute}.sprig-feedback-loading-container-previews iframe{max-height:inherit!important}',nonce:window.UserLeap.styleNonce}),Q({document,elementId:"ul-custom-style",styleString:e??"",nonce:window.UserLeap.styleNonce}),Ve=d==="center-modal",j=s;const[m,g]=s.split("-");(h=>{if(N()||!bt.includes(h))return;const[v,S]=h.split("-"),E=document.createElement("div");E.id="sprig-feedback-container",E.classList.add(`sprig-feedback-container-${S}`,`sprig-feedback-container-${v}`),document.body.appendChild(E)})(s),u=N(),O=document.createElement("button");const w=document.createElement("div");w.className="sprig-feedback-button-label",w.innerText=p,O.appendChild(w),O.id="sprig-feedback-button",O.classList.add(`sprig-feedback-button-${g}`,`sprig-feedback-button-${m}`,`sprig-feedback-button-${a}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,me),O.addEventListener("click",async()=>{const h=document.getElementById("sprig-feedback-error-container");if(Ze()||et()){if(me()){i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":l});const S=N();h&&S&&(S.remove(),$=null,f=null)}return}if(le(i.getHttpHeaders(window.UserLeap))||ke||Ne(),r)return f&&f.classList.add("sprig-feedback-loading-container-previews"),await z(r),void W();const v=await(async S=>{const E=await A(D("1",[H],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:S}),method:"POST"});return E.ok?E.json:null})(c);if(v)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,W),z({...v,studyType:"feedbackButton"},o);else if(f){const S=Lt();f.appendChild(S),W(),f.style.height="300px",f.style.width="360px"}}),u==null||u.appendChild(O),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":l});const{useMobileStyling:U,_config:{border:y}}=window.UserLeap;if(Ve||U)re(0);else{const h=document.createElement("div");h.id="sprig-feedback-loading-container",h.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${g}`,h.style.setProperty("--feedback-border",y),f=h,he(),u==null||u.appendChild(h);const v=tt();re(-v)}window.UserLeap._config.isOnQuestionsTab&&r&&!te()&&f&&(Ne(),he(),f&&f.classList.add("sprig-feedback-loading-container-previews"),z(r),W())},Lt=()=>{const t=document.createElement("div");t.id="sprig-feedback-error-container",t.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 r=document.createElement("h3");return r.className="sprig-feedback-error-text",r.innerText="There was an error while loading the survey",t.appendChild(r),t},Se=new class{constructor(){q(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(t){try{return!(!t||typeof t!="object"||Array.isArray(t))&&(Object.keys(this._ldData).forEach(r=>{delete this._ldData[r]}),Object.keys(t).forEach(r=>this._ldData[`!launch_darkly_${r}`]=(t[r]??0)+1),!0)}catch(r){return r instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",r),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}};Object.freeze(Se);const ee=new class{constructor(){q(this,"_optimizelyData",{})}setOptimizelyExperiment(t,r=!0){if(!t||typeof t!="object")return!1;const{experiments:o}=t;try{return r&&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(t){return this._optimizelyData[this.transformExperimentId(t)]}transformExperimentId(t){return"!optimizely_experiments_"+t}getAndSetWebOptimizelyExperiments(){var t;try{if(window&&window.optimizely&&typeof window.optimizely.get=="function"){const r=(t=window.optimizely.get("state"))==null?void 0:t.getExperimentStates({isActive:!0});if(r){const o=Object.keys(r).map(a=>{var e,n;return(e=r[a].variation)!=null&&e.name?{id:a,variation:(n=r[a].variation)==null?void 0:n.name}:{id:a,variation:"Original"}});return this.setOptimizelyExperiment({experiments:o},!1),!0}return!1}return!1}catch(r){return r instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",r),!1}}};Object.freeze(ee);class Ut{constructor(r,o){q(this,"paused");q(this,"queue");q(this,"ul");this.ul=r,this.paused=!1,this.queue=[],this.flush(o)}flush(r){const o=r.length;if(o)for(let a=0;a<o;a++)this.push(r[a])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const r=this.queue.slice();this.empty(),this.flush(r)}push(r){if(this.paused)this.queue.push(r);else if(r instanceof Function)r();else{const o=Array.prototype.slice.call(r,1),a=r[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(r){if(this.paused){let o=()=>{};const a=new Promise(function(e){o=function(){e(r())}});return this.queue.push(o),a}return r()}empty(){this.queue.length=0}}let it,nt;const be=t=>{let r=0,o=t.firstElementChild;for(;o;)r+=be(o),o.shadowRoot&&(r+=be(o.shadowRoot)),o=o.nextElementSibling,r++;return r},Be=()=>{it.report(be(document.body)),nt.report(document.documentElement.innerHTML.length)},Le=(t,r)=>{const o=performance.now();document.hidden?setTimeout(()=>Le(t,r),t):setTimeout(()=>{const a=performance.now()-o;r.report(a/1e3),setTimeout(()=>Le(t,r),t)},0)};let ie,ne,oe,se,We,F={};const Z=(t,r=1)=>{const{name:o}=t;F[o]=(F[o]||0)+r},ot=t=>{let r=1;return t.childNodes.forEach(o=>{r+=ot(o)}),r},ze=t=>{let r=0;return t.forEach(o=>{r+=ot(o)}),r},Et=t=>{switch(t.type){case"childList":return Z(ie,ze(t.addedNodes)),void Z(ne,ze(t.removedNodes));case"attributes":return void Z(oe);case"characterData":return void Z(se)}},It=t=>t.forEach(Et),kt=()=>{ie.report(F[ie.name]||0),ne.report(F[ne.name]||0),oe.report(F[oe.name]||0),se.report(F[se.name]||0),F={}},Rt=(t=1e3)=>{ie=i.registerMetric("sdk_mutations_nodes_added"),ne=i.registerMetric("sdk_mutations_nodes_removed"),oe=i.registerMetric("sdk_mutations_attributes_changed"),se=i.registerMetric("sdk_mutations_character_data"),We=new MutationObserver(It),We.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(kt,t)},_t=({isWeb:t,reportingIntervalSeconds:r,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:r,postMetrics:a}),t&&(((e=1e3)=>{const n=i.registerMetric("sdk_event_queue_latency_seconds");Le(e,n)})(),((e=1e4)=>{it=i.registerMetric("sdk_dom_nodes_count"),nt=i.registerMetric("sdk_page_html_characters"),Be(),setInterval(Be,e)})(),Rt())},Dt="test",xt=["popState","pushState","replaceState"];let Re,G;const ae={},B="!email",st="pageUrl";let ye=window.location.href;function K(t){var d,p;const{pageUrlEvents:r,interactiveEvents:o,dismissOnPageChange:a,platform:e}=window.UserLeap._config;if(e&&e!=="web")return;ye!==window.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:ye,to:window.location.href}),ye=window.location.href;const n=lt().trackStartUrl,s=n?String(n):null;r&&ct(window.location.href),o&&(dt(),At()),Xe()&&(()=>{if(te())return;const c=N();c&&(i.checkUrlStillMatching($)||(c.remove(),$=null,f=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((p=(d=i.modules.replay)==null?void 0:d.checkPendingHeatmapsUrl())==null||p.then(c=>{var l;c&&((l=i.modules.replay)==null||l.uploadReadyPendingCaptures(!0))})),!te()&&a&&s&&s!==window.location.href&&t&&xt.includes(t.type)&&window.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const at={capture:!0},At=()=>{const t=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(je(d.target))try{d.target.closest(n)&&window.UserLeap("track",a)}catch{}return!1}:d=>(je(d.target)&&d.target.innerText===s&&window.UserLeap("track",a),!1)}),r=o=>t.forEach(a=>a(o));window.UserLeap._config.interactiveEventsHandler=r,window.addEventListener("click",r,at)},dt=()=>{window.UserLeap._config.interactiveEventsHandler&&window.removeEventListener("click",window.UserLeap._config.interactiveEventsHandler,at),delete window.UserLeap._config.interactiveEventsHandler};function lt(){const t=i.localStorageHelper.getItemObject("userleap.ids");return t&&t[window.UserLeap.envId]||{}}function pt(){if(window.previewMode)return;const t=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map")||{},r=t[window.UserLeap.envId];window.UserLeap.visitorId=r||i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:window.UserLeap.visitorId}),R("vid",window.UserLeap.visitorId),r||(t[window.UserLeap.envId]=window.UserLeap.visitorId,i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",t)),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:window.UserLeap.visitorId})}function ct(t,r,o,a){var e,n;try{if(t.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:t});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:t,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],t),!p);l++);if(!p)return;window.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",t);const c={url:t};a&&(c.trackPageView=!0),window.UserLeap._queue.push(["track",st,r,c,o])}catch(s){s instanceof Error&&(s.stack=t,window.UserLeap.reportError("trackPageView",s)),console.warn("[Sprig] (ERR-428) Failed to track page view",s)}}function Ot(){const t="Backbone"in window&&window.Backbone&&window.Backbone.history?window.Backbone.history:window.history;"pushState"in t&&(t.pushState=(r=>function(...o){const a=r.apply(this,o),e=new Event("pushState");return window.dispatchEvent(e),K(e),a})(t.pushState)),"replaceState"in t&&(t.replaceState=(r=>function(...o){const a=r.apply(this,o),e=new Event("replaceState");return window.dispatchEvent(e),K(e),a})(t.replaceState)),["hashchange","popstate"].forEach(r=>window.addEventListener(r,K,!0))}async function ve(t,r){const o=Ee();t&&!r&&(window.UserLeap._config.mode=Dt);const a=le(i.getHttpHeaders(window.UserLeap)),e=await A(function(n){const s=new URL(D("1",[T],"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:t==null?void 0:t.surveyId,surveytemplateid:t==null?void 0:t.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,Re);{const{feedbackLabel:n,productConfig:s,surveyUuid:d,feedbackCustomStyles:p}=e.json,{buttonTheme:c,placement:l,desktopDisplay:u}=s;rt({customStyles:p,buttonTheme:c,desktopDisplay:u,eventId:0,feedbackLabel:n,placement:l,surveyUuid:d,surveyId:t==null?void 0:t.surveyId},e.json)}}function Ct(t){if(!t)return;window.UserLeap._config=t,t.mute&&window.UserLeap._queue.pause();const{interactiveEvents:r,pageUrlEvents:o,dismissOnPageChange:a}=t;r&&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}}(r),(r||o||a)&&(Ot(),K())}const Pt=function(t){if(!window.UserLeap)return;const r=async(e={})=>{var h,v,S,E,k;const{userId:n,anonymousId:s,metadata:d={},properties:p,showSurveyCallback:c}=e;let{eventName:l}=e;if(window.UserLeap.debugMode&&l!==st&&console.info("[DEBUG] Sprig track",e),t.mode==="test")return;const u=i.localStorageHelper.getItem("sprig.previewKey")??void 0;if(t.requireUserIdForTracking&&!window.UserLeap.userId&&!n){const L="[Sprig] - Skipping tracking without userId";return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}if(!l||l.trim().length===0){l=l?String(l):"";const L="[Sprig] - Invalid event name "+l;return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}const m=G??window.location.href;d.url||(d.url=m),R("trackStartUrl",m),(v=(h=window.UserLeap)==null?void 0:h._config)!=null&&v.optimizelyEnabled&&(J(i.getHttpHeaders(window.UserLeap))||ee.getAndSetWebOptimizelyExperiments(),d.optimizelyExperiments=Object.assign({},ee.getAllOptimizelyExperiments())),(E=(S=window.UserLeap)==null?void 0:S._config)!=null&&E.launchDarklyEnabled&&(d.launchDarklyFlags=Se.getAllLaunchDarklyVariations()),n&&(window.UserLeap.userId=n),s&&(window.UserLeap.partnerAnonymousId=s),p&&(d.eventProperties=p),(k=i.modules.replay)==null||k.RecordEvent({name:l,url:d.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:l});const g=window.UserLeap.delayingSurvey||Ze()?await A(D("1",[H],"events/batch"),{body:JSON.stringify({events:[{event:l,metadata:d}],previewKey:u}),method:"POST",shouldDropOnRateLimit:!0}):await A(D("1",[H],"events"),{body:JSON.stringify({event:l,metadata:d,previewKey:u}),method:"POST",shouldDropOnRateLimit:!0});if(!g.ok){const L="[Sprig] (ERR-421) Failed to track event";return g.reportError&&(console.warn(L,g.error),g.error&&window.UserLeap.reportError("track",g.error)),{success:!1,message:L,error:g.error,surveyState:"no survey"}}n&&R("uid",n),s&&R("aid",s);const w=g.json;w.invalidPreviewKey&&i.localStorageHelper.removeItem("sprig.previewKey");const U=d.trackPageView?d.url:void 0;return w!=null&&w.feedbackButton&&rt(w.feedbackButton,void 0,U),await async function(L,C){var P,I;let _=!0;return!(C&&((P=L==null?void 0:L.json)!=null&&P.surveyId)&&(window.UserLeap.delayingSurvey=!0,_=await C(L.json.surveyId),window.UserLeap.delayingSurvey=!1,!_))&&((I=L==null?void 0:L.json)!=null&&I.delay&&!window.UserLeap.isMobileSDK&&(window.UserLeap.delayingSurvey=!0,await i.delay(L.json.delay),window.UserLeap.delayingSurvey=!1),_)}(g,c)?function(L){if(!window.UserLeap._config.dismissOnPageChange)return!0;const C=new URL(L),_=new URL(G??window.location.href);return C.hostname===_.hostname&&C.pathname===_.pathname}(m)?z(w,U,Re):{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="${Ie}"]`))==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),ve({surveyId:e},!0)),_previewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),ve({surveyTemplateId:e},!1)},_reviewSurvey(e){window.UserLeap("dismissActiveSurvey",i.DismissReason.Override),ve({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),t.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(t.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 u of l)d[u]===ae[u]&&delete d[u]}if(!(d&&Object.keys(d).length!==0||n&&window.UserLeap.userId!==n||s&&window.UserLeap.partnerAnonymousId!==s))return{success:!0};const p={};let c;return n&&(p.userId=window.UserLeap.userId=n),s&&(p.partnerAnonymousId=window.UserLeap.partnerAnonymousId=s),d&&Object.keys(d).length>0?(c=await A(D("1",[T,H],"attributes"),{body:JSON.stringify(d),method:"PUT"}),c.ok?Object.assign(ae,d):c.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",c.error),c.error&&window.UserLeap.reportError("identifyAndSetAttributes",c.error))):c=await A(D("1",[T,H]),{body:JSON.stringify(p),method:"PUT"}),d&&d[B]&&(window.UserLeap.email=d[B]),c.ok&&(n&&R("uid",n),s&&R("aid",s)),{success:!!c.ok}},async removeAttributes(e){if(window.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",e),t.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(t.requireUserIdForTracking&&!window.UserLeap.userId){const s="[Sprig] - Skipping tracking without userId";return console.warn(s),{success:!1,message:s}}const n=await A(D("1",[T,H],"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(t.mode==="test"||e===window.UserLeap.userId)return;window.UserLeap.userId=e;const n=window.UserLeap.visitorId,s=await A(D("1",[T,H]),{body:JSON.stringify({userId:e}),method:"PUT"});s.ok?(n!==window.UserLeap.visitorId&&((d=i.modules.replay)==null||d.clearUserReplayData()),R("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,R("aid",e),{success:!0}},track:async(e,n,s={},d=void 0)=>r({eventName:e,properties:n,metadata:s,showSurveyCallback:d}),identifyAndTrack:async e=>await r(e),trackPageView(e,n=void 0,s=void 0,d=!0){G=e,ct(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 m,g;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),c=le(p),l=p["userleap-platform"]==="web";if(!window.UserLeap.frameId)return;const u=document.getElementById(window.UserLeap.frameId);u&&(window.UserLeap.useMobileStyling&&((m=window.UserLeap.windowDimensions)!=null&&m.width&&(u.style.width=`${window.UserLeap.windowDimensions.width}px`),(g=window.UserLeap.windowDimensions)!=null&&g.height&&(u.style.maxHeight=window.UserLeap.windowDimensions.height-20+"px"),u.contentDocument&&(u.style.height=String(Ye(u.contentDocument,l&&!c,i.shouldDirectEmbed(p))[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:u.clientWidth,contentFrameHeight:u.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(),pt(),(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&&dt(),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;ee.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 c={experiments:[{id:d.id,variation:p.key}]};window.UserLeap("integrateOptimizely",c,!1)})},importLaunchDarklyData(e){var n,s;(s=(n=window.UserLeap)==null?void 0:n._config)!=null&&s.launchDarklyEnabled?Se.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 c=await p.json();return(d=c==null?void 0:c.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,c;(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),(c=(p=i.modules.replay)==null?void 0:p.recordFullSnapshot)==null||c.call(p))}};Object.assign(window.UserLeap,a)};async function Ht(t,r,o={},a={}){const e=window.__cfg&&window.__cfg.mode,n=Ee(),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},c={action:t,breadcrumbs:i.breadcrumbsLogger.breadcrumbs,err:{message:`${r==null?void 0:r.name} - ${r==null?void 0:r.message}`,stack:r==null?void 0:r.stack},meta:p,vid:n,envId:s,...a};(await A(D("1",null,"errors"),{method:"POST",headers:{"x-ul-error":window.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(c),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",r)}function Tt(t={}){var a;(a=window.SprigLoggerCallback)==null||a.call(window,"Initializing Sprig");const r=new URLSearchParams(window.location.search).get("sprigPreviewKey")??"";async function o(){var u,m,g,w,U;if(window.UserLeap.loaded)return;if((u=window.SprigLoggerCallback)==null||u.call(window,"Loading Sprig"),window.UserLeap.reportError=Ht,window.UserLeap.loaded=!0,window.UserLeap._config=Object.assign({},t,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&&(t.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=lt(),n=window.UserLeap.sampleRate;let s=e.sampled;if(n){if(s===null&&(s=Math.random()<n,R("sampled",s)),!s)return}else s!==null&&R("sampled",null);window.UserLeap._API_URL||(window.UserLeap._API_URL="https://api.sprig.com");const d=[...window.UserLeap._queue];window.UserLeap._queue=new Ut(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):pt();const c=J(i.getHttpHeaders(window.UserLeap));(m=window.SprigLoggerCallback)==null||m.call(window,"Sprig fetching config");const l=await async function(y){var E,k;const h=i.getHttpHeaders(window.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const v=await i.sprigFetch(D("1",[T],"config"),{headers:h});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!v.ok)return(E=window.SprigLoggerCallback)==null||E.call(window,"Sprig config fetch failed"),v.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",v.error),v.error&&window.UserLeap.reportError("applyRemoteConfig",v.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),y;const S=v.json;return S!=null&&S.disabled?((k=window.SprigLoggerCallback)==null||k.call(window,"Sprig config fetch disabled"),i.killNetworkRequests(`Disabled: ${S.disabled}`),{disabled:S.disabled}):Object.assign({},S,y)}(t);if((g=window.SprigLoggerCallback)==null||g.call(window,"Sprig fetched config"),_t({isWeb:!c,reportingIntervalSeconds:l.metricsReportingEnabled||l.mobileMetricsReportingEnabled?l.metricsReportingIntervalSeconds:0,thresholds:l.metricThresholds,postMetrics:async y=>{var h;await A(D("1",[T],"metrics"),{body:y,method:"POST",headers:{"x-ul-replay-enabled":`${!!((h=i.modules.replay)!=null&&h.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),!c){const y=l.alwaysOnReplay?{userAgent:window.navigator.userAgent,surveyId:l.alwaysOnReplay.surveyId,responseGroupUuid:l.alwaysOnReplay.responseGroupUuid,sdkVersion:"2.39.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})),Re=l.replaySettings}Pt(l),await Ct(l),window.UserLeap._queue.unpause(),(U=window.SprigLoggerCallback)==null||U.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 ae)delete ae[y]})}window.UserLeap.UPDATES=i.EVENTS,window.UserLeap("setPreviewKey",r),document.readyState==="complete"?o():window.attachEvent?window.attachEvent("onload",o):window.addEventListener("load",()=>{o()},!1)}class de{constructor(){q(this,"UPDATES",i.EVENTS)}displaySurvey(r){window.Sprig("displaySurvey",r)}mute(){window.Sprig("mute")}unmute(){window.Sprig("unmute")}dismissActiveSurvey(){window.Sprig("dismissActiveSurvey")}setAttribute(r,o){window.Sprig("setAttribute",r,o)}setAttributes(r){window.Sprig("setAttributes",r)}identifyAndSetAttributes(r){window.Sprig("identifyAndSetAttributes",r)}removeAttributes(r){window.Sprig("removeAttributes",r)}addListener(r,o){window.Sprig("addListener",r,o)}removeListener(r,o){window.Sprig("removeListener",r,o)}removeAllListeners(){window.Sprig("removeAllListeners")}setEmail(r){window.Sprig("setAttribute","!email",r)}setUserId(r){window.Sprig("setUserId",r)}setPartnerAnonymousId(r){window.Sprig("setPartnerAnonymousId",r)}track(r,o={},a={}){window.Sprig("track",r,o,a)}identifyAndTrack(r){window.Sprig("identifyAndTrack",r)}trackPageView(r,o,a){window.Sprig("trackPageView",r,o,a)}applyStyles(r){window.Sprig("applyStyles",r)}setWindowDimensions(r,o){window.Sprig("setWindowDimensions",r,o)}logoutUser(){window.Sprig("logoutUser")}teardown(){window.Sprig("teardown")}pauseReplayRecording(){window.Sprig("pauseReplayRecording")}resumeReplayRecording(){window.Sprig("resumeReplayRecording")}}const Ue={configure:t=>{if(!t.envId&&!t.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(t.envId||(t.envId=t.environmentId??""),t.installationMethod="web-npm",window.Sprig)return window.Sprig;window.Sprig=function(){window.Sprig._queue.push(arguments)},Object.getOwnPropertyNames(de.prototype).map(o=>{o!=="constructor"&&(window.Sprig[o]=de.prototype[o])});const r=window.Sprig;return r.appId=t.envId,r._queue=[],window.UserLeap=r,Tt(t),window.Sprig}},Mt={sprig:Ue,SprigAPI:de,configure:Ue.configure};exports.APP_ID="ul-app",exports.ConflictingWidgets=$e,exports.DEFAULT_BORDER_COLOR="#e6e6e6",exports.DEFAULT_WIDTH_PX=360,exports.EMBED_MOBILE_MAX_WIDTH=1030,exports.ERROR_BORDER_COLOR="#bd282a",exports.SprigAPI=de,exports.calculateFrameDimensions=Ye,exports.core=Mt,exports.isHTMLElement=x,exports.isiOS=t=>t["userleap-platform"]==="ios",exports.resetScrollPosition=t=>{const r=t.querySelector(".ul-card__container");r&&(r.scrollTop=0)},exports.setSurveyStyles=Q,exports.sprig=Ue;
package/dist/core.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-Dwax9lmE.cjs"),e=require("./core-KnMHq__4.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.SprigEvent,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const i=require("./metricsReporter-BtpOP9Ry.cjs"),e=require("./core-_Z8BkMvO.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
@@ -1664,6 +1664,7 @@ type SprigEventMap = {
1664
1664
  declare const eventEmitter: Emitter<SprigEventMap>;
1665
1665
  type SprigEventEmitter = typeof eventEmitter;
1666
1666
 
1667
+ type StudyLayout = "default" | "conversational";
1667
1668
  type FramePosition = "bottomLeft" | "bottomRight" | "center" | "topLeft" | "topRight";
1668
1669
  type Platform = "email" | "link" | "web";
1669
1670
  type InstallationMethod = "web-npm" | "web-npm-bundled" | "web-gtm" | "web-segment" | "android-segment" | "react-native-segment" | "ios-segment" | "web-snippet";
@@ -1673,6 +1674,16 @@ interface Answer {
1673
1674
  }
1674
1675
  type FeedbackPlacement = "center-left" | "center-right" | "bottom-left" | "bottom-right";
1675
1676
  type FeedbackDesktopDisplay = "center-modal" | "slider";
1677
+ interface Avatars {
1678
+ agentAvatar: {
1679
+ "1x": string;
1680
+ "2x": string;
1681
+ };
1682
+ respondentAvatar: {
1683
+ "1x": string;
1684
+ "2x": string;
1685
+ };
1686
+ }
1676
1687
  interface AppProductConfig {
1677
1688
  framePosition?: FramePosition;
1678
1689
  desktopDisplay?: FeedbackDesktopDisplay;
@@ -1682,6 +1693,7 @@ interface Config extends MobileReplayConfig {
1682
1693
  allResponses: unknown[];
1683
1694
  answers?: Answer[];
1684
1695
  apiURL: string;
1696
+ avatars: Avatars;
1685
1697
  /** @example "#000000" */
1686
1698
  border: string;
1687
1699
  cards: Card[];
@@ -1740,9 +1752,11 @@ interface Config extends MobileReplayConfig {
1740
1752
  installationMethod?: InstallationMethod;
1741
1753
  interactiveEvents: InteractiveEvent[];
1742
1754
  interactiveEventsHandler?: (e: MouseEvent) => void;
1755
+ isConversationalUI?: boolean;
1743
1756
  isOnQuestionsTab?: boolean;
1744
1757
  isPreview?: boolean;
1745
1758
  launchDarklyEnabled?: boolean;
1759
+ layout: StudyLayout;
1746
1760
  locale: string;
1747
1761
  logBufferLimit?: number;
1748
1762
  marketingUrl?: string;
package/dist/core.js CHANGED
@@ -1,5 +1,5 @@
1
- import { D as r, S as e } from "./metricsReporter-DuZDhNKr.js";
2
- import { S as o, c as p, s as t } from "./core-CYOlhSpx.js";
1
+ import { D as r, S as e } from "./metricsReporter-Bm14xa4G.js";
2
+ import { S as o, c as p, s as t } from "./core-BFvjNMlE.js";
3
3
  export {
4
4
  r as DismissReason,
5
5
  o as SprigAPI,