@sprig-technologies/sprig-browser 2.40.2 → 2.40.3

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.
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./view-BGzeHt4l.cjs"),z=require("./metricsReporter-Dc4CZlRc.cjs"),J=require("./core-Br8FqGd4.cjs"),u=require("./getAttributedUrl-CJJ96Ihj.cjs"),Ee=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{useMobileStyling:v,border:f,isLongFormSurvey:c,focusedQuestionId:b}=e.useConfig(m=>({useMobileStyling:m.useMobileStyling,border:m.border,isLongFormSurvey:z.isLongFormSurvey(m.studyType),focusedQuestionId:m.focusedQuestionId})),[o,h]=e.h(!1),[s,_]=e.h(""),[g,S]=e.h(!1),y=c&&b===r,L=t==null?void 0:t.collectName,k=(t==null?void 0:t.nameLabelText)||"Full Name",w=(t==null?void 0:t.consentText)||"I agree to the stated conditions",P=(t==null?void 0:t.submitButtonText)||"Submit",D=!!s.trim(),M=o&&(!L||D),q=(m,I=!1)=>{m.preventDefault(),m.stopPropagation();let p=null;if(!I){if(!M)return void S(!0);p={submitted:!0},L&&(p.name=s)}a({value:p,questionId:r,type:d},M)};return e.u("div",{className:e.cc(n,c&&!y&&"ul-card--unfocused","ul-card__consent-legal","fade-in-transition"),children:[e.u(u.Header,{isRequired:c&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),t!=null&&t.richTextBody?e.u(u.QuestionBodyWrapper,{children:e.u(u.Html,{className:"ul-rich-text-body",html:t.richTextBody,id:"ul-card__consent-legal-body-container"})}):null,e.u(u.MobileEmbedView,{embeddedType:"pdf",properties:t,children:e.u(u.QuestionBodyFooterContainer,{children:[e.u("div",{className:"sprig-stretch",children:[e.u(u.Option,{allowTextEntry:!1,border:f,error:g&&!o,id:"consent",isRadio:!1,isSelected:o,label:w,onUserInputChanged:({selected:m})=>{m!==o&&h(!o)},useMobileStyling:v}),L&&e.u("input",{"aria-label":k,"aria-placeholder":k,className:e.cc(e.getClasses("ul-consent-legal__name-input",v)),"data-gramm":"false",maxLength:250,name:"name",onBlur:m=>{m.currentTarget.style.borderColor=g&&!D?J.ERROR_BORDER_COLOR:J.DEFAULT_BORDER_COLOR},onFocus:m=>{m.currentTarget.style.borderColor=g&&!D?J.ERROR_BORDER_COLOR:f},onInput:m=>{m.preventDefault(),m.stopPropagation(),_(m.currentTarget.value)},placeholder:k,style:g&&!D?{borderColor:J.ERROR_BORDER_COLOR}:{},tabIndex:0,value:s})]}),e.u("div",{className:"ul-card__button-wrapper ul-card-vertical__button-wrapper",children:[e.u(u.Button,{className:M?"":"sprig-button-disabled",onClick:q,children:P}),t.required===!1&&!c&&e.u("button",{className:"ul-card-skip__button",onClick:m=>q(m,!0),children:e.getSkipButtonText(t)})]})]})})]},r)},Be=({activeValue:n,border:i,icon:a,isPressed:t,onSubmit:r,range:d,scaleLabelType:v,selectedValue:f,setSelectedValue:c,setActiveValue:b,setIsPressed:o,useMobileStyling:h,value:s,viewDocument:_})=>{const{isLongFormSurvey:g,enableCspTrustedTypes:S}=e.useConfig(I=>({isLongFormSurvey:z.isLongFormSurvey(I.studyType),enableCspTrustedTypes:I.enableCspTrustedTypes})),y=`option-${s}`,L=v==="number",k=v==="star",w=v==="smiley",P=L&&s===n||s===f,[D,M]=(()=>{const I=k&&f!==null&&s<=f;return k&&s<=n||w&&s===n||I||s===n||s===f?[i,t||I||s===f?1:.3]:["",1]})(),q=e.F(()=>{const I={borderColor:P?D:"",fillOpacity:P?"":M,zIndex:P?3:"auto",color:f===s?"#fff":""};return L?{...I,backgroundColor:f===s?D:""}:{...I,color:k||w||f===s?D:""}},[P,D,M,f,s,L,k,w]),m=e.F(()=>J.getHtml((({icon:I,scaleLabelType:p,value:C,selectedValue:x})=>{if(p==="smiley"&&C===x){let R=0;return I.replace(/black/g,()=>++R==1?"black":"white")}return I})({icon:a,scaleLabelType:v,value:s,selectedValue:f}),S),[S,a,v,f,s]);return e.u("button",{"aria-label":L?void 0:String(s),className:(()=>{switch(v){case"star":return e.cc(e.getClasses("likert-star",h),e.getClasses(`likert-star-${s}`,h));case"smiley":return e.cc(e.getClasses("likert-smiley",h),e.getClasses(`likert-smiley-${s}`,h));default:return s===d?e.cc(e.getClasses("likert-number",h),e.getClasses(`likert-number-${s}`,h),e.getClasses("likert-last-option",h)):e.cc(e.getClasses("likert-number",h),e.getClasses(`likert-number-${s}`,h))}})(),dangerouslySetInnerHTML:{__html:m},id:y,onClick:I=>{g&&(I.preventDefault(),I.stopPropagation(),c(s)),r()},onKeyDown:I=>{var x,R;const p=_.querySelectorAll(`.likert-${v??"number"}`),C=s-1;I.key==="ArrowRight"?(x=p[C+1])==null||x.focus():I.key==="ArrowLeft"?(R=p[C-1])==null||R.focus():I.key!=="Enter"&&I.key!==" "||(g&&(I.preventDefault(),I.stopPropagation(),c(s)),r())},onPointerDown:()=>o(!0),onPointerEnter:()=>b(s),onPointerLeave:()=>{b(-1),o(!1)},style:q,tabIndex:0})},Me=({className:n,labels:i,message:a,next:t,properties:r,questionId:d,type:v})=>{const{border:f,useMobileStyling:c,viewDocument:b,isLongFormSurvey:o,focusedQuestionId:h}=e.useConfig(C=>({border:C.border,useMobileStyling:C.useMobileStyling,viewDocument:C.viewDocument,isLongFormSurvey:z.isLongFormSurvey(C.studyType),focusedQuestionId:C.focusedQuestionId})),[s,_]=e.h(-1),[g,S]=e.h(!1),[y,L]=e.h(null),k=o&&h===d,w=i&&i.left,P=i&&i.right;let D;const{range:M,scaleLabelType:q,ratingIcons:m}=r;M&&(D=Number(M));const I=D||5,p=C=>{var x,R;switch(q){case"star":return(x=m[0])==null?void 0:x.svg;case"smiley":return(R=m[C])==null?void 0:R.svg;default:return String(C+1)}};return e.u("form",{className:e.cc(n,"ul-card--likert","fade-in-transition",o&&!k&&"ul-card--unfocused"),children:[e.u(u.Header,{isRequired:o&&(r==null?void 0:r.required),message:a,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(u.QuestionBodyWrapper,{children:[e.u("div",{"aria-label":`Rating (1 - ${I})`,className:"ul-card--likert__numbers",role:"radiogroup",children:[...Array(I)].map((C,x)=>{const R=x+1;return e.u(Be,{activeValue:s,border:f,icon:p(x),isPressed:g,onSubmit:()=>t({value:R,questionId:d,type:v},!0),range:I,scaleLabelType:q,selectedValue:y,setActiveValue:_,setIsPressed:S,setSelectedValue:L,useMobileStyling:c,value:R,viewDocument:b},x)})}),e.u("div",{className:"ul-card--likert__labels",children:[e.u("span",{children:w}),e.u("span",{children:P})]})]}),!r.required&&!o&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(u.Button,{onClick:C=>{C.preventDefault(),C.stopPropagation(),t({value:null,questionId:d,type:v},!0)},children:e.getButtonText(r)})})})]})})]},d)},Ce=n=>n&&(n.scrollHeight>n.offsetHeight?n:Ce(n.parentElement)),Pe=n=>{if(!n||!(a=>a instanceof HTMLElement)(n))return 0;const i=getComputedStyle(n);return parseFloat(i.marginTop)+parseFloat(i.marginBottom)+(parseFloat(i.borderTopWidth)+parseFloat(i.borderBottomWidth))},Oe=({columns:n,onSelect:i,options:a,selectedOptions:t})=>{const r=e._([]),{border:d,useMobileStyling:v}=e.useConfig(s=>({border:s.border,useMobileStyling:s.useMobileStyling})),f=a.findIndex(s=>t[s.id]===null),[c,b]=e.h(f),o=e.T((s,_)=>{i(s,_);const g=c+1,S=a[g];if(S&&t[S.id]===null){b(g);const y=r.current[c];if(y!=null&&y.firstElementChild){const L=Ce(y),k=y.firstElementChild,w=Pe(y)+k.clientHeight;L==null||L.scrollTo(0,y.offsetTop+w)}}},[i,a,t,c]),h=e.T((s,_)=>{const g=c===s;return e.u(e.Accordion,{animate:!0,header:_.label,isOpen:g,onClick:()=>{var S;return b(g&&!((S=window.UserLeap)!=null&&S.isMobileSDK)?-1:s)},ref:S=>{S&&(r.current[s]=S)},showHeaderCheck:t[_.id]!==null,children:e.u("div",{style:{paddingTop:"12px"},children:n.map(S=>e.u(u.Option,{allowTextEntry:!1,ariaLabel:`${_.label}-${S.label}`,border:d,error:!1,id:`${_.id}-${S.value}`,isRadio:!0,isSelected:t[_.id]===S.value,label:S.label,onUserInputChanged:()=>o(_.id,S.value),useMobileStyling:v},S.label))})},_.id)},[d,n,c,o,t,v]);return e.u("div",{children:a.map((s,_)=>h(_,s))})},Fe=({columns:n,onSelect:i,options:a,selectedOptions:t})=>{const{border:r,useMobileStyling:d,isLongFormSurvey:v}=e.useConfig(g=>({border:g.border,useMobileStyling:g.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(g.studyType)})),f=a.length,c=n.length,b=e._(null),[o,h]=e.h(!1),[s,_]=e.h(!1);return e.p(()=>{const g=b.current,S=new ResizeObserver(y=>{window.requestAnimationFrame(()=>{g&&(h(Math.round(y[0].contentRect.width)<g.scrollWidth),_(Math.round(y[0].contentRect.width)<g.scrollWidth))})});return g&&S.observe(g),()=>{g&&S.unobserve(g)}},[]),e.u("div",{className:"ul-card--matrix_question_container",children:[e.u("div",{className:e.cc("ul-card--matrix_container",o&&"ul-matrix-scroll-gradient"),onScroll:()=>{(()=>{const g=b.current;g&&h(g.clientWidth+Math.abs(g.scrollLeft)<g.scrollWidth)})()},ref:b,children:e.u("div",{className:e.cc(v&&"ul-card--matrix_grid_longform","ul-card--matrix_grid"),style:`--numColumns: ${c}; --numRows: ${f+1};`,children:[e.u("div",{})," ",n.map(g=>e.u("div",{className:"ul-matrix-column-label",children:g.label},g.label)),a.map(g=>e.u(e.g,{children:[e.u("div",{"aria-label":g.label,className:"ul-matrix-row-label",children:g.label},g.label),e.u("div",{className:"ul-matrix-row-options",role:"radiogroup",children:n.map((S,y)=>{const L=y===c-1;return e.u("div",{className:e.cc("ul-matrix-option-wrapper",L&&"ul-matrix-last-option"),children:e.u(u.Option,{allowTextEntry:!1,ariaLabel:`${g.label}-${S.label}`,border:r,choiceStyle:{background:"transparent",border:"none",marginBottom:"0",padding:"0"},error:!1,id:`${g.id}-${S.value}`,isRadio:!0,isSelected:t[g.id]===S.value,onUserInputChanged:()=>i(g.id,S.value),useMobileStyling:d})},S.value)})})]}))]})}),(o||s)&&e.u("button",{className:s&&!o?"ul-matrix-scroll-arrow left":"ul-matrix-scroll-arrow",onClick:s&&!o?g=>{g.preventDefault();const S=b.current;if(S){const y=getComputedStyle(S).direction==="rtl";S.scrollTo({left:y?S.scrollWidth-S.clientWidth:0,behavior:"smooth"})}}:g=>{g.preventDefault();const S=b.current;if(S){const y=getComputedStyle(S).direction==="rtl";S.scrollTo({left:y?S.clientWidth-S.scrollWidth:S.scrollWidth,behavior:"smooth"})}},children:s&&!o?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:a,options:t,properties:r,questionId:d,type:v,showIndividualSubmit:f=!1,onSubmitButtonClick:c})=>{const{useMobileStyling:b,isLongFormSurvey:o,focusedQuestionId:h,setFocusedQuestionId:s}=e.useConfig(q=>({useMobileStyling:q.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(q.studyType),focusedQuestionId:q.focusedQuestionId,setFocusedQuestionId:q.setFocusedQuestionId})),_=r.matrixColumn,g=r.required,S=o&&h===d,y=q=>{q.preventDefault(),q.stopPropagation(),a({value:k,questionId:d,type:v},!0),c&&c()},L=t.reduce((q,m)=>(q[m.id]=null,q),{}),[k,w]=e.h(L),P=q=>g&&Object.values(q).every(m=>m==null),D=(q,m)=>{o&&a({value:{...k,[q]:m},questionId:d,type:v},!P({...k,[q]:m})),w(I=>({...I,[q]:m}))},M=r.displayMatrixAsAccordion||b;return e.u("form",{className:e.cc(n,!o&&"ul-card__matrix","fade-in-transition",o&&!S&&"ul-card--unfocused"),id:"text-form",onClick:()=>{S&&s(d)},onSubmit:y,children:[e.u(u.Header,{isRequired:o&&(r==null?void 0:r.required),message:i,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:[e.u(u.QuestionBodyWrapper,{children:[M?e.u(Oe,{columns:_,onSelect:D,options:t,selectedOptions:k}):e.u(Fe,{columns:_,onSelect:D,options:t,selectedOptions:k}),f&&e.u(u.LongformSubmitButton,{handleSubmit:y,isSubmitDisabled:P(k)})]}),!o&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:P(k),children:e.getButtonText(r)})})})]})]},d)},Se=({className:n,message:i,onSubmit:a,options:t=[],properties:r,questionId:d,type:v,showIndividualSubmit:f=!1,onSubmitButtonClick:c})=>{const{border:b,useMobileStyling:o,isLongFormSurvey:h,focusedQuestionId:s,setFocusedQuestionId:_}=e.useConfig(l=>({border:l.border,useMobileStyling:l.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(l.studyType),focusedQuestionId:l.focusedQuestionId,setFocusedQuestionId:l.setFocusedQuestionId})),g=h&&s===d,S=t.reduce((l,T)=>(l[T.id]={isSelected:!1},l),{}),[y,L]=e.h(S),k=v==="multiplechoice",w=r.required,P=t.find(l=>{var T;return(T=l.optionProperties)==null?void 0:T.noneOfTheAbove}),D=l=>Object.entries(l).some(([T,F])=>{var G;const A=t.find(W=>`${W.id}`===T),O=F.userText===void 0||F.userText.trim()==="";return((G=A==null?void 0:A.optionProperties)==null?void 0:G.allowsTextEntry)&&O&&F.isSelected}),M=l=>Object.values(l).filter(T=>T.isSelected).length,q=r.minSelect&&r.minSelect>0&&r.maxSelectMode===u.MaxSelectModes.Range&&M(y)<r.minSelect&&(w||M(y)>0),m=l=>D(l)||w&&!M(l)||!(T=>{const{minSelect:F=0,maxSelect:A=1/0,maxSelectMode:O}=r,G=M(T);switch(O){case u.MaxSelectModes.Maximum:return G<=A;case u.MaxSelectModes.Range:return G===0||G>=F;default:return!0}})(l),I=Object.entries(y).some(([l,T])=>{var F,A;return T.isSelected&&((A=(F=t.find(O=>`${O.id}`===l))==null?void 0:F.optionProperties)==null?void 0:A.allowsTextEntry)}),p=f&&(!k||I),C=l=>{E(l.id,l.selected,l.userText,l.noneOfTheAbove),l.selected&&h&&!k&&!g&&_(d)},x=l=>{var T;return(r==null?void 0:r.maxSelectMode)!==u.MaxSelectModes.Unlimited&&M(y)===(r==null?void 0:r.maxSelect)&&!((T=y[l])!=null&&T.isSelected)},R=l=>{l.preventDefault(),l.stopPropagation(),a(y,!0),c&&c()},E=(l,T,F,A)=>{const O=Object.assign({},y);if((k||A)&&T)for(const j of Object.values(O))j.isSelected=!1,delete j.userText;else P&&!A&&y[P.id].isSelected&&(O[P.id].isSelected=!1);O[l]={isSelected:T,userText:F};const G=k&&Object.entries(O).some(([j,Z])=>{var K,re;return Z.isSelected&&((re=(K=t.find(ne=>`${ne.id}`===j))==null?void 0:K.optionProperties)==null?void 0:re.allowsTextEntry)}),W=!m(O);h&&(a(O,W),k&&!G&&W&&c&&c()),L(O)};return e.u("form",{className:e.cc(n,"ul-card--multiple","fade-in-transition",h&&!g&&"ul-card--unfocused"),id:"text-form",onClick:v==="multipleselect"?()=>{h&&s!==d&&v==="multipleselect"&&_(d)}:void 0,onSubmit:R,children:[e.u(u.Header,{isRequired:h&&(r==null?void 0:r.required),message:i,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(u.QuestionBodyWrapper,{children:[r.isDropdown?e.u(u.Select,{disabledOptions:t.filter(l=>x(l.id)),dropdownFooter:q?e.u("div",{className:"ul-card__min-select-counter",style:{marginLeft:"16px"},children:[M(y),"/",r.minSelect]}):void 0,isMultiSelect:!k,multiselectText:r.dropdownMultiselectedText??"choices selected",onChange:l=>{const T={...y};for(const F of t)l.includes(F)?T[F.id].isSelected=!0:T[F.id].isSelected=!1;h&&a(T,!m(T)),L(T)},options:t,placeholderText:r.dropdownPlaceholderText??(k?"Select choice":"Select choice(s)"),value:t.filter(l=>y[l.id].isSelected)}):e.u("div",{className:e.cc(e.getClasses("ul-card__choices",o)),role:k?"radiogroup":"group",children:[t.map(({id:l,label:T,value:F,optionProperties:A})=>{var Z,K;const O=`${l}`,{allowsTextEntry:G,noneOfTheAbove:W}={allowsTextEntry:!1,noneOfTheAbove:!1,...A};return e.u(u.Option,{allowTextEntry:G,border:b,disabled:x(O),error:(j=y,D(j)),id:O,isRadio:k,isSelected:!!((Z=y[O])!=null&&Z.isSelected),label:T,noneOfTheAbove:W,onUserInputChanged:C,promptText:"Please specify",text:(K=y[l])==null?void 0:K.userText,useMobileStyling:o,value:F},O);var j}),!!q&&e.u("div",{className:"ul-card__min-select-counter",children:[M(y),"/",r.minSelect]})]}),p&&e.u(u.LongformSubmitButton,{handleSubmit:R,isSubmitDisabled:m(y)})]}),!h&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:m(y),onClick:R,children:e.getButtonText(r)})})})]})})]},d)},He=n=>{const{questionId:i,type:a,next:t,options:r}=n,{setFocusedQuestionId:d}=e.useConfig(v=>({setFocusedQuestionId:v.setFocusedQuestionId}));return e.u(Se,{...n,onSubmit:(v,f)=>{var _;const c=Object.entries(v).find(([,g])=>g.isSelected)||[void 0,void 0],[b,o]=c,h=r.find(g=>`${g.id}`===b);!((_=h==null?void 0:h.optionProperties)!=null&&_.allowsTextEntry)||o!=null&&o.userText&&o.userText.trim()!==""||d(i);const s=o!=null&&o.userText?{[b]:{userText:o.userText}}:null;t({value:h&&b?{[b]:h.value}:{},secondaryValue:s,questionId:i,type:a},f)}})},$e=n=>{const{questionId:i,type:a,next:t}=n;return e.u(Se,{...n,onSubmit:(r,d)=>{const v=Object.entries(r).reduce((c,[b,o])=>(c[b]=o.isSelected,c),{}),f=Object.entries(r).reduce((c,[b,o])=>{if(!o.userText)return c;const h=c||{};return h[b]={userText:o.userText},h},null);t({value:v,secondaryValue:f,questionId:i,type:a},d)}})},Ve=({className:n,labels:i,message:a,properties:t,next:r,questionId:d,type:v})=>{const[f,c]=e.h(null),{border:b,useMobileStyling:o,viewDocument:h,isLongFormSurvey:s,focusedQuestionId:_}=e.useConfig(L=>({border:L.border,useMobileStyling:L.useMobileStyling,viewDocument:L.viewDocument,isLongFormSurvey:z.isLongFormSurvey(L.studyType),focusedQuestionId:L.focusedQuestionId})),g=s&&_===d,S=i&&i.left,y=i&&i.right;return e.u("form",{className:e.cc(n,"ul-card--nps","fade-in-transition",s&&!g&&"ul-card--unfocused"),children:[e.u(u.Header,{isRequired:s&&(t==null?void 0:t.required),message:a,properties:t}),e.u(u.MobileEmbedView,{properties:t,children:[e.u(u.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card--nps__numbers",children:[...Array(11)].map((L,k)=>e.u("button",{className:e.cc(e.getClasses("nps-number",o),e.getClasses(`nps-number-${k}`,o)),id:`option-${k}`,onClick:w=>{s&&(w.preventDefault(),w.stopPropagation(),c(k)),r({value:k,questionId:d,type:v},!0)},onKeyDown:w=>{var D,M;const P=h.querySelectorAll("button.nps-number");w.key==="ArrowRight"?(D=P[k+1])==null||D.focus():w.key==="ArrowLeft"?(M=P[k-1])==null||M.focus():w.key!=="Enter"&&w.key!==" "||(s&&(w.preventDefault(),w.stopPropagation(),c(k)),r({value:k,questionId:d,type:v},!0))},onPointerDown:w=>{w.currentTarget.style.zIndex="2",w.currentTarget.style.borderColor=b},onPointerLeave:w=>{w.currentTarget.style.zIndex="auto",w.currentTarget.style.borderColor=J.DEFAULT_BORDER_COLOR},style:f===k?{backgroundColor:b,color:"#fff"}:void 0,tabIndex:0,children:k},k))}),e.u("div",{className:"ul-card--nps__labels",children:[e.u("span",{children:S}),e.u("span",{children:y})]})]}),!t.required&&!s&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(u.Button,{onClick:L=>{L.preventDefault(),L.stopPropagation(),r({value:null,questionId:d,type:v},!0)},children:e.getButtonText(t)})})})]})]},d)},We=({className:n,message:i,next:a,properties:t,questionId:r,type:d,showIndividualSubmit:v=!1,onSubmitButtonClick:f})=>{const{border:c,useMobileStyling:b,update:o,isLongFormSurvey:h,focusedQuestionId:s,setFocusedQuestionId:_,isPreview:g}=e.useConfig(m=>({border:m.border,useMobileStyling:m.useMobileStyling,update:m.update,isLongFormSurvey:z.isLongFormSurvey(m.studyType),focusedQuestionId:m.focusedQuestionId,setFocusedQuestionId:m.setFocusedQuestionId,isPreview:m.isPreview})),[S,y]=e.h(""),L=e._(null),k=h&&s===r;e.p(()=>{var m,I;h&&!g&&(k?(m=L.current)==null||m.focus():(I=L.current)==null||I.blur())},[h,k,g]);const w=S.trim(),P=t.required===!0&&!w,D=u.useAutoSize(L,()=>o()),M=m=>{m.preventDefault(),m.stopPropagation(),a({value:S,questionId:r,type:d},!t.required||w.length>0),f&&f()},q=t&&t.openTextPlaceholder?t.openTextPlaceholder:"";return e.u("form",{className:e.cc(n,"ul-card-text","fade-in-transition",h&&!k&&"ul-card--unfocused"),id:"text-form",onClick:()=>{h&&s!==r&&_(r)},children:[e.u(u.Header,{isRequired:h&&(t==null?void 0:t.required),message:i,properties:t}),e.u(u.MobileEmbedView,{properties:t,children:e.u("div",{className:"ul-card-text",children:e.u(u.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":q,className:e.cc(e.getClasses("ul-card-text__input",b)),"data-gramm":"false",maxLength:5e3,name:"text",onBlur:m=>{m.currentTarget.style.borderColor=J.DEFAULT_BORDER_COLOR},onChange:m=>{const{value:I}=m.currentTarget;if(D(),m.preventDefault(),m.stopPropagation(),y(I),h){const p=I.trim().length>0;a({value:I,questionId:r,type:d},p)}},onFocus:m=>{m.currentTarget.style.borderColor=c,_(r)},placeholder:q,ref:L,role:"textbox",tabIndex:0})}),t.footerHtml&&e.u(u.Html,{className:"footer",html:t.footerHtml}),v&&e.u(u.LongformSubmitButton,{handleSubmit:M,isSubmitDisabled:P}),e.u(u.QuestionBodyFooterContainer,{children:!h&&e.u(u.Button,{disabled:P,onClick:M,children:e.getButtonText(t)})})]})})})]},r)},ue=1,xe=2,Te=3,ie=n=>n.type==="av_permission",ge=n=>n.type==="screen_permission",_e=(n,i)=>n===void 0?ue:n?((a,t)=>!(ie(t)?t.permissionDescriptors:[]).includes("camera")||a.getVideoTracks().length>0)(n,i)?Te:ue:xe,he={avStream:null,currentPage:null,mediaRecordingUids:null,nextQuestion:()=>{},passthroughData:void 0,recordingMediaTypes:void 0,screenPermissionRequested:!1,type:void 0},X=e.create(n=>({...he,reset:()=>{n(he)},updatePage:i=>{n(i)}}));function ae({currentPage:n,pages:i}){const{avStream:a,recordingMediaTypes:t,updatePage:r}=X.getState(),{recorderEventEmitter:d}=e.useConfig.getState();d.emit("av.permission",{"permission.descriptors":n.permissionDescriptors,"stream.ready":(v,f)=>{if(a===v)return;let c=n;if(v&&!n.permissionDescriptors.includes("camera")){const b=i.indexOf(n),o=f!=null&&f.active?b+2:b+1;f!=null&&f.active&&t&&d.emit("begin.recording",{"recording.media.types":t,"start.recording.callback":h=>r({mediaRecordingUids:h})}),c=i[o]}r({currentPage:c,avStream:v})}})}function de({status:n}){const{nextQuestion:i,passthroughData:a,mediaRecordingUids:t,reset:r}=X.getState(),{recorderEventEmitter:d,handleUploadUpdate:v,index:f}=e.useConfig.getState(),c={value:{taskStatus:n},type:"recordedtask",questionId:(a==null?void 0:a.questionId)||1};a&&d.emit("finish.task",{"begin.callback":b=>{v({mediaRecordingUid:b,isSubmitted:!0,progressPct:0,isComplete:!1})},"progress.callback":(b,o)=>{v({mediaRecordingUid:b,progressPct:o.detail,isSubmitted:!1,isComplete:!1})},"upload.callback":b=>{b&&v({mediaRecordingUid:b,isComplete:!0,isSubmitted:!0,progressPct:100})},"passthrough.data":a,"current.index":f,"task.response":c,"task.complete.callback":b=>{c.value.taskDurationMillisecond=b,t&&(c.value.mediaRecordingUids=t),r(),i(c)}})}function ce({pages:n,setIsRequestingPermission:i}){const{recorderEventEmitter:a,eventEmitFn:t}=e.useConfig.getState(),{updatePage:r,currentPage:d,recordingMediaTypes:v,screenPermissionRequested:f}=X.getState();if(!d)return;const c=n.indexOf(d);switch(d.type){case"av_permission":{const b=f?c+2:c+1;return f&&v&&a.emit("begin.recording",{"recording.media.types":v,"start.recording.callback":o=>{r({mediaRecordingUids:o})}}),void r({currentPage:n[b]})}case"screen_permission":return void a.emit("screen.permission",{"screen.permission.requested":i,"stream.ready.callback":(b,o)=>{const h=o?n[c+1]:d;o&&v&&a.emit("begin.recording",{"recording.media.types":v,"start.recording.callback":s=>{r({captureStream:o,mediaRecordingUids:s})}}),r({currentPage:h,screenPermissionRequested:!0,captureStream:o})}});case"start_task":return t("recorded.task.start"),a.emit("recorded.task.start"),a.emit("start.task"),void r({currentPage:n[c+1],screenPermissionRequested:!0});case"complete_task":return}}const ke="ul-permission-graphics-container",Ie="ul-permission-body",Re=e.cc(ke,"ul_recorded-task-inset-spacing"),se=e.cc("ul-horizontal-button-container","ul-horizontal-button-container-left"),Ne=({richTextBody:n})=>e.u(u.Html,{className:"ul-rich-text-body",html:n,id:"ul-task-detail-container"}),oe=({required:n,skipButtonText:i,bottom:a=!1})=>n?null:e.u(u.Button,{className:e.cc(a&&"ul-skip-button-below","ul-button-inactive"),onClick:de.bind(null,{status:"abandoned"}),children:i||"Skip"}),pe=n=>{const{avStream:i,captureStream:a,recordingMediaTypes:t,updatePage:r}=X.getState(),d=(t==null?void 0:t.includes("audio"))||(t==null?void 0:t.includes("video"));e.p(()=>{const v=setInterval(()=>{d&&i&&!i.active?r({avStream:null,currentPage:n[0]}):a&&a.active||r({captureStream:void 0,currentPage:n[d?1:0]})},1e3);return()=>clearInterval(v)},[i,a,d,n,t,r])},Ge=({content:n,pages:i,required:a})=>{const{buttonText:t,skipButtonText:r,taskDetail:d}=n;return pe(i),e.u("div",{className:"ul-task-page",children:[d&&e.u(Ne,{richTextBody:d}),e.u("div",{className:se,children:[e.u(u.Button,{onClick:ce.bind(null,{pages:i}),children:t}),e.u(oe,{required:a,skipButtonText:r})]})]},"start-task")},je=({content:n,pages:i,properties:a})=>{const{buttonText:t,skipButtonText:r}=n;return pe(i),e.u("div",{className:"ul-task-page",children:[n.taskDetail&&e.u(Ne,{richTextBody:n.taskDetail}),e.u(u.MobileEmbedView,{properties:a,children:e.u("div",{className:se,children:[e.u(u.Button,{className:"ul-complete-task-button",onClick:de.bind(null,{status:"completed"}),children:t}),e.u(u.Button,{className:e.cc("ul-button-inactive"),onClick:de.bind(null,{status:"given.up"}),children:r})]})})]},"complete-task")},Ze=({content:n,pages:i,required:a})=>{const{buttonText:t,skipButtonText:r}=n,[d]=e.useConfig(c=>[c.tabTitle]),[v,f]=e.h(!1);return e.u("div",{children:[e.u("div",{className:Re,children:[e.u("p",{style:{marginTop:"auto"},children:n.selectTabText}),e.u("div",{className:"ul-select-tab-container",children:e.u("p",{className:Ie,children:d})})]}),e.u("div",{className:a?"":se,children:[e.u(u.Button,{disabled:v,onClick:ce.bind(null,{pages:i,setIsRequestingPermission:f}),children:t}),e.u(oe,{required:a,skipButtonText:r})]})]})},ze=({content:n})=>e.u(u.Html,{className:e.cc(ke,"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:a})=>{const{permissionDeniedHeadline:t,permissionDeniedBody:r,skipButtonText:d,tryAgainButtonText:v}=n,f=ie(i[0])?i[0]:null;return e.p(()=>{const c=setInterval(()=>{f!==null&&ae({currentPage:f,pages:i})},1e3);return()=>clearInterval(c)},[f,i]),f?e.u("div",{children:[e.u("div",{className:Re,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:Ie,children:r})]})}),e.u("div",{className:se,children:[e.u(u.Button,{onClick:ae.bind(null,{currentPage:f,pages:i}),children:v}),e.u(oe,{required:a,skipButtonText:d})]})]}):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:a})=>{const{skipButtonText:t}=n,{avStream:r}=X.getState();return pe(i),e.u("div",{children:[e.u(Ke,{stream:r}),e.u("div",{className:"ul-vertical-button-container-center",children:[e.u(u.Button,{onClick:ce.bind(null,{pages:i}),children:n.buttonText}),e.u(oe,{bottom:!0,required:a,skipButtonText:t})]})]})},Je=({properties:n})=>{const{pages:i,required:a}=n,{avStream:t,currentPage:r}=X.getState();if(r===void 0)return null;switch(r==null?void 0:r.type){case"av_permission":{const d=_e(t,r);return d===ue?e.u(ze,{content:r}):d===xe?e.u(Ye,{content:r,pages:i,required:a}):e.u(Xe,{content:r,pages:i,required:a})}case"screen_permission":return e.u(Ze,{content:r,pages:i,required:a});case"start_task":return e.u(Ge,{content:r,pages:i,required:a});case"complete_task":return e.u(je,{content:r,pages:i,properties:n});default:return null}},et=({className:n,properties:i,next:a,questionId:t})=>{const r=e.useConfig(),{surveyId:d,responseGroupUid:v,userId:f,update:c}=r,b=X(),{screenPermissionRequested:o}=b,h=X(y=>y.avStream);let s=X(y=>y.currentPage);s||(s=function({pages:y,userId:L,responseGroupUid:k,surveyId:w,questionId:P,next:D}){const{updatePage:M}=X.getState(),{eventEmitFn:q,recorderEventEmitter:m}=e.useConfig.getState(),I={questionId:P,surveyId:w,visitorId:L,responseGroupUid:k};let p=0;m.emit("recorded.task.permission.screen"),q("recorded.task.permission.screen"),m.emit("permission.status",{"permission.status.callback":(x,R,E,l)=>{const T=y[p],{type:F}=T,A=["screen"];if(ie(T)){const{permissionDescriptors:O}=T,G=O==null?void 0:O.includes("microphone"),W=O==null?void 0:O.includes("camera");G&&A.push("audio"),W&&A.push("video"),(x!=null&&x.active&&!W||x!=null&&x.active&&R)&&p++}ge(y[p])&&E&&(p++,m.emit("begin.recording",{"recording.media.types":A,"start.recording.callback":O=>M({mediaRecordingUids:O})})),M({currentPage:y[p],avStream:x,screenPermissionRequested:E,nextQuestion:D,type:F,passthroughData:I,recordingMediaTypes:A,captureStream:l})}});const C=y[p];return C.type==="av_permission"&&ae({currentPage:C,pages:y}),C}({questionId:t,surveyId:d,next:y=>{a(y,!0)},pages:i.pages,responseGroupUid:v,userId:f}));let _=s.headline,g=s.captionText;const S=_e(h,s);return ge(s)&&o&&(_=s.permissionDeniedHeadline,g=s.permissionDeniedCaptionText),ie(s)&&S===Te&&(_=s.permissionGrantedHeadline,g=s.permissionGrantedCaptionText),e.p(()=>{c()},[c]),e.u("div",{className:e.cc(n,"ul-center-horizontally","fade-in-transition"),children:[e.u(u.Header,{isRequired:i==null?void 0:i.required,message:_,properties:{captionText:g}}),e.u(u.QuestionBodyWrapper,{children:e.u(Je,{properties:i})})]})},tt=({richTextBody:n,plaintextBody:i})=>n?e.u(u.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((a,t)=>e.u("p",{children:a},t))}):null,rt=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{visitorAttributes:v,isLongFormSurvey:f}=e.useConfig(h=>({visitorAttributes:h.visitorAttributes,isLongFormSurvey:z.isLongFormSurvey(h.studyType)})),c=(h,s=!1)=>{a({value:s?{skipped:!0}:void 0,questionId:r,type:d},!0)},b=u.getAttributedUrl(t&&t.buttonUrl,v),o=f&&t.promptActionType===u.PromptActionTypeEnum.NO_BUTTON;return e.u("div",{className:e.cc(n,"ul-card__text-url-prompt","fade-in-transition"),children:[e.u(u.Header,{isRequired:f&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),e.u(u.QuestionBodyWrapper,{children:e.u(tt,{plaintextBody:t==null?void 0:t.body,richTextBody:t==null?void 0:t.richTextBody})}),e.u(u.MobileEmbedView,{properties:t,children:!o&&e.u(u.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:b,id:"ul-card-text__button",onClick:c,onKeyPress:h=>{h.key!=="Enter"&&h.key!==" "||a({value:void 0,questionId:r,type:d},!0)},rel:"noreferrer",role:b?"link":"button",tabIndex:0,target:"_blank",children:e.getButtonText(t)}),t.required===!1&&e.u("button",{className:"ul-card-skip__button",onClick:h=>c(0,!0),children:e.getSkipButtonText(t)})]})})})]},r)},nt=({className:n,questionId:i})=>{const{border:a,destroy:t,endCard:r,forceBrandedLogo:d,update:v}=e.useConfig(b=>({border:b.border,destroy:b.destroy,endCard:b.endCard,forceBrandedLogo:b.forceBrandedLogo,update:b.update}));e.p(()=>{setTimeout(()=>{t(J.APP_ID)},d?4e3:2e3)},[t,d]);const f=r&&r.subheader?e.u("p",{className:"ul-caption",children:r.subheader}):null,c=r&&r.headline?r.headline:"";return e.p(()=>{v()},[v]),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:a,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:a,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(u.Header,{message:c}),f]})})},i)},ee="ul-card-video__player_recorder",be="ul-video-btn",le=0,ve=1,it=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{apiURL:v,envId:f,handleUploadUpdate:c,headers:b,responseGroupUid:o,surveyId:h,update:s,viewDocument:_,visitorId:g}=e.useConfig(l=>({apiURL:l.apiURL,envId:l.envId,handleUploadUpdate:l.handleUploadUpdate,headers:l.headers,responseGroupUid:l.responseGroupUid,surveyId:l.surveyId,update:l.update,viewDocument:l.viewDocument,visitorId:l.userId})),[S,y]=e.h(!1),[L,k]=e.h(null),[w,P]=e.h(null),[D,M]=e.h(le),[q,m]=e.h(null),[I,p]=e.h(null),C=t&&t.videoUrl,x=e.T(l=>{l&&m(l)},[m]);e.p(()=>{const l=new ResizeObserver(()=>{setTimeout(s,0)});return I&&l.observe(I),q&&l.observe(q),()=>{l.disconnect()}},[s,I,q]);const R=(l,T)=>{l===u.RECORDER.UPLOAD_STARTED?(k(T[u.RECORDER.UPLOAD_ID]),P(T[u.RECORDER.MEDIA_RECORDING_UID]),y(!0)):l===u.RECORDER.DELETE?(k(null),P(null),y(!1)):l===u.RECORDER.UPLOAD_PROGRESS?isNaN(T[u.RECORDER.UPLOAD_PROGRESS_PCT])?c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],isComplete:!0}):c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],progressPct:T[u.RECORDER.UPLOAD_PROGRESS_PCT]}):l===u.RECORDER.UPLOAD_FINISHED&&c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],isComplete:!0})},E=l=>{l.preventDefault(),l.stopPropagation(),document.getElementById(ee)&&u.stopRecording(ee),L&&w?(c({mediaRecordingUid:w,isSubmitted:!0}),a({value:{mediaRecordingUid:w},questionId:r,type:d},!0)):a({value:null,questionId:r,type:d},!0)};return e.u("form",{className:e.cc(n,"ul-card--video","fade-in-transition"),id:"ul-video-interview-form",children:[e.u(u.Header,{isRequired:t==null?void 0:t.required,message:i,properties:t}),e.u(u.QuestionBodyWrapper,{children:[e.u("div",{id:"ul-question-player-container",ref:x,style:{display:D===le?"":"none"},children:[e.u("div",{id:ee,ref:l=>{if(l&&l.children.length===0&&!t.hideRecordedPrompt){p(l);const T=u.videoPlayer(ee,{src:C,type:"application/x-mpegURL"},void 0,t.mediaType===u.RECORDER.MEDIA_TYPE_AUDIO,v,_);l.appendChild(T)}}}),e.u(u.MobileEmbedView,{properties:t,children:e.u("button",{className:`${be} ul-record-response-btn`,onClick:l=>{l.preventDefault(),l.stopPropagation(),document.getElementById(ee)&&u.pauseQuestionPlayer(ee),M(ve)}})})]}),e.u("div",{style:{display:D===ve?"block":"none"},children:[e.u("button",{className:`${be} ul-back-question-btn`,onClick:l=>{l.preventDefault(),l.stopPropagation(),M(le)},style:{display:t.hideRecordedPrompt?"none":"block"}}),e.u("div",{id:"ul-recorder-player-container",ref:l=>{if(l&&l.children.length===0){p(l);const T=u.videoRecorderPlayer(ee,{surveyId:h,responseGroupUid:o,questionId:r,visitorId:g,envId:f},v,R,void 0,{...b,"x-ul-video-recorder-origin":"sdk"},t.mediaType===u.RECORDER.MEDIA_TYPE_AUDIO,_);l.appendChild(T)}}})]})]}),e.u(u.QuestionBodyFooterContainer,{children:[e.u(u.Button,{disabled:!S,onClick:E,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:E,style:{display:t.required?"none":"block",...S?{display:"none"}:{}},children:e.getSkipButtonText(t)})]})]})},st=({className:n})=>{const{uploadProgress:i}=e.useConfig(d=>({uploadProgress:d.uploadProgress}));let a,t;Object.values(i).filter(d=>d.isSubmitted).length>1?(a="Your responses are processing",t="Please keep this tab open until your responses are fully processed."):(a="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(d=>d.isSubmitted).map(d=>d.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(u.Header,{message:`${a} (${r}% complete)`}),e.u("p",{className:"ul-caption",children:t})]})},Le=e.F$1(void 0),ot=({value:n,children:i})=>e.u(Le.Provider,{value:n,children:i}),lt=({isRightLabel:n,isLeftLabel:i})=>n?e.MaxDiffChoice.RIGHT:i?e.MaxDiffChoice.LEFT:null,ut="Best",at="Worst",dt=({className:n,labels:i,message:a,properties:t,options:r,questionId:d,type:v,next:f})=>{var P,D,M,q;const[c,b]=e.h(r.map((m,I)=>({...m,label:m.label===""?`Item ${I+1}`:m.label,isRightLabel:!1,isLeftLabel:!1}))),o=(()=>{const m=e.q(Le);if(m===void 0)throw new Error("usePreviousResponses must be used within a PreviousResponsesProvider");return m})(),h={padding:"24px",display:"flex",cursor:"pointer",width:"auto"},[s,_]=e.h(!1);e.p(()=>{const m=c.findIndex(T=>T.isRightLabel),I=c.findIndex(T=>T.isLeftLabel),p=m!==-1&&I!==-1;_(p);const C=!t.required||t.required&&p,x=c.map(T=>({id:T.id,option:T.label,selected:lt(T)})),R=Math.floor(d),E=Object.keys(o).filter(T=>T.startsWith(R.toString())).map(Number).sort((T,F)=>T-F).at(-1),l=[];if(typeof E=="number"){const T=o[E],F=JSON.parse(T);l.push(...F)}l.push(x),setTimeout(()=>{f({value:l,questionId:d,type:v},C,p),_(!1)},p?500:0)},[c]);const{border:g,useMobileStyling:S,enableCspTrustedTypes:y}=e.useConfig(m=>({border:m.border,useMobileStyling:m.useMobileStyling,enableCspTrustedTypes:m.enableCspTrustedTypes})),L=(m,I)=>()=>{s||b(p=>((C,x,R)=>C.map(E=>E.id===x?{...E,isRightLabel:R===e.MaxDiffChoice.RIGHT,isLeftLabel:R===e.MaxDiffChoice.LEFT}:R===e.MaxDiffChoice.RIGHT&&E.isRightLabel||R===e.MaxDiffChoice.LEFT&&E.isLeftLabel?{...E,isRightLabel:!1,isLeftLabel:!1}:E))(p,m,I))},k=(P=t.ratingIcons)==null?void 0:P[0].svg,w=(D=t.ratingIcons)==null?void 0:D[1].svg;return e.u("form",{className:e.cc(n,"ul-card-maxdiff","fade-in-transition"),children:[e.u(u.Header,{isRequired:t==null?void 0:t.required,message:a,properties:t}),e.u(u.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)||((M=t==null?void 0:t.labels)==null?void 0:M.left)||ut}),e.u("div",{children:" "}),e.u("div",{className:"ul-card-maxdiff__label",children:(i==null?void 0:i.right)||((q=t==null?void 0:t.labels)==null?void 0:q.right)||at}),c.map(({id:m,label:I,isLeftLabel:p,isRightLabel:C})=>e.u(e.g,{children:[e.u("div",{className:"ul-card-maxdiff__option-control "+(w?"smiley":""),children:w?e.u(fe,{ariaPressed:p,className:p?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected good":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:y,html:w,id:`smiley-good-${m}`,onClick:L(m,e.MaxDiffChoice.LEFT)}):e.u(u.Option,{allowTextEntry:!1,ariaLabel:`bestLabel-${I}`,border:g,choiceStyle:h,error:!1,id:`${m}`,isRadio:!0,isSelected:p,onUserInputChanged:L(m,e.MaxDiffChoice.LEFT),useMobileStyling:S})}),e.u("div",{className:"ul-card-maxdiff__option-label",children:I}),e.u("div",{className:"ul-card-maxdiff__option-control "+(k?"smiley":""),children:k?e.u(fe,{ariaPressed:C,className:C?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected bad":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:y,html:k,id:`smiley-bad-${m}`,onClick:L(m,e.MaxDiffChoice.RIGHT)}):e.u(u.Option,{allowTextEntry:!1,ariaLabel:`worstLabel-${I}`,border:g,choiceStyle:h,error:!1,id:`${m}`,isRadio:!0,isSelected:C,onUserInputChanged:L(m,e.MaxDiffChoice.RIGHT),useMobileStyling:S})})]}))]})})]},d)},fe=({enableCspTrustedTypes:n,ariaPressed:i,className:a,html:t,id:r,onClick:d})=>{const v=e.F(()=>J.getHtml(t,n),[n,t]);return e.u("span",{"aria-pressed":i,className:a,dangerouslySetInnerHTML:{__html:v},id:r,onClick:d,tabIndex:0,type:"button"})},ct=({className:n,labels:i,message:a,next:t,properties:r,questionId:d,type:v,onSubmitButtonClick:f,options:c,showIndividualSubmit:b=!1})=>{const o=e._(null),h=e._(0),s=e._(0),_=e._(null),g=e._(!1),S=e._([]),[y,L]=e.h(()=>(r==null?void 0:r.required)===!0),[k,w]=e.h(()=>c.map(N=>({...N,rank:null}))),P=e.F(()=>Array.from({length:c.length},(N,Q)=>Q+1),[c.length]),{isLongFormSurvey:D,focusedQuestionId:M,setFocusedQuestionId:q,useMobileStyling:m,isPreview:I,headers:p}=e.useConfig(N=>({useMobileStyling:N.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(N.studyType),focusedQuestionId:N.focusedQuestionId,setFocusedQuestionId:N.setFocusedQuestionId,isPreview:N.isPreview,headers:N.headers})),C=(p==null?void 0:p["userleap-platform"])==="android",x=m&&!I&&!C,R=!x&&!C,E=D&&M===d,l=N=>{N.preventDefault(),j(k),f&&f()},T=(N,Q)=>{w(U=>{const B=parseInt(Q),H=U.map($=>({...$}));H.some($=>$.rank==null)&&H.forEach(($,te)=>$.rank=te+1);const Y=H.findIndex($=>$.id===N);if(Y===-1)return U;const V=H[Y].rank;return B<V?H.forEach($=>{$.id!==N&&$.rank>=B&&$.rank<V&&($.rank=$.rank+1)}):B>V&&H.forEach($=>{$.id!==N&&$.rank>V&&$.rank<=B&&($.rank=$.rank-1)}),H[Y].rank=B,H.sort(($,te)=>$.rank-te.rank),Z(H),H})},F=(N,Q)=>{for(let U=0;U<S.current.length;U++){const B=S.current[U];if(!B||B===_.current)continue;const H=B.getBoundingClientRect();if(N>=H.left&&N<=H.right&&Q>=H.top&&Q<=H.bottom)return{element:B,index:U}}return null},A=N=>Q=>{if(!x)return;Q.preventDefault(),Q.stopPropagation(),g.current=!0,o.current=N;const U=Q.touches[0];h.current=U.clientY,s.current=U.clientY;const B=Q.currentTarget.closest(".ul-card-rank__option");B&&(_.current=B,B.classList.add("is-dragging"))},O=N=>{if(!x||!g.current||o.current===null)return;N.preventDefault(),N.stopPropagation();const Q=N.touches[0];s.current=Q.clientY;const U=s.current-h.current;_.current&&(_.current.style.transform=`translateY(${U}px)`,_.current.style.zIndex="1000"),S.current.forEach(H=>{H&&H!==_.current&&H.classList.remove("is-drop-target")});const B=F(Q.clientX,Q.clientY);B&&B.element.classList.add("is-drop-target")},G=N=>{if(!x||!g.current||o.current===null)return;N.preventDefault(),N.stopPropagation();const Q=N.changedTouches[0],U=F(Q.clientX,Q.clientY);_.current&&(_.current.style.transform="",_.current.style.zIndex="",_.current.classList.remove("is-dragging")),S.current.forEach(B=>{B&&B.classList.remove("is-drop-target")}),U&&U.index!==o.current&&W(o.current,U.index),o.current=null,_.current=null,g.current=!1},W=(N,Q)=>{w(U=>{const B=U.map(Y=>({...Y})),[H]=B.splice(N,1);return B.splice(Q,0,H),B.forEach((Y,V)=>{Y.rank=V+1}),Z(B),B})},j=N=>{const Q={};N.reduce((U,B)=>(U[B.id]=B.rank,U),Q),t({value:Q,questionId:d,type:v},!0)},Z=N=>{L(!1),D&&j(N)},{left:K,right:re}=i,ne=c.length,we=N=>{N.preventDefault(),N.currentTarget.classList.add("is-drop-target")},qe=N=>{N.currentTarget.classList.remove("is-drop-target")},De=N=>{o.current=null,N.currentTarget.classList.remove("is-dragging")};return e.u("form",{className:e.cc(n,"ul-card-rank","fade-in-transition",D&&!E&&"ul-card--unfocused"),onClick:D?()=>{D&&M!==d&&q(d)}:void 0,onSubmit:l,children:[e.u(u.Header,{isRequired:r==null?void 0:r.required,message:a,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:C?e.u(e.g,{children:[e.u(u.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 - ",K]})}),e.u("ol",{className:"ul-card-rank__list",children:k.map(({id:N,label:Q,rank:U})=>e.u("li",{className:"ul-card-rank__option",children:[e.u("select",{"aria-label":`Rank for ${Q}`,className:e.cc("ul-card-rank__select",U==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:B=>T(N,B.currentTarget.value),value:U??"",children:[U==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),P.map(B=>e.u("option",{className:"ul-card-rank__select-option",value:B,children:B},`${B}-${d}`))]}),e.u("span",{children:Q})]},N))}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[ne," - ",re]})})]}),b&&e.u(u.LongformSubmitButton,{handleSubmit:l,isSubmitDisabled:y})]}),!D&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:y,children:e.getButtonText(r)})})})]}):e.u(e.g,{children:[e.u(u.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 - ",K]})}),e.u("ol",{className:"ul-card-rank__list",onDragOver:C?void 0:N=>{N.preventDefault(),N.dataTransfer&&(N.dataTransfer.dropEffect="move")},children:k.map(({id:N,label:Q,rank:U},B)=>{return e.u("li",{className:"ul-card-rank__option",draggable:!!R||void 0,onDragEnd:R?De:void 0,onDragEnter:R?we:void 0,onDragLeave:R?qe:void 0,onDragStart:R?(Y=B,V=>{o.current=Y,V.dataTransfer&&(V.dataTransfer.effectAllowed="move",V.dataTransfer.setData("text/plain",String(Y)),V.currentTarget.classList.add("is-dragging"))}):void 0,onDrop:R?(H=B,V=>{var te,me;V.preventDefault(),V.currentTarget.classList.remove("is-drop-target");const $=o.current;o.current=null,(me=(te=V.currentTarget.closest(".ul-card-rank__list"))==null?void 0:te.querySelector(".is-dragging"))==null||me.classList.remove("is-dragging"),$!=null&&$!==H&&W($,H)}):void 0,ref:V=>S.current[B]=V,children:[e.u("select",{"aria-label":`Rank for ${Q}`,className:e.cc("ul-card-rank__select",U==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:V=>T(N,V.currentTarget.value),value:U??"",children:[U==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),P.map(V=>e.u("option",{className:"ul-card-rank__select-option",value:V,children:V},`${V}-${d}`))]}),e.u("span",{children:Q}),!C&&e.u("button",{"aria-label":`Drag ${Q} to reorder`,className:"ul-card-rank__drag-btn",onTouchEnd:x?G:void 0,onTouchMove:x?O:void 0,onTouchStart:x?A(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 H,Y})}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[ne," - ",re]})})]}),b&&e.u(u.LongformSubmitButton,{handleSubmit:l,isSubmitDisabled:y})]}),!D&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:y,children:e.getButtonText(r)})})})]})})]},d)},pt=new Set(["open","matrix","multipleselect","multiplechoice","rankorder"]),ye=({cardInstance:n,moveToNextQuestion:i,showIndividualSubmit:a,submitQuestion:t,updateCardValues:r})=>{const{isLongFormSurvey:d}=e.useConfig(s=>({isLongFormSurvey:z.isLongFormSurvey(s.studyType)}));if(!n)return null;const{name:v,type:f,props:c}=n,b=a&&pt.has(f),o={className:"ul-card",next:(s,_,g=!0)=>t(s,_&&g),questionId:v,type:f,showIndividualSubmit:a,...b?{next:(s,_)=>{r(s.questionId,s,_??!0)},onSubmitButtonClick:()=>i(v)}:{}},h=(()=>{switch(f){case"consentlegal":return e.u(Ee,{...o,...c});case"likert":return e.u(Me,{...o,...c});case"matrix":return e.u(Ae,{...o,...c});case"maxdiff":return e.u(dt,{...o,...c});case"multiplechoice":return e.u(He,{...o,...c});case"multipleselect":return e.u($e,{...o,...c});case"nps":return e.u(Ve,{...o,...c});case"open":return e.u(We,{...o,...c});case"rankorder":return e.u(ct,{...o,...c});case"recordedtask":return e.u(et,{...o,...c});case"texturlprompt":return e.u(rt,{...o,...c});case"thanks":return e.u(nt,{...o,...c});case"uploading":return e.u(st,{...o,...c});case"videovoice":return e.u(it,{...o,...c});default:return null}})();return h?d?e.u("div",{className:"ul-card-scroll-wrapper",children:h},v):h:null},mt=({isSubmitDisabled:n=!1,onSubmit:i,buttonText:a})=>{var _;const{cards:t,forceBrandedLogo:r,index:d,marketingUrl:v,showSurveyBrand:f,slugName:c,surveyId:b,useMobileStyling:o}=e.useConfig(g=>({cards:g.cards,forceBrandedLogo:g.forceBrandedLogo,index:g.index,marketingUrl:g.marketingUrl,showSurveyBrand:g.showSurveyBrand,slugName:g.slugName,surveyId:g.surveyId,useMobileStyling:g.useMobileStyling})),h=((_=t[d])==null?void 0:_.type)==="thanks",s=e.buildMarketingUrl({marketingUrl:v,slugName:c,surveyId:b,forceBrandedLogo:r});return e.u("footer",{className:e.cc("long-form-question-footer-container",o&&"long-form-question-footer-container--mobile",h&&"long-form-question-footer-container-center"),children:[h&&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}),!h&&e.u("div",{className:e.cc("ul-card__button-wrapper","ul-card-vertical__button-wrapper","long-form-question-footer-container-actions"),children:e.u(u.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:a??e.u(e.Arrow,{stroke:"white"})})})})]})};exports.PageCard=({cards:n,next:i,previousResponses:a})=>{var I;const[t,r]=e.h({}),[d,v]=e.h({}),f=e.F(()=>({...a,...e.buildReadableResponseMap(n.map(p=>{var C,x;return{...p,value:((C=t[p.name])==null?void 0:C.value)??null,secondaryValue:((x=t[p.name])==null?void 0:x.secondaryValue)??null}}))}),[a,t,n]),c=e.pipeReadableResponsesIntoCards(n,f),{isLongFormSurvey:b,focusedQuestionId:o,setFocusedQuestionId:h}=e.useConfig(p=>({isLongFormSurvey:z.isLongFormSurvey(p.studyType),focusedQuestionId:p.focusedQuestionId,setFocusedQuestionId:p.setFocusedQuestionId})),s=e._(null),_=e._(!1),g=e._(null),S=e.T(p=>{var E,l;_.current=!0;const C=n.findIndex(T=>T.name===p);if(!b||p===null||C===-1)return void(_.current=!1);const x=(E=s.current)==null?void 0:E.querySelectorAll(".ul-card-scroll-wrapper")[C],R=(l=s.current)==null?void 0:l.closest(".ul-card-main-content");if(x&&R){if(x&&R){const T=x.getBoundingClientRect(),F=R.getBoundingClientRect(),A=T.top-F.top+R.scrollTop,O=A+T.height/2,G=window.innerHeight-157;let W;T.height>=G?W=A:W=O-R.clientHeight/2;const j=R.clientHeight,Z=R.scrollHeight-j,K=Math.max(0,Math.min(W,Z));R.scrollTo({top:K,behavior:"smooth"}),setTimeout(()=>{_.current=!1},500)}}else _.current=!1},[b,n]);function y(p,C){return p.map(x=>{const R=C[x.name],E=c.find(l=>l.name===x.name);return{...R,questionText:E?e.getProcessedQuestionText(E):void 0}})}e.p(()=>{o!==null&&n.findIndex(p=>p.name===o)!==-1||h(n[0].name)},[n,o,h]);const L=p=>{if(!b)return;const C=n.findIndex(x=>x.name===p)+1;if(C<n.length){const x=n[C].name;h(x)}else h(p)};e.p(()=>{b&&o!==null&&(g.current!==o?S(o):g.current=null)},[o,b,S]);const k=e.T(()=>{var F,A;if(_.current)return;const p=(F=s.current)==null?void 0:F.closest(".ul-card-main-content");if(!p)return;const C=(A=s.current)==null?void 0:A.querySelectorAll(".ul-card-scroll-wrapper");if(!C||C.length===0)return;const x=p.getBoundingClientRect(),R=x.top+x.height/2;let E=0,l=1/0;C.forEach((O,G)=>{const W=O.getBoundingClientRect(),j=W.top+W.height/2,Z=Math.abs(R-j);Z<l&&(l=Z,E=G)});const T=n[E];g.current=T.name,h(T.name)},[n,h]);e.p(()=>{var C;if(!b)return;const p=((C=s.current)==null?void 0:C.closest(".ul-card__container"))||null;return p&&p.addEventListener("scroll",k,{passive:!0}),()=>{p&&p.removeEventListener("scroll",k)}},[k,b]);const w=e.F(()=>Object.values(d).every((p,C)=>{var R;const x=n[C];return!(!(x!=null&&x.props)||!("properties"in x.props)||((R=x.props.properties)==null?void 0:R.required)!==!1)||p}),[d,n]),P=async(p,C,x)=>{return v(E=>({...E,[p]:x})),await(R=E=>({...E,[p]:C}),new Promise(E=>{r(l=>{const T=R(l);return E(T),T})}));var R};e.p(()=>{if(!b)return;const p={};n.forEach(C=>{var R,E;const x=C;(E=(R=x.props)==null?void 0:R.properties)!=null&&E.required||(p[x.name]={value:null,questionId:x.name,type:x.type})}),r(p),v({})},[n,b]);const D=async(p,C)=>{if(b){const x=await P(p.questionId,p,C),R=M(p.type),E=q(p.type);if(R&&L(p.questionId),E&&C){const l=y(n,x);i(l)}}else{const x=c.find(E=>E.name===p.questionId),R={...p,questionText:x?e.getProcessedQuestionText(x):void 0};i([R])}},M=p=>new Set(["nps","likert","multiplechoice"]).has(p),q=p=>new Set(["videovoice","consentlegal","texturlprompt","maxdiff"]).has(p),m=((I=n[0])==null?void 0:I.type)==="thanks";return b?e.u("div",{className:"ul-card-list-container--longform","data-testid":"ui-container",ref:s,children:[e.u(ot,{value:a,children:c.map((p,C)=>e.u(ye,{cardInstance:p,moveToNextQuestion:L,showIndividualSubmit:b&&n.length>1&&C<n.length-1,submitQuestion:D,updateCardValues:P},(p==null?void 0:p.name)||C))}),!m&&e.u(mt,{isSubmitDisabled:Object.keys(t).length<n.length||!w,onSubmit:function(){const p=y(n,t);i(p)}})]}):e.u(e.g,{children:[e.u("div",{"data-testid":"ui-container",style:{display:"none"}}),c.map((p,C)=>e.u(ye,{cardInstance:p,moveToNextQuestion:L,showIndividualSubmit:b&&n.length>1&&C<n.length-1,submitQuestion:D,updateCardValues:P},(p==null?void 0:p.name)||C))]})};
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("./view-DSm0GsZ1.cjs"),z=require("./metricsReporter-0SKeVvnG.cjs"),J=require("./core-C6T-kQJo.cjs"),u=require("./getAttributedUrl-HU3np_BZ.cjs"),Ee=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{useMobileStyling:v,border:f,isLongFormSurvey:c,focusedQuestionId:b}=e.useConfig(m=>({useMobileStyling:m.useMobileStyling,border:m.border,isLongFormSurvey:z.isLongFormSurvey(m.studyType),focusedQuestionId:m.focusedQuestionId})),[o,h]=e.h(!1),[s,_]=e.h(""),[g,S]=e.h(!1),y=c&&b===r,L=t==null?void 0:t.collectName,k=(t==null?void 0:t.nameLabelText)||"Full Name",w=(t==null?void 0:t.consentText)||"I agree to the stated conditions",P=(t==null?void 0:t.submitButtonText)||"Submit",D=!!s.trim(),M=o&&(!L||D),q=(m,I=!1)=>{m.preventDefault(),m.stopPropagation();let p=null;if(!I){if(!M)return void S(!0);p={submitted:!0},L&&(p.name=s)}a({value:p,questionId:r,type:d},M)};return e.u("div",{className:e.cc(n,c&&!y&&"ul-card--unfocused","ul-card__consent-legal","fade-in-transition"),children:[e.u(u.Header,{isRequired:c&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),t!=null&&t.richTextBody?e.u(u.QuestionBodyWrapper,{children:e.u(u.Html,{className:"ul-rich-text-body",html:t.richTextBody,id:"ul-card__consent-legal-body-container"})}):null,e.u(u.MobileEmbedView,{embeddedType:"pdf",properties:t,children:e.u(u.QuestionBodyFooterContainer,{children:[e.u("div",{className:"sprig-stretch",children:[e.u(u.Option,{allowTextEntry:!1,border:f,error:g&&!o,id:"consent",isRadio:!1,isSelected:o,label:w,onUserInputChanged:({selected:m})=>{m!==o&&h(!o)},useMobileStyling:v}),L&&e.u("input",{"aria-label":k,"aria-placeholder":k,className:e.cc(e.getClasses("ul-consent-legal__name-input",v)),"data-gramm":"false",maxLength:250,name:"name",onBlur:m=>{m.currentTarget.style.borderColor=g&&!D?J.ERROR_BORDER_COLOR:J.DEFAULT_BORDER_COLOR},onFocus:m=>{m.currentTarget.style.borderColor=g&&!D?J.ERROR_BORDER_COLOR:f},onInput:m=>{m.preventDefault(),m.stopPropagation(),_(m.currentTarget.value)},placeholder:k,style:g&&!D?{borderColor:J.ERROR_BORDER_COLOR}:{},tabIndex:0,value:s})]}),e.u("div",{className:"ul-card__button-wrapper ul-card-vertical__button-wrapper",children:[e.u(u.Button,{className:M?"":"sprig-button-disabled",onClick:q,children:P}),t.required===!1&&!c&&e.u("button",{className:"ul-card-skip__button",onClick:m=>q(m,!0),children:e.getSkipButtonText(t)})]})]})})]},r)},Be=({activeValue:n,border:i,icon:a,isPressed:t,onSubmit:r,range:d,scaleLabelType:v,selectedValue:f,setSelectedValue:c,setActiveValue:b,setIsPressed:o,useMobileStyling:h,value:s,viewDocument:_})=>{const{isLongFormSurvey:g,enableCspTrustedTypes:S}=e.useConfig(I=>({isLongFormSurvey:z.isLongFormSurvey(I.studyType),enableCspTrustedTypes:I.enableCspTrustedTypes})),y=`option-${s}`,L=v==="number",k=v==="star",w=v==="smiley",P=L&&s===n||s===f,[D,M]=(()=>{const I=k&&f!==null&&s<=f;return k&&s<=n||w&&s===n||I||s===n||s===f?[i,t||I||s===f?1:.3]:["",1]})(),q=e.F(()=>{const I={borderColor:P?D:"",fillOpacity:P?"":M,zIndex:P?3:"auto",color:f===s?"#fff":""};return L?{...I,backgroundColor:f===s?D:""}:{...I,color:k||w||f===s?D:""}},[P,D,M,f,s,L,k,w]),m=e.F(()=>J.getHtml((({icon:I,scaleLabelType:p,value:C,selectedValue:x})=>{if(p==="smiley"&&C===x){let R=0;return I.replace(/black/g,()=>++R==1?"black":"white")}return I})({icon:a,scaleLabelType:v,value:s,selectedValue:f}),S),[S,a,v,f,s]);return e.u("button",{"aria-label":L?void 0:String(s),className:(()=>{switch(v){case"star":return e.cc(e.getClasses("likert-star",h),e.getClasses(`likert-star-${s}`,h));case"smiley":return e.cc(e.getClasses("likert-smiley",h),e.getClasses(`likert-smiley-${s}`,h));default:return s===d?e.cc(e.getClasses("likert-number",h),e.getClasses(`likert-number-${s}`,h),e.getClasses("likert-last-option",h)):e.cc(e.getClasses("likert-number",h),e.getClasses(`likert-number-${s}`,h))}})(),dangerouslySetInnerHTML:{__html:m},id:y,onClick:I=>{g&&(I.preventDefault(),I.stopPropagation(),c(s)),r()},onKeyDown:I=>{var x,R;const p=_.querySelectorAll(`.likert-${v??"number"}`),C=s-1;I.key==="ArrowRight"?(x=p[C+1])==null||x.focus():I.key==="ArrowLeft"?(R=p[C-1])==null||R.focus():I.key!=="Enter"&&I.key!==" "||(g&&(I.preventDefault(),I.stopPropagation(),c(s)),r())},onPointerDown:()=>o(!0),onPointerEnter:()=>b(s),onPointerLeave:()=>{b(-1),o(!1)},style:q,tabIndex:0})},Me=({className:n,labels:i,message:a,next:t,properties:r,questionId:d,type:v})=>{const{border:f,useMobileStyling:c,viewDocument:b,isLongFormSurvey:o,focusedQuestionId:h}=e.useConfig(C=>({border:C.border,useMobileStyling:C.useMobileStyling,viewDocument:C.viewDocument,isLongFormSurvey:z.isLongFormSurvey(C.studyType),focusedQuestionId:C.focusedQuestionId})),[s,_]=e.h(-1),[g,S]=e.h(!1),[y,L]=e.h(null),k=o&&h===d,w=i&&i.left,P=i&&i.right;let D;const{range:M,scaleLabelType:q,ratingIcons:m}=r;M&&(D=Number(M));const I=D||5,p=C=>{var x,R;switch(q){case"star":return(x=m[0])==null?void 0:x.svg;case"smiley":return(R=m[C])==null?void 0:R.svg;default:return String(C+1)}};return e.u("form",{className:e.cc(n,"ul-card--likert","fade-in-transition",o&&!k&&"ul-card--unfocused"),children:[e.u(u.Header,{isRequired:o&&(r==null?void 0:r.required),message:a,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(u.QuestionBodyWrapper,{children:[e.u("div",{"aria-label":`Rating (1 - ${I})`,className:"ul-card--likert__numbers",role:"radiogroup",children:[...Array(I)].map((C,x)=>{const R=x+1;return e.u(Be,{activeValue:s,border:f,icon:p(x),isPressed:g,onSubmit:()=>t({value:R,questionId:d,type:v},!0),range:I,scaleLabelType:q,selectedValue:y,setActiveValue:_,setIsPressed:S,setSelectedValue:L,useMobileStyling:c,value:R,viewDocument:b},x)})}),e.u("div",{className:"ul-card--likert__labels",children:[e.u("span",{children:w}),e.u("span",{children:P})]})]}),!r.required&&!o&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(u.Button,{onClick:C=>{C.preventDefault(),C.stopPropagation(),t({value:null,questionId:d,type:v},!0)},children:e.getButtonText(r)})})})]})})]},d)},Ce=n=>n&&(n.scrollHeight>n.offsetHeight?n:Ce(n.parentElement)),Pe=n=>{if(!n||!(a=>a instanceof HTMLElement)(n))return 0;const i=getComputedStyle(n);return parseFloat(i.marginTop)+parseFloat(i.marginBottom)+(parseFloat(i.borderTopWidth)+parseFloat(i.borderBottomWidth))},Oe=({columns:n,onSelect:i,options:a,selectedOptions:t})=>{const r=e._([]),{border:d,useMobileStyling:v}=e.useConfig(s=>({border:s.border,useMobileStyling:s.useMobileStyling})),f=a.findIndex(s=>t[s.id]===null),[c,b]=e.h(f),o=e.T((s,_)=>{i(s,_);const g=c+1,S=a[g];if(S&&t[S.id]===null){b(g);const y=r.current[c];if(y!=null&&y.firstElementChild){const L=Ce(y),k=y.firstElementChild,w=Pe(y)+k.clientHeight;L==null||L.scrollTo(0,y.offsetTop+w)}}},[i,a,t,c]),h=e.T((s,_)=>{const g=c===s;return e.u(e.Accordion,{animate:!0,header:_.label,isOpen:g,onClick:()=>{var S;return b(g&&!((S=window.UserLeap)!=null&&S.isMobileSDK)?-1:s)},ref:S=>{S&&(r.current[s]=S)},showHeaderCheck:t[_.id]!==null,children:e.u("div",{style:{paddingTop:"12px"},children:n.map(S=>e.u(u.Option,{allowTextEntry:!1,ariaLabel:`${_.label}-${S.label}`,border:d,error:!1,id:`${_.id}-${S.value}`,isRadio:!0,isSelected:t[_.id]===S.value,label:S.label,onUserInputChanged:()=>o(_.id,S.value),useMobileStyling:v},S.label))})},_.id)},[d,n,c,o,t,v]);return e.u("div",{children:a.map((s,_)=>h(_,s))})},Fe=({columns:n,onSelect:i,options:a,selectedOptions:t})=>{const{border:r,useMobileStyling:d,isLongFormSurvey:v}=e.useConfig(g=>({border:g.border,useMobileStyling:g.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(g.studyType)})),f=a.length,c=n.length,b=e._(null),[o,h]=e.h(!1),[s,_]=e.h(!1);return e.p(()=>{const g=b.current,S=new ResizeObserver(y=>{window.requestAnimationFrame(()=>{g&&(h(Math.round(y[0].contentRect.width)<g.scrollWidth),_(Math.round(y[0].contentRect.width)<g.scrollWidth))})});return g&&S.observe(g),()=>{g&&S.unobserve(g)}},[]),e.u("div",{className:"ul-card--matrix_question_container",children:[e.u("div",{className:e.cc("ul-card--matrix_container",o&&"ul-matrix-scroll-gradient"),onScroll:()=>{(()=>{const g=b.current;g&&h(g.clientWidth+Math.abs(g.scrollLeft)<g.scrollWidth)})()},ref:b,children:e.u("div",{className:e.cc(v&&"ul-card--matrix_grid_longform","ul-card--matrix_grid"),style:`--numColumns: ${c}; --numRows: ${f+1};`,children:[e.u("div",{})," ",n.map(g=>e.u("div",{className:"ul-matrix-column-label",children:g.label},g.label)),a.map(g=>e.u(e.g,{children:[e.u("div",{"aria-label":g.label,className:"ul-matrix-row-label",children:g.label},g.label),e.u("div",{className:"ul-matrix-row-options",role:"radiogroup",children:n.map((S,y)=>{const L=y===c-1;return e.u("div",{className:e.cc("ul-matrix-option-wrapper",L&&"ul-matrix-last-option"),children:e.u(u.Option,{allowTextEntry:!1,ariaLabel:`${g.label}-${S.label}`,border:r,choiceStyle:{background:"transparent",border:"none",marginBottom:"0",padding:"0"},error:!1,id:`${g.id}-${S.value}`,isRadio:!0,isSelected:t[g.id]===S.value,onUserInputChanged:()=>i(g.id,S.value),useMobileStyling:d})},S.value)})})]}))]})}),(o||s)&&e.u("button",{className:s&&!o?"ul-matrix-scroll-arrow left":"ul-matrix-scroll-arrow",onClick:s&&!o?g=>{g.preventDefault();const S=b.current;if(S){const y=getComputedStyle(S).direction==="rtl";S.scrollTo({left:y?S.scrollWidth-S.clientWidth:0,behavior:"smooth"})}}:g=>{g.preventDefault();const S=b.current;if(S){const y=getComputedStyle(S).direction==="rtl";S.scrollTo({left:y?S.clientWidth-S.scrollWidth:S.scrollWidth,behavior:"smooth"})}},children:s&&!o?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:a,options:t,properties:r,questionId:d,type:v,showIndividualSubmit:f=!1,onSubmitButtonClick:c})=>{const{useMobileStyling:b,isLongFormSurvey:o,focusedQuestionId:h,setFocusedQuestionId:s}=e.useConfig(q=>({useMobileStyling:q.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(q.studyType),focusedQuestionId:q.focusedQuestionId,setFocusedQuestionId:q.setFocusedQuestionId})),_=r.matrixColumn,g=r.required,S=o&&h===d,y=q=>{q.preventDefault(),q.stopPropagation(),a({value:k,questionId:d,type:v},!0),c&&c()},L=t.reduce((q,m)=>(q[m.id]=null,q),{}),[k,w]=e.h(L),P=q=>g&&Object.values(q).every(m=>m==null),D=(q,m)=>{o&&a({value:{...k,[q]:m},questionId:d,type:v},!P({...k,[q]:m})),w(I=>({...I,[q]:m}))},M=r.displayMatrixAsAccordion||b;return e.u("form",{className:e.cc(n,!o&&"ul-card__matrix","fade-in-transition",o&&!S&&"ul-card--unfocused"),id:"text-form",onClick:()=>{S&&s(d)},onSubmit:y,children:[e.u(u.Header,{isRequired:o&&(r==null?void 0:r.required),message:i,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:[e.u(u.QuestionBodyWrapper,{children:[M?e.u(Oe,{columns:_,onSelect:D,options:t,selectedOptions:k}):e.u(Fe,{columns:_,onSelect:D,options:t,selectedOptions:k}),f&&e.u(u.LongformSubmitButton,{handleSubmit:y,isSubmitDisabled:P(k)})]}),!o&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:P(k),children:e.getButtonText(r)})})})]})]},d)},Se=({className:n,message:i,onSubmit:a,options:t=[],properties:r,questionId:d,type:v,showIndividualSubmit:f=!1,onSubmitButtonClick:c})=>{const{border:b,useMobileStyling:o,isLongFormSurvey:h,focusedQuestionId:s,setFocusedQuestionId:_}=e.useConfig(l=>({border:l.border,useMobileStyling:l.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(l.studyType),focusedQuestionId:l.focusedQuestionId,setFocusedQuestionId:l.setFocusedQuestionId})),g=h&&s===d,S=t.reduce((l,T)=>(l[T.id]={isSelected:!1},l),{}),[y,L]=e.h(S),k=v==="multiplechoice",w=r.required,P=t.find(l=>{var T;return(T=l.optionProperties)==null?void 0:T.noneOfTheAbove}),D=l=>Object.entries(l).some(([T,F])=>{var G;const A=t.find(W=>`${W.id}`===T),O=F.userText===void 0||F.userText.trim()==="";return((G=A==null?void 0:A.optionProperties)==null?void 0:G.allowsTextEntry)&&O&&F.isSelected}),M=l=>Object.values(l).filter(T=>T.isSelected).length,q=r.minSelect&&r.minSelect>0&&r.maxSelectMode===u.MaxSelectModes.Range&&M(y)<r.minSelect&&(w||M(y)>0),m=l=>D(l)||w&&!M(l)||!(T=>{const{minSelect:F=0,maxSelect:A=1/0,maxSelectMode:O}=r,G=M(T);switch(O){case u.MaxSelectModes.Maximum:return G<=A;case u.MaxSelectModes.Range:return G===0||G>=F;default:return!0}})(l),I=Object.entries(y).some(([l,T])=>{var F,A;return T.isSelected&&((A=(F=t.find(O=>`${O.id}`===l))==null?void 0:F.optionProperties)==null?void 0:A.allowsTextEntry)}),p=f&&(!k||I),C=l=>{E(l.id,l.selected,l.userText,l.noneOfTheAbove),l.selected&&h&&!k&&!g&&_(d)},x=l=>{var T;return(r==null?void 0:r.maxSelectMode)!==u.MaxSelectModes.Unlimited&&M(y)===(r==null?void 0:r.maxSelect)&&!((T=y[l])!=null&&T.isSelected)},R=l=>{l.preventDefault(),l.stopPropagation(),a(y,!0),c&&c()},E=(l,T,F,A)=>{const O=Object.assign({},y);if((k||A)&&T)for(const j of Object.values(O))j.isSelected=!1,delete j.userText;else P&&!A&&y[P.id].isSelected&&(O[P.id].isSelected=!1);O[l]={isSelected:T,userText:F};const G=k&&Object.entries(O).some(([j,Z])=>{var K,re;return Z.isSelected&&((re=(K=t.find(ne=>`${ne.id}`===j))==null?void 0:K.optionProperties)==null?void 0:re.allowsTextEntry)}),W=!m(O);h&&(a(O,W),k&&!G&&W&&c&&c()),L(O)};return e.u("form",{className:e.cc(n,"ul-card--multiple","fade-in-transition",h&&!g&&"ul-card--unfocused"),id:"text-form",onClick:v==="multipleselect"?()=>{h&&s!==d&&v==="multipleselect"&&_(d)}:void 0,onSubmit:R,children:[e.u(u.Header,{isRequired:h&&(r==null?void 0:r.required),message:i,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:e.u(e.g,{children:[e.u(u.QuestionBodyWrapper,{children:[r.isDropdown?e.u(u.Select,{disabledOptions:t.filter(l=>x(l.id)),dropdownFooter:q?e.u("div",{className:"ul-card__min-select-counter",style:{marginLeft:"16px"},children:[M(y),"/",r.minSelect]}):void 0,isMultiSelect:!k,multiselectText:r.dropdownMultiselectedText??"choices selected",onChange:l=>{const T={...y};for(const F of t)l.includes(F)?T[F.id].isSelected=!0:T[F.id].isSelected=!1;h&&a(T,!m(T)),L(T)},options:t,placeholderText:r.dropdownPlaceholderText??(k?"Select choice":"Select choice(s)"),value:t.filter(l=>y[l.id].isSelected)}):e.u("div",{className:e.cc(e.getClasses("ul-card__choices",o)),role:k?"radiogroup":"group",children:[t.map(({id:l,label:T,value:F,optionProperties:A})=>{var Z,K;const O=`${l}`,{allowsTextEntry:G,noneOfTheAbove:W}={allowsTextEntry:!1,noneOfTheAbove:!1,...A};return e.u(u.Option,{allowTextEntry:G,border:b,disabled:x(O),error:(j=y,D(j)),id:O,isRadio:k,isSelected:!!((Z=y[O])!=null&&Z.isSelected),label:T,noneOfTheAbove:W,onUserInputChanged:C,promptText:"Please specify",text:(K=y[l])==null?void 0:K.userText,useMobileStyling:o,value:F},O);var j}),!!q&&e.u("div",{className:"ul-card__min-select-counter",children:[M(y),"/",r.minSelect]})]}),p&&e.u(u.LongformSubmitButton,{handleSubmit:R,isSubmitDisabled:m(y)})]}),!h&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:m(y),onClick:R,children:e.getButtonText(r)})})})]})})]},d)},He=n=>{const{questionId:i,type:a,next:t,options:r}=n,{setFocusedQuestionId:d}=e.useConfig(v=>({setFocusedQuestionId:v.setFocusedQuestionId}));return e.u(Se,{...n,onSubmit:(v,f)=>{var _;const c=Object.entries(v).find(([,g])=>g.isSelected)||[void 0,void 0],[b,o]=c,h=r.find(g=>`${g.id}`===b);!((_=h==null?void 0:h.optionProperties)!=null&&_.allowsTextEntry)||o!=null&&o.userText&&o.userText.trim()!==""||d(i);const s=o!=null&&o.userText?{[b]:{userText:o.userText}}:null;t({value:h&&b?{[b]:h.value}:{},secondaryValue:s,questionId:i,type:a},f)}})},$e=n=>{const{questionId:i,type:a,next:t}=n;return e.u(Se,{...n,onSubmit:(r,d)=>{const v=Object.entries(r).reduce((c,[b,o])=>(c[b]=o.isSelected,c),{}),f=Object.entries(r).reduce((c,[b,o])=>{if(!o.userText)return c;const h=c||{};return h[b]={userText:o.userText},h},null);t({value:v,secondaryValue:f,questionId:i,type:a},d)}})},Ve=({className:n,labels:i,message:a,properties:t,next:r,questionId:d,type:v})=>{const[f,c]=e.h(null),{border:b,useMobileStyling:o,viewDocument:h,isLongFormSurvey:s,focusedQuestionId:_}=e.useConfig(L=>({border:L.border,useMobileStyling:L.useMobileStyling,viewDocument:L.viewDocument,isLongFormSurvey:z.isLongFormSurvey(L.studyType),focusedQuestionId:L.focusedQuestionId})),g=s&&_===d,S=i&&i.left,y=i&&i.right;return e.u("form",{className:e.cc(n,"ul-card--nps","fade-in-transition",s&&!g&&"ul-card--unfocused"),children:[e.u(u.Header,{isRequired:s&&(t==null?void 0:t.required),message:a,properties:t}),e.u(u.MobileEmbedView,{properties:t,children:[e.u(u.QuestionBodyWrapper,{children:[e.u("div",{className:"ul-card--nps__numbers",children:[...Array(11)].map((L,k)=>e.u("button",{className:e.cc(e.getClasses("nps-number",o),e.getClasses(`nps-number-${k}`,o)),id:`option-${k}`,onClick:w=>{s&&(w.preventDefault(),w.stopPropagation(),c(k)),r({value:k,questionId:d,type:v},!0)},onKeyDown:w=>{var D,M;const P=h.querySelectorAll("button.nps-number");w.key==="ArrowRight"?(D=P[k+1])==null||D.focus():w.key==="ArrowLeft"?(M=P[k-1])==null||M.focus():w.key!=="Enter"&&w.key!==" "||(s&&(w.preventDefault(),w.stopPropagation(),c(k)),r({value:k,questionId:d,type:v},!0))},onPointerDown:w=>{w.currentTarget.style.zIndex="2",w.currentTarget.style.borderColor=b},onPointerLeave:w=>{w.currentTarget.style.zIndex="auto",w.currentTarget.style.borderColor=J.DEFAULT_BORDER_COLOR},style:f===k?{backgroundColor:b,color:"#fff"}:void 0,tabIndex:0,children:k},k))}),e.u("div",{className:"ul-card--nps__labels",children:[e.u("span",{children:S}),e.u("span",{children:y})]})]}),!t.required&&!s&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-vertical-centered-container",children:e.u(u.Button,{onClick:L=>{L.preventDefault(),L.stopPropagation(),r({value:null,questionId:d,type:v},!0)},children:e.getButtonText(t)})})})]})]},d)},We=({className:n,message:i,next:a,properties:t,questionId:r,type:d,showIndividualSubmit:v=!1,onSubmitButtonClick:f})=>{const{border:c,useMobileStyling:b,update:o,isLongFormSurvey:h,focusedQuestionId:s,setFocusedQuestionId:_,isPreview:g}=e.useConfig(m=>({border:m.border,useMobileStyling:m.useMobileStyling,update:m.update,isLongFormSurvey:z.isLongFormSurvey(m.studyType),focusedQuestionId:m.focusedQuestionId,setFocusedQuestionId:m.setFocusedQuestionId,isPreview:m.isPreview})),[S,y]=e.h(""),L=e._(null),k=h&&s===r;e.p(()=>{var m,I;h&&!g&&(k?(m=L.current)==null||m.focus():(I=L.current)==null||I.blur())},[h,k,g]);const w=S.trim(),P=t.required===!0&&!w,D=u.useAutoSize(L,()=>o()),M=m=>{m.preventDefault(),m.stopPropagation(),a({value:S,questionId:r,type:d},!t.required||w.length>0),f&&f()},q=t&&t.openTextPlaceholder?t.openTextPlaceholder:"";return e.u("form",{className:e.cc(n,"ul-card-text","fade-in-transition",h&&!k&&"ul-card--unfocused"),id:"text-form",onClick:()=>{h&&s!==r&&_(r)},children:[e.u(u.Header,{isRequired:h&&(t==null?void 0:t.required),message:i,properties:t}),e.u(u.MobileEmbedView,{properties:t,children:e.u("div",{className:"ul-card-text",children:e.u(u.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":q,className:e.cc(e.getClasses("ul-card-text__input",b)),"data-gramm":"false",maxLength:5e3,name:"text",onBlur:m=>{m.currentTarget.style.borderColor=J.DEFAULT_BORDER_COLOR},onChange:m=>{const{value:I}=m.currentTarget;if(D(),m.preventDefault(),m.stopPropagation(),y(I),h){const p=I.trim().length>0;a({value:I,questionId:r,type:d},p)}},onFocus:m=>{m.currentTarget.style.borderColor=c,_(r)},placeholder:q,ref:L,role:"textbox",tabIndex:0})}),t.footerHtml&&e.u(u.Html,{className:"footer",html:t.footerHtml}),v&&e.u(u.LongformSubmitButton,{handleSubmit:M,isSubmitDisabled:P}),e.u(u.QuestionBodyFooterContainer,{children:!h&&e.u(u.Button,{disabled:P,onClick:M,children:e.getButtonText(t)})})]})})})]},r)},ue=1,xe=2,Te=3,ie=n=>n.type==="av_permission",ge=n=>n.type==="screen_permission",_e=(n,i)=>n===void 0?ue:n?((a,t)=>!(ie(t)?t.permissionDescriptors:[]).includes("camera")||a.getVideoTracks().length>0)(n,i)?Te:ue:xe,he={avStream:null,currentPage:null,mediaRecordingUids:null,nextQuestion:()=>{},passthroughData:void 0,recordingMediaTypes:void 0,screenPermissionRequested:!1,type:void 0},X=e.create(n=>({...he,reset:()=>{n(he)},updatePage:i=>{n(i)}}));function ae({currentPage:n,pages:i}){const{avStream:a,recordingMediaTypes:t,updatePage:r}=X.getState(),{recorderEventEmitter:d}=e.useConfig.getState();d.emit("av.permission",{"permission.descriptors":n.permissionDescriptors,"stream.ready":(v,f)=>{if(a===v)return;let c=n;if(v&&!n.permissionDescriptors.includes("camera")){const b=i.indexOf(n),o=f!=null&&f.active?b+2:b+1;f!=null&&f.active&&t&&d.emit("begin.recording",{"recording.media.types":t,"start.recording.callback":h=>r({mediaRecordingUids:h})}),c=i[o]}r({currentPage:c,avStream:v})}})}function de({status:n}){const{nextQuestion:i,passthroughData:a,mediaRecordingUids:t,reset:r}=X.getState(),{recorderEventEmitter:d,handleUploadUpdate:v,index:f}=e.useConfig.getState(),c={value:{taskStatus:n},type:"recordedtask",questionId:(a==null?void 0:a.questionId)||1};a&&d.emit("finish.task",{"begin.callback":b=>{v({mediaRecordingUid:b,isSubmitted:!0,progressPct:0,isComplete:!1})},"progress.callback":(b,o)=>{v({mediaRecordingUid:b,progressPct:o.detail,isSubmitted:!1,isComplete:!1})},"upload.callback":b=>{b&&v({mediaRecordingUid:b,isComplete:!0,isSubmitted:!0,progressPct:100})},"passthrough.data":a,"current.index":f,"task.response":c,"task.complete.callback":b=>{c.value.taskDurationMillisecond=b,t&&(c.value.mediaRecordingUids=t),r(),i(c)}})}function ce({pages:n,setIsRequestingPermission:i}){const{recorderEventEmitter:a,eventEmitFn:t}=e.useConfig.getState(),{updatePage:r,currentPage:d,recordingMediaTypes:v,screenPermissionRequested:f}=X.getState();if(!d)return;const c=n.indexOf(d);switch(d.type){case"av_permission":{const b=f?c+2:c+1;return f&&v&&a.emit("begin.recording",{"recording.media.types":v,"start.recording.callback":o=>{r({mediaRecordingUids:o})}}),void r({currentPage:n[b]})}case"screen_permission":return void a.emit("screen.permission",{"screen.permission.requested":i,"stream.ready.callback":(b,o)=>{const h=o?n[c+1]:d;o&&v&&a.emit("begin.recording",{"recording.media.types":v,"start.recording.callback":s=>{r({captureStream:o,mediaRecordingUids:s})}}),r({currentPage:h,screenPermissionRequested:!0,captureStream:o})}});case"start_task":return t("recorded.task.start"),a.emit("recorded.task.start"),a.emit("start.task"),void r({currentPage:n[c+1],screenPermissionRequested:!0});case"complete_task":return}}const ke="ul-permission-graphics-container",Ie="ul-permission-body",Re=e.cc(ke,"ul_recorded-task-inset-spacing"),se=e.cc("ul-horizontal-button-container","ul-horizontal-button-container-left"),Ne=({richTextBody:n})=>e.u(u.Html,{className:"ul-rich-text-body",html:n,id:"ul-task-detail-container"}),oe=({required:n,skipButtonText:i,bottom:a=!1})=>n?null:e.u(u.Button,{className:e.cc(a&&"ul-skip-button-below","ul-button-inactive"),onClick:de.bind(null,{status:"abandoned"}),children:i||"Skip"}),pe=n=>{const{avStream:i,captureStream:a,recordingMediaTypes:t,updatePage:r}=X.getState(),d=(t==null?void 0:t.includes("audio"))||(t==null?void 0:t.includes("video"));e.p(()=>{const v=setInterval(()=>{d&&i&&!i.active?r({avStream:null,currentPage:n[0]}):a&&a.active||r({captureStream:void 0,currentPage:n[d?1:0]})},1e3);return()=>clearInterval(v)},[i,a,d,n,t,r])},Ge=({content:n,pages:i,required:a})=>{const{buttonText:t,skipButtonText:r,taskDetail:d}=n;return pe(i),e.u("div",{className:"ul-task-page",children:[d&&e.u(Ne,{richTextBody:d}),e.u("div",{className:se,children:[e.u(u.Button,{onClick:ce.bind(null,{pages:i}),children:t}),e.u(oe,{required:a,skipButtonText:r})]})]},"start-task")},je=({content:n,pages:i,properties:a})=>{const{buttonText:t,skipButtonText:r}=n;return pe(i),e.u("div",{className:"ul-task-page",children:[n.taskDetail&&e.u(Ne,{richTextBody:n.taskDetail}),e.u(u.MobileEmbedView,{properties:a,children:e.u("div",{className:se,children:[e.u(u.Button,{className:"ul-complete-task-button",onClick:de.bind(null,{status:"completed"}),children:t}),e.u(u.Button,{className:e.cc("ul-button-inactive"),onClick:de.bind(null,{status:"given.up"}),children:r})]})})]},"complete-task")},Ze=({content:n,pages:i,required:a})=>{const{buttonText:t,skipButtonText:r}=n,[d]=e.useConfig(c=>[c.tabTitle]),[v,f]=e.h(!1);return e.u("div",{children:[e.u("div",{className:Re,children:[e.u("p",{style:{marginTop:"auto"},children:n.selectTabText}),e.u("div",{className:"ul-select-tab-container",children:e.u("p",{className:Ie,children:d})})]}),e.u("div",{className:a?"":se,children:[e.u(u.Button,{disabled:v,onClick:ce.bind(null,{pages:i,setIsRequestingPermission:f}),children:t}),e.u(oe,{required:a,skipButtonText:r})]})]})},ze=({content:n})=>e.u(u.Html,{className:e.cc(ke,"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:a})=>{const{permissionDeniedHeadline:t,permissionDeniedBody:r,skipButtonText:d,tryAgainButtonText:v}=n,f=ie(i[0])?i[0]:null;return e.p(()=>{const c=setInterval(()=>{f!==null&&ae({currentPage:f,pages:i})},1e3);return()=>clearInterval(c)},[f,i]),f?e.u("div",{children:[e.u("div",{className:Re,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:Ie,children:r})]})}),e.u("div",{className:se,children:[e.u(u.Button,{onClick:ae.bind(null,{currentPage:f,pages:i}),children:v}),e.u(oe,{required:a,skipButtonText:d})]})]}):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:a})=>{const{skipButtonText:t}=n,{avStream:r}=X.getState();return pe(i),e.u("div",{children:[e.u(Ke,{stream:r}),e.u("div",{className:"ul-vertical-button-container-center",children:[e.u(u.Button,{onClick:ce.bind(null,{pages:i}),children:n.buttonText}),e.u(oe,{bottom:!0,required:a,skipButtonText:t})]})]})},Je=({properties:n})=>{const{pages:i,required:a}=n,{avStream:t,currentPage:r}=X.getState();if(r===void 0)return null;switch(r==null?void 0:r.type){case"av_permission":{const d=_e(t,r);return d===ue?e.u(ze,{content:r}):d===xe?e.u(Ye,{content:r,pages:i,required:a}):e.u(Xe,{content:r,pages:i,required:a})}case"screen_permission":return e.u(Ze,{content:r,pages:i,required:a});case"start_task":return e.u(Ge,{content:r,pages:i,required:a});case"complete_task":return e.u(je,{content:r,pages:i,properties:n});default:return null}},et=({className:n,properties:i,next:a,questionId:t})=>{const r=e.useConfig(),{surveyId:d,responseGroupUid:v,userId:f,update:c}=r,b=X(),{screenPermissionRequested:o}=b,h=X(y=>y.avStream);let s=X(y=>y.currentPage);s||(s=function({pages:y,userId:L,responseGroupUid:k,surveyId:w,questionId:P,next:D}){const{updatePage:M}=X.getState(),{eventEmitFn:q,recorderEventEmitter:m}=e.useConfig.getState(),I={questionId:P,surveyId:w,visitorId:L,responseGroupUid:k};let p=0;m.emit("recorded.task.permission.screen"),q("recorded.task.permission.screen"),m.emit("permission.status",{"permission.status.callback":(x,R,E,l)=>{const T=y[p],{type:F}=T,A=["screen"];if(ie(T)){const{permissionDescriptors:O}=T,G=O==null?void 0:O.includes("microphone"),W=O==null?void 0:O.includes("camera");G&&A.push("audio"),W&&A.push("video"),(x!=null&&x.active&&!W||x!=null&&x.active&&R)&&p++}ge(y[p])&&E&&(p++,m.emit("begin.recording",{"recording.media.types":A,"start.recording.callback":O=>M({mediaRecordingUids:O})})),M({currentPage:y[p],avStream:x,screenPermissionRequested:E,nextQuestion:D,type:F,passthroughData:I,recordingMediaTypes:A,captureStream:l})}});const C=y[p];return C.type==="av_permission"&&ae({currentPage:C,pages:y}),C}({questionId:t,surveyId:d,next:y=>{a(y,!0)},pages:i.pages,responseGroupUid:v,userId:f}));let _=s.headline,g=s.captionText;const S=_e(h,s);return ge(s)&&o&&(_=s.permissionDeniedHeadline,g=s.permissionDeniedCaptionText),ie(s)&&S===Te&&(_=s.permissionGrantedHeadline,g=s.permissionGrantedCaptionText),e.p(()=>{c()},[c]),e.u("div",{className:e.cc(n,"ul-center-horizontally","fade-in-transition"),children:[e.u(u.Header,{isRequired:i==null?void 0:i.required,message:_,properties:{captionText:g}}),e.u(u.QuestionBodyWrapper,{children:e.u(Je,{properties:i})})]})},tt=({richTextBody:n,plaintextBody:i})=>n?e.u(u.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((a,t)=>e.u("p",{children:a},t))}):null,rt=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{visitorAttributes:v,isLongFormSurvey:f}=e.useConfig(h=>({visitorAttributes:h.visitorAttributes,isLongFormSurvey:z.isLongFormSurvey(h.studyType)})),c=(h,s=!1)=>{a({value:s?{skipped:!0}:void 0,questionId:r,type:d},!0)},b=u.getAttributedUrl(t&&t.buttonUrl,v),o=f&&t.promptActionType===u.PromptActionTypeEnum.NO_BUTTON;return e.u("div",{className:e.cc(n,"ul-card__text-url-prompt","fade-in-transition"),children:[e.u(u.Header,{isRequired:f&&(t==null?void 0:t.required),message:i,properties:{questionHtml:t.questionHtml}}),e.u(u.QuestionBodyWrapper,{children:e.u(tt,{plaintextBody:t==null?void 0:t.body,richTextBody:t==null?void 0:t.richTextBody})}),e.u(u.MobileEmbedView,{properties:t,children:!o&&e.u(u.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:b,id:"ul-card-text__button",onClick:c,onKeyPress:h=>{h.key!=="Enter"&&h.key!==" "||a({value:void 0,questionId:r,type:d},!0)},rel:"noreferrer",role:b?"link":"button",tabIndex:0,target:"_blank",children:e.getButtonText(t)}),t.required===!1&&e.u("button",{className:"ul-card-skip__button",onClick:h=>c(0,!0),children:e.getSkipButtonText(t)})]})})})]},r)},nt=({className:n,questionId:i})=>{const{border:a,destroy:t,endCard:r,forceBrandedLogo:d,update:v}=e.useConfig(b=>({border:b.border,destroy:b.destroy,endCard:b.endCard,forceBrandedLogo:b.forceBrandedLogo,update:b.update}));e.p(()=>{setTimeout(()=>{t(J.APP_ID)},d?4e3:2e3)},[t,d]);const f=r&&r.subheader?e.u("p",{className:"ul-caption",children:r.subheader}):null,c=r&&r.headline?r.headline:"";return e.p(()=>{v()},[v]),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:a,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:a,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(u.Header,{message:c}),f]})})},i)},ee="ul-card-video__player_recorder",be="ul-video-btn",le=0,ve=1,it=({className:n,message:i,next:a,properties:t,questionId:r,type:d})=>{const{apiURL:v,envId:f,handleUploadUpdate:c,headers:b,responseGroupUid:o,surveyId:h,update:s,viewDocument:_,visitorId:g}=e.useConfig(l=>({apiURL:l.apiURL,envId:l.envId,handleUploadUpdate:l.handleUploadUpdate,headers:l.headers,responseGroupUid:l.responseGroupUid,surveyId:l.surveyId,update:l.update,viewDocument:l.viewDocument,visitorId:l.userId})),[S,y]=e.h(!1),[L,k]=e.h(null),[w,P]=e.h(null),[D,M]=e.h(le),[q,m]=e.h(null),[I,p]=e.h(null),C=t&&t.videoUrl,x=e.T(l=>{l&&m(l)},[m]);e.p(()=>{const l=new ResizeObserver(()=>{setTimeout(s,0)});return I&&l.observe(I),q&&l.observe(q),()=>{l.disconnect()}},[s,I,q]);const R=(l,T)=>{l===u.RECORDER.UPLOAD_STARTED?(k(T[u.RECORDER.UPLOAD_ID]),P(T[u.RECORDER.MEDIA_RECORDING_UID]),y(!0)):l===u.RECORDER.DELETE?(k(null),P(null),y(!1)):l===u.RECORDER.UPLOAD_PROGRESS?isNaN(T[u.RECORDER.UPLOAD_PROGRESS_PCT])?c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],isComplete:!0}):c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],progressPct:T[u.RECORDER.UPLOAD_PROGRESS_PCT]}):l===u.RECORDER.UPLOAD_FINISHED&&c({mediaRecordingUid:T[u.RECORDER.MEDIA_RECORDING_UID],isComplete:!0})},E=l=>{l.preventDefault(),l.stopPropagation(),document.getElementById(ee)&&u.stopRecording(ee),L&&w?(c({mediaRecordingUid:w,isSubmitted:!0}),a({value:{mediaRecordingUid:w},questionId:r,type:d},!0)):a({value:null,questionId:r,type:d},!0)};return e.u("form",{className:e.cc(n,"ul-card--video","fade-in-transition"),id:"ul-video-interview-form",children:[e.u(u.Header,{isRequired:t==null?void 0:t.required,message:i,properties:t}),e.u(u.QuestionBodyWrapper,{children:[e.u("div",{id:"ul-question-player-container",ref:x,style:{display:D===le?"":"none"},children:[e.u("div",{id:ee,ref:l=>{if(l&&l.children.length===0&&!t.hideRecordedPrompt){p(l);const T=u.videoPlayer(ee,{src:C,type:"application/x-mpegURL"},void 0,t.mediaType===u.RECORDER.MEDIA_TYPE_AUDIO,v,_);l.appendChild(T)}}}),e.u(u.MobileEmbedView,{properties:t,children:e.u("button",{className:`${be} ul-record-response-btn`,onClick:l=>{l.preventDefault(),l.stopPropagation(),document.getElementById(ee)&&u.pauseQuestionPlayer(ee),M(ve)}})})]}),e.u("div",{style:{display:D===ve?"block":"none"},children:[e.u("button",{className:`${be} ul-back-question-btn`,onClick:l=>{l.preventDefault(),l.stopPropagation(),M(le)},style:{display:t.hideRecordedPrompt?"none":"block"}}),e.u("div",{id:"ul-recorder-player-container",ref:l=>{if(l&&l.children.length===0){p(l);const T=u.videoRecorderPlayer(ee,{surveyId:h,responseGroupUid:o,questionId:r,visitorId:g,envId:f},v,R,void 0,{...b,"x-ul-video-recorder-origin":"sdk"},t.mediaType===u.RECORDER.MEDIA_TYPE_AUDIO,_);l.appendChild(T)}}})]})]}),e.u(u.QuestionBodyFooterContainer,{children:[e.u(u.Button,{disabled:!S,onClick:E,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:E,style:{display:t.required?"none":"block",...S?{display:"none"}:{}},children:e.getSkipButtonText(t)})]})]})},st=({className:n})=>{const{uploadProgress:i}=e.useConfig(d=>({uploadProgress:d.uploadProgress}));let a,t;Object.values(i).filter(d=>d.isSubmitted).length>1?(a="Your responses are processing",t="Please keep this tab open until your responses are fully processed."):(a="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(d=>d.isSubmitted).map(d=>d.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(u.Header,{message:`${a} (${r}% complete)`}),e.u("p",{className:"ul-caption",children:t})]})},Le=e.F$1(void 0),ot=({value:n,children:i})=>e.u(Le.Provider,{value:n,children:i}),lt=({isRightLabel:n,isLeftLabel:i})=>n?e.MaxDiffChoice.RIGHT:i?e.MaxDiffChoice.LEFT:null,ut="Best",at="Worst",dt=({className:n,labels:i,message:a,properties:t,options:r,questionId:d,type:v,next:f})=>{var P,D,M,q;const[c,b]=e.h(r.map((m,I)=>({...m,label:m.label===""?`Item ${I+1}`:m.label,isRightLabel:!1,isLeftLabel:!1}))),o=(()=>{const m=e.q(Le);if(m===void 0)throw new Error("usePreviousResponses must be used within a PreviousResponsesProvider");return m})(),h={padding:"24px",display:"flex",cursor:"pointer",width:"auto"},[s,_]=e.h(!1);e.p(()=>{const m=c.findIndex(T=>T.isRightLabel),I=c.findIndex(T=>T.isLeftLabel),p=m!==-1&&I!==-1;_(p);const C=!t.required||t.required&&p,x=c.map(T=>({id:T.id,option:T.label,selected:lt(T)})),R=Math.floor(d),E=Object.keys(o).filter(T=>T.startsWith(R.toString())).map(Number).sort((T,F)=>T-F).at(-1),l=[];if(typeof E=="number"){const T=o[E],F=JSON.parse(T);l.push(...F)}l.push(x),setTimeout(()=>{f({value:l,questionId:d,type:v},C,p),_(!1)},p?500:0)},[c]);const{border:g,useMobileStyling:S,enableCspTrustedTypes:y}=e.useConfig(m=>({border:m.border,useMobileStyling:m.useMobileStyling,enableCspTrustedTypes:m.enableCspTrustedTypes})),L=(m,I)=>()=>{s||b(p=>((C,x,R)=>C.map(E=>E.id===x?{...E,isRightLabel:R===e.MaxDiffChoice.RIGHT,isLeftLabel:R===e.MaxDiffChoice.LEFT}:R===e.MaxDiffChoice.RIGHT&&E.isRightLabel||R===e.MaxDiffChoice.LEFT&&E.isLeftLabel?{...E,isRightLabel:!1,isLeftLabel:!1}:E))(p,m,I))},k=(P=t.ratingIcons)==null?void 0:P[0].svg,w=(D=t.ratingIcons)==null?void 0:D[1].svg;return e.u("form",{className:e.cc(n,"ul-card-maxdiff","fade-in-transition"),children:[e.u(u.Header,{isRequired:t==null?void 0:t.required,message:a,properties:t}),e.u(u.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)||((M=t==null?void 0:t.labels)==null?void 0:M.left)||ut}),e.u("div",{children:" "}),e.u("div",{className:"ul-card-maxdiff__label",children:(i==null?void 0:i.right)||((q=t==null?void 0:t.labels)==null?void 0:q.right)||at}),c.map(({id:m,label:I,isLeftLabel:p,isRightLabel:C})=>e.u(e.g,{children:[e.u("div",{className:"ul-card-maxdiff__option-control "+(w?"smiley":""),children:w?e.u(fe,{ariaPressed:p,className:p?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected good":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:y,html:w,id:`smiley-good-${m}`,onClick:L(m,e.MaxDiffChoice.LEFT)}):e.u(u.Option,{allowTextEntry:!1,ariaLabel:`bestLabel-${I}`,border:g,choiceStyle:h,error:!1,id:`${m}`,isRadio:!0,isSelected:p,onUserInputChanged:L(m,e.MaxDiffChoice.LEFT),useMobileStyling:S})}),e.u("div",{className:"ul-card-maxdiff__option-label",children:I}),e.u("div",{className:"ul-card-maxdiff__option-control "+(k?"smiley":""),children:k?e.u(fe,{ariaPressed:C,className:C?"ul-card-maxdiff__option-btn ul-card-maxdiff__option-selected bad":"ul-card-maxdiff__option-btn",enableCspTrustedTypes:y,html:k,id:`smiley-bad-${m}`,onClick:L(m,e.MaxDiffChoice.RIGHT)}):e.u(u.Option,{allowTextEntry:!1,ariaLabel:`worstLabel-${I}`,border:g,choiceStyle:h,error:!1,id:`${m}`,isRadio:!0,isSelected:C,onUserInputChanged:L(m,e.MaxDiffChoice.RIGHT),useMobileStyling:S})})]}))]})})]},d)},fe=({enableCspTrustedTypes:n,ariaPressed:i,className:a,html:t,id:r,onClick:d})=>{const v=e.F(()=>J.getHtml(t,n),[n,t]);return e.u("span",{"aria-pressed":i,className:a,dangerouslySetInnerHTML:{__html:v},id:r,onClick:d,tabIndex:0,type:"button"})},ct=({className:n,labels:i,message:a,next:t,properties:r,questionId:d,type:v,onSubmitButtonClick:f,options:c,showIndividualSubmit:b=!1})=>{const o=e._(null),h=e._(0),s=e._(0),_=e._(null),g=e._(!1),S=e._([]),[y,L]=e.h(()=>(r==null?void 0:r.required)===!0),[k,w]=e.h(()=>c.map(N=>({...N,rank:null}))),P=e.F(()=>Array.from({length:c.length},(N,Q)=>Q+1),[c.length]),{isLongFormSurvey:D,focusedQuestionId:M,setFocusedQuestionId:q,useMobileStyling:m,isPreview:I,headers:p}=e.useConfig(N=>({useMobileStyling:N.useMobileStyling,isLongFormSurvey:z.isLongFormSurvey(N.studyType),focusedQuestionId:N.focusedQuestionId,setFocusedQuestionId:N.setFocusedQuestionId,isPreview:N.isPreview,headers:N.headers})),C=(p==null?void 0:p["userleap-platform"])==="android",x=m&&!I&&!C,R=!x&&!C,E=D&&M===d,l=N=>{N.preventDefault(),j(k),f&&f()},T=(N,Q)=>{w(U=>{const B=parseInt(Q),H=U.map($=>({...$}));H.some($=>$.rank==null)&&H.forEach(($,te)=>$.rank=te+1);const Y=H.findIndex($=>$.id===N);if(Y===-1)return U;const V=H[Y].rank;return B<V?H.forEach($=>{$.id!==N&&$.rank>=B&&$.rank<V&&($.rank=$.rank+1)}):B>V&&H.forEach($=>{$.id!==N&&$.rank>V&&$.rank<=B&&($.rank=$.rank-1)}),H[Y].rank=B,H.sort(($,te)=>$.rank-te.rank),Z(H),H})},F=(N,Q)=>{for(let U=0;U<S.current.length;U++){const B=S.current[U];if(!B||B===_.current)continue;const H=B.getBoundingClientRect();if(N>=H.left&&N<=H.right&&Q>=H.top&&Q<=H.bottom)return{element:B,index:U}}return null},A=N=>Q=>{if(!x)return;Q.preventDefault(),Q.stopPropagation(),g.current=!0,o.current=N;const U=Q.touches[0];h.current=U.clientY,s.current=U.clientY;const B=Q.currentTarget.closest(".ul-card-rank__option");B&&(_.current=B,B.classList.add("is-dragging"))},O=N=>{if(!x||!g.current||o.current===null)return;N.preventDefault(),N.stopPropagation();const Q=N.touches[0];s.current=Q.clientY;const U=s.current-h.current;_.current&&(_.current.style.transform=`translateY(${U}px)`,_.current.style.zIndex="1000"),S.current.forEach(H=>{H&&H!==_.current&&H.classList.remove("is-drop-target")});const B=F(Q.clientX,Q.clientY);B&&B.element.classList.add("is-drop-target")},G=N=>{if(!x||!g.current||o.current===null)return;N.preventDefault(),N.stopPropagation();const Q=N.changedTouches[0],U=F(Q.clientX,Q.clientY);_.current&&(_.current.style.transform="",_.current.style.zIndex="",_.current.classList.remove("is-dragging")),S.current.forEach(B=>{B&&B.classList.remove("is-drop-target")}),U&&U.index!==o.current&&W(o.current,U.index),o.current=null,_.current=null,g.current=!1},W=(N,Q)=>{w(U=>{const B=U.map(Y=>({...Y})),[H]=B.splice(N,1);return B.splice(Q,0,H),B.forEach((Y,V)=>{Y.rank=V+1}),Z(B),B})},j=N=>{const Q={};N.reduce((U,B)=>(U[B.id]=B.rank,U),Q),t({value:Q,questionId:d,type:v},!0)},Z=N=>{L(!1),D&&j(N)},{left:K,right:re}=i,ne=c.length,we=N=>{N.preventDefault(),N.currentTarget.classList.add("is-drop-target")},qe=N=>{N.currentTarget.classList.remove("is-drop-target")},De=N=>{o.current=null,N.currentTarget.classList.remove("is-dragging")};return e.u("form",{className:e.cc(n,"ul-card-rank","fade-in-transition",D&&!E&&"ul-card--unfocused"),onClick:D?()=>{D&&M!==d&&q(d)}:void 0,onSubmit:l,children:[e.u(u.Header,{isRequired:r==null?void 0:r.required,message:a,properties:r}),e.u(u.MobileEmbedView,{properties:r,children:C?e.u(e.g,{children:[e.u(u.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 - ",K]})}),e.u("ol",{className:"ul-card-rank__list",children:k.map(({id:N,label:Q,rank:U})=>e.u("li",{className:"ul-card-rank__option",children:[e.u("select",{"aria-label":`Rank for ${Q}`,className:e.cc("ul-card-rank__select",U==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:B=>T(N,B.currentTarget.value),value:U??"",children:[U==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),P.map(B=>e.u("option",{className:"ul-card-rank__select-option",value:B,children:B},`${B}-${d}`))]}),e.u("span",{children:Q})]},N))}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[ne," - ",re]})})]}),b&&e.u(u.LongformSubmitButton,{handleSubmit:l,isSubmitDisabled:y})]}),!D&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:y,children:e.getButtonText(r)})})})]}):e.u(e.g,{children:[e.u(u.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 - ",K]})}),e.u("ol",{className:"ul-card-rank__list",onDragOver:C?void 0:N=>{N.preventDefault(),N.dataTransfer&&(N.dataTransfer.dropEffect="move")},children:k.map(({id:N,label:Q,rank:U},B)=>{return e.u("li",{className:"ul-card-rank__option",draggable:!!R||void 0,onDragEnd:R?De:void 0,onDragEnter:R?we:void 0,onDragLeave:R?qe:void 0,onDragStart:R?(Y=B,V=>{o.current=Y,V.dataTransfer&&(V.dataTransfer.effectAllowed="move",V.dataTransfer.setData("text/plain",String(Y)),V.currentTarget.classList.add("is-dragging"))}):void 0,onDrop:R?(H=B,V=>{var te,me;V.preventDefault(),V.currentTarget.classList.remove("is-drop-target");const $=o.current;o.current=null,(me=(te=V.currentTarget.closest(".ul-card-rank__list"))==null?void 0:te.querySelector(".is-dragging"))==null||me.classList.remove("is-dragging"),$!=null&&$!==H&&W($,H)}):void 0,ref:V=>S.current[B]=V,children:[e.u("select",{"aria-label":`Rank for ${Q}`,className:e.cc("ul-card-rank__select",U==null&&"ul-card-rank__select--placeholder"),name:`rank[${N}]`,onChange:V=>T(N,V.currentTarget.value),value:U??"",children:[U==null&&e.u("option",{className:"ul-card-rank__select-option",disabled:!0,value:"",children:"-"}),P.map(V=>e.u("option",{className:"ul-card-rank__select-option",value:V,children:V},`${V}-${d}`))]}),e.u("span",{children:Q}),!C&&e.u("button",{"aria-label":`Drag ${Q} to reorder`,className:"ul-card-rank__drag-btn",onTouchEnd:x?G:void 0,onTouchMove:x?O:void 0,onTouchStart:x?A(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 H,Y})}),e.u("div",{className:"ul-card-rank__labels",children:e.u("span",{children:[ne," - ",re]})})]}),b&&e.u(u.LongformSubmitButton,{handleSubmit:l,isSubmitDisabled:y})]}),!D&&e.u(u.QuestionBodyFooterContainer,{children:e.u("div",{className:"ul-card__button-wrapper",children:e.u(u.Button,{disabled:y,children:e.getButtonText(r)})})})]})})]},d)},pt=new Set(["open","matrix","multipleselect","multiplechoice","rankorder"]),ye=({cardInstance:n,moveToNextQuestion:i,showIndividualSubmit:a,submitQuestion:t,updateCardValues:r})=>{const{isLongFormSurvey:d}=e.useConfig(s=>({isLongFormSurvey:z.isLongFormSurvey(s.studyType)}));if(!n)return null;const{name:v,type:f,props:c}=n,b=a&&pt.has(f),o={className:"ul-card",next:(s,_,g=!0)=>t(s,_&&g),questionId:v,type:f,showIndividualSubmit:a,...b?{next:(s,_)=>{r(s.questionId,s,_??!0)},onSubmitButtonClick:()=>i(v)}:{}},h=(()=>{switch(f){case"consentlegal":return e.u(Ee,{...o,...c});case"likert":return e.u(Me,{...o,...c});case"matrix":return e.u(Ae,{...o,...c});case"maxdiff":return e.u(dt,{...o,...c});case"multiplechoice":return e.u(He,{...o,...c});case"multipleselect":return e.u($e,{...o,...c});case"nps":return e.u(Ve,{...o,...c});case"open":return e.u(We,{...o,...c});case"rankorder":return e.u(ct,{...o,...c});case"recordedtask":return e.u(et,{...o,...c});case"texturlprompt":return e.u(rt,{...o,...c});case"thanks":return e.u(nt,{...o,...c});case"uploading":return e.u(st,{...o,...c});case"videovoice":return e.u(it,{...o,...c});default:return null}})();return h?d?e.u("div",{className:"ul-card-scroll-wrapper",children:h},v):h:null},mt=({isSubmitDisabled:n=!1,onSubmit:i,buttonText:a})=>{var _;const{cards:t,forceBrandedLogo:r,index:d,marketingUrl:v,showSurveyBrand:f,slugName:c,surveyId:b,useMobileStyling:o}=e.useConfig(g=>({cards:g.cards,forceBrandedLogo:g.forceBrandedLogo,index:g.index,marketingUrl:g.marketingUrl,showSurveyBrand:g.showSurveyBrand,slugName:g.slugName,surveyId:g.surveyId,useMobileStyling:g.useMobileStyling})),h=((_=t[d])==null?void 0:_.type)==="thanks",s=e.buildMarketingUrl({marketingUrl:v,slugName:c,surveyId:b,forceBrandedLogo:r});return e.u("footer",{className:e.cc("long-form-question-footer-container",o&&"long-form-question-footer-container--mobile",h&&"long-form-question-footer-container-center"),children:[h&&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}),!h&&e.u("div",{className:e.cc("ul-card__button-wrapper","ul-card-vertical__button-wrapper","long-form-question-footer-container-actions"),children:e.u(u.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:a??e.u(e.Arrow,{stroke:"white"})})})})]})};exports.PageCard=({cards:n,next:i,previousResponses:a})=>{var I;const[t,r]=e.h({}),[d,v]=e.h({}),f=e.F(()=>({...a,...e.buildReadableResponseMap(n.map(p=>{var C,x;return{...p,value:((C=t[p.name])==null?void 0:C.value)??null,secondaryValue:((x=t[p.name])==null?void 0:x.secondaryValue)??null}}))}),[a,t,n]),c=e.pipeReadableResponsesIntoCards(n,f),{isLongFormSurvey:b,focusedQuestionId:o,setFocusedQuestionId:h}=e.useConfig(p=>({isLongFormSurvey:z.isLongFormSurvey(p.studyType),focusedQuestionId:p.focusedQuestionId,setFocusedQuestionId:p.setFocusedQuestionId})),s=e._(null),_=e._(!1),g=e._(null),S=e.T(p=>{var E,l;_.current=!0;const C=n.findIndex(T=>T.name===p);if(!b||p===null||C===-1)return void(_.current=!1);const x=(E=s.current)==null?void 0:E.querySelectorAll(".ul-card-scroll-wrapper")[C],R=(l=s.current)==null?void 0:l.closest(".ul-card-main-content");if(x&&R){if(x&&R){const T=x.getBoundingClientRect(),F=R.getBoundingClientRect(),A=T.top-F.top+R.scrollTop,O=A+T.height/2,G=window.innerHeight-157;let W;T.height>=G?W=A:W=O-R.clientHeight/2;const j=R.clientHeight,Z=R.scrollHeight-j,K=Math.max(0,Math.min(W,Z));R.scrollTo({top:K,behavior:"smooth"}),setTimeout(()=>{_.current=!1},500)}}else _.current=!1},[b,n]);function y(p,C){return p.map(x=>{const R=C[x.name],E=c.find(l=>l.name===x.name);return{...R,questionText:E?e.getProcessedQuestionText(E):void 0}})}e.p(()=>{o!==null&&n.findIndex(p=>p.name===o)!==-1||h(n[0].name)},[n,o,h]);const L=p=>{if(!b)return;const C=n.findIndex(x=>x.name===p)+1;if(C<n.length){const x=n[C].name;h(x)}else h(p)};e.p(()=>{b&&o!==null&&(g.current!==o?S(o):g.current=null)},[o,b,S]);const k=e.T(()=>{var F,A;if(_.current)return;const p=(F=s.current)==null?void 0:F.closest(".ul-card-main-content");if(!p)return;const C=(A=s.current)==null?void 0:A.querySelectorAll(".ul-card-scroll-wrapper");if(!C||C.length===0)return;const x=p.getBoundingClientRect(),R=x.top+x.height/2;let E=0,l=1/0;C.forEach((O,G)=>{const W=O.getBoundingClientRect(),j=W.top+W.height/2,Z=Math.abs(R-j);Z<l&&(l=Z,E=G)});const T=n[E];g.current=T.name,h(T.name)},[n,h]);e.p(()=>{var C;if(!b)return;const p=((C=s.current)==null?void 0:C.closest(".ul-card__container"))||null;return p&&p.addEventListener("scroll",k,{passive:!0}),()=>{p&&p.removeEventListener("scroll",k)}},[k,b]);const w=e.F(()=>Object.values(d).every((p,C)=>{var R;const x=n[C];return!(!(x!=null&&x.props)||!("properties"in x.props)||((R=x.props.properties)==null?void 0:R.required)!==!1)||p}),[d,n]),P=async(p,C,x)=>{return v(E=>({...E,[p]:x})),await(R=E=>({...E,[p]:C}),new Promise(E=>{r(l=>{const T=R(l);return E(T),T})}));var R};e.p(()=>{if(!b)return;const p={};n.forEach(C=>{var R,E;const x=C;(E=(R=x.props)==null?void 0:R.properties)!=null&&E.required||(p[x.name]={value:null,questionId:x.name,type:x.type})}),r(p),v({})},[n,b]);const D=async(p,C)=>{if(b){const x=await P(p.questionId,p,C),R=M(p.type),E=q(p.type);if(R&&L(p.questionId),E&&C){const l=y(n,x);i(l)}}else{const x=c.find(E=>E.name===p.questionId),R={...p,questionText:x?e.getProcessedQuestionText(x):void 0};i([R])}},M=p=>new Set(["nps","likert","multiplechoice"]).has(p),q=p=>new Set(["videovoice","consentlegal","texturlprompt","maxdiff"]).has(p),m=((I=n[0])==null?void 0:I.type)==="thanks";return b?e.u("div",{className:"ul-card-list-container--longform","data-testid":"ui-container",ref:s,children:[e.u(ot,{value:a,children:c.map((p,C)=>e.u(ye,{cardInstance:p,moveToNextQuestion:L,showIndividualSubmit:b&&n.length>1&&C<n.length-1,submitQuestion:D,updateCardValues:P},(p==null?void 0:p.name)||C))}),!m&&e.u(mt,{isSubmitDisabled:Object.keys(t).length<n.length||!w,onSubmit:function(){const p=y(n,t);i(p)}})]}):e.u(e.g,{children:[e.u("div",{"data-testid":"ui-container",style:{display:"none"}}),c.map((p,C)=>e.u(ye,{cardInstance:p,moveToNextQuestion:L,showIndividualSubmit:b&&n.length>1&&C<n.length-1,submitQuestion:D,updateCardValues:P},(p==null?void 0:p.name)||C))]})};
@@ -1,7 +1,7 @@
1
- import { a as V, h as $, u as e, c as U, b as K, f as Pe, F as ge, g as be, e as ue, _ as te, T as fe, A as nr, p as J, i as ir, m as sr, q as ar, M as le, n as lr, o as or, r as dr, s as cr, j as ur, k as pr, l as Ue } from "./view-BGlLLPXB.js";
2
- import { t as ie } from "./metricsReporter-B-oKhuWk.js";
3
- import { a as Ce, D as De, g as He, A as mr } from "./core-Cyu7gofl.js";
4
- import { c as ee, a as ne, H as Se, M as ce, Q as de, O as he, B as z, L as ye, b as ke, S as gr, u as hr, g as br, P as vr, p as fr, v as yr, R as X, d as Sr, s as xr } from "./getAttributedUrl-C_5gL6aZ.js";
1
+ import { a as V, h as $, u as e, c as U, b as K, f as Pe, F as ge, g as be, e as ue, _ as te, T as fe, A as nr, p as J, i as ir, m as sr, q as ar, M as le, n as lr, o as or, r as dr, s as cr, j as ur, k as pr, l as Ue } from "./view-BkptC8BC.js";
2
+ import { t as ie } from "./metricsReporter-MLC5Ejl7.js";
3
+ import { a as Ce, D as De, g as He, A as mr } from "./core-Bu7SvToK.js";
4
+ import { c as ee, a as ne, H as Se, M as ce, Q as de, O as he, B as z, L as ye, b as ke, S as gr, u as hr, g as br, P as vr, p as fr, v as yr, R as X, d as Sr, s as xr } from "./getAttributedUrl-Czw_vkQN.js";
5
5
  const kr = ({ className: n, message: i, next: c, properties: r, questionId: t, type: o }) => {
6
6
  const { useMobileStyling: b, border: v, isLongFormSurvey: d, focusedQuestionId: h } = V((p) => ({ useMobileStyling: p.useMobileStyling, border: p.border, isLongFormSurvey: ie(p.studyType), focusedQuestionId: p.focusedQuestionId })), [a, g] = $(!1), [s, I] = $(""), [m, S] = $(!1), f = d && h === t, w = r == null ? void 0 : r.collectName, _ = (r == null ? void 0 : r.nameLabelText) || "Full Name", q = (r == null ? void 0 : r.consentText) || "I agree to the stated conditions", E = (r == null ? void 0 : r.submitButtonText) || "Submit", P = !!s.trim(), M = a && (!w || P), L = (p, T = !1) => {
7
7
  p.preventDefault(), p.stopPropagation();
package/dist/index.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-Br8FqGd4.cjs");require("./replay.cjs");const r=require("./metricsReporter-Dc4CZlRc.cjs");exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig,exports.DismissReason=r.DismissReason,exports.SprigEvent=r.SprigEvent;
1
+ "use strict";Object.defineProperties(exports,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}});const e=require("./core-C6T-kQJo.cjs");require("./replay.cjs");const r=require("./metricsReporter-0SKeVvnG.cjs");exports.SprigAPI=e.SprigAPI,exports.default=e.core,exports.sprig=e.sprig,exports.DismissReason=r.DismissReason,exports.SprigEvent=r.SprigEvent;
package/dist/index.js CHANGED
@@ -1,6 +1,6 @@
1
- import { S as i, c as o, s as p } from "./core-Cyu7gofl.js";
1
+ import { S as i, c as o, s as p } from "./core-Bu7SvToK.js";
2
2
  import "./replay.js";
3
- import { D as t, S as m } from "./metricsReporter-B-oKhuWk.js";
3
+ import { D as t, S as m } from "./metricsReporter-MLC5Ejl7.js";
4
4
  export {
5
5
  t as DismissReason,
6
6
  i as SprigAPI,
@@ -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.40.2","x-ul-installation-method":Q(e),"sprig-modules":G()};if(e.envId&&(t["x-ul-environment-id"]=e.envId),e.token&&(t.Authorization="Bearer "+e.token),e.userId&&(t["x-ul-user-id"]=e.userId),e.visitorId&&(t["x-ul-visitor-id"]=e.visitorId),e.partnerAnonymousId&&(t["x-ul-anonymous-id"]=e.partnerAnonymousId),e.mobileHeadersJSON){const r=JSON.parse(e.mobileHeadersJSON);Object.assign(t,r)}return e.locale&&(t["accept-language"]=e.locale),window.previewMode&&(t["x-ul-preview-mode"]="1"),t},exports.groupCards=(e,t)=>{const r=[e[t]],s=e[t].groupId;return s?e.slice(t).reduce((n,i)=>(i.groupId===s&&n.push(i),n),[]):r},exports.initPerformanceReporting=({reportingIntervalSeconds:e,postMetrics:t})=>{e?setInterval(()=>{(async r=>{const s=Object.values(_).map(n=>({name:n.name,values:n.collect()}));if(s.some(n=>n.values.length))try{await r(JSON.stringify(s))}catch(n){n instanceof Error&&b.error("MetricsErr",{error:{message:n.message,name:n.name}})}})(t)},1e3*e):V=!1},exports.isLongFormSurvey=e=>e==="longFormSurvey",exports.killNetworkRequests=N,exports.localStorageHelper=$,exports.modules=E,exports.registerMetric=O,exports.registerReplay=e=>{E.replay=e},exports.registerThresholds=(e,t)=>{p={},f=!1,e==null||e.forEach(r=>{var s;r.metric in p||(p[r.metric]=[]),(s=p[r.metric])==null||s.push(r)}),L=t},exports.reportAndRegister=(e,t)=>{let r=_[e];return r||(r=O(e)),r.report(t)},exports.sessionStorageHelper=J,exports.shouldDirectEmbed=({"userleap-platform":e})=>{var t;return((t=window.UserLeap)==null?void 0:t.forceDirectEmbed)||e!=="web"},exports.sprigFetch=v,exports.v4=function(e,t,r){if(w.randomUUID&&!e)return w.randomUUID();const s=(e=e||{}).random||(e.rng||H)();return s[6]=15&s[6]|64,s[8]=63&s[8]|128,function(n,i=0){return o[n[i+0]]+o[n[i+1]]+o[n[i+2]]+o[n[i+3]]+"-"+o[n[i+4]]+o[n[i+5]]+"-"+o[n[i+6]]+o[n[i+7]]+"-"+o[n[i+8]]+o[n[i+9]]+"-"+o[n[i+10]]+o[n[i+11]]+o[n[i+12]]+o[n[i+13]]+o[n[i+14]]+o[n[i+15]]}(s)};
1
+ "use strict";var Y=Object.defineProperty;var j=(e,t,r)=>t in e?Y(e,t,{enumerable:!0,configurable:!0,writable:!0,value:r}):e[t]=r;var l=(e,t,r)=>j(e,typeof t!="symbol"?t+"":t,r);var U=(e=>(e.Closed="close.click",e.Complete="survey.completed",e.FeedbackClosed="feedback.closed",e.PageChange="page.change",e.API="api",e.Override="override",e))(U||{}),A=(e=>(e.ReplayCapture="replay.capture",e.ReplayPaused="replay.paused",e.ReplayResumed="replay.resumed",e.FeedbackButtonLoaded="feedback.button.loaded",e.SDKReady="sdk.ready",e.SurveyAppeared="survey.appeared",e.SurveyCloseRequested="survey.closeRequested",e.SurveyClosed="survey.closed",e.SurveyDimensions="survey.dimensions",e.SurveyFadingOut="survey.fadingOut",e.SurveyHeight="survey.height",e.SurveyPresented="survey.presented",e.SurveyLifeCycle="survey.lifeCycle",e.SurveyWidth="survey.width",e.SurveyWillClose="survey.willClose",e.SurveyWillPresent="survey.will.present",e.CloseSurveyOnOverlayClick="close.survey.overlayClick",e.VisitorIDUpdated="visitor.id.updated",e.QuestionAnswered="question.answered",e))(A||{});let m;const F=new Uint8Array(16);function H(){if(!m&&(m=typeof crypto<"u"&&crypto.getRandomValues&&crypto.getRandomValues.bind(crypto),!m))throw new Error("crypto.getRandomValues() not supported. See https://github.com/uuidjs/uuid#getrandomvalues-not-supported");return m(F)}const o=[];for(let e=0;e<256;++e)o.push((e+256).toString(16).slice(1));const w={randomUUID:typeof crypto<"u"&&crypto.randomUUID&&crypto.randomUUID.bind(crypto)},b=new class{constructor(){l(this,"breadcrumbs",[])}getTimeStamp(){return new Date().toISOString()}addBreadcrumb(e){this.breadcrumbs.push(e),this.breadcrumbs.length>300&&this.breadcrumbs.shift()}debug(e,t="debug"){this.addBreadcrumb({category:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"debug"})}error(e,t={}){this.addBreadcrumb({category:"error",data:t,level:"error",message:e,timestamp:this.getTimeStamp(),type:"error"})}http(e,t){this.addBreadcrumb({category:"xhr",data:t,message:e,timestamp:this.getTimeStamp(),type:"http"})}info(e,t={}){this.addBreadcrumb({category:"info",data:t,level:"info",message:e,timestamp:this.getTimeStamp(),type:"info"})}navigation(e,t){this.addBreadcrumb({category:"navigation",data:t,message:e,timestamp:this.getTimeStamp(),type:"navigation"})}};var q=class extends Error{constructor(e,t,r){super(`Possible EventEmitter memory leak detected. ${r} ${t.toString()} listeners added. Use emitter.setMaxListeners() to increase limit`),this.emitter=e,this.type=t,this.count=r,this.name="MaxListenersExceededWarning"}},C=class{static listenerCount(e,t){return e.listenerCount(t)}constructor(){this.events=new Map,this.maxListeners=C.defaultMaxListeners,this.hasWarnedAboutPotentialMemoryLeak=!1}_emitInternalEvent(e,t,r){this.emit(e,t,r)}_getListeners(e){return Array.prototype.concat.apply([],this.events.get(e))||[]}_removeListener(e,t){const r=e.indexOf(t);return r>-1&&e.splice(r,1),[]}_wrapOnceListener(e,t){const r=(...s)=>(this.removeListener(e,r),t.apply(this,s));return Object.defineProperty(r,"name",{value:t.name}),r}setMaxListeners(e){return this.maxListeners=e,this}getMaxListeners(){return this.maxListeners}eventNames(){return Array.from(this.events.keys())}emit(e,...t){const r=this._getListeners(e);return r.forEach(s=>{s.apply(this,t)}),r.length>0}addListener(e,t){this._emitInternalEvent("newListener",e,t);const r=this._getListeners(e).concat(t);if(this.events.set(e,r),this.maxListeners>0&&this.listenerCount(e)>this.maxListeners&&!this.hasWarnedAboutPotentialMemoryLeak){this.hasWarnedAboutPotentialMemoryLeak=!0;const s=new q(this,e,this.listenerCount(e));console.warn(s)}return this}on(e,t){return this.addListener(e,t)}once(e,t){return this.addListener(e,this._wrapOnceListener(e,t))}prependListener(e,t){const r=this._getListeners(e);if(r.length>0){const s=[t].concat(r);this.events.set(e,s)}else this.events.set(e,r.concat(t));return this}prependOnceListener(e,t){return this.prependListener(e,this._wrapOnceListener(e,t))}removeListener(e,t){const r=this._getListeners(e);return r.length>0&&(this._removeListener(r,t),this.events.set(e,r),this._emitInternalEvent("removeListener",e,t)),this}off(e,t){return this.removeListener(e,t)}removeAllListeners(e){return e?this.events.delete(e):this.events.clear(),this}listeners(e){return Array.from(this._getListeners(e))}listenerCount(e){return this._getListeners(e).length}rawListeners(e){return this.listeners(e)}},D=C;D.defaultMaxListeners=10;const B=new D,S=async e=>{await new Promise(t=>{setTimeout(t,e)})};class x{constructor(t){l(this,"storage");l(this,"tempStorage",{});l(this,"isStorageAvailable");try{this.storage=window[t];const r="__storage_test__";this.storage.setItem(r,r),this.storage.removeItem(r),this.isStorageAvailable=!0}catch{this.isStorageAvailable=!1}}setItem(t,r){this.isStorageAvailable&&this.storage?this.storage.setItem(t,r):this.tempStorage[t]=r}setItemObject(t,r){try{this.setItem(t,JSON.stringify(r))}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to save to local storage",s))}}getItem(t){return this.isStorageAvailable&&this.storage?this.storage.getItem(t):this.tempStorage[t]}getItemObject(t){const r=this.getItem(t);if(r)try{return JSON.parse(r)}catch(s){s instanceof Error&&(s.stack=t+": "+r,window.UserLeap.reportError("Failed to parse local storage",s))}return{}}removeItem(t){this.isStorageAvailable&&this.storage?this.storage.removeItem(t):delete this.tempStorage[t]}clear(){this.isStorageAvailable&&this.storage?this.storage.clear():this.tempStorage={}}}const J=new x("sessionStorage"),$=new x("localStorage");class K{constructor(t){l(this,"payload");l(this,"promise");l(this,"reject",()=>{});l(this,"resolve",()=>{});this.payload=t,this.promise=new Promise((r,s)=>{this.reject=s,this.resolve=r})}resolveRequest(t){this.resolve(t)}}const E={replay:null},G=()=>{const e=[];return E.replay&&e.push("replay"),e.join(",")},z=10;let T=!1,M="",g=!1,P=!1,y=[];const Q=e=>e._config&&e._config.installationMethod?e._config.installationMethod:e._gtm?"web-gtm":e._segment?"web-segment":"web-snippet",N=(e="")=>{T=!0,M=e},R=async({shouldDropOnRateLimit:e,...t})=>{if(e)return{status:429};{const r=new K(t);return y.push(r),r.promise}},v=async(e,t)=>{const{retries:r=0,shouldDropOnRateLimit:s=!1,shouldRetryRequest:n=!1,...i}=t,d={url:e,options:i,retries:r,shouldDropOnRateLimit:s};if(g&&!n)return R(d);const u={ok:!1,reportError:!1};if(T)return console.info(`UserLeap - ${M}`),u;try{const c=await fetch(e,i);if(c.status===429){if(!g&&!s||n){g=!0;const a=c.headers.has("ratelimit-reset")?Number(c.headers.get("ratelimit-reset")):z;return await S(1e3*a),v(e,{...i,shouldDropOnRateLimit:s,shouldRetryRequest:!0})}return R(d)}if(g=!1,y.length&&(y.map(a=>{const h=a.payload;v(h.url,{...h.options,retries:h.retries,shouldDropOnRateLimit:h.shouldDropOnRateLimit}).then(W=>{a.resolveRequest(W)})}),y=[]),c.ok){if(c.status===249)return N(),u;const a=await c.text();try{return a&&a!=="OK"&&(c.json=JSON.parse(a)),c}catch{return{ok:!1,reportError:!1,error:new Error(`failed parsing response json for ${e} - ${a}`)}}}return c}catch(c){const a=r+1;return a>5||P?{ok:!1,reportError:!1,error:c}:(await S(1e3*Math.pow(2,r)),v(e,{...i,retries:a}))}},I=Object.freeze({contains:(e,t)=>t.includes(e),notContains:(e,t)=>!t.includes(e),exactly:(e,t)=>t===e,notExactly:(e,t)=>t!==e,startsWith:(e,t)=>t.startsWith(e),endsWith:(e,t)=>t.endsWith(e),regex:(e,t)=>new RegExp(e).test(t),legacy:(e,t)=>new RegExp(e,"i").test(t)});function k(e,t){const{matchType:r,pattern:s}=e,n=r?I[r]:I.legacy;let i=!1;try{i=n(s,t)}catch(d){const u=`[Sprig] (ERR-445) Failed to check url match with pattern ${s}`;d instanceof Error&&(console.warn(u,d),d.stack=JSON.stringify(e),window.UserLeap.reportError(u,d))}return i}let V=!0,f=!1;const X=["sdk_event_queue_latency_seconds","sdk_replay_add_event_batch_seconds","sdk_replay_cleanup_seconds","sdk_replay_compression_seconds","sdk_replay_get_events_between_seconds","sdk_replay_snapshot_seconds","sdk_mutations_nodes_added","sdk_mutations_nodes_removed","sdk_mutations_attributes_changed","sdk_mutations_character_data","sdk_dom_nodes_count","sdk_page_html_characters"];let L,p={};class Z{constructor(t){l(this,"_values",[]);l(this,"_isWebMetric");this.name=t,this._isWebMetric=X.includes(this.name)}report(t){if(V&&this._values.push({time:Date.now(),value:t}),f||!this._isWebMetric)return;const r=this.findExceededThreshold(t);r&&L&&L(t,r)}collect(){const t=this._values;return this._values=[],t}findExceededThreshold(t){const r=p[this.name];if(r)return r.find(s=>this.valueExceedsThreshold(t,s))}valueExceedsThreshold(t,r){return r.type==="max"?t>r.value:r.type==="min"&&t<r.value}}const _={},O=e=>{const t=new Z(e);return _[e]=t,t};exports.DismissReason=U,exports.EVENTS={FEEDBACK_BUTTON_LOADED:"feedback.button.loaded",SDK_READY:"sdk.ready",SURVEY_APPEARED:"survey.appeared",SURVEY_CLOSED:"survey.closed",SURVEY_DIMENSIONS:"survey.dimensions",SURVEY_FADING_OUT:"survey.fadingOut",SURVEY_HEIGHT:"survey.height",SURVEY_WIDTH:"survey.width",SURVEY_PRESENTED:"survey.presented",SURVEY_LIFE_CYCLE:"survey.lifeCycle",SURVEY_WILL_CLOSE:"survey.willClose",SURVEY_WILL_PRESENT:"survey.will.present",QUESTION_ANSWERED:"question.answered",REPLAY_CAPTURE:"replay.capture",CLOSE_SURVEY_ON_OVERLAY_CLICK:"close.survey.overlayClick",VISITOR_ID_UPDATED:"visitor.id.updated",DATA:{DISMISS_REASONS:{API:"api",CLOSED:"close.click",COMPLETE:"survey.completed",PAGE_CHANGE:"page.change",OVERRIDE:"override"},SURVEY_ID:"survey.id"}},exports.PerformanceMetrics=_,exports.SprigEvent=A,exports.breadcrumbsLogger=b,exports.checkUrlMatch=k,exports.checkUrlStillMatching=e=>{const{pageUrlEvents:t}=window.UserLeap._config,r=t==null?void 0:t.find(s=>s.id===e);return!!r&&k(r,window.location.href)},exports.cspViolationHandler=e=>{var t;(t=e==null?void 0:e.blockedURI)!=null&&t.includes(window.UserLeap._API_URL)&&(P=!0,console.warn(`[Sprig] ${e.blockedURI} is blocked by Content-Security-Policy`))},exports.delay=S,exports.disableThresholdChecking=()=>f=!0,exports.eventEmitter=B,exports.getHttpHeaders=function(e={}){const t={"Content-Type":"application/json","userleap-platform":"web","x-ul-sdk-version":"2.40.3","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.40.2", "x-ul-installation-method": J(e), "sprig-modules": B() };
220
+ const t = { "Content-Type": "application/json", "userleap-platform": "web", "x-ul-sdk-version": "2.40.3", "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);
package/dist/replay.cjs CHANGED
@@ -1 +1 @@
1
- "use strict";var et=Object.defineProperty;var tt=(e,t,n)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var N=(e,t,n)=>tt(e,typeof t!="symbol"?t+"":t,n);const o=require("./metricsReporter-Dc4CZlRc.cjs"),nt=require("./debounce-DsC7462b.cjs");var L=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(L||{}),T=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(T||{});const Z=(e,t)=>t.some(n=>e instanceof n);let ye,fe;const ee=new WeakMap,q=new WeakMap,$=new WeakMap;let te={get(e,t,n){if(e instanceof IDBTransaction){if(t==="done")return ee.get(e);if(t==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return x(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&(t==="done"||t==="store")||t in e};function Ee(e){te=e(te)}function rt(e){return(fe||(fe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(ne(this),t),x(this.request)}:function(...t){return x(e.apply(ne(this),t))}}function at(e){return typeof e=="function"?rt(e):(e instanceof IDBTransaction&&function(t){if(ee.has(t))return;const n=new Promise((r,a)=>{const s=()=>{a(t.error||new DOMException("AbortError","AbortError"))};t.oncomplete=()=>{r()},t.onerror=s,t.onabort=s});ee.set(t,n)}(e),Z(e,ye||(ye=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,te):e)}function x(e){if(e instanceof IDBRequest)return function(n){const r=new Promise((a,s)=>{n.onsuccess=()=>{a(x(n.result))},n.onerror=()=>{s(n.error)}});return $.set(r,n),r}(e);if(q.has(e))return q.get(e);const t=at(e);return t!==e&&(q.set(e,t),$.set(t,e)),t}const ne=e=>$.get(e);function re(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&(n.onblocked=r=>t(r.oldVersion,r)),x(n).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],ot=["put","add","delete","clear"],z=new Map;function he(e,t){if(!(e instanceof IDBDatabase)||t in e||typeof t!="string")return;if(z.get(t))return z.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=ot.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!st.includes(n))return;const s=async function(i,...c){const d=this.transaction(i,a?"readwrite":"readonly");let u=d.store;return r&&(u=u.index(c.shift())),(await Promise.all([u[n](...c),a&&d.done]))[0]};return z.set(t,s),s}Ee(e=>({...e,get:(t,n,r)=>he(t,n)||e.get(t,n,r),has:(t,n)=>!!he(t,n)||e.has(t,n)}));const it=["continue","continuePrimaryKey","advance"],Ie={},ae=new WeakMap,Re=new WeakMap,dt={get(e,t){if(!it.includes(t))return e[t];let n=Ie[t];return n||(n=Ie[t]=function(...r){ae.set(this,Re.get(this)[t](...r))}),n}};async function*ct(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,dt);for(Re.set(n,t),$.set(n,ne(t));t;)yield n,t=await(ae.get(n)||t.continue()),ae.delete(n)}function ve(e,t){return t===Symbol.asyncIterator&&Z(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&Z(e,[IDBIndex,IDBObjectStore])}Ee(e=>({...e,get:(t,n,r)=>ve(t,n)?ct:e.get(t,n,r),has:(t,n)=>ve(t,n)||e.has(t,n)}));const ut="sprigReplayIframeLoaded",lt="sprigReplayIframeSettings",pt="sprigReplayIframeTakeFullSnapshot",gt="sprigReplayTeardown",pe=[],Ce=new class{constructor(e){N(this,"awaitingResolvers",[]);N(this,"activeCount",0);this.capacity=e}async acquire(){if(!(this.activeCount<this.capacity))return new Promise(e=>{this.awaitingResolvers.push(e)});this.activeCount++}release(){const e=this.awaitingResolvers.shift();e&&this.activeCount<=this.capacity?e():this.activeCount--}async execute(e){try{return await this.acquire(),await e()}finally{this.release()}}setLimit(e){this.capacity=e}}(2),Pe=async({apiUrl:e,surveyId:t,uploadId:n,etags:r,headers:a,responseGroupUuid:s,replayDuration:i,eventDigest:c},d=!1)=>{var w;if(!d&&!n&&!r)return void o.breadcrumbsLogger.error("UploadErr",{isMobile:d,uploadId:n,etags:r});o.breadcrumbsLogger.info("MarkUploadComplete",{surveyId:t});const u=await o.sprigFetch(`${e}/sdk/1/completeSessionReplay`,{method:"POST",body:JSON.stringify({etags:r,uploadId:n,responseGroupUuid:s,surveyId:t,replayDuration:i,eventDigest:c,userAgent:(w=window==null?void 0:window.navigator)==null?void 0:w.userAgent}),headers:a,shouldRetryRequest:!0});return o.breadcrumbsLogger.info("MarkUploadDone",{surveyId:t}),u},mt=e=>{if(e instanceof Attr)return null;let t=1;for(let n=e.previousSibling;n;n=n.previousSibling)n.nodeName===e.nodeName&&++t;return t},Te=e=>{if(e===null)return"";const t=[];if(e instanceof Document)return"/";for(let n=e;n&&!(n instanceof Document)&&n!==null;n=n instanceof Attr?n.ownerElement:n.parentElement){const r=t[t.length]={name:void 0,position:null};switch(n.nodeType){case Node.TEXT_NODE:r.name="text()";break;case Node.ATTRIBUTE_NODE:r.name="@"+n.nodeName;break;case Node.PROCESSING_INSTRUCTION_NODE:r.name="processing-instruction()";break;case Node.COMMENT_NODE:r.name="comment()";break;case Node.ELEMENT_NODE:r.name=n.nodeName}r.position=mt(n)}return"/"+t.reverse().map(n=>n.position!==null?`/${n.name}[${n.position}]`:`/${n.name}`).join("")},ge=e=>e&&e.trim().substring(0,500).replace(/\s\s+/g," ").replace(/\r?\n|\r/g," ").substring(0,250),R={capture:!0,passive:!0},wt=["a","button","input","option","li","link"],yt=["Escape","Enter","Backspace","F5","Tab"];let K=!1,S=null,j=null;const be=e=>{var n;if(((n=e.tagName)==null?void 0:n.toLowerCase())==="html")return{element:"html"};const t={};return t.element=(r=>{if(!r.tagName)return"No tagName";const a=r.getAttribute("type");return a?`${a} ${r.tagName.toLowerCase()}`:r.tagName.toLowerCase()})(e),t},ft=e=>{var r;if(!e)return{};const t={...be(e)},n=e.parentElement;if(n&&wt.includes((r=n.tagName)==null?void 0:r.toLowerCase())){const a=be(n);Object.assign(t,a)}return t},ke=(e,t)=>{var a,s;let n=t.target;var r;t.target===((a=window.document)==null?void 0:a.body)&&window.Sprig.pointerDownTarget&&(n=window.Sprig.pointerDownTarget),r={x:t.x,y:t.y,type:e,elementAttributes:ft(n),windowHeight:window.innerHeight,windowWidth:window.innerWidth,...n instanceof HTMLElement||n instanceof SVGElement||n instanceof MathMLElement?{rect:n==null?void 0:n.getBoundingClientRect(),xPath:Te(n)}:{}},(s=r==null?void 0:r.elementAttributes)!=null&&s.text&&(r.elementAttributes.text=ge(r.elementAttributes.text)),S==null||S("Sprig_Click",r)},Ue=e=>{var t;yt.includes(e.key)&&(t={key:e.key},S==null||S("Sprig_Keystroke",t))},ht=()=>{var e;window.performance.getEntriesByType("navigation").map(t=>t.type).includes("reload")&&(e={url:window.location.href,currentPageTitle:document.title},S==null||S("Sprig_Refresh",e))},It=()=>{var e;window.performance.getEntriesByType("navigation").map(t=>t.type).includes("back_forward")&&((e={curUrl:window.location.href,fromUrl:document.referrer,currentPageTitle:document.title}).currentPageTitle&&(e.currentPageTitle=ge(e.currentPageTitle)),S==null||S("Sprig_BackForward",e))},Le=nt.debounce(e=>{if(!(e.target instanceof HTMLElement||e.target instanceof Document))return;let t=e.target;"scrollTop"in t||(t=t.documentElement),j==null||j({xPath:Te(t),x:t.scrollLeft,y:t.scrollTop,elementAttributes:{targetScrollWidth:t.scrollWidth,targetClientWidth:t.clientWidth,targetScrollHeight:t.scrollHeight,targetClientHeight:t.clientHeight}})},750),xe=(Se="left_click",e=>ke(Se,e));var Se;const Be=e=>{e.button===2&&ke("right_click",e)},Me=e=>{window.Sprig&&(window.Sprig.pointerDownTarget=e.target)},g={isRecording:!1,scrollEventUuids:{},stopRecording:()=>{}},Ae=()=>window.indexedDB&&window.IDBKeyRange&&window.CompressionStream,h=(()=>{const e=o.sessionStorageHelper.getItem("sprig.sessionId");if(e)return o.breadcrumbsLogger.info("SessionIDFound",{savedSessionId:e}),o.sessionStorageHelper.removeItem("sprig.sessionId"),e;const t=o.v4();return o.breadcrumbsLogger.info("GeneratedSessionID",{uuid:t}),t})(),se=()=>{o.sessionStorageHelper.setItem("sprig.disableReplayRecording","disabled")},C=()=>!!o.sessionStorageHelper.getItem("sprig.disableReplayRecording"),V=()=>!!o.sessionStorageHelper.getItem("sprig.isReplayPaused");window.addEventListener("beforeunload",()=>{o.breadcrumbsLogger.info("BeforeUnload",{sessionId:h}),o.sessionStorageHelper.setItem("sprig.sessionId",h)});const k=(e,t)=>{var n,r;if(!C()&&g.isRecording&&!V())try{(r=(n=window.rrwebRecord)==null?void 0:n.addCustomEvent)==null||r.call(n,e,t)}catch(a){O("Error recording custom event",a)}},vt=async e=>{const{x:t,xPath:n,y:r}=e,a=g.scrollEventUuids[n];if(a)return b(async()=>{var c,d,u,w;const s=await l.openDB(),i=await s.get("events",a);if(i!=null&&i.event){const p=JSON.parse(i.event),f=t>((d=(c=p.data)==null?void 0:c.payload)==null?void 0:d.x),m=r>((w=(u=p.data)==null?void 0:u.payload)==null?void 0:w.y);if(!f&&!m)return null;f&&(p.data.payload.x=t),m&&(p.data.payload.y=r),p.data.payload.elementAttributes=e.elementAttributes,i.event=JSON.stringify(p),await s.put("events",i)}else k("Sprig_Scroll",e)},"Error updating scroll event");k("Sprig_Scroll",e)},_e=()=>{g.stopRecording&&(g.stopRecording(),g.stopRecording=void 0),g.isRecording=!1,["cleanupInterval","inactivityInterval","pendingCheckInterval"].forEach(e=>{g[e]&&(clearInterval(g[e]),g[e]=void 0)}),K&&(window.removeEventListener("click",xe,R),window.removeEventListener("pointerdown",Me,R),window.removeEventListener("mousedown",Be,R),window.removeEventListener("keydown",Ue,R),window.removeEventListener("scroll",Le,R),K=!1),pe.forEach(e=>{var t;(t=e.source)==null||t.postMessage({type:gt},{targetOrigin:e.origin})})},bt=["did not allow mutations","called in an invalid security context"],St=(e,t,{reportError:n=!0,extraInfo:r={}})=>{if(!C()&&t instanceof Error){if(se(),t.name==="VersionError")return o.breadcrumbsLogger.error("VersionErr",{message:e}),void l.deleteDB();(a=>{if(!a)return!0;for(const s of bt)if(a.toLowerCase().includes(s))return!1;return!0})(t==null?void 0:t.message)&&(n&&window.UserLeap.reportError(e,t,r),l.clearAll())}},O=(e,t,{reportError:n}={reportError:!0})=>{_e(),o.breadcrumbsLogger.error("ReplayErr",{code:t.code,name:t.name}),St(e,t,{reportError:n})},b=async(e,t)=>{try{return await e()}catch(n){O(t,n)}},oe=()=>{g.isRecording&&(b(()=>{var e,t;return(t=(e=window.rrwebRecord)==null?void 0:e.takeFullSnapshot)==null?void 0:t.call(e,!0)},"Error recording full snapshot"),pe.forEach(e=>{var t;(t=e.source)==null||t.postMessage({type:pt},{targetOrigin:e.origin})}))};let Q=0;(async()=>Ae()&&Promise.allSettled([re("replayStorage"),re("sprig.replay")]))();const l=new class{constructor(){N(this,"wrapTransactionWithCounter",e=>{var r,a;const t=(a=(r=window.Sprig)==null?void 0:r._config)==null?void 0:a.outstandingTransactionLimit,n=t===void 0?100:t;if(n&&Q>n){const s="Too many outstanding transactions";O(s,new Error(s),{reportError:!1})}Q++,e.done.finally(()=>{Q--})});N(this,"getTransaction",async e=>{const t=(await this.openDB()).transaction(e,"readwrite");return this.wrapTransactionWithCounter(t),t})}openDB(){return function(e,t,{blocked:n,upgrade:r,blocking:a,terminated:s}={}){const i=indexedDB.open(e,t),c=x(i);return r&&(i.onupgradeneeded=d=>{r(x(i.result),d.oldVersion,d.newVersion,x(i.transaction),d)}),n&&(i.onblocked=d=>n(d.oldVersion,d.newVersion,d)),c.then(d=>{s&&(d.onclose=()=>s()),a&&(d.onversionchange=u=>a(u.oldVersion,u.newVersion,u))}).catch(()=>{}),c}("sprigReplay",1,{upgrade:(e,t,n)=>{if(n===0&&o.sessionStorageHelper.setItem("sprig.pendingCount","0"),!e.objectStoreNames.contains("events")){const r=e.createObjectStore("events",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+timestamp]",["sessionId","timestamp"])}if(!e.objectStoreNames.contains("chunkUploads")){const r=e.createObjectStore("chunkUploads",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+status]",["sessionId","status"]),r.createIndex("[uploadId+status]",["uploadId","status"]),r.createIndex("[sessionId+status+uploadId]",["sessionId","status","uploadId"])}if(!e.objectStoreNames.contains("pendingCaptures")){const r=e.createObjectStore("pendingCaptures",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+targetTimestamp]",["sessionId","targetTimestamp"])}}})}async deleteDB(){try{await re("sprigReplay")}catch{}}async bulkAdd(e,t){const n=await this.getTransaction(e);return Promise.all([...t.map(r=>n.store.add(r)),n.done])}async clearAll(){const e=(await this.openDB()).transaction(["events","chunkUploads","pendingCaptures"],"readwrite");return this.wrapTransactionWithCounter(e),Promise.all([e.objectStore("events").clear(),e.objectStore("chunkUploads").clear(),e.objectStore("pendingCaptures").clear()])}async deleteBySessionId(e,t){const n=IDBKeyRange.only(t),r=await this.getTransaction(e),a=r.store.index("sessionId");for await(const s of a.iterate(n))await s.delete();await r.done}async updatePartial(e,t,n){const r=await this.getTransaction(e),a=await r.store.get(t);a&&await r.store.put({...a,...n}),await r.done}async deleteRowsBefore(e,t,n=()=>!0){const r=IDBKeyRange.upperBound(t,!0),a=await this.getTransaction(e),s=a.store.index("timestamp");for await(const i of s.iterate(r))n(i.value)&&await i.delete();await a.done}async getEventsBetween(e,t=Date.now()){if(e>=t)return Promise.resolve([]);const n=IDBKeyRange.bound([h,e],[h,t],!1,!0);return(await this.openDB()).getAllFromIndex("events","[sessionId+timestamp]",n)}async updateEventsExpiredAt(e,t,n=30){const r=new Date,a=r.setMinutes(r.getMinutes()+(n??30)),s=await this.getTransaction("events"),i=s.store.index("[sessionId+timestamp]"),c=IDBKeyRange.bound([h,e],[h,t],!1,!0);for await(const d of i.iterate(c))await d.update({...d.value,expiredAt:a});await s.done}async deleteChunkUploads(e,t){const n=IDBKeyRange.only([t,e]),r=await this.getTransaction("chunkUploads");let s=await r.store.index("[uploadId+status]").openCursor(n);for(;s;)s.delete(),s=await s.continue();await r.done}async getChunkUploadsByStatus({sessionId:e,status:t,uploadId:n}){const r=(await this.openDB()).transaction("chunkUploads","readonly");this.wrapTransactionWithCounter(r);const a=n?r.store.index("[uploadId+status]"):r.store.index("[sessionId+status]"),s=n?IDBKeyRange.only([n,t]):IDBKeyRange.only([e,t]);return a.getAll(s)}async getPendingCaptures(e={}){return(await(await this.openDB()).getAllFromIndex("pendingCaptures","sessionId",h)).filter(n=>!e.beforePresent||n.targetTimestamp<Date.now()).filter(n=>!e.isBeforeType||n.captureParams.replayParams.replayDurationType==="before").filter(n=>!e.isHeatmap||(n.captureParams.isHeatmap??!1))}async markPendingCaptureToCanUpload(e){const t=await this.getTransaction("pendingCaptures"),n=t.store.index("sessionId");for await(const r of n.iterate(h)){const a=r.value;a.captureParams.responseGroupId===e&&await r.update({...a,canUpload:!0})}await t.done}async markPendingHeatmapsReady(e){if(parseInt(o.sessionStorageHelper.getItem("sprig.pendingCount")??"0")===0)return null;const t=Date.now(),n=await this.getTransaction("pendingCaptures"),r=n.store.index("sessionId");for await(const a of r.iterate(h)){const s=a.value;!s.captureParams.isHeatmap||e&&!e.includes(s.uuid)||await a.update({...s,targetTimestamp:t,captureParams:{...s.captureParams,triggerTimestamp:t,replayParams:{...s.captureParams.replayParams,replayDurationSeconds:Math.floor((t-s.timestamp)/1e3)}}})}await n.done}},U=[];let F,He,M=[],_=!1,A=0,W=!1,Ne=!1;const me=[];let J,Oe,G,Fe,X=!1;const H=()=>W&&!_&&Date.now()<=J,Dt=({apiUrl:e,config:t,triggerSnapshot:n,forceInit:r=!1})=>{W&&!r||(o.sessionStorageHelper.isStorageAvailable?(M=[],me.splice(0),U.splice(0),A=0,G=n,He=e,F={responseGroupUuid:t.responseGroupUuid,surveyId:t.surveyId,userAgent:t.userAgent,sdkVersion:t.sdkVersion},Oe=t.maxDurationSeconds,Pt(),W||(Fe=window.setInterval(Ct,500)),W=!0):_=!0)},Et=[T.Drag,T.Input,T.MediaInteraction,T.MouseInteraction,T.MouseMove,T.Scroll,T.Selection,T.TouchMove],Rt=e=>e.type===L.Custom||e.type===L.IncrementalSnapshot&&Et.includes(e.data.source),we=e=>e.some(Rt),Ct=async()=>{if(!H())return void window.clearInterval(Fe);if(je(),!we(U))return;const e=U[0].timestamp;Date.now()-e>35e3&&(G==null||G())},je=async()=>{if(M.length||X)return;X=!0;const e=await kt();if(!e)return void(_=!0);me.splice(0,e.length).forEach(t=>t(e.shift())),e.forEach(t=>M.push(t)),X=!1},Pt=()=>{const e=o.sessionStorageHelper.getItem("sprig.alwayson.info");if(e){o.breadcrumbsLogger.info("Read stored session state",e);const t=JSON.parse(e);_=t.disabled,F=t.metadata,M=t.uploadUrls,A=t.currentIndex,J=t.expirationTimestamp,t.pendingEventTimestamp&&(o.breadcrumbsLogger.info(`Uploading with pending timestamp: ${t.pendingEventTimestamp}`),Tt(t.pendingEventTimestamp))}else J=1e3*Oe+Date.now()},Tt=async e=>{const t=Date.now(),n=(await l.getEventsBetween(e,t)).map(a=>JSON.parse(a.event));if(!we(n))return;Ke(n);const r=await $e();r&&await Ge(r,n)},We=async(e,t)=>{try{const n=await e();if(!n.ok)throw new Error(`Error ${t}`);return n}catch{_=!0}},Ge=async(e,t)=>{if(!H()||!e)return;const n=await(async r=>{const a=new TextEncoder,s=new CompressionStream("gzip"),i=s.writable.getWriter(),c=a.encode(JSON.stringify(r));return i.write(c),i.close(),new Uint8Array(await new Response(s.readable).arrayBuffer())})(t);o.breadcrumbsLogger.info("Uploading always-on events with presigned url"),await We(()=>o.sprigFetch(e,{body:n,method:"PUT"}),"uploading always-on with presigned url")},kt=async()=>{if(!H())return;const{surveyId:e,responseGroupUuid:t}=F,n={responseGroupUuid:t,surveyId:e,index:A+1};o.breadcrumbsLogger.info("Fetching always-on upload urls",n);const r=await We(()=>o.sprigFetch(`${He}/sdk/1/replayUrls`,{method:"POST",body:JSON.stringify(n),headers:o.getHttpHeaders(window.UserLeap)}),"fetching always-on signed urls");if(!r)return;const a=r.json.signedUrls;return o.breadcrumbsLogger.info("Fetched more always-on upload urls",{body:n,urls:a}),a},$e=async()=>{if(M.length)return M.shift();const e=new Promise(t=>{me.push(t)});return je(),e},Ke=e=>{var a,s,i;const t=e.length?e[e.length-1].timestamp:Date.now(),n=A,r=((s=(a=window.UserLeap)==null?void 0:a.config)==null?void 0:s.customMetadata)??((i=window.__cfg)==null?void 0:i.customMetadata);A++,e.push({timestamp:t,type:L.Custom,data:{tag:"Sprig_Meta",payload:{...F,index:n,visitorId:window.UserLeap.visitorId??"",timestamp:t,customMetadata:r}}})},Ut=(e,t)=>{H()&&!Ne&&(e||U.length)&&(e&&U.length&&(async()=>{const n=U.splice(0);if(!we(n))return;o.breadcrumbsLogger.info("Capturing always-on event array to upload"),Ke(n);const r=await $e();r&&await Ge(r,n)})(),U.push(t))};window.addEventListener("beforeunload",async()=>{Ne=!0,H()&&(o.breadcrumbsLogger.info("Always On handle page unload"),(()=>{let e;U.length&&(e=U[0].timestamp);const t={disabled:_,metadata:F,uploadUrls:M,currentIndex:A,pendingEventTimestamp:e,expirationTimestamp:J};o.breadcrumbsLogger.info("Storing session state on unload",t),o.sessionStorageHelper.setItem("sprig.alwayson.info",JSON.stringify(t))})())});const Ve=async(e,t)=>{const n=performance.now();let r;try{r=await e()}finally{const a=performance.now()-n;let s=o.PerformanceMetrics[t];s||(s=o.registerMetric(t)),s.report(a/1e3)}return r},Je=(e,t)=>{const n=performance.now();try{e()}finally{const r=performance.now()-n;let a=o.PerformanceMetrics[t];a||(a=o.registerMetric(t)),a.report(r/1e3)}};let qe=5e3,ie=6e4,de=0,B,ce=!1,ue=[];const Lt=e=>{var t,n,r,a;if((t=e.event)!=null&&t.includes("Sprig_Scroll")){const s=(a=(r=(n=JSON.parse(e.event))==null?void 0:n.data)==null?void 0:r.payload)==null?void 0:a.xPath;if(!s)return;g.scrollEventUuids[s]=e.uuid}ue.push(e),ce||xt()},xt=()=>{ce=!0,setTimeout(async()=>{if(C()||V())return;const e=ue;ue=[],ce=!1,Je(async()=>{await(async t=>{const n=t.map(r=>({...r,sessionId:r.sessionId??h}));if(n.length!==0)return b(()=>l.bulkAdd("events",n),"Error storing replay events")})(e)},"sdk_replay_add_event_batch_seconds")},500)},Bt=(e,t,n)=>{g.cleanupInterval=window.setInterval(()=>{const r=Date.now();Ve(()=>b(async()=>{C()||await Promise.all([l.deleteRowsBefore("events",r-1e3*e,a=>a.expiredAt===void 0||a.expiredAt<r-1e3*e),l.deleteRowsBefore("chunkUploads",r-1e3*t),l.deleteRowsBefore("pendingCaptures",r-1e3*n,a=>!a.canUpload)])},"Error deleting table rows"),"sdk_replay_cleanup_seconds"),o.breadcrumbsLogger.debug("CleanupComplete")},3e4)},Mt=()=>{g.pendingCheckInterval=window.setInterval(async()=>{b(async()=>{await le()},"Error initiating pending captures")},5e3)};let Y=!1;const le=async(e=!1)=>{if(!Y)try{Y=!0;const t=parseInt(B??"0");if(t===0)return;const n=await l.getPendingCaptures({beforePresent:!0,isBeforeType:e}),r=await l.openDB();await Promise.all(n.map(async a=>(await r.delete("pendingCaptures",a.uuid),Xe(a.captureParams,a.canUpload)))),B=(t-n.length).toString(),o.sessionStorageHelper.setItem("sprig.pendingCount",B)}finally{Y=!1}},At=async(e,t,n,r,a)=>{const s=Math.min(e+a,n),i=await Ve(()=>l.getEventsBetween(e,s),"sdk_replay_get_events_between_seconds");if(!(i!=null&&i.length))return o.breadcrumbsLogger.debug("NoEventsFound"),{validStartFound:r,events:[]};if(!r){o.breadcrumbsLogger.debug("ValidStartSearch");let c=-1;return i==null||i.forEach((d,u)=>{if(!d.isValidStart)return;const w=d.timestamp<=t;(c<0||w)&&(c=u)}),c<0?(o.breadcrumbsLogger.debug("ValidStartNotFound"),{validStartFound:r,events:[]}):{validStartFound:!0,events:i==null?void 0:i.slice(c)}}return{validStartFound:r,events:i}},ze=e=>Promise.all(e.map(async t=>{const n=await(async r=>Ce.execute(async()=>{var i;o.breadcrumbsLogger.info("UploadChunkStart",{chunkIndex:r.chunkIndex,surveyId:r.surveyId});const a=await o.sprigFetch(r.uploadUrl,{body:r.data,method:"PUT"});o.breadcrumbsLogger.http("UploadChunkEnd",{url:r.uploadUrl,method:"PUT",status_code:a.status,reason:a.statusText??"OK",chunkIndex:r.chunkIndex,surveyId:r.surveyId});const s=(i=a.headers)==null?void 0:i.get("ETag");if(!s)throw new Error(`Upload response did not include etag for upload ${r.uploadId}, part ${r.chunkIndex}`);return s}))(t);return await l.updatePartial("chunkUploads",t.uuid,{data:null,etag:n,status:"UploadComplete"}),t.uploadId})),Qe=async e=>{const t=await l.getChunkUploadsByStatus({status:"UploadComplete",uploadId:e});if(!(t!=null&&t.length))return void o.breadcrumbsLogger.info("NoChunksForUpload",{uploadId:e});const n=t.reduce((s,i)=>(s.find(c=>c.chunkIndex===i.chunkIndex)||s.push(i),s),[]);n.sort((s,i)=>s.chunkIndex-i.chunkIndex);const r=n.map(s=>({ETag:s.etag,PartNumber:s.chunkIndex})).filter(s=>s.ETag!==null),a=n[0];await Pe({apiUrl:a.apiUrl,surveyId:a.surveyId,uploadId:e,responseGroupUuid:a.responseGroupId,etags:r,headers:a.completeUploadHeaders,replayDuration:a.replayDuration}),await l.deleteChunkUploads("UploadComplete",e)},_t=()=>{b(async()=>{const e=await l.getChunkUploadsByStatus({sessionId:h,status:"ReadyForUpload"});if(!(e!=null&&e.length))return;const t=await ze(e);t!=null&&t.length&&await Promise.all(t.map(n=>{if(n)return Qe(n)}))},"Error uploading unfinished chunks")},Ht=async(e,t)=>{const n=t??Date.now();return(async(r,a)=>{const s=new TextEncoder;let i=null;const c=new CompressionStream("gzip"),d=c.writable.getWriter();let u=!1,w=!1,[p,f]=[0,0],m=[];for(let P=r-35e3;P<a;P+=ie){if({validStartFound:w,events:m}=await At(P,r,a,w,ie),!(m!=null&&m.length)){o.breadcrumbsLogger.debug("NoEventsFound");continue}p===0&&(p=m[0].timestamp),f=m[m.length-1].timestamp;const y=m.map(E=>E.event);y.push(`{"timestamp":${a}}`);const I=`${u?",":"["}${y}`,v=s.encode(I);Je(()=>{d.write(v)},"sdk_replay_compression_seconds"),u=!0}if(f-p<qe)return o.breadcrumbsLogger.debug("ReplayTooShort"),null;const D=s.encode("]");return d.write(D),d.close(),i=new Uint8Array(await new Response(c.readable).arrayBuffer()),i})(n-e,n)},De=async e=>{const{surveyId:t,responseGroupId:n,visitorId:r,apiUrl:a,completeUploadHeaders:s,replayParams:i,triggerTimestamp:c}=e,d=await Ht(1e3*i.replayDurationSeconds,c);if(!(d!=null&&d.length))return void o.breadcrumbsLogger.info("FileDataEmpty",{surveyId:t});const u=((p,f,m)=>{const D=p.length,P=1024*f*1024,y=Math.ceil(D/m),I=Math.max(P,y),v=[];let E=0;for(;E<D;)v.push(p.slice(E,E+I)),E+=I;return v})(d,i.minimumChunkSizeMb,i.signedUrls.length),w=await Promise.all(u.map(async(p,f)=>{const m=o.v4(),D={apiUrl:a,chunkIndex:f+1,completeUploadHeaders:s,etag:null,responseGroupId:n,status:"ReadyForUpload",surveyId:t,timestamp:c,totalChunks:u.length,data:p,uploadId:i.uploadId,uploadUrl:i.signedUrls[f].url,uuid:m,visitorId:r};return await(await l.openDB()).add("chunkUploads",{...D,sessionId:D.sessionId??h}),D}));await(async(p,f)=>{await ze(f),await Promise.all(p.map(m=>Qe(m)))})([i.uploadId],w)},Xe=async(e,t)=>{if(C())return o.breadcrumbsLogger.debug("ReplayDisabled-ScheduleOrCapture");const{isHeatmap:n,isStandalone:r,replayParams:a,triggerTimestamp:s,responseGroupId:i}=e,c=async()=>{setTimeout(()=>o.eventEmitter.removeListener(o.SprigEvent.QuestionAnswered,c),0),b(async()=>{a.replayDurationType==="before"?await De(e):await l.markPendingCaptureToCanUpload(i)},"Error in schedule/capture callback")};b(async()=>{if(a.replayDurationType==="after"||a.replayDurationType==="beforeAndAfter")return!r&&!n&&o.eventEmitter.on(o.SprigEvent.QuestionAnswered,c),void await Ze(e);if(r||n||t)await De(e),n&&Nt();else{const d=35+a.replayDurationSeconds,u=s-1e3*d,w=s;await l.updateEventsExpiredAt(u,w,a.expirationTimeLimitMinutes),o.eventEmitter.on(o.SprigEvent.QuestionAnswered,c)}},"Error in scheduling/capturing replay")},Nt=async()=>{parseInt(B??"0")||o.sessionStorageHelper.removeItem("sprig.isCapturingHeatmap"),o.sessionStorageHelper.getItem("sprig.teardownAfterCapture")&&(_e(),Ye(),o.sessionStorageHelper.removeItem("sprig.teardownAfterCapture"))},Ye=async()=>C()?o.breadcrumbsLogger.debug("ReplayDisabled-ClearData"):Promise.all([l.deleteBySessionId("events",h),l.deleteBySessionId("pendingCaptures",h)]).catch(e=>{O("Error clearing user replay data",e)}),Ze=async e=>{if(C())return;const{isHeatmap:t,surveyId:n}=e,r=await l.getPendingCaptures(),a=r==null?void 0:r.filter(d=>d.captureParams.surveyId===n);if(a!=null&&a.length)return void o.breadcrumbsLogger.info("PendingCaptureExists",{surveyId:n});t&&(oe(),o.sessionStorageHelper.setItem("sprig.isCapturingHeatmap","true"),de=Date.now(),g.inactivityInterval||(g.inactivityInterval=window.setInterval(()=>{var d;d=de,Date.now()-d>=3e4&&b(()=>l.markPendingHeatmapsReady(),"Error in heatmap inactivity")},1e3)));const s={...e,replayParams:{...e.replayParams}};e.replayParams.replayDurationType==="beforeAndAfter"&&(s.replayParams.replayDurationSeconds*=2),s.replayParams.replayDurationType="before";const i=e.triggerTimestamp+1e3*e.replayParams.replayDurationSeconds;s.triggerTimestamp=i,B=(parseInt(B??"0")+1).toString(),o.sessionStorageHelper.setItem("sprig.pendingCount",B),await(await l.openDB()).add("pendingCaptures",{canUpload:!1,captureParams:s,sessionId:h,targetTimestamp:i,timestamp:Date.now(),uuid:o.v4()})},Ot=Object.freeze(Object.defineProperty({__proto__:null,RecordEvent:e=>{k("Sprig_TrackEvent",e)},RecordPageView:e=>{e.description&&(e.description=ge(e.description)),k("Sprig_PageView",e)},RecordSurveyShown:e=>{k("Sprig_ShowSurvey",e)},_completeSessionReplay:async({surveyId:e,responseGroupUuid:t,eventDigest:n,headers:r})=>{if(!e||!t)return!1;const a=window.UserLeap._API_URL,s=await Pe({surveyId:e,responseGroupUuid:t,eventDigest:n,apiUrl:a,headers:r},!0);return!(s!=null&&s.error)},checkPendingHeatmapsUrl:()=>C()?o.breadcrumbsLogger.debug("ReplayDisabled-PendingHeatmaps"):b(async()=>{const e=(await l.getPendingCaptures({isHeatmap:!0})).map(t=>({eventId:t.captureParams.eventId,uuid:t.uuid})).filter(({eventId:t})=>!o.checkUrlStillMatching(t)).map(({uuid:t})=>t);return o.breadcrumbsLogger.info("PendingHeatmapsToComplete",{count:e.length}),e.length&&(await l.markPendingHeatmapsReady(e),o.breadcrumbsLogger.info("MarkedPendingHeatmapsReady")),e.length},"Error marking pending heatmaps ready"),clearUserReplayData:Ye,disableRecording:O,initializeReplay:async({maxReplayDurationSeconds:e,maxInflightRequests:t=2,replaySettings:n,teardownAfter:r=!1,apiUrl:a,alwaysOnConfig:s})=>{if(s&&Dt({apiUrl:a,config:s,triggerSnapshot:()=>{oe()}}),B=o.sessionStorageHelper.getItem("sprig.pendingCount"),g.isRecording)return;if(r&&o.sessionStorageHelper.setItem("sprig.teardownAfterCapture","true"),C())return o.breadcrumbsLogger.debug("ReplayDisabled");if(await(async()=>{var d;if(!Ae())return!0;if((d=window.navigator.storage)!=null&&d.estimate)try{const{quota:u=0,usage:w=0}=await window.navigator.storage.estimate(),p=(u-w)/1024**3;return o.breadcrumbsLogger.info("Storage",{availableGb:p}),p<.5}catch{return!0}return!1})())return o.breadcrumbsLogger.debug("IDBNotSupported"),se();try{const d=await l.openDB();o.breadcrumbsLogger.info("DBVersion",{version:d.version})}catch(d){return o.breadcrumbsLogger.error("ReplayOpenErr",{name:d.name}),d.name==="VersionError"&&l.deleteDB(),se()}b(async()=>{await le(!0)},"Error uploading ready pending captures");const i=H()?30:0,c=Math.max(e??0,i);if(!c)return o.breadcrumbsLogger.debug("MissingDuration");o.breadcrumbsLogger.debug("ReplayInit"),await b(async()=>{var d;n!=null&&n.minDuration&&(qe=n.minDuration),n!=null&&n.batchDuration&&(ie=n.batchDuration),d=t,Ce.setLimit(d),_t(),Bt(c+35,1800,c+35),Mt();const u=window.UserLeap.replayLibraryURL??"https://cdn.sprig.com/dependencies/record.min.js";if(!window.rrwebRecord){const{record:y}=await import(u);window.rrwebRecord=y}const w=window.rrwebRecord;if(!w)return o.breadcrumbsLogger.error("RecordScriptFailed");let p=!0,f=0;const m={checkoutEveryNms:3e4,sampling:{input:"last",scroll:250,media:800},...n,mutationQueueEnabled:n==null?void 0:n.enableMutationQueue};var D,P;g.stopRecording=w({emit:(y,I)=>{if(y.type===L.Custom&&(de=Date.now()),C()||V())return;if(I&&y.type===L.Meta)f=performance.now();else if(I&&f&&y.type===L.FullSnapshot){const E=performance.now()-f;o.reportAndRegister("sdk_replay_snapshot_seconds",E/1e3)}const v=p||!!I&&y.type===L.Meta;p=!1,Ut(v,y),Lt({uuid:o.v4(),event:JSON.stringify(y),isValidStart:v,timestamp:Date.now()})},...m}),g.isRecording=!!g.stopRecording,g.isRecording&&(((y,I)=>{window.addEventListener("message",v=>{var E;v.data.type===ut&&(pe.push({source:v.source,origin:v.origin}),(E=v.source)==null||E.postMessage({type:lt,settings:y,replayLibraryUrl:I},{targetOrigin:v.origin}))})})(m,u),o.eventEmitter.on("survey.complete",y=>{var I;I={id:y,userAgent:window.navigator.userAgent},k("Sprig_SubmitSurvey",I)}),D=k,P=vt,K||(S=D,j=P,window.addEventListener("click",xe,R),window.addEventListener("pointerdown",Me,R),window.addEventListener("mousedown",Be,R),window.addEventListener("keydown",Ue,R),window.addEventListener("scroll",Le,R),K=!0,ht(),It()))},"Error initializing replay")},isReplayPaused:V,isReplayRecording:()=>g.isRecording,recordFullSnapshot:oe,recordReplayPaused:()=>{k("Sprig_ReplayPaused",{timestamp:Date.now()}),o.sessionStorageHelper.setItem("sprig.isReplayPaused","true")},recordReplayResumed:()=>{o.sessionStorageHelper.removeItem("sprig.isReplayPaused"),k("Sprig_ReplayResumed",{timestamp:Date.now()})},scheduleCapture:Ze,scheduleOrCaptureReplay:Xe,tryReplayAction:b,uploadReadyPendingCaptures:le},Symbol.toStringTag,{value:"Module"}));o.registerReplay(Ot);
1
+ "use strict";var et=Object.defineProperty;var tt=(e,t,n)=>t in e?et(e,t,{enumerable:!0,configurable:!0,writable:!0,value:n}):e[t]=n;var N=(e,t,n)=>tt(e,typeof t!="symbol"?t+"":t,n);const o=require("./metricsReporter-0SKeVvnG.cjs"),nt=require("./debounce-DsC7462b.cjs");var L=(e=>(e[e.DomContentLoaded=0]="DomContentLoaded",e[e.Load=1]="Load",e[e.FullSnapshot=2]="FullSnapshot",e[e.IncrementalSnapshot=3]="IncrementalSnapshot",e[e.Meta=4]="Meta",e[e.Custom=5]="Custom",e[e.Plugin=6]="Plugin",e))(L||{}),T=(e=>(e[e.Mutation=0]="Mutation",e[e.MouseMove=1]="MouseMove",e[e.MouseInteraction=2]="MouseInteraction",e[e.Scroll=3]="Scroll",e[e.ViewportResize=4]="ViewportResize",e[e.Input=5]="Input",e[e.TouchMove=6]="TouchMove",e[e.MediaInteraction=7]="MediaInteraction",e[e.StyleSheetRule=8]="StyleSheetRule",e[e.CanvasMutation=9]="CanvasMutation",e[e.Font=10]="Font",e[e.Log=11]="Log",e[e.Drag=12]="Drag",e[e.StyleDeclaration=13]="StyleDeclaration",e[e.Selection=14]="Selection",e[e.AdoptedStyleSheet=15]="AdoptedStyleSheet",e[e.CustomElement=16]="CustomElement",e))(T||{});const Z=(e,t)=>t.some(n=>e instanceof n);let ye,fe;const ee=new WeakMap,q=new WeakMap,$=new WeakMap;let te={get(e,t,n){if(e instanceof IDBTransaction){if(t==="done")return ee.get(e);if(t==="store")return n.objectStoreNames[1]?void 0:n.objectStore(n.objectStoreNames[0])}return x(e[t])},set:(e,t,n)=>(e[t]=n,!0),has:(e,t)=>e instanceof IDBTransaction&&(t==="done"||t==="store")||t in e};function Ee(e){te=e(te)}function rt(e){return(fe||(fe=[IDBCursor.prototype.advance,IDBCursor.prototype.continue,IDBCursor.prototype.continuePrimaryKey])).includes(e)?function(...t){return e.apply(ne(this),t),x(this.request)}:function(...t){return x(e.apply(ne(this),t))}}function at(e){return typeof e=="function"?rt(e):(e instanceof IDBTransaction&&function(t){if(ee.has(t))return;const n=new Promise((r,a)=>{const s=()=>{a(t.error||new DOMException("AbortError","AbortError"))};t.oncomplete=()=>{r()},t.onerror=s,t.onabort=s});ee.set(t,n)}(e),Z(e,ye||(ye=[IDBDatabase,IDBObjectStore,IDBIndex,IDBCursor,IDBTransaction]))?new Proxy(e,te):e)}function x(e){if(e instanceof IDBRequest)return function(n){const r=new Promise((a,s)=>{n.onsuccess=()=>{a(x(n.result))},n.onerror=()=>{s(n.error)}});return $.set(r,n),r}(e);if(q.has(e))return q.get(e);const t=at(e);return t!==e&&(q.set(e,t),$.set(t,e)),t}const ne=e=>$.get(e);function re(e,{blocked:t}={}){const n=indexedDB.deleteDatabase(e);return t&&(n.onblocked=r=>t(r.oldVersion,r)),x(n).then(()=>{})}const st=["get","getKey","getAll","getAllKeys","count"],ot=["put","add","delete","clear"],z=new Map;function he(e,t){if(!(e instanceof IDBDatabase)||t in e||typeof t!="string")return;if(z.get(t))return z.get(t);const n=t.replace(/FromIndex$/,""),r=t!==n,a=ot.includes(n);if(!(n in(r?IDBIndex:IDBObjectStore).prototype)||!a&&!st.includes(n))return;const s=async function(i,...c){const d=this.transaction(i,a?"readwrite":"readonly");let u=d.store;return r&&(u=u.index(c.shift())),(await Promise.all([u[n](...c),a&&d.done]))[0]};return z.set(t,s),s}Ee(e=>({...e,get:(t,n,r)=>he(t,n)||e.get(t,n,r),has:(t,n)=>!!he(t,n)||e.has(t,n)}));const it=["continue","continuePrimaryKey","advance"],Ie={},ae=new WeakMap,Re=new WeakMap,dt={get(e,t){if(!it.includes(t))return e[t];let n=Ie[t];return n||(n=Ie[t]=function(...r){ae.set(this,Re.get(this)[t](...r))}),n}};async function*ct(...e){let t=this;if(t instanceof IDBCursor||(t=await t.openCursor(...e)),!t)return;const n=new Proxy(t,dt);for(Re.set(n,t),$.set(n,ne(t));t;)yield n,t=await(ae.get(n)||t.continue()),ae.delete(n)}function ve(e,t){return t===Symbol.asyncIterator&&Z(e,[IDBIndex,IDBObjectStore,IDBCursor])||t==="iterate"&&Z(e,[IDBIndex,IDBObjectStore])}Ee(e=>({...e,get:(t,n,r)=>ve(t,n)?ct:e.get(t,n,r),has:(t,n)=>ve(t,n)||e.has(t,n)}));const ut="sprigReplayIframeLoaded",lt="sprigReplayIframeSettings",pt="sprigReplayIframeTakeFullSnapshot",gt="sprigReplayTeardown",pe=[],Ce=new class{constructor(e){N(this,"awaitingResolvers",[]);N(this,"activeCount",0);this.capacity=e}async acquire(){if(!(this.activeCount<this.capacity))return new Promise(e=>{this.awaitingResolvers.push(e)});this.activeCount++}release(){const e=this.awaitingResolvers.shift();e&&this.activeCount<=this.capacity?e():this.activeCount--}async execute(e){try{return await this.acquire(),await e()}finally{this.release()}}setLimit(e){this.capacity=e}}(2),Pe=async({apiUrl:e,surveyId:t,uploadId:n,etags:r,headers:a,responseGroupUuid:s,replayDuration:i,eventDigest:c},d=!1)=>{var w;if(!d&&!n&&!r)return void o.breadcrumbsLogger.error("UploadErr",{isMobile:d,uploadId:n,etags:r});o.breadcrumbsLogger.info("MarkUploadComplete",{surveyId:t});const u=await o.sprigFetch(`${e}/sdk/1/completeSessionReplay`,{method:"POST",body:JSON.stringify({etags:r,uploadId:n,responseGroupUuid:s,surveyId:t,replayDuration:i,eventDigest:c,userAgent:(w=window==null?void 0:window.navigator)==null?void 0:w.userAgent}),headers:a,shouldRetryRequest:!0});return o.breadcrumbsLogger.info("MarkUploadDone",{surveyId:t}),u},mt=e=>{if(e instanceof Attr)return null;let t=1;for(let n=e.previousSibling;n;n=n.previousSibling)n.nodeName===e.nodeName&&++t;return t},Te=e=>{if(e===null)return"";const t=[];if(e instanceof Document)return"/";for(let n=e;n&&!(n instanceof Document)&&n!==null;n=n instanceof Attr?n.ownerElement:n.parentElement){const r=t[t.length]={name:void 0,position:null};switch(n.nodeType){case Node.TEXT_NODE:r.name="text()";break;case Node.ATTRIBUTE_NODE:r.name="@"+n.nodeName;break;case Node.PROCESSING_INSTRUCTION_NODE:r.name="processing-instruction()";break;case Node.COMMENT_NODE:r.name="comment()";break;case Node.ELEMENT_NODE:r.name=n.nodeName}r.position=mt(n)}return"/"+t.reverse().map(n=>n.position!==null?`/${n.name}[${n.position}]`:`/${n.name}`).join("")},ge=e=>e&&e.trim().substring(0,500).replace(/\s\s+/g," ").replace(/\r?\n|\r/g," ").substring(0,250),R={capture:!0,passive:!0},wt=["a","button","input","option","li","link"],yt=["Escape","Enter","Backspace","F5","Tab"];let K=!1,S=null,j=null;const be=e=>{var n;if(((n=e.tagName)==null?void 0:n.toLowerCase())==="html")return{element:"html"};const t={};return t.element=(r=>{if(!r.tagName)return"No tagName";const a=r.getAttribute("type");return a?`${a} ${r.tagName.toLowerCase()}`:r.tagName.toLowerCase()})(e),t},ft=e=>{var r;if(!e)return{};const t={...be(e)},n=e.parentElement;if(n&&wt.includes((r=n.tagName)==null?void 0:r.toLowerCase())){const a=be(n);Object.assign(t,a)}return t},ke=(e,t)=>{var a,s;let n=t.target;var r;t.target===((a=window.document)==null?void 0:a.body)&&window.Sprig.pointerDownTarget&&(n=window.Sprig.pointerDownTarget),r={x:t.x,y:t.y,type:e,elementAttributes:ft(n),windowHeight:window.innerHeight,windowWidth:window.innerWidth,...n instanceof HTMLElement||n instanceof SVGElement||n instanceof MathMLElement?{rect:n==null?void 0:n.getBoundingClientRect(),xPath:Te(n)}:{}},(s=r==null?void 0:r.elementAttributes)!=null&&s.text&&(r.elementAttributes.text=ge(r.elementAttributes.text)),S==null||S("Sprig_Click",r)},Ue=e=>{var t;yt.includes(e.key)&&(t={key:e.key},S==null||S("Sprig_Keystroke",t))},ht=()=>{var e;window.performance.getEntriesByType("navigation").map(t=>t.type).includes("reload")&&(e={url:window.location.href,currentPageTitle:document.title},S==null||S("Sprig_Refresh",e))},It=()=>{var e;window.performance.getEntriesByType("navigation").map(t=>t.type).includes("back_forward")&&((e={curUrl:window.location.href,fromUrl:document.referrer,currentPageTitle:document.title}).currentPageTitle&&(e.currentPageTitle=ge(e.currentPageTitle)),S==null||S("Sprig_BackForward",e))},Le=nt.debounce(e=>{if(!(e.target instanceof HTMLElement||e.target instanceof Document))return;let t=e.target;"scrollTop"in t||(t=t.documentElement),j==null||j({xPath:Te(t),x:t.scrollLeft,y:t.scrollTop,elementAttributes:{targetScrollWidth:t.scrollWidth,targetClientWidth:t.clientWidth,targetScrollHeight:t.scrollHeight,targetClientHeight:t.clientHeight}})},750),xe=(Se="left_click",e=>ke(Se,e));var Se;const Be=e=>{e.button===2&&ke("right_click",e)},Me=e=>{window.Sprig&&(window.Sprig.pointerDownTarget=e.target)},g={isRecording:!1,scrollEventUuids:{},stopRecording:()=>{}},Ae=()=>window.indexedDB&&window.IDBKeyRange&&window.CompressionStream,h=(()=>{const e=o.sessionStorageHelper.getItem("sprig.sessionId");if(e)return o.breadcrumbsLogger.info("SessionIDFound",{savedSessionId:e}),o.sessionStorageHelper.removeItem("sprig.sessionId"),e;const t=o.v4();return o.breadcrumbsLogger.info("GeneratedSessionID",{uuid:t}),t})(),se=()=>{o.sessionStorageHelper.setItem("sprig.disableReplayRecording","disabled")},C=()=>!!o.sessionStorageHelper.getItem("sprig.disableReplayRecording"),V=()=>!!o.sessionStorageHelper.getItem("sprig.isReplayPaused");window.addEventListener("beforeunload",()=>{o.breadcrumbsLogger.info("BeforeUnload",{sessionId:h}),o.sessionStorageHelper.setItem("sprig.sessionId",h)});const k=(e,t)=>{var n,r;if(!C()&&g.isRecording&&!V())try{(r=(n=window.rrwebRecord)==null?void 0:n.addCustomEvent)==null||r.call(n,e,t)}catch(a){O("Error recording custom event",a)}},vt=async e=>{const{x:t,xPath:n,y:r}=e,a=g.scrollEventUuids[n];if(a)return b(async()=>{var c,d,u,w;const s=await l.openDB(),i=await s.get("events",a);if(i!=null&&i.event){const p=JSON.parse(i.event),f=t>((d=(c=p.data)==null?void 0:c.payload)==null?void 0:d.x),m=r>((w=(u=p.data)==null?void 0:u.payload)==null?void 0:w.y);if(!f&&!m)return null;f&&(p.data.payload.x=t),m&&(p.data.payload.y=r),p.data.payload.elementAttributes=e.elementAttributes,i.event=JSON.stringify(p),await s.put("events",i)}else k("Sprig_Scroll",e)},"Error updating scroll event");k("Sprig_Scroll",e)},_e=()=>{g.stopRecording&&(g.stopRecording(),g.stopRecording=void 0),g.isRecording=!1,["cleanupInterval","inactivityInterval","pendingCheckInterval"].forEach(e=>{g[e]&&(clearInterval(g[e]),g[e]=void 0)}),K&&(window.removeEventListener("click",xe,R),window.removeEventListener("pointerdown",Me,R),window.removeEventListener("mousedown",Be,R),window.removeEventListener("keydown",Ue,R),window.removeEventListener("scroll",Le,R),K=!1),pe.forEach(e=>{var t;(t=e.source)==null||t.postMessage({type:gt},{targetOrigin:e.origin})})},bt=["did not allow mutations","called in an invalid security context"],St=(e,t,{reportError:n=!0,extraInfo:r={}})=>{if(!C()&&t instanceof Error){if(se(),t.name==="VersionError")return o.breadcrumbsLogger.error("VersionErr",{message:e}),void l.deleteDB();(a=>{if(!a)return!0;for(const s of bt)if(a.toLowerCase().includes(s))return!1;return!0})(t==null?void 0:t.message)&&(n&&window.UserLeap.reportError(e,t,r),l.clearAll())}},O=(e,t,{reportError:n}={reportError:!0})=>{_e(),o.breadcrumbsLogger.error("ReplayErr",{code:t.code,name:t.name}),St(e,t,{reportError:n})},b=async(e,t)=>{try{return await e()}catch(n){O(t,n)}},oe=()=>{g.isRecording&&(b(()=>{var e,t;return(t=(e=window.rrwebRecord)==null?void 0:e.takeFullSnapshot)==null?void 0:t.call(e,!0)},"Error recording full snapshot"),pe.forEach(e=>{var t;(t=e.source)==null||t.postMessage({type:pt},{targetOrigin:e.origin})}))};let Q=0;(async()=>Ae()&&Promise.allSettled([re("replayStorage"),re("sprig.replay")]))();const l=new class{constructor(){N(this,"wrapTransactionWithCounter",e=>{var r,a;const t=(a=(r=window.Sprig)==null?void 0:r._config)==null?void 0:a.outstandingTransactionLimit,n=t===void 0?100:t;if(n&&Q>n){const s="Too many outstanding transactions";O(s,new Error(s),{reportError:!1})}Q++,e.done.finally(()=>{Q--})});N(this,"getTransaction",async e=>{const t=(await this.openDB()).transaction(e,"readwrite");return this.wrapTransactionWithCounter(t),t})}openDB(){return function(e,t,{blocked:n,upgrade:r,blocking:a,terminated:s}={}){const i=indexedDB.open(e,t),c=x(i);return r&&(i.onupgradeneeded=d=>{r(x(i.result),d.oldVersion,d.newVersion,x(i.transaction),d)}),n&&(i.onblocked=d=>n(d.oldVersion,d.newVersion,d)),c.then(d=>{s&&(d.onclose=()=>s()),a&&(d.onversionchange=u=>a(u.oldVersion,u.newVersion,u))}).catch(()=>{}),c}("sprigReplay",1,{upgrade:(e,t,n)=>{if(n===0&&o.sessionStorageHelper.setItem("sprig.pendingCount","0"),!e.objectStoreNames.contains("events")){const r=e.createObjectStore("events",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+timestamp]",["sessionId","timestamp"])}if(!e.objectStoreNames.contains("chunkUploads")){const r=e.createObjectStore("chunkUploads",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+status]",["sessionId","status"]),r.createIndex("[uploadId+status]",["uploadId","status"]),r.createIndex("[sessionId+status+uploadId]",["sessionId","status","uploadId"])}if(!e.objectStoreNames.contains("pendingCaptures")){const r=e.createObjectStore("pendingCaptures",{keyPath:"uuid"});r.createIndex("sessionId","sessionId"),r.createIndex("timestamp","timestamp"),r.createIndex("[sessionId+targetTimestamp]",["sessionId","targetTimestamp"])}}})}async deleteDB(){try{await re("sprigReplay")}catch{}}async bulkAdd(e,t){const n=await this.getTransaction(e);return Promise.all([...t.map(r=>n.store.add(r)),n.done])}async clearAll(){const e=(await this.openDB()).transaction(["events","chunkUploads","pendingCaptures"],"readwrite");return this.wrapTransactionWithCounter(e),Promise.all([e.objectStore("events").clear(),e.objectStore("chunkUploads").clear(),e.objectStore("pendingCaptures").clear()])}async deleteBySessionId(e,t){const n=IDBKeyRange.only(t),r=await this.getTransaction(e),a=r.store.index("sessionId");for await(const s of a.iterate(n))await s.delete();await r.done}async updatePartial(e,t,n){const r=await this.getTransaction(e),a=await r.store.get(t);a&&await r.store.put({...a,...n}),await r.done}async deleteRowsBefore(e,t,n=()=>!0){const r=IDBKeyRange.upperBound(t,!0),a=await this.getTransaction(e),s=a.store.index("timestamp");for await(const i of s.iterate(r))n(i.value)&&await i.delete();await a.done}async getEventsBetween(e,t=Date.now()){if(e>=t)return Promise.resolve([]);const n=IDBKeyRange.bound([h,e],[h,t],!1,!0);return(await this.openDB()).getAllFromIndex("events","[sessionId+timestamp]",n)}async updateEventsExpiredAt(e,t,n=30){const r=new Date,a=r.setMinutes(r.getMinutes()+(n??30)),s=await this.getTransaction("events"),i=s.store.index("[sessionId+timestamp]"),c=IDBKeyRange.bound([h,e],[h,t],!1,!0);for await(const d of i.iterate(c))await d.update({...d.value,expiredAt:a});await s.done}async deleteChunkUploads(e,t){const n=IDBKeyRange.only([t,e]),r=await this.getTransaction("chunkUploads");let s=await r.store.index("[uploadId+status]").openCursor(n);for(;s;)s.delete(),s=await s.continue();await r.done}async getChunkUploadsByStatus({sessionId:e,status:t,uploadId:n}){const r=(await this.openDB()).transaction("chunkUploads","readonly");this.wrapTransactionWithCounter(r);const a=n?r.store.index("[uploadId+status]"):r.store.index("[sessionId+status]"),s=n?IDBKeyRange.only([n,t]):IDBKeyRange.only([e,t]);return a.getAll(s)}async getPendingCaptures(e={}){return(await(await this.openDB()).getAllFromIndex("pendingCaptures","sessionId",h)).filter(n=>!e.beforePresent||n.targetTimestamp<Date.now()).filter(n=>!e.isBeforeType||n.captureParams.replayParams.replayDurationType==="before").filter(n=>!e.isHeatmap||(n.captureParams.isHeatmap??!1))}async markPendingCaptureToCanUpload(e){const t=await this.getTransaction("pendingCaptures"),n=t.store.index("sessionId");for await(const r of n.iterate(h)){const a=r.value;a.captureParams.responseGroupId===e&&await r.update({...a,canUpload:!0})}await t.done}async markPendingHeatmapsReady(e){if(parseInt(o.sessionStorageHelper.getItem("sprig.pendingCount")??"0")===0)return null;const t=Date.now(),n=await this.getTransaction("pendingCaptures"),r=n.store.index("sessionId");for await(const a of r.iterate(h)){const s=a.value;!s.captureParams.isHeatmap||e&&!e.includes(s.uuid)||await a.update({...s,targetTimestamp:t,captureParams:{...s.captureParams,triggerTimestamp:t,replayParams:{...s.captureParams.replayParams,replayDurationSeconds:Math.floor((t-s.timestamp)/1e3)}}})}await n.done}},U=[];let F,He,M=[],_=!1,A=0,W=!1,Ne=!1;const me=[];let J,Oe,G,Fe,X=!1;const H=()=>W&&!_&&Date.now()<=J,Dt=({apiUrl:e,config:t,triggerSnapshot:n,forceInit:r=!1})=>{W&&!r||(o.sessionStorageHelper.isStorageAvailable?(M=[],me.splice(0),U.splice(0),A=0,G=n,He=e,F={responseGroupUuid:t.responseGroupUuid,surveyId:t.surveyId,userAgent:t.userAgent,sdkVersion:t.sdkVersion},Oe=t.maxDurationSeconds,Pt(),W||(Fe=window.setInterval(Ct,500)),W=!0):_=!0)},Et=[T.Drag,T.Input,T.MediaInteraction,T.MouseInteraction,T.MouseMove,T.Scroll,T.Selection,T.TouchMove],Rt=e=>e.type===L.Custom||e.type===L.IncrementalSnapshot&&Et.includes(e.data.source),we=e=>e.some(Rt),Ct=async()=>{if(!H())return void window.clearInterval(Fe);if(je(),!we(U))return;const e=U[0].timestamp;Date.now()-e>35e3&&(G==null||G())},je=async()=>{if(M.length||X)return;X=!0;const e=await kt();if(!e)return void(_=!0);me.splice(0,e.length).forEach(t=>t(e.shift())),e.forEach(t=>M.push(t)),X=!1},Pt=()=>{const e=o.sessionStorageHelper.getItem("sprig.alwayson.info");if(e){o.breadcrumbsLogger.info("Read stored session state",e);const t=JSON.parse(e);_=t.disabled,F=t.metadata,M=t.uploadUrls,A=t.currentIndex,J=t.expirationTimestamp,t.pendingEventTimestamp&&(o.breadcrumbsLogger.info(`Uploading with pending timestamp: ${t.pendingEventTimestamp}`),Tt(t.pendingEventTimestamp))}else J=1e3*Oe+Date.now()},Tt=async e=>{const t=Date.now(),n=(await l.getEventsBetween(e,t)).map(a=>JSON.parse(a.event));if(!we(n))return;Ke(n);const r=await $e();r&&await Ge(r,n)},We=async(e,t)=>{try{const n=await e();if(!n.ok)throw new Error(`Error ${t}`);return n}catch{_=!0}},Ge=async(e,t)=>{if(!H()||!e)return;const n=await(async r=>{const a=new TextEncoder,s=new CompressionStream("gzip"),i=s.writable.getWriter(),c=a.encode(JSON.stringify(r));return i.write(c),i.close(),new Uint8Array(await new Response(s.readable).arrayBuffer())})(t);o.breadcrumbsLogger.info("Uploading always-on events with presigned url"),await We(()=>o.sprigFetch(e,{body:n,method:"PUT"}),"uploading always-on with presigned url")},kt=async()=>{if(!H())return;const{surveyId:e,responseGroupUuid:t}=F,n={responseGroupUuid:t,surveyId:e,index:A+1};o.breadcrumbsLogger.info("Fetching always-on upload urls",n);const r=await We(()=>o.sprigFetch(`${He}/sdk/1/replayUrls`,{method:"POST",body:JSON.stringify(n),headers:o.getHttpHeaders(window.UserLeap)}),"fetching always-on signed urls");if(!r)return;const a=r.json.signedUrls;return o.breadcrumbsLogger.info("Fetched more always-on upload urls",{body:n,urls:a}),a},$e=async()=>{if(M.length)return M.shift();const e=new Promise(t=>{me.push(t)});return je(),e},Ke=e=>{var a,s,i;const t=e.length?e[e.length-1].timestamp:Date.now(),n=A,r=((s=(a=window.UserLeap)==null?void 0:a.config)==null?void 0:s.customMetadata)??((i=window.__cfg)==null?void 0:i.customMetadata);A++,e.push({timestamp:t,type:L.Custom,data:{tag:"Sprig_Meta",payload:{...F,index:n,visitorId:window.UserLeap.visitorId??"",timestamp:t,customMetadata:r}}})},Ut=(e,t)=>{H()&&!Ne&&(e||U.length)&&(e&&U.length&&(async()=>{const n=U.splice(0);if(!we(n))return;o.breadcrumbsLogger.info("Capturing always-on event array to upload"),Ke(n);const r=await $e();r&&await Ge(r,n)})(),U.push(t))};window.addEventListener("beforeunload",async()=>{Ne=!0,H()&&(o.breadcrumbsLogger.info("Always On handle page unload"),(()=>{let e;U.length&&(e=U[0].timestamp);const t={disabled:_,metadata:F,uploadUrls:M,currentIndex:A,pendingEventTimestamp:e,expirationTimestamp:J};o.breadcrumbsLogger.info("Storing session state on unload",t),o.sessionStorageHelper.setItem("sprig.alwayson.info",JSON.stringify(t))})())});const Ve=async(e,t)=>{const n=performance.now();let r;try{r=await e()}finally{const a=performance.now()-n;let s=o.PerformanceMetrics[t];s||(s=o.registerMetric(t)),s.report(a/1e3)}return r},Je=(e,t)=>{const n=performance.now();try{e()}finally{const r=performance.now()-n;let a=o.PerformanceMetrics[t];a||(a=o.registerMetric(t)),a.report(r/1e3)}};let qe=5e3,ie=6e4,de=0,B,ce=!1,ue=[];const Lt=e=>{var t,n,r,a;if((t=e.event)!=null&&t.includes("Sprig_Scroll")){const s=(a=(r=(n=JSON.parse(e.event))==null?void 0:n.data)==null?void 0:r.payload)==null?void 0:a.xPath;if(!s)return;g.scrollEventUuids[s]=e.uuid}ue.push(e),ce||xt()},xt=()=>{ce=!0,setTimeout(async()=>{if(C()||V())return;const e=ue;ue=[],ce=!1,Je(async()=>{await(async t=>{const n=t.map(r=>({...r,sessionId:r.sessionId??h}));if(n.length!==0)return b(()=>l.bulkAdd("events",n),"Error storing replay events")})(e)},"sdk_replay_add_event_batch_seconds")},500)},Bt=(e,t,n)=>{g.cleanupInterval=window.setInterval(()=>{const r=Date.now();Ve(()=>b(async()=>{C()||await Promise.all([l.deleteRowsBefore("events",r-1e3*e,a=>a.expiredAt===void 0||a.expiredAt<r-1e3*e),l.deleteRowsBefore("chunkUploads",r-1e3*t),l.deleteRowsBefore("pendingCaptures",r-1e3*n,a=>!a.canUpload)])},"Error deleting table rows"),"sdk_replay_cleanup_seconds"),o.breadcrumbsLogger.debug("CleanupComplete")},3e4)},Mt=()=>{g.pendingCheckInterval=window.setInterval(async()=>{b(async()=>{await le()},"Error initiating pending captures")},5e3)};let Y=!1;const le=async(e=!1)=>{if(!Y)try{Y=!0;const t=parseInt(B??"0");if(t===0)return;const n=await l.getPendingCaptures({beforePresent:!0,isBeforeType:e}),r=await l.openDB();await Promise.all(n.map(async a=>(await r.delete("pendingCaptures",a.uuid),Xe(a.captureParams,a.canUpload)))),B=(t-n.length).toString(),o.sessionStorageHelper.setItem("sprig.pendingCount",B)}finally{Y=!1}},At=async(e,t,n,r,a)=>{const s=Math.min(e+a,n),i=await Ve(()=>l.getEventsBetween(e,s),"sdk_replay_get_events_between_seconds");if(!(i!=null&&i.length))return o.breadcrumbsLogger.debug("NoEventsFound"),{validStartFound:r,events:[]};if(!r){o.breadcrumbsLogger.debug("ValidStartSearch");let c=-1;return i==null||i.forEach((d,u)=>{if(!d.isValidStart)return;const w=d.timestamp<=t;(c<0||w)&&(c=u)}),c<0?(o.breadcrumbsLogger.debug("ValidStartNotFound"),{validStartFound:r,events:[]}):{validStartFound:!0,events:i==null?void 0:i.slice(c)}}return{validStartFound:r,events:i}},ze=e=>Promise.all(e.map(async t=>{const n=await(async r=>Ce.execute(async()=>{var i;o.breadcrumbsLogger.info("UploadChunkStart",{chunkIndex:r.chunkIndex,surveyId:r.surveyId});const a=await o.sprigFetch(r.uploadUrl,{body:r.data,method:"PUT"});o.breadcrumbsLogger.http("UploadChunkEnd",{url:r.uploadUrl,method:"PUT",status_code:a.status,reason:a.statusText??"OK",chunkIndex:r.chunkIndex,surveyId:r.surveyId});const s=(i=a.headers)==null?void 0:i.get("ETag");if(!s)throw new Error(`Upload response did not include etag for upload ${r.uploadId}, part ${r.chunkIndex}`);return s}))(t);return await l.updatePartial("chunkUploads",t.uuid,{data:null,etag:n,status:"UploadComplete"}),t.uploadId})),Qe=async e=>{const t=await l.getChunkUploadsByStatus({status:"UploadComplete",uploadId:e});if(!(t!=null&&t.length))return void o.breadcrumbsLogger.info("NoChunksForUpload",{uploadId:e});const n=t.reduce((s,i)=>(s.find(c=>c.chunkIndex===i.chunkIndex)||s.push(i),s),[]);n.sort((s,i)=>s.chunkIndex-i.chunkIndex);const r=n.map(s=>({ETag:s.etag,PartNumber:s.chunkIndex})).filter(s=>s.ETag!==null),a=n[0];await Pe({apiUrl:a.apiUrl,surveyId:a.surveyId,uploadId:e,responseGroupUuid:a.responseGroupId,etags:r,headers:a.completeUploadHeaders,replayDuration:a.replayDuration}),await l.deleteChunkUploads("UploadComplete",e)},_t=()=>{b(async()=>{const e=await l.getChunkUploadsByStatus({sessionId:h,status:"ReadyForUpload"});if(!(e!=null&&e.length))return;const t=await ze(e);t!=null&&t.length&&await Promise.all(t.map(n=>{if(n)return Qe(n)}))},"Error uploading unfinished chunks")},Ht=async(e,t)=>{const n=t??Date.now();return(async(r,a)=>{const s=new TextEncoder;let i=null;const c=new CompressionStream("gzip"),d=c.writable.getWriter();let u=!1,w=!1,[p,f]=[0,0],m=[];for(let P=r-35e3;P<a;P+=ie){if({validStartFound:w,events:m}=await At(P,r,a,w,ie),!(m!=null&&m.length)){o.breadcrumbsLogger.debug("NoEventsFound");continue}p===0&&(p=m[0].timestamp),f=m[m.length-1].timestamp;const y=m.map(E=>E.event);y.push(`{"timestamp":${a}}`);const I=`${u?",":"["}${y}`,v=s.encode(I);Je(()=>{d.write(v)},"sdk_replay_compression_seconds"),u=!0}if(f-p<qe)return o.breadcrumbsLogger.debug("ReplayTooShort"),null;const D=s.encode("]");return d.write(D),d.close(),i=new Uint8Array(await new Response(c.readable).arrayBuffer()),i})(n-e,n)},De=async e=>{const{surveyId:t,responseGroupId:n,visitorId:r,apiUrl:a,completeUploadHeaders:s,replayParams:i,triggerTimestamp:c}=e,d=await Ht(1e3*i.replayDurationSeconds,c);if(!(d!=null&&d.length))return void o.breadcrumbsLogger.info("FileDataEmpty",{surveyId:t});const u=((p,f,m)=>{const D=p.length,P=1024*f*1024,y=Math.ceil(D/m),I=Math.max(P,y),v=[];let E=0;for(;E<D;)v.push(p.slice(E,E+I)),E+=I;return v})(d,i.minimumChunkSizeMb,i.signedUrls.length),w=await Promise.all(u.map(async(p,f)=>{const m=o.v4(),D={apiUrl:a,chunkIndex:f+1,completeUploadHeaders:s,etag:null,responseGroupId:n,status:"ReadyForUpload",surveyId:t,timestamp:c,totalChunks:u.length,data:p,uploadId:i.uploadId,uploadUrl:i.signedUrls[f].url,uuid:m,visitorId:r};return await(await l.openDB()).add("chunkUploads",{...D,sessionId:D.sessionId??h}),D}));await(async(p,f)=>{await ze(f),await Promise.all(p.map(m=>Qe(m)))})([i.uploadId],w)},Xe=async(e,t)=>{if(C())return o.breadcrumbsLogger.debug("ReplayDisabled-ScheduleOrCapture");const{isHeatmap:n,isStandalone:r,replayParams:a,triggerTimestamp:s,responseGroupId:i}=e,c=async()=>{setTimeout(()=>o.eventEmitter.removeListener(o.SprigEvent.QuestionAnswered,c),0),b(async()=>{a.replayDurationType==="before"?await De(e):await l.markPendingCaptureToCanUpload(i)},"Error in schedule/capture callback")};b(async()=>{if(a.replayDurationType==="after"||a.replayDurationType==="beforeAndAfter")return!r&&!n&&o.eventEmitter.on(o.SprigEvent.QuestionAnswered,c),void await Ze(e);if(r||n||t)await De(e),n&&Nt();else{const d=35+a.replayDurationSeconds,u=s-1e3*d,w=s;await l.updateEventsExpiredAt(u,w,a.expirationTimeLimitMinutes),o.eventEmitter.on(o.SprigEvent.QuestionAnswered,c)}},"Error in scheduling/capturing replay")},Nt=async()=>{parseInt(B??"0")||o.sessionStorageHelper.removeItem("sprig.isCapturingHeatmap"),o.sessionStorageHelper.getItem("sprig.teardownAfterCapture")&&(_e(),Ye(),o.sessionStorageHelper.removeItem("sprig.teardownAfterCapture"))},Ye=async()=>C()?o.breadcrumbsLogger.debug("ReplayDisabled-ClearData"):Promise.all([l.deleteBySessionId("events",h),l.deleteBySessionId("pendingCaptures",h)]).catch(e=>{O("Error clearing user replay data",e)}),Ze=async e=>{if(C())return;const{isHeatmap:t,surveyId:n}=e,r=await l.getPendingCaptures(),a=r==null?void 0:r.filter(d=>d.captureParams.surveyId===n);if(a!=null&&a.length)return void o.breadcrumbsLogger.info("PendingCaptureExists",{surveyId:n});t&&(oe(),o.sessionStorageHelper.setItem("sprig.isCapturingHeatmap","true"),de=Date.now(),g.inactivityInterval||(g.inactivityInterval=window.setInterval(()=>{var d;d=de,Date.now()-d>=3e4&&b(()=>l.markPendingHeatmapsReady(),"Error in heatmap inactivity")},1e3)));const s={...e,replayParams:{...e.replayParams}};e.replayParams.replayDurationType==="beforeAndAfter"&&(s.replayParams.replayDurationSeconds*=2),s.replayParams.replayDurationType="before";const i=e.triggerTimestamp+1e3*e.replayParams.replayDurationSeconds;s.triggerTimestamp=i,B=(parseInt(B??"0")+1).toString(),o.sessionStorageHelper.setItem("sprig.pendingCount",B),await(await l.openDB()).add("pendingCaptures",{canUpload:!1,captureParams:s,sessionId:h,targetTimestamp:i,timestamp:Date.now(),uuid:o.v4()})},Ot=Object.freeze(Object.defineProperty({__proto__:null,RecordEvent:e=>{k("Sprig_TrackEvent",e)},RecordPageView:e=>{e.description&&(e.description=ge(e.description)),k("Sprig_PageView",e)},RecordSurveyShown:e=>{k("Sprig_ShowSurvey",e)},_completeSessionReplay:async({surveyId:e,responseGroupUuid:t,eventDigest:n,headers:r})=>{if(!e||!t)return!1;const a=window.UserLeap._API_URL,s=await Pe({surveyId:e,responseGroupUuid:t,eventDigest:n,apiUrl:a,headers:r},!0);return!(s!=null&&s.error)},checkPendingHeatmapsUrl:()=>C()?o.breadcrumbsLogger.debug("ReplayDisabled-PendingHeatmaps"):b(async()=>{const e=(await l.getPendingCaptures({isHeatmap:!0})).map(t=>({eventId:t.captureParams.eventId,uuid:t.uuid})).filter(({eventId:t})=>!o.checkUrlStillMatching(t)).map(({uuid:t})=>t);return o.breadcrumbsLogger.info("PendingHeatmapsToComplete",{count:e.length}),e.length&&(await l.markPendingHeatmapsReady(e),o.breadcrumbsLogger.info("MarkedPendingHeatmapsReady")),e.length},"Error marking pending heatmaps ready"),clearUserReplayData:Ye,disableRecording:O,initializeReplay:async({maxReplayDurationSeconds:e,maxInflightRequests:t=2,replaySettings:n,teardownAfter:r=!1,apiUrl:a,alwaysOnConfig:s})=>{if(s&&Dt({apiUrl:a,config:s,triggerSnapshot:()=>{oe()}}),B=o.sessionStorageHelper.getItem("sprig.pendingCount"),g.isRecording)return;if(r&&o.sessionStorageHelper.setItem("sprig.teardownAfterCapture","true"),C())return o.breadcrumbsLogger.debug("ReplayDisabled");if(await(async()=>{var d;if(!Ae())return!0;if((d=window.navigator.storage)!=null&&d.estimate)try{const{quota:u=0,usage:w=0}=await window.navigator.storage.estimate(),p=(u-w)/1024**3;return o.breadcrumbsLogger.info("Storage",{availableGb:p}),p<.5}catch{return!0}return!1})())return o.breadcrumbsLogger.debug("IDBNotSupported"),se();try{const d=await l.openDB();o.breadcrumbsLogger.info("DBVersion",{version:d.version})}catch(d){return o.breadcrumbsLogger.error("ReplayOpenErr",{name:d.name}),d.name==="VersionError"&&l.deleteDB(),se()}b(async()=>{await le(!0)},"Error uploading ready pending captures");const i=H()?30:0,c=Math.max(e??0,i);if(!c)return o.breadcrumbsLogger.debug("MissingDuration");o.breadcrumbsLogger.debug("ReplayInit"),await b(async()=>{var d;n!=null&&n.minDuration&&(qe=n.minDuration),n!=null&&n.batchDuration&&(ie=n.batchDuration),d=t,Ce.setLimit(d),_t(),Bt(c+35,1800,c+35),Mt();const u=window.UserLeap.replayLibraryURL??"https://cdn.sprig.com/dependencies/record.min.js";if(!window.rrwebRecord){const{record:y}=await import(u);window.rrwebRecord=y}const w=window.rrwebRecord;if(!w)return o.breadcrumbsLogger.error("RecordScriptFailed");let p=!0,f=0;const m={checkoutEveryNms:3e4,sampling:{input:"last",scroll:250,media:800},...n,mutationQueueEnabled:n==null?void 0:n.enableMutationQueue};var D,P;g.stopRecording=w({emit:(y,I)=>{if(y.type===L.Custom&&(de=Date.now()),C()||V())return;if(I&&y.type===L.Meta)f=performance.now();else if(I&&f&&y.type===L.FullSnapshot){const E=performance.now()-f;o.reportAndRegister("sdk_replay_snapshot_seconds",E/1e3)}const v=p||!!I&&y.type===L.Meta;p=!1,Ut(v,y),Lt({uuid:o.v4(),event:JSON.stringify(y),isValidStart:v,timestamp:Date.now()})},...m}),g.isRecording=!!g.stopRecording,g.isRecording&&(((y,I)=>{window.addEventListener("message",v=>{var E;v.data.type===ut&&(pe.push({source:v.source,origin:v.origin}),(E=v.source)==null||E.postMessage({type:lt,settings:y,replayLibraryUrl:I},{targetOrigin:v.origin}))})})(m,u),o.eventEmitter.on("survey.complete",y=>{var I;I={id:y,userAgent:window.navigator.userAgent},k("Sprig_SubmitSurvey",I)}),D=k,P=vt,K||(S=D,j=P,window.addEventListener("click",xe,R),window.addEventListener("pointerdown",Me,R),window.addEventListener("mousedown",Be,R),window.addEventListener("keydown",Ue,R),window.addEventListener("scroll",Le,R),K=!0,ht(),It()))},"Error initializing replay")},isReplayPaused:V,isReplayRecording:()=>g.isRecording,recordFullSnapshot:oe,recordReplayPaused:()=>{k("Sprig_ReplayPaused",{timestamp:Date.now()}),o.sessionStorageHelper.setItem("sprig.isReplayPaused","true")},recordReplayResumed:()=>{o.sessionStorageHelper.removeItem("sprig.isReplayPaused"),k("Sprig_ReplayResumed",{timestamp:Date.now()})},scheduleCapture:Ze,scheduleOrCaptureReplay:Xe,tryReplayAction:b,uploadReadyPendingCaptures:le},Symbol.toStringTag,{value:"Module"}));o.registerReplay(Ot);
package/dist/replay.js CHANGED
@@ -1,7 +1,7 @@
1
1
  var it = Object.defineProperty;
2
2
  var dt = (e, t, n) => t in e ? it(e, t, { enumerable: !0, configurable: !0, writable: !0, value: n }) : e[t] = n;
3
3
  var F = (e, t, n) => dt(e, typeof t != "symbol" ? t + "" : t, n);
4
- import { b as d, s as Q, a as m, v as X, c as ct, g as lt, P as ke, r as Ue, d as ut, e as V, S as Y, f as pt } from "./metricsReporter-B-oKhuWk.js";
4
+ import { b as d, s as Q, a as m, v as X, c as ct, g as lt, P as ke, r as Ue, d as ut, e as V, S as Y, f as pt } from "./metricsReporter-MLC5Ejl7.js";
5
5
  import { d as gt } from "./debounce-CMb8f7wh.js";
6
6
  var B = ((e) => (e[e.DomContentLoaded = 0] = "DomContentLoaded", e[e.Load = 1] = "Load", e[e.FullSnapshot = 2] = "FullSnapshot", e[e.IncrementalSnapshot = 3] = "IncrementalSnapshot", e[e.Meta = 4] = "Meta", e[e.Custom = 5] = "Custom", e[e.Plugin = 6] = "Plugin", e))(B || {}), k = ((e) => (e[e.Mutation = 0] = "Mutation", e[e.MouseMove = 1] = "MouseMove", e[e.MouseInteraction = 2] = "MouseInteraction", e[e.Scroll = 3] = "Scroll", e[e.ViewportResize = 4] = "ViewportResize", e[e.Input = 5] = "Input", e[e.TouchMove = 6] = "TouchMove", e[e.MediaInteraction = 7] = "MediaInteraction", e[e.StyleSheetRule = 8] = "StyleSheetRule", e[e.CanvasMutation = 9] = "CanvasMutation", e[e.Font = 10] = "Font", e[e.Log = 11] = "Log", e[e.Drag = 12] = "Drag", e[e.StyleDeclaration = 13] = "StyleDeclaration", e[e.Selection = 14] = "Selection", e[e.AdoptedStyleSheet = 15] = "AdoptedStyleSheet", e[e.CustomElement = 16] = "CustomElement", e))(k || {});
7
7
  const re = (e, t) => t.some((n) => e instanceof n);