@hiver/connector-agent 4.19.2 → 4.19.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"getCustomFields.d.ts","sourceRoot":"","sources":["../../../../src/features/write-form/api/getCustomFields.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,qBAA4B,iBAAiB,KAAG,OAAO,CAAC,eAAe,EAAE,CAatG,CAAC;AAEF,eAAO,MAAM,oBAAoB,qCAA4C,sBAAsB,
|
|
1
|
+
{"version":3,"file":"getCustomFields.d.ts","sourceRoot":"","sources":["../../../../src/features/write-form/api/getCustomFields.ts"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,cAAc,CAAC;AACtD,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAErD,MAAM,WAAW,oBAAoB;IACnC,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CAC/B;AAED,MAAM,WAAW,sBAAuB,SAAQ,iBAAiB;IAC/D,OAAO,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,eAAO,MAAM,iBAAiB,qBAA4B,iBAAiB,KAAG,OAAO,CAAC,eAAe,EAAE,CAatG,CAAC;AAEF,eAAO,MAAM,oBAAoB,qCAA4C,sBAAsB,6EAsBlG,CAAC"}
|
package/index.es.js
CHANGED
|
@@ -22272,14 +22272,16 @@ const tT = w(qi)`
|
|
|
22272
22272
|
}
|
|
22273
22273
|
}, gT = ({ formId: e, args: t, enabled: u, delay: n = 500 }) => {
|
|
22274
22274
|
const [r, o] = P(t);
|
|
22275
|
-
|
|
22276
|
-
const
|
|
22277
|
-
return () => clearTimeout(
|
|
22278
|
-
}, [t, n])
|
|
22275
|
+
ne(() => {
|
|
22276
|
+
const i = setTimeout(() => o(t), n);
|
|
22277
|
+
return () => clearTimeout(i);
|
|
22278
|
+
}, [t, n]);
|
|
22279
|
+
const a = JSON.stringify(r) === JSON.stringify(t);
|
|
22280
|
+
return xt({
|
|
22279
22281
|
queryKey: ["Global", "WriteForm", "CustomFields", e, r],
|
|
22280
|
-
queryFn: () => hT({ formId: e, args:
|
|
22282
|
+
queryFn: () => hT({ formId: e, args: r }),
|
|
22281
22283
|
refetchOnMount: !1,
|
|
22282
|
-
enabled: u
|
|
22284
|
+
enabled: u && a
|
|
22283
22285
|
});
|
|
22284
22286
|
}, FT = (e, t, u, n) => new Promise((r, o) => {
|
|
22285
22287
|
const a = new XMLHttpRequest();
|
package/index.umd.js
CHANGED
|
@@ -2677,7 +2677,7 @@ Do you want to continue?`,_v="Select an object to create",Ov="Select an object t
|
|
|
2677
2677
|
height: 20px;
|
|
2678
2678
|
flex-shrink: 0;
|
|
2679
2679
|
}
|
|
2680
|
-
`,nA=({cardData:e,cardDataApiStatus:t,objectToLink:u,args:n})=>{const r=yt(),[o,f]=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;f(!!A)},g=p=>{var C;r(Ir({id:u,args:n,isRefresh:!0}));const A=p.target.tagName==="BUTTON"?(C=p.target)==null?void 0:C.firstChild:p.target;A.className&&(A.className=""),setTimeout(()=>A.className="selected",1)};return a.jsxs(nk,{children:[a.jsxs(rk,{direction:"row",justifyContent:"space-between",children:[F?a.jsxs(s.Stack,{gap:"6px",direction:"row",children:[a.jsx(fu,{width:"16px",height:"24px"}),a.jsx(fu,{width:"100px",height:"24px"})]}):a.jsxs(fk,{children:[d&&a.jsx("img",{src:d,alt:l}),a.jsx(s.Tooltip,{title:o?l:"",children:a.jsx(s.Typography,{variant:"h4",onMouseOver:p=>E(p),onMouseLeave:p=>E(p),children:l})})]}),a.jsxs(s.Stack,{direction:"row",alignItems:"center",children:[i?a.jsx(s.Tooltip,{title:g3,placement:"bottom",children:a.jsx(Fr,{onClick:p=>g(p),children:a.jsx("img",{src:Md})})}):null,a.jsx(s.Tooltip,{title:i?F3:Ua,placement:"bottom",children:a.jsx(Fr,{onClick:()=>D(p=>!p),children:a.jsx(as,{className:i?"":"hiver-up"})})})]})]}),a.jsx(Od,{id:c,cardTitle:l,specificCardData:{[c]:e},specificConnectorApiStatus:{[c]:t},isOpen:i})]})},rA={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"},ak=(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 f in r??{})r[f]&&delete o[f];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},f={...e.errors};for(const i of r)delete o[i],delete f[i];return{...e,values:o,errors:f}}case Qt.RESET_STATE:return rA}return e},oA=()=>h.useReducer(ak,rA),fA=({state:e,dispatch:t,validations:u,dynamicFields:n})=>{const r=e.errors,o=(E,g)=>{t({type:Qt.SET_FIELD_VALUE,payload:{value:{value:g,name:E}}})},f=h.useCallback(E=>{t({type:Qt.SET_FORM_DEFAULTS,payload:{values:E}})},[t]),i=h.useCallback(()=>Object.keys(r).filter(g=>!!r[g]).length>0,[r]),D=E=>{E.stopPropagation();const{name:g,value:p}=(E==null?void 0:E.target)||{};o(g,p)},c=(E,g)=>{E.stopPropagation();const{name:p}=(E==null?void 0:E.target)||{};o(p,g)},l=(E,g)=>{o(E,g||"")},d=(E,g)=>{e.errors[E]!==g&&t({type:Qt.SET_FIELD_ERROR,payload:{value:{name:E,value:g}}})},F=(E,g)=>{if(g){const p=g[E];p==null||p.forEach(A=>{var C;o(A,""),g[A]&&F(A,g),(C=u[A])!=null&&C.isRequired&&d(A,!0)})}};return h.useEffect(()=>{if(Array.isArray(n))return()=>{const E=n.map(g=>g.name);t({type:Qt.CLEAR_FIELDS,payload:{fieldNames:E}})}},[n,t]),{setValue:o,setFormDefaults:f,isErrorInValidations:i,inputChangeHandler:D,checkboxChangeHandler:c,dateChangeHandler:l,handleValidationError:d,clearDependentFields:F}},aA=({formFields:e,formId:t,formState:u,appDispatch:n})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const f=o.interfaceDetails,i={loadOptions:(D,c,l,d)=>{let F=f;o.searchInterfaceDetails&&typeof D=="string"&&D.trim().length>0&&!l&&(F=o.searchInterfaceDetails);const E=zw(u,F==null?void 0:F.args),g=Object.values((F==null?void 0:F.args)||{});if(E.length===g.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}},{}),sA=({formFields:e,formId:t,formState:u,conversationId:n,appDispatch:r})=>e.reduce((o,f)=>{if(!f.createOptionInterfaceDetails)return o;const i=f.createOptionInterfaceDetails;return{...o,[f.name]:{createOption:(D,c)=>{var d,F;if(!D)return;const l={values:{name:f.name,value:D},errors:{}};r(Sf({fieldName:f.name,formId:String(t),interfaceId:i.id,conversationId:n,label:D,callback:c,args:{...Ro(u,(d=f==null?void 0:f.interfaceDetails)==null?void 0:d.args),...Ro(u,(F=f==null?void 0:f.interfaceDetails)==null?void 0:F.optionalArgs)},createArgs:{...Ro(l,i.args)}}))}}}},{}),iA=({formFields:e,formState:t,formId:u,conversationId:n})=>{const r=yt(),o=h.useMemo(()=>{if(e&&e.length){const i=aA({formFields:e,formId:u,formState:t,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=aA({formFields:d,formId:u,formState:t,appDispatch:r});return{...c,[l.name]:{loadOptionsList:F}}},i)}return null},[e,t,u,r]),f=h.useMemo(()=>{const i=sA({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=sA({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:f}},sk=async({formId:e})=>{try{const t=await Fe({url:lt(Fd,{formId:e}),method:ye.GET}),u=t==null?void 0:t.data;return u.enabled?tl(u.defaults):{}}catch(t){throw console.error(t),t}},DA=({formId:e})=>["Global","WriteForm","FormDefaults",e],ik=({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:DA({formId:e}),queryFn:async()=>{const o=await sk({formId:e});return u.current=!1,o},refetchOnMount:!0,enabled:u.current&&t,staleTime:0});return{enabledRef:u,...r}},cA=e=>Array.isArray(e)&&e.length>0,Dk=async({formId:e,conversationId:t,inboxIds:u})=>{try{const n=new URLSearchParams;if(t&&n.set("conversation_id",String(t)),cA(u))for(const f of u)n.append("inbox_id",String(f));const r=await Fe({url:lt(Cv,{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 tl(o.defaults,!0)}catch(n){throw console.error(n),n}},lA=({formId:e,conversationId:t,inboxIds:u})=>["Global","WriteForm","FormDefaults",e,t,u],dA=({formId:e,conversationId:t,inboxIds:u,enabled:n,fetchOnMount:r=!0})=>{const o=h.useRef(!0),f=h.useRef();e!==f.current&&(o.current=!0,f.current=e);const i=st({queryKey:lA({formId:e,conversationId:t,inboxIds:u}),queryFn:async()=>{const c=await Dk({formId:e,conversationId:t,inboxIds:u});return o.current=!1,c},refetchOnMount:r,enabled:o.current&&!!e&&!!t&&cA(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}},ck=async({formId:e,data:t})=>{try{return await Fe({url:lt(Fd,{formId:e}),data:{defaults:t},method:ye.PUT}),{formId:e,data:t}}catch(u){throw console.error(u),u}},lk=({formId:e,conversationId:t,inboxIds:u,onSuccess:n,onError:r})=>{const o=Lt();return ru({mutationFn:f=>ck({formId:e,data:f}),onSuccess:f=>{o.invalidateQueries({queryKey:DA({formId:e})}),o.invalidateQueries({queryKey:lA({formId:e,conversationId:t,inboxIds:u})}),n==null||n(f),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:f,customFormArgsMap:i,title:D="Pre-fill fields",isLoading:c=!1,onSuccess:l,onClose:d})=>{const[F,E]=h.useState({}),{conversationId:g,currentSmIds:p}=h.useContext(Ue),{data:A}=TE({formId:u,formData:F,argsMap:i??{},enabled:!!u&&!!f,delay:500}),{data:C,isLoading:m,enabledRef:b}=ik({formId:u,enabled:!t&&!!e&&!!u}),{mutate:x,isPending:y}=lk({formId:u,conversationId:g,inboxIds:p,onSuccess:O=>{b.current=!0,l==null||l(O)}}),B=h.useMemo(()=>A!=null&&A.length?[...n,...A]:n,[n,A]);h.useEffect(()=>{C&&E(C)},[C]);const v=O=>{const L=B.map(j=>({name:j.name,type:j.isMultiSelect?"multi-select":j.type})),_=GE(O,L);x(_)},S=async({args:O,pagination:L},{formId:_,fieldName:j})=>{const M=await pd({formId:_,fieldName:j},{pagination:L,args:O}),H=Array.isArray(M==null?void 0:M.data.data)?M.data.data:[];return{options:H,hasMore:!!H.length}},k=O=>{if(O.type==="multi-select"){E(_=>({..._,[O.name]:O.value}));return}const L=Yc(O.value)?O.value.value:O.value;E(_=>({..._,[O.name]:L}))};return a.jsx(Vw,{open:e,defaultValues:C,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:k})},Ak=async({formId:e,args:t})=>{try{const u=await Fe({url:lt(pv,{formId:e}),data:{args:t},method:ye.POST});return(u==null?void 0:u.data).fieldList.map(r=>m1(r))}catch(u){throw console.error(u),u}},pk=({formId:e,args:t,enabled:u,delay:n=500})=>{const[r,o]=h.useState(t);return h.useEffect(()=>{const f=setTimeout(()=>o(t),n);return()=>clearTimeout(f)},[t,n]),st({queryKey:["Global","WriteForm","CustomFields",e,r],queryFn:()=>Ak({formId:e,args:t}),refetchOnMount:!1,enabled:u})},Ck=(e,t,u,n)=>new Promise((r,o)=>{const f=new XMLHttpRequest;f.open("PUT",e,!0),Object.entries(u??{}).forEach(([i,D])=>f.setRequestHeader(i,D)),f.upload&&(f.upload.onprogress=i=>{i.lengthComputable&&(n==null||n(Math.round(i.loaded/i.total*100)))}),f.onload=()=>{if(f.status>=200&&f.status<300){r();return}o(Object.assign(new Error(`Upload failed (${f.status})`),{status:f.status}))},f.onerror=()=>o(new Error("upload network error")),f.onabort=()=>o(new Error("upload aborted")),f.send(t)}),gk=async(e,t)=>{try{const u=await Fe({url:gv,data:{filename:e.name,size:e.size},method:ye.POST}),{attachmentId:n,presignedUrl:r,headers:o}=(u==null?void 0:u.data)??{};return await Ck(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}},Fk=()=>ru({mutationFn:({file:e,onProgress:t})=>gk(e,t)}),AA="connector-agent_auto_fill_nudge",hk=s.styled(s.Stack)`
|
|
2680
|
+
`,nA=({cardData:e,cardDataApiStatus:t,objectToLink:u,args:n})=>{const r=yt(),[o,f]=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;f(!!A)},g=p=>{var C;r(Ir({id:u,args:n,isRefresh:!0}));const A=p.target.tagName==="BUTTON"?(C=p.target)==null?void 0:C.firstChild:p.target;A.className&&(A.className=""),setTimeout(()=>A.className="selected",1)};return a.jsxs(nk,{children:[a.jsxs(rk,{direction:"row",justifyContent:"space-between",children:[F?a.jsxs(s.Stack,{gap:"6px",direction:"row",children:[a.jsx(fu,{width:"16px",height:"24px"}),a.jsx(fu,{width:"100px",height:"24px"})]}):a.jsxs(fk,{children:[d&&a.jsx("img",{src:d,alt:l}),a.jsx(s.Tooltip,{title:o?l:"",children:a.jsx(s.Typography,{variant:"h4",onMouseOver:p=>E(p),onMouseLeave:p=>E(p),children:l})})]}),a.jsxs(s.Stack,{direction:"row",alignItems:"center",children:[i?a.jsx(s.Tooltip,{title:g3,placement:"bottom",children:a.jsx(Fr,{onClick:p=>g(p),children:a.jsx("img",{src:Md})})}):null,a.jsx(s.Tooltip,{title:i?F3:Ua,placement:"bottom",children:a.jsx(Fr,{onClick:()=>D(p=>!p),children:a.jsx(as,{className:i?"":"hiver-up"})})})]})]}),a.jsx(Od,{id:c,cardTitle:l,specificCardData:{[c]:e},specificConnectorApiStatus:{[c]:t},isOpen:i})]})},rA={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"},ak=(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 f in r??{})r[f]&&delete o[f];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},f={...e.errors};for(const i of r)delete o[i],delete f[i];return{...e,values:o,errors:f}}case Qt.RESET_STATE:return rA}return e},oA=()=>h.useReducer(ak,rA),fA=({state:e,dispatch:t,validations:u,dynamicFields:n})=>{const r=e.errors,o=(E,g)=>{t({type:Qt.SET_FIELD_VALUE,payload:{value:{value:g,name:E}}})},f=h.useCallback(E=>{t({type:Qt.SET_FORM_DEFAULTS,payload:{values:E}})},[t]),i=h.useCallback(()=>Object.keys(r).filter(g=>!!r[g]).length>0,[r]),D=E=>{E.stopPropagation();const{name:g,value:p}=(E==null?void 0:E.target)||{};o(g,p)},c=(E,g)=>{E.stopPropagation();const{name:p}=(E==null?void 0:E.target)||{};o(p,g)},l=(E,g)=>{o(E,g||"")},d=(E,g)=>{e.errors[E]!==g&&t({type:Qt.SET_FIELD_ERROR,payload:{value:{name:E,value:g}}})},F=(E,g)=>{if(g){const p=g[E];p==null||p.forEach(A=>{var C;o(A,""),g[A]&&F(A,g),(C=u[A])!=null&&C.isRequired&&d(A,!0)})}};return h.useEffect(()=>{if(Array.isArray(n))return()=>{const E=n.map(g=>g.name);t({type:Qt.CLEAR_FIELDS,payload:{fieldNames:E}})}},[n,t]),{setValue:o,setFormDefaults:f,isErrorInValidations:i,inputChangeHandler:D,checkboxChangeHandler:c,dateChangeHandler:l,handleValidationError:d,clearDependentFields:F}},aA=({formFields:e,formId:t,formState:u,appDispatch:n})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const f=o.interfaceDetails,i={loadOptions:(D,c,l,d)=>{let F=f;o.searchInterfaceDetails&&typeof D=="string"&&D.trim().length>0&&!l&&(F=o.searchInterfaceDetails);const E=zw(u,F==null?void 0:F.args),g=Object.values((F==null?void 0:F.args)||{});if(E.length===g.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}},{}),sA=({formFields:e,formId:t,formState:u,conversationId:n,appDispatch:r})=>e.reduce((o,f)=>{if(!f.createOptionInterfaceDetails)return o;const i=f.createOptionInterfaceDetails;return{...o,[f.name]:{createOption:(D,c)=>{var d,F;if(!D)return;const l={values:{name:f.name,value:D},errors:{}};r(Sf({fieldName:f.name,formId:String(t),interfaceId:i.id,conversationId:n,label:D,callback:c,args:{...Ro(u,(d=f==null?void 0:f.interfaceDetails)==null?void 0:d.args),...Ro(u,(F=f==null?void 0:f.interfaceDetails)==null?void 0:F.optionalArgs)},createArgs:{...Ro(l,i.args)}}))}}}},{}),iA=({formFields:e,formState:t,formId:u,conversationId:n})=>{const r=yt(),o=h.useMemo(()=>{if(e&&e.length){const i=aA({formFields:e,formId:u,formState:t,appDispatch:r});return e.reduce((c,l)=>{const d=l.columns;if(!d)return c;const F=aA({formFields:d,formId:u,formState:t,appDispatch:r});return{...c,[l.name]:{loadOptionsList:F}}},i)}return null},[e,t,u,r]),f=h.useMemo(()=>{const i=sA({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=sA({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:f}},sk=async({formId:e})=>{try{const t=await Fe({url:lt(Fd,{formId:e}),method:ye.GET}),u=t==null?void 0:t.data;return u.enabled?tl(u.defaults):{}}catch(t){throw console.error(t),t}},DA=({formId:e})=>["Global","WriteForm","FormDefaults",e],ik=({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:DA({formId:e}),queryFn:async()=>{const o=await sk({formId:e});return u.current=!1,o},refetchOnMount:!0,enabled:u.current&&t,staleTime:0});return{enabledRef:u,...r}},cA=e=>Array.isArray(e)&&e.length>0,Dk=async({formId:e,conversationId:t,inboxIds:u})=>{try{const n=new URLSearchParams;if(t&&n.set("conversation_id",String(t)),cA(u))for(const f of u)n.append("inbox_id",String(f));const r=await Fe({url:lt(Cv,{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 tl(o.defaults,!0)}catch(n){throw console.error(n),n}},lA=({formId:e,conversationId:t,inboxIds:u})=>["Global","WriteForm","FormDefaults",e,t,u],dA=({formId:e,conversationId:t,inboxIds:u,enabled:n,fetchOnMount:r=!0})=>{const o=h.useRef(!0),f=h.useRef();e!==f.current&&(o.current=!0,f.current=e);const i=st({queryKey:lA({formId:e,conversationId:t,inboxIds:u}),queryFn:async()=>{const c=await Dk({formId:e,conversationId:t,inboxIds:u});return o.current=!1,c},refetchOnMount:r,enabled:o.current&&!!e&&!!t&&cA(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}},ck=async({formId:e,data:t})=>{try{return await Fe({url:lt(Fd,{formId:e}),data:{defaults:t},method:ye.PUT}),{formId:e,data:t}}catch(u){throw console.error(u),u}},lk=({formId:e,conversationId:t,inboxIds:u,onSuccess:n,onError:r})=>{const o=Lt();return ru({mutationFn:f=>ck({formId:e,data:f}),onSuccess:f=>{o.invalidateQueries({queryKey:DA({formId:e})}),o.invalidateQueries({queryKey:lA({formId:e,conversationId:t,inboxIds:u})}),n==null||n(f),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:f,customFormArgsMap:i,title:D="Pre-fill fields",isLoading:c=!1,onSuccess:l,onClose:d})=>{const[F,E]=h.useState({}),{conversationId:g,currentSmIds:p}=h.useContext(Ue),{data:A}=TE({formId:u,formData:F,argsMap:i??{},enabled:!!u&&!!f,delay:500}),{data:C,isLoading:m,enabledRef:b}=ik({formId:u,enabled:!t&&!!e&&!!u}),{mutate:x,isPending:y}=lk({formId:u,conversationId:g,inboxIds:p,onSuccess:O=>{b.current=!0,l==null||l(O)}}),B=h.useMemo(()=>A!=null&&A.length?[...n,...A]:n,[n,A]);h.useEffect(()=>{C&&E(C)},[C]);const v=O=>{const L=B.map(j=>({name:j.name,type:j.isMultiSelect?"multi-select":j.type})),_=GE(O,L);x(_)},S=async({args:O,pagination:L},{formId:_,fieldName:j})=>{const M=await pd({formId:_,fieldName:j},{pagination:L,args:O}),H=Array.isArray(M==null?void 0:M.data.data)?M.data.data:[];return{options:H,hasMore:!!H.length}},k=O=>{if(O.type==="multi-select"){E(_=>({..._,[O.name]:O.value}));return}const L=Yc(O.value)?O.value.value:O.value;E(_=>({..._,[O.name]:L}))};return a.jsx(Vw,{open:e,defaultValues:C,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:k})},Ak=async({formId:e,args:t})=>{try{const u=await Fe({url:lt(pv,{formId:e}),data:{args:t},method:ye.POST});return(u==null?void 0:u.data).fieldList.map(r=>m1(r))}catch(u){throw console.error(u),u}},pk=({formId:e,args:t,enabled:u,delay:n=500})=>{const[r,o]=h.useState(t);h.useEffect(()=>{const i=setTimeout(()=>o(t),n);return()=>clearTimeout(i)},[t,n]);const f=JSON.stringify(r)===JSON.stringify(t);return st({queryKey:["Global","WriteForm","CustomFields",e,r],queryFn:()=>Ak({formId:e,args:r}),refetchOnMount:!1,enabled:u&&f})},Ck=(e,t,u,n)=>new Promise((r,o)=>{const f=new XMLHttpRequest;f.open("PUT",e,!0),Object.entries(u??{}).forEach(([i,D])=>f.setRequestHeader(i,D)),f.upload&&(f.upload.onprogress=i=>{i.lengthComputable&&(n==null||n(Math.round(i.loaded/i.total*100)))}),f.onload=()=>{if(f.status>=200&&f.status<300){r();return}o(Object.assign(new Error(`Upload failed (${f.status})`),{status:f.status}))},f.onerror=()=>o(new Error("upload network error")),f.onabort=()=>o(new Error("upload aborted")),f.send(t)}),gk=async(e,t)=>{try{const u=await Fe({url:gv,data:{filename:e.name,size:e.size},method:ye.POST}),{attachmentId:n,presignedUrl:r,headers:o}=(u==null?void 0:u.data)??{};return await Ck(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}},Fk=()=>ru({mutationFn:({file:e,onProgress:t})=>gk(e,t)}),AA="connector-agent_auto_fill_nudge",hk=s.styled(s.Stack)`
|
|
2681
2681
|
gap: 12px;
|
|
2682
2682
|
align-items: stretch;
|
|
2683
2683
|
border: 1px solid #e0bce8;
|