@hiver/connector-agent 1.3.4-beta.5 → 1.3.4-beta.6
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":"api.d.ts","sourceRoot":"","sources":["../../../../src/features/write-form/constants/api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,qBAAqB,EAAE,
|
|
1
|
+
{"version":3,"file":"api.d.ts","sourceRoot":"","sources":["../../../../src/features/write-form/constants/api.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ,YAAY,CAAC;AAClC,eAAO,MAAM,qBAAqB,EAAE,MAA4C,CAAC;AACjF,eAAO,MAAM,eAAe,EAAE,MAAkD,CAAC;AACjF,eAAO,MAAM,aAAa,EAAE,MAAgD,CAAC;AAC7E,eAAO,MAAM,gBAAgB,EAAE,MAAmD,CAAC;AACnF,eAAO,MAAM,gBAAgB,EAAE,MAAoE,CAAC;AACpG,eAAO,MAAM,WAAW,EAAE,MAA8C,CAAC"}
|
package/index.es.js
CHANGED
|
@@ -35649,7 +35649,7 @@ const Hi = "success", ss = "error", JB = "Some error occured. Please contact sup
|
|
|
35649
35649
|
localStorage.setItem(mA, JSON.stringify(i));
|
|
35650
35650
|
return;
|
|
35651
35651
|
}
|
|
35652
|
-
}, sd = (e = {}, t) => (e == null ? void 0 : e[t]) === !0, th = (e, t) => e.replace(/:(\w+)/g, (n, o) => String(t[o]) || ""), oa = "/v1/api", OU = `${oa}/
|
|
35652
|
+
}, sd = (e = {}, t) => (e == null ? void 0 : e[t]) === !0, th = (e, t) => e.replace(/:(\w+)/g, (n, o) => String(t[o]) || ""), oa = "/v1/api", OU = `${oa}/connectors/forms/list`, SU = `${oa}/connectors/cards/:id/unlink`, MU = `${oa}/connectors/forms/:id/link`, RU = `${oa}/connectors/forms/:id/preview`, DU = `${oa}/connectors/form/:formId/field/:fieldName/data`, PU = `${oa}/connectors/form/:formId`, LU = ({
|
|
35653
35653
|
inboxIds: e,
|
|
35654
35654
|
channelType: t,
|
|
35655
35655
|
conversationId: n
|
package/index.umd.js
CHANGED
|
@@ -2082,7 +2082,7 @@ Take a look at the reducer(s) handling this action type: ${B.type}.
|
|
|
2082
2082
|
fill: #ffffff;
|
|
2083
2083
|
width: 10px;
|
|
2084
2084
|
}
|
|
2085
|
-
`,gU=(e,{closeToast:t})=>y.jsx(dU,{children:y.jsx("img",{src:AU,onClick:t})}),Dl=({message:e})=>y.jsxs(lU,{children:[y.jsx(uU,{}),y.jsx(cU,{children:e})]});function no(e){const{message:t,type:n,autoClose:o}=e,r={closeButton:y.jsx(gU,{}),autoClose:o??5e3,pauseOnHover:!0,position:"bottom-left",rtl:!1,draggable:!0,closeOnClick:!0,hideProgressBar:!0};let i;switch(n){case"success":{i=nt.success(y.jsx(Dl,{message:t}),{...r,icon:!1});break}case"error":{i=nt.error(y.jsx(Dl,{message:t}),{...r,icon:!1});break}case"info-dark":{i=nt.info(y.jsx(Dl,{message:t}),{...r,icon:!1,className:"toast_dark"});break}default:{i=nt.info(y.jsx(Dl,{message:t}),{...r,icon:!1});break}}return setTimeout(()=>{fU(i)},o&&!isNaN(o)?Number(o):5e3),i}function fU(e){nt.dismiss(e)}const ji="success",Ca="error",AB="Some error occured. Please contact support@hiverhq.com",lB="Card refreshed successfully",pU="Card unlinked successfully",CU="Failed to unlink the card",cB=o2({name:"connectorCardLibrary",initialState:vP,reducers:{updateThreadId(e,t){const{payload:n}=t;e.threadId=n.threadId,e.connectorCards=null},clearConnectorList(e){e.connectorCards=null,e.cardSpecificData=null}},extraReducers:e=>{e.addCase(Ea.pending,t=>{t.connectorApiStatus=Re.LOADING}).addCase(Ea.fulfilled,(t,n)=>{t.connectorApiStatus=Re.IDLE,t.connectorCards=n.payload.cards}).addCase(Ea.rejected,t=>{t.connectorApiStatus=Re.FAILED}).addCase(Vi.pending,(t,n)=>{const{id:o}=n.meta.arg;t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.LOADING}}).addCase(Vi.fulfilled,(t,n)=>{const{id:o}=n.meta.arg,{data:r}=n.payload||{};r&&(t.cardSpecificData={...t.cardSpecificData?t.cardSpecificData:{},[o]:r}),t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.IDLE}}).addCase(Vi.rejected,(t,n)=>{const{id:o}=n.meta.arg;t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.FAILED}})}}),Ea=tr("connectorCardLibrary/fetchAllCard",async({inboxIds:e,channelType:t,conversationId:n})=>{var i;const o=await nU({inboxIds:e,channelType:t,conversationId:n});return Array.isArray((i=o==null?void 0:o.data)==null?void 0:i.cards)?{cards:o.data.cards.sort((a,A)=>(a==null?void 0:a.priority)-(A==null?void 0:A.priority))}:{cards:[]}}),Vi=tr("connectorCardLibrary/fetchSpecificCard",async({id:e,email:t,conversationId:n,isRefresh:o})=>{const r=await oU(e,t,n),i=r==null?void 0:r.data;if(!i)return o&&no({message:AB,type:Ca}),{data:{}};if(o&&no({message:lB,type:ji}),i.cardType==="flat"){const a=i.data.flatDisplay.sort((A,l)=>(A==null?void 0:A.priority)-(l==null?void 0:l.priority));i.data.flatDisplay=a}else{const a=i.data.listItems.fields.map(A=>A.sort((l,c)=>(l==null?void 0:l.priority)-(c==null?void 0:c.priority)));i.data.listItems.fields=a}return{data:i}}),EU=cB.reducer,IU=cB.actions,uB={objectList:[],objectDict:null,formFields:null,previewCardData:null,objectListApiStatus:Re.IDLE,unlinkCardApiStatus:Re.IDLE,linkCardApiStatus:Re.IDLE,previewCardApiStatus:Re.IDLE,optionsMap:null,dropdownOptionsApis:Re.IDLE,dependentFieldsMap:{},createFormApiStatus:Re.IDLE},Pl="hiver_connectors",BU={NOT_FOUND:404},hU="ftr-connector-blue-dot",dB="ftr-connectors-write-flow",Eg=e=>{let t=localStorage.getItem(Pl);return t=t?JSON.parse(t):!1,t==null?void 0:t[e]},mU=e=>!!Eg(e),gB=()=>String(r2()),QU=(e,t=gB())=>{const n=Eg(e);return((n==null?void 0:n.isExtensionNew)??[]).includes(t)},fB=(e,t=!1)=>{const n=gB(),o=Eg(e);if(t||!o){localStorage.removeItem(Pl);const r={[e]:{isExtensionNew:[...t?[]:[n]]}};localStorage.setItem(Pl,JSON.stringify(r));return}else{const r=(o==null?void 0:o.isExtensionNew)??[],i={[e]:{...o,isExtensionNew:[...new Set([...r,n])]}};localStorage.setItem(Pl,JSON.stringify(i));return}},Ig=(e={},t)=>(e==null?void 0:e[t])===!0,pB=(e,t)=>e.replace(/:(\w+)/g,(n,o)=>String(t[o])||""),Hi="/v1/api",bU=`${Hi}/objectList`,vU=`${Hi}/connectors/cards/:id/unlink`,yU=`${Hi}/connectors/forms/:id/link`,wU=`${Hi}/connectors/forms/:id/preview`,xU=`${Hi}/connectors/form/:formId/field/:fieldName/data`,TU=`${Hi}/connectors/form/:formId`,FU=({inboxIds:e,channelType:t,conversationId:n})=>{const o=new URLSearchParams;return e.forEach(r=>o.append("inbox_ids",r)),o.append("channel_type",t),o.append("conversation_id",String(n)),Ro({url:`${bU}?${o.toString()}`,method:nr.GET})},kU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:pB(`${xU}?${o.toString()}`,e),method:nr.POST,data:t})},SU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:pB(`${TU}?${o.toString()}`,e),method:nr.POST,data:t})},OU=(e,t="email")=>{const n=new URLSearchParams;return n.append("channel_type",t),Ro({url:`${vU.replace(":id",e)}?${n.toString()}`,method:nr.POST})},MU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:`${yU.replace(":id",e)}?${o.toString()}`,method:nr.POST,data:{external_resource_id:t}})},DU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:`${wU.replace(":id",e)}?${o.toString()}`,method:nr.POST,data:{args:t}})},PU="Error in previewing the card",RU="Card linked successfully",LU="Error in linking the card",CB="Please enter a valid URL",UU="Please enter valid ID",NU="Please enter valid input",jU="URL must start with https://",VU="URL should not end with a slash",HU="Invalid email address",WU="Email must be a string",EB="Invalid date",zU="Date cannot be in the past",YU="Date cannot be in the future",GU="Invalid number",XU="Invalid text",KU="New card created",ZU="Card creation failed!!",JU="Required Field",qU="Invalid date",IB=/^https:\/\/([a-z0-9-]+(\.[a-z0-9-]+)+)(:[0-9]{1,5})?(\/[^\s/]*)*$/i,_U=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,$U=(e,t)=>t?Object.values(t).filter(o=>e.values[o]&&!e.errors[o]):[],eN=(e,t)=>t?Object.keys(t).reduce((o,r)=>{let i="";const a=t[r];return e.values&&e.values[a]&&typeof e.values[a]=="object"&&"value"in e.values[a]?i=e.values[a].value:e.values&&e.values[a]&&typeof e.values[a]!="object"&&(i=e.values[a]),{...o,[r]:i}},{}):{},BB=(e,t,n)=>{let o=`${t}_${n}`;return Object.keys(e).forEach(r=>{o=`${o}_${r}:${e[r]}`}),o},tN=e=>t=>{if(t&&typeof t=="string"){const n=t.replace(/\/$/,"");return n.startsWith("https://")?t.endsWith("/")?VU:IB.test(n)?!0:e||CB:jU}return!1},nN=e=>t=>t&&typeof t=="string"?_U.test(t)?!0:e||HU:WU,oN=e=>t=>t==null||t===""?e||JU:!0,rN=e=>(t,n)=>{if(!t||(t==null?void 0:t.toString())===qU)return EB;if(typeof t=="object"){const o=t,r=new Date;r.setHours(0,0,0,0);const i=n.disablePast,a=n.disableFuture;return i&&o<r?e||zU:a&&o>r?e||YU:!0}return EB},iN=e=>(t,n)=>{if(t=Number(t),typeof t=="number"&&!isNaN(t)){const o=n.min,r=n.max;return o!==void 0&&t<o?e||`Value should not be less than ${o}`:r!==void 0&&t>r?e||`Value should not be greater than ${r}`:!0}return e||GU},sN=e=>(t,n)=>{if(typeof t=="string"){const o=n.maxCharacters;return o!==void 0&&t.length>o?e||`Maximum characters allowed are ${o}`:!0}return e||XU},aN=e=>t=>typeof t=="string"?t.startsWith("https:")?IB.test(t)?!0:e||CB:t.trim().length>0?!0:e||UU:e||NU,AN=({formFields:e})=>{const t={};return e.forEach(n=>{var o,r,i,a,A,l;if(t[n.name]={},(o=n.validations)!=null&&o.isRequired&&(typeof n.validations.isRequired=="object"?t[n.name].isRequired=oN(n.validations.isRequired.msg):t[n.name].isRequired=!0),n.type==="date"&&((r=n.validations)!=null&&r.disableFuture||(i=n.validations)!=null&&i.disablePast)){let c=typeof n.validations.disableFuture=="object"?n.validations.disableFuture.msg:"";c=typeof n.validations.disablePast=="object"?n.validations.disablePast.msg:c,t[n.name].validate=rN(c);return}if(n.type==="number"&&((a=n.validations)!=null&&a.range)){t[n.name].validate=iN();return}if(n.type==="text"&&n.multiline&&n.maxCharacters){t[n.name].validate=sN();return}if((A=n.validations)!=null&&A.isUrl){const c=typeof n.validations.isUrl=="object"?n.validations.isUrl.msg:"";t[n.name].validate=tN(c)}else if((l=n.validations)!=null&&l.isEmail){const c=typeof n.validations.isEmail=="object"?n.validations.isEmail.msg:"";t[n.name].validate=nN(c)}}),t},hB=o2({name:"writeCapability",initialState:uB,reducers:{resetState:()=>uB},extraReducers:e=>{e.addCase(Ia.pending,t=>{t.objectListApiStatus=Re.LOADING}).addCase(Ia.fulfilled,(t,n)=>{t.objectListApiStatus=Re.IDLE,t.objectList=n.payload.objectList,t.formFields=n.payload.formFields,t.objectDict=n.payload.objectDict,t.dependentFieldsMap=n.payload.dependentFieldsMap}).addCase(Ia.rejected,t=>{t.objectListApiStatus=Re.FAILED}).addCase(Rl.pending,t=>{t.dropdownOptionsApis=Re.LOADING}).addCase(Rl.fulfilled,(t,n)=>{const o=t.optionsMap||{},{optionsList:r,hasMore:i,currentPage:a,key:A}=n.payload;t.dropdownOptionsApis=Re.IDLE,t.optionsMap={...o,[A]:{options:r,hasMore:i,currentPage:a}}}).addCase(Rl.rejected,t=>{t.dropdownOptionsApis=Re.FAILED}).addCase(Ll.pending,t=>{t.createFormApiStatus=Re.LOADING}).addCase(Ll.fulfilled,t=>{t.createFormApiStatus=Re.IDLE}).addCase(Ll.rejected,t=>{t.createFormApiStatus=Re.FAILED}).addCase(Nl.pending,t=>{t.linkCardApiStatus=Re.LOADING}).addCase(Nl.fulfilled,t=>{t.linkCardApiStatus=Re.IDLE}).addCase(Nl.rejected,t=>{t.linkCardApiStatus=Re.FAILED}).addCase(Ul.pending,t=>{t.unlinkCardApiStatus=Re.LOADING}).addCase(Ul.fulfilled,t=>{t.unlinkCardApiStatus=Re.IDLE}).addCase(Ul.rejected,t=>{t.unlinkCardApiStatus=Re.FAILED}).addCase(Ba.pending,t=>{t.previewCardApiStatus=Re.LOADING}).addCase(Ba.fulfilled,(t,n)=>{const{data:o}=n.payload;o&&(t.previewCardData=o),t.previewCardApiStatus=Re.IDLE}).addCase(Ba.rejected,t=>{t.previewCardApiStatus=Re.FAILED})}}),Ia=tr("writeCapability/fetchObjectList",async e=>{const{inboxIds:t,channelType:n,conversationId:o}=e,r=await FU({inboxIds:t,channelType:n,conversationId:o});if(!r||!r.data||!("formsList"in r.data)||!Array.isArray(r.data.formsList))return{objectList:[],formFields:null,objectDict:null,dependentFieldsMap:{}};const i=r.data.formsList,a={},A=[],l={},c={};return i==null||i.forEach(u=>{var p,B;const f={...u};"fieldList"in f&&delete f.fieldList,c[u.id]=f,a[u.id]||(a[u.id]={}),l[u.id]||(l[u.id]=[]),A.push({value:u.id,label:u.name}),(p=u.fieldList)==null||p.sort((g,C)=>g.priority-C.priority),(B=u.fieldList)==null||B.forEach(g=>{var d,E,m,h,b,I,Q,v,x,k,S;let C={};switch(g.type){case"select":case"multi-select":{C={...g,defaultOptions:!!g.interfaceDetails,isInfiniteScrollable:((E=(d=g.interfaceDetails)==null?void 0:d.pagination)==null?void 0:E.enabled)||!1,loadOptionsOnFocus:Object.keys(((m=g.interfaceDetails)==null?void 0:m.args)||{}).length>0,isMultiSelect:g.type==="multi-select",type:u.interfaceDetails?"async-select":"select"};break}case"date":{C={...g,type:"date",disablePast:!!((h=g.validations)!=null&&h.disablePast)||!1,disableFuture:!!((b=g.validations)!=null&&b.disableFuture)||!1};break}case"number":{C={...g,type:"number",min:((Q=(I=g.validations)==null?void 0:I.range)==null?void 0:Q.min)||Number.MIN_SAFE_INTEGER,max:((x=(v=g.validations)==null?void 0:v.range)==null?void 0:x.max)||Number.MAX_SAFE_INTEGER};break}case"multiline":{C={...g,type:"text",maxRows:((k=g.validations)==null?void 0:k.maxRows)||5,maxCharacters:((S=g.validations)==null?void 0:S.maxCharacters)||250,rows:5,multiline:!0};break}default:C={...g}}"value"in C&&(C.defaultValue=C.value,delete C.value),l[u.id]=[...l[u.id],C],g.interfaceDetails&&g.interfaceDetails.args&&Object.values(g.interfaceDetails.args).forEach(D=>{a[u.id][D]?a[u.id][D]=[...a[u.id][D],g.name]:a[u.id][D]=[g.name]})})}),{objectList:A,formFields:l,objectDict:c,dependentFieldsMap:a}}),Rl=tr("writeCapability/fetchDropDownOptions",async(e,{getState:t,rejectWithValue:n})=>{var d;const{fieldName:o,formId:r,callback:i,args:a={},interfaceId:A="",pagination:l={enabled:!1}}=e,c=BB(a||{},r,o),{write:u}=t(),{options:f=[],hasMore:p=!0,currentPage:B=0}=((d=u.optionsMap)==null?void 0:d[c])||{},{enabled:g,limit:C=10}=l;try{let E;const m=g?{page:B+1,limit:C}:null;if(p?E=await kU({fieldName:o,formId:r},{pagination:m,args:a,interfaceId:A}):i==null||i(f),!E||!E.data||!("data"in E.data)||!Array.isArray(E.data.data))return{optionsList:[...f],fieldName:"",formId:"",hasMore:!1,currentPage:B,key:c};const{data:h}=E.data,b=g?h.length>=C:!1,I=[...f,...h];return i==null||i(I),{optionsList:I,fieldName:o,formId:r,currentPage:B+1,hasMore:b,key:c}}catch(E){return i==null||i(f),n(E)}},{condition:(e,{getState:t})=>{var c,u;if(e.isScrollToBottomEvent)return!0;const{fieldName:n,formId:o,callback:r,args:i}=e,a=BB(i||{},o,n),{write:A}=t(),l=((u=(c=A.optionsMap)==null?void 0:c[a])==null?void 0:u.options)||[];return l&&l.length?(r==null||r(l),!1):!0}}),Ll=tr("writeCapability/createForm",async(e,{rejectWithValue:t})=>{const{formId:n,successCallback:o,failureCallback:r,args:i={},interfaceId:a,conversationId:A}=e;try{await SU({formId:n},{args:i,interfaceId:a,conversationId:A}),o==null||o(),no({message:KU,type:ji})}catch(l){return r==null||r(l),no({message:ZU,type:Ca}),t(l)}}),Ul=tr("writeCapability/unlinkCard",async({id:e,channelType:t})=>{await OU(e,t)}),Nl=tr("writeCapability/linkCard",async({id:e,externalResourceId:t,channelType:n})=>{await MU(e,t,n)}),Ba=tr("writeCapability/previewCard",async({id:e,args:t,channelType:n,isRefresh:o})=>{const r=await DU(e,t,n),i=r==null?void 0:r.data;if(!i)return o&&no({message:AB,type:Ca}),{data:null};if(o&&no({message:lB,type:ji}),i.cardType==="flat"){const a=i.data.flatDisplay.sort((A,l)=>(A==null?void 0:A.priority)-(l==null?void 0:l.priority));i.data.flatDisplay=a}else{const a=i.data.listItems.fields.map(A=>A.sort((l,c)=>(l==null?void 0:l.priority)-(c==null?void 0:c.priority)));i.data.listItems.fields=a}return{data:i}}),{resetState:lN}=hB.actions,cN=hB.reducer,uN=wI({cardList:EU,write:cN}),dN=rP({reducer:uN,devTools:!0}),gN=({children:e,extraParams:t,senderEmail:n,baseUrls:o,availableFeatures:r})=>y.jsx(vm,{store:dN,children:y.jsx(sD,{custom:!0,children:y.jsx(AD,{availableFeatures:r,sendTrackingEvent:t==null?void 0:t.sendTrackingEvent,senderEmail:n,currentSmIds:t==null?void 0:t.currentSmIds,metaData:t==null?void 0:t.metaData,conversationId:t==null?void 0:t.conversationId,baseUrls:o,children:y.jsx(w.Suspense,{fallback:y.jsx(y.Fragment,{}),children:e})})})}),Wi=xm.withTypes(),Cn=Cm.withTypes(),fN="Please refresh and try again",pN="No data available",jl="-",mB="Refresh",QB="Minimize",Bg="Expand",CN="Connectors",EN="Collapse",IN="Close",BN="Link",bB="Unlink",vB="Cancel",hN="Create new card",mN="Link existing task",QN="Are you sure you want to unlink this task?",bN="The task will be removed from this conversation for all users. However the task will still be available on ClickUp if you'd like to link it back in the future.",vN="bullet_list",yB=V(QI.Connector)`
|
|
2085
|
+
`,gU=(e,{closeToast:t})=>y.jsx(dU,{children:y.jsx("img",{src:AU,onClick:t})}),Dl=({message:e})=>y.jsxs(lU,{children:[y.jsx(uU,{}),y.jsx(cU,{children:e})]});function no(e){const{message:t,type:n,autoClose:o}=e,r={closeButton:y.jsx(gU,{}),autoClose:o??5e3,pauseOnHover:!0,position:"bottom-left",rtl:!1,draggable:!0,closeOnClick:!0,hideProgressBar:!0};let i;switch(n){case"success":{i=nt.success(y.jsx(Dl,{message:t}),{...r,icon:!1});break}case"error":{i=nt.error(y.jsx(Dl,{message:t}),{...r,icon:!1});break}case"info-dark":{i=nt.info(y.jsx(Dl,{message:t}),{...r,icon:!1,className:"toast_dark"});break}default:{i=nt.info(y.jsx(Dl,{message:t}),{...r,icon:!1});break}}return setTimeout(()=>{fU(i)},o&&!isNaN(o)?Number(o):5e3),i}function fU(e){nt.dismiss(e)}const ji="success",Ca="error",AB="Some error occured. Please contact support@hiverhq.com",lB="Card refreshed successfully",pU="Card unlinked successfully",CU="Failed to unlink the card",cB=o2({name:"connectorCardLibrary",initialState:vP,reducers:{updateThreadId(e,t){const{payload:n}=t;e.threadId=n.threadId,e.connectorCards=null},clearConnectorList(e){e.connectorCards=null,e.cardSpecificData=null}},extraReducers:e=>{e.addCase(Ea.pending,t=>{t.connectorApiStatus=Re.LOADING}).addCase(Ea.fulfilled,(t,n)=>{t.connectorApiStatus=Re.IDLE,t.connectorCards=n.payload.cards}).addCase(Ea.rejected,t=>{t.connectorApiStatus=Re.FAILED}).addCase(Vi.pending,(t,n)=>{const{id:o}=n.meta.arg;t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.LOADING}}).addCase(Vi.fulfilled,(t,n)=>{const{id:o}=n.meta.arg,{data:r}=n.payload||{};r&&(t.cardSpecificData={...t.cardSpecificData?t.cardSpecificData:{},[o]:r}),t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.IDLE}}).addCase(Vi.rejected,(t,n)=>{const{id:o}=n.meta.arg;t.specificConnectorApiStatus={...t.specificConnectorApiStatus??{},[o]:Re.FAILED}})}}),Ea=tr("connectorCardLibrary/fetchAllCard",async({inboxIds:e,channelType:t,conversationId:n})=>{var i;const o=await nU({inboxIds:e,channelType:t,conversationId:n});return Array.isArray((i=o==null?void 0:o.data)==null?void 0:i.cards)?{cards:o.data.cards.sort((a,A)=>(a==null?void 0:a.priority)-(A==null?void 0:A.priority))}:{cards:[]}}),Vi=tr("connectorCardLibrary/fetchSpecificCard",async({id:e,email:t,conversationId:n,isRefresh:o})=>{const r=await oU(e,t,n),i=r==null?void 0:r.data;if(!i)return o&&no({message:AB,type:Ca}),{data:{}};if(o&&no({message:lB,type:ji}),i.cardType==="flat"){const a=i.data.flatDisplay.sort((A,l)=>(A==null?void 0:A.priority)-(l==null?void 0:l.priority));i.data.flatDisplay=a}else{const a=i.data.listItems.fields.map(A=>A.sort((l,c)=>(l==null?void 0:l.priority)-(c==null?void 0:c.priority)));i.data.listItems.fields=a}return{data:i}}),EU=cB.reducer,IU=cB.actions,uB={objectList:[],objectDict:null,formFields:null,previewCardData:null,objectListApiStatus:Re.IDLE,unlinkCardApiStatus:Re.IDLE,linkCardApiStatus:Re.IDLE,previewCardApiStatus:Re.IDLE,optionsMap:null,dropdownOptionsApis:Re.IDLE,dependentFieldsMap:{},createFormApiStatus:Re.IDLE},Pl="hiver_connectors",BU={NOT_FOUND:404},hU="ftr-connector-blue-dot",dB="ftr-connectors-write-flow",Eg=e=>{let t=localStorage.getItem(Pl);return t=t?JSON.parse(t):!1,t==null?void 0:t[e]},mU=e=>!!Eg(e),gB=()=>String(r2()),QU=(e,t=gB())=>{const n=Eg(e);return((n==null?void 0:n.isExtensionNew)??[]).includes(t)},fB=(e,t=!1)=>{const n=gB(),o=Eg(e);if(t||!o){localStorage.removeItem(Pl);const r={[e]:{isExtensionNew:[...t?[]:[n]]}};localStorage.setItem(Pl,JSON.stringify(r));return}else{const r=(o==null?void 0:o.isExtensionNew)??[],i={[e]:{...o,isExtensionNew:[...new Set([...r,n])]}};localStorage.setItem(Pl,JSON.stringify(i));return}},Ig=(e={},t)=>(e==null?void 0:e[t])===!0,pB=(e,t)=>e.replace(/:(\w+)/g,(n,o)=>String(t[o])||""),Hi="/v1/api",bU=`${Hi}/connectors/forms/list`,vU=`${Hi}/connectors/cards/:id/unlink`,yU=`${Hi}/connectors/forms/:id/link`,wU=`${Hi}/connectors/forms/:id/preview`,xU=`${Hi}/connectors/form/:formId/field/:fieldName/data`,TU=`${Hi}/connectors/form/:formId`,FU=({inboxIds:e,channelType:t,conversationId:n})=>{const o=new URLSearchParams;return e.forEach(r=>o.append("inbox_ids",r)),o.append("channel_type",t),o.append("conversation_id",String(n)),Ro({url:`${bU}?${o.toString()}`,method:nr.GET})},kU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:pB(`${xU}?${o.toString()}`,e),method:nr.POST,data:t})},SU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:pB(`${TU}?${o.toString()}`,e),method:nr.POST,data:t})},OU=(e,t="email")=>{const n=new URLSearchParams;return n.append("channel_type",t),Ro({url:`${vU.replace(":id",e)}?${n.toString()}`,method:nr.POST})},MU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:`${yU.replace(":id",e)}?${o.toString()}`,method:nr.POST,data:{external_resource_id:t}})},DU=(e,t,n="email")=>{const o=new URLSearchParams;return o.append("channel_type",n),Ro({url:`${wU.replace(":id",e)}?${o.toString()}`,method:nr.POST,data:{args:t}})},PU="Error in previewing the card",RU="Card linked successfully",LU="Error in linking the card",CB="Please enter a valid URL",UU="Please enter valid ID",NU="Please enter valid input",jU="URL must start with https://",VU="URL should not end with a slash",HU="Invalid email address",WU="Email must be a string",EB="Invalid date",zU="Date cannot be in the past",YU="Date cannot be in the future",GU="Invalid number",XU="Invalid text",KU="New card created",ZU="Card creation failed!!",JU="Required Field",qU="Invalid date",IB=/^https:\/\/([a-z0-9-]+(\.[a-z0-9-]+)+)(:[0-9]{1,5})?(\/[^\s/]*)*$/i,_U=/^[^\s@]+@[^\s@]+\.[^\s@]+$/,$U=(e,t)=>t?Object.values(t).filter(o=>e.values[o]&&!e.errors[o]):[],eN=(e,t)=>t?Object.keys(t).reduce((o,r)=>{let i="";const a=t[r];return e.values&&e.values[a]&&typeof e.values[a]=="object"&&"value"in e.values[a]?i=e.values[a].value:e.values&&e.values[a]&&typeof e.values[a]!="object"&&(i=e.values[a]),{...o,[r]:i}},{}):{},BB=(e,t,n)=>{let o=`${t}_${n}`;return Object.keys(e).forEach(r=>{o=`${o}_${r}:${e[r]}`}),o},tN=e=>t=>{if(t&&typeof t=="string"){const n=t.replace(/\/$/,"");return n.startsWith("https://")?t.endsWith("/")?VU:IB.test(n)?!0:e||CB:jU}return!1},nN=e=>t=>t&&typeof t=="string"?_U.test(t)?!0:e||HU:WU,oN=e=>t=>t==null||t===""?e||JU:!0,rN=e=>(t,n)=>{if(!t||(t==null?void 0:t.toString())===qU)return EB;if(typeof t=="object"){const o=t,r=new Date;r.setHours(0,0,0,0);const i=n.disablePast,a=n.disableFuture;return i&&o<r?e||zU:a&&o>r?e||YU:!0}return EB},iN=e=>(t,n)=>{if(t=Number(t),typeof t=="number"&&!isNaN(t)){const o=n.min,r=n.max;return o!==void 0&&t<o?e||`Value should not be less than ${o}`:r!==void 0&&t>r?e||`Value should not be greater than ${r}`:!0}return e||GU},sN=e=>(t,n)=>{if(typeof t=="string"){const o=n.maxCharacters;return o!==void 0&&t.length>o?e||`Maximum characters allowed are ${o}`:!0}return e||XU},aN=e=>t=>typeof t=="string"?t.startsWith("https:")?IB.test(t)?!0:e||CB:t.trim().length>0?!0:e||UU:e||NU,AN=({formFields:e})=>{const t={};return e.forEach(n=>{var o,r,i,a,A,l;if(t[n.name]={},(o=n.validations)!=null&&o.isRequired&&(typeof n.validations.isRequired=="object"?t[n.name].isRequired=oN(n.validations.isRequired.msg):t[n.name].isRequired=!0),n.type==="date"&&((r=n.validations)!=null&&r.disableFuture||(i=n.validations)!=null&&i.disablePast)){let c=typeof n.validations.disableFuture=="object"?n.validations.disableFuture.msg:"";c=typeof n.validations.disablePast=="object"?n.validations.disablePast.msg:c,t[n.name].validate=rN(c);return}if(n.type==="number"&&((a=n.validations)!=null&&a.range)){t[n.name].validate=iN();return}if(n.type==="text"&&n.multiline&&n.maxCharacters){t[n.name].validate=sN();return}if((A=n.validations)!=null&&A.isUrl){const c=typeof n.validations.isUrl=="object"?n.validations.isUrl.msg:"";t[n.name].validate=tN(c)}else if((l=n.validations)!=null&&l.isEmail){const c=typeof n.validations.isEmail=="object"?n.validations.isEmail.msg:"";t[n.name].validate=nN(c)}}),t},hB=o2({name:"writeCapability",initialState:uB,reducers:{resetState:()=>uB},extraReducers:e=>{e.addCase(Ia.pending,t=>{t.objectListApiStatus=Re.LOADING}).addCase(Ia.fulfilled,(t,n)=>{t.objectListApiStatus=Re.IDLE,t.objectList=n.payload.objectList,t.formFields=n.payload.formFields,t.objectDict=n.payload.objectDict,t.dependentFieldsMap=n.payload.dependentFieldsMap}).addCase(Ia.rejected,t=>{t.objectListApiStatus=Re.FAILED}).addCase(Rl.pending,t=>{t.dropdownOptionsApis=Re.LOADING}).addCase(Rl.fulfilled,(t,n)=>{const o=t.optionsMap||{},{optionsList:r,hasMore:i,currentPage:a,key:A}=n.payload;t.dropdownOptionsApis=Re.IDLE,t.optionsMap={...o,[A]:{options:r,hasMore:i,currentPage:a}}}).addCase(Rl.rejected,t=>{t.dropdownOptionsApis=Re.FAILED}).addCase(Ll.pending,t=>{t.createFormApiStatus=Re.LOADING}).addCase(Ll.fulfilled,t=>{t.createFormApiStatus=Re.IDLE}).addCase(Ll.rejected,t=>{t.createFormApiStatus=Re.FAILED}).addCase(Nl.pending,t=>{t.linkCardApiStatus=Re.LOADING}).addCase(Nl.fulfilled,t=>{t.linkCardApiStatus=Re.IDLE}).addCase(Nl.rejected,t=>{t.linkCardApiStatus=Re.FAILED}).addCase(Ul.pending,t=>{t.unlinkCardApiStatus=Re.LOADING}).addCase(Ul.fulfilled,t=>{t.unlinkCardApiStatus=Re.IDLE}).addCase(Ul.rejected,t=>{t.unlinkCardApiStatus=Re.FAILED}).addCase(Ba.pending,t=>{t.previewCardApiStatus=Re.LOADING}).addCase(Ba.fulfilled,(t,n)=>{const{data:o}=n.payload;o&&(t.previewCardData=o),t.previewCardApiStatus=Re.IDLE}).addCase(Ba.rejected,t=>{t.previewCardApiStatus=Re.FAILED})}}),Ia=tr("writeCapability/fetchObjectList",async e=>{const{inboxIds:t,channelType:n,conversationId:o}=e,r=await FU({inboxIds:t,channelType:n,conversationId:o});if(!r||!r.data||!("formsList"in r.data)||!Array.isArray(r.data.formsList))return{objectList:[],formFields:null,objectDict:null,dependentFieldsMap:{}};const i=r.data.formsList,a={},A=[],l={},c={};return i==null||i.forEach(u=>{var p,B;const f={...u};"fieldList"in f&&delete f.fieldList,c[u.id]=f,a[u.id]||(a[u.id]={}),l[u.id]||(l[u.id]=[]),A.push({value:u.id,label:u.name}),(p=u.fieldList)==null||p.sort((g,C)=>g.priority-C.priority),(B=u.fieldList)==null||B.forEach(g=>{var d,E,m,h,b,I,Q,v,x,k,S;let C={};switch(g.type){case"select":case"multi-select":{C={...g,defaultOptions:!!g.interfaceDetails,isInfiniteScrollable:((E=(d=g.interfaceDetails)==null?void 0:d.pagination)==null?void 0:E.enabled)||!1,loadOptionsOnFocus:Object.keys(((m=g.interfaceDetails)==null?void 0:m.args)||{}).length>0,isMultiSelect:g.type==="multi-select",type:u.interfaceDetails?"async-select":"select"};break}case"date":{C={...g,type:"date",disablePast:!!((h=g.validations)!=null&&h.disablePast)||!1,disableFuture:!!((b=g.validations)!=null&&b.disableFuture)||!1};break}case"number":{C={...g,type:"number",min:((Q=(I=g.validations)==null?void 0:I.range)==null?void 0:Q.min)||Number.MIN_SAFE_INTEGER,max:((x=(v=g.validations)==null?void 0:v.range)==null?void 0:x.max)||Number.MAX_SAFE_INTEGER};break}case"multiline":{C={...g,type:"text",maxRows:((k=g.validations)==null?void 0:k.maxRows)||5,maxCharacters:((S=g.validations)==null?void 0:S.maxCharacters)||250,rows:5,multiline:!0};break}default:C={...g}}"value"in C&&(C.defaultValue=C.value,delete C.value),l[u.id]=[...l[u.id],C],g.interfaceDetails&&g.interfaceDetails.args&&Object.values(g.interfaceDetails.args).forEach(D=>{a[u.id][D]?a[u.id][D]=[...a[u.id][D],g.name]:a[u.id][D]=[g.name]})})}),{objectList:A,formFields:l,objectDict:c,dependentFieldsMap:a}}),Rl=tr("writeCapability/fetchDropDownOptions",async(e,{getState:t,rejectWithValue:n})=>{var d;const{fieldName:o,formId:r,callback:i,args:a={},interfaceId:A="",pagination:l={enabled:!1}}=e,c=BB(a||{},r,o),{write:u}=t(),{options:f=[],hasMore:p=!0,currentPage:B=0}=((d=u.optionsMap)==null?void 0:d[c])||{},{enabled:g,limit:C=10}=l;try{let E;const m=g?{page:B+1,limit:C}:null;if(p?E=await kU({fieldName:o,formId:r},{pagination:m,args:a,interfaceId:A}):i==null||i(f),!E||!E.data||!("data"in E.data)||!Array.isArray(E.data.data))return{optionsList:[...f],fieldName:"",formId:"",hasMore:!1,currentPage:B,key:c};const{data:h}=E.data,b=g?h.length>=C:!1,I=[...f,...h];return i==null||i(I),{optionsList:I,fieldName:o,formId:r,currentPage:B+1,hasMore:b,key:c}}catch(E){return i==null||i(f),n(E)}},{condition:(e,{getState:t})=>{var c,u;if(e.isScrollToBottomEvent)return!0;const{fieldName:n,formId:o,callback:r,args:i}=e,a=BB(i||{},o,n),{write:A}=t(),l=((u=(c=A.optionsMap)==null?void 0:c[a])==null?void 0:u.options)||[];return l&&l.length?(r==null||r(l),!1):!0}}),Ll=tr("writeCapability/createForm",async(e,{rejectWithValue:t})=>{const{formId:n,successCallback:o,failureCallback:r,args:i={},interfaceId:a,conversationId:A}=e;try{await SU({formId:n},{args:i,interfaceId:a,conversationId:A}),o==null||o(),no({message:KU,type:ji})}catch(l){return r==null||r(l),no({message:ZU,type:Ca}),t(l)}}),Ul=tr("writeCapability/unlinkCard",async({id:e,channelType:t})=>{await OU(e,t)}),Nl=tr("writeCapability/linkCard",async({id:e,externalResourceId:t,channelType:n})=>{await MU(e,t,n)}),Ba=tr("writeCapability/previewCard",async({id:e,args:t,channelType:n,isRefresh:o})=>{const r=await DU(e,t,n),i=r==null?void 0:r.data;if(!i)return o&&no({message:AB,type:Ca}),{data:null};if(o&&no({message:lB,type:ji}),i.cardType==="flat"){const a=i.data.flatDisplay.sort((A,l)=>(A==null?void 0:A.priority)-(l==null?void 0:l.priority));i.data.flatDisplay=a}else{const a=i.data.listItems.fields.map(A=>A.sort((l,c)=>(l==null?void 0:l.priority)-(c==null?void 0:c.priority)));i.data.listItems.fields=a}return{data:i}}),{resetState:lN}=hB.actions,cN=hB.reducer,uN=wI({cardList:EU,write:cN}),dN=rP({reducer:uN,devTools:!0}),gN=({children:e,extraParams:t,senderEmail:n,baseUrls:o,availableFeatures:r})=>y.jsx(vm,{store:dN,children:y.jsx(sD,{custom:!0,children:y.jsx(AD,{availableFeatures:r,sendTrackingEvent:t==null?void 0:t.sendTrackingEvent,senderEmail:n,currentSmIds:t==null?void 0:t.currentSmIds,metaData:t==null?void 0:t.metaData,conversationId:t==null?void 0:t.conversationId,baseUrls:o,children:y.jsx(w.Suspense,{fallback:y.jsx(y.Fragment,{}),children:e})})})}),Wi=xm.withTypes(),Cn=Cm.withTypes(),fN="Please refresh and try again",pN="No data available",jl="-",mB="Refresh",QB="Minimize",Bg="Expand",CN="Connectors",EN="Collapse",IN="Close",BN="Link",bB="Unlink",vB="Cancel",hN="Create new card",mN="Link existing task",QN="Are you sure you want to unlink this task?",bN="The task will be removed from this conversation for all users. However the task will still be available on ClickUp if you'd like to link it back in the future.",vN="bullet_list",yB=V(QI.Connector)`
|
|
2086
2086
|
width: 20px;
|
|
2087
2087
|
height: 20px;
|
|
2088
2088
|
margin-right: 8px;
|
package/package.json
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"write-capability.d.ts","sourceRoot":"","sources":["../../../../src/testing/mocks/handlers/write-capability.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"write-capability.d.ts","sourceRoot":"","sources":["../../../../src/testing/mocks/handlers/write-capability.ts"],"names":[],"mappings":"AA6OA,eAAO,MAAM,QAAQ,6BAAqE,CAAC"}
|