UNPKG

@sprig-technologies/sprig-bundled

Version:

npm package for the sprig web sdk with bundled dependencies

13 lines (12 loc) 10.3 kB
"use strict";const e=require("./view-K_OZdlXf.cjs"),T=require("./index-BzAnV7nc.cjs"),_=t=>e.u("button",{...t,className:e.cc("ul-card-text__button",t.className),id:"ul-card-text__button"}),A=({html:t,...n})=>{const{enableCspTrustedTypes:l}=e.useConfig(i=>({enableCspTrustedTypes:i.enableCspTrustedTypes})),o=e.F(()=>T.getHtml(t,l),[l,t]);return e.u("div",{...n,dangerouslySetInnerHTML:{__html:o}})},I=()=>{const{viewDocument:t}=e.useConfig(o=>({viewDocument:o.viewDocument})),[n,l]=e.h(!1);return e.p(()=>{const o=t.querySelector(".sprig-question-body"),i=new ResizeObserver(()=>{window.requestAnimationFrame(()=>{l(!!(o&&T.isHTMLElement(o)&&o.scrollHeight>o.offsetHeight))})});return o&&i.observe(o),()=>{o&&i.disconnect()}},[t]),n},L=({plainText:t,richText:n,id:l,className:o,isHeader:i,showAsterisk:s})=>n?e.u(A,{className:o,html:n,id:l}):t?i?e.u("h1",{className:o,id:l,children:[t,s&&"*"]}):e.u("p",{className:o,id:l,children:t}):null,M=()=>e.u("svg",{fill:"none",height:"10",viewBox:"0 0 13 10",width:"13",xmlns:"http://www.w3.org/2000/svg",children:e.u("path",{d:"M11.5 1.5L4.5 8.5L1 5",stroke:"#FFFFFF",strokeLinecap:"round",strokeLinejoin:"round",strokeWidth:"1.5"})}),$=({buttonText:t="View Prototype",handleClick:n})=>e.u("button",{className:"prototype-button",onClick:n,children:t},"prototype-btn"),P=({isSelected:t,id:n,divId:l,themeColor:o,disabled:i=!1})=>e.u("div",{"aria-checked":t,"aria-disabled":i,"aria-labelledby":`label-${n}`,className:"select-checkbox",id:l,role:"checkbox",style:{...t?{backgroundColor:o,borderColor:o,boxShadow:"none"}:{},...i?{opacity:.5}:{}},tabIndex:i?-1:0,children:t&&e.u(e.SvgCheckmark,{})}),V=({promptText:t,textValue:n,onTextChange:l,useMobileStyling:o})=>{const i=e._(null);return e.p(()=>{i.current&&i.current.focus()},[]),e.u("textarea",{"aria-label":t,"aria-multiline":"true","aria-placeholder":t,className:e.cc(e.getClasses("choice-text-input",o)),"data-gramm":"false",maxLength:5e3,name:"text",onChange:s=>{s.stopPropagation(),l(s.currentTarget.value)},onClick:s=>{s.stopPropagation()},onKeyPress:s=>{s.stopPropagation()},placeholder:t,ref:i,role:"textbox",rows:1,value:n})},q="ul-select-style-element",R="ul-select-active-dynamic-style",H="ul-select-error-dynamic-style",j=(t,n,l)=>{let o=t.getElementById(q),i=!1;o||(o=t.createElement("style"),i=!0),o.tagName.toLowerCase()==="style"&&(o.id=q,l&&(o.nonce=l),o.textContent=z(n),i&&t.head.appendChild(o))},z=t=>` .${R} { border-color: ${t}; } .${R} .select-radio, .${R}.select-radio { border: 6px solid ${t}; box-shadow: none; } .${H} { border-color: ${T.ERROR_BORDER_COLOR}; } `,W=({options:t,selectItem:n,selectedOptions:l,showCheckbox:o,disabledOptions:i,dropdownFooter:s,panelRef:c})=>{const{themeColor:h}=e.useConfig(r=>({doc:r.viewDocument,themeColor:r.border}));return e.u("div",{className:"select-list",ref:c,children:[t.map(r=>{return e.u("div",{"aria-disabled":i==null?void 0:i.includes(r),className:e.cc("select-option",i!=null&&i.includes(r)?"ul-choice-disabled":""),onClick:d=>{i!=null&&i.includes(r)||(n(r),d.stopPropagation())},role:"option",style:{...i!=null&&i.includes(r)?{opacity:.5,cursor:"not-allowed"}:{}},children:[o&&e.u(P,{divId:(p=r.id,`checkbox-div-${p}`),id:r.id,isSelected:l.includes(r),themeColor:h}),r.label]},r.id);var p}),s]})},K={"{{user_id}}":"externalUserId","{{email}}":"email"};exports.Button=_,exports.Header=({message:t,properties:n,isRequired:l})=>{const o=e._(null),i=n==null?void 0:n.captionText,s=I();return e.u("div",{className:e.cc("question-header-container","sprig-header-container",s?"sprig-border-bottom":null),ref:o,children:[e.u("div",{className:"question-header-button-container",children:e.u(L,{className:"ul-question",id:"ul-question",isHeader:!0,plainText:t,richText:n==null?void 0:n.questionHtml,showAsterisk:l})}),e.u(L,{className:"ul-caption",id:"ul-caption",plainText:i,richText:n==null?void 0:n.captionHtml})]})},exports.Html=A,exports.LongformSubmitButton=({isSubmitDisabled:t,handleSubmit:n})=>e.u("div",{className:"ul-card-longform__submit-button-container",children:e.u(_,{className:"ul-card-longform__submit-button",disabled:t,onClick:n,children:["OK ",e.u(M,{})]})}),exports.MobileEmbedView=({embeddedType:t="prototype",properties:n,children:l})=>{var y;const{handleClickEmbedButton:o,hasViewedEmbed:i,headers:s,useDesktopPrototype:c}=e.useConfig(u=>({handleClickEmbedButton:u.handleClickEmbedButton,hasViewedEmbed:u.hasViewedEmbed,headers:u.headers,useDesktopPrototype:u.useDesktopPrototype})),h=(n==null?void 0:n.conceptUrl)||((y=n==null?void 0:n.consentDocument)==null?void 0:y.url),r=window.innerWidth<T.EMBED_MOBILE_MAX_WIDTH,p=s["userleap-platform"],d=(u,C)=>{u.preventDefault(),o(C)};if((()=>{const{update:u,index:C,isConversationalUI:g,viewDocument:f}=e.useConfig(({update:b,index:m,isConversationalUI:v,viewDocument:x})=>({update:b,index:m,isConversationalUI:v,viewDocument:x})),a=T.debounce(u,100);e.p(()=>{if(g)return;const b=new ResizeObserver(a),m=f.querySelector(".ul-card__container");return m&&b.observe(m,{box:"border-box"}),()=>{b.disconnect()}},[a,u,C,g,f])})(),!c&&r&&!i&&h&&["email","link"].includes(p)){if(t==="prototype")return e.u($,{handleClick:u=>{d(u,"question.prototype.click")}});if(t==="pdf")return e.u($,{buttonText:(n==null?void 0:n.viewDocumentText)||"View Document",handleClick:u=>{d(u,"question.agreement.click")}})}return e.u(e.g,{children:l})},exports.Option=({ariaLabel:t,border:n,choiceStyle:l={},label:o,isSelected:i,value:s,text:c,id:h,isRadio:r,useMobileStyling:p,error:d,allowTextEntry:y,noneOfTheAbove:u,promptText:C,disabled:g=!1,onUserInputChanged:f})=>{const{styleNonce:a,viewDocument:b}=e.useConfig(w=>({styleNonce:w.styleNonce,viewDocument:w.viewDocument})),[m,v]=e.h(!1);j(b,n,a);const x=({isSelected:w,userText:E})=>{f&&f({id:h,selected:w,value:s,userText:E,noneOfTheAbove:u})},N=w=>{g||(w.stopPropagation(),x({isSelected:r||!i,userText:c}),v(!1))},F=()=>{m||v(!0)},O=()=>{m&&v(!1)},k={onClick:w=>N(w),onKeyPress:w=>(E=>{g||E.key!=="Enter"&&E.key!==" "||N(E)})(w)};"ontouchstart"in b.documentElement?(k.onTouchStart=O,k.onTouchCancel=O,k.onTouchEnd=O):(k.onMouseDown=F,k.onMouseLeave=O);const D=r?`radio-${h}`:`checkbox-${h}`,S=i||m?[R]:[],U=[...d?[H]:[],...S,...g?["ul-choice-disabled"]:[]],B=o?{"aria-labelledby":`label-${h}`}:{"aria-label":t};return e.u("div",{className:e.cc(e.getClasses("choice",p),...U),id:`choice-div-${h}`,style:{...l,...d?{borderColor:T.ERROR_BORDER_COLOR}:{},...g?{opacity:.5,cursor:"not-allowed"}:{}},...g?{}:k,"aria-disabled":g,children:[e.u("div",{className:e.cc("choice-label-container"),children:[r?e.u("div",{...B,className:e.cc("select-radio",...S),id:D,role:"radio",tabIndex:0}):e.u(P,{disabled:g,divId:D,id:h,isSelected:i,themeColor:n}),o&&e.u("label",{className:e.cc(e.getClasses("select-label",p)),htmlFor:D,id:`label-${h}`,children:o})]}),y&&i&&e.u("div",{className:e.cc("choice-text-entry-container",...S),children:e.u(V,{onTextChange:w=>x({isSelected:i,userText:w}),promptText:C||"Please specify",textValue:c,useMobileStyling:p})})]})},exports.QuestionBodyFooterContainer=({children:t})=>{const n=I(),{isConversationalUI:l}=e.useConfig(o=>({isConversationalUI:o.isConversationalUI}));return e.u("div",{className:e.cc("sprig-question-footer-container",n&&!l?"sprig-border-top":null),children:t})},exports.QuestionBodyWrapper=({children:t})=>e.u("div",{className:"sprig-question-body",children:t}),exports.Select=({isMultiSelect:t=!1,multiselectText:n="choices selected",onChange:l,options:o,placeholderText:i,value:s,disabledOptions:c=[],dropdownFooter:h})=>{const[r,p]=e.h(!1),d=e._(null),{viewDocument:y,update:u,isConversationalUI:C}=e.useConfig(a=>({viewDocument:a.viewDocument,update:a.update,isConversationalUI:a.isConversationalUI})),g=()=>{p(!r)};e.y(()=>{C||u()},[r,C,u]),e.y(()=>{r&&d.current&&d.current.scrollIntoView({behavior:"smooth",block:"nearest"})},[r]),e.p(()=>{var b;const a=m=>{const v=m.target;(v==null?void 0:v.closest(".select-option.ul-choice-disabled"))||p(!1)};y.addEventListener("click",a);try{(b=window.parent)==null||b.addEventListener("click",a)}catch{window.addEventListener("click",a)}return()=>{var m;y.removeEventListener("click",a);try{(m=window.parent)==null||m.removeEventListener("click",a)}catch{window.removeEventListener("click",a)}}},[y]);const f=s.length===0?["select-button-placeholder"]:[];return e.u(e.g,{children:[e.u("button",{"aria-label":"choice dropdown button",className:e.cc("select-button",...f),onClick:a=>{a.stopPropagation(),g()},type:"button",children:[e.u("span",{children:s.length===0?i:s.length===1?s[0].label:`${s.length} ${n}`}),e.u(e.SvgCaret,{})]}),r&&e.u(W,{disabledOptions:c,dropdownFooter:h,options:o,panelRef:d,selectedOptions:s,selectItem:a=>{var v;const b=s.some(x=>x.id===a.id),m=s.some(x=>{var N;return(N=x.optionProperties)==null?void 0:N.noneOfTheAbove});(v=a.optionProperties)!=null&&v.noneOfTheAbove&&!b?l([a]):t?l(b?s.filter(x=>x.id!==a.id):m?[a]:[...s,a]):b||l([a]),t||g()},showCheckbox:t})]})},exports.getAttributedUrl=(t=void 0,n={})=>{if(!t)return t;const l=["http:","https:","itms-apps:","market:"],o=(c=>/^[a-zA-Z][a-zA-Z0-9+\-.]*:\/\//.test(c)?c:`http://${c}`)(t);if(!o)return;try{const c=new URL(o);if(!c.protocol||!l.includes(c.protocol))return}catch{return}const i=[],s=((c,h,r)=>{let p=c;for(const[d,y]of Object.entries(K))if(p.toLowerCase().includes(d))if(h[y]){const u=new RegExp(d,"gi");p=p.replace(u,h[y])}else r.push(d);return p})(o,n,i);return i.length===0?s:((c,h)=>{if(!c.includes("?"))return c;const r=c.slice(0,c.indexOf("?")),p=c.slice(c.indexOf("?")+1).split("&").map(d=>d.split("=")).filter(d=>!h.includes(d[1]));return p.length===0?r:`${r}?${p.map(d=>d.join("=")).join("&")}`})(s,i)},exports.useAutoSize=(t,n)=>{const l=e._(0);return()=>{if(t.current){const o=t.current;o.style.height="1px";const i=o.scrollHeight+(o.offsetHeight-o.clientHeight),s=parseInt(window.getComputedStyle(o).getPropertyValue("max-height")),c=i<=s?i:s;l.current!==c&&requestAnimationFrame(()=>{n()}),l.current=c,o.style.height=`${c}px`}}},exports.useSetAllResponsesRaw=t=>{const n=e._(),{setAllResponsesRaw:l}=e.useConfig(o=>({setAllResponsesRaw:o.setAllResponsesRaw}));e.p(()=>{const o=n.current;(!o||Object.keys(t).length!==Object.keys(o).length||Object.keys(t).some(i=>t[i]!==o[i]))&&(l(t),n.current=t)},[t,l])};