userflow.js-self-hosted 0.1.1016675 → 0.1.1016698

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/BannerApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{r,R as n}from"./vendor.react.js";import{x as s,E as x}from"./userflow.js";import{u as A,i as v}from"./client-context.js";import{o as R}from"./vendor.obj-str.js";import{u as C,a as D,D as O}from"./stylesheets.js";import{C as $}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{u as P,S as W,b as Y,R as z,B as U}from"./use-selector-element-monitoring.js";import{g as H}from"./flow-condition-types.js";import{f as K,w as Z}from"./flow-host.styl.js";import{r as q}from"./vendor.react-dom.js";import{F as G}from"./Frame.js";import{h as i}from"./roots.js";import{u as J}from"./use-element-rect.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-i18next.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";import"./use-window-resize.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[d]="1285af94-f9e6-47e6-a796-5f0aa73057f2",a._sentryDebugIdIdentifier="sentry-dbid-1285af94-f9e6-47e6-a796-5f0aa73057f2")}catch{}})();const Le=({session:a})=>{const d=A(),{version:c}=a,e=c.banner,p=C(c.theme),g=a.locale?a.locale.standardLocaleId:a.version.theme.languageId;r.useEffect(()=>{v.changeLanguage(g)},[g]);const t=r.useMemo(()=>document.createElement("div"),[]),[k,w]=r.useState(!1),{loaded:T}=D(window,K,p),[I,h]=r.useState(!1),E=T&&I,[M,B]=r.useState(0),u=r.useCallback(()=>{h(!1),B(o=>o+1)},[]),f=![s.BODY_FIRST,s.BODY_LAST].includes(e.embedMode),[l,S]=r.useState(null),F=r.useCallback(({targetEl:o})=>{S(o)},[]),N=r.useCallback(()=>{f&&console.warn(`Userflow.js: Could not find embed element for banner "${a.flow.name||a.flow.id}"`),S(null)},[f,a.flow.name,a.flow.id]);P({selector:e.embedSelector,targetMoved:F,targetLost:N});const b=r.useCallback(()=>{t.parentElement?.removeChild(t),w(!1),u()},[t,u]);r.useLayoutEffect(()=>{let o=null,m=null;if(f){if(!l){b();return}(e.overlay||e.sticky)&&(e.embedMode===s.ELEMENT_BEFORE||e.embedMode===s.ELEMENT_AFTER?m=l.parentElement:m=l,window.getComputedStyle(m).position==="static"&&(o=m.style.position,m.style.position="relative"))}switch(e.embedMode){case s.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",t);break;case s.BODY_LAST:document.body.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_FIRST:l.insertAdjacentElement("afterbegin",t);break;case s.ELEMENT_LAST:l.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_BEFORE:l.insertAdjacentElement("beforebegin",t);break;case s.ELEMENT_AFTER:l.insertAdjacentElement("afterend",t);break}return w(!0),u(),()=>{m&&o!=null&&(m.style.position=o)}},[b,t,f,l,e.overlay,e.sticky,e.embedMode,u]),r.useLayoutEffect(()=>b,[b]);const L=R({"userflowjs-banner":!0,[`userflowjs-banner--animate-${String(e.animate)}`]:!0,[`userflowjs-banner--embed-mode-${e.embedMode}`]:!0,[`userflowjs-banner--sticky-${String(e.sticky)}`]:!0,[`userflowjs-banner--overlay-${e.overlay}`]:!0});r.useLayoutEffect(()=>{t.className=L||""},[t,L]);const y=e.zIndex||Z(0);r.useLayoutEffect(()=>{t.style.zIndex=y==null?"":String(y),t.style.position=E?"":"absolute",t.style.visibility=E?"":"hidden"},[t,y,E]);const{height:j,setEl:_}=J();return r.useLayoutEffect(()=>{t.style.setProperty("--userflowjs-banner-height",i(j+(e.marginTop||0)+(e.marginBottom||0))||"")},[t,j,e.marginTop,e.marginBottom]),k?q.createPortal(n.createElement(W.Provider,{value:a},n.createElement(G,{key:M,className:"userflowjs-banner-frame",style:{maxWidth:i(e.maxWidth),marginTop:i(e.marginTop),marginRight:i(e.marginRight),marginBottom:i(e.marginBottom),marginLeft:i(e.marginLeft),borderRadius:i(e.borderRadius)},stylesheet:Y,theme:p,onStylesheetsLoad:h,title:"Banner"},n.createElement("div",{ref:_,className:R({"userflowjs-banner-root":!0,[`userflowjs-banner-root--content-layout-${e.contentLayout}`]:!0,"userflowjs-theme-root":!0}),dir:v.dir()},n.createElement("div",{className:"userflowjs-banner-start-spacer"}),n.createElement("div",{className:"userflowjs-banner-inner",style:{maxWidth:i(e.maxContentWidth)}},n.createElement("div",{className:"userflowjs-banner-content"},n.createElement(z,{doc:e.content,lookupAttribute:H(a.data)})),e.buttons.length>0&&n.createElement("div",{className:"userflowjs-banner-buttons"},e.buttons.map(o=>n.createElement(U,{key:o.id,button:o})))),c.closeDisabled?n.createElement("div",{className:"userflowjs-banner-start-spacer"}):n.createElement("button",{"data-testid":"userflow-banner-dismiss",className:"userflowjs-banner-close",onClick:()=>d.endFlow(a,{endReason:x.USER_CLOSED})},n.createElement(O,{icon:$}))))),t):null};export{Le as BannerApp,Le as default};
1
+ import{r,R as n}from"./vendor.react.js";import{x as s,E as x}from"./userflow.js";import{u as A,i as v}from"./client-context.js";import{o as R}from"./vendor.obj-str.js";import{u as C,a as D,D as O}from"./stylesheets.js";import{C as $}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{c as P,S as W,b as Y,R as z,B as U}from"./use-selector-element-monitoring.js";import{g as H}from"./flow-condition-types.js";import{f as K,w as Z}from"./flow-host.styl.js";import{r as q}from"./vendor.react-dom.js";import{F as G}from"./Frame.js";import{h as i}from"./roots.js";import{u as J}from"./use-element-rect.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-i18next.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";import"./use-window-resize.js";(function(){try{var a=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},d=new Error().stack;d&&(a._sentryDebugIds=a._sentryDebugIds||{},a._sentryDebugIds[d]="362c328b-ca53-4c94-95a4-fdd75afbc6d0",a._sentryDebugIdIdentifier="sentry-dbid-362c328b-ca53-4c94-95a4-fdd75afbc6d0")}catch{}})();const Le=({session:a})=>{const d=A(),{version:c}=a,e=c.banner,p=C(c.theme),g=a.locale?a.locale.standardLocaleId:a.version.theme.languageId;r.useEffect(()=>{v.changeLanguage(g)},[g]);const t=r.useMemo(()=>document.createElement("div"),[]),[k,w]=r.useState(!1),{loaded:T}=D(window,K,p),[I,h]=r.useState(!1),E=T&&I,[M,B]=r.useState(0),u=r.useCallback(()=>{h(!1),B(o=>o+1)},[]),f=![s.BODY_FIRST,s.BODY_LAST].includes(e.embedMode),[l,S]=r.useState(null),F=r.useCallback(({targetEl:o})=>{S(o)},[]),N=r.useCallback(()=>{f&&console.warn(`Userflow.js: Could not find embed element for banner "${a.flow.name||a.flow.id}"`),S(null)},[f,a.flow.name,a.flow.id]);P({selector:e.embedSelector,targetMoved:F,targetLost:N});const b=r.useCallback(()=>{t.parentElement?.removeChild(t),w(!1),u()},[t,u]);r.useLayoutEffect(()=>{let o=null,m=null;if(f){if(!l){b();return}(e.overlay||e.sticky)&&(e.embedMode===s.ELEMENT_BEFORE||e.embedMode===s.ELEMENT_AFTER?m=l.parentElement:m=l,window.getComputedStyle(m).position==="static"&&(o=m.style.position,m.style.position="relative"))}switch(e.embedMode){case s.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",t);break;case s.BODY_LAST:document.body.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_FIRST:l.insertAdjacentElement("afterbegin",t);break;case s.ELEMENT_LAST:l.insertAdjacentElement("beforeend",t);break;case s.ELEMENT_BEFORE:l.insertAdjacentElement("beforebegin",t);break;case s.ELEMENT_AFTER:l.insertAdjacentElement("afterend",t);break}return w(!0),u(),()=>{m&&o!=null&&(m.style.position=o)}},[b,t,f,l,e.overlay,e.sticky,e.embedMode,u]),r.useLayoutEffect(()=>b,[b]);const L=R({"userflowjs-banner":!0,[`userflowjs-banner--animate-${String(e.animate)}`]:!0,[`userflowjs-banner--embed-mode-${e.embedMode}`]:!0,[`userflowjs-banner--sticky-${String(e.sticky)}`]:!0,[`userflowjs-banner--overlay-${e.overlay}`]:!0});r.useLayoutEffect(()=>{t.className=L||""},[t,L]);const y=e.zIndex||Z(0);r.useLayoutEffect(()=>{t.style.zIndex=y==null?"":String(y),t.style.position=E?"":"absolute",t.style.visibility=E?"":"hidden"},[t,y,E]);const{height:j,setEl:_}=J();return r.useLayoutEffect(()=>{t.style.setProperty("--userflowjs-banner-height",i(j+(e.marginTop||0)+(e.marginBottom||0))||"")},[t,j,e.marginTop,e.marginBottom]),k?q.createPortal(n.createElement(W.Provider,{value:a},n.createElement(G,{key:M,className:"userflowjs-banner-frame",style:{maxWidth:i(e.maxWidth),marginTop:i(e.marginTop),marginRight:i(e.marginRight),marginBottom:i(e.marginBottom),marginLeft:i(e.marginLeft),borderRadius:i(e.borderRadius)},stylesheet:Y,theme:p,onStylesheetsLoad:h,title:"Banner"},n.createElement("div",{ref:_,className:R({"userflowjs-banner-root":!0,[`userflowjs-banner-root--content-layout-${e.contentLayout}`]:!0,"userflowjs-theme-root":!0}),dir:v.dir()},n.createElement("div",{className:"userflowjs-banner-start-spacer"}),n.createElement("div",{className:"userflowjs-banner-inner",style:{maxWidth:i(e.maxContentWidth)}},n.createElement("div",{className:"userflowjs-banner-content"},n.createElement(z,{doc:e.content,lookupAttribute:H(a.data)})),e.buttons.length>0&&n.createElement("div",{className:"userflowjs-banner-buttons"},e.buttons.map(o=>n.createElement(U,{key:o.id,button:o})))),c.closeDisabled?n.createElement("div",{className:"userflowjs-banner-start-spacer"}):n.createElement("button",{"data-testid":"userflow-banner-dismiss",className:"userflowjs-banner-close",onClick:()=>d.endFlow(a,{endReason:x.USER_CLOSED})},n.createElement(O,{icon:$}))))),t):null};export{Le as BannerApp,Le as default};
2
2
  //# sourceMappingURL=BannerApp.js.map
package/ChecklistUI.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as e,r as l}from"./vendor.react.js";import{E as I,H as _}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.core-js.js";import{u as T}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{c as P,d as L}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as M,a as x,f as B,R as H}from"./use-selector-element-monitoring.js";import{g}from"./flow-condition-types.js";import{K as $,N as K}from"./vendor.fortawesome.pro-regular-svg-icons.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="5c11cf44-a9d3-4e96-8472-c2dd1d22cfc0",t._sentryDebugIdIdentifier="sentry-dbid-5c11cf44-a9d3-4e96-8472-c2dd1d22cfc0")}catch{}})();const W=e.forwardRef(({elProps:t,onClick:s,onCheckmarkClick:n,completed:o,disabled:u,name:c,text:b,active:m,htmlAttributes:a,children:i},w)=>{const d=l.useRef(o);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:s?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!o,"userflowjs-bubble-task--just-completed":!d.current&&!!o,"userflowjs-bubble-task--disabled":!o&&!!u,"userflowjs-bubble-task--clickable":!!s,"userflowjs-bubble-task--active":!!m}),onClick:s,...a},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:n},o&&e.createElement(C,{icon:P})),e.createElement("div",{className:"userflowjs-bubble-task__content"},e.createElement("div",{className:"userflowjs-bubble-task__name"},c),e.createElement("div",{className:"userflowjs-bubble-task__text"},b)),e.createElement("div",{className:"userflowjs-bubble-task__arrow"},!o&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:L}))),i)}),z=({task:t,previousTasksCompleted:s})=>{const n=v(),{session:o}=S(),u=o.version.checklist,[c,b]=l.useState(()=>n.taskIsUnacked(t.cvid));l.useEffect(()=>{if(!c)return;const d=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(d)},[c]);const m=o.taskCompletions.some(({taskCvid:d})=>d===t.cvid),a=!c&&m;l.useEffect(()=>{a&&n.ackCompletedTask(t.cvid)},[n,a,t.cvid]);const i=u.completeInOrder&&!s,w=i||t.actions.length===0&&a?void 0:()=>{n.send({kind:"ClickChecklistTask",sessionId:o.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(a||!t.completesOnClick)&&n.hideChecklist(),M(n,o,t.actions)};return e.createElement(W,{onClick:w,name:e.createElement(x,{doc:t.name,lookupAttribute:g(o.data)}),text:e.createElement(x,{doc:t.text,lookupAttribute:g(o.data)}),completed:a,disabled:i})},G=({completedCount:t,taskCount:s})=>{const n=s===0?0:Math.min(100,Math.round(t/s*100));return e.createElement("div",{className:"userflowjs-bubble-checklist-progress"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-bg"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${n}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")))},D=5e3,J=({active:t,onComplete:s})=>{const n=l.useRef(null);return l.useEffect(()=>{if(!t||!n.current)return;n.current.style.width="0%",n.current.offsetWidth,n.current.style.transition=`width ${D}ms linear`,n.current.style.width="100%";const o=setTimeout(s,D);return()=>clearTimeout(o)},[t,s]),e.createElement("div",{className:"userflowjs-bubble-progress--default userflowjs-bubble-progress-container--checklist"},t&&e.createElement("div",{className:"userflowjs-bubble-progress-background--checklist"}),e.createElement("div",{className:"userflowjs-bubble-progress__fill userflowjs-bubble-progress-fill--checklist",ref:n}))},Q=()=>{const{t}=T(),s=v(),n=S(),{session:o}=n,{version:u}=o,c=u.checklist,{dispatch:b}=U(),m=o.taskCompletions.length,a=c.tasks.length,i=m===a,w=l.useCallback(()=>{s.endFlow(o,{endReason:I.USER_CLOSED})},[s,o]);let d=!0,N=c.tasks,h=[],p=n.currentSectionName,y=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((r,E)=>r.sectionName.localeCompare(E.sectionName));for(const r of k)r.sectionName!==f&&(h.push(r.sectionName),f=r.sectionName);(!p||!h.includes(p))&&(p=h[0]),N=k.filter(r=>r.sectionName===p),y=N.some(r=>{const E=o.taskCompletions.some(({taskCvid:O})=>O===r.cvid);return r.blocksNextSection&&!E})}const j=p==null?-1:h.indexOf(p),R=f=>{const k=j+f;if(k>=0&&k<=h.length-1){const r=h[k];_.setItem("currentChecklistSectionName:"+o.id,r),b({kind:"setCurrentSection",sectionName:r})}};return e.createElement(e.Fragment,null,!B(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(H,{doc:c.content,lookupAttribute:g(o.data)})),e.createElement(G,{completedCount:m,taskCount:a}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},N.map(f=>{const k=d;return o.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(d=!1),e.createElement(z,{key:f.id,task:f,previousTasksCompleted:k})})),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-buttons"},e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(-1),disabled:j<=0},e.createElement(C,{icon:$}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(1),disabled:j>=h.length-1||y},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:K}))),e.createElement("div",{className:"userflowjs-bubble-dismiss-row userflowjs-bubble-dismiss-row--checklist"},u.closeDisabled?e.createElement("div",{className:"userflowjs-bubble-checklist-dismiss-button-placeholder"}):e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":i}),onClick:()=>i?w():b({kind:"showClose"})},t("checklistDismiss.button")),c.autoDismissEnabled&&e.createElement(J,{active:i,onComplete:w})))},V=()=>{const{t}=T(),s=v(),{dispatch:n}=U(),{session:o}=S();return e.createElement("div",{role:"alert"},e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement("p",null,e.createElement("b",null,t("checklistDismiss.title")))),e.createElement("div",{className:"userflowjs-bubble-buttons"},e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>s.endFlow(o,{endReason:I.USER_CLOSED})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.yes"))),e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:()=>n({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function X(t){const s=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');s&&typeof s.focus=="function"&&s.focus()}const be=({session:t,initialAutoFocus:s})=>{const n=v(),o=l.useRef(null),[u,c]=l.useReducer(Z,void 0,()=>({...Y,session:t,currentSectionName:_.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!s})),{session:b,contentType:m}=u;l.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const a=l.useMemo(()=>({dispatch:c}),[c]);return l.useEffect(()=>{if(!u.autoFocusRequested)return;const i=o.current;i&&X(i),c({kind:"autoFocused"})},[n,u.autoFocusRequested]),e.createElement(A.Provider,{value:a},e.createElement(q.Provider,{value:u},e.createElement("div",{ref:o},m==="close"?e.createElement(V,null):e.createElement(Q,null))))},Y={contentType:"flow"};function Z(t,s){switch(s.kind){case"updateSession":return{...t,session:s.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:s.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const A=l.createContext(null),q=l.createContext(null);function U(){return l.useContext(A)}function S(){return l.useContext(q)}export{be as C,X as f};
1
+ import{R as e,r as l}from"./vendor.react.js";import{E as I,H as _}from"./userflow.js";import{u as v}from"./client-context.js";import"./vendor.core-js.js";import{u as T}from"./vendor.react-i18next.js";import{o as F}from"./vendor.obj-str.js";import{D as C}from"./stylesheets.js";import{c as P,d as L}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{h as M,a as x,j as B,R as H}from"./use-selector-element-monitoring.js";import{g}from"./flow-condition-types.js";import{K as $,N as K}from"./vendor.fortawesome.pro-regular-svg-icons.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[s]="47046f9c-dc80-4381-b38b-c7e713f5db55",t._sentryDebugIdIdentifier="sentry-dbid-47046f9c-dc80-4381-b38b-c7e713f5db55")}catch{}})();const W=e.forwardRef(({elProps:t,onClick:s,onCheckmarkClick:n,completed:o,disabled:u,name:c,text:b,active:m,htmlAttributes:a,children:i},w)=>{const d=l.useRef(o);return e.createElement("button",{...t,ref:w,"data-testid":"bubble-task",tabIndex:s?0:-1,className:F({"userflowjs-bubble-task":!0,"userflowjs-bubble-task--completed":!!o,"userflowjs-bubble-task--just-completed":!d.current&&!!o,"userflowjs-bubble-task--disabled":!o&&!!u,"userflowjs-bubble-task--clickable":!!s,"userflowjs-bubble-task--active":!!m}),onClick:s,...a},e.createElement("div",{className:"userflowjs-bubble-task__checkmark",onClick:n},o&&e.createElement(C,{icon:P})),e.createElement("div",{className:"userflowjs-bubble-task__content"},e.createElement("div",{className:"userflowjs-bubble-task__name"},c),e.createElement("div",{className:"userflowjs-bubble-task__text"},b)),e.createElement("div",{className:"userflowjs-bubble-task__arrow"},!o&&e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(C,{icon:L}))),i)}),z=({task:t,previousTasksCompleted:s})=>{const n=v(),{session:o}=S(),u=o.version.checklist,[c,b]=l.useState(()=>n.taskIsUnacked(t.cvid));l.useEffect(()=>{if(!c)return;const d=window.setTimeout(()=>b(!1),500);return()=>window.clearTimeout(d)},[c]);const m=o.taskCompletions.some(({taskCvid:d})=>d===t.cvid),a=!c&&m;l.useEffect(()=>{a&&n.ackCompletedTask(t.cvid)},[n,a,t.cvid]);const i=u.completeInOrder&&!s,w=i||t.actions.length===0&&a?void 0:()=>{n.send({kind:"ClickChecklistTask",sessionId:o.id,taskCvid:t.cvid},{batch:!0}),t.actions.length>0&&(a||!t.completesOnClick)&&n.hideChecklist(),M(n,o,t.actions)};return e.createElement(W,{onClick:w,name:e.createElement(x,{doc:t.name,lookupAttribute:g(o.data)}),text:e.createElement(x,{doc:t.text,lookupAttribute:g(o.data)}),completed:a,disabled:i})},G=({completedCount:t,taskCount:s})=>{const n=s===0?0:Math.min(100,Math.round(t/s*100));return e.createElement("div",{className:"userflowjs-bubble-checklist-progress"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-bg"},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")),e.createElement("div",{className:"userflowjs-bubble-checklist-progress-fill",style:{width:`${n}%`}},e.createElement("div",{className:"userflowjs-bubble-checklist-progress-text"},n,"%")))},D=5e3,J=({active:t,onComplete:s})=>{const n=l.useRef(null);return l.useEffect(()=>{if(!t||!n.current)return;n.current.style.width="0%",n.current.offsetWidth,n.current.style.transition=`width ${D}ms linear`,n.current.style.width="100%";const o=setTimeout(s,D);return()=>clearTimeout(o)},[t,s]),e.createElement("div",{className:"userflowjs-bubble-progress--default userflowjs-bubble-progress-container--checklist"},t&&e.createElement("div",{className:"userflowjs-bubble-progress-background--checklist"}),e.createElement("div",{className:"userflowjs-bubble-progress__fill userflowjs-bubble-progress-fill--checklist",ref:n}))},Q=()=>{const{t}=T(),s=v(),n=S(),{session:o}=n,{version:u}=o,c=u.checklist,{dispatch:b}=U(),m=o.taskCompletions.length,a=c.tasks.length,i=m===a,w=l.useCallback(()=>{s.endFlow(o,{endReason:I.USER_CLOSED})},[s,o]);let d=!0,N=c.tasks,h=[],p=n.currentSectionName,y=!1;if(c.sectionsEnabled){let f=null;const k=Array.from(c.tasks).sort((r,E)=>r.sectionName.localeCompare(E.sectionName));for(const r of k)r.sectionName!==f&&(h.push(r.sectionName),f=r.sectionName);(!p||!h.includes(p))&&(p=h[0]),N=k.filter(r=>r.sectionName===p),y=N.some(r=>{const E=o.taskCompletions.some(({taskCvid:O})=>O===r.cvid);return r.blocksNextSection&&!E})}const j=p==null?-1:h.indexOf(p),R=f=>{const k=j+f;if(k>=0&&k<=h.length-1){const r=h[k];_.setItem("currentChecklistSectionName:"+o.id,r),b({kind:"setCurrentSection",sectionName:r})}};return e.createElement(e.Fragment,null,!B(c.content)&&e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(H,{doc:c.content,lookupAttribute:g(o.data)})),e.createElement(G,{completedCount:m,taskCount:a}),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-name"},p||"First section"),e.createElement("div",{className:"userflowjs-bubble-tasks"},N.map(f=>{const k=d;return o.taskCompletions.some(({taskCvid:E})=>E===f.cvid)||(d=!1),e.createElement(z,{key:f.id,task:f,previousTasksCompleted:k})})),c.sectionsEnabled&&e.createElement("div",{className:"userflowjs-bubble-section-buttons"},e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(-1),disabled:j<=0},e.createElement(C,{icon:$}),e.createElement("span",null,t("checklist.previousSection"))),e.createElement("button",{className:"userflowjs-bubble-section-button",onClick:()=>R(1),disabled:j>=h.length-1||y},e.createElement("span",null,t("checklist.nextSection")),e.createElement(C,{icon:K}))),e.createElement("div",{className:"userflowjs-bubble-dismiss-row userflowjs-bubble-dismiss-row--checklist"},u.closeDisabled?e.createElement("div",{className:"userflowjs-bubble-checklist-dismiss-button-placeholder"}):e.createElement("button",{className:F({"userflowjs-bubble-dismiss-button":!0,"userflowjs-bubble-dismiss-button--completed":i}),onClick:()=>i?w():b({kind:"showClose"})},t("checklistDismiss.button")),c.autoDismissEnabled&&e.createElement(J,{active:i,onComplete:w})))},V=()=>{const{t}=T(),s=v(),{dispatch:n}=U(),{session:o}=S();return e.createElement("div",{role:"alert"},e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement("p",null,e.createElement("b",null,t("checklistDismiss.title")))),e.createElement("div",{className:"userflowjs-bubble-buttons"},e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>s.endFlow(o,{endReason:I.USER_CLOSED})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.yes"))),e.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:()=>n({kind:"showFlow"})},e.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},t("checklistDismiss.cancel")))))};function X(t){const s=t?.querySelector(".userflowjs-bubble-task--clickable:not(.userflowjs-bubble-task--completed)")||t?.querySelector(".userflowjs-bubble-task--clickable")||t?.querySelector('button:not([tabIndex="-1"])');s&&typeof s.focus=="function"&&s.focus()}const be=({session:t,initialAutoFocus:s})=>{const n=v(),o=l.useRef(null),[u,c]=l.useReducer(Z,void 0,()=>({...Y,session:t,currentSectionName:_.getItem("currentChecklistSectionName:"+t.id),autoFocusRequested:!!s})),{session:b,contentType:m}=u;l.useEffect(()=>{b!==t&&c({kind:"updateSession",session:t})},[b,t]);const a=l.useMemo(()=>({dispatch:c}),[c]);return l.useEffect(()=>{if(!u.autoFocusRequested)return;const i=o.current;i&&X(i),c({kind:"autoFocused"})},[n,u.autoFocusRequested]),e.createElement(A.Provider,{value:a},e.createElement(q.Provider,{value:u},e.createElement("div",{ref:o},m==="close"?e.createElement(V,null):e.createElement(Q,null))))},Y={contentType:"flow"};function Z(t,s){switch(s.kind){case"updateSession":return{...t,session:s.session};case"showFlow":return{...t,contentType:"flow",autoFocusRequested:!0};case"showClose":return{...t,contentType:"close",autoFocusRequested:!0};case"setCurrentSection":return{...t,currentSectionName:s.sectionName};case"autoFocused":return{...t,autoFocusRequested:!1}}}const A=l.createContext(null),q=l.createContext(null);function U(){return l.useContext(A)}function S(){return l.useContext(q)}export{be as C,X as f};
2
2
  //# sourceMappingURL=ChecklistUI.js.map
package/EmbedApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{r as o,R as l}from"./vendor.react.js";import{O as m,E as K}from"./userflow.js";import{u as P,i as k}from"./client-context.js";import{o as M}from"./vendor.obj-str.js";import{u as U,a as Y,g as q,D as Z}from"./stylesheets.js";import{C as G}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{u as J,S as Q,b as V}from"./use-selector-element-monitoring.js";import{w as X,f as ee}from"./flow-host.styl.js";import{r as te}from"./vendor.react-dom.js";import{F as re}from"./Frame.js";import{h as d}from"./roots.js";import{u as ne}from"./use-element-rect.js";import{C as oe}from"./ChecklistUI.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-i18next.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./flow-condition-types.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";import"./use-window-resize.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[a]="b4025ec3-876c-46f3-93d7-e7e6086d9943",r._sentryDebugIdIdentifier="sentry-dbid-b4025ec3-876c-46f3-93d7-e7e6086d9943")}catch{}})();const ke=({session:r,checklistSession:a})=>{const p=P(),{version:i}=r,t=i.embed,y=U(i.theme),L=r.locale?r.locale.standardLocaleId:r.version.theme.languageId,b=r.version.embed?.blocks||[],S=b.length===1&&b[0]?.type==="CHECKLIST";o.useEffect(()=>{k.changeLanguage(L)},[L]);const e=o.useRef(null);o.useLayoutEffect(()=>{e.current=document.createElement("div")},[]);const[N,v]=o.useState(!1),{loaded:D}=Y(window,ee,y),[F,I]=o.useState(!1),h=D&&F,[A,_]=o.useState(0),j=o.useCallback(()=>{I(!1),_(n=>n+1)},[]),E=![m.BODY_FIRST,m.BODY_LAST].includes(t.embedMode),[f,x]=o.useState(null),B=o.useCallback(({targetEl:n})=>{x(n)},[]),O=o.useCallback(()=>{E&&console.warn(`Userflow.js: Could not find embed element for banner "${r.flow.name||r.flow.id}"`),x(null)},[E,r.flow.name,r.flow.id]);J({selector:t.embedSelector,targetMoved:B,targetLost:O});const[T,$]=o.useState(!1),c=o.useCallback(()=>{const n=e.current;n&&n.parentElement&&(n.parentElement.removeChild(n),v(!1))},[e]),W=o.useCallback(()=>{r.kind==="embed"&&($(!0),p.endFlow(r,{endReason:K.USER_CLOSED}),c())},[c,r,p]);o.useLayoutEffect(()=>{try{if(S&&!a){c();return}if(!e.current?.parentElement){if(E&&!f){c();return}switch(t.embedMode){case m.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",e.current);break;case m.BODY_LAST:document.body.insertAdjacentElement("beforeend",e.current);break;case m.ELEMENT_FIRST:f.insertAdjacentElement("afterbegin",e.current);break;case m.ELEMENT_LAST:f.insertAdjacentElement("beforeend",e.current);break;case m.ELEMENT_BEFORE:f.insertAdjacentElement("beforebegin",e.current);break;case m.ELEMENT_AFTER:f.insertAdjacentElement("afterend",e.current);break;default:document.body.insertAdjacentElement("afterbegin",e.current)}v(!0),j()}}catch(n){console.error("Error during element insertion:",n)}},[c,e,E,f,i.embed?.overlay,i.embed?.sticky,t.embedMode,j,a]);const g=n=>M({"userflowjs-embed":!0,[`userflowjs-embed--embed-mode-${t.embedMode}`]:!0,[`userflowjs-embed--animate-${String(t.animate)}`]:n&&t.animate});o.useLayoutEffect(()=>{e.current&&(e.current.className=g(!1))},[e,t.embedMode,t.animate]);const w=t.zIndex||X(0);o.useLayoutEffect(()=>{e.current&&(e.current.style.zIndex=w==null?"":String(w),e.current.style.position=h?"":"absolute",e.current.style.visibility=h?"":"hidden")},[e,w,h]);const{height:u,setEl:H}=ne();o.useLayoutEffect(()=>{e.current&&e.current.style.setProperty("--userflowjs-embed-height",u&&d(u+(t.marginTop||0)+(t.marginBottom||0))||"0px")},[e,u,t.marginTop,t.marginBottom]);const z=()=>{if(!r.version.embed?.blocks?.length)return null;const n=(s,C)=>l.createElement("div",{className:"userflowjs-embed-wrapper",key:C},l.createElement("div",{className:"userflowjs-bubble-toolbar"},r.draftMode&&l.createElement("div",{className:"userflowjs-bubble-draft"},"Preview"),!i.closeDisabled&&l.createElement("button",{"data-testid":"userflow-embed-dismiss",className:"userflowjs-bubble-toolbar-button",onClick:W,"aria-label":"Close embed"},l.createElement(Z,{icon:G}))),s);return b.map(s=>{switch(s.type){case"CHECKLIST":return a?n(l.createElement("div",{style:{...q(y),paddingTop:i.closeDisabled?"0px":"32px"},className:"userflowjs-embedded-checklist"},l.createElement(oe,{session:a})),s.id):null;default:return console.warn(`Unknown embed block type: ${s.type}`),null}})};return o.useLayoutEffect(()=>{const n=`userflow-${r.id}`;return e.current.id=n,()=>{T||document.getElementById(n)===e.current&&c()}},[e,r.id,c,T]),o.useLayoutEffect(()=>{const n=r.version.embed?.blocks?.length&&r.version.embed.blocks.some(s=>s.type==="CHECKLIST"?a:!1);u&&u>0&&n?(e.current.style.height=`${u}px`,e.current.className=g(t.animate)):(e.current.style.height="0px",e.current.className=g(!1))},[e,u,a,t.animate]),o.useEffect(()=>{if(!e.current)return;const n=new ResizeObserver(C=>{for(const R of C)R.contentRect&&!t.embedMode&&(e.current.style.height=`${R.contentRect.height}px`)}),s=e.current.querySelector("iframe");return s&&n.observe(s),()=>{n.disconnect()}},[e,t.embedMode]),!N||!b.length||S&&!a?null:te.createPortal(l.createElement(Q.Provider,{value:r},l.createElement(re,{key:A,className:"userflowjs-embed-frame",style:{maxWidth:t.maxWidth?d(t.maxWidth):"100%",width:"100%",height:r.version.embed?.blocks?.length?"100%":"auto",minHeight:0,marginTop:d(t.marginTop),marginRight:d(t.marginRight),marginBottom:d(t.marginBottom),marginLeft:d(t.marginLeft),borderRadius:d(t.borderRadius)},stylesheet:V,theme:y,onStylesheetsLoad:I,title:"Embedded Content"},l.createElement("div",{ref:H,className:M({"userflowjs-embed-root":!0,[`userflowjs-embed-root--content-layout-${t.contentLayout}`]:!0,"userflowjs-theme-root":!0,"userflowjs-embed-root-blocks":b.length>0}),dir:k.dir(),style:{width:"100%",maxWidth:t.maxContentWidth?d(t.maxContentWidth):"100%",margin:"0 auto"}},z()))),e.current)};export{ke as EmbedApp,ke as default};
1
+ import{r as o,R as l}from"./vendor.react.js";import{O as m,E as K}from"./userflow.js";import{u as P,i as k}from"./client-context.js";import{o as M}from"./vendor.obj-str.js";import{u as U,a as Y,g as q,D as Z}from"./stylesheets.js";import{C as G}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{c as J,S as Q,b as V}from"./use-selector-element-monitoring.js";import{w as X,f as ee}from"./flow-host.styl.js";import{r as te}from"./vendor.react-dom.js";import{F as re}from"./Frame.js";import{h as d}from"./roots.js";import{u as ne}from"./use-element-rect.js";import{C as oe}from"./ChecklistUI.js";import"./vendor.core-js.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./vendor.react-i18next.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./flow-condition-types.js";import"./vendor.date-fns.js";import"./vendor.scheduler.js";import"./use-window-resize.js";(function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},a=new Error().stack;a&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[a]="daac8e9d-885e-4cce-8834-27ba3b586d70",r._sentryDebugIdIdentifier="sentry-dbid-daac8e9d-885e-4cce-8834-27ba3b586d70")}catch{}})();const ke=({session:r,checklistSession:a})=>{const p=P(),{version:i}=r,t=i.embed,y=U(i.theme),L=r.locale?r.locale.standardLocaleId:r.version.theme.languageId,b=r.version.embed?.blocks||[],S=b.length===1&&b[0]?.type==="CHECKLIST";o.useEffect(()=>{k.changeLanguage(L)},[L]);const e=o.useRef(null);o.useLayoutEffect(()=>{e.current=document.createElement("div")},[]);const[N,v]=o.useState(!1),{loaded:D}=Y(window,ee,y),[F,I]=o.useState(!1),h=D&&F,[A,_]=o.useState(0),j=o.useCallback(()=>{I(!1),_(n=>n+1)},[]),E=![m.BODY_FIRST,m.BODY_LAST].includes(t.embedMode),[f,x]=o.useState(null),B=o.useCallback(({targetEl:n})=>{x(n)},[]),O=o.useCallback(()=>{E&&console.warn(`Userflow.js: Could not find embed element for banner "${r.flow.name||r.flow.id}"`),x(null)},[E,r.flow.name,r.flow.id]);J({selector:t.embedSelector,targetMoved:B,targetLost:O});const[T,$]=o.useState(!1),c=o.useCallback(()=>{const n=e.current;n&&n.parentElement&&(n.parentElement.removeChild(n),v(!1))},[e]),W=o.useCallback(()=>{r.kind==="embed"&&($(!0),p.endFlow(r,{endReason:K.USER_CLOSED}),c())},[c,r,p]);o.useLayoutEffect(()=>{try{if(S&&!a){c();return}if(!e.current?.parentElement){if(E&&!f){c();return}switch(t.embedMode){case m.BODY_FIRST:document.body.insertAdjacentElement("afterbegin",e.current);break;case m.BODY_LAST:document.body.insertAdjacentElement("beforeend",e.current);break;case m.ELEMENT_FIRST:f.insertAdjacentElement("afterbegin",e.current);break;case m.ELEMENT_LAST:f.insertAdjacentElement("beforeend",e.current);break;case m.ELEMENT_BEFORE:f.insertAdjacentElement("beforebegin",e.current);break;case m.ELEMENT_AFTER:f.insertAdjacentElement("afterend",e.current);break;default:document.body.insertAdjacentElement("afterbegin",e.current)}v(!0),j()}}catch(n){console.error("Error during element insertion:",n)}},[c,e,E,f,i.embed?.overlay,i.embed?.sticky,t.embedMode,j,a]);const g=n=>M({"userflowjs-embed":!0,[`userflowjs-embed--embed-mode-${t.embedMode}`]:!0,[`userflowjs-embed--animate-${String(t.animate)}`]:n&&t.animate});o.useLayoutEffect(()=>{e.current&&(e.current.className=g(!1))},[e,t.embedMode,t.animate]);const w=t.zIndex||X(0);o.useLayoutEffect(()=>{e.current&&(e.current.style.zIndex=w==null?"":String(w),e.current.style.position=h?"":"absolute",e.current.style.visibility=h?"":"hidden")},[e,w,h]);const{height:u,setEl:H}=ne();o.useLayoutEffect(()=>{e.current&&e.current.style.setProperty("--userflowjs-embed-height",u&&d(u+(t.marginTop||0)+(t.marginBottom||0))||"0px")},[e,u,t.marginTop,t.marginBottom]);const z=()=>{if(!r.version.embed?.blocks?.length)return null;const n=(s,C)=>l.createElement("div",{className:"userflowjs-embed-wrapper",key:C},l.createElement("div",{className:"userflowjs-bubble-toolbar"},r.draftMode&&l.createElement("div",{className:"userflowjs-bubble-draft"},"Preview"),!i.closeDisabled&&l.createElement("button",{"data-testid":"userflow-embed-dismiss",className:"userflowjs-bubble-toolbar-button",onClick:W,"aria-label":"Close embed"},l.createElement(Z,{icon:G}))),s);return b.map(s=>{switch(s.type){case"CHECKLIST":return a?n(l.createElement("div",{style:{...q(y),paddingTop:i.closeDisabled?"0px":"32px"},className:"userflowjs-embedded-checklist"},l.createElement(oe,{session:a})),s.id):null;default:return console.warn(`Unknown embed block type: ${s.type}`),null}})};return o.useLayoutEffect(()=>{const n=`userflow-${r.id}`;return e.current.id=n,()=>{T||document.getElementById(n)===e.current&&c()}},[e,r.id,c,T]),o.useLayoutEffect(()=>{const n=r.version.embed?.blocks?.length&&r.version.embed.blocks.some(s=>s.type==="CHECKLIST"?a:!1);u&&u>0&&n?(e.current.style.height=`${u}px`,e.current.className=g(t.animate)):(e.current.style.height="0px",e.current.className=g(!1))},[e,u,a,t.animate]),o.useEffect(()=>{if(!e.current)return;const n=new ResizeObserver(C=>{for(const R of C)R.contentRect&&!t.embedMode&&(e.current.style.height=`${R.contentRect.height}px`)}),s=e.current.querySelector("iframe");return s&&n.observe(s),()=>{n.disconnect()}},[e,t.embedMode]),!N||!b.length||S&&!a?null:te.createPortal(l.createElement(Q.Provider,{value:r},l.createElement(re,{key:A,className:"userflowjs-embed-frame",style:{maxWidth:t.maxWidth?d(t.maxWidth):"100%",width:"100%",height:r.version.embed?.blocks?.length?"100%":"auto",minHeight:0,marginTop:d(t.marginTop),marginRight:d(t.marginRight),marginBottom:d(t.marginBottom),marginLeft:d(t.marginLeft),borderRadius:d(t.borderRadius)},stylesheet:V,theme:y,onStylesheetsLoad:I,title:"Embedded Content"},l.createElement("div",{ref:H,className:M({"userflowjs-embed-root":!0,[`userflowjs-embed-root--content-layout-${t.contentLayout}`]:!0,"userflowjs-theme-root":!0,"userflowjs-embed-root-blocks":b.length>0}),dir:k.dir(),style:{width:"100%",maxWidth:t.maxContentWidth?d(t.maxContentWidth):"100%",margin:"0 auto"}},z()))),e.current)};export{ke as EmbedApp,ke as default};
2
2
  //# sourceMappingURL=EmbedApp.js.map
package/FlowApp.js CHANGED
@@ -1,4 +1,4 @@
1
- import{R as n,r as d}from"./vendor.react.js";import{E as B,P as ce,I as F,q as k,V as P,J as ue,F as de,T as x,H as C,K as pe,L as fe,M as me,U as G}from"./userflow.js";import{l as be}from"./vendor.lodash.js";import"./vendor.core-js.js";import{u as _}from"./vendor.react-i18next.js";import{B as K,F as Ee}from"./FlowChrome.js";import{m as ge,d as X,R as we,i as he,g as ve,c as Te,u as Se,r as ye,e as W,h as ke,S as Me}from"./use-selector-element-monitoring.js";import{g as Q,i as Z}from"./flow-condition-types.js";import{u as D,i as Be}from"./client-context.js";import{z as Ie,e as Fe,r as De}from"./roots.js";import{a as J,S as Le}from"./flow-host.styl.js";import{b as Re}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{D as Ne,u as Ce}from"./stylesheets.js";import{T as Ae}from"./Trigger.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.obj-str.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";import"./vendor.i18next.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="eb5bfd54-4739-4872-aa81-e40719773367",e._sentryDebugIdIdentifier="sentry-dbid-eb5bfd54-4739-4872-aa81-e40719773367")}catch{}})();const Pe=()=>{const{t:e}=_(),s=D(),{dispatch:t,restart:o}=R(),{session:l,step:p}=M(),a="userflowjs-bubble-button userflowjs-bubble-button--default userflowjs-bubble-menu__item";return n.createElement("div",{role:"dialog","aria-modal":L(p)?"true":void 0,"aria-label":"Guide menu"},n.createElement("div",{className:"userflowjs-bubble-menu__title"},e("menu.title")),n.createElement("button",{className:a,onClick:()=>s.endFlow(l,{endReason:B.USER_CLOSED})},e("menu.close")),l.version.restartEnabled&&n.createElement("button",{className:a,onClick:o},e("menu.restart")),n.createElement("button",{className:a,onClick:()=>t({kind:"showFlow"})},e("menu.back")))},z=({progress:e,type:s,position:t,totalSteps:o})=>{const{t:l}=_(),p=d.useMemo(()=>parseFloat(e||"0"),[e]),a=d.useMemo(()=>({width:`${p*100}%`}),[p]),c=d.useMemo(()=>s===ce.DEFAULT?F.TOP:t,[s,t]),u=c===F.BOTTOM?"userflowjs-bubble-progress--bottom":"",m=d.useMemo(()=>`userflowjs-bubble-progress--${be.kebabCase(s||"DEFAULT").toLowerCase()} ${u}`,[s,u]),i=o||0,r=d.useMemo(()=>Math.min(Math.floor(p*i),i),[p,i]);return n.createElement(n.Fragment,null,(s==="CHAINED_ROUNDED"||s==="CHAINED_SQUARED"||s==="DOTTED")&&n.createElement("div",{className:m},Array.from({length:3}).map((E,b)=>n.createElement("div",{key:b,className:`userflowjs-bubble-progress-step ${b<Math.floor(p*3)?"userflowjs-bubble-progress-step_completed":""}`}))),s==="NARROW"&&n.createElement("div",{className:m},n.createElement("div",{className:"linear-progress-bar"},n.createElement("div",{className:"userflowjs-bubble-progress--narrow-fill",style:a}))),s==="NUMBERED"&&n.createElement("div",{className:m},n.createElement("span",{className:"numbered-progress"},l("of",{replace:{range:i,selected:r}}))),!["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW","NUMBERED"].includes(s)&&n.createElement("div",{className:`${m} ${c===F.BOTTOM?"userflowjs-bubble-progress--bottom":""}`},n.createElement("div",{className:"userflowjs-bubble-progress__fill",style:a})))},xe=({theme:e})=>{const s=D(),{session:t,step:o,muted:l,shouldLabelDialog:p}=M(),{version:a}=t,{dispatch:c}=R(),u=a.steps[0],m=u&&u.id===o.id,i=m&&o.progress==="1",r=d.useMemo(()=>o.content&&ge(X(o.content),{buttons:o.buttons,questions:o.questions}),[o.content,o.buttons,o.questions]),E=a.steps.filter(T=>T.appearance!==k.HIDDEN),b=E.findIndex(T=>T.id===o.id),w=E.length,h=w>0?((b+1)/w).toString():"0";return n.createElement("div",{key:o.id,role:"alertdialog","aria-modal":L(o)?"true":void 0,"aria-label":p?"Guide":void 0},!i&&e.progressBarPosition==="TOP"&&e.progressBarEnabled&&n.createElement(z,{progress:h,type:e.progressBarType,position:o.appearance===k.MODAL?void 0:F.TOP,totalSteps:w}),n.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content","data-progress-position":e.progressBarPosition,"data-progress-type":e.progressBarType},n.createElement(we,{doc:r,lookupAttribute:Q(t.data),buttons:o.buttons,questions:o.questions})),n.createElement(K,{draftMode:t.draftMode,muted:l,toggleMuted:e.voiceType!==P.NONE?()=>c({kind:"toggleMuted"}):void 0,close:a.closeDisabled?void 0:()=>e.flowXButtonBehavior===ue.DISMISS||m?s.endFlow(t,{endReason:B.USER_CLOSED}):c({kind:"showMenu"})}),!i&&e.progressBarPosition==="BOTTOM"&&e.progressBarEnabled&&n.createElement(z,{progress:h,type:e.progressBarType,position:F.BOTTOM,totalSteps:w}))};function Oe(e,s){if(!e)return"";typeof e=="string"&&(e=X(e));const t=[],o=/[.!?;,]$/;function l(){const c=(t[t.length-1]||"").trim();c&&!c.match(o)&&t.push(".")}function p(c){if(he(c)){if(c.text&&!c.silent){const u=c.text.split(`
1
+ import{R as n,r as d}from"./vendor.react.js";import{E as B,P as ce,I as F,q as k,V as P,J as ue,F as de,T as x,H as C,K as pe,L as fe,M as me,U as G}from"./userflow.js";import{l as be}from"./vendor.lodash.js";import"./vendor.core-js.js";import{u as _}from"./vendor.react-i18next.js";import{B as K,F as Ee}from"./FlowChrome.js";import{m as ge,d as X,R as we,i as he,g as ve,e as Te,c as Se,r as ye,f as W,h as ke,S as Me}from"./use-selector-element-monitoring.js";import{g as Q,i as Z}from"./flow-condition-types.js";import{u as D,i as Be}from"./client-context.js";import{z as Ie,e as Fe,r as De}from"./roots.js";import{a as J,S as Le}from"./flow-host.styl.js";import{b as Re}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{D as Ne,u as Ce}from"./stylesheets.js";import{T as Ae}from"./Trigger.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.babel.runtime.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.obj-str.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";import"./vendor.i18next.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="9b66104b-954f-4a63-9e06-180145996d26",e._sentryDebugIdIdentifier="sentry-dbid-9b66104b-954f-4a63-9e06-180145996d26")}catch{}})();const Pe=()=>{const{t:e}=_(),s=D(),{dispatch:t,restart:o}=R(),{session:l,step:p}=M(),a="userflowjs-bubble-button userflowjs-bubble-button--default userflowjs-bubble-menu__item";return n.createElement("div",{role:"dialog","aria-modal":L(p)?"true":void 0,"aria-label":"Guide menu"},n.createElement("div",{className:"userflowjs-bubble-menu__title"},e("menu.title")),n.createElement("button",{className:a,onClick:()=>s.endFlow(l,{endReason:B.USER_CLOSED})},e("menu.close")),l.version.restartEnabled&&n.createElement("button",{className:a,onClick:o},e("menu.restart")),n.createElement("button",{className:a,onClick:()=>t({kind:"showFlow"})},e("menu.back")))},z=({progress:e,type:s,position:t,totalSteps:o})=>{const{t:l}=_(),p=d.useMemo(()=>parseFloat(e||"0"),[e]),a=d.useMemo(()=>({width:`${p*100}%`}),[p]),c=d.useMemo(()=>s===ce.DEFAULT?F.TOP:t,[s,t]),u=c===F.BOTTOM?"userflowjs-bubble-progress--bottom":"",m=d.useMemo(()=>`userflowjs-bubble-progress--${be.kebabCase(s||"DEFAULT").toLowerCase()} ${u}`,[s,u]),i=o||0,r=d.useMemo(()=>Math.min(Math.floor(p*i),i),[p,i]);return n.createElement(n.Fragment,null,(s==="CHAINED_ROUNDED"||s==="CHAINED_SQUARED"||s==="DOTTED")&&n.createElement("div",{className:m},Array.from({length:3}).map((E,b)=>n.createElement("div",{key:b,className:`userflowjs-bubble-progress-step ${b<Math.floor(p*3)?"userflowjs-bubble-progress-step_completed":""}`}))),s==="NARROW"&&n.createElement("div",{className:m},n.createElement("div",{className:"linear-progress-bar"},n.createElement("div",{className:"userflowjs-bubble-progress--narrow-fill",style:a}))),s==="NUMBERED"&&n.createElement("div",{className:m},n.createElement("span",{className:"numbered-progress"},l("of",{replace:{range:i,selected:r}}))),!["CHAINED_ROUNDED","CHAINED_SQUARED","DOTTED","NARROW","NUMBERED"].includes(s)&&n.createElement("div",{className:`${m} ${c===F.BOTTOM?"userflowjs-bubble-progress--bottom":""}`},n.createElement("div",{className:"userflowjs-bubble-progress__fill",style:a})))},xe=({theme:e})=>{const s=D(),{session:t,step:o,muted:l,shouldLabelDialog:p}=M(),{version:a}=t,{dispatch:c}=R(),u=a.steps[0],m=u&&u.id===o.id,i=m&&o.progress==="1",r=d.useMemo(()=>o.content&&ge(X(o.content),{buttons:o.buttons,questions:o.questions}),[o.content,o.buttons,o.questions]),E=a.steps.filter(T=>T.appearance!==k.HIDDEN),b=E.findIndex(T=>T.id===o.id),w=E.length,h=w>0?((b+1)/w).toString():"0";return n.createElement("div",{key:o.id,role:"alertdialog","aria-modal":L(o)?"true":void 0,"aria-label":p?"Guide":void 0},!i&&e.progressBarPosition==="TOP"&&e.progressBarEnabled&&n.createElement(z,{progress:h,type:e.progressBarType,position:o.appearance===k.MODAL?void 0:F.TOP,totalSteps:w}),n.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content","data-progress-position":e.progressBarPosition,"data-progress-type":e.progressBarType},n.createElement(we,{doc:r,lookupAttribute:Q(t.data),buttons:o.buttons,questions:o.questions})),n.createElement(K,{draftMode:t.draftMode,muted:l,toggleMuted:e.voiceType!==P.NONE?()=>c({kind:"toggleMuted"}):void 0,close:a.closeDisabled?void 0:()=>e.flowXButtonBehavior===ue.DISMISS||m?s.endFlow(t,{endReason:B.USER_CLOSED}):c({kind:"showMenu"})}),!i&&e.progressBarPosition==="BOTTOM"&&e.progressBarEnabled&&n.createElement(z,{progress:h,type:e.progressBarType,position:F.BOTTOM,totalSteps:w}))};function Oe(e,s){if(!e)return"";typeof e=="string"&&(e=X(e));const t=[],o=/[.!?;,]$/;function l(){const c=(t[t.length-1]||"").trim();c&&!c.match(o)&&t.push(".")}function p(c){if(he(c)){if(c.text&&!c.silent){const u=c.text.split(`
2
2
  `);u.forEach((m,i)=>{t.push(m),i<u.length-1&&(l(),t.push(`
3
3
  `))})}return}switch(c.type){case"attribute":{const u=ve(c,s);u&&t.push(u);break}default:a(c.children),["link"].includes(c.type)||(l(),t.push(`
4
4
 
package/FlowChrome.js CHANGED
@@ -1,3 +1,3 @@
1
- import{S as we,T as Ee,M as Le,C as ye}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as p,r as l}from"./vendor.react.js";import{D as Dt,a as ve,g as Be}from"./stylesheets.js";import"./vendor.core-js.js";import{u as fe}from"./vendor.react-i18next.js";import{F as ne}from"./Frame.js";import{l as Y,q as y,L as ct,F as Me,N,a2 as Oe,a1 as b}from"./userflow.js";import{a as Ie,f as Re}from"./flow-host.styl.js";import{u as _e,b as Ne}from"./use-selector-element-monitoring.js";import{u as Pe}from"./use-window-resize.js";import{S as ke}from"./logomark.js";import{o as Yt}from"./vendor.obj-str.js";import{e as Gt,d as Ht,j as ut,t as je,l as ie,M as ue,q as Ft,u as Ce,p as xe}from"./roots.js";import{c as De}from"./vendor.canvas-confetti.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e00b0b9d-b463-4419-bf93-0d7d9ebed796",e._sentryDebugIdIdentifier="sentry-dbid-e00b0b9d-b463-4419-bf93-0d7d9ebed796")}catch{}})();const uo=({draftMode:e,muted:t,toggleMuted:o,close:g,minimize:L})=>{const{t:s}=fe();return p.createElement("div",{className:"userflowjs-bubble-toolbar"},e&&p.createElement("div",{className:"userflowjs-bubble-draft"},typeof e=="string"?e:"Preview"),o&&p.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:o,"aria-label":t?"Unmute":"Mute"},t?p.createElement(Dt,{icon:we}):p.createElement(Dt,{icon:Ee})),L&&p.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:L,"aria-label":"Minimize checklist"},p.createElement(Dt,{icon:Le})),g&&p.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:g,"aria-label":s("menu.close")},p.createElement(Dt,{icon:ye})))},Fe=new URL("avatar-frame.css",import.meta.url).href;function He(e,t){const o=window.Intercom;l.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||Y.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(a){console.warn("Userflow.js: Error when hiding Intercom launcher",a)}return()=>{if(!Y.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(a){console.warn("Userflow.js: Error when unhiding Intercom launcher",a)}}}},[o,e.autoHideIntercom,t]);const g=window.$crisp;l.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!g||Y.autoHide3pDisabled)){try{g.push(["do","chat:hide"])}catch(a){console.warn("Userflow.js: Error when hiding Crisp Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{g.push(["do","chat:show"])}catch(a){console.warn("Userflow.js: Error when unhiding Crisp Chat",a)}}}},[g,e.autoHideCrisp,t]);const L=window.HubSpotConversations;l.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!L||Y.autoHide3pDisabled)){try{L.widget.remove()}catch(a){console.warn("Userflow.js: Error when hiding HubSpot Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{L.widget.load()}catch(a){console.warn("Userflow.js: Error when unhiding HubSpot Chat",a)}}}},[L,e.autoHideHubspot,t]);const s=window.drift;l.useEffect(()=>{if(!(!t||!e.autoHideDrift||!s||Y.autoHide3pDisabled)){try{s.api.widget.hide()}catch(a){console.warn("Userflow.js: Error when hiding Drift Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{s.api.widget.show()}catch(a){console.warn("Userflow.js: Error when unhiding Drift Chat",a)}}}},[s,e.autoHideDrift,t])}const Q={PARTICLE_COUNT:400,ANIMATION_DELAY:400,DEFAULT_SPREAD:360,DEFAULT_GRAVITY:1,DEFAULT_TICKS:100,DEFAULT_Z_INDEX:5,TOOLTIP_DECAY:.85,TOOLTIP_START_VELOCITY:30},Ae={particleCount:Q.PARTICLE_COUNT,spread:Q.DEFAULT_SPREAD,gravity:Q.DEFAULT_GRAVITY,ticks:Q.DEFAULT_TICKS,angle:90,zIndex:Q.DEFAULT_Z_INDEX,disableForReducedMotion:!0},Se=e=>{if(!e)return{x:.5,y:.5};const t=e.getBoundingClientRect();return{x:t.left>=0?(t.left+t.width/2)/window.innerWidth:.5,y:t.top>=0?(t.top+t.height/2)/window.innerHeight:.5}},Ue=({bubbleFrame:e,isBubbleVisible:t,theme:o,stepType:g,onAnimationComplete:L,confettiDelay:s,zIndex:a})=>{const[d,T]=l.useState(!1);return l.useEffect(()=>{if(!t||!d||!o.confettiColors||o.confettiColors.length===0)return;const u=setTimeout(()=>{try{const E=Se(e),v={...Ae,colors:o.confettiColors||void 0,origin:E,zIndex:a??Q.DEFAULT_Z_INDEX,...g===y.TOOLTIP&&{decay:Q.TOOLTIP_DECAY,startVelocity:Q.TOOLTIP_START_VELOCITY}};De(v)}catch(E){console.warn("Error launching confetti:",E)}finally{L?.(),T(!1)}},s||Q.ANIMATION_DELAY);return()=>clearTimeout(u)},[t,d,o.confettiColors,e,g,L,s,a]),{startConfetti:T}},Xt=16,Rt=20,co=({company:e,theme:t,position:o,absoluteWidth:g,absoluteHeight:L,stepKey:s,stepAppearance:a,width:d,backgroundImageUrl:T,tooltipSelector:u,allowMissingTooltipTarget:E,tooltipPlacement:v,backdrop:C,tooltipTargetBlocked:W,backdropPadding:tt,zIndex:P,onTooltipTargetClick:B,onTooltipTargetMissingChange:x,onModalBackdropClick:K,onVisibleChange:et,speaking:D,noIframe:R,MadeWithUserflow:c,minimizeOnAvatarClick:F,autoHide3pEnabled:O,bubbleFrameRootRef:M,frameWrapperHtmlAttributes:_,rootChildren:k,children:r,isModalAnnouncement:f,confettiEnabled:ot})=>{const U=o||"absolute",H=v||null,G=tt||"0",at=c||We,rt=Ie(),ft=U==="fixed"?P??rt+1:1,J=ft-1,_t=ft-2,{i18n:Nt}=fe(),nt=Nt.dir(),dt=l.useRef(null),ht=l.useRef(null),lt=l.useRef(null),[X,Pt]=l.useState(null),gt=l.useRef(null),Tt=l.useRef(null),wt=l.useRef(null),Et=l.useRef(null),Lt=l.useRef(null),yt=l.useRef(null),vt=l.useRef(null),Bt=l.useRef(null),Mt=l.useRef(null);l.useLayoutEffect(()=>{const i=dt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:kt}=ve(window,Re,t),[jt,At]=l.useState(!1),[St,w]=l.useState(!1),n=kt&&jt&&St;let[A,st]=l.useState(!1);a!==y.BUBBLE&&(F=!1,A=!1),l.useEffect(()=>{st(!1)},[s]);const I=l.useRef({appearance:null,width:null,theme:t,bubbleFrameHeight:0,backdrop:!1,backdropPadding:"0",prevTooltipTargetParams:null,tooltipTargetParams:null,desiredTooltipPlacement:null,tooltipPlacement:null,lastReportedTooltipTargetMissing:!1,tooltipTargetMissing:!1,tooltipTargetMissingTimeout:void 0,stepKeyScrolledIntoView:void 0,targetScrolledIntoView:null}),[$,j]=l.useState(null),Z=$!=null&&n;l.useEffect(()=>{et&&et(Z)},[et,Z]);const bt=l.useCallback(i=>{I.current.lastReportedTooltipTargetMissing!==i&&(I.current.lastReportedTooltipTargetMissing=i,x&&x(i))},[x]),z=l.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const pt=dt.current,xt=ht.current,It=lt.current,Zt=Tt.current,qt=gt.current,Kt=wt.current,Jt=Et.current,Qt=Lt.current,te=yt.current,ee=vt.current,oe=Bt.current,ae=Mt.current;if(!pt||!xt||!It||!X||!Zt||!qt||!Kt||!Jt||!Qt||!te||!ee||!oe||!ae||!n)return;const h=I.current,{tooltipTargetParams:Ut}=h;xe();let V=a,le=!1;V===y.TOOLTIP&&!E&&!Ut&&(h.tooltipTargetMissing?(V=y.BUBBLE,le=!0):V=null);const se=V!==h.appearance,he=d!==h.width;if((i||se||he||t!==h.theme||C!=h.backdrop||G!=h.backdropPadding||H!==h.desiredTooltipPlacement)&&(h.appearance=V,h.width=d,h.theme=t,h.backdrop=C,h.backdropPadding=G,h.desiredTooltipPlacement=H,S=!0,ze({layoutState:h,width:d,position:U,absoluteWidth:g,root:pt,bubble:xt,bubbleFrameRoot:X,avatar:Zt,avatarNotch:qt,modalBackdrop:ae,dir:nt})),!R){const q=X.offsetHeight,Vt=Gt(),Wt=Ht()<800?0:Xt,ge=t.avatarType===ct.NONE?0:V===y.BUBBLE?Rt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,re=Vt-2*Wt-ge,zt=Math.min(q,re);if(V&&zt!==h.bubbleFrameHeight){if(h.bubbleFrameHeight=zt,m(It,"height",ut(zt)),je(It)&&It.contentDocument){const Te=It.contentDocument.documentElement;Te.style.overflowY=q<=re?"hidden":"scroll"}S=!0}}if(S&&V){let q=se;if(V===y.TOOLTIP){const Vt=h.tooltipTargetParams&&h.tooltipTargetParams.targetEl,Wt=h.prevTooltipTargetParams&&h.prevTooltipTargetParams.targetEl;Vt!==Wt&&(q=!0)}h.prevTooltipTargetParams=h.tooltipTargetParams,Ye({layoutState:h,animateIn:q,position:U,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:H,root:pt,bubble:xt,tooltipNotch:Kt,tooltipBackdrop:Jt,tooltipBlockTop:Qt,tooltipBlockRight:te,tooltipBlockBottom:ee,tooltipBlockLeft:oe,dir:nt})}if(V===y.TOOLTIP){const q=Ut&&Ut.targetEl;q&&h.stepKeyScrolledIntoView!==s&&h.targetScrolledIntoView!==q&&(h.stepKeyScrolledIntoView=s,h.targetScrolledIntoView=q,Xe(q))}else h.stepKeyScrolledIntoView=void 0,h.targetScrolledIntoView=null;bt(le),j(V)},[n,X,s,a,d,t,U,g,L,E,H,C,G,R,bt,nt]),Ot=l.useRef(z);Ot.current=z;const $t=l.useRef(!1);l.useEffect(()=>{const i=()=>{$t.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const Ct=()=>{window.clearTimeout(I.current.tooltipTargetMissingTimeout),I.current.tooltipTargetMissingTimeout=void 0};l.useEffect(()=>Ct,[]);const de=l.useCallback(()=>{const i=I.current;if(i.tooltipTargetParams=null,E||(i.tooltipPlacement=null),a!==y.TOOLTIP){Ct(),i.tooltipTargetMissing=!1;return}if(!E&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=u&&!ie(u)&&u.type===Me.AUTO&&!u.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!$t.current){if(u&&!ie(u)){let pt=u.autoData;if(u.autoData)try{pt=JSON.parse(u.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
2
- `,{type:u.type,autoData:pt,excludeText:u.excludeText,precision:u.precision,text:u.text,css:u.css})}Ct(),i.tooltipTargetMissing=!0,Ot.current()}},S)}Ot.current()},[a,E,u,t.tooltipMissingToleranceSeconds]),be=l.useCallback(i=>{const S=I.current;Ct(),S.tooltipTargetParams&&S.tooltipTargetParams.targetEl!==i.targetEl&&(S.tooltipPlacement=null),S.tooltipTargetParams=i,z({forceUpdatePosition:!0})},[z]);_e({selector:a===y.TOOLTIP&&u||null,targetMoved:be,targetLost:de,onTargetClick:B});const me=l.useCallback(()=>z({forceAppearanceLayout:!0}),[z]);Pe(me),l.useEffect(()=>{if(!X||R||typeof ue!="function")return;let i;const S=new ue(()=>{i||(i=window.requestAnimationFrame(()=>{i=void 0,Ot.current()}))});return S.observe(X,{childList:!0,attributes:!0,subtree:!0}),()=>{S.disconnect(),i&&window.cancelAnimationFrame(i)}},[X,R]);const{startConfetti:pe}=Ue({stepType:a,theme:t,bubbleFrame:lt.current,isBubbleVisible:Z,confettiDelay:400,zIndex:_t});l.useEffect(()=>{Z&&ot&&lt.current&&pe(!0)},[ot,s,Z]),l.useLayoutEffect(()=>{Ot.current()}),l.useLayoutEffect(()=>{U==="absolute"&&z({forceAppearanceLayout:!0})},[U,g,L]);const mt=i=>{i.preventDefault(),i.stopPropagation()};return He(t,!!O&&$===y.BUBBLE),p.createElement("div",{ref:dt,"data-testid":"flow-chrome",className:"userflowjs-flow-chrome userflowjs-theme-root",style:Be(t),dir:nt},p.createElement("div",{className:"userflowjs-bubble",ref:ht,style:{zIndex:ft}},p.createElement("div",{className:Yt({"userflowjs-bubble-outline":!0,[`userflowjs-bubble-outline--bubble-placement-${(t.bubblePlacement||"").toLowerCase().replace(/_/,"-")}`]:!0,"userflowjs-bubble-outline--minimizable":!!F,"userflowjs-bubble-outline--minimized":A})},p.createElement("div",{className:"userflowjs-bubble__frame-wrapper",..._},p.createElement(ne,{className:"userflowjs-bubble__frame",elRef:lt,stylesheet:Ne,theme:t,onStylesheetsLoad:At,noIframe:R,title:a.toLowerCase()},p.createElement("div",{className:"userflowjs-bubble-frame-root",ref:i=>{M&&M(i),Pt(i)},style:T?{backgroundImage:`url("${encodeURI(T)}")`}:void 0},r,e.flowBranding&&!f&&p.createElement("div",{className:"userflowjs-bubble-made-with-userflow"},p.createElement("div",{className:"userflowjs-bubble-made-with-userflow__absolute"},p.createElement(at,{company:e},p.createElement(ke,null),p.createElement("div",null,"Made with Userflow"))))))),p.createElement("div",{ref:gt,className:"userflowjs-bubble__avatar-notch"})),p.createElement(ne,{className:Yt({"userflowjs-bubble__avatar":!0,"userflowjs-bubble__avatar--minimizable":!!F,"userflowjs-bubble__avatar--speaking":!!D}),elRef:Tt,stylesheet:Fe,theme:t,onStylesheetsLoad:w,noIframe:R,ariaHidden:!0,title:a.toLowerCase()},p.createElement("div",{className:Yt({"userflowjs-avatar-frame-root":!0,"userflowjs-avatar-frame-root--minimizable":!!F}),onClick:F?()=>st(i=>!i):void 0},p.createElement(Ve,{theme:t}))),p.createElement("div",{ref:wt,className:"userflowjs-bubble__tooltip-notch"})),p.createElement("div",{ref:Et,className:"userflowjs-tooltip-backdrop",onMouseDown:mt,style:{zIndex:J,pointerEvents:W?void 0:"none"}}),p.createElement("div",{ref:Lt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:yt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:vt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Bt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Mt,className:"userflowjs-modal-backdrop",onMouseDown:mt,onClick:K,style:{zIndex:J}}),k&&k({visible:Z,bubbleFrame:lt.current}))},Ve=({theme:e})=>{const t="https://js.userflow.com/cartoon-avatars-no-bg/";let o;return e.avatarType===ct.ASSET&&e.avatarAsset?o=e.avatarAsset.assetUrl:e.avatarType===ct.CARTOON&&e.avatarName?o=t+e.avatarName+".svg?3":e.avatarType===ct.URL&&e.avatarUrl?o=e.avatarUrl:o=t+"none.svg",p.createElement("img",{src:o,alt:""})},We=({company:e,children:t})=>p.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+e.slug,target:"_blank",rel:"noopener noreferrer"},t);function ze({layoutState:{appearance:e,theme:t,backdrop:o,tooltipTargetMissing:g},width:L,position:s,absoluteWidth:a,root:d,bubble:T,bubbleFrameRoot:u,avatar:E,avatarNotch:v,modalBackdrop:C,dir:W}){const tt=s==="absolute"?a||1024:ut(Ht()),{avatarSize:P,bubblePlacement:B}=t;let x=t.bubbleWidth,K=null,et=null,D=`userflowjs-bubble-frame-root userflowjs-bubble-frame-root--appearance-${e?.toLowerCase()}`,R="hidden",c=null,F=null,O=null,M=null,_="userflowjs-bubble__avatar-notch",k="hidden",r=null,f=null,ot=null,U=null,H="userflowjs-modal-backdrop";switch((e===y.MODAL||!g&&e===y.BUBBLE&&o)&&(H+=" userflowjs-modal-backdrop--visible"),e){case y.BUBBLE:if(t.avatarType!==ct.NONE){R="",k="",B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.TOP_RIGHT?(K=P+Rt,c=0,r=-2*Rt,_+=" userflowjs-bubble__avatar-notch--top"):(et=P+Rt,O=0,ot=-2*Rt,_+=" userflowjs-bubble__avatar-notch--bottom");const at=B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.BOTTOM_LEFT||B===N.BOTTOM_CENTER||B===N.CENTER;W==="ltr"&&at||W==="rtl"&&!at?(M=0,U=P,_+=" userflowjs-bubble__avatar-notch--left"):(F=0,f=P,_+=" userflowjs-bubble__avatar-notch--right")}break;case y.MODAL:x=t.modalWidth,t.avatarType!==ct.NONE&&(R="",M=`calc(50% - ${P/2}px)`,c=-P/2);break;case y.TOOLTIP:x=t.tooltipWidth;break}L!=null&&(x=L),x=Math.min(x,tt-2*Xt),d.classList.toggle("userflowjs-flow-chrome--position-absolute",s==="absolute"),d.classList.toggle("userflowjs-flow-chrome--position-relative",s==="relative"),d.classList.toggle("userflowjs-flow-chrome--position-fixed",s==="fixed"),d.classList.toggle("userflowjs-flow-chrome--appearance-modal",e===y.MODAL);const G=e!=null&&e!==y.HIDDEN;d.style.position="",d.style.top="",d.style.left="",d.style.visibility=G?"":"hidden",d.style.animation=G?"":"none",m(T,"width",ut(x)),m(T,"padding-top",K),m(T,"padding-bottom",et),u.className=D,m(E,"width",ut(t.avatarSize)),m(E,"height",ut(t.avatarSize)),E.style.visibility=R,m(E,"top",c),m(E,"right",F),m(E,"bottom",O),m(E,"left",M),v.className=_,v.style.visibility=k,m(v,"top",r),m(v,"right",f),m(v,"bottom",ot),m(v,"left",U),C.className=H}function Ye({layoutState:e,animateIn:t,position:o,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:s,root:a,bubble:d,tooltipNotch:T,tooltipBackdrop:u,tooltipBlockTop:E,tooltipBlockRight:v,tooltipBlockBottom:C,tooltipBlockLeft:W,dir:tt}){const{appearance:P,theme:B,tooltipTargetParams:x,backdrop:K,backdropPadding:et}=e,{bubblePlacement:D}=B,R=Xt,c=B.tooltipNotchSize,F=10,{width:O,height:M}=d.getBoundingClientRect(),_=o==="absolute"?g||1024:ut(Ht()),k=o==="absolute"?L||768:ut(Gt());let r=0,f=0,ot="userflowjs-bubble__tooltip-notch",U="hidden",H=null,G=null,at=null,rt=null,ft="userflowjs-tooltip-backdrop",J=null,_t=null,Nt=null,nt=null,dt=null,ht=null,lt=null,X=null,Pt="userflowjs-tooltip-block userflowjs-tooltip-block--top",gt=null,Tt=null,wt="userflowjs-tooltip-block userflowjs-tooltip-block--right",Et=null,Lt=null,yt="userflowjs-tooltip-block userflowjs-tooltip-block--bottom",vt=null,Bt=null,Mt="userflowjs-tooltip-block userflowjs-tooltip-block--left",kt=null,jt=null;switch(P){case y.BUBBLE:{D===N.TOP_LEFT||D===N.BOTTOM_LEFT?r=B.bubbleX:D===N.TOP_CENTER||D===N.CENTER||D===N.BOTTOM_CENTER?r=(_-O)/2:r=_-O-B.bubbleX,D===N.TOP_LEFT||D===N.TOP_CENTER||D===N.TOP_RIGHT?f=B.bubbleY:D===N.CENTER?f=(k-M)/2:f=k-M-B.bubbleY,tt==="rtl"&&(r=_-r-O),r=Math.max(0,Math.min(_-O,r)),f=Math.max(0,Math.min(k-M,f));break}case y.MODAL:{let w=R;B.avatarType!==ct.NONE&&(w+=B.avatarSize/2),r=R+(_-R*2-O)/2,f=w+(k-w-R-M)/2;break}case y.TOOLTIP:{let w;if(x){let{targetRect:n,viewportClipRect:A}=x;if(o==="absolute"){const j=a.offsetParent.getBoundingClientRect();A={top:0,right:_,bottom:k,left:0},n={top:n.top-j.top,right:n.right-j.left,bottom:n.bottom-j.top,left:n.left-j.left,width:n.width,height:n.height}}let st=0;if(K){const{paddingTop:j,paddingRight:Z,paddingBottom:bt,paddingLeft:z}=$e(et);n={top:n.top-j,right:n.right+Z,bottom:n.bottom+bt,left:n.left-z,width:n.width+z+Z,height:n.height+j+bt},st=Math.min(j,Z,bt,z)}const I=n,$=B.backdropHighlightType==Oe.OUTSIDE?B.backdropHighlightSpread:0;if(K&&$&&(n={top:n.top-$,right:n.right+$,bottom:n.bottom+$,left:n.left-$,width:n.width+2*$,height:n.height+2*$}),w=Ge({targetRect:n,bubbleWidth:O,bubbleHeight:M,containerWidth:_,containerHeight:k,viewportClipRect:A,tooltipNotchSize:c,currentTooltipPlacement:e.tooltipPlacement,desiredTooltipPlacement:s}),w===b.BELOW||w===b.ABOVE?(r=n.left+n.width/2-O/2,r=Math.max(R,Math.min(_-O-R,r)),rt=Math.max(F,Math.min(O-F-c*2,n.left+n.width/2-c-r)),w===b.BELOW?H=-c*2:at=-c*2):w===b.RIGHT?(r=n.right+c,r=Math.max(r,A.left+c),r=Math.min(r,A.right+c),r=Math.max(r,c),r=Math.min(r,_-O)):(r=n.left-c-O,r=Math.max(r,A.left-O-c),r=Math.min(r,A.right-O-c),r=Math.max(r,0),r=Math.min(r,_-O-c)),w===b.LEFT||w===b.RIGHT?(f=n.top+n.height/2-M/2,f=Math.max(R,Math.min(k-M-R,f)),H=Math.max(F,Math.min(M-F-c*2,n.top+n.height/2-c-f)),w===b.LEFT?G=-c*2:rt=-c*2):w===b.BELOW?(f=n.bottom+c,f=Math.max(f,A.top+c),f=Math.min(f,A.bottom+c),f=Math.max(f,c),f=Math.min(f,k-M)):(f=n.top-c-M,f=Math.max(f,A.top-M-c),f=Math.min(f,A.bottom-M-c),f=Math.max(f,0),f=Math.min(f,k-M-c)),K){const j=window.getComputedStyle(x.targetEl);J=Math.max(0,I.top),_t=Math.max(0,_-I.right),Nt=Math.max(0,k-I.bottom),nt=Math.max(0,I.left),dt=Math.max(0,Ft(j.borderTopLeftRadius)+st),ht=Math.max(0,Ft(j.borderTopRightRadius)+st),lt=Math.max(0,Ft(j.borderBottomRightRadius)+st),X=Math.max(0,Ft(j.borderBottomLeftRadius)+st),gt=Math.max(0,I.right),Tt=Math.max(0,I.top),Et=Math.max(0,I.right),Lt=Math.max(0,I.bottom),vt=Math.max(0,I.left),Bt=Math.max(0,I.bottom),kt=Math.max(0,I.left),jt=Math.max(0,I.top)}}else w=s||b.BELOW,(w===b.BELOW||w===b.ABOVE)&&(rt=O/2-c,w===b.BELOW?H=-c*2:at=-c*2),(w===b.LEFT||w===b.RIGHT)&&(H=M/2-c,w===b.LEFT?G=-c*2:rt=-c*2);e.tooltipPlacement=w,ot+=` userflowjs-bubble__tooltip-notch--${w.toLowerCase()}`,U="",K&&(ft+=" userflowjs-tooltip-backdrop--visible",Pt+=" userflowjs-tooltip-block--visible",wt+=" userflowjs-tooltip-block--visible",yt+=" userflowjs-tooltip-block--visible",Mt+=" userflowjs-tooltip-block--visible");break}}d.style.transition="";let At=r,St=f;if(t&&(d.style.opacity="0",P===y.TOOLTIP))switch(e.tooltipPlacement){case b.BELOW:f+=24;break;case b.ABOVE:f-=24;break;case b.RIGHT:r+=24;break;case b.LEFT:r-=24;break}if(o!=="relative"&&ce(d,r,f),T.className=ot,T.style.visibility=U,m(T,"top",H),m(T,"right",G),m(T,"bottom",at),m(T,"left",rt),u.className=ft,m(u,"top",J),m(u,"right",_t),m(u,"bottom",Nt),m(u,"left",nt),m(u,"border-top-left-radius",dt),m(u,"border-top-right-radius",ht),m(u,"border-bottom-right-radius",lt),m(u,"border-bottom-left-radius",X),E.className=Pt,m(E,"width",gt),m(E,"height",Tt),v.className=wt,m(v,"left",Et),m(v,"height",Lt),C.className=yt,m(C,"left",vt),m(C,"top",Bt),W.className=Mt,m(W,"width",kt),m(W,"top",jt),t){d.offsetWidth;const w="opacity 250ms linear";P===y.TOOLTIP?d.style.transition=`${w}, transform 500ms cubic-bezier(0.25, 0.8, 0.5, 1)`:d.style.transition=w,d.style.opacity="1",o!=="relative"&&ce(d,At,St)}}function Ge({targetRect:e,bubbleWidth:t,bubbleHeight:o,containerWidth:g,containerHeight:L,viewportClipRect:s,tooltipNotchSize:a,currentTooltipPlacement:d,desiredTooltipPlacement:T}){if(e.bottom<=s.top)return o+a<=L-s.top?b.BELOW:b.ABOVE;if(e.top>=s.bottom)return o+a<=s.bottom?b.ABOVE:b.BELOW;if(e.right<=s.left)return t+a<=g-s.left?b.RIGHT:b.LEFT;if(e.left>=s.right)return t+a<=s.right?b.LEFT:b.RIGHT;const u=v=>{const C=e.left+e.width/2,W=C>=s.left&&C<=s.right,tt=e.top+e.height/2,P=tt>=s.top&&tt<=s.bottom;switch(v){case b.BELOW:return L-e.bottom>o+a&&W;case b.ABOVE:return e.top>o+a&&W;case b.RIGHT:return g-e.right>t+a&&P;case b.LEFT:return e.left>t+a&&P}};if(T&&u(T))return T;if(d&&u(d))return d;const E=[{placement:b.BELOW,dist:e.top},{placement:b.ABOVE,dist:L-e.bottom},{placement:b.RIGHT,dist:e.left},{placement:b.LEFT,dist:g-e.right}];E.sort((v,C)=>v.dist-C.dist);for(const{placement:v}of E)if(u(v))return v;return b.BELOW}function m(e,t,o){o==null?e.style.removeProperty(t):e.style.setProperty(t,typeof o=="number"?o+"px":o,"important")}function ce(e,t,o){t=Math.round(t),o=Math.round(o),e.style.transform=`translate3d(${t}px, ${o}px, 0px)`}function Xe(e){if(Y.customScrollIntoView){Y.customScrollIntoView(e);return}const{scrollPadding:t}=Y;if(t&&Ce(e)===document.scrollingElement){const o=t.top||0,g=t.right||0,L=t.bottom||0,s=t.left||0;let a=0,d=0;const T=e.getBoundingClientRect(),u=Ht(),E=Gt();if(T.top<o?a=T.top-o:T.bottom>E-L&&(a=T.bottom-E+L),T.left<s?d=T.left-s:T.right>u-g&&(d=T.right-u+g),a!=0||d!=0){window.scrollBy({top:a,left:d,behavior:"smooth"});return}}try{e.scrollIntoView({behavior:"smooth",block:"nearest"})}catch(o){console.warn("Userflow.js: scrollIntoView error (falling back to no options).",o),e.scrollIntoView()}}function $e(e){if(!e||e==="0")return{paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0};const t=e.trim().split(" ");if(t.length===1){const o=it(t[0]);return{paddingTop:o,paddingRight:o,paddingBottom:o,paddingLeft:o}}else if(t.length===2){const o=it(t[0]),g=it(t[1]);return{paddingTop:o,paddingRight:g,paddingBottom:o,paddingLeft:g}}else return{paddingTop:it(t[0]),paddingRight:it(t[1]),paddingBottom:it(t[2]),paddingLeft:it(t[3])}}function it(e){const t=parseInt(e,10);return isNaN(t)?0:t}export{uo as B,co as F};
1
+ import{S as we,T as Ee,M as Le,C as ye}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{R as p,r as l}from"./vendor.react.js";import{D as Dt,a as ve,g as Be}from"./stylesheets.js";import"./vendor.core-js.js";import{u as fe}from"./vendor.react-i18next.js";import{F as ne}from"./Frame.js";import{l as Y,q as y,L as ut,F as Me,N,a2 as Oe,a1 as b}from"./userflow.js";import{a as Ie,f as Re}from"./flow-host.styl.js";import{c as _e,b as Ne}from"./use-selector-element-monitoring.js";import{u as Pe}from"./use-window-resize.js";import{S as ke}from"./logomark.js";import{o as Yt}from"./vendor.obj-str.js";import{e as Gt,d as Ht,j as ct,t as je,l as ie,M as ce,q as Ft,u as Ce,p as xe}from"./roots.js";import{c as De}from"./vendor.canvas-confetti.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="e0731fdf-dacd-44ca-986e-5ff8ffddec35",e._sentryDebugIdIdentifier="sentry-dbid-e0731fdf-dacd-44ca-986e-5ff8ffddec35")}catch{}})();const co=({draftMode:e,muted:t,toggleMuted:o,close:g,minimize:L})=>{const{t:s}=fe();return p.createElement("div",{className:"userflowjs-bubble-toolbar"},e&&p.createElement("div",{className:"userflowjs-bubble-draft"},typeof e=="string"?e:"Preview"),o&&p.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:o,"aria-label":t?"Unmute":"Mute"},t?p.createElement(Dt,{icon:we}):p.createElement(Dt,{icon:Ee})),L&&p.createElement("button",{"data-testid":"minimize-button",className:"userflowjs-bubble-toolbar-button",onClick:L,"aria-label":"Minimize checklist"},p.createElement(Dt,{icon:Le})),g&&p.createElement("button",{"data-testid":"close-button",className:"userflowjs-bubble-toolbar-button",onClick:g,"aria-label":s("menu.close")},p.createElement(Dt,{icon:ye})))},Fe=new URL("avatar-frame.css",import.meta.url).href;function He(e,t){const o=window.Intercom;l.useEffect(()=>{if(!(!t||!e.autoHideIntercom||typeof o!="function"||Y.autoHide3pDisabled)){try{o("update",{hide_default_launcher:!0})}catch(a){console.warn("Userflow.js: Error when hiding Intercom launcher",a)}return()=>{if(!Y.autoHide3pDisabled)try{o("update",{hide_default_launcher:!1})}catch(a){console.warn("Userflow.js: Error when unhiding Intercom launcher",a)}}}},[o,e.autoHideIntercom,t]);const g=window.$crisp;l.useEffect(()=>{if(!(!t||!e.autoHideCrisp||!g||Y.autoHide3pDisabled)){try{g.push(["do","chat:hide"])}catch(a){console.warn("Userflow.js: Error when hiding Crisp Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{g.push(["do","chat:show"])}catch(a){console.warn("Userflow.js: Error when unhiding Crisp Chat",a)}}}},[g,e.autoHideCrisp,t]);const L=window.HubSpotConversations;l.useEffect(()=>{if(!(!t||!e.autoHideHubspot||!L||Y.autoHide3pDisabled)){try{L.widget.remove()}catch(a){console.warn("Userflow.js: Error when hiding HubSpot Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{L.widget.load()}catch(a){console.warn("Userflow.js: Error when unhiding HubSpot Chat",a)}}}},[L,e.autoHideHubspot,t]);const s=window.drift;l.useEffect(()=>{if(!(!t||!e.autoHideDrift||!s||Y.autoHide3pDisabled)){try{s.api.widget.hide()}catch(a){console.warn("Userflow.js: Error when hiding Drift Chat",a)}return()=>{if(!Y.autoHide3pDisabled)try{s.api.widget.show()}catch(a){console.warn("Userflow.js: Error when unhiding Drift Chat",a)}}}},[s,e.autoHideDrift,t])}const Q={PARTICLE_COUNT:400,ANIMATION_DELAY:400,DEFAULT_SPREAD:360,DEFAULT_GRAVITY:1,DEFAULT_TICKS:100,DEFAULT_Z_INDEX:5,TOOLTIP_DECAY:.85,TOOLTIP_START_VELOCITY:30},Ae={particleCount:Q.PARTICLE_COUNT,spread:Q.DEFAULT_SPREAD,gravity:Q.DEFAULT_GRAVITY,ticks:Q.DEFAULT_TICKS,angle:90,zIndex:Q.DEFAULT_Z_INDEX,disableForReducedMotion:!0},Se=e=>{if(!e)return{x:.5,y:.5};const t=e.getBoundingClientRect();return{x:t.left>=0?(t.left+t.width/2)/window.innerWidth:.5,y:t.top>=0?(t.top+t.height/2)/window.innerHeight:.5}},Ue=({bubbleFrame:e,isBubbleVisible:t,theme:o,stepType:g,onAnimationComplete:L,confettiDelay:s,zIndex:a})=>{const[d,T]=l.useState(!1);return l.useEffect(()=>{if(!t||!d||!o.confettiColors||o.confettiColors.length===0)return;const c=setTimeout(()=>{try{const E=Se(e),v={...Ae,colors:o.confettiColors||void 0,origin:E,zIndex:a??Q.DEFAULT_Z_INDEX,...g===y.TOOLTIP&&{decay:Q.TOOLTIP_DECAY,startVelocity:Q.TOOLTIP_START_VELOCITY}};De(v)}catch(E){console.warn("Error launching confetti:",E)}finally{L?.(),T(!1)}},s||Q.ANIMATION_DELAY);return()=>clearTimeout(c)},[t,d,o.confettiColors,e,g,L,s,a]),{startConfetti:T}},Xt=16,Rt=20,uo=({company:e,theme:t,position:o,absoluteWidth:g,absoluteHeight:L,stepKey:s,stepAppearance:a,width:d,backgroundImageUrl:T,tooltipSelector:c,allowMissingTooltipTarget:E,tooltipPlacement:v,backdrop:C,tooltipTargetBlocked:W,backdropPadding:tt,zIndex:P,onTooltipTargetClick:B,onTooltipTargetMissingChange:x,onModalBackdropClick:K,onVisibleChange:et,speaking:D,noIframe:R,MadeWithUserflow:u,minimizeOnAvatarClick:F,autoHide3pEnabled:O,bubbleFrameRootRef:M,frameWrapperHtmlAttributes:_,rootChildren:k,children:r,isModalAnnouncement:f,confettiEnabled:ot})=>{const U=o||"absolute",H=v||null,G=tt||"0",at=u||We,rt=Ie(),ft=U==="fixed"?P??rt+1:1,J=ft-1,_t=ft-2,{i18n:Nt}=fe(),nt=Nt.dir(),dt=l.useRef(null),ht=l.useRef(null),lt=l.useRef(null),[X,Pt]=l.useState(null),gt=l.useRef(null),Tt=l.useRef(null),wt=l.useRef(null),Et=l.useRef(null),Lt=l.useRef(null),yt=l.useRef(null),vt=l.useRef(null),Bt=l.useRef(null),Mt=l.useRef(null);l.useLayoutEffect(()=>{const i=dt.current.style;i.animation="none",i.visibility="hidden",i.position="absolute",i.top="-99999px",i.left="-99999px"},[]);const{loaded:kt}=ve(window,Re,t),[jt,At]=l.useState(!1),[St,w]=l.useState(!1),n=kt&&jt&&St;let[A,st]=l.useState(!1);a!==y.BUBBLE&&(F=!1,A=!1),l.useEffect(()=>{st(!1)},[s]);const I=l.useRef({appearance:null,width:null,theme:t,bubbleFrameHeight:0,backdrop:!1,backdropPadding:"0",prevTooltipTargetParams:null,tooltipTargetParams:null,desiredTooltipPlacement:null,tooltipPlacement:null,lastReportedTooltipTargetMissing:!1,tooltipTargetMissing:!1,tooltipTargetMissingTimeout:void 0,stepKeyScrolledIntoView:void 0,targetScrolledIntoView:null}),[$,j]=l.useState(null),Z=$!=null&&n;l.useEffect(()=>{et&&et(Z)},[et,Z]);const bt=l.useCallback(i=>{I.current.lastReportedTooltipTargetMissing!==i&&(I.current.lastReportedTooltipTargetMissing=i,x&&x(i))},[x]),z=l.useCallback(({forceAppearanceLayout:i,forceUpdatePosition:S}={})=>{const pt=dt.current,xt=ht.current,It=lt.current,Zt=Tt.current,qt=gt.current,Kt=wt.current,Jt=Et.current,Qt=Lt.current,te=yt.current,ee=vt.current,oe=Bt.current,ae=Mt.current;if(!pt||!xt||!It||!X||!Zt||!qt||!Kt||!Jt||!Qt||!te||!ee||!oe||!ae||!n)return;const h=I.current,{tooltipTargetParams:Ut}=h;xe();let V=a,le=!1;V===y.TOOLTIP&&!E&&!Ut&&(h.tooltipTargetMissing?(V=y.BUBBLE,le=!0):V=null);const se=V!==h.appearance,he=d!==h.width;if((i||se||he||t!==h.theme||C!=h.backdrop||G!=h.backdropPadding||H!==h.desiredTooltipPlacement)&&(h.appearance=V,h.width=d,h.theme=t,h.backdrop=C,h.backdropPadding=G,h.desiredTooltipPlacement=H,S=!0,ze({layoutState:h,width:d,position:U,absoluteWidth:g,root:pt,bubble:xt,bubbleFrameRoot:X,avatar:Zt,avatarNotch:qt,modalBackdrop:ae,dir:nt})),!R){const q=X.offsetHeight,Vt=Gt(),Wt=Ht()<800?0:Xt,ge=t.avatarType===ut.NONE?0:V===y.BUBBLE?Rt+t.avatarSize:V===y.MODAL?t.avatarSize/2:0,re=Vt-2*Wt-ge,zt=Math.min(q,re);if(V&&zt!==h.bubbleFrameHeight){if(h.bubbleFrameHeight=zt,m(It,"height",ct(zt)),je(It)&&It.contentDocument){const Te=It.contentDocument.documentElement;Te.style.overflowY=q<=re?"hidden":"scroll"}S=!0}}if(S&&V){let q=se;if(V===y.TOOLTIP){const Vt=h.tooltipTargetParams&&h.tooltipTargetParams.targetEl,Wt=h.prevTooltipTargetParams&&h.prevTooltipTargetParams.targetEl;Vt!==Wt&&(q=!0)}h.prevTooltipTargetParams=h.tooltipTargetParams,Ye({layoutState:h,animateIn:q,position:U,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:H,root:pt,bubble:xt,tooltipNotch:Kt,tooltipBackdrop:Jt,tooltipBlockTop:Qt,tooltipBlockRight:te,tooltipBlockBottom:ee,tooltipBlockLeft:oe,dir:nt})}if(V===y.TOOLTIP){const q=Ut&&Ut.targetEl;q&&h.stepKeyScrolledIntoView!==s&&h.targetScrolledIntoView!==q&&(h.stepKeyScrolledIntoView=s,h.targetScrolledIntoView=q,Xe(q))}else h.stepKeyScrolledIntoView=void 0,h.targetScrolledIntoView=null;bt(le),j(V)},[n,X,s,a,d,t,U,g,L,E,H,C,G,R,bt,nt]),Ot=l.useRef(z);Ot.current=z;const $t=l.useRef(!1);l.useEffect(()=>{const i=()=>{$t.current=!0};return window.addEventListener("pagehide",i),()=>window.removeEventListener("pagehide",i)},[]);const Ct=()=>{window.clearTimeout(I.current.tooltipTargetMissingTimeout),I.current.tooltipTargetMissingTimeout=void 0};l.useEffect(()=>Ct,[]);const de=l.useCallback(()=>{const i=I.current;if(i.tooltipTargetParams=null,E||(i.tooltipPlacement=null),a!==y.TOOLTIP){Ct(),i.tooltipTargetMissing=!1;return}if(!E&&!i.tooltipTargetMissingTimeout){i.tooltipTargetMissing=!1;const S=c&&!ie(c)&&c.type===Me.AUTO&&!c.autoData?1:parseFloat(t.tooltipMissingToleranceSeconds)*1e3;i.tooltipTargetMissingTimeout=window.setTimeout(()=>{if(!$t.current){if(c&&!ie(c)){let pt=c.autoData;if(c.autoData)try{pt=JSON.parse(c.autoData)}catch{}console.warn(`Userflow.js: Tooltip target not found on page.
2
+ `,{type:c.type,autoData:pt,excludeText:c.excludeText,precision:c.precision,text:c.text,css:c.css})}Ct(),i.tooltipTargetMissing=!0,Ot.current()}},S)}Ot.current()},[a,E,c,t.tooltipMissingToleranceSeconds]),be=l.useCallback(i=>{const S=I.current;Ct(),S.tooltipTargetParams&&S.tooltipTargetParams.targetEl!==i.targetEl&&(S.tooltipPlacement=null),S.tooltipTargetParams=i,z({forceUpdatePosition:!0})},[z]);_e({selector:a===y.TOOLTIP&&c||null,targetMoved:be,targetLost:de,onTargetClick:B});const me=l.useCallback(()=>z({forceAppearanceLayout:!0}),[z]);Pe(me),l.useEffect(()=>{if(!X||R||typeof ce!="function")return;let i;const S=new ce(()=>{i||(i=window.requestAnimationFrame(()=>{i=void 0,Ot.current()}))});return S.observe(X,{childList:!0,attributes:!0,subtree:!0}),()=>{S.disconnect(),i&&window.cancelAnimationFrame(i)}},[X,R]);const{startConfetti:pe}=Ue({stepType:a,theme:t,bubbleFrame:lt.current,isBubbleVisible:Z,confettiDelay:400,zIndex:_t});l.useEffect(()=>{Z&&ot&&lt.current&&pe(!0)},[ot,s,Z]),l.useLayoutEffect(()=>{Ot.current()}),l.useLayoutEffect(()=>{U==="absolute"&&z({forceAppearanceLayout:!0})},[U,g,L]);const mt=i=>{i.preventDefault(),i.stopPropagation()};return He(t,!!O&&$===y.BUBBLE),p.createElement("div",{ref:dt,"data-testid":"flow-chrome",className:"userflowjs-flow-chrome userflowjs-theme-root",style:Be(t),dir:nt},p.createElement("div",{className:"userflowjs-bubble",ref:ht,style:{zIndex:ft}},p.createElement("div",{className:Yt({"userflowjs-bubble-outline":!0,[`userflowjs-bubble-outline--bubble-placement-${(t.bubblePlacement||"").toLowerCase().replace(/_/,"-")}`]:!0,"userflowjs-bubble-outline--minimizable":!!F,"userflowjs-bubble-outline--minimized":A})},p.createElement("div",{className:"userflowjs-bubble__frame-wrapper",..._},p.createElement(ne,{className:"userflowjs-bubble__frame",elRef:lt,stylesheet:Ne,theme:t,onStylesheetsLoad:At,noIframe:R,title:a.toLowerCase()},p.createElement("div",{className:"userflowjs-bubble-frame-root",ref:i=>{M&&M(i),Pt(i)},style:T?{backgroundImage:`url("${encodeURI(T)}")`}:void 0},r,e.flowBranding&&!f&&p.createElement("div",{className:"userflowjs-bubble-made-with-userflow"},p.createElement("div",{className:"userflowjs-bubble-made-with-userflow__absolute"},p.createElement(at,{company:e},p.createElement(ke,null),p.createElement("div",null,"Made with Userflow"))))))),p.createElement("div",{ref:gt,className:"userflowjs-bubble__avatar-notch"})),p.createElement(ne,{className:Yt({"userflowjs-bubble__avatar":!0,"userflowjs-bubble__avatar--minimizable":!!F,"userflowjs-bubble__avatar--speaking":!!D}),elRef:Tt,stylesheet:Fe,theme:t,onStylesheetsLoad:w,noIframe:R,ariaHidden:!0,title:a.toLowerCase()},p.createElement("div",{className:Yt({"userflowjs-avatar-frame-root":!0,"userflowjs-avatar-frame-root--minimizable":!!F}),onClick:F?()=>st(i=>!i):void 0},p.createElement(Ve,{theme:t}))),p.createElement("div",{ref:wt,className:"userflowjs-bubble__tooltip-notch"})),p.createElement("div",{ref:Et,className:"userflowjs-tooltip-backdrop",onMouseDown:mt,style:{zIndex:J,pointerEvents:W?void 0:"none"}}),p.createElement("div",{ref:Lt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:yt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:vt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Bt,className:"userflowjs-tooltip-block",onMouseDown:mt,style:{zIndex:J}}),p.createElement("div",{ref:Mt,className:"userflowjs-modal-backdrop",onMouseDown:mt,onClick:K,style:{zIndex:J}}),k&&k({visible:Z,bubbleFrame:lt.current}))},Ve=({theme:e})=>{const t="https://js.userflow.com/cartoon-avatars-no-bg/";let o;return e.avatarType===ut.ASSET&&e.avatarAsset?o=e.avatarAsset.assetUrl:e.avatarType===ut.CARTOON&&e.avatarName?o=t+e.avatarName+".svg?3":e.avatarType===ut.URL&&e.avatarUrl?o=e.avatarUrl:o=t+"none.svg",p.createElement("img",{src:o,alt:""})},We=({company:e,children:t})=>p.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+e.slug,target:"_blank",rel:"noopener noreferrer"},t);function ze({layoutState:{appearance:e,theme:t,backdrop:o,tooltipTargetMissing:g},width:L,position:s,absoluteWidth:a,root:d,bubble:T,bubbleFrameRoot:c,avatar:E,avatarNotch:v,modalBackdrop:C,dir:W}){const tt=s==="absolute"?a||1024:ct(Ht()),{avatarSize:P,bubblePlacement:B}=t;let x=t.bubbleWidth,K=null,et=null,D=`userflowjs-bubble-frame-root userflowjs-bubble-frame-root--appearance-${e?.toLowerCase()}`,R="hidden",u=null,F=null,O=null,M=null,_="userflowjs-bubble__avatar-notch",k="hidden",r=null,f=null,ot=null,U=null,H="userflowjs-modal-backdrop";switch((e===y.MODAL||!g&&e===y.BUBBLE&&o)&&(H+=" userflowjs-modal-backdrop--visible"),e){case y.BUBBLE:if(t.avatarType!==ut.NONE){R="",k="",B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.TOP_RIGHT?(K=P+Rt,u=0,r=-2*Rt,_+=" userflowjs-bubble__avatar-notch--top"):(et=P+Rt,O=0,ot=-2*Rt,_+=" userflowjs-bubble__avatar-notch--bottom");const at=B===N.TOP_LEFT||B===N.TOP_CENTER||B===N.BOTTOM_LEFT||B===N.BOTTOM_CENTER||B===N.CENTER;W==="ltr"&&at||W==="rtl"&&!at?(M=0,U=P,_+=" userflowjs-bubble__avatar-notch--left"):(F=0,f=P,_+=" userflowjs-bubble__avatar-notch--right")}break;case y.MODAL:x=t.modalWidth,t.avatarType!==ut.NONE&&(R="",M=`calc(50% - ${P/2}px)`,u=-P/2);break;case y.TOOLTIP:x=t.tooltipWidth;break}L!=null&&(x=L),x=Math.min(x,tt-2*Xt),d.classList.toggle("userflowjs-flow-chrome--position-absolute",s==="absolute"),d.classList.toggle("userflowjs-flow-chrome--position-relative",s==="relative"),d.classList.toggle("userflowjs-flow-chrome--position-fixed",s==="fixed"),d.classList.toggle("userflowjs-flow-chrome--appearance-modal",e===y.MODAL);const G=e!=null&&e!==y.HIDDEN;d.style.position="",d.style.top="",d.style.left="",d.style.visibility=G?"":"hidden",d.style.animation=G?"":"none",m(T,"width",ct(x)),m(T,"padding-top",K),m(T,"padding-bottom",et),c.className=D,m(E,"width",ct(t.avatarSize)),m(E,"height",ct(t.avatarSize)),E.style.visibility=R,m(E,"top",u),m(E,"right",F),m(E,"bottom",O),m(E,"left",M),v.className=_,v.style.visibility=k,m(v,"top",r),m(v,"right",f),m(v,"bottom",ot),m(v,"left",U),C.className=H}function Ye({layoutState:e,animateIn:t,position:o,absoluteWidth:g,absoluteHeight:L,desiredTooltipPlacement:s,root:a,bubble:d,tooltipNotch:T,tooltipBackdrop:c,tooltipBlockTop:E,tooltipBlockRight:v,tooltipBlockBottom:C,tooltipBlockLeft:W,dir:tt}){const{appearance:P,theme:B,tooltipTargetParams:x,backdrop:K,backdropPadding:et}=e,{bubblePlacement:D}=B,R=Xt,u=B.tooltipNotchSize,F=10,{width:O,height:M}=d.getBoundingClientRect(),_=o==="absolute"?g||1024:ct(Ht()),k=o==="absolute"?L||768:ct(Gt());let r=0,f=0,ot="userflowjs-bubble__tooltip-notch",U="hidden",H=null,G=null,at=null,rt=null,ft="userflowjs-tooltip-backdrop",J=null,_t=null,Nt=null,nt=null,dt=null,ht=null,lt=null,X=null,Pt="userflowjs-tooltip-block userflowjs-tooltip-block--top",gt=null,Tt=null,wt="userflowjs-tooltip-block userflowjs-tooltip-block--right",Et=null,Lt=null,yt="userflowjs-tooltip-block userflowjs-tooltip-block--bottom",vt=null,Bt=null,Mt="userflowjs-tooltip-block userflowjs-tooltip-block--left",kt=null,jt=null;switch(P){case y.BUBBLE:{D===N.TOP_LEFT||D===N.BOTTOM_LEFT?r=B.bubbleX:D===N.TOP_CENTER||D===N.CENTER||D===N.BOTTOM_CENTER?r=(_-O)/2:r=_-O-B.bubbleX,D===N.TOP_LEFT||D===N.TOP_CENTER||D===N.TOP_RIGHT?f=B.bubbleY:D===N.CENTER?f=(k-M)/2:f=k-M-B.bubbleY,tt==="rtl"&&(r=_-r-O),r=Math.max(0,Math.min(_-O,r)),f=Math.max(0,Math.min(k-M,f));break}case y.MODAL:{let w=R;B.avatarType!==ut.NONE&&(w+=B.avatarSize/2),r=R+(_-R*2-O)/2,f=w+(k-w-R-M)/2;break}case y.TOOLTIP:{let w;if(x){let{targetRect:n,viewportClipRect:A}=x;if(o==="absolute"){const j=a.offsetParent.getBoundingClientRect();A={top:0,right:_,bottom:k,left:0},n={top:n.top-j.top,right:n.right-j.left,bottom:n.bottom-j.top,left:n.left-j.left,width:n.width,height:n.height}}let st=0;if(K){const{paddingTop:j,paddingRight:Z,paddingBottom:bt,paddingLeft:z}=$e(et);n={top:n.top-j,right:n.right+Z,bottom:n.bottom+bt,left:n.left-z,width:n.width+z+Z,height:n.height+j+bt},st=Math.min(j,Z,bt,z)}const I=n,$=B.backdropHighlightType==Oe.OUTSIDE?B.backdropHighlightSpread:0;if(K&&$&&(n={top:n.top-$,right:n.right+$,bottom:n.bottom+$,left:n.left-$,width:n.width+2*$,height:n.height+2*$}),w=Ge({targetRect:n,bubbleWidth:O,bubbleHeight:M,containerWidth:_,containerHeight:k,viewportClipRect:A,tooltipNotchSize:u,currentTooltipPlacement:e.tooltipPlacement,desiredTooltipPlacement:s}),w===b.BELOW||w===b.ABOVE?(r=n.left+n.width/2-O/2,r=Math.max(R,Math.min(_-O-R,r)),rt=Math.max(F,Math.min(O-F-u*2,n.left+n.width/2-u-r)),w===b.BELOW?H=-u*2:at=-u*2):w===b.RIGHT?(r=n.right+u,r=Math.max(r,A.left+u),r=Math.min(r,A.right+u),r=Math.max(r,u),r=Math.min(r,_-O)):(r=n.left-u-O,r=Math.max(r,A.left-O-u),r=Math.min(r,A.right-O-u),r=Math.max(r,0),r=Math.min(r,_-O-u)),w===b.LEFT||w===b.RIGHT?(f=n.top+n.height/2-M/2,f=Math.max(R,Math.min(k-M-R,f)),H=Math.max(F,Math.min(M-F-u*2,n.top+n.height/2-u-f)),w===b.LEFT?G=-u*2:rt=-u*2):w===b.BELOW?(f=n.bottom+u,f=Math.max(f,A.top+u),f=Math.min(f,A.bottom+u),f=Math.max(f,u),f=Math.min(f,k-M)):(f=n.top-u-M,f=Math.max(f,A.top-M-u),f=Math.min(f,A.bottom-M-u),f=Math.max(f,0),f=Math.min(f,k-M-u)),K){const j=window.getComputedStyle(x.targetEl);J=Math.max(0,I.top),_t=Math.max(0,_-I.right),Nt=Math.max(0,k-I.bottom),nt=Math.max(0,I.left),dt=Math.max(0,Ft(j.borderTopLeftRadius)+st),ht=Math.max(0,Ft(j.borderTopRightRadius)+st),lt=Math.max(0,Ft(j.borderBottomRightRadius)+st),X=Math.max(0,Ft(j.borderBottomLeftRadius)+st),gt=Math.max(0,I.right),Tt=Math.max(0,I.top),Et=Math.max(0,I.right),Lt=Math.max(0,I.bottom),vt=Math.max(0,I.left),Bt=Math.max(0,I.bottom),kt=Math.max(0,I.left),jt=Math.max(0,I.top)}}else w=s||b.BELOW,(w===b.BELOW||w===b.ABOVE)&&(rt=O/2-u,w===b.BELOW?H=-u*2:at=-u*2),(w===b.LEFT||w===b.RIGHT)&&(H=M/2-u,w===b.LEFT?G=-u*2:rt=-u*2);e.tooltipPlacement=w,ot+=` userflowjs-bubble__tooltip-notch--${w.toLowerCase()}`,U="",K&&(ft+=" userflowjs-tooltip-backdrop--visible",Pt+=" userflowjs-tooltip-block--visible",wt+=" userflowjs-tooltip-block--visible",yt+=" userflowjs-tooltip-block--visible",Mt+=" userflowjs-tooltip-block--visible");break}}d.style.transition="";let At=r,St=f;if(t&&(d.style.opacity="0",P===y.TOOLTIP))switch(e.tooltipPlacement){case b.BELOW:f+=24;break;case b.ABOVE:f-=24;break;case b.RIGHT:r+=24;break;case b.LEFT:r-=24;break}if(o!=="relative"&&ue(d,r,f),T.className=ot,T.style.visibility=U,m(T,"top",H),m(T,"right",G),m(T,"bottom",at),m(T,"left",rt),c.className=ft,m(c,"top",J),m(c,"right",_t),m(c,"bottom",Nt),m(c,"left",nt),m(c,"border-top-left-radius",dt),m(c,"border-top-right-radius",ht),m(c,"border-bottom-right-radius",lt),m(c,"border-bottom-left-radius",X),E.className=Pt,m(E,"width",gt),m(E,"height",Tt),v.className=wt,m(v,"left",Et),m(v,"height",Lt),C.className=yt,m(C,"left",vt),m(C,"top",Bt),W.className=Mt,m(W,"width",kt),m(W,"top",jt),t){d.offsetWidth;const w="opacity 250ms linear";P===y.TOOLTIP?d.style.transition=`${w}, transform 500ms cubic-bezier(0.25, 0.8, 0.5, 1)`:d.style.transition=w,d.style.opacity="1",o!=="relative"&&ue(d,At,St)}}function Ge({targetRect:e,bubbleWidth:t,bubbleHeight:o,containerWidth:g,containerHeight:L,viewportClipRect:s,tooltipNotchSize:a,currentTooltipPlacement:d,desiredTooltipPlacement:T}){if(e.bottom<=s.top)return o+a<=L-s.top?b.BELOW:b.ABOVE;if(e.top>=s.bottom)return o+a<=s.bottom?b.ABOVE:b.BELOW;if(e.right<=s.left)return t+a<=g-s.left?b.RIGHT:b.LEFT;if(e.left>=s.right)return t+a<=s.right?b.LEFT:b.RIGHT;const c=v=>{const C=e.left+e.width/2,W=C>=s.left&&C<=s.right,tt=e.top+e.height/2,P=tt>=s.top&&tt<=s.bottom;switch(v){case b.BELOW:return L-e.bottom>o+a&&W;case b.ABOVE:return e.top>o+a&&W;case b.RIGHT:return g-e.right>t+a&&P;case b.LEFT:return e.left>t+a&&P}};if(T&&c(T))return T;if(d&&c(d))return d;const E=[{placement:b.BELOW,dist:e.top},{placement:b.ABOVE,dist:L-e.bottom},{placement:b.RIGHT,dist:e.left},{placement:b.LEFT,dist:g-e.right}];E.sort((v,C)=>v.dist-C.dist);for(const{placement:v}of E)if(c(v))return v;return b.BELOW}function m(e,t,o){o==null?e.style.removeProperty(t):e.style.setProperty(t,typeof o=="number"?o+"px":o,"important")}function ue(e,t,o){t=Math.round(t),o=Math.round(o),e.style.transform=`translate3d(${t}px, ${o}px, 0px)`}function Xe(e){if(Y.customScrollIntoView){Y.customScrollIntoView(e);return}const{scrollPadding:t}=Y;if(t&&Ce(e)===document.scrollingElement){const o=t.top||0,g=t.right||0,L=t.bottom||0,s=t.left||0;let a=0,d=0;const T=e.getBoundingClientRect(),c=Ht(),E=Gt();if(T.top<o?a=T.top-o:T.bottom>E-L&&(a=T.bottom-E+L),T.left<s?d=T.left-s:T.right>c-g&&(d=T.right-c+g),a!=0||d!=0){window.scrollBy({top:a,left:d,behavior:"smooth"});return}}try{e.scrollIntoView({behavior:"smooth",block:"nearest"})}catch(o){console.warn("Userflow.js: scrollIntoView error (falling back to no options).",o),e.scrollIntoView()}}function $e(e){if(!e||e==="0")return{paddingTop:0,paddingRight:0,paddingBottom:0,paddingLeft:0};const t=e.trim().split(" ");if(t.length===1){const o=it(t[0]);return{paddingTop:o,paddingRight:o,paddingBottom:o,paddingLeft:o}}else if(t.length===2){const o=it(t[0]),g=it(t[1]);return{paddingTop:o,paddingRight:g,paddingBottom:o,paddingLeft:g}}else return{paddingTop:it(t[0]),paddingRight:it(t[1]),paddingBottom:it(t[2]),paddingLeft:it(t[3])}}function it(e){const t=parseInt(e,10);return isNaN(t)?0:t}export{co as B,uo as F};
3
3
  //# sourceMappingURL=FlowChrome.js.map
package/LauncherApp.js CHANGED
@@ -1,2 +1,2 @@
1
- import{R as i,r as u}from"./vendor.react.js";import{Q as L,X as l,Y as a,q as te,Z as re,$ as p,a0 as K,a1 as N}from"./userflow.js";import{u as ne,m as oe,d as ae,S as ce,R as se,h as le,r as ie}from"./use-selector-element-monitoring.js";import{u as ue,i as de}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{a as fe,b as he,g as Ee,D as Te,u as me}from"./stylesheets.js";import{w as pe,f as be,L as ge,S as Ce}from"./flow-host.styl.js";import"./vendor.core-js.js";import{F as Re,B as Le}from"./FlowChrome.js";import{g as we}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.js";import{r as V}from"./roots.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.i18next.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},c=new Error().stack;c&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[c]="d5b1f337-ba91-42a3-a20c-772f2b0859d8",t._sentryDebugIdIdentifier="sentry-dbid-d5b1f337-ba91-42a3-a20c-772f2b0859d8")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:d,theme:T,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:m},r)=>{const{loaded:C}=fe(window,be,T),k=T&&t===L.BUTTON?T:null,{loaded:H}=he(window,k),I={"userflowjs-launcher":!0,"userflowjs-launcher--activate-on-click":!!e,"userflowjs-fixed-widget":!w},f={ref:r,style:{...Ee(T),zIndex:m||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case L.BEACON:return i.createElement("div",{className:U({...I,"userflowjs-beacon":!0,"userflowjs-beacon--pulse":!E,"userflowjs-beacon--pulse-still":!!E}),...f},i.createElement("div",{className:"userflowjs-beacon__ring"}),i.createElement("div",{className:"userflowjs-beacon__ring"}));case L.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...f},d);case L.HIDDEN:return null;case L.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...f},i.createElement(Te,{icon:c||"solid/info-circle",size:T.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",nt=({session:t,active:c})=>{const d=ue(),{version:T}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=me(T.theme),m=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{de.changeLanguage(m)},[m]);const{activateOn:r}=e,C=e.activeWhileTooltipHover||e.buttons.length>0,k=e.hiddenWhileActive&&r!==l.LAUNCHER_HOVER,H=!c||!k,I=r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK||C,f=u.useRef({}),A=u.useCallback(()=>{let h=null;const{targetEl:b,clipEl:g,viewportClipRect:F}=f.current,S=s;S&&(b&&g&&F&&(h=ke({targetEl:b,subjectEl:S,clipEl:g,viewportClipRect:F,position:e.targetPosition,subjectAnchor:e.appearance===L.BEACON?"center":"side"})),ie(()=>{Oe(S,h)}));let M;e.appearance===L.HIDDEN?M=!!b:M=!!h,M&&!f.current.seenTriggered&&!E&&(f.current.seenTriggered=!0,d.launcherSeen(w))},[s,e,d,E,w]);u.useLayoutEffect(()=>{A()},[A]);const _=u.useRef(!1),y=u.useRef(!1),P=u.useRef(!1),x=u.useRef(),W=()=>{_.current=!0,v()},z=()=>{_.current=!1,v()},Z=()=>{y.current=!0,v()},$=()=>{y.current=!1,v()},X=()=>{P.current=!0,v()},q=()=>{P.current=!1,v()},v=()=>{O();const h=250;x.current=window.setTimeout(()=>B.current(),h)},O=u.useCallback(()=>{window.clearTimeout(x.current)},[]),G=()=>{if(r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)return;const h=r===l.LAUNCHER_HOVER||r===l.LAUNCHER_TARGET_HOVER,b=r===l.TARGET_HOVER||r===l.LAUNCHER_TARGET_HOVER;_.current&&(!k||!c)&&h||y.current&&b||P.current&&C?D():R()},B=u.useRef(G);B.current=G;const D=()=>{c||(O(),e.tooltipEnabled?d.activateLauncher(t):(d.activateLauncher(t),d.deactivateLauncher(t)),le(d,t,e.actions))},R=u.useCallback(()=>{c&&(O(),d.deactivateLauncher(t))},[c,d,t,O]),j=()=>{c?R():D()},Q=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{f.current.targetEl=h,f.current.clipEl=b,f.current.viewportClipRect=g,A()},[A]),Y=u.useCallback(()=>{f.current.targetEl=void 0,f.current.clipEl=void 0,A(),R()},[A,R]);ne({selector:e.targetSelector,targetMoved:Q,targetLost:Y,onTargetMouseEnter:Z,onTargetMouseLeave:$,onTargetClick:r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0}),u.useEffect(()=>{if(!c)return;const h=b=>{const g=b.target;s&&s.contains(g)||(r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)&&f.current.targetEl&&f.current.targetEl.contains(g)||R()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,R]);const J=Ne(e.tooltipPosition.side===a.AUTO?e.targetPosition:e.tooltipPosition),ee=u.useMemo(()=>e.content&&oe(ae(e.content),{buttons:e.buttons}),[e.content,e.buttons]);return i.createElement(ce.Provider,{value:t},H&&i.createElement(ve,{ref:o,appearance:e.appearance,icon:e.icon,buttonText:e.buttonText,theme:n,onClick:r===l.LAUNCHER_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0,onMouseEnter:W,onMouseLeave:z,noPointerEvents:r===l.TARGET_HOVER,zIndex:e.zIndex}),c&&i.createElement(Ce,null,i.createElement(Re,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?f.current.targetEl:s,tooltipPlacement:J,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:q},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Le,{draftMode:t.draftMode,close:I?R:void 0}),i.createElement("div",{className:"userflowjs-bubble-content"},i.createElement(se,{doc:ee,lookupAttribute:we(t.data),buttons:e.buttons})))))};function ke({targetEl:t,subjectEl:c,clipEl:d,viewportClipRect:T,position:E,subjectAnchor:w}){const e=V(t);if(e.width===0||e.height===0)return null;const s=c.getBoundingClientRect();let o=0,n=0,{side:m,align:r}=E;switch(m===a.AUTO&&(m=a.TOP,r=p.END),m){case a.TOP:n=e.top;break;case a.BOTTOM:n=e.bottom;break;case a.LEFT:o=e.left;break;case a.RIGHT:o=e.right;break}switch(m){case a.TOP:case a.BOTTOM:switch(r){case p.START:o=e.left;break;case p.CENTER:o=e.left+e.width/2;break;case p.END:o=e.right;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.START:n=e.top;break;case p.CENTER:n=e.top+e.height/2;break;case p.END:n=e.bottom;break}break}switch(E.xUnit===K.PERCENT?o+=E.xOffset/100*e.width:o+=E.xOffset,E.yUnit===K.PERCENT?n+=E.yOffset/100*e.height:n+=E.yOffset,w){case"center":o-=s.width/2,n-=s.height/2;break;case"side":switch(m){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(m){case a.TOP:case a.BOTTOM:switch(r){case p.CENTER:o-=s.width/2;break;case p.END:o-=s.width;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.CENTER:n-=s.height/2;break;case p.END:n-=s.height;break}break}}if(o+s.width<T.left||o>T.right||n+s.height<T.top||n>T.bottom)return null;const C=V(d);return o=Math.max(o,C.left-d.scrollLeft),n=Math.max(n,C.top-d.scrollTop),o=Math.round(o),n=Math.round(n),{left:o,top:n}}function Oe(t,c){t.classList.toggle(Ie,c!=null),c&&(t.style.transform=`translate3d(${c.left}px, ${c.top}px, 0)`)}function Ne(t){switch(t.side){case a.AUTO:return null;case a.TOP:return N.ABOVE;case a.BOTTOM:return N.BELOW;case a.LEFT:return N.LEFT;case a.RIGHT:return N.RIGHT}}export{nt as LauncherApp,nt as default};
1
+ import{R as i,r as u}from"./vendor.react.js";import{Q as L,X as l,Y as a,q as te,Z as re,$ as p,a0 as K,a1 as N}from"./userflow.js";import{c as ne,m as oe,d as ae,S as ce,R as se,h as le,r as ie}from"./use-selector-element-monitoring.js";import{u as ue,i as de}from"./client-context.js";import{o as U}from"./vendor.obj-str.js";import{a as fe,b as he,g as Ee,D as Te,u as me}from"./stylesheets.js";import{w as pe,f as be,L as ge,S as Ce}from"./flow-host.styl.js";import"./vendor.core-js.js";import{F as Re,B as Le}from"./FlowChrome.js";import{g as we}from"./flow-condition-types.js";import{T as Ae}from"./Trigger.js";import{r as V}from"./roots.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./vendor.react-i18next.js";import"./vendor.babel.runtime.js";import"./vendor.i18next.js";import"./vendor.fortawesome.pro-regular-svg-icons.js";import"./Frame.js";import"./vendor.react-dom.js";import"./vendor.scheduler.js";import"./use-window-resize.js";import"./logomark.js";import"./vendor.canvas-confetti.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},c=new Error().stack;c&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[c]="776c0b42-b279-4c66-8434-ef1e20069864",t._sentryDebugIdIdentifier="sentry-dbid-776c0b42-b279-4c66-8434-ef1e20069864")}catch{}})();const ve=i.forwardRef(({appearance:t,icon:c,buttonText:d,theme:T,noAnimation:E,noFixed:w,onClick:e,onMouseEnter:s,onMouseLeave:o,noPointerEvents:n,zIndex:m},r)=>{const{loaded:C}=fe(window,be,T),k=T&&t===L.BUTTON?T:null,{loaded:H}=he(window,k),I={"userflowjs-launcher":!0,"userflowjs-launcher--activate-on-click":!!e,"userflowjs-fixed-widget":!w},f={ref:r,style:{...Ee(T),zIndex:m||pe(ge),pointerEvents:n?"none":void 0},onClick:e,onMouseEnter:s,onMouseLeave:o};if(!C||!H)return null;switch(t){case L.BEACON:return i.createElement("div",{className:U({...I,"userflowjs-beacon":!0,"userflowjs-beacon--pulse":!E,"userflowjs-beacon--pulse-still":!!E}),...f},i.createElement("div",{className:"userflowjs-beacon__ring"}),i.createElement("div",{className:"userflowjs-beacon__ring"}));case L.BUTTON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--button":!0}),...f},d);case L.HIDDEN:return null;case L.ICON:return i.createElement("div",{className:U({...I,"userflowjs-launcher--icon":!0}),...f},i.createElement(Te,{icon:c||"solid/info-circle",size:T.launcherIconSize}))}}),Ie="userflowjs-fixed-widget--visible",nt=({session:t,active:c})=>{const d=ue(),{version:T}=t,E=t.id,w=t.flow.id,e=t.version.launcher,[s,o]=u.useState(null),n=me(T.theme),m=t.locale?t.locale.standardLocaleId:n.languageId;u.useEffect(()=>{de.changeLanguage(m)},[m]);const{activateOn:r}=e,C=e.activeWhileTooltipHover||e.buttons.length>0,k=e.hiddenWhileActive&&r!==l.LAUNCHER_HOVER,H=!c||!k,I=r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK||C,f=u.useRef({}),A=u.useCallback(()=>{let h=null;const{targetEl:b,clipEl:g,viewportClipRect:F}=f.current,S=s;S&&(b&&g&&F&&(h=ke({targetEl:b,subjectEl:S,clipEl:g,viewportClipRect:F,position:e.targetPosition,subjectAnchor:e.appearance===L.BEACON?"center":"side"})),ie(()=>{Oe(S,h)}));let M;e.appearance===L.HIDDEN?M=!!b:M=!!h,M&&!f.current.seenTriggered&&!E&&(f.current.seenTriggered=!0,d.launcherSeen(w))},[s,e,d,E,w]);u.useLayoutEffect(()=>{A()},[A]);const _=u.useRef(!1),y=u.useRef(!1),P=u.useRef(!1),x=u.useRef(),W=()=>{_.current=!0,v()},z=()=>{_.current=!1,v()},Z=()=>{y.current=!0,v()},$=()=>{y.current=!1,v()},X=()=>{P.current=!0,v()},q=()=>{P.current=!1,v()},v=()=>{O();const h=250;x.current=window.setTimeout(()=>B.current(),h)},O=u.useCallback(()=>{window.clearTimeout(x.current)},[]),G=()=>{if(r===l.LAUNCHER_CLICK||r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)return;const h=r===l.LAUNCHER_HOVER||r===l.LAUNCHER_TARGET_HOVER,b=r===l.TARGET_HOVER||r===l.LAUNCHER_TARGET_HOVER;_.current&&(!k||!c)&&h||y.current&&b||P.current&&C?D():R()},B=u.useRef(G);B.current=G;const D=()=>{c||(O(),e.tooltipEnabled?d.activateLauncher(t):(d.activateLauncher(t),d.deactivateLauncher(t)),le(d,t,e.actions))},R=u.useCallback(()=>{c&&(O(),d.deactivateLauncher(t))},[c,d,t,O]),j=()=>{c?R():D()},Q=u.useCallback(({targetEl:h,clipEl:b,viewportClipRect:g})=>{f.current.targetEl=h,f.current.clipEl=b,f.current.viewportClipRect=g,A()},[A]),Y=u.useCallback(()=>{f.current.targetEl=void 0,f.current.clipEl=void 0,A(),R()},[A,R]);ne({selector:e.targetSelector,targetMoved:Q,targetLost:Y,onTargetMouseEnter:Z,onTargetMouseLeave:$,onTargetClick:r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0}),u.useEffect(()=>{if(!c)return;const h=b=>{const g=b.target;s&&s.contains(g)||(r===l.TARGET_CLICK||r===l.LAUNCHER_TARGET_CLICK)&&f.current.targetEl&&f.current.targetEl.contains(g)||R()};return window.addEventListener("click",h,{capture:!0}),()=>window.removeEventListener("click",h,{capture:!0})},[c,r,s,R]);const J=Ne(e.tooltipPosition.side===a.AUTO?e.targetPosition:e.tooltipPosition),ee=u.useMemo(()=>e.content&&oe(ae(e.content),{buttons:e.buttons}),[e.content,e.buttons]);return i.createElement(ce.Provider,{value:t},H&&i.createElement(ve,{ref:o,appearance:e.appearance,icon:e.icon,buttonText:e.buttonText,theme:n,onClick:r===l.LAUNCHER_CLICK||r===l.LAUNCHER_TARGET_CLICK?j:void 0,onMouseEnter:W,onMouseLeave:z,noPointerEvents:r===l.TARGET_HOVER,zIndex:e.zIndex}),c&&i.createElement(Ce,null,i.createElement(Re,{company:t.flow.company,theme:n,position:"fixed",stepAppearance:te.TOOLTIP,width:e.tooltipWidth,tooltipSelector:e.tooltipAnchor===re.TARGET?f.current.targetEl:s,tooltipPlacement:J,frameWrapperHtmlAttributes:{onMouseEnter:X,onMouseLeave:q},rootChildren:()=>i.createElement(i.Fragment,null,e.triggers.map(h=>i.createElement(Ae,{key:h.id,trigger:h})))},i.createElement(Le,{draftMode:t.draftMode,close:I?R:void 0}),i.createElement("div",{className:"userflowjs-bubble-content"},i.createElement(se,{doc:ee,lookupAttribute:we(t.data),buttons:e.buttons})))))};function ke({targetEl:t,subjectEl:c,clipEl:d,viewportClipRect:T,position:E,subjectAnchor:w}){const e=V(t);if(e.width===0||e.height===0)return null;const s=c.getBoundingClientRect();let o=0,n=0,{side:m,align:r}=E;switch(m===a.AUTO&&(m=a.TOP,r=p.END),m){case a.TOP:n=e.top;break;case a.BOTTOM:n=e.bottom;break;case a.LEFT:o=e.left;break;case a.RIGHT:o=e.right;break}switch(m){case a.TOP:case a.BOTTOM:switch(r){case p.START:o=e.left;break;case p.CENTER:o=e.left+e.width/2;break;case p.END:o=e.right;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.START:n=e.top;break;case p.CENTER:n=e.top+e.height/2;break;case p.END:n=e.bottom;break}break}switch(E.xUnit===K.PERCENT?o+=E.xOffset/100*e.width:o+=E.xOffset,E.yUnit===K.PERCENT?n+=E.yOffset/100*e.height:n+=E.yOffset,w){case"center":o-=s.width/2,n-=s.height/2;break;case"side":switch(m){case a.TOP:n-=s.height;break;case a.LEFT:o-=s.width;break}switch(m){case a.TOP:case a.BOTTOM:switch(r){case p.CENTER:o-=s.width/2;break;case p.END:o-=s.width;break}break;case a.LEFT:case a.RIGHT:switch(r){case p.CENTER:n-=s.height/2;break;case p.END:n-=s.height;break}break}}if(o+s.width<T.left||o>T.right||n+s.height<T.top||n>T.bottom)return null;const C=V(d);return o=Math.max(o,C.left-d.scrollLeft),n=Math.max(n,C.top-d.scrollTop),o=Math.round(o),n=Math.round(n),{left:o,top:n}}function Oe(t,c){t.classList.toggle(Ie,c!=null),c&&(t.style.transform=`translate3d(${c.left}px, ${c.top}px, 0)`)}function Ne(t){switch(t.side){case a.AUTO:return null;case a.TOP:return N.ABOVE;case a.BOTTOM:return N.BELOW;case a.LEFT:return N.LEFT;case a.RIGHT:return N.RIGHT}}export{nt as LauncherApp,nt as default};
2
2
  //# sourceMappingURL=LauncherApp.js.map
@@ -1,5 +1,5 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["ResourceCenterAssistantChat.js","vendor.react.js","vendor.core-js.js","vendor.object-assign.js","userflow.js","vendor.phoenix.js","vendor.uuid.js","client-context.js","vendor.i18next.js","vendor.babel.runtime.js","vendor.react-i18next.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.dompurify.js","vendor.marked.js","vendor.obj-str.js","use-selector-element-monitoring.js","flow-condition-types.js","vendor.date-fns.js","roots.js","stylesheets.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.react-dom.js","vendor.scheduler.js","flow-host.styl.js","Frame.js","use-window-resize.js","logomark.js","ChecklistUI.js","FlowChrome.js","vendor.canvas-confetti.js","vendor.memoize-one.js","vendor.bignumber.js.js","use-element-rect.js"])))=>i.map(i=>d[i]);
2
- import{k as y,C as W,l as Ae,u as re,m as dn,n as B,o as it,p as ut,E as mn,q as fn,r as hn,s as wn,a as dt,t as mt,v as En,w as ft,_ as pn}from"./userflow.js";import{r as a,R as e}from"./vendor.react.js";import{u as x,i as Ee}from"./client-context.js";import{f as ht,u as bn,w as wt,C as vn,N as gn}from"./flow-host.styl.js";import{S as Et,b as ze,R as H,h as Cn,s as He,a as G,n as kn}from"./use-selector-element-monitoring.js";import{g as _}from"./flow-condition-types.js";import{D as A,u as pe,a as pt,g as Te}from"./stylesheets.js";import{F as Ve}from"./Frame.js";import{o as D}from"./vendor.obj-str.js";import{M as Re,d as bt,e as vt}from"./roots.js";import{u as Nn}from"./use-window-resize.js";import{S as jn}from"./logomark.js";import"./vendor.core-js.js";import{f as yn,C as Sn}from"./ChecklistUI.js";import{J as In,C as qe,K as An,L as Tn,M as Rn,N as Mt,O as te,z as _n,P as xn,Q as Ln,R as Mn}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{F as Bn,B as Dn}from"./FlowChrome.js";import{m as gt}from"./vendor.memoize-one.js";import{B as Bt}from"./vendor.bignumber.js.js";import{u as Fn}from"./use-element-rect.js";import{u as ne}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="73cf849c-cffa-4b74-a615-d83f73e6c733",t._sentryDebugIdIdentifier="sentry-dbid-73cf849c-cffa-4b74-a615-d83f73e6c733")}catch{}})();function Pn(t,n,r){return t.resourceCenterAutoDividers?Ct(n)||Ct(r):!1}function Ct(t){return t!==y.ACTION&&t!==y.ANNOUNCEMENTS&&t!==y.ASSISTANT&&t!==y.CONTACT&&t!==y.FLOWS&&t!==y.KNOWLEDGE_BASE&&t!==y.SUBPAGE}const m=window,_e={[W.CRISP]:{configure:({onShow:t,onHide:n})=>{On();let r=!1,s=!1;const o=()=>{r||s?(m.$crisp.push(["do","chat:show"]),t()):(m.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};m.$crisp.push(["on","chat:opened",c]);const l=()=>{r=!1,o()};m.$crisp.push(["on","chat:closed",l]);const i=()=>{s=!0,o()};m.$crisp.push(["on","message:received",i]);const p=()=>{const E=document.getElementById("crisp-chatbox");if(!E||window.getComputedStyle(E).display!=="block")return!1;const h=E.querySelector('[data-id="new_messages"]');return!(!h||window.getComputedStyle(h).display!=="block")},u=()=>{const E=p();E!==s&&(s=E,o())},d=window.setInterval(u,200);return()=>{m.$crisp.push(["off","chat:opened",c]),m.$crisp.push(["off","chat:closed",l]),m.$crisp.push(["off","message:received",i]),window.clearInterval(d)}},show:()=>{m.$crisp.push(["do","chat:show"]),m.$crisp.push(["do","chat:open"])},hide:()=>{m.$crisp.push(["do","chat:hide"]),m.$crisp.push(["do","chat:close"])}},[W.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
3
- `+t.chatCode)()}catch(n){console.error(`Userflow.js: Showing custom chat provider failed. Code: ${t.chatCode}`,n)}},hide:()=>{}},[W.FRESHCHAT]:{configure:({onShow:t,onHide:n})=>{if(!m.fcWidget)throw new Error("Freshchat is not installed");let r=!1,s=!1;const o=()=>{r||s?t():n()},c=()=>{r=!0,o()};m.fcWidget.on("widget:opened",c);const l=()=>{r=!1,o()};m.fcWidget.on("widget:closed",l);const i=()=>{const u=!!document.querySelector("#fc_frame.h-open-notify");u!==s&&(s=u,o())},p=window.setInterval(i,200);return m.fcWidget.on("unreadCount:notify",i),()=>{m.fcWidget.off("widget:opened",c),m.fcWidget.off("widget:closed",l),m.fcWidget.off("unreadCount:notify",i),window.clearInterval(p)}},show:()=>{m.fcWidget.open()},hide:()=>{m.fcWidget.close()}},[W.HELPSCOUT]:{configure:({onShow:t,onHide:n})=>{if(!m.Beacon)throw new Error("Help Scout is not installed");$n();let r=!1,s=!1;const o=()=>{r||s?(jt(),t()):(xe(),n())},c=()=>{r=!0,o()};m.Beacon("on","open",c),m.Beacon("info")?.status.isOpened&&c();const l=()=>{r=!1,o()};m.Beacon("on","close",l);const i=()=>{const u=!!document.querySelector(".BeaconNotificationsFrame");u!==s&&(s=u,o())},p=window.setInterval(i,200);return()=>{m.Beacon("off","open",c),m.Beacon("off","close",l),window.clearInterval(p)}},show:()=>{jt(),m.Beacon("open")},hide:()=>{xe(),m.Beacon("close")}},[W.HUBSPOT]:{configure:({onShow:t,onHide:n})=>{const r=()=>{const c=document.getElementById("hubspot-messages-iframe-container");if(!m.HubSpotConversations||!c)return;window.clearInterval(o),Un();let l=!1,i=!1;const p=()=>{l||i?(Le(),t()):(Me(),n())},u=()=>{const h=!!document.querySelector("#hubspot-messages-iframe-container .hs-shadow-container.active");h!==l&&(l=h,p())},d=new Re(u);d.observe(c,{attributes:!0,subtree:!0,attributeFilter:["class"]}),u();const E=({unreadCount:h})=>{const w=h>0;w!==i&&(i=w,p())};m.HubSpotConversations.on("unreadConversationCountChanged",E),s=()=>{d.disconnect(),m.HubSpotConversations.off("unreadConversationCountChanged",E)}};let s=()=>{window.clearInterval(o)};const o=window.setInterval(r,100);return r(),()=>{s()}},show:()=>{Le(),m.HubSpotConversations.widget.open()},hide:()=>{Me(),m.HubSpotConversations.widget.close()}},[W.INTERCOM]:{configure:({onShow:t,onHide:n})=>{if(!m.Intercom)throw new Error("Intercom is not installed");return Wn(),Be.add(t),De.add(n),()=>{Be.delete(t),De.delete(n)}},show:()=>{Dt(),m.Intercom("show")},hide:()=>{Fe(),m.Intercom("hide")}},[W.ZENDESK]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");zn();let r=!1,s=!1;const o=()=>{r||s?(m.zE("webWidget","show"),t()):(m.zE("webWidget","hide"),n())},c=()=>{r=!0,s=!1,o()};Pe.add(c);const l=()=>{r=!1,s=!1,o()};Oe.add(l);const i=p=>{const u=p>0;u!==s&&(s=u,o())};return $e.add(i),()=>{Pe.delete(c),Oe.delete(l),$e.delete(i)}},show:()=>{m.zE("webWidget","show"),m.zE("webWidget","open")},hide:()=>{m.zE("webWidget","hide"),m.zE("webWidget","close")}},[W.ZENDESK_MESSENGER]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");const r=()=>{t()},s=()=>{n()};return Ue.add(r),We.add(s),Hn(),()=>{Ue.delete(r),We.delete(s)}},show:()=>{m.zE("messenger","open")},hide:()=>{m.zE("messenger","close")}}};let kt=!1;function On(){kt||(kt=!0,m.$crisp||(m.$crisp=[]),m.$crisp.push(["do","chat:hide"]))}let Nt=!1;function $n(){Nt||(Nt=!0,xe())}function jt(){m.Beacon("config",{display:{style:"icon"}})}function xe(){m.Beacon("config",{display:{style:"manual"}})}let yt=!1,Ke=!1;function Un(){yt||(yt=!0,Ke?Le():Me())}function Le(){Ke=!0,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","visible","important")}function Me(){Ke=!1,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","hidden","important")}let St=!1,Be=new Set,De=new Set;function Wn(){if(St)return;St=!0,Fe();let t=!1,n=!1;const r=()=>{Dt();for(const l of Be)l()},s=()=>{Fe();for(const l of De)l()},o=()=>{t||n?r():s()};m.Intercom("onShow",()=>{t=!0,o()}),m.Intercom("onHide",()=>{t=!1,o()});const c=()=>{const l=!!document.querySelector('iframe[name="intercom-borderless-frame"], iframe[name="intercom-notifications-frame"]');n!==l&&(n=l,o())};m.Intercom("onUnreadCountChange",()=>{c()}),window.setInterval(c,200)}function Dt(){m.Intercom("update",{hide_default_launcher:!1,vertical_padding:20})}function Fe(){m.Intercom("update",{hide_default_launcher:!0,vertical_padding:100})}let It=!1,Pe=new Set,Oe=new Set,$e=new Set;function zn(){It||(It=!0,m.zE("webWidget","hide"),m.zE("webWidget","close"),m.zE("webWidget:on","open",()=>{for(const t of Pe)t()}),m.zE("webWidget:on","close",()=>{for(const t of Oe)t()}),m.zE("webWidget:on","chat:unreadMessages",t=>{for(const n of $e)n(t)}))}let At=!1,Ue=new Set,We=new Set;function Hn(){At||(At=!0,m.zE("messenger:on","open",function(){for(const t of Ue)t()}),m.zE("messenger:on","close",function(){for(const t of We)t()}))}const Vn=t=>a.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},t),a.createElement("path",{fill:"currentColor",d:"M24.049 79.74h36.003c8.185 0 15.985-6.621 17.43-14.814l6.091-34.556h3.997c8.149 0 13.645 6.63 12.2 14.815l-7.051 40C91.274 93.363 83.474 100 75.288 100h-40c-8.185 0-13.645-6.667-12.2-14.815l.96-5.444Z"}),a.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.437 69.63h40c8.148 0 15.978-6.637 17.422-14.815l7.052-40C78.355 6.63 72.896 0 64.711 0h-40C16.533 0 8.726 6.63 7.281 14.815l-7.052 40C-1.215 62.963 4.252 69.63 12.437 69.63Zm33.628-33.798c3.756-2.064 8.725-4.795 9.907-11.844C57.385 15.458 50.065 8.983 42.168 9c-7.452 0-12.771 3.195-17.508 8.892-.858 1.034-.884 2.45-.053 3.212l3.472 3.196c.847.767 2.25.589 3.176-.406 2.842-3.068 4.869-4.83 8.51-4.83 2.864 0 6.077 1.934 5.59 4.847-.37 2.223-2.292 3.334-5.4 5.001l-.28.151c-3.582 1.92-8.134 4.362-9.124 10.247l-.16.956c-.055.28-.05.571.014.85.065.278.188.538.362.76.173.222.391.4.639.522.247.121.518.183.79.18h6.744a2.709 2.709 0 0 0 1.712-.688c.481-.426.81-1.01.934-1.657l.095-.556c.266-1.582 2.101-2.59 4.384-3.845ZM32.837 59c3.552 0 6.955-3.034 7.58-6.769.63-3.729-1.742-6.763-5.293-6.763-3.552 0-6.934 3.028-7.58 6.763C26.9 55.966 29.286 59 32.837 59Z"})),$=({center:t,fadeIn:n})=>e.createElement("div",{className:D({"userflowjs-spinner":!0,"userflowjs-spinner--center":!!t,"userflowjs-spinner--fade-in":!!n})},e.createElement("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"userflowjs-spinner__bg",fill:"none",cx:12,cy:12,r:10,style:{strokeWidth:"4px"}}),e.createElement("circle",{className:"userflowjs-spinner__fill",fill:"none",cx:12,cy:12,r:10,transform:"translate(12, 12) rotate(-90) translate(-12, -12)",style:{strokeWidth:"4px",strokeDasharray:10*2*Math.PI*.25+"px, 1000"}})));function be({message:t,skip:n}){const r=x(),[s,o]=a.useState(!0),[c,l]=a.useState(!1),[i,p]=a.useState(null),[u,d]=a.useState(null),[E,h]=a.useState(null),w=a.useRef(0),b=a.useRef(null),v=a.useRef(()=>{});return a.useEffect(()=>{if(n)return;const N=JSON.stringify(t);if(N===b.current)return;b.current=N;const S=++w.current;let j,C;const L=async()=>{o(!0);try{C=t;const P=await r.send(t,{handlesRejection:!0});if(S!==w.current)return;j=P,p(j),d(t),h(null)}catch(P){if(S!==w.current)return;h(P)}finally{o(!1)}};let K=!1;v.current=async(P,O)=>{if(!K){K=!0,l(!0);try{const V=P(j,C);C=V;const U=await r.send(V,{handlesRejection:!0});if(S!==w.current)return;j=O(j,U),p(j),h(null)}catch(V){if(S!==w.current)return;h(V)}finally{K=!1,l(!1)}}},L()},[n,r,t]),{loading:s,loadingMore:c,data:i,messageForData:u,error:E,loadMore:v.current}}const qn=200;function Qe(t,n){const[r,s]=a.useState(t),o=a.useRef(void 0),c=a.useCallback(i=>{window.clearTimeout(o.current),s(i),n(i)},[n]),l=a.useCallback(i=>{window.clearTimeout(o.current),s(i),o.current=window.setTimeout(()=>{n(i)},qn)},[n]);return a.useEffect(()=>()=>{window.clearTimeout(o.current)},[]),[r,l,c]}const Kn={xs:[16,3],sm:[24,4],md32:[32,4],md:[40,4],lg:[56,4]};class Qn extends e.PureComponent{constructor(){super(...arguments),this.memoizedBgStyle=gt(n=>({strokeWidth:`${n}px`})),this.memoizedFillStyle=gt((n,r,s)=>({strokeWidth:`${n}px`,strokeDasharray:r*2*Math.PI*new Bt(s).toNumber()+"px, 1000"}))}render(){const{props:n}=this,{size:r,indeterminate:s,className:o,center:c,right:l,color:i}=this.props,p=["progress-spinner"];r&&p.push(`progress-spinner--${r}`),s&&p.push("progress-spinner--indeterminate"),o&&p.push(o);const u=s?.25:n.progress||0,[d,E]=Kn[r||"md"],h=d/2,w=(d-E)/2;let b=e.createElement("div",{className:p.join(" ")},e.createElement("svg",{viewBox:`0 0 ${d} ${d}`,version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"progress-spinner__bg",fill:"none",cx:h,cy:h,r:w,style:this.memoizedBgStyle(E)}),e.createElement("circle",{className:i==="purple"?"progress-spinner__fill-purple":"progress-spinner__fill",fill:"none",cx:h,cy:h,r:w,transform:`translate(${h}, ${h}) rotate(-90) translate(-${h}, -${h})`,style:this.memoizedFillStyle(E,w,u)})));return c?b=e.createElement("div",{className:"progress-spinner-center-aligner"},b):l&&(b=e.createElement("div",{className:"progress-spinner-right-aligner"},b)),b}}const Zn=({textareaRef:t,value:n,onChange:r,onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:l,disabled:i,readOnly:p,className:u,mirrorClassName:d,textareaClassName:E,icon:h,onIconClick:w,loading:b=!1,children:v})=>{let N=n||l||"";(N===""||N.endsWith(`
4
- `))&&(N+=" "),u=u||"growing-textarea",d=d||u+"__mirror";const[S,j]=a.useState(!1);return e.createElement("div",{className:D({[u]:!0,[`${u}__loading`]:b})},e.createElement("div",{className:d+" "+(E||"")},N),e.createElement("textarea",{ref:t,value:n,onChange:C=>r&&r(C.target.value),onBlur:s,onKeyDown:C=>{if(C.key==="Enter"&&S){C.preventDefault();return}o&&o(C)},onMouseDown:c,placeholder:l,disabled:i||b,readOnly:p,className:D({"growing-textarea__input":!0,[E||""]:!0,[`${u}__with-icon`]:!!h,[`${u}__loading-input`]:b}),onCompositionStart:()=>j(!0),onCompositionEnd:()=>j(!1)}),h&&!b&&e.createElement("div",{className:`${u}__icon`},e.createElement("button",{className:"btn btn--plain-blue btn--square btn--md32",onClick:w},e.createElement(A,{icon:h}))),b&&e.createElement("div",{className:`${u}__loader`},e.createElement(Qn,{indeterminate:!0,size:"xs",color:"purple"})),v)},Gn=({textareaRef:t,value:n,onChange:r,onSubmit:s,placeholder:o,readOnly:c})=>{const l=()=>{s&&s()};return e.createElement("div",{className:"userflowjs-assistant-chat-input"},e.createElement(Zn,{textareaRef:t,className:"userflowjs-growing-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea userflowjs-assistant-chat-input__textarea",placeholder:o,readOnly:c,value:n||"",onChange:r,onKeyDown:i=>{!i.shiftKey&&i.key==="Enter"&&(i.preventDefault(),l())}}),e.createElement("button",{"data-testid":"assistant-chat-input-submit",className:"userflowjs-assistant-chat-input__submit",onClick:()=>l()},e.createElement(A,{icon:In})))};function Jn(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function Ft(t){return Ae.linkUrlDecorator?Ae.linkUrlDecorator(t):t}const Tt=5,Xn=async()=>(await pn(async()=>{const{ResourceCenterAssistantChat:t}=await import("./ResourceCenterAssistantChat.js");return{ResourceCenterAssistantChat:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]))).ResourceCenterAssistantChat,Rt=({session:t,isOpen:n,flowSession:r,checklistSession:s,resourceCenterLauncherHidden:o})=>{const c=x(),{t:l}=ne(),{company:i}=t.flow,{version:p}=t,u=p.resourceCenter,d=pe(p.theme),E=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;a.useEffect(()=>{Ee.changeLanguage(E)},[E]);const{loaded:h}=pt(window,ht,d),[w,b]=a.useState(!1),v=h&&w,[N,S]=a.useState(bt()),[j,C]=a.useState(vt()),L=a.useCallback(()=>{S(bt()),C(vt())},[]);Nn(L);const{zIndex:K,bringToFront:P}=bn(),[O,V]=a.useState(null),[U,Q]=a.useState(null),[J,oe]=a.useState(null),ce=a.useRef(null),[q,Zt]=a.useState(null),[Ge,Gt]=a.useState(null),[Je,Jt]=a.useState(null),[Xt,Yt]=a.useState(0),[en,tn]=a.useState(0),ge=a.useCallback(()=>{U&&Yt(Math.round(U?.offsetWidth||0)),tn(Math.round((J?.offsetHeight||0)+(q?.offsetHeight||0)+(Ge?.offsetHeight||0)+(Je?.offsetHeight||0)))},[U,J,q,Ge,Je]);a.useLayoutEffect(()=>{if(!O||typeof Re!="function")return;const f=new Re(()=>{ge()});return f.observe(O,{childList:!0,attributes:!0,subtree:!0}),()=>{f.disconnect()}},[O,ge]),a.useLayoutEffect(()=>{ge()});const[Xe,Ye]=a.useState(!1),Ce=a.useRef(),le=a.useCallback(()=>{Ye(!0),window.clearTimeout(Ce.current),Ce.current=window.setTimeout(()=>{Ye(!1)},d.resourceCenterTransitionDuration)},[d.resourceCenterTransitionDuration]);a.useEffect(()=>()=>{window.clearTimeout(Ce.current)},[]);const ae=a.useCallback(()=>{P(),le(),c.openResourceCenter()},[P,c,le]),ke=a.useCallback(()=>{le(),c.closeResourceCenter()},[c,le]),[et,X]=a.useState(!1);a.useEffect(()=>{if(et){if(!Jn())if(n){const f='button:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), input, textarea';let k=q?.querySelector(".userflowjs-assistant-chat-input textarea")||q?.querySelector(f)||J?.querySelector(f);if(k){const T=k.closest&&k.closest(".userflowjs-resource-center-checklist")||null;T?yn(T):k.focus({preventScroll:!0})}}else U?.focus({preventScroll:!0});X(!1)}},[et,n,q,J,U]),a.useEffect(()=>{const f=O?.ownerDocument.defaultView;if(!n||!f)return;const k=T=>{T.key==="Escape"&&(ke(),X(!0))};return f.addEventListener("keydown",k),()=>f.removeEventListener("keydown",k)},[n,O,X,ke]);const[g,ie]=a.useState(()=>_t(t,re.getItem(`resourceCenterRoute:v1:${t.id}`))),F=a.useCallback((f,k)=>{ie(f);const T=Wt(f);T?re.setItem(`resourceCenterRoute:v1:${t.id}`,T):re.removeItem(`resourceCenterRoute:v1:${t.id}`),k?.detail===0&&X(!0)},[t.id]);a.useEffect(()=>{const f=re.getItem(`resourceCenterRoute:v1:${t.id}`);ie(_t(t,f))},[t]),a.useEffect(()=>{if(!t.draftMode||!g||!("block"in g)||!g.block)return;const f=u.blocks.find(k=>k.cvid===g.block.cvid);f?JSON.stringify(f)!==JSON.stringify(g.block)&&ie({...g,block:f}):ie(null),g.block},[t.draftMode,u,g]);const ue=a.useMemo(()=>u.blocks.filter(f=>!(f.type===y.CHECKLIST&&!s||f.type===y.DIVIDER&&d.resourceCenterAutoDividers||f.hiddenWhenFlowsActive&&f.hiddenWhenFlowsActive.some(k=>k===r?.flow.id||k===s?.flow.id))),[u,r,s,d.resourceCenterAutoDividers]),Ne=a.useMemo(()=>Ut(ue),[ue]),je=a.useMemo(()=>!s||!u.blocks.some(f=>f.type===y.CHECKLIST)?0:dn(s),[u,s]),M=a.useMemo(()=>u.blocks.find(f=>f.type===y.CONTACT&&f.chatEnabled&&f.chatProvider),[u]),[nn,tt]=a.useState(!1),de=a.useCallback(()=>{c.closeResourceCenter(),M&&M.chatProvider!==W.CUSTOM&&tt(!0)},[c,M]),me=a.useCallback(()=>{tt(!1)},[]),nt=a.useCallback(()=>{if(M)try{_e[M.chatProvider].hide({block:M}),me()}catch(f){console.error(`Userflow.js: Error when hiding ${M.chatProvider}:`,f)}},[M,me]);a.useEffect(()=>{if(!M)return;Ae.autoHide3pDisabled=!0;const f=_e[M.chatProvider];try{const k=f.configure({block:M,onShow:de,onHide:me});return()=>{k()}}catch(k){console.error(`Userflow.js: Error when configuring ${M.chatProvider}:`,k);return}},[M,de,me]),a.useEffect(()=>{n&&nt()},[nt,n]);const I=Qt(t),ye=a.useMemo(()=>{if(!I)return null;if(I.boosterAnnouncement){const f=I.boosterAnnouncement;if(!f.seen&&(f.level===B.TOAST||f.level===B.MODAL))return f}return I.popoutAnnouncement&&!I.popoutAnnouncement.seen?I.popoutAnnouncement:null},[I]),rt=pe(ye?.theme||p.theme);pt(window,ht,o?rt:void 0);const fe=a.useCallback((f,k,T,Y,we)=>{const at=()=>{Ze(c,f)};return e.createElement(e.Fragment,null,f.level===B.MODAL&&e.createElement($t,{session:T,open:ae,navigate:F,block:k,announcement:f,onDismiss:at}),(f.level===B.TOAST||f.level===B.POPOUT)&&e.createElement(Ot,{session:T,open:ae,navigate:F,block:k,announcement:f,onDismiss:at,isStandalonePopout:we?.isStandalonePopout,rcPlacement:Y.resourceCenterPlacement}))},[c,ae,F]),rn=(f,k,T)=>{const Y={...Te(T),zIndex:wt(gn),position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:f.level===B.MODAL?"auto":"none"},we={...t,data:{...t.data,...f.data||{}}};return e.createElement(Et.Provider,{value:we},e.createElement("div",{className:"userflowjs-theme-root",style:Y,id:"userflowjs-announcement-app"},fe(f,k,we,T,{isStandalonePopout:f.level===B.POPOUT})))},sn=!!g&&(g.kind==="search"||g.kind==="flows"||g.kind==="knowledgeBase"),st=g?.kind==="assistant"||g?.kind==="announcementList"||g?.kind==="announcementShow",Se=Math.min(st?d.resourceCenterFullWidth:d.resourceCenterWidth,N-2*d.resourceCenterPaddingX),on=540,cn=720,ln={zIndex:d.resourceCenterZIndex!=null?d.resourceCenterZIndex:n?K:wt(vn),position:v?void 0:"absolute",visibility:v&&!nn?void 0:"hidden"},an={width:(n?Se:Xt)+"px",height:n?Math.min(sn?on:st?cn:en,j-2*d.resourceCenterPaddingY,d.resourceCenterMaxHeight==null?Number.MAX_VALUE:d.resourceCenterMaxHeight)+"px":void 0,display:o&&!n?"none":void 0},[un,ot]=a.useState(!1),ct=()=>{ae(),X(!0)},lt=d.resourceCenterDisplayChecklistProgress&&s&&je>0?e.createElement("div",{"data-testid":"resource-center-launcher-badge",className:"userflowjs-resource-center-launcher-badge"},je,e.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")):null;let he="",Ie="";return d.resourceCenterLauncherTextMode===it.CHECKLIST_OVERRIDE&&s&&je>0?he=s.version.checklist?.launcherText||"Get Started":d.resourceCenterLauncherTextMode!==it.NONE&&(Ie=u.buttonText),o&&!n&&ye&&I?rn(ye,I,rt):e.createElement(Et.Provider,{value:t},e.createElement("div",{"data-testid":"resource-center-app",className:"userflowjs-resource-center-app userflowjs-theme-root",style:Te(d),dir:Ee.dir()},e.createElement("div",{className:D({"userflowjs-resource-center":!0,"userflowjs-resource-center--fixed":!0,[`userflowjs-resource-center--placement-${d.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0}),style:ln},e.createElement("div",{className:"userflowjs-resource-center-frame-wrapper",onMouseEnter:()=>ot(!0),onMouseLeave:()=>ot(!1)},e.createElement(Ve,{className:D({"userflowjs-resource-center-frame":!0,"userflowjs-resource-center-frame--animating":Xe,"userflowjs-resource-center-frame--open":n,"userflowjs-resource-center-frame--closed":!n}),style:an,stylesheet:ze,theme:d,onStylesheetsLoad:b,title:"Resource center"},v&&e.createElement(e.Fragment,null,e.createElement("div",{ref:V,className:D({"userflowjs-resource-center-frame-root":!0,[`userflowjs-resource-center-frame-root--placement-${d.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0,"userflowjs-resource-center-frame-root--animating":Xe,"userflowjs-resource-center-frame-root--open":n,"userflowjs-resource-center-frame-root--closed":!n}),role:n?"dialog":void 0,"aria-label":n?u.headerText:void 0},!o&&e.createElement("div",{className:"userflowjs-resource-center-launcher-container"},e.createElement("button",{ref:Q,className:D({"userflowjs-resource-center-launcher-button":!0,"userflowjs-resource-center-launcher-button--hover":un}),onClick:ct,"aria-label":`Open ${u.headerText}`},lt,he&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},he),(lt||he)&&e.createElement("div",{className:"userflowjs-resource-center-launcher-divider"}),Ie&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},Ie),e.createElement("div",{className:"userflowjs-resource-center-launcher-icon"},d.resourceCenterLauncherIconType===ut.PLAINTEXT?"?":d.resourceCenterLauncherIconType===ut.DEFAULT?e.createElement(Vn,null):d.rcIconAsset&&d.rcIconAsset.assetUrl?e.createElement("img",{src:d.rcIconAsset.assetUrl,className:"company-icon",style:{height:`${d.rcIconSize}px`,width:`${d.rcIconSize}px`}}):e.createElement("span",null)))),e.createElement("div",{ref:ce,className:"userflowjs-resource-center-body",style:{width:Se+"px"}},e.createElement("div",{ref:Zt,className:D({"userflowjs-resource-center-body-content":!0,"userflowjs-resource-center-body-content--padding":g?.kind!=="assistant","userflowjs-resource-center-body-content--same-background":d.sameBackground,"userflowjs-resource-center-body-content--with-made-with-userflow":i.resourceCenterBranding})},n&&e.createElement(e.Fragment,null,g?g.kind==="search"?e.createElement(er,{session:t,navigate:F}):g.kind==="email"?e.createElement(tr,{block:g.block,session:t}):g.kind==="phone"?e.createElement(nr,{block:g.block,session:t}):g.kind==="flows"?e.createElement(rr,{block:g.block,initialQ:g.initialQ,session:t,navigate:F}):g.kind==="knowledgeBase"?e.createElement(sr,{block:g.block,initialQ:g.initialQ,session:t,bodyRef:ce}):g.kind==="subpage"?e.createElement(or,{block:g.block,session:t}):g.kind==="announcementList"||g.kind==="announcementShow"?e.createElement(cr,{bodyRef:ce,session:t,route:g,navigate:F}):g.kind==="assistant"?e.createElement(ir,{block:g.block,initialUserContent:g.initialUserContent,session:t,navigate:F,chatBlock:M,onChatShow:de}):null:e.createElement(e.Fragment,null,ue.map((f,k)=>{const T=se[f.type],Y=ue[k+1];return T?e.createElement(e.Fragment,{key:f.id},e.createElement(T.View,{session:t,flowSession:r,checklistSession:s,block:f,navigate:F,onChatShow:de}),Y&&Pn(d,f.type,Y.type)&&e.createElement("div",{className:"userflowjs-resource-center-divider"})):null}))))),i.resourceCenterBranding&&e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow"},e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow-content",ref:Gt},e.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+i.slug+"&utm_content=resource-center",target:"_blank",rel:"noopener noreferrer"},e.createElement(jn,null),e.createElement("div",null,"Made with Userflow")))),t.draftMode&&e.createElement("div",{className:"userflowjs-resource-center-preview"},e.createElement("div",{ref:Jt,className:"userflowjs-resource-center-preview-content"},e.createElement("div",{className:"userflowjs-resource-center-preview-text"},"Preview"),e.createElement("button",{className:"userflowjs-resource-center-preview-button",onClick:()=>{c.endFlow(t,{endReason:mn.USER_CLOSED})}},e.createElement(A,{icon:qe})))),e.createElement("div",{className:"userflowjs-resource-center-header",style:{width:Se+"px"}},e.createElement("div",{ref:oe,className:"userflowjs-resource-center-header-content"},g==null?e.createElement("div",{className:"userflowjs-resource-center-header-text"},u.headerText):e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:f=>F(g?.kind==="announcementShow"?{kind:"announcementList",block:g.block}:null,f)},e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:An})),e.createElement("div",{className:"userflowjs-resource-center-icon-button__text"},l("resource_center.back"))),e.createElement("div",{className:"flex-1"}),Ne.length>0&&e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:()=>{let f={kind:"search"};if(Ne.length===1){const k=Ne[0],T=se[k.type];T.routeTo&&(f=T.routeTo({block:k}))}g?.kind==="search"?F(null):(R(c,t,null,"Search icon"),F(f))},"aria-label":"Search"},e.createElement(A,{icon:Tn})),e.createElement("button",{className:"userflowjs-resource-center-icon-button userflowjs-resource-center-close-button",onClick:f=>{ke(),f.detail===0&&X(!0)},"aria-label":`Close ${u.headerText}`},e.createElement(A,{icon:Rn}))))))),!n&&!r&&!o&&I&&I.unreadAnnouncementCount>0&&e.createElement(Yn,{theme:d,count:I.unreadAnnouncementCount,onClick:ct})),!n&&!r&&!o&&I?.popoutAnnouncement&&fe(I.popoutAnnouncement,I,t,d),!n&&!r&&!o&&I?.boosterAnnouncement&&I.boosterAnnouncement.level===B.MODAL&&fe(I.boosterAnnouncement,I,t,d),!n&&!r&&!o&&I?.boosterAnnouncement&&I.boosterAnnouncement.level===B.TOAST&&fe(I.boosterAnnouncement,I,t,d))))},Yn=({theme:t,count:n,onClick:r})=>{const[s,o]=a.useState(!1);return e.createElement(Ve,{className:D({"userflowjs-resource-center-launcher-unread-badge":!0}),noScroll:!0,style:{position:s?void 0:"absolute",visibility:s?void 0:"hidden"},stylesheet:ze,theme:t,onStylesheetsLoad:o,title:"Resource center unread badge"},e.createElement(Pt,{count:n,onClick:r}))},Pt=({count:t,onClick:n})=>{let r=null;return t>9&&(t=9,r=e.createElement("span",{className:"userflowjs-unread-badge-plus"},"+")),e.createElement("div",{className:D({"userflowjs-unread-badge":!0,"userflowjs-unread-badge--clickable":!!n}),onClick:n},e.createElement("span",null,t),r)},Ot=({session:t,open:n,navigate:r,announcement:s,block:o,rcPlacement:c,onDismiss:l,isStandalonePopout:i})=>{const p=a.useRef(null),u=pe(s.theme),d=u.toastPlacement,E=!!o.boosterAnnouncement||i!==void 0&&s?.level===B.TOAST,h=d===c;let w=null,b=null;s&&(w=s.toastAutoDismiss??u.toastAutoDismiss,b=s.toastWidth?s.toastWidth:u.toastWidth);const v=x(),[N,S]=a.useState(!1),{height:j,setEl:C}=Fn();a.useEffect(()=>{const Q=p.current;if(!Q||w===null)return;const J=Date.now(),oe=()=>{const q=1-(Date.now()-J)/(new Bt(w||0).toNumber()*1e3);q<=0?(Q.style.width="0%",s&&z(v,s)):(Q.style.width=`${q*100}%`,requestAnimationFrame(oe))};return requestAnimationFrame(oe),()=>{Q&&(Q.style.width="0%")}},[p.current,w,v,s,z]);const L=l||(()=>{s&&z(v,s)}),K=20,P=a.useMemo(()=>CSS.supports("height: 100dvh")?"dvh":"vh",[]),O=()=>{E&&s&&(z(v,s),R(v,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n())};if(!s)return null;const V=!!i&&!!c,U=(i!==void 0||!h)&&!!d&&E;return e.createElement("div",{className:D({"userflowjs-resource-center-popout":!E,"userflowjs-resource-center-toast":E,[`userflowjs-resource-center-popout-standalone--${c?.toLowerCase()?.replace(/_/g,"-")}`]:V,[`userflowjs-resource-center-toast--${d?.toLowerCase()?.replace(/_/g,"-")}`]:U}),style:Te(u)},e.createElement(Ve,{className:D({"userflowjs-resource-center-popout-frame":!0}),style:{height:`calc(min(${j}px, 100${P} - 2 * var(--userflow-resource-center-padding-y) - var(--userflow-resource-center-collapsed-height) - ${K}px)`,position:N?void 0:"absolute",visibility:N?void 0:"hidden",...b&&E?{width:b}:{}},stylesheet:ze,theme:u,onStylesheetsLoad:S,title:"Resource center popout"},E&&e.createElement("div",{className:"userflowjs-bubble-progress--default"},e.createElement("div",{className:"userflowjs-bubble-progress__fill",ref:p})),e.createElement("div",{ref:C,className:"userflowjs-resource-center-popout-frame-root",style:{cursor:E?"pointer":"auto",padding:E&&u.toastPadding||void 0}},e.createElement("div",{onClick:O},e.createElement("h2",{className:"userflowjs-announcement-title"},e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,s.title)),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},ve(s.time))),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),!E&&e.createElement(e.Fragment,null,s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>{z(v,s),R(v,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"),!E&&e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:Mt})))))),E&&s.moreEnabled&&e.createElement("div",{onClick:O,className:"userflowjs-announcement-more--toast"},(s.moreEnabled?s.moreButtonText:null)||"Read more"),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:L,"aria-label":"Dismiss announcement"},e.createElement(A,{icon:qe}))))),!E&&!i&&e.createElement("div",{className:"userflowjs-resource-center-popout-notch"}))},$t=({session:t,open:n,navigate:r,announcement:s,block:o,onDismiss:c})=>{const l=x(),i=pe(s.theme),u=c||(()=>{z(l,s)});return e.createElement(Bn,{company:t.flow.company,theme:i,position:"fixed",width:s.modalWidth,stepAppearance:fn.MODAL,zIndex:i.checklistZIndex,autoHide3pEnabled:!0,onModalBackdropClick:u,noIframe:!0,isModalAnnouncement:!0},e.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},e.createElement("h1",null,s.title),e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:u,"aria-label":"Dismiss announcement"},e.createElement(A,{icon:qe}))),s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more--modal"},e.createElement("button",{className:"userflowjs-bubble-button--primary",onClick:()=>{z(l,s),R(l,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"))))};function Ut(t){return t.filter(n=>{const r=se[n.type];return r.isSearchable?r.isSearchable(n):!!r.search})}const se={[y.ACTION]:{View:t=>{const{block:n,session:r,flowSession:s,checklistSession:o}=t,c=x(),[l,i]=a.useState(!1),p=s?.id,u=o?.id;return a.useEffect(()=>{i(!1)},[p,u]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:l?void 0:()=>{R(c,r,n);const d=n.actions.find(E=>E.type===hn.START_FLOW);d?d.otherFlow?.id!==o?.flow.id&&i(!0):c.closeResourceCenter(),Cn(c,r,n.actions)},disabled:l},e.createElement(ee,{...t}),e.createElement(Z,{...t}),l&&e.createElement($,null))}},[y.ANNOUNCEMENTS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"announcementList",block:n},c)}},n.unreadAnnouncementCount>0?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(Pt,{count:n.unreadAnnouncementCount})):e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}},[y.ASSISTANT]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x(),[c,l]=a.useState("");return n.assistantAppearance===wn.INPUT?e.createElement("div",{className:"userflowjs-resource-center-assistant-block"},e.createElement(Gn,{value:c,onChange:l,placeholder:He(n.name,{lookupAttribute:_(r.data)}),onSubmit:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:c})}})):e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:""})}},e.createElement(ee,{...t}),e.createElement(Z,{...t}))}},[y.CHECKLIST]:{View:({checklistSession:t})=>e.createElement("div",{"data-testid":"resource-center-checklist",className:"userflowjs-resource-center-checklist"},e.createElement(Sn,{session:t}),e.createElement(Dn,{draftMode:t.draftMode?"CHECKLIST PREVIEW":!1}))},[y.CONTACT]:{View:t=>{const{block:n,session:r,navigate:s,onChatShow:o}=t,c=x(),l=[];return n.emailEnabled&&l.push({icon:xn,label:"Email",isRoute:!0,onClick:i=>{R(c,r,n,"Email"),s({kind:"email",block:n},i)}}),n.phoneEnabled&&l.push({icon:Ln,label:"Phone",isRoute:!0,onClick:i=>{R(c,r,n,"Phone"),s({kind:"phone",block:n},i)}}),n.chatEnabled&&l.push({icon:Mn,label:"Live-chat",isRoute:!1,onClick:()=>{R(c,r,n,"Chat"),Kt(r,n,o)}}),e.createElement("div",{className:D({"userflowjs-resource-center-block":!0,"userflowjs-resource-center-block--clickable":l.length===1}),onClick:l.length===1?l[0].onClick:void 0},l.length===1&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:l[0].icon})),e.createElement(Z,{...t}),l.length>1&&l.map(({icon:i,label:p,onClick:u},d)=>e.createElement("button",{key:d,className:"userflowjs-resource-center-icon-button",onClick:u,"aria-label":p},e.createElement(A,{icon:i}))),l.length===1&&l[0].isRoute&&e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}},[y.DIVIDER]:{View:()=>e.createElement("div",{className:"userflowjs-resource-center-divider"})},[y.FLOWS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"flows",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"flows",block:t,initialQ:n}),isSearchable:t=>!!t.searchEnabled,search:async({client:t,session:n,block:r,q:s})=>{const{flows:o}=await t.send({kind:"ListResourceCenterBlockFlows",sessionId:n.id,blockCvid:r.cvid},{handlesRejection:!0}),c=zt(o,s),l=c.slice(0,Tt);return{block:r,truncated:l.length===c.length,results:l.map(i=>({kind:"flow",flow:i}))}}},[y.KNOWLEDGE_BASE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"knowledgeBase",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"knowledgeBase",block:t,initialQ:n}),search:async({client:t,session:n,block:r,q:s})=>{const{truncated:o,articles:c}=await t.send({kind:"SearchKnowledgeBase",sessionId:n.id,blockCvid:r.cvid,q:s,offset:0,limit:Tt},{handlesRejection:!0});return{block:r,truncated:o,results:c.map(l=>({kind:"article",article:l}))}}},[y.MESSAGE]:{View:({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block"},e.createElement("div",{className:"userflowjs-resource-center-block-text userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})))},[y.SUBPAGE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"subpage",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}}},ee=({block:t})=>t.icon?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:t.icon,size:16})):null,Z=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement(G,{doc:t.name,lookupAttribute:_(n.data)}));function Wt(t){if(!t)return null;let n;"block"in t&&t.block!=null&&(n=t.block.cvid);const r={kind:t.kind,blockCvid:n};switch(t.kind){case"announcementShow":r.announcementId=t.announcementId;break}return JSON.stringify(r)}function _t(t,n){if(!n)return null;const r=JSON.parse(n);let s;if(r.blockCvid&&(s=t.version.resourceCenter?.blocks.find(c=>c.cvid===r.blockCvid)),!s&&r.kind!=="search")return null;const o={kind:r.kind,block:s};switch(o.kind){case"announcementShow":o.announcementId=r.announcementId;break}return o}const er=({session:t,navigate:n})=>{const r=x(),s=t.version.resourceCenter.blocks,o=Ut(s),{t:c}=ne(),l=a.useRef(null),[i,p]=a.useState(""),[u,d]=Qe(i,p),[E,h]=a.useState(null);return a.useEffect(()=>{if(i.trim()===""){h(null);return}let w=!1;return(async()=>{h(null);const v=await Promise.all(s.map(async N=>{const{search:S}=se[N.type];if(!S)return null;try{return await S({client:r,session:t,block:N,q:i})}catch(j){return console.error(`Userflow.js: Global search failed for ${N.type} block=`,N,"error=",j),null}}));w||h(v.filter(N=>N!=null&&N.results.length>0))})(),()=>{w=!0}},[r,t,s,i]),a.useEffect(()=>{l.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:l,className:"userflowjs-text-input",type:"text",value:u,onChange:w=>d(w.target.value),placeholder:c("resource_center.search_placeholder")})),i.trim()===""?e.createElement("div",{"data-testid":"resource-center-empty-query",className:"userflowjs-resource-center-list-route-error"},c("resource_center.search_in")," ",o.map((w,b)=>e.createElement(e.Fragment,{key:w.cvid},b>0&&(b===o.length-1?` ${c("and")} `:", "),e.createElement("b",null,e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})))),"."):E?E.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c("resource_center.no_results_found")):E.map(({block:w,truncated:b,results:v},N)=>{const S=se[w.type],j=S.routeTo&&S.routeTo({block:w,initialQ:i});return e.createElement(e.Fragment,{key:w.cvid},N>0&&e.createElement("div",{className:"userflowjs-resource-center-divider"}),e.createElement("div",{className:"userflowjs-resource-center-label"},e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})),v.map((C,L)=>C.kind==="flow"?e.createElement(Ht,{key:C.flow.id,block:w,session:t,flow:C.flow,navigate:n}):C.kind==="article"?e.createElement(Vt,{key:L,block:w,session:t,article:C.article}):null),!b&&j&&e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:C=>{R(r,t,w),n(j,C)}},e.createElement("div",{className:"userflowjs-resource-center-block-text"},c("more"),":"," ",e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te}))))}):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)))},tr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.emailContent,lookupAttribute:_(n.data)})),nr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.phoneContent,lookupAttribute:_(n.data)})),rr=({block:t,initialQ:n,session:r,navigate:s})=>{const{t:o}=ne(),c=a.useRef(null),[l,i]=a.useState(n||""),[p,u]=Qe(l,i),{data:d,error:E}=be({message:{kind:"ListResourceCenterBlockFlows",sessionId:r.id,blockCvid:t.cvid}}),h=d?.flows,w=a.useMemo(()=>h?zt(h,l):null,[h,l]);return a.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:t.name,lookupAttribute:_(r.data)}))),t.searchEnabled&&e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:p,onChange:b=>u(b.target.value),placeholder:o("resource_center.search_placeholder")})),E?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):w?w.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):w.map(b=>e.createElement(Ht,{key:b.id,block:t,session:r,flow:b,navigate:s})):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,{fadeIn:!0})))};function zt(t,n){const r=n.toLowerCase().trim();return r===""?t:t.filter(s=>s.name.toLowerCase().includes(r))}const Ht=({block:t,session:n,flow:r,navigate:s})=>{const o=x(),[c,l]=a.useState(!1);return a.useEffect(()=>{if(!c||r.type!==dt.CHECKLIST)return;const i=()=>{o.checklistSession?.flow.id===r.id&&(p(),s(null))},p=()=>{o.off("checklistChanged",i)};return o.on("checklistChanged",i),p},[o,c,r.type,r.id,s]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{if(R(o,n,t,r.name),o.checklistSession?.flow.id===r.id){s(null);return}o.startFlow({flowId:r.id,startReason:n.draftMode?mt.DRAFT:mt.RESOURCE_CENTER,replaceCurrent:!0}),l(!0);const i=He(r.url,{lookupAttribute:_(n.data)});i&&kn(i)},disabled:c},r.iconSetting!==En.HIDE&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},r.icon?e.createElement(A,{icon:r.icon,size:16}):e.createElement(A,{icon:r.type===dt.CHECKLIST?"regular/tasks":"regular/shoe-prints",size:16})),n.draftMode&&!r.published&&e.createElement("div",{className:"userflowjs-resource-center-code-block"},e.createElement("div",{title:"Unpublished. Preview only"},e.createElement("code",null,"P"))),e.createElement("div",{className:"userflowjs-resource-center-block-text"},r.name),c&&e.createElement($,null))},sr=({block:t,initialQ:n,session:r,bodyRef:s})=>{const{t:o}=ne(),c=a.useRef(null),[l,i]=a.useState(n||""),[p,u]=Qe(l,i),{loading:d,loadingMore:E,data:h,messageForData:w,error:b,loadMore:v}=be({message:{kind:"SearchKnowledgeBase",sessionId:r.id,blockCvid:t.cvid,q:l,offset:0}}),N=h?.truncated,S=a.useCallback(()=>{v((C,L)=>({...L,offset:C.articles.length}),(C,L)=>({...L,articles:[...C.articles,...L.articles]}))},[v]);qt({bodyRef:s,loading:d,loadingMore:E,truncated:N,loadMoreHelper:S}),a.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]);let j=t.knowledgeBaseUrl||"";return j.match(/^https?:\/\//)||(j=`http://${j}`),j=Ft(j),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:t.name,lookupAttribute:_(r.data)})),e.createElement("a",{className:"userflowjs-resource-center-icon-button",href:j,target:"_blank",rel:"noopener noreferrer"},e.createElement(A,{icon:_n}))),e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:p,onChange:C=>u(C.target.value),placeholder:o("resource_center.search_placeholder")})),b?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},b.code==="quota_exceeded"?"Sorry, this company has reached its max number of searches. Consider asking Userflow to be moved to a dedicated search engine for a higher quota.":b.humanMessage||o("resource_center.generic_error")):d||!h?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):h.articles.length===0?w?.q===""?null:e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):e.createElement(e.Fragment,null,w?.q===""&&e.createElement("div",{className:"userflowjs-resource-center-label"},o("resource_center.suggested_articles")),h.articles.map((C,L)=>e.createElement(Vt,{key:L,block:t,session:r,article:C})),E&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null))))},Vt=({block:t,article:n,session:r})=>{const s=x();return e.createElement("a",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(s,r,t,n.title)},href:Ft(n.url),target:"_blank",rel:"noopener noreferrer"},e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:"regular/file-alt",size:16})),e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement("span",{dangerouslySetInnerHTML:{__html:n.htmlTitle}}),e.createElement("div",{className:"userflowjs-resource-center-block-subtext",dangerouslySetInnerHTML:{__html:n.htmlSnippet}})))},or=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})),cr=({bodyRef:t,session:n,route:r,navigate:s})=>{const o=x(),c=be({message:{kind:"ListAnnouncements",beforeAnnouncementId:null},skip:r?.kind!=="announcementList"}),{loading:l,loadingMore:i,data:p,loadMore:u}=c,d=p?.truncated,E=a.useCallback(()=>{u((b,v)=>b.announcements.length>0?{...v,beforeAnnouncementId:b.announcements[b.announcements.length-1].id}:v,(b,v)=>({...v,announcements:[...b.announcements,...v.announcements]}))},[u]);qt({bodyRef:t,loading:l,loadingMore:i,truncated:d,loadMoreHelper:E});const[h,w]=a.useState(void 0);return a.useLayoutEffect(()=>{t.current&&h!=null&&r?.kind==="announcementList"&&(t.current.scrollTop=h)},[t,h,r?.kind]),r?.kind==="announcementList"?e.createElement(lr,{bodyRef:t,session:n,block:r.block,onMoreClick:b=>{w(t.current?.scrollTop),R(o,n,r.block,b.title),s({kind:"announcementShow",block:r.block,announcementId:b.id})},...c}):r?.kind==="announcementShow"?e.createElement(ar,{announcementId:r.announcementId}):null},lr=({bodyRef:t,block:n,session:r,onMoreClick:s,error:o,loading:c,loadingMore:l,data:i})=>{const{t:p}=ne(),[u,d]=a.useMemo(()=>{const h=[],w=[];if(i){let b=-1;for(const v of i.announcements)b++,b<i.pageSize&&!v.seen&&v.level!==B.SILENT?h.push(v):w.push(v)}return[h,w]},[i]),E=u.length;return e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:n.name,lookupAttribute:_(r.data)}))),o?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o.humanMessage||p("resource_center.generic_error")):c||!i?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):i.announcements.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},Ee.exists("resource_center.no_announcements",{fallbackLng:[]})?p("resource_center.no_announcements"):p("resource_center.no_results_found")):e.createElement(e.Fragment,null,E>0&&e.createElement("div",{className:"userflowjs-announcement-unread-header"},p("resource_center.unread",{count:E})),u.map((h,w)=>e.createElement(Lt,{key:w,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),u.length>0&&d.length>0&&e.createElement("div",{className:"userflowjs-announcement-seen-divider"}),d.map((h,w)=>e.createElement(Lt,{key:w,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),l&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null))))},xt=new Set;function z(t,n){xt.has(n.id)&&n.seen||(xt.add(n.id),Ze(t,n))}const Lt=({bodyRef:t,onMoreClick:n,announcement:r})=>{const s=x(),o=a.useRef(null),c=a.useRef(!1);return a.useEffect(()=>{if(c.current||r.seen)return;const l=new IntersectionObserver(p=>{const u=p[0];u&&u.isIntersecting&&(z(s,r),c.current=!0,i())},{root:t.current,threshold:1}),i=()=>{l.disconnect()};return l.observe(o.current),i},[t,s,r]),e.createElement("div",{className:"userflowjs-announcement-list-item"},e.createElement("div",{className:"userflowjs-announcement-time-divider"},e.createElement("div",{className:"userflowjs-announcement-time-divider-line"}),e.createElement("div",{className:"userflowjs-announcement-time-text"},ve(r.time)),e.createElement("div",{className:"userflowjs-announcement-time-divider-line"})),e.createElement("h2",{ref:o,className:"userflowjs-announcement-title"},!r.seen&&r.level!==B.SILENT&&e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,r.title)),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(H,{doc:r.content,buttons:r.buttons,lookupAttribute:_(r.data)})),e.createElement("div",{className:"userflowjs-announcement-more"},r.moreEnabled&&e.createElement("button",{className:"userflowjs-tertiary-button",onClick:n},e.createElement("div",null,r.moreButtonText||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:Mt})))))},ar=({announcementId:t})=>{const n=x(),{t:r}=ne(),{loading:s,data:o,error:c}=be({message:{kind:"GetAnnouncement",announcementId:t}}),l=o?.announcement;return a.useEffect(()=>{!l||l.seen||z(n,l)},[n,l]),e.createElement(e.Fragment,null,c?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c.humanMessage||r("resource_center.generic_error")):s||!l?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-announcement-show"},e.createElement("h2",{className:"userflowjs-announcement-title"},l?.title),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},ve(l.time))),e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(H,{doc:l.content,buttons:l.buttons,lookupAttribute:_(l.data)}),l.moreEnabled&&e.createElement(H,{doc:l.moreContent,buttons:l.moreButtons,lookupAttribute:_(l.data)})))))},ir=({block:t,initialUserContent:n,session:r,navigate:s,onChatShow:o})=>{const c=t.assistantFlowId,l=x(),[i,p]=a.useState(null),[u,d]=a.useState(null),[E,h]=a.useState(null),[w]=a.useState(n);a.useEffect(()=>{n&&s({kind:"assistant",block:t,initialUserContent:""})},[n,t,s]),a.useEffect(()=>{let v=!1;return(async()=>{try{const S=re.getItem("assistantConversationId:"+c),[j,C]=await Promise.all([Xn(),l.send({kind:"GetAssistant",assistantFlowId:c,conversationId:S},{handlesRejection:!0,endBatch:!0})]);if(v)return;p(()=>j),d(C)}catch(S){console.error("Resource center assistant route failed to load:",S),h(S.humanMessage||"Sorry, something went wrong. Please try again or contact my human friends.")}})(),()=>{v=!0}},[l,c]);const b=a.useMemo(()=>{if(!t.assistantContactEnabled)return;const v=r.version.resourceCenter?.blocks.find(N=>N.type===y.CONTACT);if(v)return()=>{switch(R(l,r,t,t.assistantContactButtonText||void 0),t.assistantContactMethod){case ft.EMAIL:s({kind:"email",block:v});break;case ft.PHONE:s({kind:"phone",block:v});break;default:s(null),Kt(r,v,o);break}}},[l,r,t,o,s]);return E?e.createElement("div",{className:"userflowjs-assistant-chat"},e.createElement("div",{className:"userflowjs-assistant-chat__content"},e.createElement("div",{className:"userflowjs-assistant-chat__error"},E))):!i||!u?e.createElement($,{center:!0,fadeIn:!0}):e.createElement(i,{block:t,session:r,assistantReply:u,initialUserContent:w,onContactClick:b,contactButtonText:t.assistantContactButtonText||void 0})};function R(t,n,r,s){t.send({kind:"ClickResourceCenter",sessionId:n.id,description:r?He(r.name,{lookupAttribute:_(n.data)})+(s?` - ${s}`:""):s},{batch:!0})}function qt({bodyRef:t,loading:n,loadingMore:r,truncated:s,loadMoreHelper:o}){a.useEffect(()=>{const c=t.current;if(!c||n||r||s)return;const l=()=>{c.scrollHeight-c.clientHeight-c.scrollTop>400||o()};return c.addEventListener("scroll",l),()=>{c.removeEventListener("scroll",l)}},[t,n,r,s,o])}function Kt(t,n,r){if(n.chatProvider){const s=_e[n.chatProvider];try{s.show({block:n})}catch(o){console.error(`Userflow.js: Error when showing ${n.chatProvider}:`,o)}r()}else t.draftMode&&window.alert("You have not selected a chat provider. Go to the resource center builder in Userflow. Click the Contact block. Pick a chat provider in the side panel.")}function Ze(t,n){t.setResourceCenterSession(r=>r?{...r,version:{...r.version,resourceCenter:{...r.version.resourceCenter,blocks:r.version.resourceCenter.blocks.map(s=>s.type===y.ANNOUNCEMENTS?{...s,unreadAnnouncementCount:n.level===B.SILENT?s.unreadAnnouncementCount:s.unreadAnnouncementCount-1,popoutAnnouncement:s.popoutAnnouncement?.id===n.id?null:s.popoutAnnouncement,boosterAnnouncement:s.boosterAnnouncement?.id===n.id?null:s.boosterAnnouncement}:s)}}}:null),t.send({kind:"MarkAnnouncementSeen",announcementId:n.id,versionId:n.versionId}),t.toggleUI()}function Qt(t){return t?.version.resourceCenter?.blocks.find(n=>n.type===y.ANNOUNCEMENTS)||null}function ve(t){const n=t?new Date(t):new Date;let r=new Intl.DateTimeFormat(Ee.language,{weekday:"long",day:"numeric",month:"short",year:n.getFullYear()===new Date().getFullYear()?void 0:"numeric"}).format(n);return r.substring(0,1).toUpperCase()+r.substring(1)}const Rr=Object.freeze(Object.defineProperty({__proto__:null,FloatingAnnouncements:Ot,ModalAnnouncement:$t,ResourceCenterApp:Rt,default:Rt,formatAnnouncementTime:ve,getAnnouncementsBlock:Qt,serializeRoute:Wt,syncAnnouncementSeen:Ze},Symbol.toStringTag,{value:"Module"}));export{Gn as A,Zn as G,Rr as R,Ft as d};
2
+ import{k as y,C as W,l as Te,u as re,m as mn,n as B,o as ut,p as dt,E as fn,q as hn,r as wn,s as En,a as mt,t as ft,v as pn,w as ht,_ as bn}from"./userflow.js";import{r as l,R as e}from"./vendor.react.js";import{u as x,i as pe}from"./client-context.js";import{f as wt,u as vn,w as Et,C as gn,N as Cn}from"./flow-host.styl.js";import{S as se,b as He,R as H,h as kn,s as Ve,a as G,n as Nn,u as Mt}from"./use-selector-element-monitoring.js";import{g as _}from"./flow-condition-types.js";import{D as A,u as be,a as pt,g as Re}from"./stylesheets.js";import{F as qe}from"./Frame.js";import{o as D}from"./vendor.obj-str.js";import{M as _e,d as bt,e as vt}from"./roots.js";import{u as jn}from"./use-window-resize.js";import{S as yn}from"./logomark.js";import"./vendor.core-js.js";import{f as Sn,C as In}from"./ChecklistUI.js";import{J as An,C as Ke,K as Tn,L as Rn,M as _n,N as Bt,O as te,z as xn,P as Ln,Q as Mn,R as Bn}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{F as Dn,B as Fn}from"./FlowChrome.js";import{m as gt}from"./vendor.memoize-one.js";import{B as Dt}from"./vendor.bignumber.js.js";import{u as Pn}from"./use-element-rect.js";import{u as ne}from"./vendor.react-i18next.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},n=new Error().stack;n&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[n]="6a9d2eb6-cb50-4268-9649-cee98f2bec1f",t._sentryDebugIdIdentifier="sentry-dbid-6a9d2eb6-cb50-4268-9649-cee98f2bec1f")}catch{}})();function On(t,n,r){return t.resourceCenterAutoDividers?Ct(n)||Ct(r):!1}function Ct(t){return t!==y.ACTION&&t!==y.ANNOUNCEMENTS&&t!==y.ASSISTANT&&t!==y.CONTACT&&t!==y.FLOWS&&t!==y.KNOWLEDGE_BASE&&t!==y.SUBPAGE}const m=window,xe={[W.CRISP]:{configure:({onShow:t,onHide:n})=>{$n();let r=!1,s=!1;const o=()=>{r||s?(m.$crisp.push(["do","chat:show"]),t()):(m.$crisp.push(["do","chat:hide"]),n())},c=()=>{r=!0,o()};m.$crisp.push(["on","chat:opened",c]);const i=()=>{r=!1,o()};m.$crisp.push(["on","chat:closed",i]);const a=()=>{s=!0,o()};m.$crisp.push(["on","message:received",a]);const E=()=>{const p=document.getElementById("crisp-chatbox");if(!p||window.getComputedStyle(p).display!=="block")return!1;const h=p.querySelector('[data-id="new_messages"]');return!(!h||window.getComputedStyle(h).display!=="block")},d=()=>{const p=E();p!==s&&(s=p,o())},u=window.setInterval(d,200);return()=>{m.$crisp.push(["off","chat:opened",c]),m.$crisp.push(["off","chat:closed",i]),m.$crisp.push(["off","message:received",a]),window.clearInterval(u)}},show:()=>{m.$crisp.push(["do","chat:show"]),m.$crisp.push(["do","chat:open"])},hide:()=>{m.$crisp.push(["do","chat:hide"]),m.$crisp.push(["do","chat:close"])}},[W.CUSTOM]:{configure:()=>()=>{},show:({block:t})=>{try{new Function(`"use strict";
3
+ `+t.chatCode)()}catch(n){console.error(`Userflow.js: Showing custom chat provider failed. Code: ${t.chatCode}`,n)}},hide:()=>{}},[W.FRESHCHAT]:{configure:({onShow:t,onHide:n})=>{if(!m.fcWidget)throw new Error("Freshchat is not installed");let r=!1,s=!1;const o=()=>{r||s?t():n()},c=()=>{r=!0,o()};m.fcWidget.on("widget:opened",c);const i=()=>{r=!1,o()};m.fcWidget.on("widget:closed",i);const a=()=>{const d=!!document.querySelector("#fc_frame.h-open-notify");d!==s&&(s=d,o())},E=window.setInterval(a,200);return m.fcWidget.on("unreadCount:notify",a),()=>{m.fcWidget.off("widget:opened",c),m.fcWidget.off("widget:closed",i),m.fcWidget.off("unreadCount:notify",a),window.clearInterval(E)}},show:()=>{m.fcWidget.open()},hide:()=>{m.fcWidget.close()}},[W.HELPSCOUT]:{configure:({onShow:t,onHide:n})=>{if(!m.Beacon)throw new Error("Help Scout is not installed");Un();let r=!1,s=!1;const o=()=>{r||s?(jt(),t()):(Le(),n())},c=()=>{r=!0,o()};m.Beacon("on","open",c),m.Beacon("info")?.status.isOpened&&c();const i=()=>{r=!1,o()};m.Beacon("on","close",i);const a=()=>{const d=!!document.querySelector(".BeaconNotificationsFrame");d!==s&&(s=d,o())},E=window.setInterval(a,200);return()=>{m.Beacon("off","open",c),m.Beacon("off","close",i),window.clearInterval(E)}},show:()=>{jt(),m.Beacon("open")},hide:()=>{Le(),m.Beacon("close")}},[W.HUBSPOT]:{configure:({onShow:t,onHide:n})=>{const r=()=>{const c=document.getElementById("hubspot-messages-iframe-container");if(!m.HubSpotConversations||!c)return;window.clearInterval(o),Wn();let i=!1,a=!1;const E=()=>{i||a?(Me(),t()):(Be(),n())},d=()=>{const h=!!document.querySelector("#hubspot-messages-iframe-container .hs-shadow-container.active");h!==i&&(i=h,E())},u=new _e(d);u.observe(c,{attributes:!0,subtree:!0,attributeFilter:["class"]}),d();const p=({unreadCount:h})=>{const w=h>0;w!==a&&(a=w,E())};m.HubSpotConversations.on("unreadConversationCountChanged",p),s=()=>{u.disconnect(),m.HubSpotConversations.off("unreadConversationCountChanged",p)}};let s=()=>{window.clearInterval(o)};const o=window.setInterval(r,100);return r(),()=>{s()}},show:()=>{Me(),m.HubSpotConversations.widget.open()},hide:()=>{Be(),m.HubSpotConversations.widget.close()}},[W.INTERCOM]:{configure:({onShow:t,onHide:n})=>{if(!m.Intercom)throw new Error("Intercom is not installed");return zn(),De.add(t),Fe.add(n),()=>{De.delete(t),Fe.delete(n)}},show:()=>{Ft(),m.Intercom("show")},hide:()=>{Pe(),m.Intercom("hide")}},[W.ZENDESK]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");Hn();let r=!1,s=!1;const o=()=>{r||s?(m.zE("webWidget","show"),t()):(m.zE("webWidget","hide"),n())},c=()=>{r=!0,s=!1,o()};Oe.add(c);const i=()=>{r=!1,s=!1,o()};$e.add(i);const a=E=>{const d=E>0;d!==s&&(s=d,o())};return Ue.add(a),()=>{Oe.delete(c),$e.delete(i),Ue.delete(a)}},show:()=>{m.zE("webWidget","show"),m.zE("webWidget","open")},hide:()=>{m.zE("webWidget","hide"),m.zE("webWidget","close")}},[W.ZENDESK_MESSENGER]:{configure:({onShow:t,onHide:n})=>{if(!m.zE)throw new Error("Zendesk is not installed");const r=()=>{t()},s=()=>{n()};return We.add(r),ze.add(s),Vn(),()=>{We.delete(r),ze.delete(s)}},show:()=>{m.zE("messenger","open")},hide:()=>{m.zE("messenger","close")}}};let kt=!1;function $n(){kt||(kt=!0,m.$crisp||(m.$crisp=[]),m.$crisp.push(["do","chat:hide"]))}let Nt=!1;function Un(){Nt||(Nt=!0,Le())}function jt(){m.Beacon("config",{display:{style:"icon"}})}function Le(){m.Beacon("config",{display:{style:"manual"}})}let yt=!1,Qe=!1;function Wn(){yt||(yt=!0,Qe?Me():Be())}function Me(){Qe=!0,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","visible","important")}function Be(){Qe=!1,document.getElementById("hubspot-messages-iframe-container")?.style.setProperty("visibility","hidden","important")}let St=!1,De=new Set,Fe=new Set;function zn(){if(St)return;St=!0,Pe();let t=!1,n=!1;const r=()=>{Ft();for(const i of De)i()},s=()=>{Pe();for(const i of Fe)i()},o=()=>{t||n?r():s()};m.Intercom("onShow",()=>{t=!0,o()}),m.Intercom("onHide",()=>{t=!1,o()});const c=()=>{const i=!!document.querySelector('iframe[name="intercom-borderless-frame"], iframe[name="intercom-notifications-frame"]');n!==i&&(n=i,o())};m.Intercom("onUnreadCountChange",()=>{c()}),window.setInterval(c,200)}function Ft(){m.Intercom("update",{hide_default_launcher:!1,vertical_padding:20})}function Pe(){m.Intercom("update",{hide_default_launcher:!0,vertical_padding:100})}let It=!1,Oe=new Set,$e=new Set,Ue=new Set;function Hn(){It||(It=!0,m.zE("webWidget","hide"),m.zE("webWidget","close"),m.zE("webWidget:on","open",()=>{for(const t of Oe)t()}),m.zE("webWidget:on","close",()=>{for(const t of $e)t()}),m.zE("webWidget:on","chat:unreadMessages",t=>{for(const n of Ue)n(t)}))}let At=!1,We=new Set,ze=new Set;function Vn(){At||(At=!0,m.zE("messenger:on","open",function(){for(const t of We)t()}),m.zE("messenger:on","close",function(){for(const t of ze)t()}))}const qn=t=>l.createElement("svg",Object.assign({xmlns:"http://www.w3.org/2000/svg",viewBox:"0 0 100 100"},t),l.createElement("path",{fill:"currentColor",d:"M24.049 79.74h36.003c8.185 0 15.985-6.621 17.43-14.814l6.091-34.556h3.997c8.149 0 13.645 6.63 12.2 14.815l-7.051 40C91.274 93.363 83.474 100 75.288 100h-40c-8.185 0-13.645-6.667-12.2-14.815l.96-5.444Z"}),l.createElement("path",{fill:"currentColor",fillRule:"evenodd",d:"M12.437 69.63h40c8.148 0 15.978-6.637 17.422-14.815l7.052-40C78.355 6.63 72.896 0 64.711 0h-40C16.533 0 8.726 6.63 7.281 14.815l-7.052 40C-1.215 62.963 4.252 69.63 12.437 69.63Zm33.628-33.798c3.756-2.064 8.725-4.795 9.907-11.844C57.385 15.458 50.065 8.983 42.168 9c-7.452 0-12.771 3.195-17.508 8.892-.858 1.034-.884 2.45-.053 3.212l3.472 3.196c.847.767 2.25.589 3.176-.406 2.842-3.068 4.869-4.83 8.51-4.83 2.864 0 6.077 1.934 5.59 4.847-.37 2.223-2.292 3.334-5.4 5.001l-.28.151c-3.582 1.92-8.134 4.362-9.124 10.247l-.16.956c-.055.28-.05.571.014.85.065.278.188.538.362.76.173.222.391.4.639.522.247.121.518.183.79.18h6.744a2.709 2.709 0 0 0 1.712-.688c.481-.426.81-1.01.934-1.657l.095-.556c.266-1.582 2.101-2.59 4.384-3.845ZM32.837 59c3.552 0 6.955-3.034 7.58-6.769.63-3.729-1.742-6.763-5.293-6.763-3.552 0-6.934 3.028-7.58 6.763C26.9 55.966 29.286 59 32.837 59Z"})),$=({center:t,fadeIn:n})=>e.createElement("div",{className:D({"userflowjs-spinner":!0,"userflowjs-spinner--center":!!t,"userflowjs-spinner--fade-in":!!n})},e.createElement("svg",{viewBox:"0 0 24 24",version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"userflowjs-spinner__bg",fill:"none",cx:12,cy:12,r:10,style:{strokeWidth:"4px"}}),e.createElement("circle",{className:"userflowjs-spinner__fill",fill:"none",cx:12,cy:12,r:10,transform:"translate(12, 12) rotate(-90) translate(-12, -12)",style:{strokeWidth:"4px",strokeDasharray:10*2*Math.PI*.25+"px, 1000"}})));function ve({message:t,skip:n}){const r=x(),[s,o]=l.useState(!0),[c,i]=l.useState(!1),[a,E]=l.useState(null),[d,u]=l.useState(null),[p,h]=l.useState(null),w=l.useRef(0),b=l.useRef(null),v=l.useRef(()=>{});return l.useEffect(()=>{if(n)return;const N=JSON.stringify(t);if(N===b.current)return;b.current=N;const S=++w.current;let j,C;const L=async()=>{o(!0);try{C=t;const P=await r.send(t,{handlesRejection:!0});if(S!==w.current)return;j=P,E(j),u(t),h(null)}catch(P){if(S!==w.current)return;h(P)}finally{o(!1)}};let K=!1;v.current=async(P,O)=>{if(!K){K=!0,i(!0);try{const V=P(j,C);C=V;const U=await r.send(V,{handlesRejection:!0});if(S!==w.current)return;j=O(j,U),E(j),h(null)}catch(V){if(S!==w.current)return;h(V)}finally{K=!1,i(!1)}}},L()},[n,r,t]),{loading:s,loadingMore:c,data:a,messageForData:d,error:p,loadMore:v.current}}const Kn=200;function Ze(t,n){const[r,s]=l.useState(t),o=l.useRef(void 0),c=l.useCallback(a=>{window.clearTimeout(o.current),s(a),n(a)},[n]),i=l.useCallback(a=>{window.clearTimeout(o.current),s(a),o.current=window.setTimeout(()=>{n(a)},Kn)},[n]);return l.useEffect(()=>()=>{window.clearTimeout(o.current)},[]),[r,i,c]}const Qn={xs:[16,3],sm:[24,4],md32:[32,4],md:[40,4],lg:[56,4]};class Zn extends e.PureComponent{constructor(){super(...arguments),this.memoizedBgStyle=gt(n=>({strokeWidth:`${n}px`})),this.memoizedFillStyle=gt((n,r,s)=>({strokeWidth:`${n}px`,strokeDasharray:r*2*Math.PI*new Dt(s).toNumber()+"px, 1000"}))}render(){const{props:n}=this,{size:r,indeterminate:s,className:o,center:c,right:i,color:a}=this.props,E=["progress-spinner"];r&&E.push(`progress-spinner--${r}`),s&&E.push("progress-spinner--indeterminate"),o&&E.push(o);const d=s?.25:n.progress||0,[u,p]=Qn[r||"md"],h=u/2,w=(u-p)/2;let b=e.createElement("div",{className:E.join(" ")},e.createElement("svg",{viewBox:`0 0 ${u} ${u}`,version:"1.1",xmlns:"http://www.w3.org/2000/svg"},e.createElement("circle",{className:"progress-spinner__bg",fill:"none",cx:h,cy:h,r:w,style:this.memoizedBgStyle(p)}),e.createElement("circle",{className:a==="purple"?"progress-spinner__fill-purple":"progress-spinner__fill",fill:"none",cx:h,cy:h,r:w,transform:`translate(${h}, ${h}) rotate(-90) translate(-${h}, -${h})`,style:this.memoizedFillStyle(p,w,d)})));return c?b=e.createElement("div",{className:"progress-spinner-center-aligner"},b):i&&(b=e.createElement("div",{className:"progress-spinner-right-aligner"},b)),b}}const Gn=({textareaRef:t,value:n,onChange:r,onBlur:s,onKeyDown:o,onMouseDown:c,placeholder:i,disabled:a,readOnly:E,className:d,mirrorClassName:u,textareaClassName:p,icon:h,onIconClick:w,loading:b=!1,children:v})=>{let N=n||i||"";(N===""||N.endsWith(`
4
+ `))&&(N+=" "),d=d||"growing-textarea",u=u||d+"__mirror";const[S,j]=l.useState(!1);return e.createElement("div",{className:D({[d]:!0,[`${d}__loading`]:b})},e.createElement("div",{className:u+" "+(p||"")},N),e.createElement("textarea",{ref:t,value:n,onChange:C=>r&&r(C.target.value),onBlur:s,onKeyDown:C=>{if(C.key==="Enter"&&S){C.preventDefault();return}o&&o(C)},onMouseDown:c,placeholder:i,disabled:a||b,readOnly:E,className:D({"growing-textarea__input":!0,[p||""]:!0,[`${d}__with-icon`]:!!h,[`${d}__loading-input`]:b}),onCompositionStart:()=>j(!0),onCompositionEnd:()=>j(!1)}),h&&!b&&e.createElement("div",{className:`${d}__icon`},e.createElement("button",{className:"btn btn--plain-blue btn--square btn--md32",onClick:w},e.createElement(A,{icon:h}))),b&&e.createElement("div",{className:`${d}__loader`},e.createElement(Zn,{indeterminate:!0,size:"xs",color:"purple"})),v)},Jn=({textareaRef:t,value:n,onChange:r,onSubmit:s,placeholder:o,readOnly:c})=>{const i=()=>{s&&s()};return e.createElement("div",{className:"userflowjs-assistant-chat-input"},e.createElement(Gn,{textareaRef:t,className:"userflowjs-growing-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea userflowjs-assistant-chat-input__textarea",placeholder:o,readOnly:c,value:n||"",onChange:r,onKeyDown:a=>{!a.shiftKey&&a.key==="Enter"&&(a.preventDefault(),i())}}),e.createElement("button",{"data-testid":"assistant-chat-input-submit",className:"userflowjs-assistant-chat-input__submit",onClick:()=>i()},e.createElement(A,{icon:An})))};function Xn(){return"ontouchstart"in window||navigator.maxTouchPoints>0||navigator.msMaxTouchPoints>0}function Pt(t){return Te.linkUrlDecorator?Te.linkUrlDecorator(t):t}const Tt=5,Yn=async()=>(await bn(async()=>{const{ResourceCenterAssistantChat:t}=await import("./ResourceCenterAssistantChat.js");return{ResourceCenterAssistantChat:t}},__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30,31,32]))).ResourceCenterAssistantChat,Rt=({session:t,isOpen:n,flowSession:r,checklistSession:s,resourceCenterLauncherHidden:o})=>{const c=x(),{t:i}=ne(),{company:a}=t.flow,{version:E}=t,d=E.resourceCenter,u=be(E.theme),p=t.locale?t.locale.standardLocaleId:t.version.theme.languageId;l.useEffect(()=>{pe.changeLanguage(p)},[p]);const{loaded:h}=pt(window,wt,u),[w,b]=l.useState(!1),v=h&&w,[N,S]=l.useState(bt()),[j,C]=l.useState(vt()),L=l.useCallback(()=>{S(bt()),C(vt())},[]);jn(L);const{zIndex:K,bringToFront:P}=vn(),[O,V]=l.useState(null),[U,Q]=l.useState(null),[J,ce]=l.useState(null),ae=l.useRef(null),[q,Gt]=l.useState(null),[Je,Jt]=l.useState(null),[Xe,Xt]=l.useState(null),[Yt,en]=l.useState(0),[tn,nn]=l.useState(0),Ce=l.useCallback(()=>{U&&en(Math.round(U?.offsetWidth||0)),nn(Math.round((J?.offsetHeight||0)+(q?.offsetHeight||0)+(Je?.offsetHeight||0)+(Xe?.offsetHeight||0)))},[U,J,q,Je,Xe]);l.useLayoutEffect(()=>{if(!O||typeof _e!="function")return;const f=new _e(()=>{Ce()});return f.observe(O,{childList:!0,attributes:!0,subtree:!0}),()=>{f.disconnect()}},[O,Ce]),l.useLayoutEffect(()=>{Ce()});const[Ye,et]=l.useState(!1),ke=l.useRef(),le=l.useCallback(()=>{et(!0),window.clearTimeout(ke.current),ke.current=window.setTimeout(()=>{et(!1)},u.resourceCenterTransitionDuration)},[u.resourceCenterTransitionDuration]);l.useEffect(()=>()=>{window.clearTimeout(ke.current)},[]);const ie=l.useCallback(()=>{P(),le(),c.openResourceCenter()},[P,c,le]),Ne=l.useCallback(()=>{le(),c.closeResourceCenter()},[c,le]),[tt,X]=l.useState(!1);l.useEffect(()=>{if(tt){if(!Xn())if(n){const f='button:not([tabindex="-1"]), [tabindex]:not([tabindex="-1"]), input, textarea';let k=q?.querySelector(".userflowjs-assistant-chat-input textarea")||q?.querySelector(f)||J?.querySelector(f);if(k){const T=k.closest&&k.closest(".userflowjs-resource-center-checklist")||null;T?Sn(T):k.focus({preventScroll:!0})}}else U?.focus({preventScroll:!0});X(!1)}},[tt,n,q,J,U]),l.useEffect(()=>{const f=O?.ownerDocument.defaultView;if(!n||!f)return;const k=T=>{T.key==="Escape"&&(Ne(),X(!0))};return f.addEventListener("keydown",k),()=>f.removeEventListener("keydown",k)},[n,O,X,Ne]);const[g,ue]=l.useState(()=>_t(t,re.getItem(`resourceCenterRoute:v1:${t.id}`))),F=l.useCallback((f,k)=>{ue(f);const T=zt(f);T?re.setItem(`resourceCenterRoute:v1:${t.id}`,T):re.removeItem(`resourceCenterRoute:v1:${t.id}`),k?.detail===0&&X(!0)},[t.id]);l.useEffect(()=>{const f=re.getItem(`resourceCenterRoute:v1:${t.id}`);ue(_t(t,f))},[t]),l.useEffect(()=>{if(!t.draftMode||!g||!("block"in g)||!g.block)return;const f=d.blocks.find(k=>k.cvid===g.block.cvid);f?JSON.stringify(f)!==JSON.stringify(g.block)&&ue({...g,block:f}):ue(null),g.block},[t.draftMode,d,g]);const de=l.useMemo(()=>d.blocks.filter(f=>!(f.type===y.CHECKLIST&&!s||f.type===y.DIVIDER&&u.resourceCenterAutoDividers||f.hiddenWhenFlowsActive&&f.hiddenWhenFlowsActive.some(k=>k===r?.flow.id||k===s?.flow.id))),[d,r,s,u.resourceCenterAutoDividers]),je=l.useMemo(()=>Wt(de),[de]),ye=l.useMemo(()=>!s||!d.blocks.some(f=>f.type===y.CHECKLIST)?0:mn(s),[d,s]),M=l.useMemo(()=>d.blocks.find(f=>f.type===y.CONTACT&&f.chatEnabled&&f.chatProvider),[d]),[rn,nt]=l.useState(!1),me=l.useCallback(()=>{c.closeResourceCenter(),M&&M.chatProvider!==W.CUSTOM&&nt(!0)},[c,M]),fe=l.useCallback(()=>{nt(!1)},[]),rt=l.useCallback(()=>{if(M)try{xe[M.chatProvider].hide({block:M}),fe()}catch(f){console.error(`Userflow.js: Error when hiding ${M.chatProvider}:`,f)}},[M,fe]);l.useEffect(()=>{if(!M)return;Te.autoHide3pDisabled=!0;const f=xe[M.chatProvider];try{const k=f.configure({block:M,onShow:me,onHide:fe});return()=>{k()}}catch(k){console.error(`Userflow.js: Error when configuring ${M.chatProvider}:`,k);return}},[M,me,fe]),l.useEffect(()=>{n&&rt()},[rt,n]);const I=Zt(t),Se=l.useMemo(()=>{if(!I)return null;if(I.boosterAnnouncement){const f=I.boosterAnnouncement;if(!f.seen&&(f.level===B.TOAST||f.level===B.MODAL))return f}return I.popoutAnnouncement&&!I.popoutAnnouncement.seen?I.popoutAnnouncement:null},[I]),st=be(Se?.theme||E.theme);pt(window,wt,o?st:void 0);const he=l.useCallback((f,k,T,Y,Ee)=>{const it=()=>{Ge(c,f)};return e.createElement(se.Provider,{value:{...T,data:f.data}},f.level===B.MODAL&&e.createElement(Ut,{session:T,open:ie,navigate:F,block:k,announcement:f,onDismiss:it}),(f.level===B.TOAST||f.level===B.POPOUT)&&e.createElement($t,{session:T,open:ie,navigate:F,block:k,announcement:f,onDismiss:it,isStandalonePopout:Ee?.isStandalonePopout,rcPlacement:Y.resourceCenterPlacement}))},[c,ie,F]),sn=(f,k,T)=>{const Y={...Re(T),zIndex:Et(Cn),position:"fixed",top:0,left:0,width:"100vw",height:"100vh",pointerEvents:f.level===B.MODAL?"auto":"none"},Ee={...t,data:{...t.data,...f.data||{}}};return e.createElement(se.Provider,{value:Ee},e.createElement("div",{className:"userflowjs-theme-root",style:Y,id:"userflowjs-announcement-app"},he(f,k,Ee,T,{isStandalonePopout:f.level===B.POPOUT})))},on=!!g&&(g.kind==="search"||g.kind==="flows"||g.kind==="knowledgeBase"),ot=g?.kind==="assistant"||g?.kind==="announcementList"||g?.kind==="announcementShow",Ie=Math.min(ot?u.resourceCenterFullWidth:u.resourceCenterWidth,N-2*u.resourceCenterPaddingX),cn=540,an=720,ln={zIndex:u.resourceCenterZIndex!=null?u.resourceCenterZIndex:n?K:Et(gn),position:v?void 0:"absolute",visibility:v&&!rn?void 0:"hidden"},un={width:(n?Ie:Yt)+"px",height:n?Math.min(on?cn:ot?an:tn,j-2*u.resourceCenterPaddingY,u.resourceCenterMaxHeight==null?Number.MAX_VALUE:u.resourceCenterMaxHeight)+"px":void 0,display:o&&!n?"none":void 0},[dn,ct]=l.useState(!1),at=()=>{ie(),X(!0)},lt=u.resourceCenterDisplayChecklistProgress&&s&&ye>0?e.createElement("div",{"data-testid":"resource-center-launcher-badge",className:"userflowjs-resource-center-launcher-badge"},ye,e.createElement("div",{className:"userflowjs-a11y-only"},"uncompleted tasks")):null;let we="",Ae="";return u.resourceCenterLauncherTextMode===ut.CHECKLIST_OVERRIDE&&s&&ye>0?we=s.version.checklist?.launcherText||"Get Started":u.resourceCenterLauncherTextMode!==ut.NONE&&(Ae=d.buttonText),o&&!n&&Se&&I?sn(Se,I,st):e.createElement(se.Provider,{value:t},e.createElement("div",{"data-testid":"resource-center-app",className:"userflowjs-resource-center-app userflowjs-theme-root",style:Re(u),dir:pe.dir()},e.createElement("div",{className:D({"userflowjs-resource-center":!0,"userflowjs-resource-center--fixed":!0,[`userflowjs-resource-center--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0}),style:ln},e.createElement("div",{className:"userflowjs-resource-center-frame-wrapper",onMouseEnter:()=>ct(!0),onMouseLeave:()=>ct(!1)},e.createElement(qe,{className:D({"userflowjs-resource-center-frame":!0,"userflowjs-resource-center-frame--animating":Ye,"userflowjs-resource-center-frame--open":n,"userflowjs-resource-center-frame--closed":!n}),style:un,stylesheet:He,theme:u,onStylesheetsLoad:b,title:"Resource center"},v&&e.createElement(e.Fragment,null,e.createElement("div",{ref:V,className:D({"userflowjs-resource-center-frame-root":!0,[`userflowjs-resource-center-frame-root--placement-${u.resourceCenterPlacement.toLowerCase().replace(/_/g,"-")}`]:!0,"userflowjs-resource-center-frame-root--animating":Ye,"userflowjs-resource-center-frame-root--open":n,"userflowjs-resource-center-frame-root--closed":!n}),role:n?"dialog":void 0,"aria-label":n?d.headerText:void 0},!o&&e.createElement("div",{className:"userflowjs-resource-center-launcher-container"},e.createElement("button",{ref:Q,className:D({"userflowjs-resource-center-launcher-button":!0,"userflowjs-resource-center-launcher-button--hover":dn}),onClick:at,"aria-label":`Open ${d.headerText}`},lt,we&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},we),(lt||we)&&e.createElement("div",{className:"userflowjs-resource-center-launcher-divider"}),Ae&&e.createElement("div",{"data-testid":"resource-center-launcher-text",className:"userflowjs-resource-center-launcher-text"},Ae),e.createElement("div",{className:"userflowjs-resource-center-launcher-icon"},u.resourceCenterLauncherIconType===dt.PLAINTEXT?"?":u.resourceCenterLauncherIconType===dt.DEFAULT?e.createElement(qn,null):u.rcIconAsset&&u.rcIconAsset.assetUrl?e.createElement("img",{src:u.rcIconAsset.assetUrl,className:"company-icon",style:{height:`${u.rcIconSize}px`,width:`${u.rcIconSize}px`}}):e.createElement("span",null)))),e.createElement("div",{ref:ae,className:"userflowjs-resource-center-body",style:{width:Ie+"px"}},e.createElement("div",{ref:Gt,className:D({"userflowjs-resource-center-body-content":!0,"userflowjs-resource-center-body-content--padding":g?.kind!=="assistant","userflowjs-resource-center-body-content--same-background":u.sameBackground,"userflowjs-resource-center-body-content--with-made-with-userflow":a.resourceCenterBranding})},n&&e.createElement(e.Fragment,null,g?g.kind==="search"?e.createElement(tr,{session:t,navigate:F}):g.kind==="email"?e.createElement(nr,{block:g.block,session:t}):g.kind==="phone"?e.createElement(rr,{block:g.block,session:t}):g.kind==="flows"?e.createElement(sr,{block:g.block,initialQ:g.initialQ,session:t,navigate:F}):g.kind==="knowledgeBase"?e.createElement(or,{block:g.block,initialQ:g.initialQ,session:t,bodyRef:ae}):g.kind==="subpage"?e.createElement(cr,{block:g.block,session:t}):g.kind==="announcementList"||g.kind==="announcementShow"?e.createElement(ar,{bodyRef:ae,session:t,route:g,navigate:F}):g.kind==="assistant"?e.createElement(ur,{block:g.block,initialUserContent:g.initialUserContent,session:t,navigate:F,chatBlock:M,onChatShow:me}):null:e.createElement(e.Fragment,null,de.map((f,k)=>{const T=oe[f.type],Y=de[k+1];return T?e.createElement(e.Fragment,{key:f.id},e.createElement(T.View,{session:t,flowSession:r,checklistSession:s,block:f,navigate:F,onChatShow:me}),Y&&On(u,f.type,Y.type)&&e.createElement("div",{className:"userflowjs-resource-center-divider"})):null}))))),a.resourceCenterBranding&&e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow"},e.createElement("div",{className:"userflowjs-resource-center-made-with-userflow-content",ref:Jt},e.createElement("a",{href:"https://userflow.com/?utm_source=made-with-userflow&utm_medium=link&utm_campaign=made-with-userflow-"+a.slug+"&utm_content=resource-center",target:"_blank",rel:"noopener noreferrer"},e.createElement(yn,null),e.createElement("div",null,"Made with Userflow")))),t.draftMode&&e.createElement("div",{className:"userflowjs-resource-center-preview"},e.createElement("div",{ref:Xt,className:"userflowjs-resource-center-preview-content"},e.createElement("div",{className:"userflowjs-resource-center-preview-text"},"Preview"),e.createElement("button",{className:"userflowjs-resource-center-preview-button",onClick:()=>{c.endFlow(t,{endReason:fn.USER_CLOSED})}},e.createElement(A,{icon:Ke})))),e.createElement("div",{className:"userflowjs-resource-center-header",style:{width:Ie+"px"}},e.createElement("div",{ref:ce,className:"userflowjs-resource-center-header-content"},g==null?e.createElement("div",{className:"userflowjs-resource-center-header-text"},d.headerText):e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:f=>F(g?.kind==="announcementShow"?{kind:"announcementList",block:g.block}:null,f)},e.createElement("div",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:Tn})),e.createElement("div",{className:"userflowjs-resource-center-icon-button__text"},i("resource_center.back"))),e.createElement("div",{className:"flex-1"}),je.length>0&&e.createElement("button",{className:"userflowjs-resource-center-icon-button",onClick:()=>{let f={kind:"search"};if(je.length===1){const k=je[0],T=oe[k.type];T.routeTo&&(f=T.routeTo({block:k}))}g?.kind==="search"?F(null):(R(c,t,null,"Search icon"),F(f))},"aria-label":"Search"},e.createElement(A,{icon:Rn})),e.createElement("button",{className:"userflowjs-resource-center-icon-button userflowjs-resource-center-close-button",onClick:f=>{Ne(),f.detail===0&&X(!0)},"aria-label":`Close ${d.headerText}`},e.createElement(A,{icon:_n}))))))),!n&&!r&&!o&&I&&I.unreadAnnouncementCount>0&&e.createElement(er,{theme:u,count:I.unreadAnnouncementCount,onClick:at})),!n&&!r&&!o&&I?.popoutAnnouncement&&he(I.popoutAnnouncement,I,t,u),!n&&!r&&!o&&I?.boosterAnnouncement&&I.boosterAnnouncement.level===B.MODAL&&he(I.boosterAnnouncement,I,t,u),!n&&!r&&!o&&I?.boosterAnnouncement&&I.boosterAnnouncement.level===B.TOAST&&he(I.boosterAnnouncement,I,t,u))))},er=({theme:t,count:n,onClick:r})=>{const[s,o]=l.useState(!1);return e.createElement(qe,{className:D({"userflowjs-resource-center-launcher-unread-badge":!0}),noScroll:!0,style:{position:s?void 0:"absolute",visibility:s?void 0:"hidden"},stylesheet:He,theme:t,onStylesheetsLoad:o,title:"Resource center unread badge"},e.createElement(Ot,{count:n,onClick:r}))},Ot=({count:t,onClick:n})=>{let r=null;return t>9&&(t=9,r=e.createElement("span",{className:"userflowjs-unread-badge-plus"},"+")),e.createElement("div",{className:D({"userflowjs-unread-badge":!0,"userflowjs-unread-badge--clickable":!!n}),onClick:n},e.createElement("span",null,t),r)},$t=({session:t,open:n,navigate:r,announcement:s,block:o,rcPlacement:c,onDismiss:i,isStandalonePopout:a})=>{const E=l.useRef(null),d=be(s.theme),u=d.toastPlacement,p=!!o.boosterAnnouncement||a!==void 0&&s?.level===B.TOAST,h=u===c;let w=null,b=null;s&&(w=s.toastAutoDismiss??d.toastAutoDismiss,b=s.toastWidth?s.toastWidth:d.toastWidth);const v=x(),[N,S]=l.useState(!1),{height:j,setEl:C}=Pn();l.useEffect(()=>{const Q=E.current;if(!Q||w===null)return;const J=Date.now(),ce=()=>{const q=1-(Date.now()-J)/(new Dt(w||0).toNumber()*1e3);q<=0?(Q.style.width="0%",s&&z(v,s)):(Q.style.width=`${q*100}%`,requestAnimationFrame(ce))};return requestAnimationFrame(ce),()=>{Q&&(Q.style.width="0%")}},[E.current,w,v,s,z]);const L=i||(()=>{s&&z(v,s)}),K=20,P=l.useMemo(()=>CSS.supports("height: 100dvh")?"dvh":"vh",[]),O=()=>{p&&s&&(z(v,s),R(v,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n())};if(!s)return null;const V=!!a&&!!c,U=(a!==void 0||!h)&&!!u&&p;return e.createElement("div",{className:D({"userflowjs-resource-center-popout":!p,"userflowjs-resource-center-toast":p,[`userflowjs-resource-center-popout-standalone--${c?.toLowerCase()?.replace(/_/g,"-")}`]:V,[`userflowjs-resource-center-toast--${u?.toLowerCase()?.replace(/_/g,"-")}`]:U}),style:Re(d)},e.createElement(qe,{className:D({"userflowjs-resource-center-popout-frame":!0}),style:{height:`calc(min(${j}px, 100${P} - 2 * var(--userflow-resource-center-padding-y) - var(--userflow-resource-center-collapsed-height) - ${K}px)`,position:N?void 0:"absolute",visibility:N?void 0:"hidden",...b&&p?{width:b}:{}},stylesheet:He,theme:d,onStylesheetsLoad:S,title:"Resource center popout"},p&&e.createElement("div",{className:"userflowjs-bubble-progress--default"},e.createElement("div",{className:"userflowjs-bubble-progress__fill",ref:E})),e.createElement("div",{ref:C,className:"userflowjs-resource-center-popout-frame-root",style:{cursor:p?"pointer":"auto",padding:p&&d.toastPadding||void 0}},e.createElement("div",{onClick:O},e.createElement("h2",{className:"userflowjs-announcement-title"},e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,s.title)),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},ge(s.time))),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),!p&&e.createElement(e.Fragment,null,s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more"},e.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>{z(v,s),R(v,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"),!p&&e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:Bt})))))),p&&s.moreEnabled&&e.createElement("div",{onClick:O,className:"userflowjs-announcement-more--toast"},(s.moreEnabled?s.moreButtonText:null)||"Read more"),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:L,"aria-label":"Dismiss announcement"},e.createElement(A,{icon:Ke}))))),!p&&!a&&e.createElement("div",{className:"userflowjs-resource-center-popout-notch"}))},Ut=({session:t,open:n,navigate:r,announcement:s,block:o,onDismiss:c})=>{const i=x(),a=be(s.theme),d=c||(()=>{z(i,s)});return e.createElement(Dn,{company:t.flow.company,theme:a,position:"fixed",width:s.modalWidth,stepAppearance:hn.MODAL,zIndex:a.checklistZIndex,autoHide3pEnabled:!0,onModalBackdropClick:d,noIframe:!0,isModalAnnouncement:!0},e.createElement("div",{id:"userflowjs-bubble-content",className:"userflowjs-bubble-content"},e.createElement("h1",null,s.title),e.createElement(H,{doc:s.content,buttons:s.buttons,lookupAttribute:_(s.data)})),e.createElement("div",{className:"userflowjs-bubble-toolbar"},e.createElement("button",{className:"userflowjs-bubble-toolbar-button",onClick:d,"aria-label":"Dismiss announcement"},e.createElement(A,{icon:Ke}))),s.moreEnabled&&e.createElement("div",{className:"userflowjs-announcement-more--modal"},e.createElement("button",{className:"userflowjs-bubble-button--primary",onClick:()=>{z(i,s),R(i,t,o,s.title),r({kind:"announcementShow",block:o,announcementId:s.id}),n()}},e.createElement("div",null,(s.moreEnabled?s.moreButtonText:null)||"Read more"))))};function Wt(t){return t.filter(n=>{const r=oe[n.type];return r.isSearchable?r.isSearchable(n):!!r.search})}const oe={[y.ACTION]:{View:t=>{const{block:n,session:r,flowSession:s,checklistSession:o}=t,c=x(),[i,a]=l.useState(!1),E=s?.id,d=o?.id;return l.useEffect(()=>{a(!1)},[E,d]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:i?void 0:()=>{R(c,r,n);const u=n.actions.find(p=>p.type===wn.START_FLOW);u?u.otherFlow?.id!==o?.flow.id&&a(!0):c.closeResourceCenter(),kn(c,r,n.actions)},disabled:i},e.createElement(ee,{...t}),e.createElement(Z,{...t}),i&&e.createElement($,null))}},[y.ANNOUNCEMENTS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"announcementList",block:n},c)}},n.unreadAnnouncementCount>0?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(Ot,{count:n.unreadAnnouncementCount})):e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}},[y.ASSISTANT]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x(),[c,i]=l.useState("");return n.assistantAppearance===En.INPUT?e.createElement("div",{className:"userflowjs-resource-center-assistant-block"},e.createElement(Jn,{value:c,onChange:i,placeholder:Ve(n.name,{lookupAttribute:_(r.data)}),onSubmit:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:c})}})):e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(o,r,n),s({kind:"assistant",block:n,initialUserContent:""})}},e.createElement(ee,{...t}),e.createElement(Z,{...t}))}},[y.CHECKLIST]:{View:({checklistSession:t})=>e.createElement("div",{"data-testid":"resource-center-checklist",className:"userflowjs-resource-center-checklist"},e.createElement(In,{session:t}),e.createElement(Fn,{draftMode:t.draftMode?"CHECKLIST PREVIEW":!1}))},[y.CONTACT]:{View:t=>{const{block:n,session:r,navigate:s,onChatShow:o}=t,c=x(),i=[];return n.emailEnabled&&i.push({icon:Ln,label:"Email",isRoute:!0,onClick:a=>{R(c,r,n,"Email"),s({kind:"email",block:n},a)}}),n.phoneEnabled&&i.push({icon:Mn,label:"Phone",isRoute:!0,onClick:a=>{R(c,r,n,"Phone"),s({kind:"phone",block:n},a)}}),n.chatEnabled&&i.push({icon:Bn,label:"Live-chat",isRoute:!1,onClick:()=>{R(c,r,n,"Chat"),Qt(r,n,o)}}),e.createElement("div",{className:D({"userflowjs-resource-center-block":!0,"userflowjs-resource-center-block--clickable":i.length===1}),onClick:i.length===1?i[0].onClick:void 0},i.length===1&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:i[0].icon})),e.createElement(Z,{...t}),i.length>1&&i.map(({icon:a,label:E,onClick:d},u)=>e.createElement("button",{key:u,className:"userflowjs-resource-center-icon-button",onClick:d,"aria-label":E},e.createElement(A,{icon:a}))),i.length===1&&i[0].isRoute&&e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}},[y.DIVIDER]:{View:()=>e.createElement("div",{className:"userflowjs-resource-center-divider"})},[y.FLOWS]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"flows",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"flows",block:t,initialQ:n}),isSearchable:t=>!!t.searchEnabled,search:async({client:t,session:n,block:r,q:s})=>{const{flows:o}=await t.send({kind:"ListResourceCenterBlockFlows",sessionId:n.id,blockCvid:r.cvid},{handlesRejection:!0}),c=Ht(o,s),i=c.slice(0,Tt);return{block:r,truncated:i.length===c.length,results:i.map(a=>({kind:"flow",flow:a}))}}},[y.KNOWLEDGE_BASE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"knowledgeBase",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))},routeTo:({block:t,initialQ:n})=>({kind:"knowledgeBase",block:t,initialQ:n}),search:async({client:t,session:n,block:r,q:s})=>{const{truncated:o,articles:c}=await t.send({kind:"SearchKnowledgeBase",sessionId:n.id,blockCvid:r.cvid,q:s,offset:0,limit:Tt},{handlesRejection:!0});return{block:r,truncated:o,results:c.map(i=>({kind:"article",article:i}))}}},[y.MESSAGE]:{View:({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block"},e.createElement("div",{className:"userflowjs-resource-center-block-text userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})))},[y.SUBPAGE]:{View:t=>{const{block:n,session:r,navigate:s}=t,o=x();return e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:c=>{R(o,r,n),s({kind:"subpage",block:n},c)}},e.createElement(ee,{...t}),e.createElement(Z,{...t}),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te})))}}},ee=({block:t})=>t.icon?e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:t.icon,size:16})):null,Z=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement(G,{doc:t.name,lookupAttribute:_(n.data)}));function zt(t){if(!t)return null;let n;"block"in t&&t.block!=null&&(n=t.block.cvid);const r={kind:t.kind,blockCvid:n};switch(t.kind){case"announcementShow":r.announcementId=t.announcementId;break}return JSON.stringify(r)}function _t(t,n){if(!n)return null;const r=JSON.parse(n);let s;if(r.blockCvid&&(s=t.version.resourceCenter?.blocks.find(c=>c.cvid===r.blockCvid)),!s&&r.kind!=="search")return null;const o={kind:r.kind,block:s};switch(o.kind){case"announcementShow":o.announcementId=r.announcementId;break}return o}const tr=({session:t,navigate:n})=>{const r=x(),s=t.version.resourceCenter.blocks,o=Wt(s),{t:c}=ne(),i=l.useRef(null),[a,E]=l.useState(""),[d,u]=Ze(a,E),[p,h]=l.useState(null);return l.useEffect(()=>{if(a.trim()===""){h(null);return}let w=!1;return(async()=>{h(null);const v=await Promise.all(s.map(async N=>{const{search:S}=oe[N.type];if(!S)return null;try{return await S({client:r,session:t,block:N,q:a})}catch(j){return console.error(`Userflow.js: Global search failed for ${N.type} block=`,N,"error=",j),null}}));w||h(v.filter(N=>N!=null&&N.results.length>0))})(),()=>{w=!0}},[r,t,s,a]),l.useEffect(()=>{i.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:i,className:"userflowjs-text-input",type:"text",value:d,onChange:w=>u(w.target.value),placeholder:c("resource_center.search_placeholder")})),a.trim()===""?e.createElement("div",{"data-testid":"resource-center-empty-query",className:"userflowjs-resource-center-list-route-error"},c("resource_center.search_in")," ",o.map((w,b)=>e.createElement(e.Fragment,{key:w.cvid},b>0&&(b===o.length-1?` ${c("and")} `:", "),e.createElement("b",null,e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})))),"."):p?p.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},c("resource_center.no_results_found")):p.map(({block:w,truncated:b,results:v},N)=>{const S=oe[w.type],j=S.routeTo&&S.routeTo({block:w,initialQ:a});return e.createElement(e.Fragment,{key:w.cvid},N>0&&e.createElement("div",{className:"userflowjs-resource-center-divider"}),e.createElement("div",{className:"userflowjs-resource-center-label"},e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})),v.map((C,L)=>C.kind==="flow"?e.createElement(Vt,{key:C.flow.id,block:w,session:t,flow:C.flow,navigate:n}):C.kind==="article"?e.createElement(qt,{key:L,block:w,session:t,article:C.article}):null),!b&&j&&e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:C=>{R(r,t,w),n(j,C)}},e.createElement("div",{className:"userflowjs-resource-center-block-text"},c("more"),":"," ",e.createElement(G,{doc:w.name,lookupAttribute:_(t.data)})),e.createElement("div",{className:"userflowjs-resource-center-block-nav-icon"},e.createElement(A,{icon:te}))))}):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)))},nr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.emailContent,lookupAttribute:_(n.data)})),rr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.phoneContent,lookupAttribute:_(n.data)})),sr=({block:t,initialQ:n,session:r,navigate:s})=>{const{t:o}=ne(),c=l.useRef(null),[i,a]=l.useState(n||""),[E,d]=Ze(i,a),{data:u,error:p}=ve({message:{kind:"ListResourceCenterBlockFlows",sessionId:r.id,blockCvid:t.cvid}}),h=u?.flows,w=l.useMemo(()=>h?Ht(h,i):null,[h,i]);return l.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:t.name,lookupAttribute:_(r.data)}))),t.searchEnabled&&e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:b=>d(b.target.value),placeholder:o("resource_center.search_placeholder")})),p?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.generic_error")):w?w.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):w.map(b=>e.createElement(Vt,{key:b.id,block:t,session:r,flow:b,navigate:s})):e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,{fadeIn:!0})))};function Ht(t,n){const r=n.toLowerCase().trim();return r===""?t:t.filter(s=>s.name.toLowerCase().includes(r))}const Vt=({block:t,session:n,flow:r,navigate:s})=>{const o=x(),[c,i]=l.useState(!1);return l.useEffect(()=>{if(!c||r.type!==mt.CHECKLIST)return;const a=()=>{o.checklistSession?.flow.id===r.id&&(E(),s(null))},E=()=>{o.off("checklistChanged",a)};return o.on("checklistChanged",a),E},[o,c,r.type,r.id,s]),e.createElement("button",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{if(R(o,n,t,r.name),o.checklistSession?.flow.id===r.id){s(null);return}o.startFlow({flowId:r.id,startReason:n.draftMode?ft.DRAFT:ft.RESOURCE_CENTER,replaceCurrent:!0}),i(!0);const a=Ve(r.url,{lookupAttribute:_(n.data)});a&&Nn(a)},disabled:c},r.iconSetting!==pn.HIDE&&e.createElement("div",{className:"userflowjs-resource-center-block-icon"},r.icon?e.createElement(A,{icon:r.icon,size:16}):e.createElement(A,{icon:r.type===mt.CHECKLIST?"regular/tasks":"regular/shoe-prints",size:16})),n.draftMode&&!r.published&&e.createElement("div",{className:"userflowjs-resource-center-code-block"},e.createElement("div",{title:"Unpublished. Preview only"},e.createElement("code",null,"P"))),e.createElement("div",{className:"userflowjs-resource-center-block-text"},r.name),c&&e.createElement($,null))},or=({block:t,initialQ:n,session:r,bodyRef:s})=>{const{t:o}=ne(),c=l.useRef(null),[i,a]=l.useState(n||""),[E,d]=Ze(i,a),{loading:u,loadingMore:p,data:h,messageForData:w,error:b,loadMore:v}=ve({message:{kind:"SearchKnowledgeBase",sessionId:r.id,blockCvid:t.cvid,q:i,offset:0}}),N=h?.truncated,S=l.useCallback(()=>{v((C,L)=>({...L,offset:C.articles.length}),(C,L)=>({...L,articles:[...C.articles,...L.articles]}))},[v]);Kt({bodyRef:s,loading:u,loadingMore:p,truncated:N,loadMoreHelper:S}),l.useEffect(()=>{c.current?.focus({preventScroll:!0})},[]);let j=t.knowledgeBaseUrl||"";return j.match(/^https?:\/\//)||(j=`http://${j}`),j=Pt(j),e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:t.name,lookupAttribute:_(r.data)})),e.createElement("a",{className:"userflowjs-resource-center-icon-button",href:j,target:"_blank",rel:"noopener noreferrer"},e.createElement(A,{icon:xn}))),e.createElement("div",{className:"userflowjs-resource-center-list-route-search"},e.createElement("input",{ref:c,className:"userflowjs-text-input",type:"text",value:E,onChange:C=>d(C.target.value),placeholder:o("resource_center.search_placeholder")})),b?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},b.code==="quota_exceeded"?"Sorry, this company has reached its max number of searches. Consider asking Userflow to be moved to a dedicated search engine for a higher quota.":b.humanMessage||o("resource_center.generic_error")):u||!h?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):h.articles.length===0?w?.q===""?null:e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o("resource_center.no_results_found")):e.createElement(e.Fragment,null,w?.q===""&&e.createElement("div",{className:"userflowjs-resource-center-label"},o("resource_center.suggested_articles")),h.articles.map((C,L)=>e.createElement(qt,{key:L,block:t,session:r,article:C})),p&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null))))},qt=({block:t,article:n,session:r})=>{const s=x();return e.createElement("a",{className:"userflowjs-resource-center-block userflowjs-resource-center-block--clickable",onClick:()=>{R(s,r,t,n.title)},href:Pt(n.url),target:"_blank",rel:"noopener noreferrer"},e.createElement("div",{className:"userflowjs-resource-center-block-icon"},e.createElement(A,{icon:"regular/file-alt",size:16})),e.createElement("div",{className:"userflowjs-resource-center-block-text"},e.createElement("span",{dangerouslySetInnerHTML:{__html:n.htmlTitle}}),e.createElement("div",{className:"userflowjs-resource-center-block-subtext",dangerouslySetInnerHTML:{__html:n.htmlSnippet}})))},cr=({block:t,session:n})=>e.createElement("div",{className:"userflowjs-resource-center-content-route userflowjs-bubble-content"},e.createElement(H,{doc:t.content,lookupAttribute:_(n.data)})),ar=({bodyRef:t,session:n,route:r,navigate:s})=>{const o=x(),c=ve({message:{kind:"ListAnnouncements",beforeAnnouncementId:null},skip:r?.kind!=="announcementList"}),{loading:i,loadingMore:a,data:E,loadMore:d}=c,u=E?.truncated,p=l.useCallback(()=>{d((b,v)=>b.announcements.length>0?{...v,beforeAnnouncementId:b.announcements[b.announcements.length-1].id}:v,(b,v)=>({...v,announcements:[...b.announcements,...v.announcements]}))},[d]);Kt({bodyRef:t,loading:i,loadingMore:a,truncated:u,loadMoreHelper:p});const[h,w]=l.useState(void 0);return l.useLayoutEffect(()=>{t.current&&h!=null&&r?.kind==="announcementList"&&(t.current.scrollTop=h)},[t,h,r?.kind]),r?.kind==="announcementList"?e.createElement(lr,{bodyRef:t,session:n,block:r.block,onMoreClick:b=>{w(t.current?.scrollTop),R(o,n,r.block,b.title),s({kind:"announcementShow",block:r.block,announcementId:b.id})},...c}):r?.kind==="announcementShow"?e.createElement(ir,{announcementId:r.announcementId}):null},lr=({bodyRef:t,block:n,session:r,onMoreClick:s,error:o,loading:c,loadingMore:i,data:a})=>{const{t:E}=ne(),[d,u]=l.useMemo(()=>{const h=[],w=[];if(a){let b=-1;for(const v of a.announcements)b++,b<a.pageSize&&!v.seen&&v.level!==B.SILENT?h.push(v):w.push(v)}return[h,w]},[a]),p=d.length;return e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-resource-center-list-route-header"},e.createElement("div",{className:"userflowjs-resource-center-list-route-title"},e.createElement(G,{doc:n.name,lookupAttribute:_(r.data)}))),o?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},o.humanMessage||E("resource_center.generic_error")):c||!a?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):a.announcements.length===0?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},pe.exists("resource_center.no_announcements",{fallbackLng:[]})?E("resource_center.no_announcements"):E("resource_center.no_results_found")):e.createElement(e.Fragment,null,p>0&&e.createElement("div",{className:"userflowjs-announcement-unread-header"},E("resource_center.unread",{count:p})),d.map((h,w)=>e.createElement(Lt,{key:w,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),d.length>0&&u.length>0&&e.createElement("div",{className:"userflowjs-announcement-seen-divider"}),u.map((h,w)=>e.createElement(Lt,{key:w,bodyRef:t,onMoreClick:()=>s(h),announcement:h})),i&&e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null))))},xt=new Set;function z(t,n){xt.has(n.id)&&n.seen||(xt.add(n.id),Ge(t,n))}const Lt=({bodyRef:t,onMoreClick:n,announcement:r})=>{const s=x(),o=Mt(),c=l.useRef(null),i=l.useRef(!1);return l.useEffect(()=>{if(i.current||r.seen)return;const a=new IntersectionObserver(d=>{const u=d[0];u&&u.isIntersecting&&(z(s,r),i.current=!0,E())},{root:t.current,threshold:1}),E=()=>{a.disconnect()};return a.observe(c.current),E},[t,s,r]),e.createElement("div",{className:"userflowjs-announcement-list-item"},e.createElement("div",{className:"userflowjs-announcement-time-divider"},e.createElement("div",{className:"userflowjs-announcement-time-divider-line"}),e.createElement("div",{className:"userflowjs-announcement-time-text"},ge(r.time)),e.createElement("div",{className:"userflowjs-announcement-time-divider-line"})),e.createElement("h2",{ref:c,className:"userflowjs-announcement-title"},!r.seen&&r.level!==B.SILENT&&e.createElement("span",{className:"userflowjs-unread-dot"}),e.createElement("span",null,r.title)),e.createElement("div",{className:"userflowjs-announcement-content userflowjs-bubble-content"},e.createElement(se.Provider,{value:{...o,data:r.data}},e.createElement(H,{doc:r.content,buttons:r.buttons,lookupAttribute:_(r.data)}))),e.createElement("div",{className:"userflowjs-announcement-more"},r.moreEnabled&&e.createElement("button",{className:"userflowjs-tertiary-button",onClick:n},e.createElement("div",null,r.moreButtonText||"Read more"),e.createElement("span",{className:"userflowjs-rtl-mirrored"},e.createElement(A,{icon:Bt})))))},ir=({announcementId:t})=>{const n=x(),r=Mt(),{t:s}=ne(),{loading:o,data:c,error:i}=ve({message:{kind:"GetAnnouncement",announcementId:t}}),a=c?.announcement;return l.useEffect(()=>{!a||a.seen||z(n,a)},[n,a]),e.createElement(e.Fragment,null,i?e.createElement("div",{className:"userflowjs-resource-center-list-route-error"},i.humanMessage||s("resource_center.generic_error")):o||!a?e.createElement("div",{className:"userflowjs-resource-center-list-route-spinner"},e.createElement($,null)):e.createElement(e.Fragment,null,e.createElement("div",{className:"userflowjs-announcement-show"},e.createElement("h2",{className:"userflowjs-announcement-title"},a?.title),e.createElement("div",{className:"userflowjs-announcement-time"},e.createElement("div",{className:"userflowjs-announcement-time-text"},ge(a.time))),e.createElement("div",{className:"userflowjs-bubble-content"},e.createElement(se.Provider,{value:{...r,data:a.data}},e.createElement(H,{doc:a.content,buttons:a.buttons,lookupAttribute:_(a.data)}),a.moreEnabled&&e.createElement(H,{doc:a.moreContent,buttons:a.moreButtons,lookupAttribute:_(a.data)}))))))},ur=({block:t,initialUserContent:n,session:r,navigate:s,onChatShow:o})=>{const c=t.assistantFlowId,i=x(),[a,E]=l.useState(null),[d,u]=l.useState(null),[p,h]=l.useState(null),[w]=l.useState(n);l.useEffect(()=>{n&&s({kind:"assistant",block:t,initialUserContent:""})},[n,t,s]),l.useEffect(()=>{let v=!1;return(async()=>{try{const S=re.getItem("assistantConversationId:"+c),[j,C]=await Promise.all([Yn(),i.send({kind:"GetAssistant",assistantFlowId:c,conversationId:S},{handlesRejection:!0,endBatch:!0})]);if(v)return;E(()=>j),u(C)}catch(S){console.error("Resource center assistant route failed to load:",S),h(S.humanMessage||"Sorry, something went wrong. Please try again or contact my human friends.")}})(),()=>{v=!0}},[i,c]);const b=l.useMemo(()=>{if(!t.assistantContactEnabled)return;const v=r.version.resourceCenter?.blocks.find(N=>N.type===y.CONTACT);if(v)return()=>{switch(R(i,r,t,t.assistantContactButtonText||void 0),t.assistantContactMethod){case ht.EMAIL:s({kind:"email",block:v});break;case ht.PHONE:s({kind:"phone",block:v});break;default:s(null),Qt(r,v,o);break}}},[i,r,t,o,s]);return p?e.createElement("div",{className:"userflowjs-assistant-chat"},e.createElement("div",{className:"userflowjs-assistant-chat__content"},e.createElement("div",{className:"userflowjs-assistant-chat__error"},p))):!a||!d?e.createElement($,{center:!0,fadeIn:!0}):e.createElement(a,{block:t,session:r,assistantReply:d,initialUserContent:w,onContactClick:b,contactButtonText:t.assistantContactButtonText||void 0})};function R(t,n,r,s){t.send({kind:"ClickResourceCenter",sessionId:n.id,description:r?Ve(r.name,{lookupAttribute:_(n.data)})+(s?` - ${s}`:""):s},{batch:!0})}function Kt({bodyRef:t,loading:n,loadingMore:r,truncated:s,loadMoreHelper:o}){l.useEffect(()=>{const c=t.current;if(!c||n||r||s)return;const i=()=>{c.scrollHeight-c.clientHeight-c.scrollTop>400||o()};return c.addEventListener("scroll",i),()=>{c.removeEventListener("scroll",i)}},[t,n,r,s,o])}function Qt(t,n,r){if(n.chatProvider){const s=xe[n.chatProvider];try{s.show({block:n})}catch(o){console.error(`Userflow.js: Error when showing ${n.chatProvider}:`,o)}r()}else t.draftMode&&window.alert("You have not selected a chat provider. Go to the resource center builder in Userflow. Click the Contact block. Pick a chat provider in the side panel.")}function Ge(t,n){t.setResourceCenterSession(r=>r?{...r,version:{...r.version,resourceCenter:{...r.version.resourceCenter,blocks:r.version.resourceCenter.blocks.map(s=>s.type===y.ANNOUNCEMENTS?{...s,unreadAnnouncementCount:n.level===B.SILENT?s.unreadAnnouncementCount:s.unreadAnnouncementCount-1,popoutAnnouncement:s.popoutAnnouncement?.id===n.id?null:s.popoutAnnouncement,boosterAnnouncement:s.boosterAnnouncement?.id===n.id?null:s.boosterAnnouncement}:s)}}}:null),t.send({kind:"MarkAnnouncementSeen",announcementId:n.id,versionId:n.versionId}),t.toggleUI()}function Zt(t){return t?.version.resourceCenter?.blocks.find(n=>n.type===y.ANNOUNCEMENTS)||null}function ge(t){const n=t?new Date(t):new Date;let r=new Intl.DateTimeFormat(pe.language,{weekday:"long",day:"numeric",month:"short",year:n.getFullYear()===new Date().getFullYear()?void 0:"numeric"}).format(n);return r.substring(0,1).toUpperCase()+r.substring(1)}const _r=Object.freeze(Object.defineProperty({__proto__:null,FloatingAnnouncements:$t,ModalAnnouncement:Ut,ResourceCenterApp:Rt,default:Rt,formatAnnouncementTime:ge,getAnnouncementsBlock:Zt,serializeRoute:zt,syncAnnouncementSeen:Ge},Symbol.toStringTag,{value:"Module"}));export{Jn as A,Gn as G,_r as R,Pt as d};
5
5
  //# sourceMappingURL=ResourceCenterApp.js.map
@@ -1,5 +1,5 @@
1
- import{r as u,R as n}from"./vendor.react.js";import{ae as _,af as A,u as Y}from"./userflow.js";import{u as _e}from"./client-context.js";import{a5 as q,a6 as Q,a7 as ke,a8 as P,a9 as $,aa as V,ab as X,ac as Z}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{p as we}from"./vendor.dompurify.js";import{m as Ie}from"./vendor.marked.js";import{o as y}from"./vendor.obj-str.js";import{A as Ce,d as Se,G as je}from"./ResourceCenterApp.js";import{f as ae,R as re}from"./use-selector-element-monitoring.js";import{D as W}from"./stylesheets.js";import{U as oe}from"./roots.js";import{r as ee}from"./vendor.react-dom.js";import"./vendor.core-js.js";import{g as Me}from"./flow-condition-types.js";import{u as ve}from"./vendor.react-i18next.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./flow-host.styl.js";import"./Frame.js";import"./use-window-resize.js";import"./logomark.js";import"./ChecklistUI.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./FlowChrome.js";import"./vendor.canvas-confetti.js";import"./vendor.memoize-one.js";import"./vendor.bignumber.js.js";import"./use-element-rect.js";import"./vendor.scheduler.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="b68ff1e6-c57a-4b60-901e-e2489fd8c476",t._sentryDebugIdIdentifier="sentry-dbid-b68ff1e6-c57a-4b60-901e-e2489fd8c476")}catch{}})();function Re(t){const e=Intl.Segmenter;return e?/(\p{Emoji_Presentation}|\p{Extended_Pictographic})(\p{Emoji_Modifier_Base}?\p{Emoji_Modifier}?|\uFE0F\u200D(\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?\uFE0F\u200D)*\p{Emoji_Presentation}|\uFE0F\u200D\p{Extended_Pictographic})/u.test(t)&&[...new e().segment(t)].length===1:!1}const te=[];function Ne({assistant:t,lookupAttribute:e,initialConversationId:a,initialHistory:c,initialUserContent:m,onConversationIdChange:f,submitMessage:h,submitRating:l,submitFeedback:p,InsideMessage:r,onContactClick:g,contactButtonText:i}){const[o,d]=u.useState(null),[C,w]=u.useState(()=>c?c.map(s=>({...s,assistantHtml:x(B(s.assistantContent),!1)})):te),[D,M]=u.useState(""),S=u.useRef(null),k=u.useRef(null),E=u.useRef(!0),I=u.useRef(a||null),[ie,ue]=u.useState(I.current),H=u.useCallback(s=>{I.current=s,ue(s),f&&f(s)},[f]),T=u.useCallback(()=>{o?.focus({preventScroll:!0})},[o]);u.useEffect(()=>{T()},[T]),u.useLayoutEffect(()=>{const s=k.current;s&&(s.scrollTop=Math.ceil(s.scrollHeight-s.clientHeight))},[]);const K=u.useCallback(()=>{const s=k.current;s&&(E.current=!0,typeof s.scrollTo=="function"&&s.scrollTo({top:Math.ceil(s.scrollHeight-s.clientHeight),behavior:"smooth"}))},[]),G=u.useRef(0);u.useLayoutEffect(()=>{const s=k.current;s&&s.scrollHeight!==G.current&&(G.current=s.scrollHeight,E.current&&K())},[C,K]);const N=u.useCallback(()=>{S.current&&S.current()},[]);u.useEffect(()=>()=>{N()},[N]);const O=(s,R)=>{w(j=>j.map(v=>{if(s===v.id){const b=R(v);return{...v,...b}}else return v}))},L=s=>{w(R=>R.map((j,v)=>{if(v===R.length-1){const b=s(j);return{...j,...b}}else return j}))},U=u.useCallback(async s=>{if(s=s.trim(),s==="")return;N(),w(b=>[...b,{id:null,userContent:s,assistantContent:"",assistantFallbackContent:null,assistantHtml:x("","enter"),enterAnimation:!0,sources:[],completed:!1,rating:null,scaleRating:null,scaleMax:null,feedbackSubmitted:!1}]),M(""),K();let R=!1;const j=()=>{R=!0,S.current=null},v=h({conversationId:I.current,userContent:s,callback:b=>{if(R){console.log("Userflow.js AssistantChat got message after being done",b);return}switch(b.kind){case"conversation_created":H(b.conversationId);break;case"message_created":L(()=>({id:b.messageId,warning:b.warning}));break;case"assistant_content_delta":L(F=>{const ge=b.delta,J=F.assistantContent+ge,be=B(J),Ee=x(be);return{assistantContent:J,assistantHtml:Ee}});break;case"done":j(),L(F=>({assistantHtml:x(F.assistantContent,"exit"),assistantFallbackContent:b.fallbackContent,completed:!0,sources:b.sources}));break;case"error":j(),L(F=>({failed:!0,error:b.message,assistantHtml:x(B(F.assistantContent),!1)}));break;default:console.log("Userflow.js AssistantChat got unknown message",b)}}});S.current=()=>{j(),v.abort(),L(b=>({assistantHtml:x(B(b.assistantContent),!1)}))}},[N,K,h,H]),z=u.useRef(!1);u.useEffect(()=>{z.current||(z.current=!0,m&&U(m))},[U,m]);const fe=u.useCallback(()=>{N(),H(null),w(te),T()},[N,T,H]),[de,me]=u.useState(!0),he=u.useCallback(()=>{const s=k.current;s&&me(s.scrollTop===0)},[]),pe=u.useCallback(()=>{const s=k.current;s&&(E.current=Math.ceil(s.scrollHeight-s.clientHeight)==Math.ceil(s.scrollTop))},[]);return{assistant:t,lookupAttribute:e,history:C,setInput:d,contentElRef:k,scrolledToTop:de,userContent:D,setUserContent:M,onSubmitMessage:U,supportsFeedback:!!l&&!!p,onSubmitRating:s=>{if(l){switch(s.ratingMode){case _.LIKE:O(s.messageId,()=>({rating:s.rating}));break;case _.SCALE:O(s.messageId,()=>({scaleRating:s.scaleRating,scaleMax:s.scaleMax}));break;default:throw new oe(s)}l(s)}},onSubmitFeedback:s=>{p&&(O(s.messageId,()=>({feedbackSubmitted:!0})),p(s))},InsideMessage:r,onContactClick:g,contactButtonText:i,reset:fe,onContentScroll:he,onContentWheel:pe,conversationId:ie}}const xe=({assistant:t,lookupAttribute:e,history:a,setInput:c,contentElRef:m,scrolledToTop:f,userContent:h,setUserContent:l,onSubmitMessage:p,supportsFeedback:r,onSubmitRating:g,onSubmitFeedback:i,InsideMessage:o,onContactClick:d,contactButtonText:C,reset:w,onContentScroll:D,onContentWheel:M,conversationId:S})=>{const k=a.some(E=>E.completed||E.failed);return n.createElement("div",{className:"userflowjs-assistant-chat"},n.createElement("div",{className:y({"userflowjs-assistant-chat__header":!0,"userflowjs-assistant-chat__header--content-scrolled":!f})}),n.createElement("div",{className:y({"userflowjs-assistant-chat__header":!0,"userflowjs-assistant-chat__header--content-scrolled":!f})},n.createElement(n.Fragment,null,n.createElement("h2",{className:"userflowjs-assistant-chat__title"},t.title),n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:w},t.resetText))),n.createElement("div",{ref:m,className:"userflowjs-assistant-chat__content",onScroll:D,onWheel:M},!ae(t.intro)&&n.createElement("div",{className:"userflowjs-assistant-chat__intro"},n.createElement(re,{doc:t.intro,lookupAttribute:e})),a.map((E,I)=>n.createElement(Le,{key:I,assistant:t,message:E,supportsFeedback:r,onSubmitRating:g,onSubmitFeedback:i,InsideMessage:o,conversationId:S,isLast:I===a.length-1}))),n.createElement("div",{className:"userflowjs-assistant-chat__prompt"},n.createElement(Ce,{textareaRef:c,placeholder:(a.length===0?t.promptEmptyPlaceholder:t.promptNonemptyPlaceholder)||"",value:h,onChange:l,onSubmit:()=>p(h)})),k&&d&&n.createElement("div",{className:"userflowjs-assistant-chat__contact"},n.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>d()},C)))},Le=({assistant:t,message:e,supportsFeedback:a,onSubmitRating:c,onSubmitFeedback:m,InsideMessage:f,conversationId:h,isLast:l})=>{const p=!ae(e.assistantFallbackContent);return n.createElement("div",{className:"userflowjs-assistant-chat__message"},f&&n.createElement(f,{message:e}),n.createElement("div",{className:y({"userflowjs-assistant-chat__user-content":!0,"userflowjs-assistant-chat__user-content--enter":!!e.enterAnimation}),"data-assistant-conversation-id":h,"data-assistant-message-id":e.id},n.createElement("div",{style:{whiteSpace:"pre-wrap"}},e.userContent)),e.warning&&n.createElement("div",{className:"userflowjs-assistant-chat__error"},"Warning: ",e.warning),n.createElement("div",{className:"userflowjs-assistant-chat__assistant-content"},p&&n.createElement("div",null,n.createElement(re,{doc:e.assistantFallbackContent})),!p&&n.createElement("div",null,n.createElement(Ae,{html:e.assistantHtml})),e.error&&n.createElement("div",{className:"userflowjs-assistant-chat__error"},e.error)),e.sources&&e.sources.length>0&&n.createElement("div",{className:"userflowjs-assistant-chat__sources"},n.createElement("div",{className:"userflowjs-assistant-chat__sources-title"},t.sourcesText),e.sources.map((r,g)=>n.createElement("a",{key:g,className:"userflowjs-assistant-chat__source",href:Se(r.url),target:"_blank",rel:"noreferrer noopener"},r.title))),a&&e.completed&&e.id&&(t.ratingMode===_.LIKE||t.ratingMode===_.SCALE&&l)&&n.createElement(Fe,{assistant:t,message:e,onSubmitRating:c,onSubmitFeedback:m}))},Fe=({assistant:t,message:e,onSubmitRating:a,onSubmitFeedback:c})=>{const m=u.useRef(null),[f,h]=u.useState(""),l=i=>{const o=e.id;o&&(ee.flushSync(()=>{a({ratingMode:_.LIKE,messageId:o,rating:i})}),m.current?.focus({preventScroll:!0}))},p=i=>{const o=e.id;o&&(ee.flushSync(()=>{a({ratingMode:_.SCALE,messageId:o,scaleRating:i,scaleMax:t.scaleMax})}),m.current?.focus({preventScroll:!0}))},r=()=>{e.id&&(c({messageId:e.id,feedback:f.trim()}),h(""))},g=t.ratingMode===_.LIKE?n.createElement("button",{className:"userflowjs-assistant-chat__rating-option",disabled:!0},n.createElement(W,{icon:e.rating==A.DISLIKE?q:Q})):e.scaleRating&&e.scaleMax&&n.createElement("button",{className:y({"userflowjs-assistant-chat__rating-option":!0,"userflowjs-assistant-chat__rating-option--scale":!0}),disabled:!0},le(t,e.scaleRating,e.scaleMax));return n.createElement("div",{className:`userflowjs-assistant-chat__rating userflowjs-assistant-chat__rating--${t.ratingMode}`},t.ratingMode===_.SCALE&&n.createElement("div",{className:"userflowjs-assistant-chat__rating-question"},t.scaleQuestion),e.feedbackSubmitted?n.createElement("div",{className:"userflowjs-assistant-chat__rating-thanks"},g,n.createElement("div",{className:"userflowjs-assistant-chat__rating-thanks-message"},t.feedbackThanksText)):(t.ratingMode===_.LIKE?e.rating:e.scaleRating)?n.createElement(je,{textareaRef:m,className:"userflowjs-growing-textarea userflowjs-assistant-chat__feedback-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea",placeholder:(t.ratingMode===_.LIKE?e.rating===A.LIKE?t.feedbackLikePlaceholder:t.feedbackDislikePlaceholder:t.scaleFeedbackPlaceholder)||"",value:f,onChange:h,onKeyDown:i=>{!i.shiftKey&&i.key==="Enter"&&(i.preventDefault(),r())}},g,n.createElement("button",{className:"userflowjs-assistant-chat__feedback-submit",onClick:()=>r()},n.createElement(W,{icon:ke}))):n.createElement("div",{className:"userflowjs-assistant-chat__rating-options"},t.ratingMode===_.LIKE?[A.LIKE,A.DISLIKE].map(i=>(!e.rating||e.rating===i)&&n.createElement("button",{key:i,className:"userflowjs-assistant-chat__rating-option",onClick:e.rating?void 0:()=>l(i),disabled:!!e.rating,"data-testid":`assistant-chat-rating-${i}`},n.createElement(W,{icon:i==A.DISLIKE?q:Q}))):ye(t).map(({value:i,label:o})=>n.createElement("button",{key:i,className:y({"userflowjs-assistant-chat__rating-option":!0,"userflowjs-assistant-chat__rating-option--large-scale":Re(o||"")}),onClick:e.scaleRating?void 0:()=>p(i),disabled:!!e.scaleRating,"data-testid":`assistant-chat-rating-${i}`},o))))};function B(t){let e=t;const a=f=>(f=f.replace(/\s*[*_`]*$/,""),f=f.replace(/(^|\n)\s*(\d+\.?|-|=)$/,""),f);e=a(e),e=e.replace(/\[([^\]\n]*)(\](\([^)\n]*)?)?$/,"$1"),e=a(e);const c=Array.from(e.matchAll(/\n( *)```/g));if(c.length%2===1){const f=c[c.length-1][1];e+=`
1
+ import{r as u,R as n}from"./vendor.react.js";import{ae as _,af as A,u as Y}from"./userflow.js";import{u as _e}from"./client-context.js";import{a5 as q,a6 as Q,a7 as ke,a8 as P,a9 as $,aa as V,ab as X,ac as Z}from"./vendor.fortawesome.pro-regular-svg-icons.js";import{p as we}from"./vendor.dompurify.js";import{m as Ie}from"./vendor.marked.js";import{o as y}from"./vendor.obj-str.js";import{A as je,d as Ce,G as Se}from"./ResourceCenterApp.js";import{j as ae,R as re}from"./use-selector-element-monitoring.js";import{D as W}from"./stylesheets.js";import{U as oe}from"./roots.js";import{r as ee}from"./vendor.react-dom.js";import"./vendor.core-js.js";import{g as Me}from"./flow-condition-types.js";import{u as ve}from"./vendor.react-i18next.js";import"./vendor.object-assign.js";import"./vendor.phoenix.js";import"./vendor.uuid.js";import"./vendor.i18next.js";import"./vendor.babel.runtime.js";import"./flow-host.styl.js";import"./Frame.js";import"./use-window-resize.js";import"./logomark.js";import"./ChecklistUI.js";import"./vendor.fortawesome.pro-solid-svg-icons.js";import"./FlowChrome.js";import"./vendor.canvas-confetti.js";import"./vendor.memoize-one.js";import"./vendor.bignumber.js.js";import"./use-element-rect.js";import"./vendor.scheduler.js";import"./vendor.date-fns.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="9a1bc5ce-2115-4fa6-a6a3-a4f485dcb82a",t._sentryDebugIdIdentifier="sentry-dbid-9a1bc5ce-2115-4fa6-a6a3-a4f485dcb82a")}catch{}})();function Re(t){const e=Intl.Segmenter;return e?/(\p{Emoji_Presentation}|\p{Extended_Pictographic})(\p{Emoji_Modifier_Base}?\p{Emoji_Modifier}?|\uFE0F\u200D(\p{Emoji_Modifier_Base}\p{Emoji_Modifier}?\uFE0F\u200D)*\p{Emoji_Presentation}|\uFE0F\u200D\p{Extended_Pictographic})/u.test(t)&&[...new e().segment(t)].length===1:!1}const te=[];function Ne({assistant:t,lookupAttribute:e,initialConversationId:a,initialHistory:c,initialUserContent:m,onConversationIdChange:f,submitMessage:h,submitRating:l,submitFeedback:p,InsideMessage:r,onContactClick:g,contactButtonText:i}){const[o,d]=u.useState(null),[j,w]=u.useState(()=>c?c.map(s=>({...s,assistantHtml:x(B(s.assistantContent),!1)})):te),[D,M]=u.useState(""),C=u.useRef(null),k=u.useRef(null),E=u.useRef(!0),I=u.useRef(a||null),[ie,ue]=u.useState(I.current),H=u.useCallback(s=>{I.current=s,ue(s),f&&f(s)},[f]),T=u.useCallback(()=>{o?.focus({preventScroll:!0})},[o]);u.useEffect(()=>{T()},[T]),u.useLayoutEffect(()=>{const s=k.current;s&&(s.scrollTop=Math.ceil(s.scrollHeight-s.clientHeight))},[]);const K=u.useCallback(()=>{const s=k.current;s&&(E.current=!0,typeof s.scrollTo=="function"&&s.scrollTo({top:Math.ceil(s.scrollHeight-s.clientHeight),behavior:"smooth"}))},[]),G=u.useRef(0);u.useLayoutEffect(()=>{const s=k.current;s&&s.scrollHeight!==G.current&&(G.current=s.scrollHeight,E.current&&K())},[j,K]);const N=u.useCallback(()=>{C.current&&C.current()},[]);u.useEffect(()=>()=>{N()},[N]);const O=(s,R)=>{w(S=>S.map(v=>{if(s===v.id){const b=R(v);return{...v,...b}}else return v}))},L=s=>{w(R=>R.map((S,v)=>{if(v===R.length-1){const b=s(S);return{...S,...b}}else return S}))},U=u.useCallback(async s=>{if(s=s.trim(),s==="")return;N(),w(b=>[...b,{id:null,userContent:s,assistantContent:"",assistantFallbackContent:null,assistantHtml:x("","enter"),enterAnimation:!0,sources:[],completed:!1,rating:null,scaleRating:null,scaleMax:null,feedbackSubmitted:!1}]),M(""),K();let R=!1;const S=()=>{R=!0,C.current=null},v=h({conversationId:I.current,userContent:s,callback:b=>{if(R){console.log("Userflow.js AssistantChat got message after being done",b);return}switch(b.kind){case"conversation_created":H(b.conversationId);break;case"message_created":L(()=>({id:b.messageId,warning:b.warning}));break;case"assistant_content_delta":L(F=>{const ge=b.delta,J=F.assistantContent+ge,be=B(J),Ee=x(be);return{assistantContent:J,assistantHtml:Ee}});break;case"done":S(),L(F=>({assistantHtml:x(F.assistantContent,"exit"),assistantFallbackContent:b.fallbackContent,completed:!0,sources:b.sources}));break;case"error":S(),L(F=>({failed:!0,error:b.message,assistantHtml:x(B(F.assistantContent),!1)}));break;default:console.log("Userflow.js AssistantChat got unknown message",b)}}});C.current=()=>{S(),v.abort(),L(b=>({assistantHtml:x(B(b.assistantContent),!1)}))}},[N,K,h,H]),z=u.useRef(!1);u.useEffect(()=>{z.current||(z.current=!0,m&&U(m))},[U,m]);const fe=u.useCallback(()=>{N(),H(null),w(te),T()},[N,T,H]),[de,me]=u.useState(!0),he=u.useCallback(()=>{const s=k.current;s&&me(s.scrollTop===0)},[]),pe=u.useCallback(()=>{const s=k.current;s&&(E.current=Math.ceil(s.scrollHeight-s.clientHeight)==Math.ceil(s.scrollTop))},[]);return{assistant:t,lookupAttribute:e,history:j,setInput:d,contentElRef:k,scrolledToTop:de,userContent:D,setUserContent:M,onSubmitMessage:U,supportsFeedback:!!l&&!!p,onSubmitRating:s=>{if(l){switch(s.ratingMode){case _.LIKE:O(s.messageId,()=>({rating:s.rating}));break;case _.SCALE:O(s.messageId,()=>({scaleRating:s.scaleRating,scaleMax:s.scaleMax}));break;default:throw new oe(s)}l(s)}},onSubmitFeedback:s=>{p&&(O(s.messageId,()=>({feedbackSubmitted:!0})),p(s))},InsideMessage:r,onContactClick:g,contactButtonText:i,reset:fe,onContentScroll:he,onContentWheel:pe,conversationId:ie}}const xe=({assistant:t,lookupAttribute:e,history:a,setInput:c,contentElRef:m,scrolledToTop:f,userContent:h,setUserContent:l,onSubmitMessage:p,supportsFeedback:r,onSubmitRating:g,onSubmitFeedback:i,InsideMessage:o,onContactClick:d,contactButtonText:j,reset:w,onContentScroll:D,onContentWheel:M,conversationId:C})=>{const k=a.some(E=>E.completed||E.failed);return n.createElement("div",{className:"userflowjs-assistant-chat"},n.createElement("div",{className:y({"userflowjs-assistant-chat__header":!0,"userflowjs-assistant-chat__header--content-scrolled":!f})}),n.createElement("div",{className:y({"userflowjs-assistant-chat__header":!0,"userflowjs-assistant-chat__header--content-scrolled":!f})},n.createElement(n.Fragment,null,n.createElement("h2",{className:"userflowjs-assistant-chat__title"},t.title),n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--default",onClick:w},t.resetText))),n.createElement("div",{ref:m,className:"userflowjs-assistant-chat__content",onScroll:D,onWheel:M},!ae(t.intro)&&n.createElement("div",{className:"userflowjs-assistant-chat__intro"},n.createElement(re,{doc:t.intro,lookupAttribute:e})),a.map((E,I)=>n.createElement(Le,{key:I,assistant:t,message:E,supportsFeedback:r,onSubmitRating:g,onSubmitFeedback:i,InsideMessage:o,conversationId:C,isLast:I===a.length-1}))),n.createElement("div",{className:"userflowjs-assistant-chat__prompt"},n.createElement(je,{textareaRef:c,placeholder:(a.length===0?t.promptEmptyPlaceholder:t.promptNonemptyPlaceholder)||"",value:h,onChange:l,onSubmit:()=>p(h)})),k&&d&&n.createElement("div",{className:"userflowjs-assistant-chat__contact"},n.createElement("button",{className:"userflowjs-tertiary-button",onClick:()=>d()},j)))},Le=({assistant:t,message:e,supportsFeedback:a,onSubmitRating:c,onSubmitFeedback:m,InsideMessage:f,conversationId:h,isLast:l})=>{const p=!ae(e.assistantFallbackContent);return n.createElement("div",{className:"userflowjs-assistant-chat__message"},f&&n.createElement(f,{message:e}),n.createElement("div",{className:y({"userflowjs-assistant-chat__user-content":!0,"userflowjs-assistant-chat__user-content--enter":!!e.enterAnimation}),"data-assistant-conversation-id":h,"data-assistant-message-id":e.id},n.createElement("div",{style:{whiteSpace:"pre-wrap"}},e.userContent)),e.warning&&n.createElement("div",{className:"userflowjs-assistant-chat__error"},"Warning: ",e.warning),n.createElement("div",{className:"userflowjs-assistant-chat__assistant-content"},p&&n.createElement("div",null,n.createElement(re,{doc:e.assistantFallbackContent})),!p&&n.createElement("div",null,n.createElement(Ae,{html:e.assistantHtml})),e.error&&n.createElement("div",{className:"userflowjs-assistant-chat__error"},e.error)),e.sources&&e.sources.length>0&&n.createElement("div",{className:"userflowjs-assistant-chat__sources"},n.createElement("div",{className:"userflowjs-assistant-chat__sources-title"},t.sourcesText),e.sources.map((r,g)=>n.createElement("a",{key:g,className:"userflowjs-assistant-chat__source",href:Ce(r.url),target:"_blank",rel:"noreferrer noopener"},r.title))),a&&e.completed&&e.id&&(t.ratingMode===_.LIKE||t.ratingMode===_.SCALE&&l)&&n.createElement(Fe,{assistant:t,message:e,onSubmitRating:c,onSubmitFeedback:m}))},Fe=({assistant:t,message:e,onSubmitRating:a,onSubmitFeedback:c})=>{const m=u.useRef(null),[f,h]=u.useState(""),l=i=>{const o=e.id;o&&(ee.flushSync(()=>{a({ratingMode:_.LIKE,messageId:o,rating:i})}),m.current?.focus({preventScroll:!0}))},p=i=>{const o=e.id;o&&(ee.flushSync(()=>{a({ratingMode:_.SCALE,messageId:o,scaleRating:i,scaleMax:t.scaleMax})}),m.current?.focus({preventScroll:!0}))},r=()=>{e.id&&(c({messageId:e.id,feedback:f.trim()}),h(""))},g=t.ratingMode===_.LIKE?n.createElement("button",{className:"userflowjs-assistant-chat__rating-option",disabled:!0},n.createElement(W,{icon:e.rating==A.DISLIKE?q:Q})):e.scaleRating&&e.scaleMax&&n.createElement("button",{className:y({"userflowjs-assistant-chat__rating-option":!0,"userflowjs-assistant-chat__rating-option--scale":!0}),disabled:!0},le(t,e.scaleRating,e.scaleMax));return n.createElement("div",{className:`userflowjs-assistant-chat__rating userflowjs-assistant-chat__rating--${t.ratingMode}`},t.ratingMode===_.SCALE&&n.createElement("div",{className:"userflowjs-assistant-chat__rating-question"},t.scaleQuestion),e.feedbackSubmitted?n.createElement("div",{className:"userflowjs-assistant-chat__rating-thanks"},g,n.createElement("div",{className:"userflowjs-assistant-chat__rating-thanks-message"},t.feedbackThanksText)):(t.ratingMode===_.LIKE?e.rating:e.scaleRating)?n.createElement(Se,{textareaRef:m,className:"userflowjs-growing-textarea userflowjs-assistant-chat__feedback-textarea",mirrorClassName:"userflowjs-growing-textarea__mirror",textareaClassName:"userflowjs-textarea",placeholder:(t.ratingMode===_.LIKE?e.rating===A.LIKE?t.feedbackLikePlaceholder:t.feedbackDislikePlaceholder:t.scaleFeedbackPlaceholder)||"",value:f,onChange:h,onKeyDown:i=>{!i.shiftKey&&i.key==="Enter"&&(i.preventDefault(),r())}},g,n.createElement("button",{className:"userflowjs-assistant-chat__feedback-submit",onClick:()=>r()},n.createElement(W,{icon:ke}))):n.createElement("div",{className:"userflowjs-assistant-chat__rating-options"},t.ratingMode===_.LIKE?[A.LIKE,A.DISLIKE].map(i=>(!e.rating||e.rating===i)&&n.createElement("button",{key:i,className:"userflowjs-assistant-chat__rating-option",onClick:e.rating?void 0:()=>l(i),disabled:!!e.rating,"data-testid":`assistant-chat-rating-${i}`},n.createElement(W,{icon:i==A.DISLIKE?q:Q}))):ye(t).map(({value:i,label:o})=>n.createElement("button",{key:i,className:y({"userflowjs-assistant-chat__rating-option":!0,"userflowjs-assistant-chat__rating-option--large-scale":Re(o||"")}),onClick:e.scaleRating?void 0:()=>p(i),disabled:!!e.scaleRating,"data-testid":`assistant-chat-rating-${i}`},o))))};function B(t){let e=t;const a=f=>(f=f.replace(/\s*[*_`]*$/,""),f=f.replace(/(^|\n)\s*(\d+\.?|-|=)$/,""),f);e=a(e),e=e.replace(/\[([^\]\n]*)(\](\([^)\n]*)?)?$/,"$1"),e=a(e);const c=Array.from(e.matchAll(/\n( *)```/g));if(c.length%2===1){const f=c[c.length-1][1];e+=`
2
2
  `+f+"```"}else{let f=0;for(let r=e.length-1;r>=0;r--)if(e[r]===`
3
3
  `&&e[r-1]===`
4
- `){f=r;break}const h=[];let l=!1;const p=r=>r==null||r.match(/\W/);for(let r=f;r<e.length;r++){const g=e[r],i=g+e[r+1],o=i+e[r+2];let d=null;!l&&o==="***"||!l&&o==="___"&&(p(e[r-1])||p(e[r+3]))?d=o:!l&&i==="**"||!l&&i==="__"&&(p(e[r-1])||p(e[r+2]))?d=i:(!l&&g==="*"||!l&&g==="_"&&(p(e[r-1])||p(e[r+1]))||g==="`")&&(d=g),d!=null&&(e.slice(f,r+d.length).match(/\[[^\]\n]*\]\([^)\n]*$/)||(h[h.length-1]===d?(d==="`"&&(l=!1),h.pop()):(d==="`"&&(l=!0),h.push(d))),r+=d.length-1)}e+=h.reverse().join("")}return e}function x(t,e){t=t.trim(),e!==!1&&(t=t.replace(/(\n *```)?$/," {{USERFLOWCHATBRAIN}}$1"));let a=we.sanitize(Ie.parse(t));if(e!==!1){let c="userflowjs-assistant-brain";e&&(c+=` userflowjs-assistant-brain--${e}`),a=a.replace("{{USERFLOWCHATBRAIN}}",`<span class="${c}"><span></span><span></span><span></span><span></span></span>`)}return a=a.replace(/<a href=/g,'<a target="_blank" rel="noopener noreferrer" href='),a}const Ae=({html:t})=>u.useMemo(()=>{if(!t)return null;const a=new DOMParser().parseFromString(t,"text/html");return ce(a.body)},[t]);function ce(t,e){if(t instanceof Element){if(t.tagName==="BODY")return n.createElement(n.Fragment,{key:e},se(t));{if(["script","style"].includes(t.tagName))return null;const a={key:e};for(const c of t.attributes){let m=c.name;m.startsWith("on")||(m==="class"&&(m="className"),a[m]=c.value)}return n.createElement(t.tagName.toLowerCase(),a,se(t))}}else return t instanceof Text?t.textContent:null}function se(t){const e=[];let a=0;for(const c of t.childNodes)e.push(ce(c,a)),a++;return e}function ye(t){let e=[];const a=t.scaleMax||5;for(let c=1;c<=a;c++)e.push({value:c,label:le(t,c,a)});return e}function le(t,e,a){if(t.scaleLabels)return t.scaleLabels[e-1]||e;{const c=ne[a]&&ne[a][e];return c?n.createElement(W,{icon:c,size:24}):e}}const ne={2:{1:P,2:$},3:{1:P,2:V,3:$},4:{1:X,2:P,3:$,4:Z},5:{1:X,2:P,3:V,4:$,5:Z}},gt=({block:t,session:e,assistantReply:a,initialUserContent:c,onContactClick:m,contactButtonText:f})=>{const h=t.assistantFlowId,l=_e(),{t:p}=ve(),r=p("assistant.generic_error"),g=p("assistant.disconnected_error"),i=Ne(u.useMemo(()=>({assistant:a.assistant,lookupAttribute:Me(e.data),initialConversationId:a.conversationId,initialHistory:a.history,initialUserContent:c,onConversationIdChange:o=>{const d="assistantConversationId:"+h;o?Y.setItem(d,o):Y.removeItem(d)},submitMessage:({conversationId:o,userContent:d,callback:C})=>{l.assistantMessageInProgress=!0;const w=l.nextRef();l.send({kind:"SubmitAssistantMessage",ref:w,assistantFlowId:h,conversationId:o,userContent:d},{handlesRejection:!0}).catch(E=>{C({kind:"error",message:E.humanMessage||r})});const M=()=>{l.assistantMessageInProgress=void 0,l.off("private:assistantMessageEvent",S),l.off("private:disconnect",k)},S=E=>{if(E.ref!==w)return;const{event:I}=E;C(I),(I.kind=="done"||I.kind=="error")&&M()},k=()=>{C({kind:"error",message:g}),M()};return l.on("private:assistantMessageEvent",S),l.on("private:disconnect",k),{abort:()=>{l.send({kind:"AbortAssistantMessage"}),M()}}},submitRating:o=>{switch(o.ratingMode){case _.LIKE:l.send({kind:"SubmitAssistantRating",messageId:o.messageId,rating:o.rating});break;case _.SCALE:l.send({kind:"SubmitAssistantScaleRating",messageId:o.messageId,scaleRating:o.scaleRating,scaleMax:o.scaleMax});break;default:throw new oe(o)}},submitFeedback:o=>{l.send({kind:"SubmitAssistantFeedback",messageId:o.messageId,feedback:o.feedback})},onContactClick:m,contactButtonText:f}),[a,h,l,c,e.data,m,f,r,g]));return n.createElement(n.Fragment,null,n.createElement(xe,{...i}))};export{gt as ResourceCenterAssistantChat};
4
+ `){f=r;break}const h=[];let l=!1;const p=r=>r==null||r.match(/\W/);for(let r=f;r<e.length;r++){const g=e[r],i=g+e[r+1],o=i+e[r+2];let d=null;!l&&o==="***"||!l&&o==="___"&&(p(e[r-1])||p(e[r+3]))?d=o:!l&&i==="**"||!l&&i==="__"&&(p(e[r-1])||p(e[r+2]))?d=i:(!l&&g==="*"||!l&&g==="_"&&(p(e[r-1])||p(e[r+1]))||g==="`")&&(d=g),d!=null&&(e.slice(f,r+d.length).match(/\[[^\]\n]*\]\([^)\n]*$/)||(h[h.length-1]===d?(d==="`"&&(l=!1),h.pop()):(d==="`"&&(l=!0),h.push(d))),r+=d.length-1)}e+=h.reverse().join("")}return e}function x(t,e){t=t.trim(),e!==!1&&(t=t.replace(/(\n *```)?$/," {{USERFLOWCHATBRAIN}}$1"));let a=we.sanitize(Ie.parse(t));if(e!==!1){let c="userflowjs-assistant-brain";e&&(c+=` userflowjs-assistant-brain--${e}`),a=a.replace("{{USERFLOWCHATBRAIN}}",`<span class="${c}"><span></span><span></span><span></span><span></span></span>`)}return a=a.replace(/<a href=/g,'<a target="_blank" rel="noopener noreferrer" href='),a}const Ae=({html:t})=>u.useMemo(()=>{if(!t)return null;const a=new DOMParser().parseFromString(t,"text/html");return ce(a.body)},[t]);function ce(t,e){if(t instanceof Element){if(t.tagName==="BODY")return n.createElement(n.Fragment,{key:e},se(t));{if(["script","style"].includes(t.tagName))return null;const a={key:e};for(const c of t.attributes){let m=c.name;m.startsWith("on")||(m==="class"&&(m="className"),a[m]=c.value)}return n.createElement(t.tagName.toLowerCase(),a,se(t))}}else return t instanceof Text?t.textContent:null}function se(t){const e=[];let a=0;for(const c of t.childNodes)e.push(ce(c,a)),a++;return e}function ye(t){let e=[];const a=t.scaleMax||5;for(let c=1;c<=a;c++)e.push({value:c,label:le(t,c,a)});return e}function le(t,e,a){if(t.scaleLabels)return t.scaleLabels[e-1]||e;{const c=ne[a]&&ne[a][e];return c?n.createElement(W,{icon:c,size:24}):e}}const ne={2:{1:P,2:$},3:{1:P,2:V,3:$},4:{1:X,2:P,3:$,4:Z},5:{1:X,2:P,3:V,4:$,5:Z}},gt=({block:t,session:e,assistantReply:a,initialUserContent:c,onContactClick:m,contactButtonText:f})=>{const h=t.assistantFlowId,l=_e(),{t:p}=ve(),r=p("assistant.generic_error"),g=p("assistant.disconnected_error"),i=Ne(u.useMemo(()=>({assistant:a.assistant,lookupAttribute:Me(e.data),initialConversationId:a.conversationId,initialHistory:a.history,initialUserContent:c,onConversationIdChange:o=>{const d="assistantConversationId:"+h;o?Y.setItem(d,o):Y.removeItem(d)},submitMessage:({conversationId:o,userContent:d,callback:j})=>{l.assistantMessageInProgress=!0;const w=l.nextRef();l.send({kind:"SubmitAssistantMessage",ref:w,assistantFlowId:h,conversationId:o,userContent:d},{handlesRejection:!0}).catch(E=>{j({kind:"error",message:E.humanMessage||r})});const M=()=>{l.assistantMessageInProgress=void 0,l.off("private:assistantMessageEvent",C),l.off("private:disconnect",k)},C=E=>{if(E.ref!==w)return;const{event:I}=E;j(I),(I.kind=="done"||I.kind=="error")&&M()},k=()=>{j({kind:"error",message:g}),M()};return l.on("private:assistantMessageEvent",C),l.on("private:disconnect",k),{abort:()=>{l.send({kind:"AbortAssistantMessage"}),M()}}},submitRating:o=>{switch(o.ratingMode){case _.LIKE:l.send({kind:"SubmitAssistantRating",messageId:o.messageId,rating:o.rating});break;case _.SCALE:l.send({kind:"SubmitAssistantScaleRating",messageId:o.messageId,scaleRating:o.scaleRating,scaleMax:o.scaleMax});break;default:throw new oe(o)}},submitFeedback:o=>{l.send({kind:"SubmitAssistantFeedback",messageId:o.messageId,feedback:o.feedback})},onContactClick:m,contactButtonText:f}),[a,h,l,c,e.data,m,f,r,g]));return n.createElement(n.Fragment,null,n.createElement(xe,{...i}))};export{gt as ResourceCenterAssistantChat};
5
5
  //# sourceMappingURL=ResourceCenterAssistantChat.js.map
package/Trigger.js CHANGED
@@ -1,2 +1,2 @@
1
- import{r}from"./vendor.react.js";import{j as i,c,h as f}from"./use-selector-element-monitoring.js";import{u}from"./client-context.js";import"./vendor.core-js.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="68202b44-5b23-40b0-9077-5c73943f78c8",e._sentryDebugIdIdentifier="sentry-dbid-68202b44-5b23-40b0-9077-5c73943f78c8")}catch{}})();const y=({trigger:e})=>{const s=u(),n=i(),t=r.useRef(!1),o=c(e.condition);return r.useLayoutEffect(()=>{o&&!t.current&&(t.current=!0,f(s,n,e.actions))},[o,t,s,n,e.actions]),null};export{y as T};
1
+ import{r}from"./vendor.react.js";import{u as f,e as i,h as a}from"./use-selector-element-monitoring.js";import{u as d}from"./client-context.js";import"./vendor.core-js.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},s=new Error().stack;s&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[s]="0d78a8f3-8df3-4aaf-8a9f-24e6beb2271c",e._sentryDebugIdIdentifier="sentry-dbid-0d78a8f3-8df3-4aaf-8a9f-24e6beb2271c")}catch{}})();const y=({trigger:e})=>{const s=d(),n=f(),t=r.useRef(!1),o=i(e.condition);return r.useLayoutEffect(()=>{o&&!t.current&&(t.current=!0,a(s,n,e.actions))},[o,t,s,n,e.actions]),null};export{y as T};
2
2
  //# sourceMappingURL=Trigger.js.map
package/hash.txt CHANGED
@@ -1 +1 @@
1
- 5e38c3023111d98072076c77a72ad706210e6d92
1
+ 9ba2b772a02e51e4ca4ebd19dccd76465375424b
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "userflow.js-self-hosted",
3
- "version": "0.1.1016675",
3
+ "version": "0.1.1016698",
4
4
  "description": "Self-hosted version of Userflow.js",
5
5
  "main": "userflow.js"
6
6
  }
@@ -1,4 +1,4 @@
1
- import{R as n,r as p}from"./vendor.react.js";import{c as We,g as Ve,a as Ne,b as Se,o as ze}from"./flow-condition-types.js";import{c as Ke,D as Z}from"./stylesheets.js";import"./vendor.core-js.js";import{o as O}from"./vendor.obj-str.js";import{l as de,a3 as Ge,a4 as He,r as A,a5 as Ce,t as ye,E as oe,a6 as I,U as Je,K as S,d as Qe}from"./userflow.js";import{c as Y}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{u as Xe}from"./vendor.react-i18next.js";import{u as je}from"./client-context.js";import{l as Ze,v as Ye,u as et,r as Te,p as tt,j as ke,e as nt,d as rt}from"./roots.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="6e1413d5-ea3f-4889-a68d-5a0e684734cc",e._sentryDebugIdIdentifier="sentry-dbid-6e1413d5-ea3f-4889-a68d-5a0e684734cc")}catch{}})();const st=n.createContext(null);function be(){const e=p.useContext(st);if(!e)throw new Error("useSession: Session was not set");return e}function at(){const e=be();if(e.kind!=="flow")throw new Error("useFlowSession: Wrong session kind");return e}function lt(e){const t=p.useRef(e),r=p.useRef(e);return e!==r.current&&JSON.stringify(e)!==JSON.stringify(r.current)&&(t.current=e),r.current=e,t.current}function _e(e){const t=be(),[r,i]=p.useState(!1),s=Ke(t.data),l=lt(e);return p.useLayoutEffect(()=>{if(l)return We[l.type].track({sessionData:s,condition:l,callback:h=>{i(h)}})},[s,l]),l==null?!1:r}const it=({appearance:e,hidden:t,disabled:r,onMouseDown:i,onClick:s,text:l,active:a,children:c})=>n.createElement("button",{className:O({[It(e)]:!0,"userflowjs-bubble-button--hidden":!!t,"userflowjs-bubble-button--active":!!a}),onMouseDown:i,onClick:s,disabled:r},c||n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},l));function ot(e){const t=He(),r=new URL(e,t).toString();t!==r&&(de.customNavigate?de.customNavigate(e):window.setTimeout(()=>{Ge(e)},0))}async function ue(e,t,r){const{steps:i}=t.version;switch(r.type){case A.CLOSE_FLOW:switch(t.kind){case"launcher":await e.dismissLauncher(t,{endReason:oe.ACTION});break;case"banner":case"flow":case"checklist":await e.endFlow(t,{endReason:oe.ACTION});break}return;case A.EVAL_JS:if(de.evalJsDisabled){console.error('Userflow.js: Blocked "Evaluate JavaScript" action from running, since userflow.disableEvalJs() has been called.');return}try{const s=Ne(r.code||"",t.data);new Function(`"use strict";
1
+ import{R as n,r as p}from"./vendor.react.js";import{c as We,g as Ve,a as Ne,b as Se,o as ze}from"./flow-condition-types.js";import{c as Ke,D as Z}from"./stylesheets.js";import"./vendor.core-js.js";import{o as O}from"./vendor.obj-str.js";import{l as de,a3 as Ge,a4 as He,r as A,a5 as Ce,t as ye,E as oe,a6 as I,U as Je,K as S,d as Qe}from"./userflow.js";import{c as Y}from"./vendor.fortawesome.pro-solid-svg-icons.js";import{u as Xe}from"./vendor.react-i18next.js";import{u as je}from"./client-context.js";import{l as Ze,v as Ye,u as et,r as Te,p as tt,j as ke,e as nt,d as rt}from"./roots.js";(function(){try{var e=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},t=new Error().stack;t&&(e._sentryDebugIds=e._sentryDebugIds||{},e._sentryDebugIds[t]="c81535f3-b37a-4426-baec-9149c5f96006",e._sentryDebugIdIdentifier="sentry-dbid-c81535f3-b37a-4426-baec-9149c5f96006")}catch{}})();const st=n.createContext(null);function be(){const e=p.useContext(st);if(!e)throw new Error("useSession: Session was not set");return e}function at(){const e=be();if(e.kind!=="flow")throw new Error("useFlowSession: Wrong session kind");return e}function lt(e){const t=p.useRef(e),r=p.useRef(e);return e!==r.current&&JSON.stringify(e)!==JSON.stringify(r.current)&&(t.current=e),r.current=e,t.current}function _e(e){const t=be(),[r,i]=p.useState(!1),s=Ke(t.data),l=lt(e);return p.useLayoutEffect(()=>{if(l)return We[l.type].track({sessionData:s,condition:l,callback:h=>{i(h)}})},[s,l]),l==null?!1:r}const it=({appearance:e,hidden:t,disabled:r,onMouseDown:i,onClick:s,text:l,active:a,children:c})=>n.createElement("button",{className:O({[It(e)]:!0,"userflowjs-bubble-button--hidden":!!t,"userflowjs-bubble-button--active":!!a}),onMouseDown:i,onClick:s,disabled:r},c||n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},l));function ot(e){const t=He(),r=new URL(e,t).toString();t!==r&&(de.customNavigate?de.customNavigate(e):window.setTimeout(()=>{Ge(e)},0))}async function ue(e,t,r){const{steps:i}=t.version;switch(r.type){case A.CLOSE_FLOW:switch(t.kind){case"launcher":await e.dismissLauncher(t,{endReason:oe.ACTION});break;case"banner":case"flow":case"checklist":await e.endFlow(t,{endReason:oe.ACTION});break}return;case A.EVAL_JS:if(de.evalJsDisabled){console.error('Userflow.js: Blocked "Evaluate JavaScript" action from running, since userflow.disableEvalJs() has been called.');return}try{const s=Ne(r.code||"",t.data);new Function(`"use strict";
2
2
  `+s)()}catch(s){console.error(`Userflow.js: Evaluate JavaScript action failed.
3
3
 
4
4
  Error:
@@ -7,5 +7,5 @@ ${s.stack||s.message||s}
7
7
  Code:
8
8
  ${r.code}`)}return;case A.GO_TO_STEP:{if(t.kind!=="flow")return;const s=i.find(({crossVersionId:l})=>l===r.stepCvid);if(!s)throw new Je("Action points to unknown step: "+r.stepCvid);await e.goToStep(t,s);return}case A.NAVIGATE:{if(!r.url){console.warn("Userflow.js: NAVIGATE action is missing url property");return}const s=z(r.url,{lookupAttribute:Ve(t.data)});r.navigateTarget===Ce.NEW_TAB?window.open(s):ot(s);return}case A.SET_ATTRIBUTE:{let s;const l=r.attributeValue||"";switch(r.attributeOperation){case I.SET:s={set:l};break;case I.SET_DATETIME:s={set:new Date().toISOString()};break;case I.SET_DATETIME_ONCE:s={set_once:new Date().toISOString()};break;case I.SET_ONCE:s={set_once:l};break;case I.ADD:s={add:l};break;case I.SUBTRACT:s={subtract:l};break;case I.APPEND:s={append:l};break;case I.PREPEND:s={prepend:l};break;case I.REMOVE:s={remove:l};break;case I.UNSET:s={set:null};break;default:return}const a=r.attributeFqn||"",c=a.split("/");c.length===1?e.updateUser({[a]:s}):c[0]==="group"?e.updateGroup({[c[1]]:s}):c[0]==="group_membership"&&e.updateGroup({},{membership:{[c[1]]:s}});return}case A.SNOOZE:t.kind==="flow"&&r.timeValue&&r.timeUnit&&(e.endFlow(t,{endReason:oe.SNOOZED,batch:!0}),t.draftMode?window.alert(`In preview mode, flows can't be snoozed.
9
9
 
10
- But if this flow was running in published mode, the flow would now be snoozed for ${r.timeValue} ${r.timeUnit.toLowerCase()+(r.timeValue===1?"":"s")}.`):e.send({kind:"Snooze",flowId:t.flow.id,timeValue:r.timeValue,timeUnit:r.timeUnit},{batch:!0}));return;case A.START_FLOW:t.kind==="launcher"&&e.deactivateLauncher(t),r.otherFlow?await e.startFlow({flowId:r.otherFlow.id,stepCvid:r.otherFlowStepCvid,startReason:t.draftMode?ye.DRAFT:ye.ACTION,replaceCurrent:!0}):console.warn("Userflow.js: START_FLOW action is missing other flow");return;case A.TRACK_BUTTON_EVENT:{let s=null,l=t?t.id:null;if(t.kind==="flow"){const{currentStep:a}=t;s=a?a?.crossVersionId:null}if(r.buttonEvent){const{eventName:a,token:c}=r.buttonEvent;await e.trackButtonEvent(a,c,s,l)}return}}}async function Ie(e,t,r){const i=[],s=[],l=[];for(const a of r)a.type===A.NAVIGATE?a.navigateTarget===Ce.NEW_TAB?i.push(a):l.push(a):s.push(a);for(const a of i)ue(e,t,a);await Promise.all(s.map(a=>ue(e,t,a)));for(const a of l)ue(e,t,a)}const ut=({button:e})=>{const t=je(),r=be(),i=_e(e.disabledCondition),s=_e(e.hiddenCondition);return n.createElement(it,{appearance:e.appearance,hidden:s,disabled:i,onClick:()=>Ie(t,r,e.actions),text:Ne(e.text,r.data)})},ct=()=>n.createElement("svg",{viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"},n.createElement("polygon",{className:"userflowjs-star-shape",fill:"#fff",points:"16 22.7785728 7.18322122 29.1352549 10.5042507 18.7856772 1.73415226 12.3647451 12.6034401 12.3250364 16 2 19.3965599 12.3250364 30.2658477 12.3647451 21.4957493 18.7856772 24.8167788 29.1352549"})),mt=({type:e,required:t,placeholder:r,buttonText:i,options:s,otherOption:l,multipleSelection:a,shuffleOptions:c,labelLeft:h,labelCenter:d,labelRight:g,minValue:m,maxValue:v,onSubmit:E,inert:b})=>{const{t:f}=Xe(),_=p.useRef(null),[u,x]=p.useState(""),[R,K]=p.useState(new Set),[C,U]=p.useState(),[G,Q]=p.useState(),[k,H]=p.useState(!1),[y,ne]=p.useState(!1),[D,q]=p.useState(null),M=p.useMemo(()=>s&&(c?[...s].sort(()=>Math.random()-.5):s),[s,c]),L=o=>{if(!(b||!E)){if(t&&u===""&&[S.MULTILINE_TEXT,S.TEXT].includes(e)){q(f("question.requiredError")),re();return}ne(!0),q(null),E({...o,onCancel:()=>{ne(!1)},onError:T=>{ne(!1),q(T||"Sorry, something went wrong saving your answer. Please try again.")}})}},re=p.useCallback(()=>{b||!_.current||_.current.focus()},[b]),[pe,ge]=p.useState(!1);p.useEffect(()=>{pe&&(re(),ge(!1))},[re,pe]);const ve=n.createElement("div",{className:"userflowjs-bubble-buttons"},n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>L({answer:{kind:"text",value:u}}),tabIndex:b?-1:void 0,disabled:y},n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},i||f("question.submit"))));let j=null,X=0;if(e===S.NPS)h=h||f("question.npsLabelLeft"),g=g||f("question.npsLabelRight"),j=[0,1,2,3,4,5,6,7,8,9,10],X=j.length;else if([S.SCALE,S.STARS].includes(e)){m=m??1,v=v??5,j=[];for(let o=m;o<=v;o++)j.push(o);X=j.length}else e===S.MULTIPLE_CHOICE&&(X=(M?M.length:0)+(l&&!k?1:0));const[Ee,Be]=p.useState(-1),F=Ee===-1?-1:Math.min(Ee,X-1),se=o=>{if(!o.target.closest('[role="radio"], [role="checkbox"], [role="radiogroup"], [role="group"]'))return;let N=null;if(o.key==="ArrowRight"||o.key==="ArrowDown"?N=1:(o.key==="ArrowLeft"||o.key==="ArrowUp")&&(N=-1),N!=null){o.preventDefault();const W=o.currentTarget.querySelectorAll('[role="radio"], [role="checkbox"]');let w=F+N;w<0?w=W.length-1:w>W.length-1&&(w=0),Be(w),W[w].focus()}};let ae=null,le=null;if(j&&(h||d||g)){const o=[];h&&o.push(j[0],h),g&&o.push(j[j.length-1],g),ae=n.createElement("div",{id:"a11y-scale-labels",className:"userflowjs-a11y-only"},o.join(", ")),le=n.createElement("div",{id:"userflowjs-bubble-question-labels",className:"userflowjs-bubble-question__scale-labels","aria-hidden":"true"},n.createElement("div",{className:"userflowjs-bubble-question__scale-label"},h),d&&n.createElement("div",{className:"userflowjs-bubble-question__scale-label userflowjs-bubble-question__scale-label--center"},d),n.createElement("div",{className:"userflowjs-bubble-question__scale-label userflowjs-bubble-question__scale-label--right"},g))}let P;switch(e){case S.MULTILINE_TEXT:P=n.createElement(n.Fragment,null,n.createElement("textarea",{ref:_,className:"userflowjs-textarea userflowjs-bubble-question__textarea",value:u,onChange:o=>x(o.target.value),onKeyDown:o=>{(o.ctrlKey||o.metaKey)&&o.key==="Enter"&&L({answer:{kind:"text",value:u}})},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0,rows:3,"aria-required":t?"true":void 0,"aria-invalid":D!=null?"true":void 0}),ve);break;case S.MULTIPLE_CHOICE:{const o=()=>{u&&L({answer:{kind:"text",value:u},animationPromise:ee()})},T=(M?.length||0)+(l?1:0),N=Math.max(0,Math.min(T,m??1)),B=Math.max(0,Math.min(T,v??T)),W=()=>{const w=(M||[]).filter((J,$)=>R.has($)).map(J=>J.value);if(l&&k&&u!==""&&w.push(u),N===B&&w.length!==N){q(f("question.multiple_selection_wrong",{count:N}));return}else if(w.length<N){q(f("question.multiple_selection_too_few",{count:N}));return}else if(w.length>B){q(f("question.multiple_selection_too_many",{count:B}));return}L({answer:{kind:"list",values:w}})};P=n.createElement(n.Fragment,null,a&&n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice-hint":!0,"userflowjs-bubble-question__multiple-choice-hint--error":!!D})},f("question.multiple_selection_hint",{replace:{selected:R.size+(l&&k&&u!==""?1:0),range:N===B?N:`${N}-${B}`}}),D&&n.createElement(n.Fragment,null,". ",n.createElement("span",{role:"alert"},D))),n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice":!0,"userflowjs-bubble-question__multiple-choice--single-selection":!a,"userflowjs-bubble-question__multiple-choice--multiple-selection":!!a}),role:a?"group":"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},M?.map(({value:w,label:J},$)=>n.createElement("button",{key:$,className:O({"userflowjs-bubble-question__multiple-choice-option":!0,"userflowjs-bubble-question__multiple-choice-option--selected":a?R.has($):y&&!k&&u==w}),onClick:y?void 0:()=>{if(a){q(null);const ie=new Set(R);R.has($)?ie.delete($):ie.add($),K(ie)}else H(!1),x(w),L({answer:{kind:"text",value:w},animationPromise:ee()})},disabled:y,tabIndex:!b&&$===F?0:-1,role:a?"checkbox":"radio","aria-label":J||w,"aria-checked":!k&&u==w},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-option-text","aria-hidden":"true"},J||w))),l&&(k?n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice-option":!0,"userflowjs-bubble-question__multiple-choice-option--other":!0,"userflowjs-bubble-question__multiple-choice-option--selected":a?u!="":y})},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox",onClick:()=>{x(""),H(!1)}},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("input",{ref:_,className:"userflowjs-bubble-question__multiple-choice-option-input",value:u,onChange:w=>x(w.target.value),onKeyDown:w=>{!w.shiftKey&&w.key==="Enter"?a?W():o():w.key==="Escape"&&(w.stopPropagation(),x(""),H(!1))},onBlur:()=>{u===""&&H(!1)},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0}),!a&&n.createElement("button",{"data-testid":"multiple-choice-other-submit",className:"userflowjs-bubble-question__multiple-choice-option-submit",onClick:()=>o(),disabled:y,"aria-label":f("question.submit")},n.createElement(Z,{icon:Y}))):n.createElement("button",{className:"userflowjs-bubble-question__multiple-choice-option",onClick:y?void 0:()=>{q(null),H(!0),ge(!0)},disabled:y,tabIndex:!b&&M?.length===F?0:-1,role:"radio","aria-label":f("question.other"),"aria-checked":"false"},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-option-text","aria-hidden":"true"},f("question.other"))))),a&&n.createElement("div",{className:"userflowjs-bubble-buttons"},n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:W,tabIndex:b?-1:void 0,disabled:y},n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},i||f("question.submit")))));break}case S.NPS:case S.SCALE:{P=n.createElement(n.Fragment,null,ae,n.createElement("div",{className:"userflowjs-bubble-question__scale-options",role:"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},j?.map((o,T)=>n.createElement("button",{className:O({"userflowjs-bubble-question__scale-option":!0,"userflowjs-bubble-question__scale-option--selected":y&&C==o}),key:o,tabIndex:!b&&T===F?0:-1,onClick:()=>{U(o),L({answer:{kind:"number",value:o},animationPromise:ee()})},disabled:y,role:"radio","aria-checked":C==o},o))),le);break}case S.STARS:{P=n.createElement("div",{className:"userflowjs-bubble-question__stars-wrapper"},ae,n.createElement("div",{className:"userflowjs-bubble-question__stars",role:"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},j?.map((o,T)=>n.createElement("button",{className:O({"userflowjs-bubble-question__star":!0,"userflowjs-bubble-question__star--hovered":!y&&G!=null&&G>=o,"userflowjs-bubble-question__star--selected":y&&C!=null&&C>=o,"userflowjs-bubble-question__star--not-selected":y&&C!=null&&C<o}),key:o,tabIndex:!b&&T===F?0:-1,onClick:()=>{U(o),L({answer:{kind:"number",value:o},animationPromise:ee()})},onMouseOver:()=>Q(o),onMouseLeave:()=>Q(null),disabled:y,role:"radio","aria-checked":C==o,"aria-label":String(o)},n.createElement("div",{className:"userflowjs-bubble-question__star-icon","aria-hidden":"true"},n.createElement(ct,null)),n.createElement("div",{className:"userflowjs-bubble-question__star-value","aria-hidden":"true"},o)))),le);break}case S.TEXT:P=n.createElement(n.Fragment,null,n.createElement("input",{ref:_,className:"userflowjs-text-input userflowjs-bubble-question__text-input",value:u,onChange:o=>x(o.target.value),onKeyDown:o=>{!o.shiftKey&&o.key==="Enter"&&L({answer:{kind:"text",value:u}})},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0,"aria-required":t?"true":void 0,"aria-invalid":D!=null?"true":void 0}),ve);break}return n.createElement("div",{className:"userflowjs-bubble-question",style:{pointerEvents:b?"none":void 0}},D&&!(e===S.MULTIPLE_CHOICE&&a)&&n.createElement("div",{className:"userflowjs-bubble-question__error",role:"alert"},D),P)};function ee(){return new Promise(e=>window.setTimeout(e,250))}const ft=({question:e})=>{const t=je(),r=at();return n.createElement(mt,{type:e.type,required:!!e.required,placeholder:e.placeholder||"",buttonText:e.buttonText||"",options:e.options,otherOption:e.otherOption,multipleSelection:e.multipleSelection,shuffleOptions:e.shuffleOptions,labelLeft:e.labelLeft||"",labelCenter:e.labelCenter||"",labelRight:e.labelRight||"",minValue:e.minValue,maxValue:e.maxValue,onSubmit:async i=>{Qe("answerQuestion",r.id,e.cvid,i);const{answer:s}=i;try{await Promise.all([await t.send({kind:"AnswerQuestion",sessionId:r.id,questionName:e.name,questionCvid:e.cvid,textAnswer:s.kind=="text"?s.value:null,numberAnswer:s.kind=="number"?String(s.value):null,listAnswer:s.kind=="list"?s.values:null}),i.animationPromise])}catch(a){console.log("Userflow.js: Error when answering question:",a),i.onError();return}const{bindAttributeFqn:l}=e;if(l&&t.flowSession?.id===r.id){let a;switch(s.kind){case"text":a={name:l,value:s.value};break;case"number":a={name:l,value:String(s.value)};break;case"list":a={name:l,value:s.values};break}t.optimisticClockUIUpdate(()=>{t.setFlowSession({...r,data:[...r.data.filter(c=>c.name!==l),a]})})}Ie(t,r,e.actions)}})},dt=({text:e})=>{if(!e)return null;const t=e.split(/\n/);return t.length===1?n.createElement(n.Fragment,null,t[0]):n.createElement(n.Fragment,null,t.map((r,i)=>n.createElement(n.Fragment,{key:i},i>0&&n.createElement("br",null),r)))};function bt(e=""){return{type:"rich2",children:[ht(e)]}}function ht(e=""){return{type:"paragraph",children:[{text:e}]}}function Re(e){if(e){let t;try{t=JSON.parse(e)}catch{throw new Error("Could not JSON.parse rich content doc: "+e)}if(t.type==="rich2")return t;throw new Error("Could not recognize rich content doc: "+e)}else return bt()}function wt(e=""){return{type:"plaintext2",children:[{type:"plaintext",children:[{text:e}]}]}}function pt(e){if(e){let t;try{t=JSON.parse(e)}catch{throw new Error("Could not JSON.parse plaintext doc: "+e)}if(t.type==="plaintext2")return t;throw new Error("Could not recognize plaintext doc: "+e)}else return wt()}function z(e,{lookupAttribute:t}){if(!e)return"";typeof e=="string"&&(e=pt(e));const r=[];function i(l){if(he(l)){l.text&&r.push(l.text);return}switch(l.type){case"attribute":{const a=$e(l,t);a&&r.push(a);break}default:s(l.children);break}}function s(l){l&&l.forEach(a=>a&&i(a))}return s(e.children),r.join("")}function Kt(e){let t=!0;if(!e)return!0;typeof e=="string"&&(e=Re(e));const r=new Set(["attribute","button","image","question","video"]);return Oe(e,i=>{if(he(i)){i.text!==""&&(t=!1);return}"type"in i&&r.has(i.type)&&(t=!1)}),t}const Gt=n.memo(({doc:e,...t})=>e?(typeof e=="string"&&(e=Re(e)),n.createElement(Ae,{parent:e,...t})):null),Ae=({parent:e,...t})=>n.createElement(n.Fragment,null,e.children.map((r,i)=>he(r)?n.createElement(gt,{key:i,node:r}):n.createElement(vt,{key:i,node:r,parent:e,...t}))),gt=({node:e})=>e.text?n.createElement(qe,{node:e},n.createElement(dt,{text:e.text})):null,qe=({node:e,children:t})=>(e.color&&typeof e.color=="string"&&(t=n.createElement("span",{style:{color:e.color}},t)),e.bold&&(t=n.createElement("b",null,t)),e.italic&&(t=n.createElement("i",null,t)),e.underline&&(t=n.createElement("u",null,t)),e.strikeThrough&&(t=n.createElement("s",null,t)),e.code&&(t=n.createElement("code",null,t)),e.small&&(t=n.createElement("small",null,t)),e.sup&&(t=n.createElement("sup",null,t)),t),vt=({node:e,parent:t,...r})=>{const{lookupAttribute:i}=r,s=n.createElement(Ae,{parent:e,...r});switch(e.type){case"attribute":return n.createElement(Et,{node:e,...r});case"button":return n.createElement(yt,{node:e,...r});case"button-group":return n.createElement("div",{className:"userflowjs-bubble-buttons",style:{justifyContent:e.align}},s);case"column":return n.createElement("div",{style:jt(e,t)},s);case"column-group":return n.createElement("div",{className:"p-like",style:Ct(e)},s);case"container":return n.createElement("div",{className:"p-like"+(e.className?` ${e.className}`:""),style:Tt(e)},s);case"image":return n.createElement(_t,{node:e,...r});case"link":return n.createElement("a",{href:z(e.href,{lookupAttribute:i}),target:e.target==="same"?"_top":"_blank",rel:"noopener noreferrer"},s);case"paragraph":return n.createElement("p",{className:fe(e)},s);case"heading1":return n.createElement("h1",{className:fe(e)},s);case"heading2":return n.createElement("h2",{className:fe(e)},s);case"question":return n.createElement(kt,{node:e,...r});case"quote":return n.createElement("blockquote",null,s);case"code-block":return n.createElement("pre",null,n.createElement("code",null,s));case"ordered-list":return n.createElement("ol",null,s);case"unordered-list":return n.createElement("ul",null,s);case"list-item":return n.createElement("li",null,s);case"video":return n.createElement(xt,{node:e,...r});default:return n.createElement("div",null,s)}},Et=({node:e,lookupAttribute:t})=>{let r=$e(e,t);return n.createElement(qe,{node:e},r)},yt=({node:e,buttons:t})=>{const r=t?.find(i=>i.cvid===e.cvid);return r?n.createElement(ut,{key:r.id,button:r}):null},kt=({node:e,questions:t})=>{const r=t?.find(i=>i.cvid===e.cvid);return r?n.createElement(ft,{key:r.id,question:r}):null},_t=({node:e,lookupAttribute:t})=>{const{src:r,widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m,hasLink:v,href:E}=e;if(!r)return null;const{wrapperStyle:b,blockStyle:f}=Le({widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m}),_=typeof r=="string"?r:z(r,{lookupAttribute:t});let u=n.createElement("img",{src:Se(_,x=>encodeURIComponent((t?t(x):"")||"")),style:{...f,objectFit:"contain"},alt:""});return v&&E&&(u=n.createElement("a",{href:z(E,{lookupAttribute:t}),target:e.target==="same"?"_top":"_blank",rel:"noopener noreferrer",style:f},u)),n.createElement("div",{className:"p-like"},n.createElement("div",{style:b},u))},xt=({node:e,lookupAttribute:t})=>{const{url:r,widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m}=e;if(!r)return null;const{wrapperStyle:v,blockStyle:E}=Le({widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m});return n.createElement("div",{className:"p-like"},n.createElement("div",{style:v},n.createElement("div",{style:E},n.createElement(Nt,{element:e,noFocus:!0,lookupAttribute:t}))))},Nt=({element:{embedType:e,url:t,src:r,autoPlay:i,controls:s,loop:l,muted:a},noFocus:c,forceMuted:h,lookupAttribute:d})=>{if(!t)return null;const g=typeof t=="string"?t:z(t,{lookupAttribute:d}),m={width:"100%",height:"100%",allow:"accelerometer; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,allowtransparency:"true",mozallowfullscreen:"true",webkitallowfullscreen:"true",oallowfullscreen:"true",msallowfullscreen:"true",style:{display:"block",border:"none"},tabIndex:c?-1:void 0};if(e==="video")return n.createElement("video",{key:g+";"+String(i)+";"+String(s)+";"+String(l)+";"+String(a),src:g,style:{width:"100%",height:"100%",display:"block"},autoPlay:!!i,controls:s!==!1,loop:l,muted:h||a});let v=St(g,{iframeFallback:!0});if(v.kind==="invalid")return null;if(r){let u;try{u=new URL(r)}catch{return null}h&&(u.searchParams.has("autoplay")||u.searchParams.has("autoPlay"))&&(u.searchParams.set("mute","1"),u.searchParams.set("muted","1"),u.searchParams.set("volume","0"));let x=u.toString();return me(u)&&(x=ce(u.toString())),n.createElement("iframe",{src:x,...m})}const{videoProvider:E,videoId:b,searchParams:f}=v;i=i||f.has("autoplay")||f.has("autoPlay");let _;try{_=new URL(g)}catch{console.error("Invalid video URL:",g)}switch(E){case"iframe":return _&&me(_)?n.createElement("iframe",{src:ce(g),...m}):n.createElement("iframe",{src:Se(b,u=>encodeURIComponent((d?d(u):"")||"")),scrolling:f.get("scrolling")||void 0,...m});case"loom":return n.createElement("iframe",{src:`https://www.loom.com/embed/${b}?${f.toString()}`,...m});case"raw":return n.createElement("video",{src:b,controls:!0,style:{width:"100%",height:"100%",display:"block"},autoPlay:f.has("autoplay"),muted:h||f.has("muted")});case"youtube":{h&&i&&f.set("mute","1");let u=`https://www.youtube.com/embed/${b}?${f.toString()}`;return _&&me(_)&&(u=ce(u)),n.createElement("iframe",{src:u,...m})}case"vimeo":return h&&i&&f.set("muted","1"),n.createElement("iframe",{src:`https://player.vimeo.com/video/${b}?${f.toString()}`,...m});case"wistia":return f.set("videoFoam","true"),h&&i&&f.set("volume","0"),n.createElement(n.Fragment,null,n.createElement("iframe",{src:`https://fast.wistia.net/embed/iframe/${b}?${f.toString()}`,...m}))}};function ce(e){return`https://cdn.userflow.com/iframe/youtube?src=${encodeURIComponent(e)}`}function me(e){return["youtube.com","www.youtube.com","youtu.be"].includes(e.hostname)}function St(e,{iframeFallback:t}={}){let r;try{r=new URL(e)}catch{return{kind:"invalid"}}const{hostname:i,pathname:s,searchParams:l}=r;if(i.match(/^(www\.)?(use)?loom\.com$/)){const a=s.match(/^\/share\/([a-z0-9]+)$/i);if(a){const[,c]=a;return{kind:"ok",videoProvider:"loom",videoId:c,searchParams:l}}}if(e.startsWith("raw:"))return{kind:"ok",videoProvider:"raw",videoId:e.replace(/^raw:/,""),searchParams:l};if(e.startsWith("iframe:"))return{kind:"ok",videoProvider:"iframe",videoId:e.replace(/^iframe:/,""),searchParams:l};if(["youtube.com","www.youtube.com"].includes(i)){const a=l.get("v");if(a)return l.delete("v"),{kind:"ok",videoProvider:"youtube",videoId:a,searchParams:l}}if(i==="youtu.be"){const a=s.match(/^\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"youtube",videoId:c,searchParams:l}}}if(i==="vimeo.com"){const a=s.match(/^\/(\d+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"vimeo",videoId:c,searchParams:l}}}if(i==="player.vimeo.com"){const a=s.match(/^\/video\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"vimeo",videoId:c,searchParams:l}}}if(i.match(/^[^.]+\.wistia.com$/)){const a=s.match(/^\/medias\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"wistia",videoId:c,searchParams:l}}}return t?{kind:"ok",videoProvider:"iframe",videoId:e,searchParams:l}:{kind:"invalid"}}function fe(e){return e.align==="right"?"userflowjs-text-align-end":e.align==="center"?"userflowjs-text-align-center":e.align==="justify"?"userflowjs-text-align-justify":""}function Le({widthMode:e,displayWidth:t,width:r,height:i,marginTop:s,marginRight:l,marginBottom:a,marginLeft:c,align:h}){const d={position:"relative"},g={position:"absolute",top:"0",left:"0",display:"block",width:"100%",height:"100%"};typeof t!="number"&&(t=100,e="percent"),h==="center"?(d.marginLeft="auto",d.marginRight="auto"):h==="right"&&(d.marginLeft="auto");let m=0;if(s!=null&&typeof s=="number"&&(d.marginTop=`${s}px`),l!=null&&typeof l=="number"&&(d.marginRight=`${l}px`,m+=l),a!=null&&typeof a=="number"&&(d.marginBottom=`${a}px`),c!=null&&typeof c=="number"&&(d.marginLeft=`${c}px`,m+=c),typeof t!="number"||typeof r!="number"||typeof i!="number")d.width="100px",d.height="100px";else if(e==="px"){const E=Math.max(10,t);d.width=`${E}px`,d.height=`${E/(r/i)}px`}else{const v=Math.max(0,Math.min(100,t));d.width=`calc(${v}% - ${m}px)`,d.height="0",d.paddingBottom=`calc((${v}% - ${m}px) / (${r} / ${i})`}return{wrapperStyle:d,blockStyle:g}}const Fe=16;function Ct(e){return{display:"flex",alignItems:"stretch",marginRight:`-${e.spacing==null?Fe:e.spacing}px`}}function jt(e,t){const r=e.widthMode==="fill"||e.displayWidth==null;return{display:"flex",flexDirection:"column",justifyContent:e.justifyContent,width:r?void 0:e.widthMode==="px"?`${e.displayWidth||50}px`:e.widthMode==="percent"?`${e.displayWidth||50}%`:void 0,flex:r?"1 0 0":void 0,marginRight:`${t.spacing==null?Fe:t.spacing}px`,marginBottom:"0"}}function Tt(e){return{display:"flex",flexDirection:"column",justifyContent:e.justifyContent,width:e.widthMode==="px"&&e.displayWidth!=null?`${e.displayWidth}px`:e.widthMode==="percent"&&e.displayWidth!=null?`${e.displayWidth}%`:void 0,minHeight:e.heightMode==="px"?`${e.displayHeight||50}px`:void 0,flex:e.heightMode==="fill"?"1 0 0":void 0,marginTop:e.marginTop!=null?`${e.marginTop}px`:void 0,marginRight:e.marginRight!=null?`${e.marginRight}px`:e.widthMode!=="fill"&&e.align==="center"?"auto":void 0,marginBottom:e.marginBottom!=null?`${e.marginBottom}px`:void 0,marginLeft:e.marginLeft!=null?`${e.marginLeft}px`:e.widthMode!=="fill"&&(e.align==="center"||e.align==="right")?"auto":void 0}}function $e(e,t){if(!t)return null;const r=e.attributeName;if(typeof r=="string"){const i=t(r)||e.fallback;if(typeof i=="string")return i}return null}function De(e){return Array.isArray(e.children)&&typeof e.addMark>"u"}function xe(e,t,r="type"){return De(e)&&typeof e=="object"&&e[r]===t}function he(e){return typeof e.text=="string"}function Oe(e,t){function r(s,l){t(s,l),De(s)&&i(s.children)}function i(s){s&&s.forEach((l,a)=>l&&r(l,a))}i(Array.isArray(e)?e:e.children)}const Ht=n.memo(({doc:e,lookupAttribute:t})=>e?n.createElement(n.Fragment,null,z(e,{lookupAttribute:t})):null);function Jt(e,{buttons:t,questions:r}){const i=new Set,s=new Set;if(Oe(e,l=>{xe(l,"button")&&i.add(l.cvid),xe(l,"question")&&s.add(l.cvid)}),r){const l=r.filter(a=>!s.has(a.cvid));l.length>0&&(e={...e,children:[...e.children,...l.map(a=>({type:"question",cvid:a.cvid,children:[{text:""}]}))]})}if(t){const l=t.filter(a=>!i.has(a.cvid));l.length>0&&(e={...e,children:[...e.children,{type:"button-group",children:l.map(a=>({type:"button",cvid:a.cvid,children:[{text:""}]}))}]})}return e}function It(e){return e=e||"default","userflowjs-bubble-button "+(e==="primary"||e==="PRIMARY"||e==="default"||e==="DEFAULT"||e==="banner-primary"||e==="banner-secondary"?`userflowjs-bubble-button--${e.toLowerCase()}`:e)}const Qt=new URL("bubble-frame.css",import.meta.url).href;let we=!1;const V=[];let te=[],Ue;function Rt(e){V.push(e),V.length===1&&(we=!0,Me(),window.addEventListener("scroll",Pe))}function At(e){const t=V.indexOf(e);t>=0&&(V.splice(t,1),V.length===0&&(we=!1,window.cancelAnimationFrame(Ue),window.removeEventListener("scroll",Pe)))}function Xt(e){te.push(e)}function qt(){V.forEach(e=>e()),te.length>0&&(te.forEach(e=>e()),te=[]),Me()}function Me(){we&&(Ue=window.requestAnimationFrame(qt))}function Pe(){}function Zt({selector:e,targetMoved:t,targetLost:r,onTargetClick:i,onTargetMouseEnter:s,onTargetMouseLeave:l}){const a=p.useRef(t),c=p.useRef(r),h=p.useRef(i),d=p.useRef(s),g=p.useRef(l);p.useLayoutEffect(()=>{a.current=t,c.current=r,h.current=i,d.current=s,g.current=l}),p.useLayoutEffect(()=>{let m=null,v=null,E=null,b=!1;const f=()=>{m=null,v=null,E=null,c.current()};if(!e){f();return}const _=()=>{if(!E||!m)return;const k=Te(m);(!v||!Lt(v,k))&&(v=k,k.width===0&&k.height===0?f():a.current({targetEl:m,targetRect:v,clipEl:E,viewportClipRect:Ft(E)}))};let u=!1;const x=()=>{u||(u=!0,Rt(_))},R=()=>{u&&(u=!1,At(_))},K=()=>{h.current&&h.current()},C=()=>{d.current&&d.current()},U=()=>{g.current&&g.current()},G=()=>{const k=m;m=Ze(e)?e:Ye(e),(!b||m!==k)&&(k&&(k.removeEventListener("click",K),k.removeEventListener("mouseenter",C),k.removeEventListener("mouseleave",U)),m?(x(),m.addEventListener("click",K),m.addEventListener("mouseenter",C),m.addEventListener("mouseleave",U),E=et(m)):(R(),f())),b=!0};G();const Q=ze(G);return()=>{Q.disconnect(),R(),m&&(m.removeEventListener("click",K),m.removeEventListener("mouseenter",C),m.removeEventListener("mouseleave",U))}},[e])}function Lt(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function Ft(e){tt();const t=ke(nt()),r=ke(rt());if(!e||e===document.documentElement)return{top:0,right:r,bottom:t,left:0};{const i=Te(e);return{top:Math.max(0,i.top),right:Math.min(r,i.right),bottom:Math.min(t,i.bottom),left:Math.max(0,i.left)}}}export{ut as B,Gt as R,st as S,Ht as a,Qt as b,_e as c,Re as d,it as e,Kt as f,$e as g,Ie as h,he as i,be as j,Jt as m,ot as n,Xt as r,z as s,Zt as u};
10
+ But if this flow was running in published mode, the flow would now be snoozed for ${r.timeValue} ${r.timeUnit.toLowerCase()+(r.timeValue===1?"":"s")}.`):e.send({kind:"Snooze",flowId:t.flow.id,timeValue:r.timeValue,timeUnit:r.timeUnit},{batch:!0}));return;case A.START_FLOW:t.kind==="launcher"&&e.deactivateLauncher(t),r.otherFlow?await e.startFlow({flowId:r.otherFlow.id,stepCvid:r.otherFlowStepCvid,startReason:t.draftMode?ye.DRAFT:ye.ACTION,replaceCurrent:!0}):console.warn("Userflow.js: START_FLOW action is missing other flow");return;case A.TRACK_BUTTON_EVENT:{let s=null,l=t?t.id:null;if(t.kind==="flow"){const{currentStep:a}=t;s=a?a?.crossVersionId:null}if(r.buttonEvent){const{eventName:a,token:c}=r.buttonEvent;await e.trackButtonEvent(a,c,s,l)}return}}}async function Ie(e,t,r){const i=[],s=[],l=[];for(const a of r)a.type===A.NAVIGATE?a.navigateTarget===Ce.NEW_TAB?i.push(a):l.push(a):s.push(a);for(const a of i)ue(e,t,a);await Promise.all(s.map(a=>ue(e,t,a)));for(const a of l)ue(e,t,a)}const ut=({button:e})=>{const t=je(),r=be(),i=_e(e.disabledCondition),s=_e(e.hiddenCondition);return n.createElement(it,{appearance:e.appearance,hidden:s,disabled:i,onClick:()=>Ie(t,r,e.actions),text:Ne(e.text,r.data)})},ct=()=>n.createElement("svg",{viewBox:"0 0 32 32",xmlns:"http://www.w3.org/2000/svg"},n.createElement("polygon",{className:"userflowjs-star-shape",fill:"#fff",points:"16 22.7785728 7.18322122 29.1352549 10.5042507 18.7856772 1.73415226 12.3647451 12.6034401 12.3250364 16 2 19.3965599 12.3250364 30.2658477 12.3647451 21.4957493 18.7856772 24.8167788 29.1352549"})),mt=({type:e,required:t,placeholder:r,buttonText:i,options:s,otherOption:l,multipleSelection:a,shuffleOptions:c,labelLeft:h,labelCenter:d,labelRight:g,minValue:m,maxValue:v,onSubmit:E,inert:b})=>{const{t:f}=Xe(),_=p.useRef(null),[u,x]=p.useState(""),[R,K]=p.useState(new Set),[C,U]=p.useState(),[G,Q]=p.useState(),[k,H]=p.useState(!1),[y,ne]=p.useState(!1),[D,q]=p.useState(null),M=p.useMemo(()=>s&&(c?[...s].sort(()=>Math.random()-.5):s),[s,c]),L=o=>{if(!(b||!E)){if(t&&u===""&&[S.MULTILINE_TEXT,S.TEXT].includes(e)){q(f("question.requiredError")),re();return}ne(!0),q(null),E({...o,onCancel:()=>{ne(!1)},onError:T=>{ne(!1),q(T||"Sorry, something went wrong saving your answer. Please try again.")}})}},re=p.useCallback(()=>{b||!_.current||_.current.focus()},[b]),[pe,ge]=p.useState(!1);p.useEffect(()=>{pe&&(re(),ge(!1))},[re,pe]);const ve=n.createElement("div",{className:"userflowjs-bubble-buttons"},n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:()=>L({answer:{kind:"text",value:u}}),tabIndex:b?-1:void 0,disabled:y},n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},i||f("question.submit"))));let j=null,X=0;if(e===S.NPS)h=h||f("question.npsLabelLeft"),g=g||f("question.npsLabelRight"),j=[0,1,2,3,4,5,6,7,8,9,10],X=j.length;else if([S.SCALE,S.STARS].includes(e)){m=m??1,v=v??5,j=[];for(let o=m;o<=v;o++)j.push(o);X=j.length}else e===S.MULTIPLE_CHOICE&&(X=(M?M.length:0)+(l&&!k?1:0));const[Ee,Be]=p.useState(-1),F=Ee===-1?-1:Math.min(Ee,X-1),se=o=>{if(!o.target.closest('[role="radio"], [role="checkbox"], [role="radiogroup"], [role="group"]'))return;let N=null;if(o.key==="ArrowRight"||o.key==="ArrowDown"?N=1:(o.key==="ArrowLeft"||o.key==="ArrowUp")&&(N=-1),N!=null){o.preventDefault();const W=o.currentTarget.querySelectorAll('[role="radio"], [role="checkbox"]');let w=F+N;w<0?w=W.length-1:w>W.length-1&&(w=0),Be(w),W[w].focus()}};let ae=null,le=null;if(j&&(h||d||g)){const o=[];h&&o.push(j[0],h),g&&o.push(j[j.length-1],g),ae=n.createElement("div",{id:"a11y-scale-labels",className:"userflowjs-a11y-only"},o.join(", ")),le=n.createElement("div",{id:"userflowjs-bubble-question-labels",className:"userflowjs-bubble-question__scale-labels","aria-hidden":"true"},n.createElement("div",{className:"userflowjs-bubble-question__scale-label"},h),d&&n.createElement("div",{className:"userflowjs-bubble-question__scale-label userflowjs-bubble-question__scale-label--center"},d),n.createElement("div",{className:"userflowjs-bubble-question__scale-label userflowjs-bubble-question__scale-label--right"},g))}let P;switch(e){case S.MULTILINE_TEXT:P=n.createElement(n.Fragment,null,n.createElement("textarea",{ref:_,className:"userflowjs-textarea userflowjs-bubble-question__textarea",value:u,onChange:o=>x(o.target.value),onKeyDown:o=>{(o.ctrlKey||o.metaKey)&&o.key==="Enter"&&L({answer:{kind:"text",value:u}})},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0,rows:3,"aria-required":t?"true":void 0,"aria-invalid":D!=null?"true":void 0}),ve);break;case S.MULTIPLE_CHOICE:{const o=()=>{u&&L({answer:{kind:"text",value:u},animationPromise:ee()})},T=(M?.length||0)+(l?1:0),N=Math.max(0,Math.min(T,m??1)),B=Math.max(0,Math.min(T,v??T)),W=()=>{const w=(M||[]).filter((J,$)=>R.has($)).map(J=>J.value);if(l&&k&&u!==""&&w.push(u),N===B&&w.length!==N){q(f("question.multiple_selection_wrong",{count:N}));return}else if(w.length<N){q(f("question.multiple_selection_too_few",{count:N}));return}else if(w.length>B){q(f("question.multiple_selection_too_many",{count:B}));return}L({answer:{kind:"list",values:w}})};P=n.createElement(n.Fragment,null,a&&n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice-hint":!0,"userflowjs-bubble-question__multiple-choice-hint--error":!!D})},f("question.multiple_selection_hint",{replace:{selected:R.size+(l&&k&&u!==""?1:0),range:N===B?N:`${N}-${B}`}}),D&&n.createElement(n.Fragment,null,". ",n.createElement("span",{role:"alert"},D))),n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice":!0,"userflowjs-bubble-question__multiple-choice--single-selection":!a,"userflowjs-bubble-question__multiple-choice--multiple-selection":!!a}),role:a?"group":"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},M?.map(({value:w,label:J},$)=>n.createElement("button",{key:$,className:O({"userflowjs-bubble-question__multiple-choice-option":!0,"userflowjs-bubble-question__multiple-choice-option--selected":a?R.has($):y&&!k&&u==w}),onClick:y?void 0:()=>{if(a){q(null);const ie=new Set(R);R.has($)?ie.delete($):ie.add($),K(ie)}else H(!1),x(w),L({answer:{kind:"text",value:w},animationPromise:ee()})},disabled:y,tabIndex:!b&&$===F?0:-1,role:a?"checkbox":"radio","aria-label":J||w,"aria-checked":!k&&u==w},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-option-text","aria-hidden":"true"},J||w))),l&&(k?n.createElement("div",{className:O({"userflowjs-bubble-question__multiple-choice-option":!0,"userflowjs-bubble-question__multiple-choice-option--other":!0,"userflowjs-bubble-question__multiple-choice-option--selected":a?u!="":y})},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox",onClick:()=>{x(""),H(!1)}},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("input",{ref:_,className:"userflowjs-bubble-question__multiple-choice-option-input",value:u,onChange:w=>x(w.target.value),onKeyDown:w=>{!w.shiftKey&&w.key==="Enter"?a?W():o():w.key==="Escape"&&(w.stopPropagation(),x(""),H(!1))},onBlur:()=>{u===""&&H(!1)},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0}),!a&&n.createElement("button",{"data-testid":"multiple-choice-other-submit",className:"userflowjs-bubble-question__multiple-choice-option-submit",onClick:()=>o(),disabled:y,"aria-label":f("question.submit")},n.createElement(Z,{icon:Y}))):n.createElement("button",{className:"userflowjs-bubble-question__multiple-choice-option",onClick:y?void 0:()=>{q(null),H(!0),ge(!0)},disabled:y,tabIndex:!b&&M?.length===F?0:-1,role:"radio","aria-label":f("question.other"),"aria-checked":"false"},a?n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-checkbox-inner"},n.createElement(Z,{icon:Y}))):n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio"},n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-radio-inner"})),n.createElement("div",{className:"userflowjs-bubble-question__multiple-choice-option-text","aria-hidden":"true"},f("question.other"))))),a&&n.createElement("div",{className:"userflowjs-bubble-buttons"},n.createElement("button",{className:"userflowjs-bubble-button userflowjs-bubble-button--primary",onClick:W,tabIndex:b?-1:void 0,disabled:y},n.createElement("div",{className:"userflowjs-bubble-button-text",role:"presentation"},i||f("question.submit")))));break}case S.NPS:case S.SCALE:{P=n.createElement(n.Fragment,null,ae,n.createElement("div",{className:"userflowjs-bubble-question__scale-options",role:"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},j?.map((o,T)=>n.createElement("button",{className:O({"userflowjs-bubble-question__scale-option":!0,"userflowjs-bubble-question__scale-option--selected":y&&C==o}),key:o,tabIndex:!b&&T===F?0:-1,onClick:()=>{U(o),L({answer:{kind:"number",value:o},animationPromise:ee()})},disabled:y,role:"radio","aria-checked":C==o},o))),le);break}case S.STARS:{P=n.createElement("div",{className:"userflowjs-bubble-question__stars-wrapper"},ae,n.createElement("div",{className:"userflowjs-bubble-question__stars",role:"radiogroup",tabIndex:!b&&F===-1?0:-1,onKeyDown:se},j?.map((o,T)=>n.createElement("button",{className:O({"userflowjs-bubble-question__star":!0,"userflowjs-bubble-question__star--hovered":!y&&G!=null&&G>=o,"userflowjs-bubble-question__star--selected":y&&C!=null&&C>=o,"userflowjs-bubble-question__star--not-selected":y&&C!=null&&C<o}),key:o,tabIndex:!b&&T===F?0:-1,onClick:()=>{U(o),L({answer:{kind:"number",value:o},animationPromise:ee()})},onMouseOver:()=>Q(o),onMouseLeave:()=>Q(null),disabled:y,role:"radio","aria-checked":C==o,"aria-label":String(o)},n.createElement("div",{className:"userflowjs-bubble-question__star-icon","aria-hidden":"true"},n.createElement(ct,null)),n.createElement("div",{className:"userflowjs-bubble-question__star-value","aria-hidden":"true"},o)))),le);break}case S.TEXT:P=n.createElement(n.Fragment,null,n.createElement("input",{ref:_,className:"userflowjs-text-input userflowjs-bubble-question__text-input",value:u,onChange:o=>x(o.target.value),onKeyDown:o=>{!o.shiftKey&&o.key==="Enter"&&L({answer:{kind:"text",value:u}})},placeholder:r||f("question.placeholder"),readOnly:b||y,tabIndex:b?-1:void 0,"aria-required":t?"true":void 0,"aria-invalid":D!=null?"true":void 0}),ve);break}return n.createElement("div",{className:"userflowjs-bubble-question",style:{pointerEvents:b?"none":void 0}},D&&!(e===S.MULTIPLE_CHOICE&&a)&&n.createElement("div",{className:"userflowjs-bubble-question__error",role:"alert"},D),P)};function ee(){return new Promise(e=>window.setTimeout(e,250))}const ft=({question:e})=>{const t=je(),r=at();return n.createElement(mt,{type:e.type,required:!!e.required,placeholder:e.placeholder||"",buttonText:e.buttonText||"",options:e.options,otherOption:e.otherOption,multipleSelection:e.multipleSelection,shuffleOptions:e.shuffleOptions,labelLeft:e.labelLeft||"",labelCenter:e.labelCenter||"",labelRight:e.labelRight||"",minValue:e.minValue,maxValue:e.maxValue,onSubmit:async i=>{Qe("answerQuestion",r.id,e.cvid,i);const{answer:s}=i;try{await Promise.all([await t.send({kind:"AnswerQuestion",sessionId:r.id,questionName:e.name,questionCvid:e.cvid,textAnswer:s.kind=="text"?s.value:null,numberAnswer:s.kind=="number"?String(s.value):null,listAnswer:s.kind=="list"?s.values:null}),i.animationPromise])}catch(a){console.log("Userflow.js: Error when answering question:",a),i.onError();return}const{bindAttributeFqn:l}=e;if(l&&t.flowSession?.id===r.id){let a;switch(s.kind){case"text":a={name:l,value:s.value};break;case"number":a={name:l,value:String(s.value)};break;case"list":a={name:l,value:s.values};break}t.optimisticClockUIUpdate(()=>{t.setFlowSession({...r,data:[...r.data.filter(c=>c.name!==l),a]})})}Ie(t,r,e.actions)}})},dt=({text:e})=>{if(!e)return null;const t=e.split(/\n/);return t.length===1?n.createElement(n.Fragment,null,t[0]):n.createElement(n.Fragment,null,t.map((r,i)=>n.createElement(n.Fragment,{key:i},i>0&&n.createElement("br",null),r)))};function bt(e=""){return{type:"rich2",children:[ht(e)]}}function ht(e=""){return{type:"paragraph",children:[{text:e}]}}function Re(e){if(e){let t;try{t=JSON.parse(e)}catch{throw new Error("Could not JSON.parse rich content doc: "+e)}if(t.type==="rich2")return t;throw new Error("Could not recognize rich content doc: "+e)}else return bt()}function wt(e=""){return{type:"plaintext2",children:[{type:"plaintext",children:[{text:e}]}]}}function pt(e){if(e){let t;try{t=JSON.parse(e)}catch{throw new Error("Could not JSON.parse plaintext doc: "+e)}if(t.type==="plaintext2")return t;throw new Error("Could not recognize plaintext doc: "+e)}else return wt()}function z(e,{lookupAttribute:t}){if(!e)return"";typeof e=="string"&&(e=pt(e));const r=[];function i(l){if(he(l)){l.text&&r.push(l.text);return}switch(l.type){case"attribute":{const a=$e(l,t);a&&r.push(a);break}default:s(l.children);break}}function s(l){l&&l.forEach(a=>a&&i(a))}return s(e.children),r.join("")}function Kt(e){let t=!0;if(!e)return!0;typeof e=="string"&&(e=Re(e));const r=new Set(["attribute","button","image","question","video"]);return Oe(e,i=>{if(he(i)){i.text!==""&&(t=!1);return}"type"in i&&r.has(i.type)&&(t=!1)}),t}const Gt=n.memo(({doc:e,...t})=>e?(typeof e=="string"&&(e=Re(e)),n.createElement(Ae,{parent:e,...t})):null),Ae=({parent:e,...t})=>n.createElement(n.Fragment,null,e.children.map((r,i)=>he(r)?n.createElement(gt,{key:i,node:r}):n.createElement(vt,{key:i,node:r,parent:e,...t}))),gt=({node:e})=>e.text?n.createElement(qe,{node:e},n.createElement(dt,{text:e.text})):null,qe=({node:e,children:t})=>(e.color&&typeof e.color=="string"&&(t=n.createElement("span",{style:{color:e.color}},t)),e.bold&&(t=n.createElement("b",null,t)),e.italic&&(t=n.createElement("i",null,t)),e.underline&&(t=n.createElement("u",null,t)),e.strikeThrough&&(t=n.createElement("s",null,t)),e.code&&(t=n.createElement("code",null,t)),e.small&&(t=n.createElement("small",null,t)),e.sup&&(t=n.createElement("sup",null,t)),t),vt=({node:e,parent:t,...r})=>{const{lookupAttribute:i}=r,s=n.createElement(Ae,{parent:e,...r});switch(e.type){case"attribute":return n.createElement(Et,{node:e,...r});case"button":return n.createElement(yt,{node:e,...r});case"button-group":return n.createElement("div",{className:"userflowjs-bubble-buttons",style:{justifyContent:e.align}},s);case"column":return n.createElement("div",{style:jt(e,t)},s);case"column-group":return n.createElement("div",{className:"p-like",style:Ct(e)},s);case"container":return n.createElement("div",{className:"p-like"+(e.className?` ${e.className}`:""),style:Tt(e)},s);case"image":return n.createElement(_t,{node:e,...r});case"link":return n.createElement("a",{href:z(e.href,{lookupAttribute:i}),target:e.target==="same"?"_top":"_blank",rel:"noopener noreferrer"},s);case"paragraph":return n.createElement("p",{className:fe(e)},s);case"heading1":return n.createElement("h1",{className:fe(e)},s);case"heading2":return n.createElement("h2",{className:fe(e)},s);case"question":return n.createElement(kt,{node:e,...r});case"quote":return n.createElement("blockquote",null,s);case"code-block":return n.createElement("pre",null,n.createElement("code",null,s));case"ordered-list":return n.createElement("ol",null,s);case"unordered-list":return n.createElement("ul",null,s);case"list-item":return n.createElement("li",null,s);case"video":return n.createElement(xt,{node:e,...r});default:return n.createElement("div",null,s)}},Et=({node:e,lookupAttribute:t})=>{let r=$e(e,t);return n.createElement(qe,{node:e},r)},yt=({node:e,buttons:t})=>{const r=t?.find(i=>i.cvid===e.cvid);return r?n.createElement(ut,{key:r.id,button:r}):null},kt=({node:e,questions:t})=>{const r=t?.find(i=>i.cvid===e.cvid);return r?n.createElement(ft,{key:r.id,question:r}):null},_t=({node:e,lookupAttribute:t})=>{const{src:r,widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m,hasLink:v,href:E}=e;if(!r)return null;const{wrapperStyle:b,blockStyle:f}=Le({widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m}),_=typeof r=="string"?r:z(r,{lookupAttribute:t});let u=n.createElement("img",{src:Se(_,x=>encodeURIComponent((t?t(x):"")||"")),style:{...f,objectFit:"contain"},alt:""});return v&&E&&(u=n.createElement("a",{href:z(E,{lookupAttribute:t}),target:e.target==="same"?"_top":"_blank",rel:"noopener noreferrer",style:f},u)),n.createElement("div",{className:"p-like"},n.createElement("div",{style:b},u))},xt=({node:e,lookupAttribute:t})=>{const{url:r,widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m}=e;if(!r)return null;const{wrapperStyle:v,blockStyle:E}=Le({widthMode:i,displayWidth:s,width:l,height:a,marginTop:c,marginRight:h,marginBottom:d,marginLeft:g,align:m});return n.createElement("div",{className:"p-like"},n.createElement("div",{style:v},n.createElement("div",{style:E},n.createElement(Nt,{element:e,noFocus:!0,lookupAttribute:t}))))},Nt=({element:{embedType:e,url:t,src:r,autoPlay:i,controls:s,loop:l,muted:a},noFocus:c,forceMuted:h,lookupAttribute:d})=>{if(!t)return null;const g=typeof t=="string"?t:z(t,{lookupAttribute:d}),m={width:"100%",height:"100%",allow:"accelerometer; autoplay; fullscreen; encrypted-media; gyroscope; picture-in-picture",allowFullScreen:!0,allowtransparency:"true",mozallowfullscreen:"true",webkitallowfullscreen:"true",oallowfullscreen:"true",msallowfullscreen:"true",style:{display:"block",border:"none"},tabIndex:c?-1:void 0};if(e==="video")return n.createElement("video",{key:g+";"+String(i)+";"+String(s)+";"+String(l)+";"+String(a),src:g,style:{width:"100%",height:"100%",display:"block"},autoPlay:!!i,controls:s!==!1,loop:l,muted:h||a});let v=St(g,{iframeFallback:!0});if(v.kind==="invalid")return null;if(r){let u;try{u=new URL(r)}catch{return null}h&&(u.searchParams.has("autoplay")||u.searchParams.has("autoPlay"))&&(u.searchParams.set("mute","1"),u.searchParams.set("muted","1"),u.searchParams.set("volume","0"));let x=u.toString();return me(u)&&(x=ce(u.toString())),n.createElement("iframe",{src:x,...m})}const{videoProvider:E,videoId:b,searchParams:f}=v;i=i||f.has("autoplay")||f.has("autoPlay");let _;try{_=new URL(g)}catch{console.error("Invalid video URL:",g)}switch(E){case"iframe":return _&&me(_)?n.createElement("iframe",{src:ce(g),...m}):n.createElement("iframe",{src:Se(b,u=>encodeURIComponent((d?d(u):"")||"")),scrolling:f.get("scrolling")||void 0,...m});case"loom":return n.createElement("iframe",{src:`https://www.loom.com/embed/${b}?${f.toString()}`,...m});case"raw":return n.createElement("video",{src:b,controls:!0,style:{width:"100%",height:"100%",display:"block"},autoPlay:f.has("autoplay"),muted:h||f.has("muted")});case"youtube":{h&&i&&f.set("mute","1");let u=`https://www.youtube.com/embed/${b}?${f.toString()}`;return _&&me(_)&&(u=ce(u)),n.createElement("iframe",{src:u,...m})}case"vimeo":return h&&i&&f.set("muted","1"),n.createElement("iframe",{src:`https://player.vimeo.com/video/${b}?${f.toString()}`,...m});case"wistia":return f.set("videoFoam","true"),h&&i&&f.set("volume","0"),n.createElement(n.Fragment,null,n.createElement("iframe",{src:`https://fast.wistia.net/embed/iframe/${b}?${f.toString()}`,...m}))}};function ce(e){return`https://cdn.userflow.com/iframe/youtube?src=${encodeURIComponent(e)}`}function me(e){return["youtube.com","www.youtube.com","youtu.be"].includes(e.hostname)}function St(e,{iframeFallback:t}={}){let r;try{r=new URL(e)}catch{return{kind:"invalid"}}const{hostname:i,pathname:s,searchParams:l}=r;if(i.match(/^(www\.)?(use)?loom\.com$/)){const a=s.match(/^\/share\/([a-z0-9]+)$/i);if(a){const[,c]=a;return{kind:"ok",videoProvider:"loom",videoId:c,searchParams:l}}}if(e.startsWith("raw:"))return{kind:"ok",videoProvider:"raw",videoId:e.replace(/^raw:/,""),searchParams:l};if(e.startsWith("iframe:"))return{kind:"ok",videoProvider:"iframe",videoId:e.replace(/^iframe:/,""),searchParams:l};if(["youtube.com","www.youtube.com"].includes(i)){const a=l.get("v");if(a)return l.delete("v"),{kind:"ok",videoProvider:"youtube",videoId:a,searchParams:l}}if(i==="youtu.be"){const a=s.match(/^\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"youtube",videoId:c,searchParams:l}}}if(i==="vimeo.com"){const a=s.match(/^\/(\d+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"vimeo",videoId:c,searchParams:l}}}if(i==="player.vimeo.com"){const a=s.match(/^\/video\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"vimeo",videoId:c,searchParams:l}}}if(i.match(/^[^.]+\.wistia.com$/)){const a=s.match(/^\/medias\/([^/]+)$/);if(a){const[,c]=a;return{kind:"ok",videoProvider:"wistia",videoId:c,searchParams:l}}}return t?{kind:"ok",videoProvider:"iframe",videoId:e,searchParams:l}:{kind:"invalid"}}function fe(e){return e.align==="right"?"userflowjs-text-align-end":e.align==="center"?"userflowjs-text-align-center":e.align==="justify"?"userflowjs-text-align-justify":""}function Le({widthMode:e,displayWidth:t,width:r,height:i,marginTop:s,marginRight:l,marginBottom:a,marginLeft:c,align:h}){const d={position:"relative"},g={position:"absolute",top:"0",left:"0",display:"block",width:"100%",height:"100%"};typeof t!="number"&&(t=100,e="percent"),h==="center"?(d.marginLeft="auto",d.marginRight="auto"):h==="right"&&(d.marginLeft="auto");let m=0;if(s!=null&&typeof s=="number"&&(d.marginTop=`${s}px`),l!=null&&typeof l=="number"&&(d.marginRight=`${l}px`,m+=l),a!=null&&typeof a=="number"&&(d.marginBottom=`${a}px`),c!=null&&typeof c=="number"&&(d.marginLeft=`${c}px`,m+=c),typeof t!="number"||typeof r!="number"||typeof i!="number")d.width="100px",d.height="100px";else if(e==="px"){const E=Math.max(10,t);d.width=`${E}px`,d.height=`${E/(r/i)}px`}else{const v=Math.max(0,Math.min(100,t));d.width=`calc(${v}% - ${m}px)`,d.height="0",d.paddingBottom=`calc((${v}% - ${m}px) / (${r} / ${i})`}return{wrapperStyle:d,blockStyle:g}}const Fe=16;function Ct(e){return{display:"flex",alignItems:"stretch",marginRight:`-${e.spacing==null?Fe:e.spacing}px`}}function jt(e,t){const r=e.widthMode==="fill"||e.displayWidth==null;return{display:"flex",flexDirection:"column",justifyContent:e.justifyContent,width:r?void 0:e.widthMode==="px"?`${e.displayWidth||50}px`:e.widthMode==="percent"?`${e.displayWidth||50}%`:void 0,flex:r?"1 0 0":void 0,marginRight:`${t.spacing==null?Fe:t.spacing}px`,marginBottom:"0"}}function Tt(e){return{display:"flex",flexDirection:"column",justifyContent:e.justifyContent,width:e.widthMode==="px"&&e.displayWidth!=null?`${e.displayWidth}px`:e.widthMode==="percent"&&e.displayWidth!=null?`${e.displayWidth}%`:void 0,minHeight:e.heightMode==="px"?`${e.displayHeight||50}px`:void 0,flex:e.heightMode==="fill"?"1 0 0":void 0,marginTop:e.marginTop!=null?`${e.marginTop}px`:void 0,marginRight:e.marginRight!=null?`${e.marginRight}px`:e.widthMode!=="fill"&&e.align==="center"?"auto":void 0,marginBottom:e.marginBottom!=null?`${e.marginBottom}px`:void 0,marginLeft:e.marginLeft!=null?`${e.marginLeft}px`:e.widthMode!=="fill"&&(e.align==="center"||e.align==="right")?"auto":void 0}}function $e(e,t){if(!t)return null;const r=e.attributeName;if(typeof r=="string"){const i=t(r)||e.fallback;if(typeof i=="string")return i}return null}function De(e){return Array.isArray(e.children)&&typeof e.addMark>"u"}function xe(e,t,r="type"){return De(e)&&typeof e=="object"&&e[r]===t}function he(e){return typeof e.text=="string"}function Oe(e,t){function r(s,l){t(s,l),De(s)&&i(s.children)}function i(s){s&&s.forEach((l,a)=>l&&r(l,a))}i(Array.isArray(e)?e:e.children)}const Ht=n.memo(({doc:e,lookupAttribute:t})=>e?n.createElement(n.Fragment,null,z(e,{lookupAttribute:t})):null);function Jt(e,{buttons:t,questions:r}){const i=new Set,s=new Set;if(Oe(e,l=>{xe(l,"button")&&i.add(l.cvid),xe(l,"question")&&s.add(l.cvid)}),r){const l=r.filter(a=>!s.has(a.cvid));l.length>0&&(e={...e,children:[...e.children,...l.map(a=>({type:"question",cvid:a.cvid,children:[{text:""}]}))]})}if(t){const l=t.filter(a=>!i.has(a.cvid));l.length>0&&(e={...e,children:[...e.children,{type:"button-group",children:l.map(a=>({type:"button",cvid:a.cvid,children:[{text:""}]}))}]})}return e}function It(e){return e=e||"default","userflowjs-bubble-button "+(e==="primary"||e==="PRIMARY"||e==="default"||e==="DEFAULT"||e==="banner-primary"||e==="banner-secondary"?`userflowjs-bubble-button--${e.toLowerCase()}`:e)}const Qt=new URL("bubble-frame.css",import.meta.url).href;let we=!1;const V=[];let te=[],Ue;function Rt(e){V.push(e),V.length===1&&(we=!0,Me(),window.addEventListener("scroll",Pe))}function At(e){const t=V.indexOf(e);t>=0&&(V.splice(t,1),V.length===0&&(we=!1,window.cancelAnimationFrame(Ue),window.removeEventListener("scroll",Pe)))}function Xt(e){te.push(e)}function qt(){V.forEach(e=>e()),te.length>0&&(te.forEach(e=>e()),te=[]),Me()}function Me(){we&&(Ue=window.requestAnimationFrame(qt))}function Pe(){}function Zt({selector:e,targetMoved:t,targetLost:r,onTargetClick:i,onTargetMouseEnter:s,onTargetMouseLeave:l}){const a=p.useRef(t),c=p.useRef(r),h=p.useRef(i),d=p.useRef(s),g=p.useRef(l);p.useLayoutEffect(()=>{a.current=t,c.current=r,h.current=i,d.current=s,g.current=l}),p.useLayoutEffect(()=>{let m=null,v=null,E=null,b=!1;const f=()=>{m=null,v=null,E=null,c.current()};if(!e){f();return}const _=()=>{if(!E||!m)return;const k=Te(m);(!v||!Lt(v,k))&&(v=k,k.width===0&&k.height===0?f():a.current({targetEl:m,targetRect:v,clipEl:E,viewportClipRect:Ft(E)}))};let u=!1;const x=()=>{u||(u=!0,Rt(_))},R=()=>{u&&(u=!1,At(_))},K=()=>{h.current&&h.current()},C=()=>{d.current&&d.current()},U=()=>{g.current&&g.current()},G=()=>{const k=m;m=Ze(e)?e:Ye(e),(!b||m!==k)&&(k&&(k.removeEventListener("click",K),k.removeEventListener("mouseenter",C),k.removeEventListener("mouseleave",U)),m?(x(),m.addEventListener("click",K),m.addEventListener("mouseenter",C),m.addEventListener("mouseleave",U),E=et(m)):(R(),f())),b=!0};G();const Q=ze(G);return()=>{Q.disconnect(),R(),m&&(m.removeEventListener("click",K),m.removeEventListener("mouseenter",C),m.removeEventListener("mouseleave",U))}},[e])}function Lt(e,t){return e.left===t.left&&e.top===t.top&&e.width===t.width&&e.height===t.height}function Ft(e){tt();const t=ke(nt()),r=ke(rt());if(!e||e===document.documentElement)return{top:0,right:r,bottom:t,left:0};{const i=Te(e);return{top:Math.max(0,i.top),right:Math.min(r,i.right),bottom:Math.min(t,i.bottom),left:Math.max(0,i.left)}}}export{ut as B,Gt as R,st as S,Ht as a,Qt as b,Zt as c,Re as d,_e as e,it as f,$e as g,Ie as h,he as i,Kt as j,Jt as m,ot as n,Xt as r,z as s,be as u};
11
11
  //# sourceMappingURL=use-selector-element-monitoring.js.map
package/userflow.js CHANGED
@@ -1,7 +1,7 @@
1
1
  const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["ResourceCenterApp.js","vendor.react.js","vendor.core-js.js","vendor.object-assign.js","client-context.js","vendor.i18next.js","vendor.babel.runtime.js","vendor.react-i18next.js","flow-host.styl.js","use-selector-element-monitoring.js","flow-condition-types.js","vendor.date-fns.js","roots.js","stylesheets.js","vendor.fortawesome.pro-regular-svg-icons.js","vendor.fortawesome.pro-solid-svg-icons.js","vendor.obj-str.js","Frame.js","vendor.react-dom.js","vendor.scheduler.js","use-window-resize.js","logomark.js","ChecklistUI.js","FlowChrome.js","vendor.canvas-confetti.js","vendor.memoize-one.js","vendor.bignumber.js.js","use-element-rect.js","BannerApp.js","vendor.phoenix.js","vendor.uuid.js","implicit-tracking.js","DebuggerUI.js","vendor.lodash.js","vendor.fortawesome.react-fontawesome.js","vendor.fortawesome.fontawesome-svg-core.js","Popover.js","vendor.react-day-picker.js","ui.js"])))=>i.map(i=>d[i]);
2
2
  import"./vendor.core-js.js";import{S as Y}from"./vendor.phoenix.js";import{v as R}from"./vendor.uuid.js";(function(){try{var t=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(t._sentryDebugIds=t._sentryDebugIds||{},t._sentryDebugIds[e]="de4eeb4e-4b8f-470e-8b12-df701bea3fa6",t._sentryDebugIdIdentifier="sentry-dbid-de4eeb4e-4b8f-470e-8b12-df701bea3fa6")}catch{}})();const z="modulepreload",J=function(t){return new URL("./",import.meta.url).toString()+t},v={},g=function(e,s,i){let n=Promise.resolve();if(s&&s.length>0){document.getElementsByTagName("link");const a=document.querySelector("meta[property=csp-nonce]"),u=a?.nonce||a?.getAttribute("nonce");n=Promise.allSettled(s.map(c=>{if(c=J(c),c in v)return;v[c]=!0;const l=c.endsWith(".css"),T=l?'[rel="stylesheet"]':"";if(document.querySelector(`link[href="${c}"]${T}`))return;const E=document.createElement("link");if(E.rel=l?"stylesheet":z,l||(E.as="script"),E.crossOrigin="",E.href=c,u&&E.setAttribute("nonce",u),document.head.appendChild(E),l)return new Promise(($,j)=>{E.addEventListener("load",$),E.addEventListener("error",()=>j(new Error(`Unable to preload CSS for ${c}`)))})}))}function r(a){const u=new Event("vite:preloadError",{cancelable:!0});if(u.payload=a,window.dispatchEvent(u),!u.defaultPrevented)throw a}return n.then(a=>{for(const u of a||[])u.status==="rejected"&&r(u.reason);return e().catch(r)})};class h extends Error{constructor(e,s,i){super(e),Object.setPrototypeOf(this,h.prototype),this.name="UserflowError",this.code=s,this.humanMessage=i}}class B{constructor(e){this.type=e,this.testState={}}formatKey(e){return`userflow:${e}`}isSupported(){if(typeof window>"u")return!1;try{return window[this.type]!=null}catch{return!1}}getItem(e){return e=this.formatKey(e),this.isSupported()?window[this.type].getItem(e):null}setItem(e,s){e=this.formatKey(e);{if(!this.isSupported())return;window[this.type].setItem(e,s)}}removeItem(e){return e=this.formatKey(e),this.isSupported()?window[this.type].removeItem(e):void 0}clear(){return this.isSupported()?window[this.type].clear():void 0}}const I=new B("localStorage"),f=new B("sessionStorage");function nt(t){window.location.href=t}function H(){return window.location.href}function L(t){window.postMessage(t,window.origin)}function x(t){const e=i=>{if(i.source!==window||i.origin!==window.origin)return;const n=i.data;!n||typeof n!="object"||typeof n.kind!="string"||!n.kind.startsWith("userflow:")||t(n)===!0&&s()};window.addEventListener("message",e);const s=()=>window.removeEventListener("message",e);return s}function Q(t){return new Promise(e=>{x(s=>{const i=t(s);return i?(e(i),!0):!1})})}const N=new Set;let O=!1;function X(t){return Z(),N.add(t),()=>{G(t)}}function G(t){N.delete(t)}function w(){N.forEach(t=>t())}function Z(){if(O)return;O=!0;const{history:t}=window,e=s=>{const i=t[s];t[s]=(...n)=>{const r=i.apply(t,n);return w(),r}};window.__userflowStatePatched?(window.addEventListener("userflow:pushstate",()=>{w()}),window.addEventListener("userflow:replacestate",()=>{w()})):(e("pushState"),e("replaceState")),window.addEventListener("popstate",()=>{w()})}class q{destroy(){this.unregisterOnMessage&&this.unregisterOnMessage()}postBuilderMessage(e){L({kind:"userflow:crxSendProxyMessage",direction:"targetToBuilder",message:e})}onBuilderMessage(e){return this.unregisterOnMessage=x(e),!1}async captureScreenshot(e,s,i,n){return L({kind:"userflow:crxScreenshot",x:e,y:s,width:i,height:n,devicePixelRatio:window.devicePixelRatio}),(await Q(a=>a.kind==="userflow:crxScreenshotResult"?a:null)).imageDataUrl}}var C=(t=>(t.ACTION="ACTION",t.LAUNCHER_DEACTIVATED="LAUNCHER_DEACTIVATED",t.REPLACED="REPLACED",t.SNOOZED="SNOOZED",t.TOOLTIP_TARGET_MISSING="TOOLTIP_TARGET_MISSING",t.USERFLOWJS="USERFLOWJS",t.USER_CLOSED="USER_CLOSED",t))(C||{}),ee=(t=>(t.SECOND="SECOND",t.MINUTE="MINUTE",t.HOUR="HOUR",t.DAY="DAY",t))(ee||{}),m=(t=>(t.ACTION="ACTION",t.DRAFT="DRAFT",t.LINK="LINK",t.LAUNCHER_SEEN="LAUNCHER_SEEN",t.RESOURCE_CENTER="RESOURCE_CENTER",t.USERFLOWJS="USERFLOWJS",t))(m||{}),te=(t=>(t.LIKE="LIKE",t.DISLIKE="DISLIKE",t))(te||{}),S=(t=>(t.STRING="STRING",t.BOOLEAN="BOOLEAN",t.NUMBER="NUMBER",t.DATETIME="DATETIME",t.LIST="LIST",t.RANDOM_AB="RANDOM_AB",t.RANDOM_NUMBER="RANDOM_NUMBER",t.CHECKLIST_TASK="CHECKLIST_TASK",t.FLOW="FLOW",t.FLOW_SESSION="FLOW_SESSION",t.FLOW_STEP="FLOW_STEP",t.FLOW_VERSION="FLOW_VERSION",t))(S||{}),k=(t=>(t.FLOW="FLOW",t.BANNER="BANNER",t.EMBED="EMBED",t.CHECKLIST="CHECKLIST",t.LAUNCHER="LAUNCHER",t.RESOURCE_CENTER="RESOURCE_CENTER",t))(k||{}),se=(t=>(t.ALWAYS_TRUE="ALWAYS_TRUE",t.ATTRIBUTE="ATTRIBUTE",t.CHECKLIST_TASK_CLICKED="CHECKLIST_TASK_CLICKED",t.CLAUSE="CLAUSE",t.ELEMENT="ELEMENT",t.EVENT="EVENT",t.FILLED_IN_INPUT="FILLED_IN_INPUT",t.FLOW="FLOW",t.INPUT_VALUE="INPUT_VALUE",t.PAGE="PAGE",t.SEGMENT="SEGMENT",t.TIME="TIME",t))(se||{}),ie=(t=>(t.AUTO="AUTO",t.MANUAL="MANUAL",t))(ie||{}),ne=(t=>(t.INPUT="INPUT",t))(ne||{}),re=(t=>(t.ABSOLUTE_EQ="ABSOLUTE_EQ",t.ABSOLUTE_GT="ABSOLUTE_GT",t.ABSOLUTE_LT="ABSOLUTE_LT",t.AND="AND",t.BETWEEN="BETWEEN",t.CONTAINS="CONTAINS",t.EMPTY="EMPTY",t.ENDS_WITH="ENDS_WITH",t.EQ="EQ",t.EXCLUDES_ALL="EXCLUDES_ALL",t.EXCLUDES_ANY="EXCLUDES_ANY",t.FALSE="FALSE",t.GT="GT",t.GTE="GTE",t.INCLUDES_ALL="INCLUDES_ALL",t.INCLUDES_ANY="INCLUDES_ANY",t.LT="LT",t.LTE="LTE",t.NE="NE",t.NOT_CONTAINS="NOT_CONTAINS",t.NOT_EMPTY="NOT_EMPTY",t.NOT_REGEX="NOT_REGEX",t.OR="OR",t.REGEX="REGEX",t.RELATIVE_EQ="RELATIVE_EQ",t.RELATIVE_GT="RELATIVE_GT",t.RELATIVE_LT="RELATIVE_LT",t.STARTS_WITH="STARTS_WITH",t.TRUE="TRUE",t.URL="URL",t))(re||{}),oe=(t=>(t.CLICK="CLICK",t.DISABLED="DISABLED",t.MOUSEDOWN="MOUSEDOWN",t.NOT_CLICK="NOT_CLICK",t.NOT_DISABLED="NOT_DISABLED",t.NOT_PRESENT="NOT_PRESENT",t.PRESENT="PRESENT",t))(oe||{}),ae=(t=>(t.END_USER="END_USER",t.GROUP="GROUP",t))(ae||{}),ce=(t=>(t.BETWEEN="BETWEEN",t.EQ="EQ",t.GTE="GTE",t.LTE="LTE",t))(ce||{}),le=(t=>(t.ANY="ANY",t.RELATIVE_BETWEEN="RELATIVE_BETWEEN",t.RELATIVE_GT="RELATIVE_GT",t.RELATIVE_LT="RELATIVE_LT",t))(le||{}),ue=(t=>(t.CURRENT_USER="CURRENT_USER",t.CURRENT_USER_CURRENT_GROUP="CURRENT_USER_CURRENT_GROUP",t.CURRENT_GROUP="CURRENT_GROUP",t))(ue||{}),he=(t=>(t.ASSET="ASSET",t.CARTOON="CARTOON",t.NONE="NONE",t.URL="URL",t))(he||{}),de=(t=>(t.INSIDE="INSIDE",t.OUTSIDE="OUTSIDE",t))(de||{}),fe=(t=>(t.TOP_LEFT="TOP_LEFT",t.TOP_CENTER="TOP_CENTER",t.TOP_RIGHT="TOP_RIGHT",t.BOTTOM_RIGHT="BOTTOM_RIGHT",t.BOTTOM_CENTER="BOTTOM_CENTER",t.BOTTOM_LEFT="BOTTOM_LEFT",t.CENTER="CENTER",t))(fe||{}),Ee=(t=>(t.GOOGLE="GOOGLE",t.STANDARD="STANDARD",t))(Ee||{}),Se=(t=>(t.DISMISS_FIRST_MENU_AFTER="DISMISS_FIRST_MENU_AFTER",t.DISMISS="DISMISS",t))(Se||{}),Te=(t=>(t.DISMISS="DISMISS",t.NONE="NONE",t))(Te||{}),ge=(t=>(t.DEFAULT="DEFAULT",t.NARROW="NARROW",t.CHAINED_SQUARED="CHAINED_SQUARED",t.CHAINED_ROUNDED="CHAINED_ROUNDED",t.DOTTED="DOTTED",t.NUMBERED="NUMBERED",t))(ge||{}),Ie=(t=>(t.TOP="TOP",t.BOTTOM="BOTTOM",t))(Ie||{}),we=(t=>(t.DEFAULT="DEFAULT",t.PLAINTEXT="PLAINTEXT",t.CUSTOM="CUSTOM",t))(we||{}),Ce=(t=>(t.CHECKLIST_OVERRIDE="CHECKLIST_OVERRIDE",t.RESOURCE_CENTER_ONLY="RESOURCE_CENTER_ONLY",t.NONE="NONE",t))(Ce||{}),ke=(t=>(t.BUBBLE="BUBBLE",t.END="END",t.ERROR="ERROR",t.FLAG="FLAG",t))(ke||{}),me=(t=>(t.MANUAL="MANUAL",t.NONE="NONE",t.SYNTHETIC="SYNTHETIC",t))(me||{}),Ue=(t=>(t.BUBBLE="BUBBLE",t.HIDDEN="HIDDEN",t.MODAL="MODAL",t.TOOLTIP="TOOLTIP",t))(Ue||{}),pe=(t=>(t.ABOVE="ABOVE",t.BELOW="BELOW",t.LEFT="LEFT",t.RIGHT="RIGHT",t))(pe||{}),Le=(t=>(t.CLOSE_FLOW="CLOSE_FLOW",t.EVAL_JS="EVAL_JS",t.GO_TO_STEP="GO_TO_STEP",t.NAVIGATE="NAVIGATE",t.SET_ATTRIBUTE="SET_ATTRIBUTE",t.SNOOZE="SNOOZE",t.START_FLOW="START_FLOW",t.TRACK_BUTTON_EVENT="TRACK_BUTTON_EVENT",t))(Le||{}),_e=(t=>(t.NEW_TAB="NEW_TAB",t.SAME_TAB="SAME_TAB",t))(_e||{}),Ne=(t=>(t.SET="SET",t.SET_DATETIME="SET_DATETIME",t.SET_DATETIME_ONCE="SET_DATETIME_ONCE",t.SET_ONCE="SET_ONCE",t.ADD="ADD",t.SUBTRACT="SUBTRACT",t.APPEND="APPEND",t.PREPEND="PREPEND",t.REMOVE="REMOVE",t.UNSET="UNSET",t))(Ne||{}),Ae=(t=>(t.MULTILINE_TEXT="MULTILINE_TEXT",t.MULTIPLE_CHOICE="MULTIPLE_CHOICE",t.NPS="NPS",t.SCALE="SCALE",t.STARS="STARS",t.TEXT="TEXT",t))(Ae||{}),_=(t=>(t.ACTION="ACTION",t.ANNOUNCEMENTS="ANNOUNCEMENTS",t.ASSISTANT="ASSISTANT",t.CHECKLIST="CHECKLIST",t.CONTACT="CONTACT",t.DIVIDER="DIVIDER",t.FLOWS="FLOWS",t.KNOWLEDGE_BASE="KNOWLEDGE_BASE",t.MESSAGE="MESSAGE",t.SUBPAGE="SUBPAGE",t))(_||{}),Re=(t=>(t.CRISP="CRISP",t.CUSTOM="CUSTOM",t.FRESHCHAT="FRESHCHAT",t.HELPSCOUT="HELPSCOUT",t.HUBSPOT="HUBSPOT",t.INTERCOM="INTERCOM",t.ZENDESK="ZENDESK",t.ZENDESK_MESSENGER="ZENDESK_MESSENGER",t))(Re||{}),ve=(t=>(t.BUTTON="BUTTON",t.INPUT="INPUT",t))(ve||{}),Oe=(t=>(t.EMAIL="EMAIL",t.PHONE="PHONE",t.CHAT="CHAT",t))(Oe||{}),be=(t=>(t.SILENT="SILENT",t.BADGE="BADGE",t.POPOUT="POPOUT",t.MODAL="MODAL",t.TOAST="TOAST",t))(be||{}),ye=(t=>(t.LAUNCHER_CLICK="LAUNCHER_CLICK",t.LAUNCHER_HOVER="LAUNCHER_HOVER",t.TARGET_CLICK="TARGET_CLICK",t.TARGET_HOVER="TARGET_HOVER",t.LAUNCHER_TARGET_CLICK="LAUNCHER_TARGET_CLICK",t.LAUNCHER_TARGET_HOVER="LAUNCHER_TARGET_HOVER",t))(ye||{}),W=(t=>(t.ACTIVATE="ACTIVATE",t.DEACTIVATE="DEACTIVATE",t.NEVER="NEVER",t))(W||{}),De=(t=>(t.AUTO="AUTO",t.TOP="TOP",t.RIGHT="RIGHT",t.BOTTOM="BOTTOM",t.LEFT="LEFT",t))(De||{}),Me=(t=>(t.START="START",t.CENTER="CENTER",t.END="END",t))(Me||{}),Pe=(t=>(t.PERCENT="PERCENT",t.PX="PX",t))(Pe||{}),Be=(t=>(t.BEACON="BEACON",t.BUTTON="BUTTON",t.HIDDEN="HIDDEN",t.ICON="ICON",t))(Be||{}),He=(t=>(t.LAUNCHER="LAUNCHER",t.TARGET="TARGET",t))(He||{}),xe=(t=>(t.BODY_FIRST="BODY_FIRST",t.BODY_LAST="BODY_LAST",t.ELEMENT_FIRST="ELEMENT_FIRST",t.ELEMENT_LAST="ELEMENT_LAST",t.ELEMENT_BEFORE="ELEMENT_BEFORE",t.ELEMENT_AFTER="ELEMENT_AFTER",t))(xe||{}),Ge=(t=>(t.BODY_FIRST="BODY_FIRST",t.BODY_LAST="BODY_LAST",t.ELEMENT_FIRST="ELEMENT_FIRST",t.ELEMENT_LAST="ELEMENT_LAST",t.ELEMENT_BEFORE="ELEMENT_BEFORE",t.ELEMENT_AFTER="ELEMENT_AFTER",t))(Ge||{}),V=(t=>(t.CHECKLIST="CHECKLIST",t))(V||{}),We=(t=>(t.ALWAYS="ALWAYS",t.MULTIPLE="MULTIPLE",t.NEVER="NEVER",t.ONCE="ONCE",t.ONCE_PER_GROUP="ONCE_PER_GROUP",t))(We||{}),Ve=(t=>(t.NONE="NONE",t.PENDING_SCHEDULE="PENDING_SCHEDULE",t.SCHEDULED="SCHEDULED",t.FIRED="FIRED",t))(Ve||{}),Ke=(t=>(t.NONE="NONE",t.LIKE="LIKE",t.SCALE="SCALE",t))(Ke||{}),Fe=(t=>(t.HIDE="HIDE",t.BLOCK="BLOCK",t.OTHERS="OTHERS",t))(Fe||{});function $e(){return{customInputs:[],customNavigate:null,urlFilter:null,linkUrlDecorator:null,customScrollIntoView:null,scrollPadding:null,inferenceAttributeNames:["data-for","data-id","data-testid","data-test-id","for","id","name","placeholder","role"],inferenceAttributeFilters:{id:[t=>!t.match(/\d$/)],"data-id":[t=>!t.match(/\d$/)]},inferenceClassNameFilters:[t=>!t.startsWith("css-")],baseZIndex:1234500,evalJsDisabled:!1}}const d=$e();function b(t){return Array.isArray(t)||(t=t?[t]:[]),t=t.map(e=>typeof e=="string"?new RegExp(e):e),t}function rt(t,e){return t.every(s=>typeof s=="function"?s(e):s instanceof RegExp?s.test(e):!0)}function je(){let t=H();if(d.urlFilter){if(t=d.urlFilter(t),typeof t!="string")throw new h("Userflow.js: URL filter returned non-string value. Please check your userflow.setUrlFilter() implementation.");try{new URL(t)}catch(e){throw new h(`Userflow.js: URL filter returned an invalid URL. Please check your userflow.setUrlFilter() implementation.
3
3
  Returned URL: `+t+`
4
- Error message: `+e.message)}}return t}let K="";try{K=localStorage.getItem("debug")||""}catch{}const F=K.split(",").some(t=>t==="*"||t.startsWith("userflow:*")),o=A("log");o.group=A("group");o.groupCollapsed=A("groupCollapsed");o.groupEnd=function(){F&&console.groupEnd()};let U;function A(t){return function(e,...s){if(F){const i=performance.now(),n=U?Math.round(i-U):0;U=i,console[t](`%cuserflow %c${e} %c+${n}ms`,"color:#1a57e6;","","color:#1a57e6;",...s)}}}const Ye=()=>g(()=>import("./ResourceCenterApp.js").then(t=>t.R),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]));function ze(t){const s=t.version.checklist.tasks.length;return Math.max(0,s-t.taskCompletions.length)}class y{constructor(e){this.observers=new Set,this._value=e}get value(){return this._value}update(e){if(e!==this._value){this._value=e;for(const s of this.observers)s()}}observe(e){return this.observers.add(e),()=>this.observers.delete(e)}}const D=["page:before-change","page:change","turbo:before-cache","turbo:load","turbo:visit","turbolinks:before-cache","turbolinks:load","turbolinks:visit","livewire:navigated","livewire:navigating","livewire:update"],Je=()=>g(()=>import("./BannerApp.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,16,13,14,15,10,11,12,9,8,18,19,17,27,20,29,30])),p="1016675",Qe=import.meta.url,M=50,Xe=5*60*1e3,P="userflowClientState";class Ze{constructor(){this.clientToken=null,this.externalId=null,this.signature=null,this.groupId=null,this.groupSignature=null,this._socketStatus="disconnected",this.socket=null,this.channel=null,this.logrocketAppId=null,this.debounceInactiveDisconnectTimeout=void 0,this.inBatch=!1,this.endBatchTimeout=void 0,this.pushRateLimitMinute=0,this.pushRateLimitMinuteExpires=0,this.clientClock=1,this.serverClock=1,this.flowSession=null,this.flowSessionClock=0,this.checklistSession=null,this.checklistExpanded=!1,this.checklistExpandPending=!1,this.checklistSessionClock=0,this.bannerSession=null,this.resourceCenterSession=null,this.resourceCenterOpen=!1,this.resourceCenterLauncherHidden=!1,this.launcherSessions=[],this.activeLauncherFlowId=null,this.notifications=[],this.embedSessions=[],this.notificationIdCounter=0,this.sessionStorageState=null,this.clientContext=null,this.flushUrlChangeTimeout=void 0,this.onFirstIdentifyRun=!1,this.onFirstIdentifyTimeout=void 0,this.firstIdentifyCallback=null,this.ui=null,this.debuggerUI=null,this.debuggerMountInProgress=!1,this.unackedTasks=new Set,this.clientConditions=new Map,this.trackers=new Map,this.conditionWaitTimers=new Map,this.listeners=new Map,this.targetEnv=null,this.idempotencyKeysSeen=new Set,this.testUserIdentified=!1,this.cspIssueReported=!1,this.uiDisabled=!1,this.audio=null,this.audioReady=!1,this.pageTrackingDisabled=!1,this.refCounter=1,this.implicitTracking=null,this.initialMessagesQueue=[],this.onBuilderMessage=e=>(this.handleBuilderMessage(e),!1),this.handleBuilderMessage=async e=>{o(`builder ${e.kind} message received`,e);const s="idempotencyKey"in e&&typeof e.idempotencyKey=="string"?e.idempotencyKey:null;if(s&&this.idempotencyKeysSeen.has(s))return;const i=()=>{s&&this.idempotencyKeysSeen.add(s)};switch(e.kind){case"userflow:selectElement":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:selectElementAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:"elementSelection",elementSelection:{mode:"select",elementType:e.elementType}}));return}case"userflow:selectElementCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,elementSelection:null}));return}case"userflow:startFlowWithToken":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:startFlowWithTokenAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:null,testStartConditionToken:void 0})),f.setItem("previewFlowId",e.flowId),e.testUser?this.identifyTestUser(e.testUser):this.resetTestUser(),e.testStartCondition?this.setSessionStorageState(n=>({...n,activeApp:"startConditionTesting",testStartConditionToken:e.token})):this.onceIdentified(()=>{if(this.startFlowWithToken(e.token),e.isResourceCenter){const n=()=>{const r=this.resourceCenterSession;r&&r.draftMode&&r.flow.id===e.flowId&&(this.openResourceCenter(),this.off("resourceCenterChanged",n))};this.on("resourceCenterChanged",n),n()}});return}case"userflow:testTracker":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:testTrackerAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0})),e.testUser?this.identifyTestUser(e.testUser):this.resetTestUser(),this.setSessionStorageState(n=>({...n,activeApp:"trackerTesting",trackerTesting:{trackerName:e.trackerName,token:e.token,events:0}}));return}case"userflow:testTrackerCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,trackerTesting:null}));return}case"userflow:startSmartFlow":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:startSmartFlowAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:"smartFlowRecording",smartFlowRecording:{sessionId:e.sessionId,isRecording:!0,startUrl:e.startUrl||null}}));return}case"userflow:smartFlowCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,smartFlowRecording:null}));return}case"userflow:smartFlowStartOverAck":return;case"userflow:smartFlowComplete":{this.setSessionStorageState(n=>({...n,activeApp:null,smartFlowRecording:null}));return}}},this.onUrlChange=()=>{this.externalId&&(window.clearTimeout(this.flushUrlChangeTimeout),this.flushUrlChangeTimeout=window.setTimeout(()=>this.flushUrlChange(),M))},this.onUserActivity=()=>this.ensureConnected(),this.remountIfNecessary=()=>{!this.ui?.container||document.contains(this.ui.container)||(o("remounting UI because container was missing"),this.remount())},o("constructor, build="+p),X(this.onUrlChange),this.setTargetEnv(new q),this.checkTestUserAtBoot(),this.toggleUI(),this.checkDebuggerSession();for(const e of D)document.addEventListener(e,this.remountIfNecessary)}get socketStatus(){return this._socketStatus}destroy(){o("destroy"),this.reset(),G(this.onUrlChange),this.destroyTargetEnv();for(const e of D)document.removeEventListener(e,this.remountIfNecessary)}setTargetEnv(e){this.destroyTargetEnv(),this.targetEnv=e,e.onBuilderMessage(this.onBuilderMessage)}destroyTargetEnv(){this.targetEnv&&(this.targetEnv.destroy(),this.targetEnv=null)}getTargetEnv(){if(!this.targetEnv)throw new h("Userflow.js: Cannot call getTargetEnv when protocol is not set");return this.targetEnv}setSessionStorageState(e){const s=e(this.getSessionStorageState());f.setItem(P,JSON.stringify(s)),this.sessionStorageState=s,this.toggleUI()}getSessionStorageState(){let e=this.sessionStorageState;if(!e){const s=f.getItem(P);if(s)try{e=JSON.parse(s)}catch(i){console.error("Userflow.js: Parse ElementSelectionState error:",i)}e||(e={testUser:null,activeApp:null,elementSelection:null,trackerTesting:null}),this.sessionStorageState=e}return e}checkTestUserAtBoot(){const e=this.getSessionStorageState().testUser;e&&(o("checkTestUserAtBoot identifying test user"),this.identifyTestUser(e))}async identifyTestUser(e){this.setSessionStorageState(n=>({...n,testUser:e})),this.reset(),this.init(e.clientToken),this.testUserIdentified=!0,this.externalId=e.id;const s=[this.identify(e.id,{name:e.name,email:e.email,signed_up_at:{set_once:new Date().toISOString(),data_type:"datetime"}},{signature:e.signature})],{group:i}=e;i&&(this.groupId=i.id,s.push(this.group(i.id,{name:i.name},{signature:i.signature}))),await Promise.all(s)}resetTestUser(){this.setSessionStorageState(e=>({...e,testUser:null}))}init(e){if(o("init",e),!e)throw new h("userflow.init() was called but missing Userflow.js Token");if(this.clientToken!==e){if(this.testUserIdentified){o("init() ignoring new token since a test user has been identified");return}this.clientToken&&(o("init() resetting due to new client token"),this.reset()),this.clientToken=e,this.emit("private:initialised")}}ensureInit(){if(!this.clientToken)throw new h("You must call userflow.init() first")}ensureIdentified(){if(this.ensureInit(),!this.externalId)throw new h("You must call userflow.identify() first");return this.externalId}ensureGroup(){if(this.ensureIdentified(),!this.groupId)throw new h("You must call userflow.group() first");return this.groupId}ensureConnected(){if(!this.clientToken||!this.externalId||(this.debounceInactiveDisconnect(),this.socket))return;this._socketStatus="connecting",o("connecting to socket");const e=/^ct_eu\d+_.+$/.test(this.clientToken)?"e.eu.":"e.";let s=d.serverEndpoint||e+"userflow.com";new URL(Qe).hostname==="js.getuserflow.com"&&s==="e.userflow.com"&&(s="e.getuserflow.com");const i="wss://"+s+"/end-users/"+this.clientToken+"/socket";this.socket=new Y(i,{reconnectAfterMs:n=>[100,500,1e3,5e3][n-1]||1e4,timeout:20*1e3}),this.socket.connect(),this.socket.onOpen(()=>{o("socket opened")}),this.socket.onClose(()=>{this.emit("private:disconnect")}),this.socket.onError(n=>{console.log("Userflow.js socket error",n),this.reportCspIssue()}),this.channel=this.socket.channel(`end_users:${this.externalId}`,()=>this.makeChannelJoinPayload()),this.channel.join().receive("ok",n=>{typeof this.featureFlags>"u"&&this.clearInitialMessagesQueue(n.featureFlags),this.logrocketAppId=n.logrocketAppId,this.featureFlags=new Set(n.featureFlags),o("channel joined"),this._socketStatus!=="connected"&&(this._socketStatus="connected"),this.featureFlagEnabled("cff_implicit_events")===!0&&!this.implicitTracking&&this.startImplicitTracking(),!this.featureFlagEnabled("cff_implicit_events")&&this.implicitTracking&&(this.implicitTracking.stop(),this.implicitTracking=null)}).receive("error",n=>{["company_closed","invalid_client_token","invalid_user_external_id","incorrect_user_signature","rate_limit_exceeded","user_signature_required"].includes(n.code)?(console.error(`Userflow.js resetting due to: [${n.code}] ${n.message}`),this.reset(),this.clientToken=null):n.code==="invalid_protocol_version"?(console.error(`Userflow.js destroying due to: [${n.code}] ${n.message}`),this.destroy()):console.log("Userflow.js channel join error",n)}),this.channel.on("server_message",n=>this.handleServerMessage(n)),this.channel.on("server_error",n=>{console.log(`Userflow.js server error (${n.code}): ${n.message}`+(n.details&&n.details.length>0?`
4
+ Error message: `+e.message)}}return t}let K="";try{K=localStorage.getItem("debug")||""}catch{}const F=K.split(",").some(t=>t==="*"||t.startsWith("userflow:*")),o=A("log");o.group=A("group");o.groupCollapsed=A("groupCollapsed");o.groupEnd=function(){F&&console.groupEnd()};let U;function A(t){return function(e,...s){if(F){const i=performance.now(),n=U?Math.round(i-U):0;U=i,console[t](`%cuserflow %c${e} %c+${n}ms`,"color:#1a57e6;","","color:#1a57e6;",...s)}}}const Ye=()=>g(()=>import("./ResourceCenterApp.js").then(t=>t.R),__vite__mapDeps([0,1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27]));function ze(t){const s=t.version.checklist.tasks.length;return Math.max(0,s-t.taskCompletions.length)}class y{constructor(e){this.observers=new Set,this._value=e}get value(){return this._value}update(e){if(e!==this._value){this._value=e;for(const s of this.observers)s()}}observe(e){return this.observers.add(e),()=>this.observers.delete(e)}}const D=["page:before-change","page:change","turbo:before-cache","turbo:load","turbo:visit","turbolinks:before-cache","turbolinks:load","turbolinks:visit","livewire:navigated","livewire:navigating","livewire:update"],Je=()=>g(()=>import("./BannerApp.js"),__vite__mapDeps([28,1,2,3,4,5,6,7,16,13,14,15,10,11,12,9,8,18,19,17,27,20,29,30])),p="1016698",Qe=import.meta.url,M=50,Xe=5*60*1e3,P="userflowClientState";class Ze{constructor(){this.clientToken=null,this.externalId=null,this.signature=null,this.groupId=null,this.groupSignature=null,this._socketStatus="disconnected",this.socket=null,this.channel=null,this.logrocketAppId=null,this.debounceInactiveDisconnectTimeout=void 0,this.inBatch=!1,this.endBatchTimeout=void 0,this.pushRateLimitMinute=0,this.pushRateLimitMinuteExpires=0,this.clientClock=1,this.serverClock=1,this.flowSession=null,this.flowSessionClock=0,this.checklistSession=null,this.checklistExpanded=!1,this.checklistExpandPending=!1,this.checklistSessionClock=0,this.bannerSession=null,this.resourceCenterSession=null,this.resourceCenterOpen=!1,this.resourceCenterLauncherHidden=!1,this.launcherSessions=[],this.activeLauncherFlowId=null,this.notifications=[],this.embedSessions=[],this.notificationIdCounter=0,this.sessionStorageState=null,this.clientContext=null,this.flushUrlChangeTimeout=void 0,this.onFirstIdentifyRun=!1,this.onFirstIdentifyTimeout=void 0,this.firstIdentifyCallback=null,this.ui=null,this.debuggerUI=null,this.debuggerMountInProgress=!1,this.unackedTasks=new Set,this.clientConditions=new Map,this.trackers=new Map,this.conditionWaitTimers=new Map,this.listeners=new Map,this.targetEnv=null,this.idempotencyKeysSeen=new Set,this.testUserIdentified=!1,this.cspIssueReported=!1,this.uiDisabled=!1,this.audio=null,this.audioReady=!1,this.pageTrackingDisabled=!1,this.refCounter=1,this.implicitTracking=null,this.initialMessagesQueue=[],this.onBuilderMessage=e=>(this.handleBuilderMessage(e),!1),this.handleBuilderMessage=async e=>{o(`builder ${e.kind} message received`,e);const s="idempotencyKey"in e&&typeof e.idempotencyKey=="string"?e.idempotencyKey:null;if(s&&this.idempotencyKeysSeen.has(s))return;const i=()=>{s&&this.idempotencyKeysSeen.add(s)};switch(e.kind){case"userflow:selectElement":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:selectElementAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:"elementSelection",elementSelection:{mode:"select",elementType:e.elementType}}));return}case"userflow:selectElementCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,elementSelection:null}));return}case"userflow:startFlowWithToken":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:startFlowWithTokenAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:null,testStartConditionToken:void 0})),f.setItem("previewFlowId",e.flowId),e.testUser?this.identifyTestUser(e.testUser):this.resetTestUser(),e.testStartCondition?this.setSessionStorageState(n=>({...n,activeApp:"startConditionTesting",testStartConditionToken:e.token})):this.onceIdentified(()=>{if(this.startFlowWithToken(e.token),e.isResourceCenter){const n=()=>{const r=this.resourceCenterSession;r&&r.draftMode&&r.flow.id===e.flowId&&(this.openResourceCenter(),this.off("resourceCenterChanged",n))};this.on("resourceCenterChanged",n),n()}});return}case"userflow:testTracker":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:testTrackerAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0})),e.testUser?this.identifyTestUser(e.testUser):this.resetTestUser(),this.setSessionStorageState(n=>({...n,activeApp:"trackerTesting",trackerTesting:{trackerName:e.trackerName,token:e.token,events:0}}));return}case"userflow:testTrackerCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,trackerTesting:null}));return}case"userflow:startSmartFlow":{i(),this.getTargetEnv().postBuilderMessage({kind:"userflow:startSmartFlowAck",idempotencyKey:e.idempotencyKey}),this.setSessionStorageState(n=>({...n,isTargetTab:!0,activeApp:"smartFlowRecording",smartFlowRecording:{sessionId:e.sessionId,isRecording:!0,startUrl:e.startUrl||null}}));return}case"userflow:smartFlowCancel":{this.setSessionStorageState(n=>({...n,activeApp:null,smartFlowRecording:null}));return}case"userflow:smartFlowStartOverAck":return;case"userflow:smartFlowComplete":{this.setSessionStorageState(n=>({...n,activeApp:null,smartFlowRecording:null}));return}}},this.onUrlChange=()=>{this.externalId&&(window.clearTimeout(this.flushUrlChangeTimeout),this.flushUrlChangeTimeout=window.setTimeout(()=>this.flushUrlChange(),M))},this.onUserActivity=()=>this.ensureConnected(),this.remountIfNecessary=()=>{!this.ui?.container||document.contains(this.ui.container)||(o("remounting UI because container was missing"),this.remount())},o("constructor, build="+p),X(this.onUrlChange),this.setTargetEnv(new q),this.checkTestUserAtBoot(),this.toggleUI(),this.checkDebuggerSession();for(const e of D)document.addEventListener(e,this.remountIfNecessary)}get socketStatus(){return this._socketStatus}destroy(){o("destroy"),this.reset(),G(this.onUrlChange),this.destroyTargetEnv();for(const e of D)document.removeEventListener(e,this.remountIfNecessary)}setTargetEnv(e){this.destroyTargetEnv(),this.targetEnv=e,e.onBuilderMessage(this.onBuilderMessage)}destroyTargetEnv(){this.targetEnv&&(this.targetEnv.destroy(),this.targetEnv=null)}getTargetEnv(){if(!this.targetEnv)throw new h("Userflow.js: Cannot call getTargetEnv when protocol is not set");return this.targetEnv}setSessionStorageState(e){const s=e(this.getSessionStorageState());f.setItem(P,JSON.stringify(s)),this.sessionStorageState=s,this.toggleUI()}getSessionStorageState(){let e=this.sessionStorageState;if(!e){const s=f.getItem(P);if(s)try{e=JSON.parse(s)}catch(i){console.error("Userflow.js: Parse ElementSelectionState error:",i)}e||(e={testUser:null,activeApp:null,elementSelection:null,trackerTesting:null}),this.sessionStorageState=e}return e}checkTestUserAtBoot(){const e=this.getSessionStorageState().testUser;e&&(o("checkTestUserAtBoot identifying test user"),this.identifyTestUser(e))}async identifyTestUser(e){this.setSessionStorageState(n=>({...n,testUser:e})),this.reset(),this.init(e.clientToken),this.testUserIdentified=!0,this.externalId=e.id;const s=[this.identify(e.id,{name:e.name,email:e.email,signed_up_at:{set_once:new Date().toISOString(),data_type:"datetime"}},{signature:e.signature})],{group:i}=e;i&&(this.groupId=i.id,s.push(this.group(i.id,{name:i.name},{signature:i.signature}))),await Promise.all(s)}resetTestUser(){this.setSessionStorageState(e=>({...e,testUser:null}))}init(e){if(o("init",e),!e)throw new h("userflow.init() was called but missing Userflow.js Token");if(this.clientToken!==e){if(this.testUserIdentified){o("init() ignoring new token since a test user has been identified");return}this.clientToken&&(o("init() resetting due to new client token"),this.reset()),this.clientToken=e,this.emit("private:initialised")}}ensureInit(){if(!this.clientToken)throw new h("You must call userflow.init() first")}ensureIdentified(){if(this.ensureInit(),!this.externalId)throw new h("You must call userflow.identify() first");return this.externalId}ensureGroup(){if(this.ensureIdentified(),!this.groupId)throw new h("You must call userflow.group() first");return this.groupId}ensureConnected(){if(!this.clientToken||!this.externalId||(this.debounceInactiveDisconnect(),this.socket))return;this._socketStatus="connecting",o("connecting to socket");const e=/^ct_eu\d+_.+$/.test(this.clientToken)?"e.eu.":"e.";let s=d.serverEndpoint||e+"userflow.com";new URL(Qe).hostname==="js.getuserflow.com"&&s==="e.userflow.com"&&(s="e.getuserflow.com");const i="wss://"+s+"/end-users/"+this.clientToken+"/socket";this.socket=new Y(i,{reconnectAfterMs:n=>[100,500,1e3,5e3][n-1]||1e4,timeout:20*1e3}),this.socket.connect(),this.socket.onOpen(()=>{o("socket opened")}),this.socket.onClose(()=>{this.emit("private:disconnect")}),this.socket.onError(n=>{console.log("Userflow.js socket error",n),this.reportCspIssue()}),this.channel=this.socket.channel(`end_users:${this.externalId}`,()=>this.makeChannelJoinPayload()),this.channel.join().receive("ok",n=>{typeof this.featureFlags>"u"&&this.clearInitialMessagesQueue(n.featureFlags),this.logrocketAppId=n.logrocketAppId,this.featureFlags=new Set(n.featureFlags),o("channel joined"),this._socketStatus!=="connected"&&(this._socketStatus="connected"),this.featureFlagEnabled("cff_implicit_events")===!0&&!this.implicitTracking&&this.startImplicitTracking(),!this.featureFlagEnabled("cff_implicit_events")&&this.implicitTracking&&(this.implicitTracking.stop(),this.implicitTracking=null)}).receive("error",n=>{["company_closed","invalid_client_token","invalid_user_external_id","incorrect_user_signature","rate_limit_exceeded","user_signature_required"].includes(n.code)?(console.error(`Userflow.js resetting due to: [${n.code}] ${n.message}`),this.reset(),this.clientToken=null):n.code==="invalid_protocol_version"?(console.error(`Userflow.js destroying due to: [${n.code}] ${n.message}`),this.destroy()):console.log("Userflow.js channel join error",n)}),this.channel.on("server_message",n=>this.handleServerMessage(n)),this.channel.on("server_error",n=>{console.log(`Userflow.js server error (${n.code}): ${n.message}`+(n.details&&n.details.length>0?`
5
5
  Details:
6
6
  `+n.details.map(r=>(r.path?`${r.path}: `:"")+r.message):""))})}async startImplicitTracking(){await g(()=>import("./implicit-tracking.js"),__vite__mapDeps([31,12,2,30,29])).then(e=>{this.implicitTracking=new e.ImplicitTracking(this),this.implicitTracking.start()}).catch(e=>o(`Implicit tracking failed to load ${e}`))}makeChannelJoinPayload(){const e=this.buildClientContext();this.clientContext=e;const s={protocolVersion:2,userflowClientBuild:p,signature:this.signature,groupExternalId:this.groupId,groupSignature:this.groupSignature,flowSessionId:this.flowSession?.id||null,checklistSessionId:this.checklistSession?.id||null,bannerSessionId:this.bannerSession?.id||null,resourceCenterSessionId:this.resourceCenterSession?.id||null,launchers:this.launcherSessions.map(i=>({flowId:i.flow.id})),trackers:Array.from(this.trackers.values()).map(i=>({flowId:i.tracker.flowId})),hasDraftSession:this.hasDraftSession(),clientConditions:Array.from(this.clientConditions.values()).map(i=>({conditionId:i.condition.id,isTrue:i.isTrue})),previewFlowId:f.getItem("previewFlowId"),clientContext:e};return o("channel join payload",s),s}disconnect(){window.clearTimeout(this.debounceInactiveDisconnectTimeout),this.socket&&this.socket.disconnect(),this._socketStatus="disconnected",this.socket=null,this.channel=null}debounceInactiveDisconnect(){window.clearTimeout(this.debounceInactiveDisconnectTimeout),this.debounceInactiveDisconnectTimeout=window.setTimeout(()=>{if(this.hasDraftSession()||this.assistantMessageInProgress){this.debounceInactiveDisconnect();return}o("disconnecting from socket due to inactivity"),this.disconnect()},Xe)}hasDraftSession(){return!!this.flowSession?.draftMode||!!this.checklistSession?.draftMode||!!this.bannerSession?.draftMode||!!this.resourceCenterSession?.draftMode||this.launcherSessions.some(e=>e.draftMode)}async send(e,{batch:s,endBatch:i,handlesRejection:n}={}){return(!this.inBatch||!["ToggleClientCondition","UpdateClientContext"].includes(e.kind))&&this.checkPushRateLimit(),this.ensureConnected(),s&&!this.inBatch&&(this.inBatch=!0,this.sendRaw({kind:"BeginBatch"})),this.inBatch&&(window.clearTimeout(this.endBatchTimeout),i?this.endBatch():this.endBatchTimeout=window.setTimeout(()=>{this.endBatch()},M)),this.sendRaw(e,{handlesRejection:n})}clearInitialMessagesQueue(e){if(this.initialMessagesQueue.length===0)return;const s=e.includes("cff_disable_page_views")===!0,i=e.includes("cff_implicit_events")===!1;for(const n of this.initialMessagesQueue){const{message:r,handlesRejection:a,resolve:u,reject:c}=n;if(i&&r.kind==="TrackRawEvent"){u("skipped due to disabled implicit events");continue}if(s&&(r.kind==="TrackEvent"&&r.name==="page_viewed"||r.kind==="TrackRawEvent"&&r.name==="page_viewed")){u("skipped due to disabled page views tracking");continue}this._sendToChannel(r,u,c,{handlesRejection:a})}this.initialMessagesQueue=[]}async sendRaw(e,{handlesRejection:s}={}){return typeof this.featureFlags>"u"?new Promise((i,n)=>{this.initialMessagesQueue.push({message:e,resolve:i,reject:n,handlesRejection:s})}):new Promise((i,n)=>{this._sendToChannel(e,i,n,{handlesRejection:s})})}_sendToChannel(e,s,i,{handlesRejection:n}={}){if(!this.channel){const c=`Userflow.js: send() should not be called if channel is not set. Message kind=${e.kind}`;if(n)throw Error(c);console.log(c,`
7
7
  Client message:`,e);return}o(`push ${e.kind} message`,e);const r=this.clientClock,a=()=>{this.serverClock=r,this.channel?.off("phx_error",u)},u=this.channel.on("phx_error",c=>{a();const l=`Userflow.js send ${e.kind} got phx_error`;this._socketStatus==="connected"&&console.log(l,`
package/vendor.core-js.js CHANGED
@@ -1,2 +1,2 @@
1
- (function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[e]="c92da9a2-58ee-4f82-b88c-5a63f6e24928",r._sentryDebugIdIdentifier="sentry-dbid-c92da9a2-58ee-4f82-b88c-5a63f6e24928")}catch{}})();var Ze=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};Ze.SENTRY_RELEASE={id:"1d2da7c13f766bc227ec559125c22d46016230e3"};var F=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yi(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var P=function(r){return r&&r.Math===Math&&r},f=P(typeof globalThis=="object"&&globalThis)||P(typeof window=="object"&&window)||P(typeof self=="object"&&self)||P(typeof F=="object"&&F)||P(typeof F=="object"&&F)||function(){return this}()||Function("return this")(),gr={},h=function(r){try{return!!r()}catch{return!0}},Qe=h,g=!Qe(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),rt=h,Or=!rt(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")}),et=Or,B=Function.prototype.call,O=et?B.bind(B):function(){return B.apply(B,arguments)},fe={},se={}.propertyIsEnumerable,ye=Object.getOwnPropertyDescriptor,tt=ye&&!se.call({1:2},1);fe.f=tt?function(e){var t=ye(this,e);return!!t&&t.enumerable}:se;var de=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}},$e=Or,pe=Function.prototype,sr=pe.call,nt=$e&&pe.bind.bind(sr,sr),b=$e?nt:function(r){return function(){return sr.apply(r,arguments)}},be=b,at=be({}.toString),ot=be("".slice),q=function(r){return ot(at(r),8,-1)},it=b,vt=h,ut=q,H=Object,ct=it("".split),lt=vt(function(){return!H("z").propertyIsEnumerable(0)})?function(r){return ut(r)==="String"?ct(r,""):H(r)}:H,Sr=function(r){return r==null},ft=Sr,st=TypeError,he=function(r){if(ft(r))throw new st("Can't call method on "+r);return r},yt=lt,dt=he,Er=function(r){return yt(dt(r))},X=typeof document=="object"&&document.all,d=typeof X>"u"&&X!==void 0?function(r){return typeof r=="function"||r===X}:function(r){return typeof r=="function"},$t=d,_=function(r){return typeof r=="object"?r!==null:$t(r)},Z=f,pt=d,bt=function(r){return pt(r)?r:void 0},ge=function(r,e){return arguments.length<2?bt(Z[r]):Z[r]&&Z[r][e]},ht=b,Oe=ht({}.isPrototypeOf),gt=f,_r=gt.navigator,Dr=_r&&_r.userAgent,Se=Dr?String(Dr):"",Ee=f,Q=Se,Mr=Ee.process,Ar=Ee.Deno,Fr=Mr&&Mr.versions||Ar&&Ar.version,Br=Fr&&Fr.v8,$,W;Br&&($=Br.split("."),W=$[0]>0&&$[0]<4?1:+($[0]+$[1]));!W&&Q&&($=Q.match(/Edge\/(\d+)/),(!$||$[1]>=74)&&($=Q.match(/Chrome\/(\d+)/),$&&(W=+$[1])));var Te=W,Lr=Te,Ot=h,St=f,Et=St.String,we=!!Object.getOwnPropertySymbols&&!Ot(function(){var r=Symbol("symbol detection");return!Et(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Lr&&Lr<41}),Tt=we,Ie=Tt&&!Symbol.sham&&typeof Symbol.iterator=="symbol",wt=ge,It=d,mt=Oe,Rt=Ie,Pt=Object,me=Rt?function(r){return typeof r=="symbol"}:function(r){var e=wt("Symbol");return It(e)&&mt(e.prototype,Pt(r))},Ct=String,Tr=function(r){try{return Ct(r)}catch{return"Object"}},jt=d,Nt=Tr,_t=TypeError,D=function(r){if(jt(r))return r;throw new _t(Nt(r)+" is not a function")},Dt=D,Mt=Sr,wr=function(r,e){var t=r[e];return Mt(t)?void 0:Dt(t)},rr=O,er=d,tr=_,At=TypeError,Ft=function(r,e){var t,n;if(e==="string"&&er(t=r.toString)&&!tr(n=rr(t,r))||er(t=r.valueOf)&&!tr(n=rr(t,r))||e!=="string"&&er(t=r.toString)&&!tr(n=rr(t,r)))return n;throw new At("Can't convert object to primitive value")},Re={exports:{}},Ur=f,Bt=Object.defineProperty,Ir=function(r,e){try{Bt(Ur,r,{value:e,configurable:!0,writable:!0})}catch{Ur[r]=e}return e},Lt=f,Ut=Ir,Gr="__core-js_shared__",xr=Re.exports=Lt[Gr]||Ut(Gr,{});(xr.versions||(xr.versions=[])).push({version:"3.39.0",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",source:"https://github.com/zloirock/core-js"});var mr=Re.exports,Kr=mr,Pe=function(r,e){return Kr[r]||(Kr[r]=e||{})},Gt=he,xt=Object,Kt=function(r){return xt(Gt(r))},Vt=b,kt=Kt,Wt=Vt({}.hasOwnProperty),S=Object.hasOwn||function(e,t){return Wt(kt(e),t)},zt=b,Yt=0,qt=Math.random(),Jt=zt(1 .toString),Ce=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Jt(++Yt+qt,36)},Ht=f,Xt=Pe,Vr=S,Zt=Ce,Qt=we,rn=Ie,m=Ht.Symbol,nr=Xt("wks"),en=rn?m.for||m:m&&m.withoutSetter||Zt,E=function(r){return Vr(nr,r)||(nr[r]=Qt&&Vr(m,r)?m[r]:en("Symbol."+r)),nr[r]},tn=O,kr=_,Wr=me,nn=wr,an=Ft,on=E,vn=TypeError,un=on("toPrimitive"),cn=function(r,e){if(!kr(r)||Wr(r))return r;var t=nn(r,un),n;if(t){if(e===void 0&&(e="default"),n=tn(t,r,e),!kr(n)||Wr(n))return n;throw new vn("Can't convert object to primitive value")}return e===void 0&&(e="number"),an(r,e)},ln=cn,fn=me,je=function(r){var e=ln(r,"string");return fn(e)?e:e+""},sn=f,zr=_,yr=sn.document,yn=zr(yr)&&zr(yr.createElement),dn=function(r){return yn?yr.createElement(r):{}},$n=g,pn=h,bn=dn,Ne=!$n&&!pn(function(){return Object.defineProperty(bn("div"),"a",{get:function(){return 7}}).a!==7}),hn=g,gn=O,On=fe,Sn=de,En=Er,Tn=je,wn=S,In=Ne,Yr=Object.getOwnPropertyDescriptor;gr.f=hn?Yr:function(e,t){if(e=En(e),t=Tn(t),In)try{return Yr(e,t)}catch{}if(wn(e,t))return Sn(!gn(On.f,e,t),e[t])};var J={},mn=g,Rn=h,Pn=mn&&Rn(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Cn=_,jn=String,Nn=TypeError,M=function(r){if(Cn(r))return r;throw new Nn(jn(r)+" is not an object")},_n=g,Dn=Ne,Mn=Pn,L=M,qr=je,An=TypeError,ar=Object.defineProperty,Fn=Object.getOwnPropertyDescriptor,or="enumerable",ir="configurable",vr="writable";J.f=_n?Mn?function(e,t,n){if(L(e),t=qr(t),L(n),typeof e=="function"&&t==="prototype"&&"value"in n&&vr in n&&!n[vr]){var a=Fn(e,t);a&&a[vr]&&(e[t]=n.value,n={configurable:ir in n?n[ir]:a[ir],enumerable:or in n?n[or]:a[or],writable:!1})}return ar(e,t,n)}:ar:function(e,t,n){if(L(e),t=qr(t),L(n),Dn)try{return ar(e,t,n)}catch{}if("get"in n||"set"in n)throw new An("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var Bn=g,Ln=J,Un=de,_e=Bn?function(r,e,t){return Ln.f(r,e,Un(1,t))}:function(r,e,t){return r[e]=t,r},De={exports:{}},dr=g,Gn=S,Me=Function.prototype,xn=dr&&Object.getOwnPropertyDescriptor,Rr=Gn(Me,"name"),Kn=Rr&&function(){}.name==="something",Vn=Rr&&(!dr||dr&&xn(Me,"name").configurable),kn={EXISTS:Rr,PROPER:Kn,CONFIGURABLE:Vn},Wn=b,zn=d,$r=mr,Yn=Wn(Function.toString);zn($r.inspectSource)||($r.inspectSource=function(r){return Yn(r)});var Ae=$r.inspectSource,qn=f,Jn=d,Jr=qn.WeakMap,Hn=Jn(Jr)&&/native code/.test(String(Jr)),Xn=Pe,Zn=Ce,Hr=Xn("keys"),Qn=function(r){return Hr[r]||(Hr[r]=Zn(r))},Fe={},ra=Hn,Be=f,ea=_,ta=_e,ur=S,cr=mr,na=Qn,aa=Fe,Xr="Object already initialized",pr=Be.TypeError,oa=Be.WeakMap,z,N,Y,ia=function(r){return Y(r)?N(r):z(r,{})},va=function(r){return function(e){var t;if(!ea(e)||(t=N(e)).type!==r)throw new pr("Incompatible receiver, "+r+" required");return t}};if(ra||cr.state){var p=cr.state||(cr.state=new oa);p.get=p.get,p.has=p.has,p.set=p.set,z=function(r,e){if(p.has(r))throw new pr(Xr);return e.facade=r,p.set(r,e),e},N=function(r){return p.get(r)||{}},Y=function(r){return p.has(r)}}else{var I=na("state");aa[I]=!0,z=function(r,e){if(ur(r,I))throw new pr(Xr);return e.facade=r,ta(r,I,e),e},N=function(r){return ur(r,I)?r[I]:{}},Y=function(r){return ur(r,I)}}var ua={set:z,get:N,has:Y,enforce:ia,getterFor:va},Pr=b,ca=h,la=d,U=S,br=g,fa=kn.CONFIGURABLE,sa=Ae,Le=ua,ya=Le.enforce,da=Le.get,Zr=String,K=Object.defineProperty,$a=Pr("".slice),pa=Pr("".replace),ba=Pr([].join),ha=br&&!ca(function(){return K(function(){},"length",{value:8}).length!==8}),ga=String(String).split("String"),Oa=De.exports=function(r,e,t){$a(Zr(e),0,7)==="Symbol("&&(e="["+pa(Zr(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!U(r,"name")||fa&&r.name!==e)&&(br?K(r,"name",{value:e,configurable:!0}):r.name=e),ha&&t&&U(t,"arity")&&r.length!==t.arity&&K(r,"length",{value:t.arity});try{t&&U(t,"constructor")&&t.constructor?br&&K(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var n=ya(r);return U(n,"source")||(n.source=ba(ga,typeof e=="string"?e:"")),r};Function.prototype.toString=Oa(function(){return la(this)&&da(this).source||sa(this)},"toString");var Sa=De.exports,Ea=d,Ta=J,wa=Sa,Ia=Ir,ma=function(r,e,t,n){n||(n={});var a=n.enumerable,o=n.name!==void 0?n.name:e;if(Ea(t)&&wa(t,o,n),n.global)a?r[e]=t:Ia(e,t);else{try{n.unsafe?r[e]&&(a=!0):delete r[e]}catch{}a?r[e]=t:Ta.f(r,e,{value:t,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return r},Ue={},Ra=Math.ceil,Pa=Math.floor,Ca=Math.trunc||function(e){var t=+e;return(t>0?Pa:Ra)(t)},ja=Ca,Ge=function(r){var e=+r;return e!==e||e===0?0:ja(e)},Na=Ge,_a=Math.max,Da=Math.min,Ma=function(r,e){var t=Na(r);return t<0?_a(t+e,0):Da(t,e)},Aa=Ge,Fa=Math.min,Ba=function(r){var e=Aa(r);return e>0?Fa(e,9007199254740991):0},La=Ba,xe=function(r){return La(r.length)},Ua=Er,Ga=Ma,xa=xe,Qr=function(r){return function(e,t,n){var a=Ua(e),o=xa(a);if(o===0)return!r&&-1;var i=Ga(n,o),v;if(r&&t!==t){for(;o>i;)if(v=a[i++],v!==v)return!0}else for(;o>i;i++)if((r||i in a)&&a[i]===t)return r||i||0;return!r&&-1}},Ka={includes:Qr(!0),indexOf:Qr(!1)},Va=b,lr=S,ka=Er,Wa=Ka.indexOf,za=Fe,re=Va([].push),Ya=function(r,e){var t=ka(r),n=0,a=[],o;for(o in t)!lr(za,o)&&lr(t,o)&&re(a,o);for(;e.length>n;)lr(t,o=e[n++])&&(~Wa(a,o)||re(a,o));return a},qa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ja=Ya,Ha=qa,Xa=Ha.concat("length","prototype");Ue.f=Object.getOwnPropertyNames||function(e){return Ja(e,Xa)};var Ke={};Ke.f=Object.getOwnPropertySymbols;var Za=ge,Qa=b,ro=Ue,eo=Ke,to=M,no=Qa([].concat),ao=Za("Reflect","ownKeys")||function(e){var t=ro.f(to(e)),n=eo.f;return n?no(t,n(e)):t},ee=S,oo=ao,io=gr,vo=J,uo=function(r,e,t){for(var n=oo(e),a=vo.f,o=io.f,i=0;i<n.length;i++){var v=n[i];!ee(r,v)&&!(t&&ee(t,v))&&a(r,v,o(e,v))}},co=h,lo=d,fo=/#|\.prototype\./,A=function(r,e){var t=yo[so(r)];return t===po?!0:t===$o?!1:lo(e)?co(e):!!e},so=A.normalize=function(r){return String(r).replace(fo,".").toLowerCase()},yo=A.data={},$o=A.NATIVE="N",po=A.POLYFILL="P",Ve=A,G=f,bo=gr.f,ho=_e,go=ma,Oo=Ir,So=uo,Eo=Ve,To=function(r,e){var t=r.target,n=r.global,a=r.stat,o,i,v,u,c,s;if(n?i=G:a?i=G[t]||Oo(t,{}):i=G[t]&&G[t].prototype,i)for(v in e){if(c=e[v],r.dontCallGetSet?(s=bo(i,v),u=s&&s.value):u=i[v],o=Eo(n?v:t+(a?".":"#")+v,r.forced),!o&&u!==void 0){if(typeof c==typeof u)continue;So(c,u)}(r.sham||u&&u.sham)&&ho(c,"sham",!0),go(i,v,c,r)}},ke={},te=D,wo=TypeError,Io=function(r){var e,t;this.promise=new r(function(n,a){if(e!==void 0||t!==void 0)throw new wo("Bad Promise constructor");e=n,t=a}),this.resolve=te(e),this.reject=te(t)};ke.f=function(r){return new Io(r)};var mo=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}},Ro=q,Po=b,Co=function(r){if(Ro(r)==="Function")return Po(r)},ne=Co,jo=D,No=Or,_o=ne(ne.bind),Do=function(r,e){return jo(r),e===void 0?r:No?_o(r,e):function(){return r.apply(e,arguments)}},We={},Mo=E,Ao=We,Fo=Mo("iterator"),Bo=Array.prototype,Lo=function(r){return r!==void 0&&(Ao.Array===r||Bo[Fo]===r)},Uo=E,Go=Uo("toStringTag"),ze={};ze[Go]="z";var xo=String(ze)==="[object z]",Ko=xo,Vo=d,V=q,ko=E,Wo=ko("toStringTag"),zo=Object,Yo=V(function(){return arguments}())==="Arguments",qo=function(r,e){try{return r[e]}catch{}},Jo=Ko?V:function(r){var e,t,n;return r===void 0?"Undefined":r===null?"Null":typeof(t=qo(e=zo(r),Wo))=="string"?t:Yo?V(e):(n=V(e))==="Object"&&Vo(e.callee)?"Arguments":n},Ho=Jo,ae=wr,Xo=Sr,Zo=We,Qo=E,ri=Qo("iterator"),Ye=function(r){if(!Xo(r))return ae(r,ri)||ae(r,"@@iterator")||Zo[Ho(r)]},ei=O,ti=D,ni=M,ai=Tr,oi=Ye,ii=TypeError,vi=function(r,e){var t=arguments.length<2?oi(r):e;if(ti(t))return ni(ei(t,r));throw new ii(ai(r)+" is not iterable")},ui=O,oe=M,ci=wr,li=function(r,e,t){var n,a;oe(r);try{if(n=ci(r,"return"),!n){if(e==="throw")throw t;return t}n=ui(n,r)}catch(o){a=!0,n=o}if(e==="throw")throw t;if(a)throw n;return oe(n),t},fi=Do,si=O,yi=M,di=Tr,$i=Lo,pi=xe,ie=Oe,bi=vi,hi=Ye,ve=li,gi=TypeError,k=function(r,e){this.stopped=r,this.result=e},ue=k.prototype,Oi=function(r,e,t){var n=t&&t.that,a=!!(t&&t.AS_ENTRIES),o=!!(t&&t.IS_RECORD),i=!!(t&&t.IS_ITERATOR),v=!!(t&&t.INTERRUPTED),u=fi(e,n),c,s,T,R,l,w,Cr,jr=function(y){return c&&ve(c,"normal",y),new k(!0,y)},Nr=function(y){return a?(yi(y),v?u(y[0],y[1],jr):u(y[0],y[1])):v?u(y,jr):u(y)};if(o)c=r.iterator;else if(i)c=r;else{if(s=hi(r),!s)throw new gi(di(r)+" is not iterable");if($i(s)){for(T=0,R=pi(r);R>T;T++)if(l=Nr(r[T]),l&&ie(ue,l))return l;return new k(!1)}c=bi(r,s)}for(w=o?r.next:c.next;!(Cr=si(w,c)).done;){try{l=Nr(Cr.value)}catch(y){ve(c,"throw",y)}if(typeof l=="object"&&l&&ie(ue,l))return l}return new k(!1)},Si=f,qe=Si.Promise,Ei=E,Je=Ei("iterator"),He=!1;try{var Ti=0,ce={next:function(){return{done:!!Ti++}},return:function(){He=!0}};ce[Je]=function(){return this},Array.from(ce,function(){throw 2})}catch{}var wi=function(r,e){try{if(!e&&!He)return!1}catch{return!1}var t=!1;try{var n={};n[Je]=function(){return{next:function(){return{done:t=!0}}}},r(n)}catch{}return t},C=f,Ii=Se,mi=q,x=function(r){return Ii.slice(0,r.length)===r},Ri=function(){return x("Bun/")?"BUN":x("Cloudflare-Workers")?"CLOUDFLARE":x("Deno/")?"DENO":x("Node.js/")?"NODE":C.Bun&&typeof Bun.version=="string"?"BUN":C.Deno&&typeof Deno.version=="object"?"DENO":mi(C.process)==="process"?"NODE":C.window&&C.document?"BROWSER":"REST"}(),Pi=f,j=qe,Ci=d,ji=Ve,Ni=Ae,_i=E,le=Ri,fr=Te;j&&j.prototype;var Di=_i("species"),hr=!1,Xe=Ci(Pi.PromiseRejectionEvent),Mi=ji("Promise",function(){var r=Ni(j),e=r!==String(j);if(!e&&fr===66)return!0;if(!fr||fr<51||!/native code/.test(r)){var t=new j(function(o){o(1)}),n=function(o){o(function(){},function(){})},a=t.constructor={};if(a[Di]=n,hr=t.then(function(){})instanceof n,!hr)return!0}return!e&&(le==="BROWSER"||le==="DENO")&&!Xe}),Ai={CONSTRUCTOR:Mi,REJECTION_EVENT:Xe,SUBCLASSING:hr},Fi=qe,Bi=wi,Li=Ai.CONSTRUCTOR,Ui=Li||!Bi(function(r){Fi.all(r).then(void 0,function(){})}),Gi=To,xi=O,Ki=D,Vi=ke,ki=mo,Wi=Oi,zi=Ui;Gi({target:"Promise",stat:!0,forced:zi},{allSettled:function(e){var t=this,n=Vi.f(t),a=n.resolve,o=n.reject,i=ki(function(){var v=Ki(t.resolve),u=[],c=0,s=1;Wi(e,function(T){var R=c++,l=!1;s++,xi(v,t,T).then(function(w){l||(l=!0,u[R]={status:"fulfilled",value:w},--s||a(u))},function(w){l||(l=!0,u[R]={status:"rejected",reason:w},--s||a(u))})}),--s||a(u)});return i.error&&o(i.value),n.promise}});export{F as c,Yi as g};
1
+ (function(){try{var r=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{},e=new Error().stack;e&&(r._sentryDebugIds=r._sentryDebugIds||{},r._sentryDebugIds[e]="9f0f1403-0cb6-41e4-94b7-d92b5470ff72",r._sentryDebugIdIdentifier="sentry-dbid-9f0f1403-0cb6-41e4-94b7-d92b5470ff72")}catch{}})();var Ze=typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};Ze.SENTRY_RELEASE={id:"4762f7bf7ffe5739eec98255820bb26ccbe082b2"};var F=typeof globalThis<"u"?globalThis:typeof window<"u"?window:typeof global<"u"?global:typeof self<"u"?self:{};function Yi(r){return r&&r.__esModule&&Object.prototype.hasOwnProperty.call(r,"default")?r.default:r}var P=function(r){return r&&r.Math===Math&&r},f=P(typeof globalThis=="object"&&globalThis)||P(typeof window=="object"&&window)||P(typeof self=="object"&&self)||P(typeof F=="object"&&F)||P(typeof F=="object"&&F)||function(){return this}()||Function("return this")(),gr={},h=function(r){try{return!!r()}catch{return!0}},Qe=h,g=!Qe(function(){return Object.defineProperty({},1,{get:function(){return 7}})[1]!==7}),rt=h,Or=!rt(function(){var r=function(){}.bind();return typeof r!="function"||r.hasOwnProperty("prototype")}),et=Or,B=Function.prototype.call,O=et?B.bind(B):function(){return B.apply(B,arguments)},fe={},se={}.propertyIsEnumerable,ye=Object.getOwnPropertyDescriptor,tt=ye&&!se.call({1:2},1);fe.f=tt?function(e){var t=ye(this,e);return!!t&&t.enumerable}:se;var $e=function(r,e){return{enumerable:!(r&1),configurable:!(r&2),writable:!(r&4),value:e}},de=Or,be=Function.prototype,sr=be.call,nt=de&&be.bind.bind(sr,sr),p=de?nt:function(r){return function(){return sr.apply(r,arguments)}},pe=p,at=pe({}.toString),ot=pe("".slice),q=function(r){return ot(at(r),8,-1)},it=p,vt=h,ut=q,H=Object,ct=it("".split),lt=vt(function(){return!H("z").propertyIsEnumerable(0)})?function(r){return ut(r)==="String"?ct(r,""):H(r)}:H,Sr=function(r){return r==null},ft=Sr,st=TypeError,he=function(r){if(ft(r))throw new st("Can't call method on "+r);return r},yt=lt,$t=he,Er=function(r){return yt($t(r))},X=typeof document=="object"&&document.all,$=typeof X>"u"&&X!==void 0?function(r){return typeof r=="function"||r===X}:function(r){return typeof r=="function"},dt=$,_=function(r){return typeof r=="object"?r!==null:dt(r)},Z=f,bt=$,pt=function(r){return bt(r)?r:void 0},ge=function(r,e){return arguments.length<2?pt(Z[r]):Z[r]&&Z[r][e]},ht=p,Oe=ht({}.isPrototypeOf),gt=f,_r=gt.navigator,Dr=_r&&_r.userAgent,Se=Dr?String(Dr):"",Ee=f,Q=Se,Mr=Ee.process,Ar=Ee.Deno,Fr=Mr&&Mr.versions||Ar&&Ar.version,Br=Fr&&Fr.v8,d,W;Br&&(d=Br.split("."),W=d[0]>0&&d[0]<4?1:+(d[0]+d[1]));!W&&Q&&(d=Q.match(/Edge\/(\d+)/),(!d||d[1]>=74)&&(d=Q.match(/Chrome\/(\d+)/),d&&(W=+d[1])));var Te=W,Lr=Te,Ot=h,St=f,Et=St.String,we=!!Object.getOwnPropertySymbols&&!Ot(function(){var r=Symbol("symbol detection");return!Et(r)||!(Object(r)instanceof Symbol)||!Symbol.sham&&Lr&&Lr<41}),Tt=we,Ie=Tt&&!Symbol.sham&&typeof Symbol.iterator=="symbol",wt=ge,It=$,mt=Oe,Rt=Ie,Pt=Object,me=Rt?function(r){return typeof r=="symbol"}:function(r){var e=wt("Symbol");return It(e)&&mt(e.prototype,Pt(r))},Ct=String,Tr=function(r){try{return Ct(r)}catch{return"Object"}},jt=$,Nt=Tr,_t=TypeError,D=function(r){if(jt(r))return r;throw new _t(Nt(r)+" is not a function")},Dt=D,Mt=Sr,wr=function(r,e){var t=r[e];return Mt(t)?void 0:Dt(t)},rr=O,er=$,tr=_,At=TypeError,Ft=function(r,e){var t,n;if(e==="string"&&er(t=r.toString)&&!tr(n=rr(t,r))||er(t=r.valueOf)&&!tr(n=rr(t,r))||e!=="string"&&er(t=r.toString)&&!tr(n=rr(t,r)))return n;throw new At("Can't convert object to primitive value")},Re={exports:{}},Ur=f,Bt=Object.defineProperty,Ir=function(r,e){try{Bt(Ur,r,{value:e,configurable:!0,writable:!0})}catch{Ur[r]=e}return e},Lt=f,Ut=Ir,Gr="__core-js_shared__",xr=Re.exports=Lt[Gr]||Ut(Gr,{});(xr.versions||(xr.versions=[])).push({version:"3.39.0",mode:"global",copyright:"© 2014-2024 Denis Pushkarev (zloirock.ru)",license:"https://github.com/zloirock/core-js/blob/v3.39.0/LICENSE",source:"https://github.com/zloirock/core-js"});var mr=Re.exports,Kr=mr,Pe=function(r,e){return Kr[r]||(Kr[r]=e||{})},Gt=he,xt=Object,Kt=function(r){return xt(Gt(r))},Vt=p,kt=Kt,Wt=Vt({}.hasOwnProperty),S=Object.hasOwn||function(e,t){return Wt(kt(e),t)},zt=p,Yt=0,qt=Math.random(),Jt=zt(1 .toString),Ce=function(r){return"Symbol("+(r===void 0?"":r)+")_"+Jt(++Yt+qt,36)},Ht=f,Xt=Pe,Vr=S,Zt=Ce,Qt=we,rn=Ie,m=Ht.Symbol,nr=Xt("wks"),en=rn?m.for||m:m&&m.withoutSetter||Zt,E=function(r){return Vr(nr,r)||(nr[r]=Qt&&Vr(m,r)?m[r]:en("Symbol."+r)),nr[r]},tn=O,kr=_,Wr=me,nn=wr,an=Ft,on=E,vn=TypeError,un=on("toPrimitive"),cn=function(r,e){if(!kr(r)||Wr(r))return r;var t=nn(r,un),n;if(t){if(e===void 0&&(e="default"),n=tn(t,r,e),!kr(n)||Wr(n))return n;throw new vn("Can't convert object to primitive value")}return e===void 0&&(e="number"),an(r,e)},ln=cn,fn=me,je=function(r){var e=ln(r,"string");return fn(e)?e:e+""},sn=f,zr=_,yr=sn.document,yn=zr(yr)&&zr(yr.createElement),$n=function(r){return yn?yr.createElement(r):{}},dn=g,bn=h,pn=$n,Ne=!dn&&!bn(function(){return Object.defineProperty(pn("div"),"a",{get:function(){return 7}}).a!==7}),hn=g,gn=O,On=fe,Sn=$e,En=Er,Tn=je,wn=S,In=Ne,Yr=Object.getOwnPropertyDescriptor;gr.f=hn?Yr:function(e,t){if(e=En(e),t=Tn(t),In)try{return Yr(e,t)}catch{}if(wn(e,t))return Sn(!gn(On.f,e,t),e[t])};var J={},mn=g,Rn=h,Pn=mn&&Rn(function(){return Object.defineProperty(function(){},"prototype",{value:42,writable:!1}).prototype!==42}),Cn=_,jn=String,Nn=TypeError,M=function(r){if(Cn(r))return r;throw new Nn(jn(r)+" is not an object")},_n=g,Dn=Ne,Mn=Pn,L=M,qr=je,An=TypeError,ar=Object.defineProperty,Fn=Object.getOwnPropertyDescriptor,or="enumerable",ir="configurable",vr="writable";J.f=_n?Mn?function(e,t,n){if(L(e),t=qr(t),L(n),typeof e=="function"&&t==="prototype"&&"value"in n&&vr in n&&!n[vr]){var a=Fn(e,t);a&&a[vr]&&(e[t]=n.value,n={configurable:ir in n?n[ir]:a[ir],enumerable:or in n?n[or]:a[or],writable:!1})}return ar(e,t,n)}:ar:function(e,t,n){if(L(e),t=qr(t),L(n),Dn)try{return ar(e,t,n)}catch{}if("get"in n||"set"in n)throw new An("Accessors not supported");return"value"in n&&(e[t]=n.value),e};var Bn=g,Ln=J,Un=$e,_e=Bn?function(r,e,t){return Ln.f(r,e,Un(1,t))}:function(r,e,t){return r[e]=t,r},De={exports:{}},$r=g,Gn=S,Me=Function.prototype,xn=$r&&Object.getOwnPropertyDescriptor,Rr=Gn(Me,"name"),Kn=Rr&&function(){}.name==="something",Vn=Rr&&(!$r||$r&&xn(Me,"name").configurable),kn={EXISTS:Rr,PROPER:Kn,CONFIGURABLE:Vn},Wn=p,zn=$,dr=mr,Yn=Wn(Function.toString);zn(dr.inspectSource)||(dr.inspectSource=function(r){return Yn(r)});var Ae=dr.inspectSource,qn=f,Jn=$,Jr=qn.WeakMap,Hn=Jn(Jr)&&/native code/.test(String(Jr)),Xn=Pe,Zn=Ce,Hr=Xn("keys"),Qn=function(r){return Hr[r]||(Hr[r]=Zn(r))},Fe={},ra=Hn,Be=f,ea=_,ta=_e,ur=S,cr=mr,na=Qn,aa=Fe,Xr="Object already initialized",br=Be.TypeError,oa=Be.WeakMap,z,N,Y,ia=function(r){return Y(r)?N(r):z(r,{})},va=function(r){return function(e){var t;if(!ea(e)||(t=N(e)).type!==r)throw new br("Incompatible receiver, "+r+" required");return t}};if(ra||cr.state){var b=cr.state||(cr.state=new oa);b.get=b.get,b.has=b.has,b.set=b.set,z=function(r,e){if(b.has(r))throw new br(Xr);return e.facade=r,b.set(r,e),e},N=function(r){return b.get(r)||{}},Y=function(r){return b.has(r)}}else{var I=na("state");aa[I]=!0,z=function(r,e){if(ur(r,I))throw new br(Xr);return e.facade=r,ta(r,I,e),e},N=function(r){return ur(r,I)?r[I]:{}},Y=function(r){return ur(r,I)}}var ua={set:z,get:N,has:Y,enforce:ia,getterFor:va},Pr=p,ca=h,la=$,U=S,pr=g,fa=kn.CONFIGURABLE,sa=Ae,Le=ua,ya=Le.enforce,$a=Le.get,Zr=String,K=Object.defineProperty,da=Pr("".slice),ba=Pr("".replace),pa=Pr([].join),ha=pr&&!ca(function(){return K(function(){},"length",{value:8}).length!==8}),ga=String(String).split("String"),Oa=De.exports=function(r,e,t){da(Zr(e),0,7)==="Symbol("&&(e="["+ba(Zr(e),/^Symbol\(([^)]*)\).*$/,"$1")+"]"),t&&t.getter&&(e="get "+e),t&&t.setter&&(e="set "+e),(!U(r,"name")||fa&&r.name!==e)&&(pr?K(r,"name",{value:e,configurable:!0}):r.name=e),ha&&t&&U(t,"arity")&&r.length!==t.arity&&K(r,"length",{value:t.arity});try{t&&U(t,"constructor")&&t.constructor?pr&&K(r,"prototype",{writable:!1}):r.prototype&&(r.prototype=void 0)}catch{}var n=ya(r);return U(n,"source")||(n.source=pa(ga,typeof e=="string"?e:"")),r};Function.prototype.toString=Oa(function(){return la(this)&&$a(this).source||sa(this)},"toString");var Sa=De.exports,Ea=$,Ta=J,wa=Sa,Ia=Ir,ma=function(r,e,t,n){n||(n={});var a=n.enumerable,o=n.name!==void 0?n.name:e;if(Ea(t)&&wa(t,o,n),n.global)a?r[e]=t:Ia(e,t);else{try{n.unsafe?r[e]&&(a=!0):delete r[e]}catch{}a?r[e]=t:Ta.f(r,e,{value:t,enumerable:!1,configurable:!n.nonConfigurable,writable:!n.nonWritable})}return r},Ue={},Ra=Math.ceil,Pa=Math.floor,Ca=Math.trunc||function(e){var t=+e;return(t>0?Pa:Ra)(t)},ja=Ca,Ge=function(r){var e=+r;return e!==e||e===0?0:ja(e)},Na=Ge,_a=Math.max,Da=Math.min,Ma=function(r,e){var t=Na(r);return t<0?_a(t+e,0):Da(t,e)},Aa=Ge,Fa=Math.min,Ba=function(r){var e=Aa(r);return e>0?Fa(e,9007199254740991):0},La=Ba,xe=function(r){return La(r.length)},Ua=Er,Ga=Ma,xa=xe,Qr=function(r){return function(e,t,n){var a=Ua(e),o=xa(a);if(o===0)return!r&&-1;var i=Ga(n,o),v;if(r&&t!==t){for(;o>i;)if(v=a[i++],v!==v)return!0}else for(;o>i;i++)if((r||i in a)&&a[i]===t)return r||i||0;return!r&&-1}},Ka={includes:Qr(!0),indexOf:Qr(!1)},Va=p,lr=S,ka=Er,Wa=Ka.indexOf,za=Fe,re=Va([].push),Ya=function(r,e){var t=ka(r),n=0,a=[],o;for(o in t)!lr(za,o)&&lr(t,o)&&re(a,o);for(;e.length>n;)lr(t,o=e[n++])&&(~Wa(a,o)||re(a,o));return a},qa=["constructor","hasOwnProperty","isPrototypeOf","propertyIsEnumerable","toLocaleString","toString","valueOf"],Ja=Ya,Ha=qa,Xa=Ha.concat("length","prototype");Ue.f=Object.getOwnPropertyNames||function(e){return Ja(e,Xa)};var Ke={};Ke.f=Object.getOwnPropertySymbols;var Za=ge,Qa=p,ro=Ue,eo=Ke,to=M,no=Qa([].concat),ao=Za("Reflect","ownKeys")||function(e){var t=ro.f(to(e)),n=eo.f;return n?no(t,n(e)):t},ee=S,oo=ao,io=gr,vo=J,uo=function(r,e,t){for(var n=oo(e),a=vo.f,o=io.f,i=0;i<n.length;i++){var v=n[i];!ee(r,v)&&!(t&&ee(t,v))&&a(r,v,o(e,v))}},co=h,lo=$,fo=/#|\.prototype\./,A=function(r,e){var t=yo[so(r)];return t===bo?!0:t===$o?!1:lo(e)?co(e):!!e},so=A.normalize=function(r){return String(r).replace(fo,".").toLowerCase()},yo=A.data={},$o=A.NATIVE="N",bo=A.POLYFILL="P",Ve=A,G=f,po=gr.f,ho=_e,go=ma,Oo=Ir,So=uo,Eo=Ve,To=function(r,e){var t=r.target,n=r.global,a=r.stat,o,i,v,u,c,s;if(n?i=G:a?i=G[t]||Oo(t,{}):i=G[t]&&G[t].prototype,i)for(v in e){if(c=e[v],r.dontCallGetSet?(s=po(i,v),u=s&&s.value):u=i[v],o=Eo(n?v:t+(a?".":"#")+v,r.forced),!o&&u!==void 0){if(typeof c==typeof u)continue;So(c,u)}(r.sham||u&&u.sham)&&ho(c,"sham",!0),go(i,v,c,r)}},ke={},te=D,wo=TypeError,Io=function(r){var e,t;this.promise=new r(function(n,a){if(e!==void 0||t!==void 0)throw new wo("Bad Promise constructor");e=n,t=a}),this.resolve=te(e),this.reject=te(t)};ke.f=function(r){return new Io(r)};var mo=function(r){try{return{error:!1,value:r()}}catch(e){return{error:!0,value:e}}},Ro=q,Po=p,Co=function(r){if(Ro(r)==="Function")return Po(r)},ne=Co,jo=D,No=Or,_o=ne(ne.bind),Do=function(r,e){return jo(r),e===void 0?r:No?_o(r,e):function(){return r.apply(e,arguments)}},We={},Mo=E,Ao=We,Fo=Mo("iterator"),Bo=Array.prototype,Lo=function(r){return r!==void 0&&(Ao.Array===r||Bo[Fo]===r)},Uo=E,Go=Uo("toStringTag"),ze={};ze[Go]="z";var xo=String(ze)==="[object z]",Ko=xo,Vo=$,V=q,ko=E,Wo=ko("toStringTag"),zo=Object,Yo=V(function(){return arguments}())==="Arguments",qo=function(r,e){try{return r[e]}catch{}},Jo=Ko?V:function(r){var e,t,n;return r===void 0?"Undefined":r===null?"Null":typeof(t=qo(e=zo(r),Wo))=="string"?t:Yo?V(e):(n=V(e))==="Object"&&Vo(e.callee)?"Arguments":n},Ho=Jo,ae=wr,Xo=Sr,Zo=We,Qo=E,ri=Qo("iterator"),Ye=function(r){if(!Xo(r))return ae(r,ri)||ae(r,"@@iterator")||Zo[Ho(r)]},ei=O,ti=D,ni=M,ai=Tr,oi=Ye,ii=TypeError,vi=function(r,e){var t=arguments.length<2?oi(r):e;if(ti(t))return ni(ei(t,r));throw new ii(ai(r)+" is not iterable")},ui=O,oe=M,ci=wr,li=function(r,e,t){var n,a;oe(r);try{if(n=ci(r,"return"),!n){if(e==="throw")throw t;return t}n=ui(n,r)}catch(o){a=!0,n=o}if(e==="throw")throw t;if(a)throw n;return oe(n),t},fi=Do,si=O,yi=M,$i=Tr,di=Lo,bi=xe,ie=Oe,pi=vi,hi=Ye,ve=li,gi=TypeError,k=function(r,e){this.stopped=r,this.result=e},ue=k.prototype,Oi=function(r,e,t){var n=t&&t.that,a=!!(t&&t.AS_ENTRIES),o=!!(t&&t.IS_RECORD),i=!!(t&&t.IS_ITERATOR),v=!!(t&&t.INTERRUPTED),u=fi(e,n),c,s,T,R,l,w,Cr,jr=function(y){return c&&ve(c,"normal",y),new k(!0,y)},Nr=function(y){return a?(yi(y),v?u(y[0],y[1],jr):u(y[0],y[1])):v?u(y,jr):u(y)};if(o)c=r.iterator;else if(i)c=r;else{if(s=hi(r),!s)throw new gi($i(r)+" is not iterable");if(di(s)){for(T=0,R=bi(r);R>T;T++)if(l=Nr(r[T]),l&&ie(ue,l))return l;return new k(!1)}c=pi(r,s)}for(w=o?r.next:c.next;!(Cr=si(w,c)).done;){try{l=Nr(Cr.value)}catch(y){ve(c,"throw",y)}if(typeof l=="object"&&l&&ie(ue,l))return l}return new k(!1)},Si=f,qe=Si.Promise,Ei=E,Je=Ei("iterator"),He=!1;try{var Ti=0,ce={next:function(){return{done:!!Ti++}},return:function(){He=!0}};ce[Je]=function(){return this},Array.from(ce,function(){throw 2})}catch{}var wi=function(r,e){try{if(!e&&!He)return!1}catch{return!1}var t=!1;try{var n={};n[Je]=function(){return{next:function(){return{done:t=!0}}}},r(n)}catch{}return t},C=f,Ii=Se,mi=q,x=function(r){return Ii.slice(0,r.length)===r},Ri=function(){return x("Bun/")?"BUN":x("Cloudflare-Workers")?"CLOUDFLARE":x("Deno/")?"DENO":x("Node.js/")?"NODE":C.Bun&&typeof Bun.version=="string"?"BUN":C.Deno&&typeof Deno.version=="object"?"DENO":mi(C.process)==="process"?"NODE":C.window&&C.document?"BROWSER":"REST"}(),Pi=f,j=qe,Ci=$,ji=Ve,Ni=Ae,_i=E,le=Ri,fr=Te;j&&j.prototype;var Di=_i("species"),hr=!1,Xe=Ci(Pi.PromiseRejectionEvent),Mi=ji("Promise",function(){var r=Ni(j),e=r!==String(j);if(!e&&fr===66)return!0;if(!fr||fr<51||!/native code/.test(r)){var t=new j(function(o){o(1)}),n=function(o){o(function(){},function(){})},a=t.constructor={};if(a[Di]=n,hr=t.then(function(){})instanceof n,!hr)return!0}return!e&&(le==="BROWSER"||le==="DENO")&&!Xe}),Ai={CONSTRUCTOR:Mi,REJECTION_EVENT:Xe,SUBCLASSING:hr},Fi=qe,Bi=wi,Li=Ai.CONSTRUCTOR,Ui=Li||!Bi(function(r){Fi.all(r).then(void 0,function(){})}),Gi=To,xi=O,Ki=D,Vi=ke,ki=mo,Wi=Oi,zi=Ui;Gi({target:"Promise",stat:!0,forced:zi},{allSettled:function(e){var t=this,n=Vi.f(t),a=n.resolve,o=n.reject,i=ki(function(){var v=Ki(t.resolve),u=[],c=0,s=1;Wi(e,function(T){var R=c++,l=!1;s++,xi(v,t,T).then(function(w){l||(l=!0,u[R]={status:"fulfilled",value:w},--s||a(u))},function(w){l||(l=!0,u[R]={status:"rejected",reason:w},--s||a(u))})}),--s||a(u)});return i.error&&o(i.value),n.promise}});export{F as c,Yi as g};
2
2
  //# sourceMappingURL=vendor.core-js.js.map