@hiver/connector-agent 4.19.0 → 4.19.1
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/index.es.js +1 -1
- package/index.umd.js +1 -1
- package/package.json +1 -1
package/index.es.js
CHANGED
|
@@ -22245,7 +22245,7 @@ const qk = w($i)`
|
|
|
22245
22245
|
});
|
|
22246
22246
|
}, CT = (e, t, u, n) => new Promise((r, o) => {
|
|
22247
22247
|
const a = new XMLHttpRequest();
|
|
22248
|
-
a.open("PUT", e, !0),
|
|
22248
|
+
a.open("PUT", e, !0), Object.entries(u ?? {}).forEach(([i, s]) => a.setRequestHeader(i, s)), a.upload && (a.upload.onprogress = (i) => {
|
|
22249
22249
|
i.lengthComputable && (n == null || n(Math.round(i.loaded / i.total * 100)));
|
|
22250
22250
|
}), a.onload = () => {
|
|
22251
22251
|
if (a.status >= 200 && a.status < 300) {
|
package/index.umd.js
CHANGED
|
@@ -2677,7 +2677,7 @@ Do you want to continue?`,kv="Select an object to create",Tv="Select an object t
|
|
|
2677
2677
|
height: 20px;
|
|
2678
2678
|
flex-shrink: 0;
|
|
2679
2679
|
}
|
|
2680
|
-
`,uA=({cardData:e,cardDataApiStatus:t,objectToLink:u,args:n})=>{const r=yt(),[o,a]=h.useState(!1),[i,D]=h.useState(!0),{id:c="",cardTitle:l="",logoUrl:d}=e||{},F=t===se.LOADING,E=p=>{p.stopPropagation();const A=p.currentTarget.offsetWidth<p.currentTarget.scrollWidth;a(!!A)},C=p=>{var g;r(Ir({id:u,args:n,isRefresh:!0}));const A=p.target.tagName==="BUTTON"?(g=p.target)==null?void 0:g.firstChild:p.target;A.className&&(A.className=""),setTimeout(()=>A.className="selected",1)};return f.jsxs(ek,{children:[f.jsxs(tk,{direction:"row",justifyContent:"space-between",children:[F?f.jsxs(s.Stack,{gap:"6px",direction:"row",children:[f.jsx(fu,{width:"16px",height:"24px"}),f.jsx(fu,{width:"100px",height:"24px"})]}):f.jsxs(nk,{children:[d&&f.jsx("img",{src:d,alt:l}),f.jsx(s.Tooltip,{title:o?l:"",children:f.jsx(s.Typography,{variant:"h4",onMouseOver:p=>E(p),onMouseLeave:p=>E(p),children:l})})]}),f.jsxs(s.Stack,{direction:"row",alignItems:"center",children:[i?f.jsx(s.Tooltip,{title:F3,placement:"bottom",children:f.jsx(Fr,{onClick:p=>C(p),children:f.jsx("img",{src:jd})})}):null,f.jsx(s.Tooltip,{title:i?h3:Ua,placement:"bottom",children:f.jsx(Fr,{onClick:()=>D(p=>!p),children:f.jsx(as,{className:i?"":"hiver-up"})})})]})]}),f.jsx(_d,{id:c,cardTitle:l,specificCardData:{[c]:e},specificConnectorApiStatus:{[c]:t},isOpen:i})]})},nA={values:{},errors:{}},Qt={SET_FIELD_VALUE:"SET_FIELD_VALUE",CLEAR_ERROR:"CLEAR_ERROR",SET_FIELD_ERROR:"SET_FIELD_ERROR",SET_FIELDS:"SET_FIELDS",SET_FORM_DEFAULTS:"SET_FORM_DEFAULTS",CLEAR_FIELDS:"CLEAR_FIELDS",RESET_STATE:"RESET_STATE"},rk=(e,t)=>{const{type:u,payload:n}=t;switch(u){case Qt.SET_FIELD_VALUE:{if(!(n!=null&&n.value))return e;const{name:r,value:o}=n.value;return{...e,values:{...e.values,[r]:o}}}case Qt.SET_FIELD_ERROR:{if(!(n!=null&&n.value))return e;const{name:r,value:o}=n.value;return typeof o=="boolean"||typeof o=="string"?{...e,errors:{...e.errors,[r]:o}}:e}case Qt.CLEAR_ERROR:{if(!(n!=null&&n.value))return e;const{name:r}=n.value;return{...e,errors:{...e.errors,[r]:""}}}case Qt.SET_FIELDS:{if(!(n!=null&&n.values))return e;const{values:r}=n;return{...e,values:r}}case Qt.SET_FORM_DEFAULTS:{if(!(n!=null&&n.values))return e;const{values:r}=n,o={...e.errors};for(const a in r??{})r[a]&&delete o[a];return{...e,errors:o,values:{...e.values,...r}}}case Qt.CLEAR_FIELDS:{const{fieldNames:r}=n??{};if(!Array.isArray(r))return e;const o={...e.values},a={...e.errors};for(const i of r)delete o[i],delete a[i];return{...e,values:o,errors:a}}case Qt.RESET_STATE:return nA}return e},rA=()=>h.useReducer(rk,nA),oA=({state:e,dispatch:t,validations:u,dynamicFields:n})=>{const r=e.errors,o=(E,C)=>{t({type:Qt.SET_FIELD_VALUE,payload:{value:{value:C,name:E}}})},a=h.useCallback(E=>{t({type:Qt.SET_FORM_DEFAULTS,payload:{values:E}})},[t]),i=h.useCallback(()=>Object.keys(r).filter(C=>!!r[C]).length>0,[r]),D=E=>{E.stopPropagation();const{name:C,value:p}=(E==null?void 0:E.target)||{};o(C,p)},c=(E,C)=>{E.stopPropagation();const{name:p}=(E==null?void 0:E.target)||{};o(p,C)},l=(E,C)=>{o(E,C||"")},d=(E,C)=>{e.errors[E]!==C&&t({type:Qt.SET_FIELD_ERROR,payload:{value:{name:E,value:C}}})},F=(E,C)=>{if(C){const p=C[E];p==null||p.forEach(A=>{var g;o(A,""),C[A]&&F(A,C),(g=u[A])!=null&&g.isRequired&&d(A,!0)})}};return h.useEffect(()=>{if(Array.isArray(n))return()=>{const E=n.map(C=>C.name);t({type:Qt.CLEAR_FIELDS,payload:{fieldNames:E}})}},[n,t]),{setValue:o,setFormDefaults:a,isErrorInValidations:i,inputChangeHandler:D,checkboxChangeHandler:c,dateChangeHandler:l,handleValidationError:d,clearDependentFields:F}},fA=({formFields:e,formId:t,formState:u,appDispatch:n})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const a=o.interfaceDetails,i={loadOptions:(D,c,l,d)=>{let F=a;o.searchInterfaceDetails&&typeof D=="string"&&D.trim().length>0&&!l&&(F=o.searchInterfaceDetails);const E=Ww(u,F==null?void 0:F.args),C=Object.values((F==null?void 0:F.args)||{});if(E.length===C.length){n(zn({fieldName:o.name,formId:String(t),searchTerm:D,fieldConfig:o,interfaceId:F==null?void 0:F.id,pagination:F==null?void 0:F.pagination,callback:c,args:{...Ro(u,F==null?void 0:F.args),...Ro(u,F==null?void 0:F.optionalArgs)},isScrollToBottomEvent:l,controller:d}));return}return c([])}};return{...r,[o.name]:i}},{}),aA=({formFields:e,formId:t,formState:u,conversationId:n,appDispatch:r})=>e.reduce((o,a)=>{if(!a.createOptionInterfaceDetails)return o;const i=a.createOptionInterfaceDetails;return{...o,[a.name]:{createOption:(D,c)=>{var d,F;if(!D)return;const l={values:{name:a.name,value:D},errors:{}};r(Sf({fieldName:a.name,formId:String(t),interfaceId:i.id,conversationId:n,label:D,callback:c,args:{...Ro(u,(d=a==null?void 0:a.interfaceDetails)==null?void 0:d.args),...Ro(u,(F=a==null?void 0:a.interfaceDetails)==null?void 0:F.optionalArgs)},createArgs:{...Ro(l,i.args)}}))}}}},{}),sA=({formFields:e,formState:t,formId:u,conversationId:n})=>{const r=yt(),o=h.useMemo(()=>{if(e&&e.length){const i=fA({formFields:e,formId:u,formState:t,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=fA({formFields:d,formId:u,formState:t,appDispatch:r});return{...c,[l.name]:{loadOptionsList:F}}},i)}return null},[e,t,u,r]),a=h.useMemo(()=>{const i=aA({formFields:e,formId:u,formState:t,conversationId:n,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=aA({formFields:d,formId:u,formState:t,conversationId:n,appDispatch:r});return{...c,[l.name]:{createOptionList:F}}},i)},[e,u,t,n,r]);return{fetchConfig:o,createConfig:a}},ok=async({formId:e})=>{try{const t=await Fe({url:lt(gd,{formId:e}),method:ye.GET}),u=t==null?void 0:t.data;return u.enabled?ul(u.defaults):{}}catch(t){throw console.error(t),t}},iA=({formId:e})=>["Global","WriteForm","FormDefaults",e],fk=({formId:e,enabled:t})=>{const u=h.useRef(!1),n=h.useRef(void 0);e&&e!==n.current&&(u.current=!0,n.current=e);const r=st({queryKey:iA({formId:e}),queryFn:async()=>{const o=await ok({formId:e});return u.current=!1,o},refetchOnMount:!0,enabled:u.current&&t,staleTime:0});return{enabledRef:u,...r}},DA=e=>Array.isArray(e)&&e.length>0,ak=async({formId:e,conversationId:t,inboxIds:u})=>{try{const n=new URLSearchParams;if(t&&n.set("conversation_id",String(t)),DA(u))for(const a of u)n.append("inbox_id",String(a));const r=await Fe({url:lt(dv,{formId:e})+"?"+n.toString(),method:ye.GET}),o=r==null?void 0:r.data;if(!o.enabled)throw new Error("Form default values are not enabled");return ul(o.defaults,!0)}catch(n){throw console.error(n),n}},cA=({formId:e,conversationId:t,inboxIds:u})=>["Global","WriteForm","FormDefaults",e,t,u],lA=({formId:e,conversationId:t,inboxIds:u,enabled:n,fetchOnMount:r=!0})=>{const o=h.useRef(!0),a=h.useRef();e!==a.current&&(o.current=!0,a.current=e);const i=st({queryKey:cA({formId:e,conversationId:t,inboxIds:u}),queryFn:async()=>{const c=await ak({formId:e,conversationId:t,inboxIds:u});return o.current=!1,c},refetchOnMount:r,enabled:o.current&&!!e&&!!t&&DA(u)&&n,staleTime:0}),D=h.useMemo(()=>{if(Object.keys(i.data??{}).length===0&&i.isSuccess)return!0},[i.data,i.isSuccess]);return{enabledRef:o,isNudgeRequired:D,...i}},sk=async({formId:e,data:t})=>{try{return await Fe({url:lt(gd,{formId:e}),data:{defaults:t},method:ye.PUT}),{formId:e,data:t}}catch(u){throw console.error(u),u}},ik=({formId:e,conversationId:t,inboxIds:u,onSuccess:n,onError:r})=>{const o=Lt();return ru({mutationFn:a=>sk({formId:e,data:a}),onSuccess:a=>{o.invalidateQueries({queryKey:iA({formId:e})}),o.invalidateQueries({queryKey:cA({formId:e,conversationId:t,inboxIds:u})}),n==null||n(a),Oe({message:"Form defaults updated successfully",type:hu})},onError:()=>{r==null||r(),Oe({message:"Failed to update form defaults",type:$e})}})},Dk=({open:e,isEdit:t,formId:u,fields:n,connectorLogo:r,variables:o,customFormArgsEnabled:a,customFormArgsMap:i,title:D="Pre-fill fields",isLoading:c=!1,onSuccess:l,onClose:d})=>{const[F,E]=h.useState({}),{conversationId:C,currentSmIds:p}=h.useContext(Ue),{data:A}=kE({formId:u,formData:F,argsMap:i??{},enabled:!!u&&!!a,delay:500}),{data:g,isLoading:m,enabledRef:b}=fk({formId:u,enabled:!t&&!!e&&!!u}),{mutate:x,isPending:y}=ik({formId:u,conversationId:C,inboxIds:p,onSuccess:_=>{b.current=!0,l==null||l(_)}}),B=h.useMemo(()=>A!=null&&A.length?[...n,...A]:n,[n,A]);h.useEffect(()=>{g&&E(g)},[g]);const v=_=>{const L=B.map(j=>({name:j.name,type:j.isMultiSelect?"multi-select":j.type})),O=VE(_,L);x(O)},S=async({args:_,pagination:L},{formId:O,fieldName:j})=>{const M=await Ad({formId:O,fieldName:j},{pagination:L,args:_}),H=Array.isArray(M==null?void 0:M.data.data)?M.data.data:[];return{options:H,hasMore:!!H.length}},I=_=>{if(_.type==="multi-select"){E(O=>({...O,[_.name]:_.value}));return}const L=qc(_.value)?_.value.value:_.value;E(O=>({...O,[_.name]:L}))};return f.jsx(Rw,{open:e,defaultValues:g,formId:u,fields:B,connectorLogo:r,variables:o,title:`Pre-fill fields for ${D}`,isLoading:c||m,isSaving:y,fetchOptions:S,onSave:v,onClose:()=>d==null?void 0:d(),onCancel:()=>d==null?void 0:d(),onFieldChange:I})},ck=async({formId:e,args:t})=>{try{const u=await Fe({url:lt(lv,{formId:e}),data:{args:t},method:ye.POST});return(u==null?void 0:u.data).fieldList.map(r=>b1(r))}catch(u){throw console.error(u),u}},lk=({formId:e,args:t,enabled:u,delay:n=500})=>{const[r,o]=h.useState(t);return h.useEffect(()=>{const a=setTimeout(()=>o(t),n);return()=>clearTimeout(a)},[t,n]),st({queryKey:["Global","WriteForm","CustomFields",e,r],queryFn:()=>ck({formId:e,args:t}),refetchOnMount:!1,enabled:u})},dk=(e,t,u,n)=>new Promise((r,o)=>{const a=new XMLHttpRequest;a.open("PUT",e,!0),a.setRequestHeader("Content-Type",t.type||"application/octet-stream"),Object.entries(u??{}).forEach(([i,D])=>a.setRequestHeader(i,D)),a.upload&&(a.upload.onprogress=i=>{i.lengthComputable&&(n==null||n(Math.round(i.loaded/i.total*100)))}),a.onload=()=>{if(a.status>=200&&a.status<300){r();return}o(Object.assign(new Error(`Upload failed (${a.status})`),{status:a.status}))},a.onerror=()=>o(new Error("upload network error")),a.onabort=()=>o(new Error("upload aborted")),a.send(t)}),Ak=async(e,t)=>{try{const u=await Fe({url:Av,data:{filename:e.name,size:e.size},method:ye.POST}),{attachmentId:n,presignedUrl:r,headers:o}=(u==null?void 0:u.data)??{};return await dk(r,e,o,t),{attachmentId:n,filename:e.name,size:e.size,mimeType:e.type||"application/octet-stream"}}catch(u){throw console.error(u),u}},pk=()=>ru({mutationFn:({file:e,onProgress:t})=>Ak(e,t)}),dA="connector-agent_auto_fill_nudge",Ck=s.styled(s.Stack)`
|
|
2680
|
+
`,uA=({cardData:e,cardDataApiStatus:t,objectToLink:u,args:n})=>{const r=yt(),[o,a]=h.useState(!1),[i,D]=h.useState(!0),{id:c="",cardTitle:l="",logoUrl:d}=e||{},F=t===se.LOADING,E=p=>{p.stopPropagation();const A=p.currentTarget.offsetWidth<p.currentTarget.scrollWidth;a(!!A)},C=p=>{var g;r(Ir({id:u,args:n,isRefresh:!0}));const A=p.target.tagName==="BUTTON"?(g=p.target)==null?void 0:g.firstChild:p.target;A.className&&(A.className=""),setTimeout(()=>A.className="selected",1)};return f.jsxs(ek,{children:[f.jsxs(tk,{direction:"row",justifyContent:"space-between",children:[F?f.jsxs(s.Stack,{gap:"6px",direction:"row",children:[f.jsx(fu,{width:"16px",height:"24px"}),f.jsx(fu,{width:"100px",height:"24px"})]}):f.jsxs(nk,{children:[d&&f.jsx("img",{src:d,alt:l}),f.jsx(s.Tooltip,{title:o?l:"",children:f.jsx(s.Typography,{variant:"h4",onMouseOver:p=>E(p),onMouseLeave:p=>E(p),children:l})})]}),f.jsxs(s.Stack,{direction:"row",alignItems:"center",children:[i?f.jsx(s.Tooltip,{title:F3,placement:"bottom",children:f.jsx(Fr,{onClick:p=>C(p),children:f.jsx("img",{src:jd})})}):null,f.jsx(s.Tooltip,{title:i?h3:Ua,placement:"bottom",children:f.jsx(Fr,{onClick:()=>D(p=>!p),children:f.jsx(as,{className:i?"":"hiver-up"})})})]})]}),f.jsx(_d,{id:c,cardTitle:l,specificCardData:{[c]:e},specificConnectorApiStatus:{[c]:t},isOpen:i})]})},nA={values:{},errors:{}},Qt={SET_FIELD_VALUE:"SET_FIELD_VALUE",CLEAR_ERROR:"CLEAR_ERROR",SET_FIELD_ERROR:"SET_FIELD_ERROR",SET_FIELDS:"SET_FIELDS",SET_FORM_DEFAULTS:"SET_FORM_DEFAULTS",CLEAR_FIELDS:"CLEAR_FIELDS",RESET_STATE:"RESET_STATE"},rk=(e,t)=>{const{type:u,payload:n}=t;switch(u){case Qt.SET_FIELD_VALUE:{if(!(n!=null&&n.value))return e;const{name:r,value:o}=n.value;return{...e,values:{...e.values,[r]:o}}}case Qt.SET_FIELD_ERROR:{if(!(n!=null&&n.value))return e;const{name:r,value:o}=n.value;return typeof o=="boolean"||typeof o=="string"?{...e,errors:{...e.errors,[r]:o}}:e}case Qt.CLEAR_ERROR:{if(!(n!=null&&n.value))return e;const{name:r}=n.value;return{...e,errors:{...e.errors,[r]:""}}}case Qt.SET_FIELDS:{if(!(n!=null&&n.values))return e;const{values:r}=n;return{...e,values:r}}case Qt.SET_FORM_DEFAULTS:{if(!(n!=null&&n.values))return e;const{values:r}=n,o={...e.errors};for(const a in r??{})r[a]&&delete o[a];return{...e,errors:o,values:{...e.values,...r}}}case Qt.CLEAR_FIELDS:{const{fieldNames:r}=n??{};if(!Array.isArray(r))return e;const o={...e.values},a={...e.errors};for(const i of r)delete o[i],delete a[i];return{...e,values:o,errors:a}}case Qt.RESET_STATE:return nA}return e},rA=()=>h.useReducer(rk,nA),oA=({state:e,dispatch:t,validations:u,dynamicFields:n})=>{const r=e.errors,o=(E,C)=>{t({type:Qt.SET_FIELD_VALUE,payload:{value:{value:C,name:E}}})},a=h.useCallback(E=>{t({type:Qt.SET_FORM_DEFAULTS,payload:{values:E}})},[t]),i=h.useCallback(()=>Object.keys(r).filter(C=>!!r[C]).length>0,[r]),D=E=>{E.stopPropagation();const{name:C,value:p}=(E==null?void 0:E.target)||{};o(C,p)},c=(E,C)=>{E.stopPropagation();const{name:p}=(E==null?void 0:E.target)||{};o(p,C)},l=(E,C)=>{o(E,C||"")},d=(E,C)=>{e.errors[E]!==C&&t({type:Qt.SET_FIELD_ERROR,payload:{value:{name:E,value:C}}})},F=(E,C)=>{if(C){const p=C[E];p==null||p.forEach(A=>{var g;o(A,""),C[A]&&F(A,C),(g=u[A])!=null&&g.isRequired&&d(A,!0)})}};return h.useEffect(()=>{if(Array.isArray(n))return()=>{const E=n.map(C=>C.name);t({type:Qt.CLEAR_FIELDS,payload:{fieldNames:E}})}},[n,t]),{setValue:o,setFormDefaults:a,isErrorInValidations:i,inputChangeHandler:D,checkboxChangeHandler:c,dateChangeHandler:l,handleValidationError:d,clearDependentFields:F}},fA=({formFields:e,formId:t,formState:u,appDispatch:n})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const a=o.interfaceDetails,i={loadOptions:(D,c,l,d)=>{let F=a;o.searchInterfaceDetails&&typeof D=="string"&&D.trim().length>0&&!l&&(F=o.searchInterfaceDetails);const E=Ww(u,F==null?void 0:F.args),C=Object.values((F==null?void 0:F.args)||{});if(E.length===C.length){n(zn({fieldName:o.name,formId:String(t),searchTerm:D,fieldConfig:o,interfaceId:F==null?void 0:F.id,pagination:F==null?void 0:F.pagination,callback:c,args:{...Ro(u,F==null?void 0:F.args),...Ro(u,F==null?void 0:F.optionalArgs)},isScrollToBottomEvent:l,controller:d}));return}return c([])}};return{...r,[o.name]:i}},{}),aA=({formFields:e,formId:t,formState:u,conversationId:n,appDispatch:r})=>e.reduce((o,a)=>{if(!a.createOptionInterfaceDetails)return o;const i=a.createOptionInterfaceDetails;return{...o,[a.name]:{createOption:(D,c)=>{var d,F;if(!D)return;const l={values:{name:a.name,value:D},errors:{}};r(Sf({fieldName:a.name,formId:String(t),interfaceId:i.id,conversationId:n,label:D,callback:c,args:{...Ro(u,(d=a==null?void 0:a.interfaceDetails)==null?void 0:d.args),...Ro(u,(F=a==null?void 0:a.interfaceDetails)==null?void 0:F.optionalArgs)},createArgs:{...Ro(l,i.args)}}))}}}},{}),sA=({formFields:e,formState:t,formId:u,conversationId:n})=>{const r=yt(),o=h.useMemo(()=>{if(e&&e.length){const i=fA({formFields:e,formId:u,formState:t,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=fA({formFields:d,formId:u,formState:t,appDispatch:r});return{...c,[l.name]:{loadOptionsList:F}}},i)}return null},[e,t,u,r]),a=h.useMemo(()=>{const i=aA({formFields:e,formId:u,formState:t,conversationId:n,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=aA({formFields:d,formId:u,formState:t,conversationId:n,appDispatch:r});return{...c,[l.name]:{createOptionList:F}}},i)},[e,u,t,n,r]);return{fetchConfig:o,createConfig:a}},ok=async({formId:e})=>{try{const t=await Fe({url:lt(gd,{formId:e}),method:ye.GET}),u=t==null?void 0:t.data;return u.enabled?ul(u.defaults):{}}catch(t){throw console.error(t),t}},iA=({formId:e})=>["Global","WriteForm","FormDefaults",e],fk=({formId:e,enabled:t})=>{const u=h.useRef(!1),n=h.useRef(void 0);e&&e!==n.current&&(u.current=!0,n.current=e);const r=st({queryKey:iA({formId:e}),queryFn:async()=>{const o=await ok({formId:e});return u.current=!1,o},refetchOnMount:!0,enabled:u.current&&t,staleTime:0});return{enabledRef:u,...r}},DA=e=>Array.isArray(e)&&e.length>0,ak=async({formId:e,conversationId:t,inboxIds:u})=>{try{const n=new URLSearchParams;if(t&&n.set("conversation_id",String(t)),DA(u))for(const a of u)n.append("inbox_id",String(a));const r=await Fe({url:lt(dv,{formId:e})+"?"+n.toString(),method:ye.GET}),o=r==null?void 0:r.data;if(!o.enabled)throw new Error("Form default values are not enabled");return ul(o.defaults,!0)}catch(n){throw console.error(n),n}},cA=({formId:e,conversationId:t,inboxIds:u})=>["Global","WriteForm","FormDefaults",e,t,u],lA=({formId:e,conversationId:t,inboxIds:u,enabled:n,fetchOnMount:r=!0})=>{const o=h.useRef(!0),a=h.useRef();e!==a.current&&(o.current=!0,a.current=e);const i=st({queryKey:cA({formId:e,conversationId:t,inboxIds:u}),queryFn:async()=>{const c=await ak({formId:e,conversationId:t,inboxIds:u});return o.current=!1,c},refetchOnMount:r,enabled:o.current&&!!e&&!!t&&DA(u)&&n,staleTime:0}),D=h.useMemo(()=>{if(Object.keys(i.data??{}).length===0&&i.isSuccess)return!0},[i.data,i.isSuccess]);return{enabledRef:o,isNudgeRequired:D,...i}},sk=async({formId:e,data:t})=>{try{return await Fe({url:lt(gd,{formId:e}),data:{defaults:t},method:ye.PUT}),{formId:e,data:t}}catch(u){throw console.error(u),u}},ik=({formId:e,conversationId:t,inboxIds:u,onSuccess:n,onError:r})=>{const o=Lt();return ru({mutationFn:a=>sk({formId:e,data:a}),onSuccess:a=>{o.invalidateQueries({queryKey:iA({formId:e})}),o.invalidateQueries({queryKey:cA({formId:e,conversationId:t,inboxIds:u})}),n==null||n(a),Oe({message:"Form defaults updated successfully",type:hu})},onError:()=>{r==null||r(),Oe({message:"Failed to update form defaults",type:$e})}})},Dk=({open:e,isEdit:t,formId:u,fields:n,connectorLogo:r,variables:o,customFormArgsEnabled:a,customFormArgsMap:i,title:D="Pre-fill fields",isLoading:c=!1,onSuccess:l,onClose:d})=>{const[F,E]=h.useState({}),{conversationId:C,currentSmIds:p}=h.useContext(Ue),{data:A}=kE({formId:u,formData:F,argsMap:i??{},enabled:!!u&&!!a,delay:500}),{data:g,isLoading:m,enabledRef:b}=fk({formId:u,enabled:!t&&!!e&&!!u}),{mutate:x,isPending:y}=ik({formId:u,conversationId:C,inboxIds:p,onSuccess:_=>{b.current=!0,l==null||l(_)}}),B=h.useMemo(()=>A!=null&&A.length?[...n,...A]:n,[n,A]);h.useEffect(()=>{g&&E(g)},[g]);const v=_=>{const L=B.map(j=>({name:j.name,type:j.isMultiSelect?"multi-select":j.type})),O=VE(_,L);x(O)},S=async({args:_,pagination:L},{formId:O,fieldName:j})=>{const M=await Ad({formId:O,fieldName:j},{pagination:L,args:_}),H=Array.isArray(M==null?void 0:M.data.data)?M.data.data:[];return{options:H,hasMore:!!H.length}},I=_=>{if(_.type==="multi-select"){E(O=>({...O,[_.name]:_.value}));return}const L=qc(_.value)?_.value.value:_.value;E(O=>({...O,[_.name]:L}))};return f.jsx(Rw,{open:e,defaultValues:g,formId:u,fields:B,connectorLogo:r,variables:o,title:`Pre-fill fields for ${D}`,isLoading:c||m,isSaving:y,fetchOptions:S,onSave:v,onClose:()=>d==null?void 0:d(),onCancel:()=>d==null?void 0:d(),onFieldChange:I})},ck=async({formId:e,args:t})=>{try{const u=await Fe({url:lt(lv,{formId:e}),data:{args:t},method:ye.POST});return(u==null?void 0:u.data).fieldList.map(r=>b1(r))}catch(u){throw console.error(u),u}},lk=({formId:e,args:t,enabled:u,delay:n=500})=>{const[r,o]=h.useState(t);return h.useEffect(()=>{const a=setTimeout(()=>o(t),n);return()=>clearTimeout(a)},[t,n]),st({queryKey:["Global","WriteForm","CustomFields",e,r],queryFn:()=>ck({formId:e,args:t}),refetchOnMount:!1,enabled:u})},dk=(e,t,u,n)=>new Promise((r,o)=>{const a=new XMLHttpRequest;a.open("PUT",e,!0),Object.entries(u??{}).forEach(([i,D])=>a.setRequestHeader(i,D)),a.upload&&(a.upload.onprogress=i=>{i.lengthComputable&&(n==null||n(Math.round(i.loaded/i.total*100)))}),a.onload=()=>{if(a.status>=200&&a.status<300){r();return}o(Object.assign(new Error(`Upload failed (${a.status})`),{status:a.status}))},a.onerror=()=>o(new Error("upload network error")),a.onabort=()=>o(new Error("upload aborted")),a.send(t)}),Ak=async(e,t)=>{try{const u=await Fe({url:Av,data:{filename:e.name,size:e.size},method:ye.POST}),{attachmentId:n,presignedUrl:r,headers:o}=(u==null?void 0:u.data)??{};return await dk(r,e,o,t),{attachmentId:n,filename:e.name,size:e.size,mimeType:e.type||"application/octet-stream"}}catch(u){throw console.error(u),u}},pk=()=>ru({mutationFn:({file:e,onProgress:t})=>Ak(e,t)}),dA="connector-agent_auto_fill_nudge",Ck=s.styled(s.Stack)`
|
|
2681
2681
|
gap: 12px;
|
|
2682
2682
|
align-items: stretch;
|
|
2683
2683
|
border: 1px solid #e0bce8;
|