@sprig-technologies/sprig-browser 2.42.0 → 2.43.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-ui-BnadcoG2.cjs +1 -0
- package/dist/{conversational-ui-AwKR1XUT.js → conversational-ui-CtA-YS3e.js} +4 -4
- package/dist/conversational-v2-styles-D3WQxdro.cjs +1 -0
- package/dist/conversational-v2-styles-XFcJt3-u.js +4 -0
- package/dist/{core-bEj9FkiJ.js → core-DJ3Dpomz.js} +356 -356
- package/dist/core-wqg-G3hc.cjs +12 -0
- package/dist/core.cjs +1 -1
- package/dist/core.d.ts +2 -1
- package/dist/core.js +2 -2
- package/dist/{index-C7zv53wV.js → index-BEn8X37H.js} +6 -6
- package/dist/index-C0oA6Zlm.cjs +1 -0
- package/dist/index.cjs +1 -1
- package/dist/index.d.ts +2 -1
- package/dist/index.js +2 -2
- package/dist/{metricsReporter-DTdxsqej.cjs → metricsReporter-BAjv1fmT.cjs} +1 -1
- package/dist/{metricsReporter-DbRyYFfD.js → metricsReporter-DDWVWGid.js} +1 -1
- package/dist/replay.cjs +1 -1
- package/dist/replay.js +1 -1
- package/dist/{getAttributedUrl-BGCIZtTj.js → videoPlayer-Cj-utOH3.js} +322 -320
- package/dist/{getAttributedUrl-pgeeuX2S.cjs → videoPlayer-DD0Jmq0y.cjs} +3 -3
- package/dist/view-Ctyh240J.js +1737 -0
- package/dist/view-DlMlH6Lu.cjs +1 -0
- package/package.json +1 -1
- package/dist/conversational-ui-DtwfDSqx.cjs +0 -1
- package/dist/core-CP9Lrdyw.cjs +0 -12
- package/dist/index-lO4vq_pY.cjs +0 -1
- package/dist/view-BqGpnqXK.js +0 -1729
- package/dist/view-CmZqxMJO.cjs +0 -1
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
"use strict";var wt=Object.defineProperty;var St=(r,e,s)=>e in r?wt(r,e,{enumerable:!0,configurable:!0,writable:!0,value:s}):r[e]=s;var F=(r,e,s)=>St(r,typeof e!="symbol"?e+"":e,s);const i=require("./metricsReporter-BAjv1fmT.cjs"),qe=()=>{try{return window.parent.Intercom}catch{return null}},Ve=[Object.freeze(Object.defineProperty({__proto__:null,disable:()=>{const r=qe();r&&(r.ul_wasVisible=!!document.querySelector("iframe.intercom-launcher-frame"),r.ul_wasVisible&&r("update",{hide_default_launcher:!0}))},enable:()=>{const r=qe();r&&(r.ul_wasVisible&&r("update",{hide_default_launcher:!1}),delete r.ul_wasVisible)}},Symbol.toStringTag,{value:"Module"}))];class Xe{static disable(){Ve.forEach(e=>e.disable())}static enable(){Ve.forEach(e=>e.enable())}}const We="ul-view-sdk-script",Lt=new Set(["ios","android"]),O="visitors",C="environments";async function _(r,e){var o,l,a;const{shouldDropOnRateLimit:s,...n}=e;n.headers=Object.assign(i.getHttpHeaders(window.UserLeap),n.headers);const t=await i.sprigFetch(r,{...n,shouldDropOnRateLimit:s});if(t.ok){const d=(o=t.headers)==null?void 0:o.get("Authorization"),c=d?d.split(" "):void 0,p=c&&c.length===2?c[1]:void 0,g=(l=t.headers)==null?void 0:l.get("x-ul-visitor-id");if(window.UserLeap.userId&&g===window.UserLeap.visitorId){const y=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map");y&&y[window.UserLeap.envId]===g&&(delete y[window.UserLeap.envId],i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",y))}p&&g&&(g!==window.UserLeap.visitorId||window.UserLeap.token!==p)&&(I("token",p),I("vid",g),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:g}),window.UserLeap.token=p,window.UserLeap.visitorId=g)}return(a=t.json)!=null&&a.logMessage&&console.warn(`[Sprig] ${t.json.logMessage}`),t}function I(r,e){const s=i.localStorageHelper.getItemObject("userleap.ids");let n=s[window.UserLeap.envId];n?n[r]=e:n={[r]:e},s[window.UserLeap.envId]=n,i.localStorageHelper.setItemObject("userleap.ids",s)}function ke(){return window.previewMode?"0":window.UserLeap.visitorId??""}function R(r,e,s){const n=[window.UserLeap._API_URL,"sdk",r];return e&&e.forEach(t=>{n.push(t),t===C?n.push(window.UserLeap.envId):t===O&&n.push(ke())}),s&&n.push(s),n.join("/")}const G=async(r,e,s)=>{var Pe,He,Me,Fe;const{context:n,delay:t,avatars:o,experimentFlags:l,forceBrandedLogo:a,endCard:d,isFeedback:c=!1,heatmap:p,locale:g,layout:y,previewMode:b,productConfig:u,questions:h,responseGroupUid:v,surveyId:m,uuid:U,vid:w,sessionReplay:T,studyType:P,surveyVisitorAttributes:L}=r,E=i.getHttpHeaders(window.UserLeap),A=Y(E),V=ce(E);if(T)if(A)i.eventEmitter.emit(i.SprigEvent.ReplayCapture,{responseGroupUid:v,hasQuestions:!!(h!=null&&h.length),surveyId:m,uploadId:T.uploadId,replayType:T.replayDurationType??"before",seconds:T.replayDurationSeconds,generateVideoUploadUrlPayload:{mediaRecordingUid:i.v4(),mediaType:"screen",questionId:1,responseGroupUid:v,surveyId:m,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:v,surveyId:m,visitorId:w,replayParams:T,completeUploadHeaders:E,apiUrl:window.UserLeap._API_URL,triggerTimestamp:Date.now(),isStandalone:h.length===0})}if(p){if(!i.modules.replay)return window.UserLeap.reportError("displayQuestions",new Error("Replay module not registered")),{success:!1,message:"Replay module not registered",surveyState:"no survey"};const{eventId:S,replayParams:M,responseGroupUid:he,surveyId:ye}=p;await i.modules.replay.initializeReplay({maxReplayDurationSeconds:300,maxInflightRequests:window.UserLeap.maxInflightReplayRequests,teardownAfter:!0,apiUrl:window.UserLeap._API_URL,replaySettings:s}),i.modules.replay.tryReplayAction(()=>{var je;return(je=i.modules.replay)==null?void 0:je.scheduleCapture({apiUrl:window.UserLeap._API_URL,completeUploadHeaders:E,eventId:S,isHeatmap:!0,replayParams:M,responseGroupId:he,surveyId:ye,triggerTimestamp:Date.now(),visitorId:w})},"Error in scheduling/capturing replay")}if(w==null||!(h!=null&&h.length))return i.breadcrumbsLogger.info("CannotDisplaySurvey",{vid:w}),{success:!1,message:"[Sprig] no survey found",surveyState:window.UserLeap.container?"previous survey ready":"no survey"};if(window.UserLeap.container){i.breadcrumbsLogger.info("AlreadyDisplayingSurvey");const S="[Sprig] (ERR-409) Found an existing Survey container, aborting rendering of this survey";return console.warn(S),{success:!1,message:S,surveyState:"previous survey ready"}}if(w!==window.UserLeap.visitorId&&U!==window.UserLeap.visitorId&&!window.previewMode){const S="Attempted to display survey to a different visitor";return window.UserLeap.reportError("DisplaySurvey",new Error(S)),{success:!1,message:S,surveyState:"no survey"}}i.breadcrumbsLogger.info("ShowingSurvey",{surveyId:m}),(Pe=i.modules.replay)==null||Pe.RecordSurveyShown({id:m,userAgent:window.navigator.userAgent}),Xe.disable(),i.eventEmitter.emit(i.SprigEvent.SurveyWillPresent,{name:i.SprigEvent.SurveyWillPresent,"survey.id":m,layout:y});let H,N,k,ee,te=document.createElement("div");const xe=S=>{const{"view.version":M}=S;M!==E["x-ul-sdk-version"]&&et(),i.eventEmitter.removeListener("verify.view.version",xe)};i.eventEmitter.on("verify.view.version",xe),window.UserLeap.useMobileStyling=V,i.shouldDirectEmbed(E)?(H="ul-direct-embeded-frame",N=document.head,k=window,ee=!1,(()=>{const S=i.getHttpHeaders(window.UserLeap),M=Y(S),he=window.UserLeap.forceDirectEmbed,ye=S["userleap-platform"]==="web";return M||he&&ye})()&&(Ze(m,c),te.id=H,window.UserLeap.container.appendChild(te),tt(),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"presented"}),i.eventEmitter.emit(i.SprigEvent.SurveyPresented,{name:i.SprigEvent.SurveyPresented,"survey.id":m}))):{frameId:H,contentWinDocHead:N,contentWindow:k,hasOverlay:ee,iframe:te}=Et({productConfig:u,useMobileStyling:V,surveyId:m,isFeedback:c,enableCspTrustedTypes:(He=window.UserLeap._config)==null?void 0:He.enableCspTrustedTypes}),window.UserLeap.frameId=H;const W={apiURL:window.UserLeap._API_URL,avatars:o,cards:h,configureExitOnOverlayClick:S=>{i.eventEmitter.once(i.SprigEvent.CloseSurveyOnOverlayClick,S)},context:n,endCard:d,envId:window.UserLeap.envId,eventEmitFn:i.eventEmitter.emit.bind(i.eventEmitter),experimentFlags:l,fontFamily:window.UserLeap.fontFamily,fontFamilyURL:window.UserLeap.fontFamilyURL,forceBrandedLogo:a,frame:te,headers:E,layout:y,locale:g,mobileSDKVersion:window.UserLeap.mobileSDKVersion,previewKey:i.sessionStorageHelper.getItem("sprig.previewKey"),previewMode:b||!!window.previewMode,productConfig:{framePosition:u==null?void 0:u.framePosition,desktopDisplay:u==null?void 0:u.desktopDisplay,placement:u==null?void 0:u.placement},responseGroupUid:v,startingQuestionIdx:(Me=window.UserLeap.config)==null?void 0:Me.startingQuestionIdx,studyType:P,styleNonce:window.UserLeap.styleNonce,surveyId:m,tabTitle:document.title,trackPageViewUrl:e,ulEvents:i.EVENTS,upchunkLibraryURL:window.UserLeap.upchunkLibraryURL,useMobileStyling:V,userId:U,viewDocument:k==null?void 0:k.document,viewWindow:k,visitorAttributes:{externalUserId:window.UserLeap.userId,email:window.UserLeap.email},surveyVisitorAttributes:L||{},...window.UserLeap._config};(Fe=window.UserLeap._config)!=null&&Fe.startingQuestionIdx&&(window.UserLeap._config={...window.UserLeap._config,startingQuestionIdx:null});const ft=(c?window.UserLeap.feedbackCustomStyles:window.UserLeap.customStyles)??u.customStyles;W.customStyles=ft,k&&(k.__cfg=W);const ue=window.UserLeap.viewSDKURL?window.UserLeap.viewSDKURL:W.path,Ae=document.getElementById(We);Ae&&Ae.remove();const me=function(){const S=document.createElement("script");return window.UserLeap.isMobileSDK||S.setAttribute("type","module"),window.UserLeap.nonce&&S.setAttribute("nonce",window.UserLeap.nonce),S.id=We,S}(),Oe=()=>{window.UserLeap.container&&Object.assign(window.UserLeap.container.style,{display:"flex"})};if(W.installationMethod==="web-npm"||W.installationMethod==="web-npm-bundled"){const{default:S}=await Promise.resolve().then(()=>require("./view-DlMlH6Lu.cjs")).then(M=>M.view);S.configure(W),ee&&window.UserLeap.container&&Oe()}else ue&&(me.src=`${ue}${window.UserLeap.isMobileSDK?"":`?t=${Date.now()}`}`,ee&&me.addEventListener("load",()=>{window.UserLeap.container&&Oe()}),k==null||k.addEventListener("error",S=>{S.target instanceof HTMLScriptElement&&S.target.src===ue&&window.UserLeap.reportError("loadFrameScript",new Error("Frame script failed to load"))},{capture:!0,once:!0}));N==null||N.appendChild(me);const Ce={success:!0,surveyState:"ready",surveyId:m,responseGroupUid:v};return window.UserLeap.isMobileSDK&&t&&(Ce.delay=t),Ce};function ce(r){var s;if(window.UserLeap.useMobileStyling!==void 0)return window.UserLeap.useMobileStyling;const e=((s=window.UserLeap.windowDimensions)==null?void 0:s.width)??document.body.clientWidth;return Y(r)||e>10&&e<500}function Y(r){return Lt.has(r["userleap-platform"])}const ze=new WeakMap,Ut=(r,e)=>{try{return(n=>{var l,a;const t=ze.get(n);if(t)return t;if(!((l=n.trustedTypes)!=null&&l.createPolicy))throw new Error("Trusted types not supported");const o=(a=n.trustedTypes)==null?void 0:a.createPolicy("sprig-sdk",{createHTML:d=>d,createScript:d=>d,createScriptURL:d=>d});return ze.set(n,o),o})(e).createHTML(r)}catch(s){return console.warn("Could not create TrustedHTML object",s),r}},ge=(r,e,s=window)=>{var n;return e&&((n=s.trustedTypes)!=null&&n.createPolicy)?Ut(r,s):r},Re="ul-frame";globalThis.UserLeap&&globalThis.Sprig&&(globalThis.Sprig._gtm?globalThis.Sprig=globalThis.UserLeap:globalThis.UserLeap=globalThis.Sprig),globalThis.UserLeap||(globalThis.UserLeap=globalThis.Sprig),globalThis.Sprig||(globalThis.Sprig=globalThis.UserLeap);const be="0px",Ze=(r,e,s)=>{globalThis.UserLeap.container=document.createElement("div"),globalThis.UserLeap.container.className="ul-container"+(e?" ul-container-feedback":""),r&&(globalThis.UserLeap.container.dataset.studyId=r.toString());const n=st();s&&n&&!globalThis.UserLeap.useMobileStyling?n.appendChild(globalThis.UserLeap.container):document.body.appendChild(globalThis.UserLeap.container)},et=(r,e)=>{var n;kt();const s=globalThis.UserLeap.container;if(s)try{(n=s.parentNode)==null||n.removeChild(s),globalThis.UserLeap.container=null,I("trackStartUrl",null),i.eventEmitter.emit(i.SprigEvent.SurveyLifeCycle,{state:"dismissed"}),i.eventEmitter.emit(i.SprigEvent.SurveyClosed,{name:i.SprigEvent.SurveyClosed,initiator:r,"survey.id":parseInt(s.dataset.studyId),...e&&{studyType:e}})}catch(t){console.warn(`[Sprig] (ERR-412) Error removing UserLeap container by ${r} `+s),t instanceof Error&&globalThis.UserLeap.reportError("dismissActiveSurvey",t)}},tt=()=>{i.eventEmitter.once(i.SprigEvent.SurveyWillClose,({initiator:r,studyType:e})=>{i.eventEmitter.removeAllListeners(i.SprigEvent.CloseSurveyOnOverlayClick),et(r,e)})},Tt=(r,e,s,n)=>{var p,g;const t={position:"fixed",bottom:"0px",right:be,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%"},o=Object.assign({},e,globalThis.UserLeap),{desktopDisplay:l}=e||{},a=l==="center-modal";let d;a&&(o.framePosition="center");let c=!1;if(s)(p=globalThis.UserLeap.windowDimensions)!=null&&p.width?t.width=`${globalThis.UserLeap.windowDimensions.width}px`:t.width="100%",(g=globalThis.UserLeap.windowDimensions)!=null&&g.height?t.maxHeight=globalThis.UserLeap.windowDimensions.height-20+"px":globalThis.UserLeap.maxHeight?t.maxHeight=globalThis.UserLeap.maxHeight:t.maxHeight=document.body.clientHeight-20+"px",["light","dark"].includes(o.overlayStyleMobile)&&(c=!0);else{t.width="360px",t.maxHeight=globalThis.UserLeap.maxHeight||"66vh";const y=()=>{c=!0,d={margin:"auto",position:"static"}};if(n)a?y():d={position:"relative",height:"300px"};else switch(o.framePosition){case"bottomLeft":d={left:be};break;case"topLeft":d={left:be,top:0};break;case"topRight":d={top:0};break;case"center":y()}}return c&&((y,b)=>{const u={position:"fixed",overflow:"auto",top:"0px",left:"0px",display:"none",height:"100%",width:"100%",transition:"background-color 0.3s ease-out",zIndex:2147483646},h=b?y.overlayStyleMobile:y.overlayStyle;u["background-color"]=h==="light"?"rgba(255,255,255, 0.95)":"rgba(0,0,0,0.9)",b||(u.margin="auto"),globalThis.UserLeap.container&&Object.assign(globalThis.UserLeap.container.style,u)})(o,s),Object.assign(r.style,t,d),c},Et=({productConfig:r,useMobileStyling:e,surveyId:s,isFeedback:n,enableCspTrustedTypes:t})=>{var b,u;const o=Re,l=n&&r.desktopDisplay==="slider";Ze(s,n,l),It();const a=document.createElement("iframe");a.id=o,a.setAttribute("title","Sprig User Feedback Dialog");const d=Tt(a,r,e,n);tt();let c=!1;a.setHeight=h=>{parseInt(a.style.height)==h&&c||(c=!0,a.style.height=`${h}px`,i.eventEmitter.emit(i.SprigEvent.SurveyHeight,{name:i.SprigEvent.SurveyHeight,contentFrameHeight:h,"survey.id":s}))};let p=!1;a.setWidth=h=>{parseInt(a.style.width)==h&&p||(p=!0,a.style.width=`${h}px`,i.eventEmitter.emit(i.SprigEvent.SurveyWidth,{name:i.SprigEvent.SurveyWidth,contentFrameWidth:h,"survey.id":s}))},(b=globalThis.UserLeap.container)==null||b.appendChild(a),r&&(e?r.exitOnOverlayClickMobile:r.exitOnOverlayClick)&&globalThis.UserLeap.container&&(globalThis.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":s});const g=(u=a.contentWindow)==null?void 0:u.document;if(g&&(g.open("text/html","replace"),g.write(ge("<!doctype html><head></head><body></body></html>",t,a.contentWindow)),g.close(),!e)){const h=g.body;h.style.display="flex",h.style.alignItems="center"}const y=g==null?void 0:g.head;return{frameId:o,contentWinDocHead:y,contentWindow:a.contentWindow,hasOverlay:d,iframe:a}},rt={[i.SprigEvent.SurveyFadingOut]:()=>{globalThis.UserLeap.container&&Object.assign(globalThis.UserLeap.container.style,{"background-color":"rgba(0,0,0,0)"})}},It=()=>{Object.entries(rt).forEach(([r,e])=>{i.eventEmitter.on(r,e)})},kt=()=>{Object.entries(rt).forEach(([r,e])=>{i.eventEmitter.off(r,e)})},x=r=>!!r&&r.nodeType===Node.ELEMENT_NODE,Ne=r=>r instanceof HTMLElement||r instanceof SVGElement,X=({document:r,elementId:e,styleString:s,nonce:n})=>{const t=r.getElementById(e);if(t)return void(t.textContent=s);const o=r.createElement("style");n&&(o.nonce=n),o.textContent=s,o.id=e,r.head.appendChild(o)},Be=(r,e)=>{const s=e.querySelector(r);if(!x(s))return 0;const n=getComputedStyle(s);return parseFloat(n.paddingLeft)+parseFloat(n.paddingRight)+(parseFloat(n.marginLeft)+parseFloat(n.marginRight))+(parseFloat(n.borderLeftWidth)+parseFloat(n.borderRightWidth))},it=(r,e,s)=>{const n=r.querySelector(".ul-card__container"),t=r.querySelector(".ul-app");let o=600,l=360;if(x(n)&&x(t)){const a=n.querySelector(".ul-card--matrix_grid"),d=!a&&e&&s;try{d&&(t.style.width="360px"),o=n.scrollHeight,o+=(g=>{const y=g.querySelector(".sprig-question-body"),b=g.querySelector(".ul-card"),u=g.querySelector(".ul-card-main-content"),h=g.querySelector(".ul-footer"),v=g.querySelector(".sprig-container");let m=0;return x(b)&&(m+=b.scrollHeight-b.clientHeight),x(u)&&(m+=u.scrollHeight-u.clientHeight),x(y)&&(m+=y.scrollHeight-y.clientHeight),x(h)&&x(v)&&v.clientHeight===0&&(m+=h.clientHeight),m})(r);const c=getComputedStyle(n),p=parseFloat(c.marginTop)+parseFloat(c.marginBottom);o+=p+(parseFloat(c.borderTopWidth)+parseFloat(c.borderBottomWidth)),a&&(l=a.scrollWidth,l+=Be(".ul-card__container",r),l+=Be(".sprig-question-body",r))}finally{d&&t.style.removeProperty("width")}}return[o+2,l]},st=()=>f,z=()=>document.getElementById("sprig-feedback-container"),Se=()=>document.getElementById("sprig-feedback-loading-animation"),ot=()=>!!document.getElementById(Re);let $e=!1,f=null,D=null,_e=!1,K=null,j=null;const Rt=["bottom-left","bottom-right","center-left","center-right"],se=()=>{var e;const r=window.UserLeap.container;return((e=r==null?void 0:r.parentElement)==null?void 0:e.id)==="sprig-feedback-loading-container"},nt=()=>document.getElementById("sprig-feedback-error-container"),at=()=>{if(!f)return 0;const r=f==null?void 0:f.clientWidth,e=window.getComputedStyle(f);return r+parseInt(e.borderRightWidth||"0")+parseInt(e.borderLeftWidth||"0")},oe=r=>{const e=z();e&&(j!=null&&j.endsWith("right")?e.style.right=`${r}px`:j!=null&&j.endsWith("left")&&(e.style.left=`${r}px`))},ve=()=>{if(f&&(se()||nt())){i.eventEmitter.off(i.SprigEvent.SurveyAppeared,$),Le();const r=at();return oe(-r),!0}return!1},$=()=>{if(!f||!D)return;const r=Se();r&&r.remove(),f.style.height="auto",f.style.width="auto",D.disabled=!1,_e=!1},Le=()=>{if(f&&!Se()){const r=(()=>{var s;if(Se())return;const e=document.createElement("div");return e.className="ul-loading-spinner-container",e.id="sprig-feedback-loading-animation",e.role="progressbar",e.setAttribute("aria-live","polite"),e.setAttribute("aria-busy","true"),e.setAttribute("aria-label","Processing..."),e.innerHTML=ge(`
|
|
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
|
+
`,(s=window.UserLeap._config)==null?void 0:s.enableCspTrustedTypes),e})();r&&(f.style.height="300px",f.style.width="360px",f.appendChild(r))}},Ge=()=>{f&&D&&(oe(0),D.disabled=!0,_e=!0)},lt=async(r,e,s)=>{const{buttonTheme:n,customStyles:t,eventId:o,placement:l,desktopDisplay:a,feedbackLabel:d,surveyUuid:c,surveyId:p}=r;window.UserLeap.feedbackCustomStyles=void 0;let g=z();if(g){if(!e&&o===K)return;g.remove(),i.eventEmitter.off(i.EVENTS.SURVEY_FADING_OUT,ve)}K=o,X({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}),X({document,elementId:"ul-custom-style",styleString:t??"",nonce:window.UserLeap.styleNonce}),$e=a==="center-modal",j=l;const[y,b]=l.split("-");(m=>{if(z()||!Rt.includes(m))return;const[U,w]=m.split("-"),T=document.createElement("div");T.id="sprig-feedback-container",T.classList.add(`sprig-feedback-container-${w}`,`sprig-feedback-container-${U}`),document.body.appendChild(T)})(l),g=z(),D=document.createElement("button");const u=document.createElement("div");u.className="sprig-feedback-button-label",u.innerText=d,D.appendChild(u),D.id="sprig-feedback-button",D.classList.add(`sprig-feedback-button-${b}`,`sprig-feedback-button-${y}`,`sprig-feedback-button-${n}`,"fade-in-transition"),i.eventEmitter.on(i.EVENTS.SURVEY_FADING_OUT,ve),D.addEventListener("click",async()=>{const m=document.getElementById("sprig-feedback-error-container");if(ot()||nt()){if(ve()){i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":p}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:i.DismissReason.FeedbackClosed,studyType:"feedbackButton","survey.id":p});const w=z();m&&w&&(w.remove(),K=null,f=null)}return}if(ce(i.getHttpHeaders(window.UserLeap))||_e||Ge(),e)return f&&f.classList.add("sprig-feedback-loading-container-previews"),await G(e),void $();const U=await(async w=>{const T=await _(R("1",[O],"startFeedbackStudy"),{body:JSON.stringify({surveyUuid:w}),method:"POST"});return T.ok?T.json:null})(c);if(U)i.eventEmitter.once(i.SprigEvent.SurveyAppeared,$),G({...U,studyType:"feedbackButton"},s);else if(f){const w=_t();f.appendChild(w),$(),f.style.height="300px",f.style.width="360px"}}),g==null||g.appendChild(D),i.eventEmitter.emit(i.SprigEvent.FeedbackButtonLoaded,{name:i.SprigEvent.FeedbackButtonLoaded,"survey.id":p});const{useMobileStyling:h,_config:{border:v}}=window.UserLeap;if($e||h)oe(0);else{const m=document.createElement("div");m.id="sprig-feedback-loading-container",m.className=`sprig-feedback-loading-container sprig-feedback-loading-container-${b}`,m.style.setProperty("--feedback-border",v),f=m,Le(),g==null||g.appendChild(m);const U=at();oe(-U)}window.UserLeap._config.isOnQuestionsTab&&e&&!se()&&f&&(Ge(),Le(),f&&f.classList.add("sprig-feedback-loading-container-previews"),G(e),$())},_t=()=>{var s;const r=document.createElement("div");r.id="sprig-feedback-error-container",r.innerHTML=ge(`<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>`,(s=window.UserLeap._config)==null?void 0:s.enableCspTrustedTypes);const e=document.createElement("h3");return e.className="sprig-feedback-error-text",e.innerText="There was an error while loading the survey",r.appendChild(e),r},Ue=new class{constructor(){F(this,"_ldData",{})}getAllLaunchDarklyVariations(){return this._ldData}setLDFlagsVariations(r){try{return!(!r||typeof r!="object"||Array.isArray(r))&&(Object.keys(this._ldData).forEach(e=>{delete this._ldData[e]}),Object.keys(r).forEach(e=>this._ldData[`!launch_darkly_${e}`]=(r[e]??0)+1),!0)}catch(e){return e instanceof Error&&window.UserLeap.reportError("setAllLDFlagsVariations",e),console.warn("[Sprig] An issue had occured when setting LaunchDarkly flags and variations."),!1}}};Object.freeze(Ue);const ie=new class{constructor(){F(this,"_optimizelyData",{})}setOptimizelyExperiment(r,e=!0){if(!r||typeof r!="object")return!1;const{experiments:s}=r;try{return e&&Object.keys(this._optimizelyData).map(n=>{delete this._optimizelyData[n]}),s&&s.map(n=>{const{id:t,variation:o}=n,l=this.transformExperimentId(t);o&&typeof o=="string"&&(this._optimizelyData[l]=o)}),!0}catch(n){return n instanceof Error&&window.UserLeap.reportError("setOptimizelyExperiment",n),!1}}getAllOptimizelyExperiments(){return this._optimizelyData}getOptimizelyVariationName(r){return this._optimizelyData[this.transformExperimentId(r)]}transformExperimentId(r){return"!optimizely_experiments_"+r}getAndSetWebOptimizelyExperiments(){var r;try{if(window&&window.optimizely&&typeof window.optimizely.get=="function"){const e=(r=window.optimizely.get("state"))==null?void 0:r.getExperimentStates({isActive:!0});if(e){const s=Object.keys(e).map(n=>{var t,o;return(t=e[n].variation)!=null&&t.name?{id:n,variation:(o=e[n].variation)==null?void 0:o.name}:{id:n,variation:"Original"}});return this.setOptimizelyExperiment({experiments:s},!1),!0}return!1}return!1}catch(e){return e instanceof Error&&window.UserLeap.reportError("getAndSetWebOptimizely",e),!1}}};Object.freeze(ie);class Dt{constructor(e,s){F(this,"paused");F(this,"queue");F(this,"ul");this.ul=e,this.paused=!1,this.queue=[],this.flush(s)}flush(e){const s=e.length;if(s)for(let n=0;n<s;n++)this.push(e[n])}isPaused(){return this.paused}pause(){this.paused=!0}unpause(){this.paused=!1;const e=this.queue.slice();this.empty(),this.flush(e)}push(e){if(this.paused)this.queue.push(e);else if(e instanceof Function)e();else{const s=Array.prototype.slice.call(e,1),n=e[0],t=this.ul[n];t instanceof Function?t.apply(this.ul,s):n&&console.warn("[Sprig] (ERR-100) No valid UserLeap action called",n)}}perform(e){if(this.paused){let s=()=>{};const n=new Promise(function(t){s=function(){t(e())}});return this.queue.push(s),n}return e()}empty(){this.queue.length=0}}let dt,pt;const Te=r=>{let e=0,s=r.firstElementChild;for(;s;)e+=Te(s),s.shadowRoot&&(e+=Te(s.shadowRoot)),s=s.nextElementSibling,e++;return e},Ke=()=>{dt.report(Te(document.body)),pt.report(document.documentElement.innerHTML.toString().length)},Ee=(r,e)=>{const s=performance.now();document.hidden?setTimeout(()=>Ee(r,e),r):setTimeout(()=>{const n=performance.now()-s;e.report(n/1e3),setTimeout(()=>Ee(r,e),r)},0)};let ne,ae,le,de,Je,q={};const re=(r,e=1)=>{const{name:s}=r;q[s]=(q[s]||0)+e},ct=r=>{let e=1;return r.childNodes.forEach(s=>{e+=ct(s)}),e},Qe=r=>{let e=0;return r.forEach(s=>{e+=ct(s)}),e},xt=r=>{switch(r.type){case"childList":return re(ne,Qe(r.addedNodes)),void re(ae,Qe(r.removedNodes));case"attributes":return void re(le);case"characterData":return void re(de)}},At=r=>r.forEach(xt),Ot=()=>{ne.report(q[ne.name]||0),ae.report(q[ae.name]||0),le.report(q[le.name]||0),de.report(q[de.name]||0),q={}},Ct=(r=1e3)=>{ne=i.registerMetric("sdk_mutations_nodes_added"),ae=i.registerMetric("sdk_mutations_nodes_removed"),le=i.registerMetric("sdk_mutations_attributes_changed"),de=i.registerMetric("sdk_mutations_character_data"),Je=new MutationObserver(At),Je.observe(document,{attributes:!0,attributeOldValue:!0,characterData:!0,characterDataOldValue:!0,childList:!0,subtree:!0}),setInterval(Ot,r)},Pt=({isWeb:r,reportingIntervalSeconds:e,thresholds:s,postMetrics:n})=>{i.registerThresholds(s,(t,o)=>{var l,a;if((l=i.modules.replay)!=null&&l.isReplayRecording()){const d=`Value: ${t} on ${o.metric} violated threshold of ${o.type} ${o.value}`;(a=i.modules.replay)==null||a.disableRecording("Threshold violated",new Error(d),{reportError:!1}),window.UserLeap.reportError("Sdk Performance Metric threshold violated",new Error("Sdk Performance Metric threshold violated"),{metricName:o.metric,type:o.type,value:o.value},{metricName:o.metric}),i.disableThresholdChecking()}}),i.initPerformanceReporting({reportingIntervalSeconds:e,postMetrics:n}),r&&(((t=1e3)=>{const o=i.registerMetric("sdk_event_queue_latency_seconds");Ee(t,o)})(),((t=1e4)=>{dt=i.registerMetric("sdk_dom_nodes_count"),pt=i.registerMetric("sdk_page_html_characters"),Ke(),setInterval(Ke,t)})(),Ct())},Ht="test",Mt=["popState","pushState","replaceState"];let De,J;const pe={},B="!email",gt="pageUrl";var Ye;let fe=((Ye=globalThis.location)==null?void 0:Ye.href)||"";function Q(r){var a,d;const{pageUrlEvents:e,interactiveEvents:s,dismissOnPageChange:n,platform:t}=globalThis.UserLeap._config;if(t&&t!=="web")return;fe!==globalThis.location.href&&i.breadcrumbsLogger.navigation("LocationChange",{from:fe,to:globalThis.location.href}),fe=globalThis.location.href;const o=ht().trackStartUrl,l=o?String(o):null;e&&bt(globalThis.location.href),s&&(mt(),Ft()),st()&&(()=>{if(se())return;const c=z();c&&(i.checkUrlStillMatching(K)||(c.remove(),K=null,f=null))})(),i.sessionStorageHelper.getItem("sprig.isCapturingHeatmap")&&((d=(a=i.modules.replay)==null?void 0:a.checkPendingHeatmapsUrl())==null||d.then(c=>{var p;c&&((p=i.modules.replay)==null||p.uploadReadyPendingCaptures(!0))})),!se()&&n&&l&&l!==globalThis.location.href&&r&&Mt.includes(r.type)&&globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.PageChange)}const ut={capture:!0},Ft=()=>{const r=globalThis.UserLeap._config.interactiveEvents.filter(s=>i.checkUrlMatch(s,globalThis.location.href)).map(s=>{const{name:n,properties:t}=s,{selector:o,innerText:l}=t;return o?a=>{if(Ne(a.target))try{a.target.closest(o)&&globalThis.UserLeap("track",n)}catch{}return!1}:a=>(Ne(a.target)&&a.target.innerText===l&&globalThis.UserLeap("track",n),!1)}),e=s=>r.forEach(n=>n(s));globalThis.UserLeap._config.interactiveEventsHandler=e,globalThis.addEventListener("click",e,ut)},mt=()=>{globalThis.UserLeap._config.interactiveEventsHandler&&globalThis.removeEventListener("click",globalThis.UserLeap._config.interactiveEventsHandler,ut),delete globalThis.UserLeap._config.interactiveEventsHandler};function ht(){const r=i.localStorageHelper.getItemObject("userleap.ids");return(r==null?void 0:r[globalThis.UserLeap.envId])||{}}function yt(){if(globalThis.previewMode)return;const r=i.localStorageHelper.getItemObject("sprig.anon.env.vid.map")||{},e=r[globalThis.UserLeap.envId];globalThis.UserLeap.visitorId=e||i.v4(),i.breadcrumbsLogger.info("NewVid",{vid:globalThis.UserLeap.visitorId}),I("vid",globalThis.UserLeap.visitorId),e||(r[globalThis.UserLeap.envId]=globalThis.UserLeap.visitorId,i.localStorageHelper.setItemObject("sprig.anon.env.vid.map",r)),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:globalThis.UserLeap.visitorId})}function bt(r,e,s,n){var t,o;try{if(r.endsWith("mock_snippet.html"))return;i.breadcrumbsLogger.info("PageView",{url:r});const l=(t=document==null?void 0:document.querySelector('meta[name="description"]'))==null?void 0:t.getAttribute("content");(o=i.modules.replay)==null||o.RecordPageView({...l&&{description:l},url:r,referrer:document.referrer,pageTitle:document.title});const a=globalThis.UserLeap._config.pageUrlEvents;let d=!1;if(a&&a.length)for(let p=0;p<a.length&&(d=i.checkUrlMatch(a[p],r),!d);p++);if(!d)return;globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig trackPageView",r);const c={url:r};n&&(c.trackPageView=!0),globalThis.UserLeap._queue.push(["track",gt,e,c,s])}catch(l){l instanceof Error&&(l.stack=r,globalThis.UserLeap.reportError("trackPageView",l)),console.warn("[Sprig] (ERR-428) Failed to track page view",l)}}function jt(){var e;const r=((e=globalThis.Backbone)==null?void 0:e.history)||globalThis.history;"pushState"in r&&(r.pushState=(s=>function(...n){const t=s.apply(this,n),o=new Event("pushState");return globalThis.dispatchEvent(o),Q(o),t})(r.pushState)),"replaceState"in r&&(r.replaceState=(s=>function(...n){const t=s.apply(this,n),o=new Event("replaceState");return globalThis.dispatchEvent(o),Q(o),t})(r.replaceState)),["hashchange","popstate"].forEach(s=>globalThis.addEventListener(s,Q,!0))}async function we(r,e){const s=ke();r&&!e&&(globalThis.UserLeap._config.mode=Ht);const n=ce(i.getHttpHeaders(globalThis.UserLeap)),t=await _(function(o){const l=new URL(R("1",[C],"questions"));return Object.entries(o||{}).forEach(([a,d])=>{d&&l.searchParams.append(a,String(d))}),l.toString()}({desktopDisplay:globalThis.UserLeap._config.desktopDisplay,isMobile:n,previewLanguage:globalThis.UserLeap._config.previewLanguage,surveyid:r==null?void 0:r.surveyId,surveytemplateid:r==null?void 0:r.surveyTemplateId,vid:s}),{shouldDropOnRateLimit:!0});if(!t.ok)return t.reportError&&t.error&&(console.warn("[Sprig] (ERR-414) Failed to request questions from the server",t.error),globalThis.UserLeap.reportError("getQuestions",t.error)),{success:!1,surveyState:"no survey"};if(t.json.delay&&await i.delay(t.json.delay),!t.json.isFeedback)return G(t.json,J,De);{const{feedbackLabel:o,productConfig:l,surveyUuid:a,feedbackCustomStyles:d}=t.json,{buttonTheme:c,placement:p,desktopDisplay:g}=l;lt({customStyles:d,buttonTheme:c,desktopDisplay:g,eventId:0,feedbackLabel:o,placement:p,surveyUuid:a,surveyId:r==null?void 0:r.surveyId},t.json)}}function qt(r){if(!r)return;globalThis.UserLeap._config=r,r.mute&&globalThis.UserLeap._queue.pause();const{interactiveEvents:e,pageUrlEvents:s,dismissOnPageChange:n}=r;e&&function(t){let o=t.length;for(;o;){const l=Math.floor(Math.random()*o);o-=1;const a=t[o];t[o]=t[l],t[l]=a}}(e),(e||s||n)&&(jt(),Q())}const Vt=function(r){if(!globalThis.UserLeap)return;const e=async(t={})=>{var m,U,w,T,P;const{userId:o,anonymousId:l,metadata:a={},properties:d,showSurveyCallback:c}=t;let{eventName:p}=t;if(globalThis.UserLeap.debugMode&&p!==gt&&console.info("[DEBUG] Sprig track",t),r.mode==="test")return;const g=i.sessionStorageHelper.getItem("sprig.previewKey")??void 0;if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId&&!o){const L="[Sprig] - Skipping tracking without userId";return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}if(!p||p.trim().length===0){p=p?String(p):"";const L="[Sprig] - Invalid event name "+p;return console.warn(L),{success:!1,message:L,surveyState:"no survey"}}const y=J??globalThis.location.href;a.url||(a.url=y),I("trackStartUrl",y),(U=(m=globalThis.UserLeap)==null?void 0:m._config)!=null&&U.optimizelyEnabled&&(Y(i.getHttpHeaders(globalThis.UserLeap))||ie.getAndSetWebOptimizelyExperiments(),a.optimizelyExperiments=Object.assign({},ie.getAllOptimizelyExperiments())),(T=(w=globalThis.UserLeap)==null?void 0:w._config)!=null&&T.launchDarklyEnabled&&(a.launchDarklyFlags=Ue.getAllLaunchDarklyVariations()),o&&(globalThis.UserLeap.userId=o),l&&(globalThis.UserLeap.partnerAnonymousId=l),d&&(a.eventProperties=d),(P=i.modules.replay)==null||P.RecordEvent({name:p,url:a.url}),i.breadcrumbsLogger.info("TrackEvent",{eventName:p});const b=globalThis.UserLeap.delayingSurvey||ot()?await _(R("1",[O],"events/batch"),{body:JSON.stringify({events:[{event:p,metadata:a}],previewKey:g}),method:"POST",shouldDropOnRateLimit:!0}):await _(R("1",[O],"events"),{body:JSON.stringify({event:p,metadata:a,previewKey:g}),method:"POST",shouldDropOnRateLimit:!0});if(!b.ok){const L="[Sprig] (ERR-421) Failed to track event";return b.reportError&&(console.warn(L,b.error),b.error&&globalThis.UserLeap.reportError("track",b.error)),{success:!1,message:L,error:b.error,surveyState:"no survey"}}o&&I("uid",o),l&&I("aid",l);const u=b.json;u.invalidPreviewKey&&i.sessionStorageHelper.removeItem("sprig.previewKey");const h=a.trackPageView?a.url:void 0;return u!=null&&u.feedbackButton&<(u.feedbackButton,void 0,h),await async function(L,E){var V,H;let A=!0;return!(E&&((V=L==null?void 0:L.json)!=null&&V.surveyId)&&(globalThis.UserLeap.delayingSurvey=!0,A=await E(L.json.surveyId),globalThis.UserLeap.delayingSurvey=!1,!A))&&((H=L==null?void 0:L.json)!=null&&H.delay&&!globalThis.UserLeap.isMobileSDK&&(globalThis.UserLeap.delayingSurvey=!0,await i.delay(L.json.delay),globalThis.UserLeap.delayingSurvey=!1),A)}(b,c)?function(L){if(!globalThis.UserLeap._config.dismissOnPageChange)return!0;const E=new URL(L),A=new URL(J??globalThis.location.href);return E.hostname===A.hostname&&E.pathname===A.pathname}(y)?G(u,h,De):{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"}},s=(t,o)=>{var a;const l=(a=t==null?void 0:t.querySelector(`[id="${Re}"]`))==null?void 0:a.contentDocument;l&&X({document:l,elementId:"ul-custom-style",styleString:o})},n={displaySurvey:async t=>(console.warn("[Sprig] displaySurvey should only be used to debug your studies; not intended for production usage."),globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),we({surveyId:t},!0)),_previewSurvey(t){globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),we({surveyTemplateId:t},!1)},_reviewSurvey(t){globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.Override),we({surveyId:t},!1)},previewSurvey(t){n._previewSurvey(t)},reviewSurvey(t){n._reviewSurvey(t)},mute(){globalThis.UserLeap._queue.pause()},unmute(){globalThis.UserLeap._queue.unpause()},setVisitorToken(){console.warn("[Sprig] setVisitorToken is deprecated.")},dismissActiveSurvey(t=i.DismissReason.API){globalThis.UserLeap.container&&(t===i.DismissReason.Closed&&globalThis.Sprig.trackHistory&&globalThis.Sprig.trackHistory({event:"closed"}),i.eventEmitter.emit(i.SprigEvent.SurveyCloseRequested,{name:i.SprigEvent.SurveyCloseRequested,initiator:t,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}),i.eventEmitter.emit(i.SprigEvent.SurveyWillClose,{name:i.SprigEvent.SurveyWillClose,initiator:t,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}))},async setAttribute(t,o){if(!t||!o&&o!==0&&o!==!1){const l="[Sprig] - Disregarding empty attribute / value provided";return console.warn(l),{success:!1,message:l}}return this.setAttributes({[t]:o})},async setAttributes(t){if(t==null||Object.keys(t).length===0){const o="[Sprig] - Disregarding empty attributes provided";return console.warn(o),{success:!1,message:o}}return this.identifyAndSetAttributes({attributes:t})},async identifyAndSetAttributes(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig identifyAndSetAttributes",t),r.mode==="test")return;if(t===null||typeof t!="object"||!(t.userId||t.anonymousId||t.attributes)){const p="[Sprig] - Disregarding empty payload provided";return console.warn(p),{success:!1,message:p}}const{userId:o,anonymousId:l,attributes:a}=t;if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId&&!o){const p="[Sprig] - Skipping tracking without userId";return console.warn(p),{success:!1,message:p}}if(a){a.email&&!a[B]&&(a[B]=a.email,delete a.email);const p=Object.keys(a);for(const g of p)a[g]===pe[g]&&delete a[g]}if(!(a&&Object.keys(a).length!==0||o&&globalThis.UserLeap.userId!==o||l&&globalThis.UserLeap.partnerAnonymousId!==l))return{success:!0};const d={};let c;return o&&(d.userId=globalThis.UserLeap.userId=o),l&&(d.partnerAnonymousId=globalThis.UserLeap.partnerAnonymousId=l),a&&Object.keys(a).length>0?(c=await _(R("1",[C,O],"attributes"),{body:JSON.stringify(a),method:"PUT"}),c.ok?Object.assign(pe,a):c.reportError&&(console.warn("[Sprig] (ERR-432) identifyAndSetAttributes failed",c.error),c.error&&globalThis.UserLeap.reportError("identifyAndSetAttributes",c.error))):c=await _(R("1",[C,O]),{body:JSON.stringify(d),method:"PUT"}),a&&a[B]&&(globalThis.UserLeap.email=a[B]),c.ok&&(o&&I("uid",o),l&&I("aid",l)),{success:!!c.ok}},async removeAttributes(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig removeAttributes",t),r.mode==="test")return;if(t==null||t.length===0){const l="[Sprig] - Disregarding empty attributes provided";return console.warn(l),{success:!1,message:l}}if(r.requireUserIdForTracking&&!globalThis.UserLeap.userId){const l="[Sprig] - Skipping tracking without userId";return console.warn(l),{success:!1,message:l}}const o=await _(R("1",[C,O],"attributes"),{body:JSON.stringify({delete:t}),method:"DELETE"});return!o.ok&&o.reportError&&(console.warn("[Sprig] (ERR-433) Remove attributes failed",o.error),o.error&&globalThis.UserLeap.reportError("removeAttributes",o.error)),{success:!!o.ok}},async addSurveyListener(t){i.eventEmitter.on(i.SprigEvent.SurveyLifeCycle,t)},async removeSurveyListener(t){i.eventEmitter.removeListener(i.SprigEvent.SurveyLifeCycle,t)},async addListener(t,o){i.eventEmitter.on(t,o)},async removeListener(t,o){i.eventEmitter.removeListener(t,o)},async removeAllListeners(){i.eventEmitter.removeAllListeners()},setPreviewKey(t){t&&typeof t=="string"&&i.sessionStorageHelper.isStorageAvailable&&t&&i.sessionStorageHelper.setItem("sprig.previewKey",t)},async setUserId(t){var a;if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig setUserId",t),t==null){const d=`[Sprig] - Invalid userId ${t}`;return console.warn(d),{success:!1,message:d}}if(r.mode==="test"||t===globalThis.UserLeap.userId)return;globalThis.UserLeap.userId=t;const o=globalThis.UserLeap.visitorId,l=await _(R("1",[C,O]),{body:JSON.stringify({userId:t}),method:"PUT"});l.ok?(o!==globalThis.UserLeap.visitorId&&((a=i.modules.replay)==null||a.clearUserReplayData()),I("uid",t)):l.reportError&&(console.warn("[Sprig] (ERR-420) Failed to set user id",l.error),l.error&&globalThis.UserLeap.reportError("setUserId",l.error))},async setPartnerAnonymousId(t){if(globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig setPartnerAnonymousId",t),t==null){const o=`[Sprig] - Invalid partnerAnonymousId ${t}`;return console.warn(o),{success:!1,message:o}}return globalThis.UserLeap.partnerAnonymousId=t,I("aid",t),{success:!0}},track:async(t,o,l={},a=void 0)=>e({eventName:t,properties:o,metadata:l,showSurveyCallback:a}),identifyAndTrack:async t=>await e(t),trackPageView(t,o=void 0,l=void 0,a=!0){J=t,bt(t,o,l,a)},applyFeedbackStyles({button:t="",view:o=""}){globalThis.UserLeap.feedbackCustomStyles=o,document.getElementById("sprig-feedback-style")&&X({document,elementId:"ul-custom-style",styleString:t,nonce:globalThis.UserLeap.styleNonce}),s(document.querySelector(".ul-container-feedback"),o)},applyStyles(t){globalThis.UserLeap.customStyles=t,s(globalThis.UserLeap.container,t)},setWindowDimensions(t,o){var y,b;const l=typeof t=="string"?parseInt(t,10):t,a=typeof o=="string"?parseInt(o,10):o;isNaN(l)||isNaN(a)||(globalThis.UserLeap.windowDimensions={width:l,height:a});const d=i.getHttpHeaders(globalThis.UserLeap),c=ce(d),p=d["userleap-platform"]==="web";if(!globalThis.UserLeap.frameId)return;const g=document.getElementById(globalThis.UserLeap.frameId);g&&(globalThis.UserLeap.useMobileStyling&&((y=globalThis.UserLeap.windowDimensions)!=null&&y.width&&(g.style.width=`${globalThis.UserLeap.windowDimensions.width}px`),(b=globalThis.UserLeap.windowDimensions)!=null&&b.height&&(g.style.maxHeight=globalThis.UserLeap.windowDimensions.height-20+"px"),g.contentDocument&&(g.style.height=String(it(g.contentDocument,p&&!c,i.shouldDirectEmbed(d))[0])+"px")),i.eventEmitter.emit(i.SprigEvent.SurveyDimensions,{name:i.SprigEvent.SurveyDimensions,contentFrameWidth:g.clientWidth,contentFrameHeight:g.clientHeight,"survey.id":parseInt(globalThis.UserLeap.container.dataset.studyId)}))},logoutUser(){var t;globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig logout"),i.breadcrumbsLogger.info("LogOut",{vid:globalThis.UserLeap.visitorId,userId:globalThis.UserLeap.userId}),globalThis.UserLeap.visitorId=null,globalThis.UserLeap.userId=null,globalThis.UserLeap.partnerAnonymousId=null,globalThis.UserLeap.token=null,globalThis.UserLeap.email=null,i.localStorageHelper.removeItem("userleap.ids"),globalThis.UserLeap._queue.isPaused()&&globalThis.UserLeap._queue.empty(),yt(),(t=i.modules.replay)==null||t.clearUserReplayData(),globalThis.UserLeap._queue.unpause()},teardown(){["hashchange","popstate"].forEach(t=>globalThis.removeEventListener(t,Q,!0)),globalThis.UserLeap._config.interactiveEvents&&mt(),globalThis.UserLeap("dismissActiveSurvey",i.DismissReason.API),delete globalThis.UserLeap,delete globalThis.Sprig,delete globalThis._Sprig},integrateOptimizely(t,o=!0){var l,a;if((a=(l=globalThis.UserLeap)==null?void 0:l._config)!=null&&a.optimizelyEnabled)try{const d=typeof t=="string"?JSON.parse(t):t;ie.setOptimizelyExperiment(d,o)}catch(d){console.warn("[Sprig] Error with integrating Optimizely data"),d instanceof Error&&globalThis.UserLeap.reportError("integrateOptimizely",d)}else console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.")},integrateOptimizelyClient(t){var o,l;if(!((l=(o=globalThis.UserLeap)==null?void 0:o._config)!=null&&l.optimizelyEnabled))return void console.warn("[SPRIG] Optimizely integration is currently not enabled for your product.");t.notificationCenter.addNotificationListener("ACTIVATE:experiment, user_id,attributes, variation, event",({experiment:a,variation:d})=>{const c={experiments:[{id:a.id,variation:d.key}]};globalThis.UserLeap("integrateOptimizely",c,!1)})},importLaunchDarklyData(t){var o,l;(l=(o=globalThis.UserLeap)==null?void 0:o._config)!=null&&l.launchDarklyEnabled?Ue.setLDFlagsVariations(t):console.warn("[SPRIG] LaunchDarkly integration is currently not enabled for your product.")},setVisitorAttribute:(t,o)=>(console.warn("[Sprig] setVisitorAttribute is deprecated. Please use setAttribute"),n.setAttribute(t,o)),setEmail:async t=>n.setAttribute(B,t),setVisitorEmail:async t=>(console.warn("[Sprig] setVisitorEmail is deprecated. Please use setEmail"),n.setEmail(t)),_generateVideoUploadUrl:async t=>async function(o){var a;if(!o)return;const l=`${globalThis.UserLeap._API_URL}/2/environments/integrations/upload`;try{const d=await fetch(l,{method:"POST",cache:"no-cache",headers:{"Content-Type":"application/json"},body:JSON.stringify(o)});if(d.ok){const c=await d.json();return(a=c==null?void 0:c.upload)==null?void 0:a.url}return null}catch(d){console.warn("[Sprig] Error with generating video upload url"),d instanceof Error&&globalThis.UserLeap.reportError("generateVideoUploadUrl",d)}}(t),_reportMetric(t,o){i.reportAndRegister(t,o)},_completeSessionReplay:async({surveyId:t,responseGroupUuid:o,eventDigest:l})=>{var a;return i.modules.replay?(a=i.modules.replay)==null?void 0:a._completeSessionReplay({surveyId:t,responseGroupUuid:o,eventDigest:l,headers:i.getHttpHeaders(globalThis.UserLeap)}):(globalThis.UserLeap.reportError("_completeSessionReplay",new Error("Replay module not registered")),!1)},pauseReplayRecording(){var t,o,l,a;(o=(t=i.modules.replay)==null?void 0:t.isReplayPaused)!=null&&o.call(t)||((a=(l=i.modules.replay)==null?void 0:l.recordReplayPaused)==null||a.call(l))},resumeReplayRecording(){var t,o,l,a,d,c;(o=(t=i.modules.replay)==null?void 0:t.isReplayPaused)!=null&&o.call(t)&&((a=(l=i.modules.replay)==null?void 0:l.recordReplayResumed)==null||a.call(l),(c=(d=i.modules.replay)==null?void 0:d.recordFullSnapshot)==null||c.call(d))}};Object.assign(globalThis.UserLeap,n)};async function Wt(r,e,s={},n={}){var p;const t=(p=globalThis.__cfg)==null?void 0:p.mode,o=ke(),l=globalThis.UserLeap.envId,a=globalThis.document.documentElement,d={mode:t,screenWidth:globalThis.screen.width,screenHeight:globalThis.screen.height,clientWidth:a.clientWidth,clientHeight:a.clientHeight,location:J??globalThis.location.href,language:globalThis.navigator.language,...s},c={action:r,breadcrumbs:i.breadcrumbsLogger.breadcrumbs,err:{message:`${e==null?void 0:e.name} - ${e==null?void 0:e.message}`,stack:e==null?void 0:e.stack},meta:d,vid:o,envId:l,...n};(await _(R("1",null,"errors"),{method:"POST",headers:{"x-ul-error":globalThis.btoa(`userleap-${Date.now()}-error`)},body:JSON.stringify(c),shouldDropOnRateLimit:!0})).ok||console.warn("[Sprig] (ERR-444) Failed to report error to API",e)}function zt(r={}){var n;(n=globalThis.SprigLoggerCallback)==null||n.call(globalThis,"Initializing Sprig");const e=new URLSearchParams(globalThis.location.search).get("sprigPreviewKey")??"";async function s(){var g,y,b,u,h;if(globalThis.UserLeap.loaded)return;if((g=globalThis.SprigLoggerCallback)==null||g.call(globalThis,"Loading Sprig"),globalThis.UserLeap.reportError=Wt,globalThis.UserLeap.loaded=!0,globalThis.UserLeap._config=Object.assign({},r,globalThis.UserLeap.config),globalThis.UserLeap.delayingSurvey=!1,globalThis.UserLeap._config&&typeof globalThis.UserLeap._config=="object")for(const v in globalThis.UserLeap._config)globalThis.UserLeap[v]=globalThis.UserLeap._config[v];if(globalThis.Sprig.outstandingTransactionLimit!==void 0&&(r.outstandingTransactionLimit=globalThis.Sprig.outstandingTransactionLimit),!globalThis.UserLeap.envId){if(!globalThis.UserLeap.appId)throw new Error("Missing Environment id");globalThis.UserLeap.envId=globalThis.UserLeap.appId}globalThis.UserLeap.debugMode&&console.info("[DEBUG] Sprig debug mode enabled");const t=ht(),o=globalThis.UserLeap.sampleRate;let l=t.sampled;if(o){if(l===null&&(l=Math.random()<o,I("sampled",l)),!l)return}else l!==null&&I("sampled",null);globalThis.UserLeap._API_URL||(globalThis.UserLeap._API_URL="https://api.sprig.com");const a=[...globalThis.UserLeap._queue];globalThis.UserLeap._queue=new Dt(globalThis.UserLeap,[]),globalThis.UserLeap._queue.pause();for(let v=0;v<a.length;v++)globalThis.UserLeap._queue.push(a[v]);const d=t.token;d?(globalThis.UserLeap.token=d,globalThis.UserLeap.visitorId=t.vid??null,globalThis.UserLeap.userId=t.uid??null,globalThis.UserLeap.partnerAnonymousId=t.aid??null):yt();const c=Y(i.getHttpHeaders(globalThis.UserLeap));(y=globalThis.SprigLoggerCallback)==null||y.call(globalThis,"Sprig fetching config");const p=await async function(v){var T,P;const m=i.getHttpHeaders(globalThis.UserLeap);document.addEventListener("securitypolicyviolation",i.cspViolationHandler);const U=await i.sprigFetch(R("1",[C],"config"),{headers:m});if(document.removeEventListener("securitypolicyviolation",i.cspViolationHandler),!U.ok)return(T=globalThis.SprigLoggerCallback)==null||T.call(globalThis,"Sprig config fetch failed"),U.reportError&&(console.warn("[Sprig] (ERR-422) Failed to load configuration",U.error),U.error&&globalThis.UserLeap.reportError("applyRemoteConfig",U.error)),i.killNetworkRequests("Disabled: failed to fetch configuration"),v;const w=U.json;return w!=null&&w.disabled?((P=globalThis.SprigLoggerCallback)==null||P.call(globalThis,"Sprig config fetch disabled"),i.killNetworkRequests(`Disabled: ${w.disabled}`),{disabled:w.disabled}):Object.assign({},w,v)}(r);if((b=globalThis.SprigLoggerCallback)==null||b.call(globalThis,"Sprig fetched config"),Pt({isWeb:!c,reportingIntervalSeconds:p.metricsReportingEnabled||p.mobileMetricsReportingEnabled?p.metricsReportingIntervalSeconds:0,thresholds:p.metricThresholds,postMetrics:async v=>{var m;await _(R("1",[C],"metrics"),{body:v,method:"POST",headers:{"x-ul-replay-enabled":`${!!((m=i.modules.replay)!=null&&m.isReplayRecording())}`},shouldDropOnRateLimit:!0})}}),!c){const v=p.alwaysOnReplay?{userAgent:globalThis.navigator.userAgent,surveyId:p.alwaysOnReplay.surveyId,responseGroupUuid:p.alwaysOnReplay.responseGroupUuid,sdkVersion:"2.43.0",maxDurationSeconds:p.alwaysOnReplay.maxDurationSeconds}:void 0;await((u=i.modules.replay)==null?void 0:u.initializeReplay({maxReplayDurationSeconds:p.maxReplayDurationSeconds,maxInflightRequests:globalThis.UserLeap.maxInflightReplayRequests??2,replaySettings:p.replaySettings,apiUrl:globalThis.UserLeap._API_URL,alwaysOnConfig:v})),De=p.replaySettings}Vt(p),await qt(p),globalThis.UserLeap._queue.unpause(),(h=globalThis.SprigLoggerCallback)==null||h.call(globalThis,"SdkReady"),i.eventEmitter.emit(i.SprigEvent.SDKReady,{mobileMetricsReportingEnabled:!!p.mobileMetricsReportingEnabled,metricsReportingInterval:p.metricsReportingIntervalSeconds||0,metricsThresholds:p.metricThresholds||[],maxMobileReplayDurationSeconds:p.maxMobileReplayDurationSeconds,mobileReplaySettings:p.mobileReplaySettings}),i.eventEmitter.emit(i.SprigEvent.VisitorIDUpdated,{visitorId:globalThis.UserLeap.visitorId}),i.eventEmitter.on(i.SprigEvent.VisitorIDUpdated,()=>{for(const v in pe)delete pe[v]})}globalThis.UserLeap.UPDATES=i.EVENTS,globalThis.UserLeap("setPreviewKey",e),document.readyState==="complete"?s():globalThis.attachEvent?globalThis.attachEvent("onload",s):globalThis.addEventListener("load",()=>{s()},!1)}class Z{constructor(){F(this,"UPDATES",i.EVENTS)}displaySurvey(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"displaySurvey",e)}mute(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"mute")}unmute(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"unmute")}dismissActiveSurvey(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"dismissActiveSurvey")}setAttribute(e,s){var n;(n=globalThis.Sprig)==null||n.call(globalThis,"setAttribute",e,s)}setAttributes(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"setAttributes",e)}identifyAndSetAttributes(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"identifyAndSetAttributes",e)}removeAttributes(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"removeAttributes",e)}addListener(e,s){var n;(n=globalThis.Sprig)==null||n.call(globalThis,"addListener",e,s)}removeListener(e,s){var n;(n=globalThis.Sprig)==null||n.call(globalThis,"removeListener",e,s)}removeAllListeners(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"removeAllListeners")}setEmail(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"setAttribute","!email",e)}setUserId(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"setUserId",e)}setPartnerAnonymousId(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"setPartnerAnonymousId",e)}track(e,s={},n={}){var t;(t=globalThis.Sprig)==null||t.call(globalThis,"track",e,s,n)}identifyAndTrack(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"identifyAndTrack",e)}trackPageView(e,s,n){var t;(t=globalThis.Sprig)==null||t.call(globalThis,"trackPageView",e,s,n)}applyStyles(e){var s;(s=globalThis.Sprig)==null||s.call(globalThis,"applyStyles",e)}setWindowDimensions(e,s){var n;(n=globalThis.Sprig)==null||n.call(globalThis,"setWindowDimensions",e,s)}logoutUser(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"logoutUser")}teardown(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"teardown")}pauseReplayRecording(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"pauseReplayRecording")}resumeReplayRecording(){var e;(e=globalThis.Sprig)==null||e.call(globalThis,"resumeReplayRecording")}}const Ie={configure:r=>{if(!r.envId&&!r.environmentId)throw new Error("Initialization Error: Sprig configure requires an environmentId");if(r.envId||(r.envId=r.environmentId??""),r.installationMethod="web-npm",globalThis.Sprig)return globalThis.Sprig;globalThis.Sprig=function(){var s;(s=globalThis.Sprig)==null||s._queue.push(arguments)},Object.getOwnPropertyNames(Z.prototype).map(s=>{s!=="constructor"&&(globalThis.Sprig[s]=Z.prototype[s])});const e=globalThis.Sprig;return e.appId=r.envId,e._queue=[],globalThis.UserLeap=e,zt(r),globalThis.Sprig}},vt=new Z,Nt={sprig:Ie,SprigAPI:Z,configure:Ie.configure,Sprig:vt};exports.APP_ID="ul-app",exports.ConflictingWidgets=Xe,exports.DEFAULT_BORDER_COLOR="#e6e6e6",exports.DEFAULT_WIDTH_PX=360,exports.EMBED_MOBILE_MAX_WIDTH=1030,exports.ERROR_BORDER_COLOR="#bd282a",exports.Sprig=vt,exports.SprigAPI=Z,exports.calculateFrameDimensions=it,exports.core=Nt,exports.getHtml=ge,exports.isHTMLElement=x,exports.resetScrollPosition=r=>{const e=r.querySelector(".ul-card__container");e&&(e.scrollTop=0)},exports.setSurveyStyles=X,exports.sprig=Ie;
|
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-BAjv1fmT.cjs"),e=require("./core-wqg-G3hc.cjs");exports.DismissReason=i.DismissReason,exports.SprigEvent=i.SprigEvent,exports.Sprig=e.Sprig,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig;
|
package/dist/core.d.ts
CHANGED
|
@@ -1550,7 +1550,7 @@ interface RecordedTaskResponseType {
|
|
|
1550
1550
|
value: RecordedTaskResponseValueType;
|
|
1551
1551
|
}
|
|
1552
1552
|
|
|
1553
|
-
type SurveyState = "ready" | "no survey";
|
|
1553
|
+
type SurveyState = "ready" | "no survey" | "previous survey ready";
|
|
1554
1554
|
type ReplayDurationType = "after" | "before" | "beforeAndAfter";
|
|
1555
1555
|
|
|
1556
1556
|
interface MobileReplayConfig {
|
|
@@ -1793,6 +1793,7 @@ interface Config extends MobileReplayConfig {
|
|
|
1793
1793
|
environmentId?: string;
|
|
1794
1794
|
exitOnOverlayClick?: boolean;
|
|
1795
1795
|
exitOnOverlayClickMobile?: boolean;
|
|
1796
|
+
experimentFlags?: Record<string, boolean>;
|
|
1796
1797
|
eventEmitFn: SprigEventEmitter["emit"];
|
|
1797
1798
|
fontFamily?: string;
|
|
1798
1799
|
fontFamilyURL: undefined;
|
package/dist/core.js
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { D as r, S as i } from "./metricsReporter-
|
|
2
|
-
import {
|
|
1
|
+
import { D as r, S as i } from "./metricsReporter-DDWVWGid.js";
|
|
2
|
+
import { S as e, a as o, c as S, s as g } from "./core-DJ3Dpomz.js";
|
|
3
3
|
export {
|
|
4
4
|
r as DismissReason,
|
|
5
5
|
e as Sprig,
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import { a as Y, h as Z, u as e, c as O,
|
|
2
|
-
import { t as le } from "./metricsReporter-
|
|
3
|
-
import { b as qe, D as Ee, g as We, A as br } from "./core-
|
|
4
|
-
import { c as ie, a as ae, H as _e, M as pe, Q as ue, O as Se, B as ee, L as Ie, b as Te, S as vr, u as yr, g as fr, P as Sr, p as xr, v as kr, R as se, d as Ir, s as _r, e as Tr } from "./
|
|
1
|
+
import { a as Y, h as Z, u as e, c as O, f as Me, b as re, F as he, g as ye, e as ge, _ as te, T as ke, A as ir, p as ne, i as ar, q as lr, r as or, M as de, s as Ze, t as dr, n as cr, v as ur, j as pr, k as Ae, l as mr, m as gr, x as hr, o as Qe } from "./view-Ctyh240J.js";
|
|
2
|
+
import { t as le } from "./metricsReporter-DDWVWGid.js";
|
|
3
|
+
import { b as qe, D as Ee, g as We, A as br } from "./core-DJ3Dpomz.js";
|
|
4
|
+
import { c as ie, a as ae, H as _e, M as pe, Q as ue, O as Se, B as ee, L as Ie, b as Te, S as vr, u as yr, g as fr, P as Sr, p as xr, v as kr, R as se, d as Ir, s as _r, e as Tr } from "./videoPlayer-Cj-utOH3.js";
|
|
5
5
|
const Cr = ({ className: n, message: s, next: o, properties: r, questionId: t, type: a }) => {
|
|
6
6
|
const { useMobileStyling: m, border: y, isLongFormSurvey: d, focusedQuestionId: g } = Y((v) => ({ useMobileStyling: v.useMobileStyling, border: v.border, isLongFormSurvey: le(v.studyType), focusedQuestionId: v.focusedQuestionId })), [c, f] = Z(!1), [i, S] = Z(""), [p, h] = Z(!1), b = d && g === t, x = r == null ? void 0 : r.collectName, _ = (r == null ? void 0 : r.nameLabelText) || "Full Name", k = (r == null ? void 0 : r.consentText) || "I agree to the stated conditions", U = (r == null ? void 0 : r.submitButtonText) || "Submit", P = !!i.trim(), E = c && (!x || P), D = (v, w = !1) => {
|
|
7
7
|
v.preventDefault(), v.stopPropagation();
|
|
@@ -591,8 +591,8 @@ const er = "ul-permission-graphics-container", rr = "ul-permission-body", tr = O
|
|
|
591
591
|
return _ ? m ? e("div", { className: "ul-card-scroll-wrapper", children: _ }, c) : _ : null;
|
|
592
592
|
}, at = ({ isSubmitDisabled: n = !1, onSubmit: s, buttonText: o }) => {
|
|
593
593
|
var S;
|
|
594
|
-
const { cards: r, forceBrandedLogo: t, index: a, marketingUrl: m, showSurveyBrand: y, slugName: d, surveyId: g, useMobileStyling: c } = Y((p) => ({ cards: p.cards, forceBrandedLogo: p.forceBrandedLogo, index: p.index, marketingUrl: p.marketingUrl, showSurveyBrand: p.showSurveyBrand, slugName: p.slugName, surveyId: p.surveyId, useMobileStyling: p.useMobileStyling })), f = ((S = r[a]) == null ? void 0 : S.type) === "thanks", i =
|
|
595
|
-
return e("footer", { className: O("long-form-question-footer-container", c && "long-form-question-footer-container--mobile", f && "long-form-question-footer-container-center"), children: [f && t ? e(dr, { marketingUrlLink: i }) : e("div", { className: "long-form-question-footer-container-logo", children: y ? e(
|
|
594
|
+
const { cards: r, forceBrandedLogo: t, index: a, marketingUrl: m, showSurveyBrand: y, slugName: d, surveyId: g, useMobileStyling: c } = Y((p) => ({ cards: p.cards, forceBrandedLogo: p.forceBrandedLogo, index: p.index, marketingUrl: p.marketingUrl, showSurveyBrand: p.showSurveyBrand, slugName: p.slugName, surveyId: p.surveyId, useMobileStyling: p.useMobileStyling })), f = ((S = r[a]) == null ? void 0 : S.type) === "thanks", i = pr({ marketingUrl: m, slugName: d, surveyId: g, forceBrandedLogo: t });
|
|
595
|
+
return e("footer", { className: O("long-form-question-footer-container", c && "long-form-question-footer-container--mobile", f && "long-form-question-footer-container-center"), children: [f && t ? e(dr, { marketingUrlLink: i }) : e("div", { className: "long-form-question-footer-container-logo", children: y ? e(cr, { forceBrandedLogo: t, marketingUrlLink: i }) : null }), !f && e("div", { className: O("ul-card__button-wrapper", "ul-card-vertical__button-wrapper", "long-form-question-footer-container-actions"), children: e(ee, { className: O("long-form-button", n && "sprig-button-disabled"), disabled: n, onClick: s, children: e("span", { className: "long-form-button-text-container", children: o ?? e(ur, { stroke: "white" }) }) }) })] });
|
|
596
596
|
}, ut = ({ cards: n, next: s, previousResponses: o }) => {
|
|
597
597
|
var H;
|
|
598
598
|
const r = te(null), [t, a] = Z({}), [m, y] = Z({}), { isLongFormSurvey: d, focusedQuestionId: g, setFocusedQuestionId: c, createDynamicQuestion: f, allResponses: i, cardIndexByName: S, surveyVisitorAttributes: p, cards: h } = Y((l) => ({ isLongFormSurvey: le(l.studyType), focusedQuestionId: l.focusedQuestionId, setFocusedQuestionId: l.setFocusedQuestionId, createDynamicQuestion: l.createDynamicQuestion, allResponses: l.allResponses, cardIndexByName: l.cardIndexByName, surveyVisitorAttributes: l.surveyVisitorAttributes, cards: l.cards })), b = he(() => ({ ...o, ...Ae(n.map((l) => {
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./view-DlMlH6Lu.cjs"),X=require("./metricsReporter-BAjv1fmT.cjs"),re=require("./core-wqg-G3hc.cjs"),a=require("./videoPlayer-DD0Jmq0y.cjs"),Be=({className:n,message:i,next:u,properties:t,questionId:r,type:o})=>{const{useMobileStyling:g,border:f,isLongFormSurvey:d,focusedQuestionId:h}=e.useConfig(y=>({useMobileStyling:y.useMobileStyling,border:y.border,isLongFormSurvey:X.isLongFormSurvey(y.studyType),focusedQuestionId:y.focusedQuestionId})),[c,C]=e.h(!1),[s,S]=e.h(""),[m,b]=e.h(!1),v=d&&h===r,x=t==null?void 0:t.collectName,T=(t==null?void 0:t.nameLabelText)||"Full Name",_=(t==null?void 0:t.consentText)||"I agree to the stated conditions",O=(t==null?void 0:t.submitButtonText)||"Submit",q=!!s.trim(),P=c&&(!x||q),E=(y,w=!1)=>{y.preventDefault(),y.stopPropagation();let F=null;if(!w){if(!P)return void b(!0);F={submitted:!0},x&&(F.name=s)}u({value:F,questionId:r,type:o},P)};return e.u("div",{className:e.cc(n,d&&!v&&"ul-card--unfocused","ul-card__consent-legal","fade-in-transition"),children:[e.u(a.Header,{isRequired:d&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),t!=null&&t.richTextBody?e.u(a.QuestionBodyWrapper,{children:e.u(a.Html,{className:"ul-rich-text-body",html:t.richTextBody,id:"ul-card__consent-legal-body-container"})}):null,e.u(a.MobileEmbedView,{embeddedType:"pdf",properties:t,children:e.u(a.QuestionBodyFooterContainer,{children:[e.u("div",{className:"sprig-stretch",children:[e.u(a.Option,{allowTextEntry:!1,border:f,error:m&&!c,id:"consent",isRadio:!1,isSelected:c,label:_,onUserInputChanged:({selected:y})=>{y!==c&&C(!c)},useMobileStyling:g}),x&&e.u("input",{"aria-label":T,"aria-placeholder":T,className:e.cc(e.getClasses("ul-consent-legal__name-input",g)),"data-gramm":"false",maxLength:250,name:"name",onBlur:y=>{y.currentTarget.style.borderColor=m&&!q?re.ERROR_BORDER_COLOR:re.DEFAULT_BORDER_COLOR},onFocus:y=>{y.currentTarget.style.borderColor=m&&!q?re.ERROR_BORDER_COLOR:f},onInput:y=>{y.preventDefault(),y.stopPropagation(),S(y.currentTarget.value)},placeholder:T,style:m&&!q?{borderColor:re.ERROR_BORDER_COLOR}:{},tabIndex:0,value:s})]}),e.u("div",{className:"ul-card__button-wrapper ul-card-vertical__button-wrapper",children:[e.u(a.Button,{className:P?"":"sprig-button-disabled",onClick:E,children:O}),t.required===!1&&!d&&e.u("button",{className:"ul-card-skip__button",onClick:y=>E(y,!0),children:e.getSkipButtonText(t)})]})]})})]},r)},Ee=({activeValue:n,border:i,icon:u,isPressed:t,onSubmit:r,range:o,scaleLabelType:g,selectedValue:f,setSelectedValue:d,setActiveValue:h,setIsPressed:c,useMobileStyling:C,value:s,viewDocument:S})=>{const{isLongFormSurvey:m,enableCspTrustedTypes:b}=e.useConfig(w=>({isLongFormSurvey:X.isLongFormSurvey(w.studyType),enableCspTrustedTypes:w.enableCspTrustedTypes})),v=`option-${s}`,x=g==="number",T=g==="star",_=g==="smiley",O=x&&s===n||s===f,[q,P]=(()=>{const w=T&&f!==null&&s<=f;return T&&s<=n||_&&s===n||w||s===n||s===f?[i,t||w||s===f?1:.3]:["",1]})(),E=e.F(()=>{const w={borderColor:O?q:"",fillOpacity:O?"":P,zIndex:O?3:"auto",color:f===s?"#fff":""};return x?{...w,backgroundColor:f===s?q:""}:{...w,color:T||_||f===s?q:""}},[O,q,P,f,s,x,T,_]),y=e.F(()=>re.getHtml((({icon:w,scaleLabelType:F,value:I,selectedValue:D})=>{if(F==="smiley"&&I===D){let U=0;return w.replace(/black/g,()=>++U==1?"black":"white")}return w})({icon:u,scaleLabelType:g,value:s,selectedValue:f}),b),[b,u,g,f,s]);return e.u("button",{"aria-label":x?void 0:String(s),className:(()=>{switch(g){case"star":return e.cc(e.getClasses("likert-star",C),e.getClasses(`likert-star-${s}`,C));case"smiley":return e.cc(e.getClasses("likert-smiley",C),e.getClasses(`likert-smiley-${s}`,C));default:return s===o?e.cc(e.getClasses("likert-number",C),e.getClasses(`likert-number-${s}`,C),e.getClasses("likert-last-option",C)):e.cc(e.getClasses("likert-number",C),e.getClasses(`likert-number-${s}`,C))}})(),dangerouslySetInnerHTML:{__html:y},id:v,onClick:w=>{m&&(w.preventDefault(),w.stopPropagation(),d(s)),r()},onKeyDown:w=>{var D,U;const F=S.querySelectorAll(`.likert-${g??"number"}`),I=s-1;w.key==="ArrowRight"?(D=F[I+1])==null||D.focus():w.key==="ArrowLeft"?(U=F[I-1])==null||U.focus():w.key!=="Enter"&&w.key!==" "||(m&&(w.preventDefault(),w.stopPropagation(),d(s)),r())},onPointerDown:()=>c(!0),onPointerEnter:()=>h(s),onPointerLeave:()=>{h(-1),c(!1)},style:E,tabIndex:0})},Me=({className:n,labels:i,message:u,next:t,properties:r,questionId:o,type:g})=>{const{border:f,useMobileStyling:d,viewDocument:h,isLongFormSurvey:c,focusedQuestionId:C}=e.useConfig(I=>({border:I.border,useMobileStyling:I.useMobileStyling,viewDocument:I.viewDocument,isLongFormSurvey:X.isLongFormSurvey(I.studyType),focusedQuestionId:I.focusedQuestionId})),[s,S]=e.h(-1),[m,b]=e.h(!1),[v,x]=e.h(null),T=c&&C===o,_=i&&i.left,O=i&&i.right;let q;const{range:P,scaleLabelType:E,ratingIcons:y}=r;P&&(q=Number(P));const w=q||5,F=I=>{var D,U;switch(E){case"star":return(D=y[0])==null?void 0:D.svg;case"smiley":return(U=y[I])==null?void 0:U.svg;default:return String(I+1)}};return e.u("form",{className:e.cc(n,"ul-card--likert","fade-in-transition",c&&!T&&"ul-card--unfocused"),children:[e.u(a.Header,{isRequired:c&&(r==null?void 0:r.required),message:u,properties:r}),e.u(a.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(a.QuestionBodyWrapper,{children:[e.u("div",{"aria-label":`Rating (1 - ${w})`,className:"ul-card--likert__numbers",role:"radiogroup",children:[...Array(w)].map((I,D)=>{const U=D+1;return e.u(Ee,{activeValue:s,border:f,icon:F(D),isPressed:m,onSubmit:()=>t({value:U,questionId:o,type:g},!0),range:w,scaleLabelType:E,selectedValue:v,setActiveValue:S,setIsPressed:b,setSelectedValue:x,useMobileStyling:d,value:U,viewDocument:h},D)})}),e.u("div",{className:"ul-card--likert__labels",children:[e.u("span",{children:_}),e.u("span",{children:O})]})]}),!r.required&&!c&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(a.Button,{onClick:I=>{I.preventDefault(),I.stopPropagation(),t({value:null,questionId:o,type:g},!0)},children:e.getButtonText(r)})})})]})})]},o)},_e=n=>n&&(n.scrollHeight>n.offsetHeight?n:_e(n.parentElement)),Pe=n=>{if(!n||!(u=>u instanceof HTMLElement)(n))return 0;const i=getComputedStyle(n);return parseFloat(i.marginTop)+parseFloat(i.marginBottom)+(parseFloat(i.borderTopWidth)+parseFloat(i.borderBottomWidth))},Fe=({columns:n,onSelect:i,options:u,selectedOptions:t})=>{const r=e._([]),{border:o,useMobileStyling:g}=e.useConfig(s=>({border:s.border,useMobileStyling:s.useMobileStyling})),f=u.findIndex(s=>t[s.id]===null),[d,h]=e.h(f),c=e.T((s,S)=>{i(s,S);const m=d+1,b=u[m];if(b&&t[b.id]===null){h(m);const v=r.current[d];if(v!=null&&v.firstElementChild){const x=_e(v),T=v.firstElementChild,_=Pe(v)+T.clientHeight;x==null||x.scrollTo(0,v.offsetTop+_)}}},[i,u,t,d]),C=e.T((s,S)=>{const m=d===s;return e.u(e.Accordion,{animate:!0,header:S.label,isOpen:m,onClick:()=>{var b;return h(m&&!((b=window.UserLeap)!=null&&b.isMobileSDK)?-1:s)},ref:b=>{b&&(r.current[s]=b)},showHeaderCheck:t[S.id]!==null,children:e.u("div",{style:{paddingTop:"12px"},children:n.map(b=>e.u(a.Option,{allowTextEntry:!1,ariaLabel:`${S.label}-${b.label}`,border:o,error:!1,id:`${S.id}-${b.value}`,isRadio:!0,isSelected:t[S.id]===b.value,label:b.label,onUserInputChanged:()=>c(S.id,b.value),useMobileStyling:g},b.label))})},S.id)},[o,n,d,c,t,g]);return e.u("div",{children:u.map((s,S)=>C(S,s))})},Oe=({columns:n,onSelect:i,options:u,selectedOptions:t})=>{const{border:r,useMobileStyling:o,isLongFormSurvey:g}=e.useConfig(m=>({border:m.border,useMobileStyling:m.useMobileStyling,isLongFormSurvey:X.isLongFormSurvey(m.studyType)})),f=u.length,d=n.length,h=e._(null),[c,C]=e.h(!1),[s,S]=e.h(!1);return e.p(()=>{const m=h.current,b=new ResizeObserver(v=>{window.requestAnimationFrame(()=>{m&&(C(Math.round(v[0].contentRect.width)<m.scrollWidth),S(Math.round(v[0].contentRect.width)<m.scrollWidth))})});return m&&b.observe(m),()=>{m&&b.unobserve(m)}},[]),e.u("div",{className:"ul-card--matrix_question_container",children:[e.u("div",{className:e.cc("ul-card--matrix_container",c&&"ul-matrix-scroll-gradient"),onScroll:()=>{(()=>{const m=h.current;m&&C(m.clientWidth+Math.abs(m.scrollLeft)<m.scrollWidth)})()},ref:h,children:e.u("div",{className:e.cc(g&&"ul-card--matrix_grid_longform","ul-card--matrix_grid"),style:`--numColumns: ${d}; --numRows: ${f+1};`,children:[e.u("div",{})," ",n.map(m=>e.u("div",{className:"ul-matrix-column-label",children:m.label},m.label)),u.map(m=>e.u(e.g,{children:[e.u("div",{"aria-label":m.label,className:"ul-matrix-row-label",children:m.label},m.label),e.u("div",{className:"ul-matrix-row-options",role:"radiogroup",children:n.map((b,v)=>{const x=v===d-1;return e.u("div",{className:e.cc("ul-matrix-option-wrapper",x&&"ul-matrix-last-option"),children:e.u(a.Option,{allowTextEntry:!1,ariaLabel:`${m.label}-${b.label}`,border:r,choiceStyle:{background:"transparent",border:"none",marginBottom:"0",padding:"0"},error:!1,id:`${m.id}-${b.value}`,isRadio:!0,isSelected:t[m.id]===b.value,onUserInputChanged:()=>i(m.id,b.value),useMobileStyling:o})},b.value)})})]}))]})}),(c||s)&&e.u("button",{className:s&&!c?"ul-matrix-scroll-arrow left":"ul-matrix-scroll-arrow",onClick:s&&!c?m=>{m.preventDefault();const b=h.current;if(b){const v=getComputedStyle(b).direction==="rtl";b.scrollTo({left:v?b.scrollWidth-b.clientWidth:0,behavior:"smooth"})}}:m=>{m.preventDefault();const b=h.current;if(b){const v=getComputedStyle(b).direction==="rtl";b.scrollTo({left:v?b.clientWidth-b.scrollWidth:b.scrollWidth,behavior:"smooth"})}},children:s&&!c?e.u(Qe,{}):e.u(Ue,{})})]})},Qe=()=>e.u("svg",{fill:"currentColor",height:"32",transform:"matrix(-1,0,0,1,0,0)",version:"1.1",viewBox:"0 0 256 256",width:"32",xmlns:"http://www.w3.org/2000/svg",children:e.u("path",{d:"M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z"})}),Ue=()=>e.u("svg",{fill:"currentColor",height:"32",viewBox:"0 0 256 256",width:"32",xmlns:"http://www.w3.org/2000/svg",children:e.u("path",{d:"M221.66,133.66l-72,72a8,8,0,0,1-11.32-11.32L196.69,136H40a8,8,0,0,1,0-16H196.69L138.34,61.66a8,8,0,0,1,11.32-11.32l72,72A8,8,0,0,1,221.66,133.66Z"})}),Ae=({className:n,message:i,next:u,options:t,properties:r,questionId:o,type:g,showIndividualSubmit:f=!1,onSubmitButtonClick:d})=>{const{useMobileStyling:h,isLongFormSurvey:c,focusedQuestionId:C,setFocusedQuestionId:s}=e.useConfig(E=>({useMobileStyling:E.useMobileStyling,isLongFormSurvey:X.isLongFormSurvey(E.studyType),focusedQuestionId:E.focusedQuestionId,setFocusedQuestionId:E.setFocusedQuestionId})),S=r.matrixColumn,m=r.required,b=c&&C===o,v=E=>{E.preventDefault(),E.stopPropagation(),u({value:T,questionId:o,type:g},!0),d&&d()},x=t.reduce((E,y)=>(E[y.id]=null,E),{}),[T,_]=e.h(x),O=E=>m&&Object.values(E).every(y=>y==null),q=(E,y)=>{c&&u({value:{...T,[E]:y},questionId:o,type:g},!O({...T,[E]:y})),_(w=>({...w,[E]:y}))},P=r.displayMatrixAsAccordion||h;return e.u("form",{className:e.cc(n,!c&&"ul-card__matrix","fade-in-transition",c&&!b&&"ul-card--unfocused"),id:"text-form",onClick:()=>{b&&s(o)},onSubmit:v,children:[e.u(a.Header,{isRequired:c&&(r==null?void 0:r.required),message:i,properties:r}),e.u(a.MobileEmbedView,{properties:r,children:[e.u(a.QuestionBodyWrapper,{children:[P?e.u(Fe,{columns:S,onSelect:q,options:t,selectedOptions:T}):e.u(Oe,{columns:S,onSelect:q,options:t,selectedOptions:T}),f&&e.u(a.LongformSubmitButton,{handleSubmit:v,isSubmitDisabled:O(T)})]}),!c&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(a.Button,{disabled:O(T),children:e.getButtonText(r)})})})]})]},o)},Te=({className:n,message:i,onSubmit:u,options:t=[],properties:r,questionId:o,type:g,showIndividualSubmit:f=!1,onSubmitButtonClick:d})=>{const{border:h,useMobileStyling:c,isLongFormSurvey:C,focusedQuestionId:s,setFocusedQuestionId:S}=e.useConfig(p=>({border:p.border,useMobileStyling:p.useMobileStyling,isLongFormSurvey:X.isLongFormSurvey(p.studyType),focusedQuestionId:p.focusedQuestionId,setFocusedQuestionId:p.setFocusedQuestionId})),m=C&&s===o,b=t.reduce((p,R)=>(p[R.id]={isSelected:!1},p),{}),[v,x]=e.h(b),T=g==="multiplechoice",_=r.required,O=t.find(p=>{var R;return(R=p.optionProperties)==null?void 0:R.noneOfTheAbove}),q=p=>Object.entries(p).some(([R,V])=>{var l;const j=t.find(k=>`${k.id}`===R),$=V.userText===void 0||V.userText.trim()==="";return((l=j==null?void 0:j.optionProperties)==null?void 0:l.allowsTextEntry)&&$&&V.isSelected}),P=p=>Object.values(p).filter(R=>R.isSelected).length,E=r.minSelect&&r.minSelect>0&&r.maxSelectMode===a.MaxSelectModes.Range&&P(v)<r.minSelect&&(_||P(v)>0),y=p=>q(p)||_&&!P(p)||!(R=>{const{minSelect:V=0,maxSelect:j=1/0,maxSelectMode:$}=r,l=P(R);switch($){case a.MaxSelectModes.Maximum:return l<=j;case a.MaxSelectModes.Range:return l===0||l>=V;default:return!0}})(p),w=Object.entries(v).some(([p,R])=>{var V,j;return R.isSelected&&((j=(V=t.find($=>`${$.id}`===p))==null?void 0:V.optionProperties)==null?void 0:j.allowsTextEntry)}),F=f&&(!T||w),I=p=>{z(p.id,p.selected,p.userText,p.noneOfTheAbove),p.selected&&C&&!T&&!m&&S(o)},D=p=>{var R;return(r==null?void 0:r.maxSelectMode)!==a.MaxSelectModes.Unlimited&&P(v)===(r==null?void 0:r.maxSelect)&&!((R=v[p])!=null&&R.isSelected)},U=p=>{p.preventDefault(),p.stopPropagation(),u(v,!0),d&&d()},z=(p,R,V,j)=>{const $=Object.assign({},v);if((T||j)&&R)for(const L of Object.values($))L.isSelected=!1,delete L.userText;else O&&!j&&v[O.id].isSelected&&($[O.id].isSelected=!1);$[p]={isSelected:R,userText:V};const l=T&&Object.entries($).some(([L,Q])=>{var M,W;return Q.isSelected&&((W=(M=t.find(Y=>`${Y.id}`===L))==null?void 0:M.optionProperties)==null?void 0:W.allowsTextEntry)}),k=!y($);C&&(u($,k),T&&!l&&k&&d&&d()),x($)};return e.u("form",{className:e.cc(n,"ul-card--multiple","fade-in-transition",C&&!m&&"ul-card--unfocused"),id:"text-form",onClick:g==="multipleselect"?()=>{C&&s!==o&&g==="multipleselect"&&S(o)}:void 0,onSubmit:U,children:[e.u(a.Header,{isRequired:C&&(r==null?void 0:r.required),message:i,properties:r}),e.u(a.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(a.QuestionBodyWrapper,{children:[r.isDropdown?e.u(a.Select,{disabledOptions:t.filter(p=>D(p.id)),dropdownFooter:E?e.u("div",{className:"ul-card__min-select-counter",style:{marginLeft:"16px"},children:[P(v),"/",r.minSelect]}):void 0,isMultiSelect:!T,multiselectText:r.dropdownMultiselectedText??"choices selected",onChange:p=>{const R={...v};for(const V of t)p.includes(V)?R[V.id].isSelected=!0:R[V.id].isSelected=!1;C&&u(R,!y(R)),x(R)},options:t,placeholderText:r.dropdownPlaceholderText??(T?"Select choice":"Select choice(s)"),value:t.filter(p=>v[p.id].isSelected)}):e.u("div",{className:e.cc(e.getClasses("ul-card__choices",c)),role:T?"radiogroup":"group",children:[t.map(({id:p,label:R,value:V,optionProperties:j})=>{var Q,M;const $=`${p}`,{allowsTextEntry:l,noneOfTheAbove:k}={allowsTextEntry:!1,noneOfTheAbove:!1,...j};return e.u(a.Option,{allowTextEntry:l,border:h,disabled:D($),error:(L=v,q(L)),id:$,isRadio:T,isSelected:!!((Q=v[$])!=null&&Q.isSelected),label:R,noneOfTheAbove:k,onUserInputChanged:I,promptText:(j==null?void 0:j.otherOptionPlaceholder)||"Please specify",text:(M=v[p])==null?void 0:M.userText,useMobileStyling:c,value:V},$);var L}),!!E&&e.u("div",{className:"ul-card__min-select-counter",children:[P(v),"/",r.minSelect]})]}),F&&e.u(a.LongformSubmitButton,{handleSubmit:U,isSubmitDisabled:y(v)})]}),!C&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(a.Button,{disabled:y(v),onClick:U,children:e.getButtonText(r)})})})]})})]},o)},He=n=>{const{questionId:i,type:u,next:t,options:r}=n,{setFocusedQuestionId:o}=e.useConfig(g=>({setFocusedQuestionId:g.setFocusedQuestionId}));return e.u(Te,{...n,onSubmit:(g,f)=>{var S;const d=Object.entries(g).find(([,m])=>m.isSelected)||[void 0,void 0],[h,c]=d,C=r.find(m=>`${m.id}`===h);!((S=C==null?void 0:C.optionProperties)!=null&&S.allowsTextEntry)||c!=null&&c.userText&&c.userText.trim()!==""||o(i);const s=c!=null&&c.userText?{[h]:{userText:c.userText}}:null;t({value:C&&h?{[h]:C.value}:{},secondaryValue:s,questionId:i,type:u},f)}})},$e=n=>{const{questionId:i,type:u,next:t}=n;return e.u(Te,{...n,onSubmit:(r,o)=>{const g=Object.entries(r).reduce((d,[h,c])=>(d[h]=c.isSelected,d),{}),f=Object.entries(r).reduce((d,[h,c])=>{if(!c.userText)return d;const C=d||{};return C[h]={userText:c.userText},C},null);t({value:g,secondaryValue:f,questionId:i,type:u},o)}})},Ve=({className:n,labels:i,message:u,properties:t,next:r,questionId:o,type:g})=>{const[f,d]=e.h(null),{border:h,useMobileStyling:c,viewDocument:C,isLongFormSurvey:s,focusedQuestionId:S}=e.useConfig(x=>({border:x.border,useMobileStyling:x.useMobileStyling,viewDocument:x.viewDocument,isLongFormSurvey:X.isLongFormSurvey(x.studyType),focusedQuestionId:x.focusedQuestionId})),m=s&&S===o,b=i&&i.left,v=i&&i.right;return e.u("form",{className:e.cc(n,"ul-card--nps","fade-in-transition",s&&!m&&"ul-card--unfocused"),children:[e.u(a.Header,{isRequired:s&&(t==null?void 0:t.required),message:u,properties:t}),e.u(a.MobileEmbedView,{properties:t,children:[e.u(a.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card--nps__numbers",children:[...Array(11)].map((x,T)=>e.u("button",{className:e.cc(e.getClasses("nps-number",c),e.getClasses(`nps-number-${T}`,c)),id:`option-${T}`,onClick:_=>{s&&(_.preventDefault(),_.stopPropagation(),d(T)),r({value:T,questionId:o,type:g},!0)},onKeyDown:_=>{var q,P;const O=C.querySelectorAll("button.nps-number");_.key==="ArrowRight"?(q=O[T+1])==null||q.focus():_.key==="ArrowLeft"?(P=O[T-1])==null||P.focus():_.key!=="Enter"&&_.key!==" "||(s&&(_.preventDefault(),_.stopPropagation(),d(T)),r({value:T,questionId:o,type:g},!0))},onPointerDown:_=>{_.currentTarget.style.zIndex="2",_.currentTarget.style.borderColor=h},onPointerLeave:_=>{_.currentTarget.style.zIndex="auto",_.currentTarget.style.borderColor=re.DEFAULT_BORDER_COLOR},style:f===T?{backgroundColor:h,color:"#fff"}:void 0,tabIndex:0,children:T},T))}),e.u("div",{className:"ul-card--nps__labels",children:[e.u("span",{children:b}),e.u("span",{children:v})]})]}),!t.required&&!s&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(a.Button,{onClick:x=>{x.preventDefault(),x.stopPropagation(),r({value:null,questionId:o,type:g},!0)},children:e.getButtonText(t)})})})]})]},o)},We=n=>{const{className:i,message:u,next:t,properties:r,questionId:o,type:g,showIndividualSubmit:f=!1,onSubmitButtonClick:d}=n,h=g==="aidynamicfollowup"?n.loading:void 0,{border:c,useMobileStyling:C,update:s,isLongFormSurvey:S,focusedQuestionId:m,setFocusedQuestionId:b,isPreview:v}=e.useConfig(I=>({border:I.border,useMobileStyling:I.useMobileStyling,update:I.update,isLongFormSurvey:X.isLongFormSurvey(I.studyType),focusedQuestionId:I.focusedQuestionId,setFocusedQuestionId:I.setFocusedQuestionId,isPreview:I.isPreview})),[x,T]=e.h(""),_=e._(null),O=S&&m===o;e.p(()=>{var I,D;S&&!v&&(O?(I=_.current)==null||I.focus():(D=_.current)==null||D.blur())},[S,O,v]);const q=x.trim(),P=r.required===!0&&!q,E=a.useAutoSize(_,()=>s()),y=I=>{I.preventDefault(),I.stopPropagation();const D=q.length>0,U=!r.required||D;t({value:x,questionId:o,type:g},U),d&&d(D)},w=r&&r.openTextPlaceholder?r.openTextPlaceholder:"";if(h==null&&g==="aidynamicfollowup")return e.u(e.g,{});const F=h?"Preparing your next question":u;return e.u("form",{className:e.cc(i,"ul-card-text","fade-in-transition",S&&!O&&"ul-card--unfocused"),id:"text-form",onClick:()=>{S&&m!==o&&b(o)},children:[e.u(a.Header,{isRequired:S&&(r==null?void 0:r.required),message:F,properties:r}),e.u(a.MobileEmbedView,{properties:r,children:e.u("div",{className:"ul-card-text",children:e.u(a.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card-text__container",children:e.u("textarea",{"aria-describedby":"ul-caption","aria-labelledby":"ul-question","aria-multiline":"true","aria-placeholder":w,className:e.cc(!!h&&"ul-card-text__input__loading",e.getClasses("ul-card-text__input",C)),"data-gramm":"false",disabled:!!h,maxLength:5e3,name:"text",onBlur:I=>{I.currentTarget.style.borderColor=re.DEFAULT_BORDER_COLOR},onChange:I=>{const{value:D}=I.currentTarget;if(E(),I.preventDefault(),I.stopPropagation(),T(D),S){const U=D.trim().length>0;t({value:D,questionId:o,type:g},U)}},onFocus:I=>{I.currentTarget.style.borderColor=c,b(o)},placeholder:w,ref:_,role:"textbox",tabIndex:0})}),r.footerHtml&&e.u(a.Html,{className:"footer",html:r.footerHtml}),f&&e.u(a.LongformSubmitButton,{handleSubmit:y,isSubmitDisabled:P}),e.u(a.QuestionBodyFooterContainer,{children:!S&&e.u(a.Button,{disabled:P||!!h,onClick:y,children:e.getButtonText(r)})})]})})})]},o)},ce=1,ke=2,Ie=3,le=n=>n.type==="av_permission",ve=n=>n.type==="screen_permission",Re=(n,i)=>n===void 0?ce:n?((u,t)=>!(le(t)?t.permissionDescriptors:[]).includes("camera")||u.getVideoTracks().length>0)(n,i)?Ie:ce:ke,ye={avStream:null,currentPage:null,mediaRecordingUids:null,nextQuestion:()=>{},passthroughData:void 0,recordingMediaTypes:void 0,screenPermissionRequested:!1,type:void 0},ee=e.create(n=>({...ye,reset:()=>{n(ye)},updatePage:i=>{n(i)}}));function pe({currentPage:n,pages:i}){const{avStream:u,recordingMediaTypes:t,updatePage:r}=ee.getState(),{recorderEventEmitter:o}=e.useConfig.getState();o.emit("av.permission",{"permission.descriptors":n.permissionDescriptors,"stream.ready":(g,f)=>{if(u===g)return;let d=n;if(g&&!n.permissionDescriptors.includes("camera")){const h=i.indexOf(n),c=f!=null&&f.active?h+2:h+1;f!=null&&f.active&&t&&o.emit("begin.recording",{"recording.media.types":t,"start.recording.callback":C=>r({mediaRecordingUids:C})}),d=i[c]}r({currentPage:d,avStream:g})}})}function me({status:n}){const{nextQuestion:i,passthroughData:u,mediaRecordingUids:t,reset:r}=ee.getState(),{recorderEventEmitter:o,handleUploadUpdate:g,index:f}=e.useConfig.getState(),d={value:{taskStatus:n},type:"recordedtask",questionId:(u==null?void 0:u.questionId)||1};u&&o.emit("finish.task",{"begin.callback":h=>{g({mediaRecordingUid:h,isSubmitted:!0,progressPct:0,isComplete:!1})},"progress.callback":(h,c)=>{g({mediaRecordingUid:h,progressPct:c.detail,isSubmitted:!1,isComplete:!1})},"upload.callback":h=>{h&&g({mediaRecordingUid:h,isComplete:!0,isSubmitted:!0,progressPct:100})},"passthrough.data":u,"current.index":f,"task.response":d,"task.complete.callback":h=>{d.value.taskDurationMillisecond=h,t&&(d.value.mediaRecordingUids=t),r(),i(d)}})}function ge({pages:n,setIsRequestingPermission:i}){const{recorderEventEmitter:u,eventEmitFn:t}=e.useConfig.getState(),{updatePage:r,currentPage:o,recordingMediaTypes:g,screenPermissionRequested:f}=ee.getState();if(!o)return;const d=n.indexOf(o);switch(o.type){case"av_permission":{const h=f?d+2:d+1;return f&&g&&u.emit("begin.recording",{"recording.media.types":g,"start.recording.callback":c=>{r({mediaRecordingUids:c})}}),void r({currentPage:n[h]})}case"screen_permission":return void u.emit("screen.permission",{"screen.permission.requested":i,"stream.ready.callback":(h,c)=>{const C=c?n[d+1]:o;c&&g&&u.emit("begin.recording",{"recording.media.types":g,"start.recording.callback":s=>{r({captureStream:c,mediaRecordingUids:s})}}),r({currentPage:C,screenPermissionRequested:!0,captureStream:c})}});case"start_task":return t("recorded.task.start"),u.emit("recorded.task.start"),u.emit("start.task"),void r({currentPage:n[d+1],screenPermissionRequested:!0});case"complete_task":return}}const Ne="ul-permission-graphics-container",we="ul-permission-body",Le=e.cc(Ne,"ul_recorded-task-inset-spacing"),ae=e.cc("ul-horizontal-button-container","ul-horizontal-button-container-left"),De=({richTextBody:n})=>e.u(a.Html,{className:"ul-rich-text-body",html:n,id:"ul-task-detail-container"}),ue=({required:n,skipButtonText:i,bottom:u=!1})=>n?null:e.u(a.Button,{className:e.cc(u&&"ul-skip-button-below","ul-button-inactive"),onClick:me.bind(null,{status:"abandoned"}),children:i||"Skip"}),he=n=>{const{avStream:i,captureStream:u,recordingMediaTypes:t,updatePage:r}=ee.getState(),o=(t==null?void 0:t.includes("audio"))||(t==null?void 0:t.includes("video"));e.p(()=>{const g=setInterval(()=>{o&&i&&!i.active?r({avStream:null,currentPage:n[0]}):u&&u.active||r({captureStream:void 0,currentPage:n[o?1:0]})},1e3);return()=>clearInterval(g)},[i,u,o,n,t,r])},Ge=({content:n,pages:i,required:u})=>{const{buttonText:t,skipButtonText:r,taskDetail:o}=n;return he(i),e.u("div",{className:"ul-task-page",children:[o&&e.u(De,{richTextBody:o}),e.u("div",{className:ae,children:[e.u(a.Button,{onClick:ge.bind(null,{pages:i}),children:t}),e.u(ue,{required:u,skipButtonText:r})]})]},"start-task")},je=({content:n,pages:i,properties:u})=>{const{buttonText:t,skipButtonText:r}=n;return he(i),e.u("div",{className:"ul-task-page",children:[n.taskDetail&&e.u(De,{richTextBody:n.taskDetail}),e.u(a.MobileEmbedView,{properties:u,children:e.u("div",{className:ae,children:[e.u(a.Button,{className:"ul-complete-task-button",onClick:me.bind(null,{status:"completed"}),children:t}),e.u(a.Button,{className:e.cc("ul-button-inactive"),onClick:me.bind(null,{status:"given.up"}),children:r})]})})]},"complete-task")},Ze=({content:n,pages:i,required:u})=>{const{buttonText:t,skipButtonText:r}=n,[o]=e.useConfig(d=>[d.tabTitle]),[g,f]=e.h(!1);return e.u("div",{children:[e.u("div",{className:Le,children:[e.u("p",{style:{marginTop:"auto"},children:n.selectTabText}),e.u("div",{className:"ul-select-tab-container",children:e.u("p",{className:we,children:o})})]}),e.u("div",{className:u?"":ae,children:[e.u(a.Button,{disabled:g,onClick:ge.bind(null,{pages:i,setIsRequestingPermission:f}),children:t}),e.u(ue,{required:u,skipButtonText:r})]})]})},ze=({content:n})=>e.u(a.Html,{className:e.cc(Ne,"ul_permission_svg_container","ul_recorded-task-inset-spacing","ul-center-horizontally"),html:n.svg},"ul-permission-request-graphic"),Ye=({content:n,pages:i,required:u})=>{const{permissionDeniedHeadline:t,permissionDeniedBody:r,skipButtonText:o,tryAgainButtonText:g}=n,f=le(i[0])?i[0]:null;return e.p(()=>{const d=setInterval(()=>{f!==null&&pe({currentPage:f,pages:i})},1e3);return()=>clearInterval(d)},[f,i]),f?e.u("div",{children:[e.u("div",{className:Le,children:e.u("p",{className:"ul-av-permission-denied-paragraph",children:[e.u("span",{className:"ul-av-permission-denied-headline",children:t}),e.u("span",{className:we,children:r})]})}),e.u("div",{className:ae,children:[e.u(a.Button,{onClick:pe.bind(null,{currentPage:f,pages:i}),children:g}),e.u(ue,{required:u,skipButtonText:o})]})]}):null},Ke=({stream:n})=>e.u("video",{autoPlay:!0,className:e.cc("ul_recorded-task-inset-spacing"),id:"ul-record-task-video-preview",muted:!0,ref:i=>{i&&(i.srcObject=n||null)}}),Xe=({content:n,pages:i,required:u})=>{const{skipButtonText:t}=n,{avStream:r}=ee.getState();return he(i),e.u("div",{children:[e.u(Ke,{stream:r}),e.u("div",{className:"ul-vertical-button-container-center",children:[e.u(a.Button,{onClick:ge.bind(null,{pages:i}),children:n.buttonText}),e.u(ue,{bottom:!0,required:u,skipButtonText:t})]})]})},Je=({properties:n})=>{const{pages:i,required:u}=n,{avStream:t,currentPage:r}=ee.getState();if(r===void 0)return null;switch(r==null?void 0:r.type){case"av_permission":{const o=Re(t,r);return o===ce?e.u(ze,{content:r}):o===ke?e.u(Ye,{content:r,pages:i,required:u}):e.u(Xe,{content:r,pages:i,required:u})}case"screen_permission":return e.u(Ze,{content:r,pages:i,required:u});case"start_task":return e.u(Ge,{content:r,pages:i,required:u});case"complete_task":return e.u(je,{content:r,pages:i,properties:n});default:return null}},et=({className:n,properties:i,next:u,questionId:t})=>{const r=e.useConfig(),{surveyId:o,responseGroupUid:g,userId:f,update:d}=r,h=ee(),{screenPermissionRequested:c}=h,C=ee(v=>v.avStream);let s=ee(v=>v.currentPage);s||(s=function({pages:v,userId:x,responseGroupUid:T,surveyId:_,questionId:O,next:q}){const{updatePage:P}=ee.getState(),{eventEmitFn:E,recorderEventEmitter:y}=e.useConfig.getState(),w={questionId:O,surveyId:_,visitorId:x,responseGroupUid:T};let F=0;y.emit("recorded.task.permission.screen"),E("recorded.task.permission.screen"),y.emit("permission.status",{"permission.status.callback":(D,U,z,p)=>{const R=v[F],{type:V}=R,j=["screen"];if(le(R)){const{permissionDescriptors:$}=R,l=$==null?void 0:$.includes("microphone"),k=$==null?void 0:$.includes("camera");l&&j.push("audio"),k&&j.push("video"),(D!=null&&D.active&&!k||D!=null&&D.active&&U)&&F++}ve(v[F])&&z&&(F++,y.emit("begin.recording",{"recording.media.types":j,"start.recording.callback":$=>P({mediaRecordingUids:$})})),P({currentPage:v[F],avStream:D,screenPermissionRequested:z,nextQuestion:q,type:V,passthroughData:w,recordingMediaTypes:j,captureStream:p})}});const I=v[F];return I.type==="av_permission"&&pe({currentPage:I,pages:v}),I}({questionId:t,surveyId:o,next:v=>{u(v,!0)},pages:i.pages,responseGroupUid:g,userId:f}));let S=s.headline,m=s.captionText;const b=Re(C,s);return ve(s)&&c&&(S=s.permissionDeniedHeadline,m=s.permissionDeniedCaptionText),le(s)&&b===Ie&&(S=s.permissionGrantedHeadline,m=s.permissionGrantedCaptionText),e.p(()=>{d()},[d]),e.u("div",{className:e.cc(n,"ul-center-horizontally","fade-in-transition"),children:[e.u(a.Header,{isRequired:i==null?void 0:i.required,message:S,properties:{captionText:m}}),e.u(a.QuestionBodyWrapper,{children:e.u(Je,{properties:i})})]})},tt=({richTextBody:n,plaintextBody:i})=>n?e.u(a.Html,{className:"ul-rich-text-body",html:n,id:"ul-card__text-url-body-container"}):i?e.u("div",{className:"ul-rich-text-body",id:"ul-card__text-url-body-container",children:(i?i.split(/\n\s*\n/g):[]).map((u,t)=>e.u("p",{children:u},t))}):null,rt=({className:n,message:i,next:u,properties:t,questionId:r,type:o})=>{const{visitorAttributes:g,isLongFormSurvey:f}=e.useConfig(C=>({visitorAttributes:C.visitorAttributes,isLongFormSurvey:X.isLongFormSurvey(C.studyType)})),d=(C,s=!1)=>{u({value:s?{skipped:!0}:void 0,questionId:r,type:o},!0)},h=a.getAttributedUrl(t&&t.buttonUrl,g),c=f&&t.promptActionType===a.PromptActionTypeEnum.NO_BUTTON;return e.u("div",{className:e.cc(n,"ul-card__text-url-prompt","fade-in-transition"),children:[e.u(a.Header,{isRequired:f&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),e.u(a.QuestionBodyWrapper,{children:e.u(tt,{plaintextBody:t==null?void 0:t.body,richTextBody:t==null?void 0:t.richTextBody})}),e.u(a.MobileEmbedView,{properties:t,children:!c&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card-button-group",children:[e.u("a",{className:"ul-card-text__button ul-card__text-url-prompt-button",href:h,id:"ul-card-text__button",onClick:d,onKeyPress:C=>{C.key!=="Enter"&&C.key!==" "||u({value:void 0,questionId:r,type:o},!0)},rel:"noreferrer",role:h?"link":"button",tabIndex:0,target:"_blank",children:e.getButtonText(t)}),t.required===!1&&e.u("button",{className:"ul-card-skip__button",onClick:C=>d(0,!0),children:e.getSkipButtonText(t)})]})})})]},r)},nt=({className:n,questionId:i})=>{const{border:u,destroy:t,endCard:r,forceBrandedLogo:o,update:g}=e.useConfig(h=>({border:h.border,destroy:h.destroy,endCard:h.endCard,forceBrandedLogo:h.forceBrandedLogo,update:h.update}));e.p(()=>{setTimeout(()=>{t(re.APP_ID)},o?4e3:2e3)},[t,o]);const f=r&&r.subheader?e.u("p",{className:"ul-caption",children:r.subheader}):null,d=r&&r.headline?r.headline:"";return e.p(()=>{g()},[g]),e.u("div",{className:e.cc(n,"ul-card--thanks","fade-in-transition"),children:e.u("div",{children:e.u("div",{className:"ul-card--thanks-content",children:[e.u("div",{className:"ul-thanks-check",children:e.u("svg",{"aria-labelledby":"title",fill:"none",height:"99",viewBox:"0 0 81 99",width:"81",xmlns:"http://www.w3.org/2000/svg",children:[e.u("path",{clipRule:"evenodd",d:"M40.5 77C60.9345 77 77.5 60.4345 77.5 40C77.5 19.5655 60.9345 3 40.5 3C20.0655 3 3.5 19.5655 3.5 40C3.5 60.4345 20.0655 77 40.5 77ZM80.5 40C80.5 62.0914 62.5914 80 40.5 80C18.4086 80 0.5 62.0914 0.5 40C0.5 17.9086 18.4086 0 40.5 0C62.5914 0 80.5 17.9086 80.5 40Z",fill:u,fillRule:"evenodd"}),e.u("path",{clipRule:"evenodd",d:"M55.025 22.9046C55.6299 23.4705 55.6616 24.4198 55.0956 25.0247C54.8724 25.2634 54.6109 25.5285 54.3157 25.8277C52.2547 27.9168 48.5549 31.667 44.8135 39.6658C43.2818 42.9406 42.0864 45.8386 41.0823 48.2729C40.6539 49.3116 40.2603 50.2659 39.8902 51.129C39.287 52.5359 38.7248 53.7508 38.1744 54.625C37.8997 55.0613 37.5806 55.4905 37.2017 55.8245C36.8201 56.1607 36.2613 56.5 35.5457 56.5C34.6742 56.5 34.0892 55.9692 33.7774 55.6083C33.4502 55.2296 33.1752 54.7511 32.9396 54.301C32.7305 53.9013 32.5088 53.4367 32.2797 52.9565C32.2429 52.8794 32.2059 52.8019 32.1688 52.7243C31.8942 52.1499 31.5959 51.534 31.2537 50.8868C29.8886 48.305 27.8539 45.2878 24.2343 43.1382C23.522 42.7152 23.2875 41.7949 23.7105 41.0826C24.1335 40.3703 25.0539 40.1358 25.7662 40.5588C30.0556 43.1062 32.4149 46.6647 33.9058 49.4845C34.2776 50.1876 34.5973 50.8487 34.8753 51.4302C34.9147 51.5124 34.9529 51.5926 34.9902 51.6707C35.2222 52.1567 35.4164 52.5637 35.5978 52.9102C35.6151 52.9434 35.6321 52.9754 35.6485 53.0061C36.0565 52.3531 36.5341 51.3434 37.133 49.9468C37.4781 49.1418 37.8572 48.2229 38.2761 47.2074C39.2886 44.7532 40.5339 41.7347 42.0961 38.3948C46.0591 29.9221 50.0641 25.8648 52.1535 23.7482C52.4423 23.4556 52.6944 23.2002 52.9048 22.9753C53.4708 22.3703 54.42 22.3387 55.025 22.9046ZM35.1994 53.5892C35.1994 53.5892 35.2 53.5888 35.2012 53.5879C35.2 53.5889 35.1994 53.5893 35.1994 53.5892ZM36.0666 53.6682C36.0732 53.674 36.0765 53.6775 36.0765 53.6777C36.0765 53.678 36.0732 53.6751 36.0666 53.6682Z",fill:u,fillRule:"evenodd"}),e.u("path",{d:"M69.5 97C69.5 98.1046 56.2924 99 40 99C23.7076 99 10.5 98.1046 10.5 97C10.5 95.8954 23.7076 95 40 95C56.2924 95 69.5 95.8954 69.5 97Z",fill:"black",fillOpacity:"0.2"})]})}),e.u(a.Header,{message:d}),f]})})},i)},ie="ul-card-video__player_recorder",fe="ul-video-btn",de=0,Ce=1,it=({className:n,message:i,next:u,properties:t,questionId:r,type:o})=>{const{apiURL:g,envId:f,handleUploadUpdate:d,headers:h,responseGroupUid:c,surveyId:C,update:s,viewDocument:S,visitorId:m}=e.useConfig(p=>({apiURL:p.apiURL,envId:p.envId,handleUploadUpdate:p.handleUploadUpdate,headers:p.headers,responseGroupUid:p.responseGroupUid,surveyId:p.surveyId,update:p.update,viewDocument:p.viewDocument,visitorId:p.userId})),[b,v]=e.h(!1),[x,T]=e.h(null),[_,O]=e.h(null),[q,P]=e.h(de),[E,y]=e.h(null),[w,F]=e.h(null),I=t&&t.videoUrl,D=e.T(p=>{p&&y(p)},[y]);e.p(()=>{const p=new ResizeObserver(()=>{setTimeout(s,0)});return w&&p.observe(w),E&&p.observe(E),()=>{p.disconnect()}},[s,w,E]);const U=(p,R)=>{p===a.RECORDER.UPLOAD_STARTED?(T(R[a.RECORDER.UPLOAD_ID]),O(R[a.RECORDER.MEDIA_RECORDING_UID]),v(!0)):p===a.RECORDER.DELETE?(T(null),O(null),v(!1)):p===a.RECORDER.UPLOAD_PROGRESS?isNaN(R[a.RECORDER.UPLOAD_PROGRESS_PCT])?d({mediaRecordingUid:R[a.RECORDER.MEDIA_RECORDING_UID],isComplete:!0}):d({mediaRecordingUid:R[a.RECORDER.MEDIA_RECORDING_UID],progressPct:R[a.RECORDER.UPLOAD_PROGRESS_PCT]}):p===a.RECORDER.UPLOAD_FINISHED&&d({mediaRecordingUid:R[a.RECORDER.MEDIA_RECORDING_UID],isComplete:!0})},z=p=>{p.preventDefault(),p.stopPropagation(),document.getElementById(ie)&&a.stopRecording(ie),x&&_?(d({mediaRecordingUid:_,isSubmitted:!0}),u({value:{mediaRecordingUid:_},questionId:r,type:o},!0)):u({value:null,questionId:r,type:o},!0)};return e.u("form",{className:e.cc(n,"ul-card--video","fade-in-transition"),id:"ul-video-interview-form",children:[e.u(a.Header,{isRequired:t==null?void 0:t.required,message:i,properties:t}),e.u(a.QuestionBodyWrapper,{children:[e.u("div",{id:"ul-question-player-container",ref:D,style:{display:q===de?"":"none"},children:[e.u("div",{id:ie,ref:p=>{if(p&&p.children.length===0&&!t.hideRecordedPrompt){F(p);const R=a.videoPlayer(ie,{src:I,type:"application/x-mpegURL"},void 0,t.mediaType===a.RECORDER.MEDIA_TYPE_AUDIO,g,S);p.appendChild(R)}}}),e.u(a.MobileEmbedView,{properties:t,children:e.u("button",{className:`${fe} ul-record-response-btn`,onClick:p=>{p.preventDefault(),p.stopPropagation(),document.getElementById(ie)&&a.pauseQuestionPlayer(ie),P(Ce)}})})]}),e.u("div",{style:{display:q===Ce?"block":"none"},children:[e.u("button",{className:`${fe} ul-back-question-btn`,onClick:p=>{p.preventDefault(),p.stopPropagation(),P(de)},style:{display:t.hideRecordedPrompt?"none":"block"}}),e.u("div",{id:"ul-recorder-player-container",ref:p=>{if(p&&p.children.length===0){F(p);const R=a.videoRecorderPlayer(ie,{surveyId:C,responseGroupUid:c,questionId:r,visitorId:m,envId:f},g,U,void 0,{...h,"x-ul-video-recorder-origin":"sdk"},t.mediaType===a.RECORDER.MEDIA_TYPE_AUDIO,S);p.appendChild(R)}}})]})]}),e.u(a.QuestionBodyFooterContainer,{children:[e.u(a.Button,{disabled:!b,onClick:z,children:e.getButtonText(t)}),e.u("button",{className:"ul-card-text__button ul-button-inactive ul-card-skip__button",id:"ul-card-video__skip_button",onClick:z,style:{display:t.required?"none":"block",...b?{display:"none"}:{}},children:e.getSkipButtonText(t)})]})]})},st=({className:n})=>{const{uploadProgress:i}=e.useConfig(o=>({uploadProgress:o.uploadProgress}));let u,t;Object.values(i).filter(o=>o.isSubmitted).length>1?(u="Your responses are processing",t="Please keep this tab open until your responses are fully processed."):(u="Your response is processing",t="Please keep this tab open until your response is fully processed.");const r=Math.round(Math.min(99,...Object.values(i).filter(o=>o.isSubmitted).map(o=>o.progressPct||0)));return e.u("div",{className:e.cc(n,"ul-card--uploading","fade-in-transition"),children:[e.u("div",{"aria-busy":"true","aria-label":"Processing...","aria-live":"polite",className:"ul-loading-spinner-container",role:"progressbar",children:e.u("div",{className:"ul-loading-spinner",children:[e.u("div",{className:"first"}),e.u("div",{className:"second"}),e.u("div",{className:"third"}),e.u("div",{className:"fourth"})]})}),e.u(a.Header,{message:`${u} (${r}% complete)`}),e.u("p",{className:"ul-caption",children:t})]})},qe=e.F$1(void 0),ot=({value:n,children:i})=>e.u(qe.Provider,{value:n,children:i}),lt=({isRightLabel:n,isLeftLabel:i})=>n?e.MaxDiffChoice.RIGHT:i?e.MaxDiffChoice.LEFT:null,at="Best",ut="Worst",dt=({className:n,labels:i,message:u,properties:t,options:r,questionId:o,type:g,next:f})=>{var O,q,P,E;const[d,h]=e.h(r.map((y,w)=>({...y,label:y.label===""?`Item ${w+1}`:y.label,isRightLabel:!1,isLeftLabel:!1}))),c=(()=>{const y=e.q(qe);if(y===void 0)throw new Error("usePreviousResponses must be used within a PreviousResponsesProvider");return y})(),C={padding:"24px",display:"flex",cursor:"pointer",width:"auto"},[s,S]=e.h(!1);e.p(()=>{const y=d.findIndex(R=>R.isRightLabel),w=d.findIndex(R=>R.isLeftLabel),F=y!==-1&&w!==-1;S(F);const I=!t.required||t.required&&F,D=d.map(R=>({id:R.id,option:R.label,selected:lt(R)})),U=Math.floor(o),z=Object.keys(c).filter(R=>R.startsWith(U.toString())).map(Number).sort((R,V)=>R-V).at(-1),p=[];if(typeof z=="number"){const R=c[z],V=JSON.parse(R);p.push(...V)}p.push(D),setTimeout(()=>{f({value:p,questionId:o,type:g},I,F),S(!1)},F?500:0)},[d]);const{border:m,useMobileStyling:b,enableCspTrustedTypes:v}=e.useConfig(y=>({border:y.border,useMobileStyling:y.useMobileStyling,enableCspTrustedTypes:y.enableCspTrustedTypes})),x=(y,w)=>()=>{s||h(F=>((I,D,U)=>I.map(z=>z.id===D?{...z,isRightLabel:U===e.MaxDiffChoice.RIGHT,isLeftLabel:U===e.MaxDiffChoice.LEFT}:U===e.MaxDiffChoice.RIGHT&&z.isRightLabel||U===e.MaxDiffChoice.LEFT&&z.isLeftLabel?{...z,isRightLabel:!1,isLeftLabel:!1}:z))(F,y,w))},T=(O=t.ratingIcons)==null?void 0:O[0].svg,_=(q=t.ratingIcons)==null?void 0:q[1].svg;return e.u("form",{className:e.cc(n,"ul-card-maxdiff","fade-in-transition"),children:[e.u(a.Header,{isRequired:t==null?void 0:t.required,message:u,properties:t}),e.u(a.QuestionBodyWrapper,{children:e.u("div",{className:"ul-card--maxdiff__question-inner-container",children:[e.u("div",{className:"ul-card-maxdiff__label",children:(i==null?void 0:i.left)||((P=t==null?void 0:t.labels)==null?void 0:P.left)||at}),e.u("div",{children:" "}),e.u("div",{className:"ul-card-maxdiff__label",children:(i==null?void 0:i.right)||((E=t==null?void 0:t.labels)==null?void 0:E.right)||ut}),d.map(({id:y,label:w,isLeftLabel:F,isRightLabel:I})=>e.u(e.g,{children:[e.u("div",{className:"ul-card-maxdiff__option-control "+(_?"smiley":""),children:_?e.u(Se,{ariaPressed:F,className:F?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected good":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:v,html:_,id:`smiley-good-${y}`,onClick:x(y,e.MaxDiffChoice.LEFT)}):e.u(a.Option,{allowTextEntry:!1,ariaLabel:`bestLabel-${w}`,border:m,choiceStyle:C,error:!1,id:`${y}`,isRadio:!0,isSelected:F,onUserInputChanged:x(y,e.MaxDiffChoice.LEFT),useMobileStyling:b})}),e.u("div",{className:"ul-card-maxdiff__option-label",children:w}),e.u("div",{className:"ul-card-maxdiff__option-control "+(T?"smiley":""),children:T?e.u(Se,{ariaPressed:I,className:I?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected bad":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:v,html:T,id:`smiley-bad-${y}`,onClick:x(y,e.MaxDiffChoice.RIGHT)}):e.u(a.Option,{allowTextEntry:!1,ariaLabel:`worstLabel-${w}`,border:m,choiceStyle:C,error:!1,id:`${y}`,isRadio:!0,isSelected:I,onUserInputChanged:x(y,e.MaxDiffChoice.RIGHT),useMobileStyling:b})})]}))]})})]},o)},Se=({enableCspTrustedTypes:n,ariaPressed:i,className:u,html:t,id:r,onClick:o})=>{const g=e.F(()=>re.getHtml(t,n),[n,t]);return e.u("span",{"aria-pressed":i,className:u,dangerouslySetInnerHTML:{__html:g},id:r,onClick:o,tabIndex:0,type:"button"})},ct=({className:n,labels:i,message:u,next:t,properties:r,questionId:o,type:g,onSubmitButtonClick:f,options:d,showIndividualSubmit:h=!1})=>{const c=e._(null),C=e._(0),s=e._(0),S=e._(null),m=e._(!1),b=e._([]),[v,x]=e.h(()=>(r==null?void 0:r.required)===!0),[T,_]=e.h(()=>d.map(N=>({...N,rank:null}))),O=e.F(()=>Array.from({length:d.length},(N,A)=>A+1),[d.length]),{isLongFormSurvey:q,focusedQuestionId:P,setFocusedQuestionId:E,useMobileStyling:y,isPreview:w,headers:F}=e.useConfig(N=>({useMobileStyling:N.useMobileStyling,isLongFormSurvey:X.isLongFormSurvey(N.studyType),focusedQuestionId:N.focusedQuestionId,setFocusedQuestionId:N.setFocusedQuestionId,isPreview:N.isPreview,headers:N.headers})),I=(F==null?void 0:F["userleap-platform"])==="android",D=y&&!w&&!I,U=!D&&!I,z=q&&P===o,p=N=>{N.preventDefault(),L(T),f&&f()},R=(N,A)=>{_(H=>{const B=parseInt(A),G=H.map(Z=>({...Z}));G.some(Z=>Z.rank==null)&&G.forEach((Z,se)=>Z.rank=se+1);const J=G.findIndex(Z=>Z.id===N);if(J===-1)return H;const K=G[J].rank;return B<K?G.forEach(Z=>{Z.id!==N&&Z.rank>=B&&Z.rank<K&&(Z.rank=Z.rank+1)}):B>K&&G.forEach(Z=>{Z.id!==N&&Z.rank>K&&Z.rank<=B&&(Z.rank=Z.rank-1)}),G[J].rank=B,G.sort((Z,se)=>Z.rank-se.rank),Q(G),G})},V=(N,A)=>{for(let H=0;H<b.current.length;H++){const B=b.current[H];if(!B||B===S.current)continue;const G=B.getBoundingClientRect();if(N>=G.left&&N<=G.right&&A>=G.top&&A<=G.bottom)return{element:B,index:H}}return null},j=N=>A=>{if(!D)return;A.preventDefault(),A.stopPropagation(),m.current=!0,c.current=N;const H=A.touches[0];C.current=H.clientY,s.current=H.clientY;const B=A.currentTarget.closest(".ul-card-rank__option");B&&(S.current=B,B.classList.add("is-dragging"))},$=N=>{if(!D||!m.current||c.current===null)return;N.preventDefault(),N.stopPropagation();const A=N.touches[0];s.current=A.clientY;const H=s.current-C.current;S.current&&(S.current.style.transform=`translateY(${H}px)`,S.current.style.zIndex="1000"),b.current.forEach(G=>{G&&G!==S.current&&G.classList.remove("is-drop-target")});const B=V(A.clientX,A.clientY);B&&B.element.classList.add("is-drop-target")},l=N=>{if(!D||!m.current||c.current===null)return;N.preventDefault(),N.stopPropagation();const A=N.changedTouches[0],H=V(A.clientX,A.clientY);S.current&&(S.current.style.transform="",S.current.style.zIndex="",S.current.classList.remove("is-dragging")),b.current.forEach(B=>{B&&B.classList.remove("is-drop-target")}),H&&H.index!==c.current&&k(c.current,H.index),c.current=null,S.current=null,m.current=!1},k=(N,A)=>{_(H=>{const B=H.map(J=>({...J})),[G]=B.splice(N,1);return B.splice(A,0,G),B.forEach((J,K)=>{J.rank=K+1}),Q(B),B})},L=N=>{const A={};N.reduce((H,B)=>(H[B.id]=B.rank,H),A),t({value:A,questionId:o,type:g},!0)},Q=N=>{x(!1),q&&L(N)},{left:M,right:W}=i,Y=d.length,te=N=>{N.preventDefault(),N.currentTarget.classList.add("is-drop-target")},ne=N=>{N.currentTarget.classList.remove("is-drop-target")},oe=N=>{c.current=null,N.currentTarget.classList.remove("is-dragging")};return e.u("form",{className:e.cc(n,"ul-card-rank","fade-in-transition",q&&!z&&"ul-card--unfocused"),onClick:q&&!z?()=>{E(o)}:void 0,onSubmit:p,children:[e.u(a.Header,{isRequired:r==null?void 0:r.required,message:u,properties:r}),e.u(a.MobileEmbedView,{properties:r,children:I?e.u(e.g,{children:[e.u(a.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card--rank__question-inner-container",children:[e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:["1 - ",M]})}),e.u("ol",{className:"ul-card-rank__list",children:T.map(({id:N,label:A,rank:H})=>e.u("li",{className:"ul-card-rank__option",children:[e.u("select",{"aria-label":`Rank for ${A}`,className:e.cc("ul-card-rank__select",H==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:B=>R(N,B.currentTarget.value),value:H??"",children:[H==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),O.map(B=>e.u("option",{className:"ul-card-rank__select-option",value:B,children:B},`${B}-${o}`))]}),e.u("span",{children:A})]},N))}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[Y," - ",W]})})]}),h&&e.u(a.LongformSubmitButton,{handleSubmit:p,isSubmitDisabled:v})]}),!q&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(a.Button,{disabled:v,children:e.getButtonText(r)})})})]}):e.u(e.g,{children:[e.u(a.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card--rank__question-inner-container",children:[e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:["1 - ",M]})}),e.u("ol",{className:"ul-card-rank__list",onDragOver:I?void 0:N=>{N.preventDefault(),N.dataTransfer&&(N.dataTransfer.dropEffect="move")},children:T.map(({id:N,label:A,rank:H},B)=>{return e.u("li",{className:"ul-card-rank__option",draggable:!!U||void 0,onDragEnd:U?oe:void 0,onDragEnter:U?te:void 0,onDragLeave:U?ne:void 0,onDragStart:U?(J=B,K=>{c.current=J,K.dataTransfer&&(K.dataTransfer.effectAllowed="move",K.dataTransfer.setData("text/plain",String(J)),K.currentTarget.classList.add("is-dragging"))}):void 0,onDrop:U?(G=B,K=>{var se,be;K.preventDefault(),K.currentTarget.classList.remove("is-drop-target");const Z=c.current;c.current=null,(be=(se=K.currentTarget.closest(".ul-card-rank__list"))==null?void 0:se.querySelector(".is-dragging"))==null||be.classList.remove("is-dragging"),Z!=null&&Z!==G&&k(Z,G)}):void 0,ref:K=>b.current[B]=K,children:[e.u("select",{"aria-label":`Rank for ${A}`,className:e.cc("ul-card-rank__select",H==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:K=>R(N,K.currentTarget.value),value:H??"",children:[H==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),O.map(K=>e.u("option",{className:"ul-card-rank__select-option",value:K,children:K},`${K}-${o}`))]}),e.u("span",{children:A}),!I&&e.u("button",{"aria-label":`Drag ${A} to reorder`,className:"ul-card-rank__drag-btn",onTouchEnd:D?l:void 0,onTouchMove:D?$:void 0,onTouchStart:D?j(B):void 0,title:"Drag to reorder",type:"button",children:e.u("svg",{fill:"none",height:"17",viewBox:"0 0 16 17",width:"16",xmlns:"http://www.w3.org/2000/svg",children:e.u("path",{d:"M5.75 11.625C6.37132 11.625 6.875 12.1287 6.875 12.75C6.875 13.3713 6.37132 13.875 5.75 13.875C5.12868 13.875 4.625 13.3713 4.625 12.75C4.625 12.1287 5.12868 11.625 5.75 11.625ZM10.25 11.625C10.8713 11.625 11.375 12.1287 11.375 12.75C11.375 13.3713 10.8713 13.875 10.25 13.875C9.62868 13.875 9.125 13.3713 9.125 12.75C9.125 12.1287 9.62868 11.625 10.25 11.625ZM5.75 7.375C6.37132 7.375 6.875 7.87868 6.875 8.5C6.875 9.12132 6.37132 9.625 5.75 9.625C5.12868 9.625 4.625 9.12132 4.625 8.5C4.625 7.87868 5.12868 7.375 5.75 7.375ZM10.25 7.375C10.8713 7.375 11.375 7.87868 11.375 8.5C11.375 9.12132 10.8713 9.625 10.25 9.625C9.62868 9.625 9.125 9.12132 9.125 8.5C9.125 7.87868 9.62868 7.375 10.25 7.375ZM5.75 3.125C6.37132 3.125 6.875 3.62868 6.875 4.25C6.875 4.87132 6.37132 5.375 5.75 5.375C5.12868 5.375 4.625 4.87132 4.625 4.25C4.625 3.62868 5.12868 3.125 5.75 3.125ZM10.25 3.125C10.8713 3.125 11.375 3.62868 11.375 4.25C11.375 4.87132 10.8713 5.375 10.25 5.375C9.62868 5.375 9.125 4.87132 9.125 4.25C9.125 3.62868 9.62868 3.125 10.25 3.125Z",fill:"currentColor"})})})]},N);var G,J})}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[Y," - ",W]})})]}),h&&e.u(a.LongformSubmitButton,{handleSubmit:p,isSubmitDisabled:v})]}),!q&&e.u(a.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(a.Button,{disabled:v,children:e.getButtonText(r)})})})]})})]},o)},pt=new Set(["aidynamicfollowup","open","matrix","multipleselect","multiplechoice","rankorder"]),xe=({cardInstance:n,moveToNextQuestion:i,showIndividualSubmit:u,submitQuestion:t,updateCardValues:r,allResponsesArray:o})=>{const{isLongFormSurvey:g,createDynamicQuestion:f,cards:d,surveyVisitorAttributes:h}=e.useConfig(_=>({isLongFormSurvey:X.isLongFormSurvey(_.studyType),createDynamicQuestion:_.createDynamicQuestion,cards:_.cards,surveyVisitorAttributes:_.surveyVisitorAttributes}));if(!n)return null;const{name:c,type:C,props:s,childId:S}=n,m=u&&pt.has(C),b=s==null?void 0:s.displayLogic,v=b==null?void 0:e.someDisplayLogicOptionMatches({displayLogic:b,allResponses:o,cards:d,surveyVisitorAttributes:h??{}});if(b&&b.length>0&&!v)return null;const x={className:"ul-card",next:(_,O,q=!0)=>t(_,O&&q),questionId:c,type:C,showIndividualSubmit:u,...m?{next:(_,O)=>{r(_.questionId,_,O??!0)},onSubmitButtonClick:(_=!1)=>{S?_?(i(c),f({parentQuestionId:c})):i(S):i(c)}}:{}},T=(()=>{switch(C){case"consentlegal":return e.u(Be,{...x,...s});case"likert":return e.u(Me,{...x,...s});case"matrix":return e.u(Ae,{...x,...s});case"maxdiff":return e.u(dt,{...x,...s});case"multiplechoice":return e.u(He,{...x,...s});case"multipleselect":return e.u($e,{...x,...s});case"nps":return e.u(Ve,{...x,...s});case"open":case"aidynamicfollowup":return e.u(We,{...x,type:n.type,...s});case"rankorder":return e.u(ct,{...x,...s});case"recordedtask":return e.u(et,{...x,...s});case"texturlprompt":return e.u(rt,{...x,...s});case"thanks":return e.u(nt,{...x,...s});case"uploading":return e.u(st,{...x,...s});case"videovoice":return e.u(it,{...x,...s});default:return null}})();return T?g?e.u("div",{className:"ul-card-scroll-wrapper",children:T},c):T:null},mt=({isSubmitDisabled:n=!1,onSubmit:i,buttonText:u})=>{var S;const{cards:t,forceBrandedLogo:r,index:o,marketingUrl:g,showSurveyBrand:f,slugName:d,surveyId:h,useMobileStyling:c}=e.useConfig(m=>({cards:m.cards,forceBrandedLogo:m.forceBrandedLogo,index:m.index,marketingUrl:m.marketingUrl,showSurveyBrand:m.showSurveyBrand,slugName:m.slugName,surveyId:m.surveyId,useMobileStyling:m.useMobileStyling})),C=((S=t[o])==null?void 0:S.type)==="thanks",s=e.buildMarketingUrl({marketingUrl:g,slugName:d,surveyId:h,forceBrandedLogo:r});return e.u("footer",{className:e.cc("long-form-question-footer-container",c&&"long-form-question-footer-container--mobile",C&&"long-form-question-footer-container-center"),children:[C&&r?e.u(e.ThankYouLink,{marketingUrlLink:s}):e.u("div",{className:"long-form-question-footer-container-logo",children:f?e.u(e.SprigBrandLogo,{forceBrandedLogo:r,marketingUrlLink:s}):null}),!C&&e.u("div",{className:e.cc("ul-card__button-wrapper","ul-card-vertical__button-wrapper","long-form-question-footer-container-actions"),children:e.u(a.Button,{className:e.cc("long-form-button",n&&"sprig-button-disabled"),disabled:n,onClick:i,children:e.u("span",{className:"long-form-button-text-container",children:u??e.u(e.Arrow,{stroke:"white"})})})})]})};exports.PageCard=({cards:n,next:i,previousResponses:u})=>{var $;const t=e._(null),[r,o]=e.h({}),[g,f]=e.h({}),{isLongFormSurvey:d,focusedQuestionId:h,setFocusedQuestionId:c,createDynamicQuestion:C,allResponses:s,cardIndexByName:S,surveyVisitorAttributes:m,cards:b}=e.useConfig(l=>({isLongFormSurvey:X.isLongFormSurvey(l.studyType),focusedQuestionId:l.focusedQuestionId,setFocusedQuestionId:l.setFocusedQuestionId,createDynamicQuestion:l.createDynamicQuestion,allResponses:l.allResponses,cardIndexByName:l.cardIndexByName,surveyVisitorAttributes:l.surveyVisitorAttributes,cards:l.cards})),v=e.F(()=>({...u,...e.buildReadableResponseMap(n.map(l=>{var k,L;return{...l,value:((k=r[l.name])==null?void 0:k.value)??null,secondaryValue:((L=r[l.name])==null?void 0:L.secondaryValue)??null}}))}),[u,r,n]);e.useSetAllResponsesRaw(v);const x=e.pipeReadableResponsesIntoCards(n,v),T=e.F(()=>e.buildResponsesArrayForDisplayLogic({storeAllResponses:s,cards:n,cardValues:r,cardIndexByName:S}),[s,n,r,S]),_=e.F(()=>{const l=new Set;return n.forEach(k=>{var Q;const L=(Q=k.props)==null?void 0:Q.displayLogic;if(!L||L.length===0)return void l.add(k.name);e.someDisplayLogicOptionMatches({displayLogic:L,allResponses:T,cards:b,surveyVisitorAttributes:m??{}})&&l.add(k.name)}),l},[n,T,m,b]),O=e._(null);e.p(()=>{const l=_,k=O.current;if(k!==null)for(const L of k)l.has(L)||(o(Q=>{const M={...Q};return delete M[L],M}),f(Q=>{const M={...Q};return delete M[L],M}));O.current=new Set(l)},[_]);const q=e._(null),P=e._(!1),E=e._(null),y=e.T(l=>{var M,W;P.current=!0;const k=n.findIndex(Y=>Y.name===l);if(!d||l===null||k===-1)return void(P.current=!1);const L=(M=q.current)==null?void 0:M.querySelectorAll(".ul-card-scroll-wrapper")[k],Q=(W=q.current)==null?void 0:W.closest(".ul-card-main-content");if(L&&Q){if(L&&Q){const Y=L.getBoundingClientRect(),te=Q.getBoundingClientRect(),ne=Y.top-te.top+Q.scrollTop,oe=ne+Y.height/2,N=window.innerHeight-157;let A;Y.height>=N?A=ne:A=oe-Q.clientHeight/2;const H=Q.clientHeight,B=Q.scrollHeight-H,G=Math.max(0,Math.min(A,B));Q.scrollTo({top:G,behavior:"smooth"}),setTimeout(()=>{P.current=!1},500)}}else P.current=!1},[d,n]);e.p(()=>{h!==null&&n.findIndex(l=>l.name===h)!==-1||c(n[0].name)},[n,h,c]);const w=({displayCard:l,response:k})=>{if(l&&((l==null?void 0:l.childId)??0)>0){const L=e.buildReadableResponseMap([l].map(Q=>({...Q,value:(k==null?void 0:k.value)??null,secondaryValue:(k==null?void 0:k.secondaryValue)??null})));C({parentQuestionId:l==null?void 0:l.name,parentResponseConfig:L})}};function F(l,k){return l.filter(L=>_.has(L.name)).map(L=>{const Q=k[L.name],M=x.find(W=>W.name===L.name);return{...Q,questionText:M?e.getProcessedQuestionText(M):void 0}})}const I=l=>{if(!d)return;let k=n.findIndex(L=>L.name===l)+1;for(;k<n.length&&!_.has(n[k].name);)k++;k<n.length?c(n[k].name):c(l)};e.p(()=>{d&&h!==null&&(E.current!==h?y(h):E.current=null)},[h,d,y]);const D=e.T(()=>{var te,ne;if(P.current)return;const l=(te=q.current)==null?void 0:te.closest(".ul-card-main-content");if(!l)return;const k=(ne=q.current)==null?void 0:ne.querySelectorAll(".ul-card-scroll-wrapper");if(!k||k.length===0)return;const L=l.getBoundingClientRect(),Q=L.top+L.height/2;let M=0,W=1/0;k.forEach((oe,N)=>{const A=oe.getBoundingClientRect(),H=A.top+A.height/2,B=Math.abs(Q-H);B<W&&(W=B,M=N)});const Y=n[M];E.current=Y.name,c(Y.name)},[n,c]);e.p(()=>{var k;if(!d)return;const l=((k=q.current)==null?void 0:k.closest(".ul-card__container"))||null;return l&&l.addEventListener("scroll",D,{passive:!0}),()=>{l&&l.removeEventListener("scroll",D)}},[D,d]);const U=e.F(()=>n.every(l=>{var k;return!_.has(l.name)||!(!(l!=null&&l.props)||!("properties"in l.props)||((k=l.props.properties)==null?void 0:k.required)!==!1)||g[l.name]}),[g,n,_]),z=async(l,k,L)=>{return f(M=>({...M,[l]:L})),await(Q=M=>({...M,[l]:k}),new Promise(M=>{o(W=>{const Y=Q(W);return M(Y),Y})}));var Q};e.p(()=>{var Q;if(!d)return;const l=t.current,k=(Q=n==null?void 0:n[0])==null?void 0:Q.groupId;t.current=k;const L={};if(n.forEach(M=>{var W,Y;a.appCardHasPropertiesWithRequired(M)&&(M.props.properties.required||(L[M.name]={value:((W=r[M.name])==null?void 0:W.value)??null,secondaryValue:((Y=r[M.name])==null?void 0:Y.secondaryValue)??null,questionId:M.name,type:M.type}))}),l==null||l!==k)o(L),f({});else{o(W=>({...W,...L}));const M=n.reduce((W,Y)=>{var te;return Y.type==="aidynamicfollowup"&&((te=Y.props)==null?void 0:te.loading)===null&&(W[Y.name]=!0),W},{});f(W=>({...W,...M}))}},[n,d]);const p=async(l,k)=>{if(d){const L=await z(l.questionId,l,k),Q=R(l.type),M=V(l.type);if(Q&&I(l.questionId),M&&k){const W=F(n,L);i(W)}}else{const L=x.find(M=>M.name===l.questionId),Q={...l,questionText:L?e.getProcessedQuestionText(L):void 0};w({displayCard:L,response:l}),i([Q])}},R=l=>new Set(["nps","likert","multiplechoice"]).has(l),V=l=>new Set(["videovoice","consentlegal","texturlprompt","maxdiff"]).has(l),j=(($=n[0])==null?void 0:$.type)==="thanks";return d?e.u("div",{className:"ul-card-list-container--longform","data-testid":"ui-container",ref:q,children:[e.u(ot,{value:u,children:x.map((l,k)=>e.u(xe,{allResponsesArray:T,cardInstance:l,moveToNextQuestion:I,showIndividualSubmit:d&&n.length>1&&k<n.length-1,submitQuestion:p,updateCardValues:z},(l==null?void 0:l.name)||k))}),!j&&e.u(mt,{isSubmitDisabled:!U,onSubmit:function(){const l=F(n,r);if((x==null?void 0:x.length)===1&&(l==null?void 0:l.length)===1){const k=x[0],L=l[0];w({displayCard:k,response:L})}i(l)}})]}):e.u(e.g,{children:[e.u("div",{"data-testid":"ui-container",style:{display:"none"}}),x.map((l,k)=>e.u(xe,{allResponsesArray:T,cardInstance:l,moveToNextQuestion:I,showIndividualSubmit:d&&n.length>1&&k<n.length-1,submitQuestion:p,updateCardValues:z},(l==null?void 0:l.name)||k))]})};
|
package/dist/index.cjs
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-
|
|
1
|
+
"use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-wqg-G3hc.cjs");require("./replay.cjs");const r=require("./metricsReporter-BAjv1fmT.cjs");exports.Sprig=e.Sprig,exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig,exports.DismissReason=r.DismissReason,exports.SprigEvent=r.SprigEvent;
|
package/dist/index.d.ts
CHANGED
|
@@ -1550,7 +1550,7 @@ interface RecordedTaskResponseType {
|
|
|
1550
1550
|
value: RecordedTaskResponseValueType;
|
|
1551
1551
|
}
|
|
1552
1552
|
|
|
1553
|
-
type SurveyState = "ready" | "no survey";
|
|
1553
|
+
type SurveyState = "ready" | "no survey" | "previous survey ready";
|
|
1554
1554
|
type ReplayDurationType = "after" | "before" | "beforeAndAfter";
|
|
1555
1555
|
|
|
1556
1556
|
interface MobileReplayConfig {
|
|
@@ -1793,6 +1793,7 @@ interface Config extends MobileReplayConfig {
|
|
|
1793
1793
|
environmentId?: string;
|
|
1794
1794
|
exitOnOverlayClick?: boolean;
|
|
1795
1795
|
exitOnOverlayClickMobile?: boolean;
|
|
1796
|
+
experimentFlags?: Record<string, boolean>;
|
|
1796
1797
|
eventEmitFn: SprigEventEmitter["emit"];
|
|
1797
1798
|
fontFamily?: string;
|
|
1798
1799
|
fontFamilyURL: undefined;
|
package/dist/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { S as i, a as p, c as o, s as e } from "./core-DJ3Dpomz.js";
|
|
2
2
|
import "./replay.js";
|
|
3
|
-
import { D as S, S as g } from "./metricsReporter-
|
|
3
|
+
import { D as S, S as g } from "./metricsReporter-DDWVWGid.js";
|
|
4
4
|
export {
|
|
5
5
|
S as DismissReason,
|
|
6
6
|
i as Sprig,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
"use strict";var Y=Object.defineProperty;var j=(e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>j(e,typeof t!="symbol"?t+"":t,r);var U=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(U||{}),A=(e=>(e.ReplayCapture="replay.capture",e.ReplayPaused="replay.paused",e.ReplayResumed="replay.resumed",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyCloseRequested="survey.closeRequested",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});let m;const F=new Uint8Array(16);function H(){if(!m&&(m=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(F)}const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));const w={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},b=new class{constructor(){l(this,"breadcrumbs",[])}getTimeStamp(){return new Date().toISOString()}addBreadcrumb(e){this.breadcrumbs.push(e),this.breadcrumbs.length>300&&this.breadcrumbs.shift()}debug(e,t="debug"){this.addBreadcrumb({category:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"debug"})}error(e,t={}){this.addBreadcrumb({category:"error",data:t,level:"error",message:e,timestamp:this.getTimeStamp(),type:"error"})}http(e,t){this.addBreadcrumb({category:"xhr",data:t,message:e,timestamp:this.getTimeStamp(),type:"http"})}info(e,t={}){this.addBreadcrumb({category:"info",data:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"info"})}navigation(e,t){this.addBreadcrumb({category:"navigation",data:t,message:e,timestamp:this.getTimeStamp(),type:"navigation"})}};var q=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},C=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=C.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new q(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=C;D.defaultMaxListeners=10;const B=new D,S=async e=>{await new Promise(t=>{setTimeout(t,e)})};class x{constructor(t){l(this,"storage");l(this,"tempStorage",{});l(this,"isStorageAvailable");try{this.storage=window[t];const r="__storage_test__";this.storage.setItem(r,r),this.storage.removeItem(r),this.isStorageAvailable=!0}catch{this.isStorageAvailable=!1}}setItem(t,r){this.isStorageAvailable&&this.storage?this.storage.setItem(t,r):this.tempStorage[t]=r}setItemObject(t,r){try{this.setItem(t,JSON.stringify(r))}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to save to local storage",s))}}getItem(t){return this.isStorageAvailable&&this.storage?this.storage.getItem(t):this.tempStorage[t]}getItemObject(t){const r=this.getItem(t);if(r)try{return JSON.parse(r)}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to parse local storage",s))}return{}}removeItem(t){this.isStorageAvailable&&this.storage?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable&&this.storage?this.storage.clear():this.tempStorage={}}}const J=new x("sessionStorage"),$=new x("localStorage");class K{constructor(t){l(this,"payload");l(this,"promise");l(this,"reject",()=>{});l(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const E={replay:null},G=()=>{const e=[];return E.replay&&e.push("replay"),e.join(",")},z=10;let T=!1,M="",g=!1,P=!1,y=[];const Q=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=(e="")=>{T=!0,M=e},R=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new K(t);return y.push(r),r.promise}},v=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:n=!1,...i}=t,d={url:e,options:i,retries:r,shouldDropOnRateLimit:s};if(g&&!n)return R(d);const u={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${M}`),u;try{const c=await fetch(e,i);if(c.status===429){if(!g&&!s||n){g=!0;const a=c.headers.has("ratelimit-reset")?Number(c.headers.get("ratelimit-reset")):z;return await S(1e3*a),v(e,{...i,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}return R(d)}if(g=!1,y.length&&(y.map(a=>{const h=a.payload;v(h.url,{...h.options,retries:h.retries,shouldDropOnRateLimit:h.shouldDropOnRateLimit}).then(W=>{a.resolveRequest(W)})}),y=[]),c.ok){if(c.status===249)return N(),u;const a=await c.text();try{return a&&a!=="OK"&&(c.json=JSON.parse(a)),c}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${a}`)}}}return c}catch(c){const a=r+1;return a>5||P?{ok:!1,reportError:!1,error:c}:(await S(1e3*Math.pow(2,r)),v(e,{...i,retries:a}))}},I=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function k(e,t){const{matchType:r,pattern:s}=e,n=r?I[r]:I.legacy;let i=!1;try{i=n(s,t)}catch(d){const u=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;d instanceof Error&&(console.warn(u,d),d.stack=JSON.stringify(e),window.UserLeap.reportError(u,d))}return i}let V=!0,f=!1;const X=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let L,p={};class Z{constructor(t){l(this,"_values",[]);l(this,"_isWebMetric");this.name=t,this._isWebMetric=X.includes(this.name)}report(t){if(V&&this._values.push({time:Date.now(),value:t}),f||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&L&&L(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=p[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"&&t<r.value}}const _={},O=e=>{const t=new Z(e);return _[e]=t,t};exports.DismissReason=U,exports.EVENTS={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}},exports.PerformanceMetrics=_,exports.SprigEvent=A,exports.breadcrumbsLogger=b,exports.checkUrlMatch=k,exports.checkUrlStillMatching=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return!!r&&k(r,window.location.href)},exports.cspViolationHandler=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(P=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},exports.delay=S,exports.disableThresholdChecking=()=>f=!0,exports.eventEmitter=B,exports.getHttpHeaders=function(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.42.0","x-ul-installation-method":Q(e),"sprig-modules":G()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t},exports.groupCards=(e,t)=>{const r=[e[t]],s=e[t].groupId;return s?e.slice(t).reduce((n,i)=>(i.groupId===s&&n.push(i),n),[]):r},exports.initPerformanceReporting=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{(async r=>{const s=Object.values(_).map(n=>({name:n.name,values:n.collect()}));if(s.some(n=>n.values.length))try{await r(JSON.stringify(s))}catch(n){n instanceof Error&&b.error("MetricsErr",{error:{message:n.message,name:n.name}})}})(t)},1e3*e):V=!1},exports.isLongFormSurvey=e=>e==="longFormSurvey",exports.killNetworkRequests=N,exports.localStorageHelper=$,exports.modules=E,exports.registerMetric=O,exports.registerReplay=e=>{E.replay=e},exports.registerThresholds=(e,t)=>{p={},f=!1,e==null||e.forEach(r=>{var s;r.metric in p||(p[r.metric]=[]),(s=p[r.metric])==null||s.push(r)}),L=t},exports.reportAndRegister=(e,t)=>{let r=_[e];return r||(r=O(e)),r.report(t)},exports.sessionStorageHelper=J,exports.shouldDirectEmbed=({"userleap-platform":e})=>{var t;return((t=window.UserLeap)==null?void 0:t.forceDirectEmbed)||e!=="web"},exports.sprigFetch=v,exports.v4=function(e,t,r){if(w.randomUUID&&!e)return w.randomUUID();const s=(e=e||{}).random||(e.rng||H)();return s[6]=15&s[6]|64,s[8]=63&s[8]|128,function(n,i=0){return o[n[i+0]]+o[n[i+1]]+o[n[i+2]]+o[n[i+3]]+"-"+o[n[i+4]]+o[n[i+5]]+"-"+o[n[i+6]]+o[n[i+7]]+"-"+o[n[i+8]]+o[n[i+9]]+"-"+o[n[i+10]]+o[n[i+11]]+o[n[i+12]]+o[n[i+13]]+o[n[i+14]]+o[n[i+15]]}(s)};
|
|
1
|
+
"use strict";var Y=Object.defineProperty;var j=(e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>j(e,typeof t!="symbol"?t+"":t,r);var U=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(U||{}),A=(e=>(e.ReplayCapture="replay.capture",e.ReplayPaused="replay.paused",e.ReplayResumed="replay.resumed",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyCloseRequested="survey.closeRequested",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});let m;const F=new Uint8Array(16);function H(){if(!m&&(m=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(F)}const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));const w={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},b=new class{constructor(){l(this,"breadcrumbs",[])}getTimeStamp(){return new Date().toISOString()}addBreadcrumb(e){this.breadcrumbs.push(e),this.breadcrumbs.length>300&&this.breadcrumbs.shift()}debug(e,t="debug"){this.addBreadcrumb({category:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"debug"})}error(e,t={}){this.addBreadcrumb({category:"error",data:t,level:"error",message:e,timestamp:this.getTimeStamp(),type:"error"})}http(e,t){this.addBreadcrumb({category:"xhr",data:t,message:e,timestamp:this.getTimeStamp(),type:"http"})}info(e,t={}){this.addBreadcrumb({category:"info",data:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"info"})}navigation(e,t){this.addBreadcrumb({category:"navigation",data:t,message:e,timestamp:this.getTimeStamp(),type:"navigation"})}};var q=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},C=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=C.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new q(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=C;D.defaultMaxListeners=10;const B=new D,S=async e=>{await new Promise(t=>{setTimeout(t,e)})};class x{constructor(t){l(this,"storage");l(this,"tempStorage",{});l(this,"isStorageAvailable");try{this.storage=window[t];const r="__storage_test__";this.storage.setItem(r,r),this.storage.removeItem(r),this.isStorageAvailable=!0}catch{this.isStorageAvailable=!1}}setItem(t,r){this.isStorageAvailable&&this.storage?this.storage.setItem(t,r):this.tempStorage[t]=r}setItemObject(t,r){try{this.setItem(t,JSON.stringify(r))}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to save to local storage",s))}}getItem(t){return this.isStorageAvailable&&this.storage?this.storage.getItem(t):this.tempStorage[t]}getItemObject(t){const r=this.getItem(t);if(r)try{return JSON.parse(r)}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to parse local storage",s))}return{}}removeItem(t){this.isStorageAvailable&&this.storage?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable&&this.storage?this.storage.clear():this.tempStorage={}}}const J=new x("sessionStorage"),$=new x("localStorage");class K{constructor(t){l(this,"payload");l(this,"promise");l(this,"reject",()=>{});l(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const E={replay:null},G=()=>{const e=[];return E.replay&&e.push("replay"),e.join(",")},z=10;let T=!1,M="",g=!1,P=!1,y=[];const Q=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=(e="")=>{T=!0,M=e},R=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new K(t);return y.push(r),r.promise}},v=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:n=!1,...i}=t,d={url:e,options:i,retries:r,shouldDropOnRateLimit:s};if(g&&!n)return R(d);const u={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${M}`),u;try{const c=await fetch(e,i);if(c.status===429){if(!g&&!s||n){g=!0;const a=c.headers.has("ratelimit-reset")?Number(c.headers.get("ratelimit-reset")):z;return await S(1e3*a),v(e,{...i,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}return R(d)}if(g=!1,y.length&&(y.map(a=>{const h=a.payload;v(h.url,{...h.options,retries:h.retries,shouldDropOnRateLimit:h.shouldDropOnRateLimit}).then(W=>{a.resolveRequest(W)})}),y=[]),c.ok){if(c.status===249)return N(),u;const a=await c.text();try{return a&&a!=="OK"&&(c.json=JSON.parse(a)),c}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${a}`)}}}return c}catch(c){const a=r+1;return a>5||P?{ok:!1,reportError:!1,error:c}:(await S(1e3*Math.pow(2,r)),v(e,{...i,retries:a}))}},I=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function k(e,t){const{matchType:r,pattern:s}=e,n=r?I[r]:I.legacy;let i=!1;try{i=n(s,t)}catch(d){const u=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;d instanceof Error&&(console.warn(u,d),d.stack=JSON.stringify(e),window.UserLeap.reportError(u,d))}return i}let V=!0,f=!1;const X=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let L,p={};class Z{constructor(t){l(this,"_values",[]);l(this,"_isWebMetric");this.name=t,this._isWebMetric=X.includes(this.name)}report(t){if(V&&this._values.push({time:Date.now(),value:t}),f||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&L&&L(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=p[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"&&t<r.value}}const _={},O=e=>{const t=new Z(e);return _[e]=t,t};exports.DismissReason=U,exports.EVENTS={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}},exports.PerformanceMetrics=_,exports.SprigEvent=A,exports.breadcrumbsLogger=b,exports.checkUrlMatch=k,exports.checkUrlStillMatching=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return!!r&&k(r,window.location.href)},exports.cspViolationHandler=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(P=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},exports.delay=S,exports.disableThresholdChecking=()=>f=!0,exports.eventEmitter=B,exports.getHttpHeaders=function(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.43.0","x-ul-installation-method":Q(e),"sprig-modules":G()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t},exports.groupCards=(e,t)=>{const r=[e[t]],s=e[t].groupId;return s?e.slice(t).reduce((n,i)=>(i.groupId===s&&n.push(i),n),[]):r},exports.initPerformanceReporting=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{(async r=>{const s=Object.values(_).map(n=>({name:n.name,values:n.collect()}));if(s.some(n=>n.values.length))try{await r(JSON.stringify(s))}catch(n){n instanceof Error&&b.error("MetricsErr",{error:{message:n.message,name:n.name}})}})(t)},1e3*e):V=!1},exports.isLongFormSurvey=e=>e==="longFormSurvey",exports.killNetworkRequests=N,exports.localStorageHelper=$,exports.modules=E,exports.registerMetric=O,exports.registerReplay=e=>{E.replay=e},exports.registerThresholds=(e,t)=>{p={},f=!1,e==null||e.forEach(r=>{var s;r.metric in p||(p[r.metric]=[]),(s=p[r.metric])==null||s.push(r)}),L=t},exports.reportAndRegister=(e,t)=>{let r=_[e];return r||(r=O(e)),r.report(t)},exports.sessionStorageHelper=J,exports.shouldDirectEmbed=({"userleap-platform":e})=>{var t;return((t=window.UserLeap)==null?void 0:t.forceDirectEmbed)||e!=="web"},exports.sprigFetch=v,exports.v4=function(e,t,r){if(w.randomUUID&&!e)return w.randomUUID();const s=(e=e||{}).random||(e.rng||H)();return s[6]=15&s[6]|64,s[8]=63&s[8]|128,function(n,i=0){return o[n[i+0]]+o[n[i+1]]+o[n[i+2]]+o[n[i+3]]+"-"+o[n[i+4]]+o[n[i+5]]+"-"+o[n[i+6]]+o[n[i+7]]+"-"+o[n[i+8]]+o[n[i+9]]+"-"+o[n[i+10]]+o[n[i+11]]+o[n[i+12]]+o[n[i+13]]+o[n[i+14]]+o[n[i+15]]}(s)};
|
|
@@ -217,7 +217,7 @@ const J = (e) => e._config && e._config.installationMethod ? e._config.installat
|
|
|
217
217
|
U = !0, A = e;
|
|
218
218
|
};
|
|
219
219
|
function ce(e = {}) {
|
|
220
|
-
const t = { "Content-Type": "application/json", "userleap-platform": "web", "x-ul-sdk-version": "2.
|
|
220
|
+
const t = { "Content-Type": "application/json", "userleap-platform": "web", "x-ul-sdk-version": "2.43.0", "x-ul-installation-method": J(e), "sprig-modules": B() };
|
|
221
221
|
if (e.envId && (t["x-ul-environment-id"] = e.envId), e.token && (t.Authorization = "Bearer " + e.token), e.userId && (t["x-ul-user-id"] = e.userId), e.visitorId && (t["x-ul-visitor-id"] = e.visitorId), e.partnerAnonymousId && (t["x-ul-anonymous-id"] = e.partnerAnonymousId), e.mobileHeadersJSON) {
|
|
222
222
|
const s = JSON.parse(e.mobileHeadersJSON);
|
|
223
223
|
Object.assign(t, s);
|