@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.
- package/dist/conversational-styles-DkkPEdxY.cjs +1 -0
- package/dist/conversational-styles-FqFq9n7G.js +4 -0
- package/dist/conversational-ui-CJhN0LJK.js +615 -0
- package/dist/conversational-ui-Dfd7UJ-H.cjs +1 -0
- package/dist/{core-CYOlhSpx.js → core-BFvjNMlE.js} +403 -403
- package/dist/core-_Z8BkMvO.cjs +12 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +14 -0
- package/dist/core.js +2 -2
- package/dist/getAttributedUrl-B6IiqzoK.js +1076 -0
- package/dist/getAttributedUrl-CsC-pdfo.cjs +669 -0
- package/dist/index-DA4zJIRr.cjs +1 -0
- package/dist/index-DW3YeTpg.js +678 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +14 -0
- package/dist/index.js +2 -2
- package/dist/{metricsReporter-DuZDhNKr.js → metricsReporter-Bm14xa4G.js} +1 -1
- package/dist/{metricsReporter-Dwax9lmE.cjs → metricsReporter-BtpOP9Ry.cjs} +1 -1
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +1 -1
- package/dist/view-DA2mrBDJ.js +1477 -0
- package/dist/view-DSmDY1mu.cjs +1 -0
- package/package.json +1 -1
- package/dist/core-KnMHq__4.cjs +0 -12
- package/dist/view-8D-Qx964.js +0 -3164
- package/dist/view-Bwbl2vpc.cjs +0 -669
|
@@ -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-
|
|
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-
|
|
2
|
-
import { S as o, c as p, s as t } from "./core-
|
|
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,
|