@hiver/connector-agent 4.24.0-pmSearchLink-beta.12 → 4.24.0-pmSearchLink-beta.13

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 CHANGED
@@ -24202,7 +24202,7 @@ const uM = w(Df)`
24202
24202
  C.value
24203
24203
  );
24204
24204
  return b ? /* @__PURE__ */ a.jsx(lM, { label: b, placement: "top-start", describeChild: !0, children: /* @__PURE__ */ a.jsx("div", { children: v }) }, C.value) : v;
24205
- }) }) : l ? /* @__PURE__ */ a.jsx(Y, { role: "status", variant: "body_sm_regular", align: "center", padding: "6px", children: l }) : null;
24205
+ }) }) : l ? /* @__PURE__ */ a.jsx(Y, { role: "status", variant: "body_sm_regular", align: "center", padding: "8px", children: l }) : null;
24206
24206
  return !n || !t || !A || !D && !g && !d ? null : Or(
24207
24207
  /* @__PURE__ */ a.jsx("div", { style: { position: "fixed", top: A.bottom + RM, left: A.left, width: A.width, zIndex: 1500 }, children: /* @__PURE__ */ a.jsx(
24208
24208
  Af,
package/index.umd.js CHANGED
@@ -2946,7 +2946,7 @@ Do you want to continue?`,_L="Select an object to create",Cp="Select an object t
2946
2946
  height: 20px;
2947
2947
  flex-shrink: 0;
2948
2948
  }
2949
- `,bc=({cardData:e,cardDataApiStatus:t,objectToLink:n,args:u})=>{const r=Xt(),{availableFeatures:o}=g.useContext(qe),[s,i]=g.useState(!1),[c,l]=g.useState(!0),{id:D="",cardTitle:d="",logoUrl:E}=e||{},b=t===Ae.LOADING;if(lt(o,Da)&&t===Ae.FAILED)return a.jsx(D5,{sx:{padding:"11px"},children:a.jsx(f.Typography,{variant:"body2",color:"error",children:SL})});const C=A=>{A.stopPropagation();const h=A.currentTarget.offsetWidth<A.currentTarget.scrollWidth;i(!!h)},p=A=>{r(Xu({id:n,args:u,isRefresh:!0}));const h=A.currentTarget.querySelector("svg");h==null||h.classList.remove("selected"),setTimeout(()=>h==null?void 0:h.classList.add("selected"),1)};return a.jsxs(D5,{children:[a.jsxs(zN,{direction:"row",justifyContent:"space-between",children:[b?a.jsxs(f.Stack,{gap:"6px",direction:"row",children:[a.jsx(pn,{width:"16px",height:"24px"}),a.jsx(pn,{width:"100px",height:"24px"})]}):a.jsxs(ZN,{children:[E&&a.jsx("img",{src:E,alt:d}),a.jsx(f.Tooltip,{title:s?d:"",children:a.jsx(f.Typography,{variant:"h4",onMouseOver:A=>C(A),onMouseLeave:A=>C(A),children:d})})]}),a.jsxs(f.Stack,{direction:"row",alignItems:"center",children:[c?a.jsx(f.Tooltip,{title:t3,placement:"bottom",children:a.jsx(ao,{onClick:A=>p(A),children:a.jsx(Hp,{"aria-hidden":!0})})}):null,a.jsx(f.Tooltip,{title:c?n3:xi,placement:"bottom",children:a.jsx(ao,{onClick:()=>l(A=>!A),children:a.jsx(ji,{className:c?"":"hiver-up"})})})]})]}),a.jsx(Tp,{id:D,cardTitle:d,specificCardData:{[D]:e},specificConnectorApiStatus:{[D]:t},isOpen:c})]})},vo=e=>e,Kf=vo(xu.Button),JN=vo(xu.Tooltip),d5={Text:vo(xu.Input.Text)},xc={Field:vo(xu.Dropdown.Field),Menu:vo(xu.Dropdown.Menu),ListItem:vo(xu.Dropdown.ListItem)},A5=({formFields:e,formId:t,formState:n,appDispatch:u})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const s=o.interfaceDetails,i={loadOptions:(c,l,D,d)=>{let E=s;o.searchInterfaceDetails&&typeof c=="string"&&c.trim().length>0&&!D&&(E=o.searchInterfaceDetails);const b=sp(n,E==null?void 0:E.args),C=Object.values((E==null?void 0:E.args)||{});if(b.length===C.length){u(wr({fieldName:o.name,formId:String(t),searchTerm:c,fieldConfig:o,interfaceId:E==null?void 0:E.id,pagination:E==null?void 0:E.pagination,callback:l,args:{...Oa(n,E==null?void 0:E.args),...Oa(n,E==null?void 0:E.optionalArgs)},isScrollToBottomEvent:D,controller:d}));return}return l([])}};return{...r,[o.name]:i}},{}),p5=({formFields:e,formId:t,formState:n,conversationId:u,appDispatch:r})=>e.reduce((o,s)=>{if(!s.createOptionInterfaceDetails)return o;const i=s.createOptionInterfaceDetails;return{...o,[s.name]:{createOption:(c,l)=>{var d,E;if(!c)return;const D={values:{name:s.name,value:c},errors:{}};r(jf({fieldName:s.name,formId:String(t),interfaceId:i.id,conversationId:u,label:c,callback:l,args:{...Oa(n,(d=s==null?void 0:s.interfaceDetails)==null?void 0:d.args),...Oa(n,(E=s==null?void 0:s.interfaceDetails)==null?void 0:E.optionalArgs)},createArgs:{...Oa(D,i.args)}}))}}}},{}),yc=({formFields:e,formState:t,formId:n,conversationId:u})=>{const r=Xt(),o=g.useMemo(()=>{if(e&&e.length){const i=A5({formFields:e,formId:n,formState:t,appDispatch:r});return e.reduce((l,D)=>{const d=D.columns;if(!d)return l;const E=A5({formFields:d,formId:n,formState:t,appDispatch:r});return{...l,[D.name]:{loadOptionsList:E}}},i)}return null},[e,t,n,r]),s=g.useMemo(()=>{const i=p5({formFields:e,formId:n,formState:t,conversationId:u,appDispatch:r});return e.reduce((l,D)=>{const d=D.columns;if(!d)return l;const E=p5({formFields:d,formId:n,formState:t,conversationId:u,appDispatch:r});return{...l,[D.name]:{createOptionList:E}}},i)},[e,n,t,u,r]);return{fetchConfig:o,createConfig:s}},YN="Link an object",qN="Search or paste a link",Bc="No results found",UN="Type to search",KN="This link is invalid",$N="or",g5="Search...",ej="Link",tj="Cancel",vc="Already linked to this conversation",nj="Results from the 1,000 most recently updated tasks",uj="Search didn't work.",rj="Try again",oj="This location wasn't found. Choose it again.",wc="item",Lu=e=>e.toLowerCase(),Sc=e=>/^[aeiou]/i.test(e)?"an":"a",$f=e=>/s$/i.test(e)?e:`${e}s`,aj=(e=wc)=>`Search ${Lu($f(e))} or paste URL/ID`,sj=e=>`Select ${Sc(e)} ${Lu(e)}`,fj=(e=wc)=>`Search ${Lu($f(e))}`,C5=e=>`Select ${Sc(e)} ${Lu(e)} first`,ij=e=>`Couldn’t load ${Lu($f(e))}.`,cj=e=>e?`No data found in this ${Lu(e)}`:"No data found",lj=(e,t)=>`Skip if the ${Lu(e)} isn’t in ${Sc(t)} ${Lu(t)}`,h5=e=>`Searching ${e}…`,Dj=(e,t)=>`You don’t have access to ${e} in ${t}. Ask your ${t} admin for access.`,dj=e=>`We couldn’t find ${e}. Check the link or ID`,Aj=(e,t,n=wc)=>t?{title:`Your ${e} connection has expired`,body:`Reconnect ${e} to search and link ${Lu($f(n))} again.`,action:`Reconnect ${e}`}:{title:`${e} connection has expired`,body:`Ask your admin to reconnect ${e}.`,action:null},pj=(e,t)=>{const[n,u]=g.useState(null);return g.useLayoutEffect(()=>{if(!t||!e)return;const r=()=>u(e.getBoundingClientRect());return r(),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e,t]),n},gj=4,Cj=232,hj={maxWidth:"40%",flexShrink:0},F5=({id:e,anchorEl:t,open:n,options:u,activeIndex:r,setActiveIndex:o,onSelect:s,onClose:i,loading:c,loadingText:l,emptyText:D,search:d,optionBadge:E,isOptionDisabled:b,optionTooltip:C,footer:p})=>{const A=pj(t,n),h=c?a.jsxs(f.Stack,{role:"status",direction:"row",alignItems:"center",gap:"8px",padding:"8px",children:[a.jsx(f.CircularProgress,{size:16,color:"inherit","aria-hidden":!0}),a.jsx(f.Typography,{variant:"body_sm_regular",children:l})]}):u.length?a.jsx(f.Stack,{role:"listbox",id:`${e}-listbox`,gap:"4px",children:u.map((m,F)=>{const x=!!(b!=null&&b(m)),y=C==null?void 0:C(m),S=E==null?void 0:E(m),v=a.jsx(xc.ListItem,{id:`${e}-option-${F}`,role:"option","aria-selected":F===r,"aria-disabled":x,selected:F===r,disabled:x,tabIndex:-1,endBadge:!!S,slotProps:S?{endBadge:{children:S,variant:"subtle",tone:"neutral",size:"xs",sx:hj}}:{},onMouseEnter:()=>o(F),onMouseDown:w=>{w.preventDefault(),x||s(m)},children:m.label},m.value);return y?a.jsx(JN,{label:y,placement:"top-start",describeChild:!0,children:a.jsx("div",{children:v})},m.value):v})}):D?a.jsx(f.Typography,{role:"status",variant:"body_sm_regular",align:"center",padding:"6px",children:D}):null;return!n||!t||!A||!d&&!h&&!p?null:Qt.createPortal(a.jsx("div",{style:{position:"fixed",top:A.bottom+gj,left:A.left,width:A.width,zIndex:1500},children:a.jsx(f.ClickAwayListener,{onClickAway:m=>{t.contains(m.target)||i()},children:a.jsx(xc.Menu,{id:`${e}-menu`,showSearch:!!d,maxHeight:Cj,showFooter:!!p,customFooter:p??void 0,slotProps:d?{search:{value:d.value,placeholder:g5,autoFocus:!0,onChange:m=>d.onChange(m.target.value),onClear:()=>d.onChange(""),onKeyDown:d.onKeyDown,slotProps:{input:{"aria-label":g5,"aria-controls":`${e}-listbox`}}}}:void 0,children:h})})}),document.body)},m5=({open:e,options:t,activeIndex:n,setActiveIndex:u,isOptionDisabled:r,onSelect:o,onClose:s})=>i=>{if(e)if(i.key==="ArrowDown"||i.key==="ArrowUp"){if(i.preventDefault(),!t.length)return;const c=i.key==="ArrowDown"?1:-1;u((n+c+t.length)%t.length)}else if(i.key==="Enter"){const c=t[n];c&&!(r!=null&&r(c))&&(i.preventDefault(),o(c))}else i.key==="Escape"&&s()},E5=({id:e,label:t,value:n,options:u,placeholder:r,helperText:o,disabled:s,hasError:i,loading:c,loadingText:l,emptyText:D,onSearch:d,onOpen:E,onChange:b,renderValue:C,isOptionDisabled:p,optionTooltip:A,footer:h})=>{const m=g.useRef(null),[F,x]=g.useState(!1),[y,S]=g.useState(""),[v,w]=g.useState(0),k=()=>{x(!1),y&&(S(""),d(""))},O=T=>{var M;b(T),k(),(M=m.current)==null||M.focus()},j=m5({open:F,options:u,activeIndex:v,setActiveIndex:w,isOptionDisabled:p,onSelect:O,onClose:()=>{var T;k(),(T=m.current)==null||T.focus()}}),L=()=>{if(F){k();return}w(0),x(!0),E==null||E()};return a.jsxs(a.Fragment,{children:[a.jsx(xc.Field,{ref:m,id:e,size:"sm",label:t,placeholder:r,value:n?(C==null?void 0:C(n))??n.label:void 0,helperText:o,disabled:s,error:i,open:F,slotProps:{field:{"aria-label":t}},onTriggerClick:L,onTriggerKeyDown:T=>{!F&&(T.key==="ArrowDown"||T.key==="Enter"||T.key===" ")&&(T.preventDefault(),L())}}),a.jsx(F5,{id:e,anchorEl:m.current,open:F&&!s,options:u,activeIndex:v,setActiveIndex:w,onSelect:O,onClose:k,loading:c,loadingText:l,emptyText:D,search:{value:y,onChange:T=>{S(T),w(0),d(T)},onKeyDown:j},isOptionDisabled:p,optionTooltip:A,footer:h})]})},Ic=({children:e,onRetry:t})=>a.jsxs(f.Typography,{role:"alert",variant:"body_sm_regular",color:"text.error.soft",component:"span",children:[e,t?a.jsxs(a.Fragment,{children:[" ",a.jsx(Kf,{variant:"linkWithUnderline",size:"2xs",onClick:t,children:rj})]}):null]}),b5=()=>a.jsxs(f.Stack,{direction:"row",alignItems:"flex-start",gap:"6px",color:"text.neutral.soft",children:[a.jsx(y0.InfoCircle,{width:14,height:14,"aria-hidden":!0}),a.jsx(f.Typography,{variant:"caption_regular",children:nj})]}),kc=(e,t=!1)=>({value:e.externalResourceId,label:t?`${e.displayId} · ${e.title}`:e.title,row:e}),Fj=(e,t)=>{var u,r;const n=Object.values(((u=e.interfaceDetails)==null?void 0:u.args)??{});return sp(t,(r=e.interfaceDetails)==null?void 0:r.args).length===n.length},mj=/^https?:\/\//i,Tc=e=>mj.test(e.trim()),Ej=e=>{const t=e.trim();if(!Tc(t))return t;try{const n=new URL(t).pathname.split("/").filter(Boolean);return n.length?decodeURIComponent(n[n.length-1]):t}catch{return t}},bj=300,xj=e=>{var t,n;return[...Object.values(((t=e.interfaceDetails)==null?void 0:t.args)??{}),...Object.values(((n=e.interfaceDetails)==null?void 0:n.optionalArgs)??{})]},yj=e=>e&&typeof e=="object"&&"value"in e?String(e.value):"",x5=e=>e.flatMap(t=>{if(t&&typeof t=="object"&&"options"in t)return x5(t.options);const{value:n,label:u}=t;return n===void 0?[]:[{value:String(n),label:String(u),raw:{value:n,label:String(u)}}]}),Bj=({field:e,config:t,value:n,disabled:u,placeholder:r,emptyText:o,hint:s,onChange:i,onEmpty:c})=>{const[l,D]=g.useState([]),[d,E]=g.useState(""),[b,C]=g.useState(!1),[p,A]=g.useState(!1),[h,m]=g.useState(!1),F=g.useRef(),x=g.useRef();g.useEffect(()=>()=>{var O;(O=F.current)==null||O.abort(),clearTimeout(x.current)},[]);const y=O=>{var T;if(!(t!=null&&t.loadOptions))return;(T=F.current)==null||T.abort();const j=new AbortController;F.current=j,C(!0),A(!1),m(!1);const L=(M,N)=>{if(j.signal.aborted)return;const Q=N!=null&&N.isError?[]:x5(M);D(Q),C(!1),A(!(N!=null&&N.isError)),m(!!(N!=null&&N.isError)),!O&&!(N!=null&&N.isError)&&Q.length===0&&c()};t.loadOptions(O,L,!1,j)},S=O=>{E(O),clearTimeout(x.current),x.current=setTimeout(()=>y(O),bj)},v=d.trim().toLowerCase(),w=v?l.filter(O=>O.label.toLowerCase().includes(v)):l,k=n?{value:String(n.value),label:n.label,raw:n}:null;return a.jsx(E5,{id:`pm-link-level-${e.name}`,label:e.label,value:k,options:w,placeholder:r,helperText:s,disabled:u,hasError:h,loading:b&&!l.length,emptyText:p?v?Bc:o:null,onOpen:()=>y(""),onSearch:S,onChange:O=>i(O.raw),footer:h?a.jsx(Ic,{onRetry:()=>y(d),children:ij(e.label)}):null})},vj=({formId:e,levelFields:t,optionalLevels:n,objectLabel:u,formState:r,onLevelChange:o,onEmptyLevel:s})=>{const{fetchConfig:i}=yc({formFields:t,formId:e,formState:r}),c=i??{};return a.jsx(a.Fragment,{children:t.map((l,D)=>{var m;const d=xj(l),E=t.filter(F=>F.name!==l.name&&d.includes(F.name)),b=[...E].reverse().find(F=>!!r.values[F.name]),C=E.find(F=>!n.includes(F.name)&&!r.values[F.name]),p=Fj(l,r),A=((m=t[D+1])==null?void 0:m.label)??u,h=r.values[l.name];return a.jsx(Bj,{field:l,config:c[l.name],value:h&&typeof h=="object"?h:null,disabled:!p,placeholder:!p&&C?C5(C.label):sj(l.label),emptyText:cj(b==null?void 0:b.label),hint:n.includes(l.name)?lj(A,l.label):void 0,onChange:F=>o(l.name,F),onEmpty:()=>s==null?void 0:s(l.name)},`${l.name}:${d.map(F=>yj(r.values[F])).join("|")}`)})})},wj=({id:e,label:t,value:n,inputValue:u,rows:r,status:o,app:s,placeholder:i,helperText:c,showCapNote:l,hideEmptyMessage:D,disabled:d,hasError:E,onInputChange:b,onChange:C})=>{const p=g.useRef(null),[A,h]=g.useState(null),[m,F]=g.useState(!1),[x,y]=g.useState(0),S=u?r.map(L=>kc(L)):[],v=L=>!!L.row.alreadyLinked,w=L=>{var T;C(L),F(!1),(T=p.current)==null||T.blur()},k=m5({open:m,options:S,activeIndex:x,setActiveIndex:y,isOptionDisabled:v,onSelect:w,onClose:()=>F(!1)}),O=o==="loading",j=m&&!d&&!n&&!!u&&(O||o==="done");return a.jsxs(a.Fragment,{children:[a.jsx(d5.Text,{id:e,size:"sm",label:t,placeholder:i,value:u||(n==null?void 0:n.label)||"",disabled:d,error:E,helperText:c,autoComplete:"off",inputRef:p,prefix:a.jsx(y0.SearchMd,{width:16,height:16,"aria-hidden":!0}),showClearSelection:!!(n||u)&&!d,onClear:()=>{var L;C(null),F(!1),(L=p.current)==null||L.focus()},slotProps:{field:{ref:h},input:{role:"combobox","aria-label":t,"aria-expanded":j,"aria-controls":`${e}-listbox`,"aria-invalid":E||void 0},clear:{"aria-label":"Clear"}},onFocus:()=>{u&&F(!0)},onChange:L=>{y(0),F(!0),b(L.target.value)},onKeyDown:k}),a.jsx(F5,{id:e,anchorEl:A,open:j,options:S,activeIndex:x,setActiveIndex:y,onSelect:w,onClose:()=>F(!1),loading:O,loadingText:h5(s),emptyText:D?null:Bc,optionBadge:L=>L.row.location?`In ${L.row.location}`:void 0,isOptionDisabled:v,optionTooltip:L=>L.row.alreadyLinked?vc:void 0,footer:l&&!O&&S.length?a.jsx(b5,{}):null})]})},Sj=async({formId:e,query:t,conversationId:n,args:u,channelType:r="email",smId:o,smIds:s})=>{const i=cc(uL.replace(":id",e),o,s),c=i.includes("?")?"&":"?",l=await Ee({url:`${i}${c}channel_type=${encodeURIComponent(r)}`,method:Be.POST,data:{query:t,conversationId:n,args:u}}),D=l!=null&&l.data&&"data"in l.data?l.data.data:l==null?void 0:l.data;return{rows:Array.isArray(D==null?void 0:D.rows)?D.rows:[],route:(D==null?void 0:D.route)??"name",truncatedAtCap:!!(D!=null&&D.truncatedAtCap),outcome:(D==null?void 0:D.outcome)??"ok"}},Ij=300,y5=({formId:e,query:t,args:n,enabled:u,onSettled:r})=>{const{conversationId:o}=g.useContext(qe),s=Pa(),i=bo(),[c,l]=g.useState("idle"),[D,d]=g.useState(null),[E,b]=g.useState(0),C=g.useCallback(()=>b(F=>F+1),[]),p=g.useRef(0),A=g.useRef(r);A.current=r;const h=t.trim(),m=JSON.stringify(n);return g.useEffect(()=>{const F=++p.current;if(!u||!h||!o){l("idle"),d(null);return}l("loading");const x=setTimeout(()=>{Sj({formId:e,query:h,conversationId:o,args:JSON.parse(m),smId:s,smIds:i}).then(y=>{var S;F===p.current&&(d(y),l("done"),(S=A.current)==null||S.call(A,y))}).catch(y=>{var S;F===p.current&&(Pe.error(y),d(null),l(((S=y==null?void 0:y.response)==null?void 0:S.status)===404?"unavailable":"error"))})},Ij);return()=>clearTimeout(x)},[e,h,m,u,o,s,i,E]),{status:c,result:D,retry:C}},kj=f.styled("p")`
2949
+ `,bc=({cardData:e,cardDataApiStatus:t,objectToLink:n,args:u})=>{const r=Xt(),{availableFeatures:o}=g.useContext(qe),[s,i]=g.useState(!1),[c,l]=g.useState(!0),{id:D="",cardTitle:d="",logoUrl:E}=e||{},b=t===Ae.LOADING;if(lt(o,Da)&&t===Ae.FAILED)return a.jsx(D5,{sx:{padding:"11px"},children:a.jsx(f.Typography,{variant:"body2",color:"error",children:SL})});const C=A=>{A.stopPropagation();const h=A.currentTarget.offsetWidth<A.currentTarget.scrollWidth;i(!!h)},p=A=>{r(Xu({id:n,args:u,isRefresh:!0}));const h=A.currentTarget.querySelector("svg");h==null||h.classList.remove("selected"),setTimeout(()=>h==null?void 0:h.classList.add("selected"),1)};return a.jsxs(D5,{children:[a.jsxs(zN,{direction:"row",justifyContent:"space-between",children:[b?a.jsxs(f.Stack,{gap:"6px",direction:"row",children:[a.jsx(pn,{width:"16px",height:"24px"}),a.jsx(pn,{width:"100px",height:"24px"})]}):a.jsxs(ZN,{children:[E&&a.jsx("img",{src:E,alt:d}),a.jsx(f.Tooltip,{title:s?d:"",children:a.jsx(f.Typography,{variant:"h4",onMouseOver:A=>C(A),onMouseLeave:A=>C(A),children:d})})]}),a.jsxs(f.Stack,{direction:"row",alignItems:"center",children:[c?a.jsx(f.Tooltip,{title:t3,placement:"bottom",children:a.jsx(ao,{onClick:A=>p(A),children:a.jsx(Hp,{"aria-hidden":!0})})}):null,a.jsx(f.Tooltip,{title:c?n3:xi,placement:"bottom",children:a.jsx(ao,{onClick:()=>l(A=>!A),children:a.jsx(ji,{className:c?"":"hiver-up"})})})]})]}),a.jsx(Tp,{id:D,cardTitle:d,specificCardData:{[D]:e},specificConnectorApiStatus:{[D]:t},isOpen:c})]})},vo=e=>e,Kf=vo(xu.Button),JN=vo(xu.Tooltip),d5={Text:vo(xu.Input.Text)},xc={Field:vo(xu.Dropdown.Field),Menu:vo(xu.Dropdown.Menu),ListItem:vo(xu.Dropdown.ListItem)},A5=({formFields:e,formId:t,formState:n,appDispatch:u})=>e.reduce((r,o)=>{if(o.type!=="async-select"||!o.interfaceDetails)return r;const s=o.interfaceDetails,i={loadOptions:(c,l,D,d)=>{let E=s;o.searchInterfaceDetails&&typeof c=="string"&&c.trim().length>0&&!D&&(E=o.searchInterfaceDetails);const b=sp(n,E==null?void 0:E.args),C=Object.values((E==null?void 0:E.args)||{});if(b.length===C.length){u(wr({fieldName:o.name,formId:String(t),searchTerm:c,fieldConfig:o,interfaceId:E==null?void 0:E.id,pagination:E==null?void 0:E.pagination,callback:l,args:{...Oa(n,E==null?void 0:E.args),...Oa(n,E==null?void 0:E.optionalArgs)},isScrollToBottomEvent:D,controller:d}));return}return l([])}};return{...r,[o.name]:i}},{}),p5=({formFields:e,formId:t,formState:n,conversationId:u,appDispatch:r})=>e.reduce((o,s)=>{if(!s.createOptionInterfaceDetails)return o;const i=s.createOptionInterfaceDetails;return{...o,[s.name]:{createOption:(c,l)=>{var d,E;if(!c)return;const D={values:{name:s.name,value:c},errors:{}};r(jf({fieldName:s.name,formId:String(t),interfaceId:i.id,conversationId:u,label:c,callback:l,args:{...Oa(n,(d=s==null?void 0:s.interfaceDetails)==null?void 0:d.args),...Oa(n,(E=s==null?void 0:s.interfaceDetails)==null?void 0:E.optionalArgs)},createArgs:{...Oa(D,i.args)}}))}}}},{}),yc=({formFields:e,formState:t,formId:n,conversationId:u})=>{const r=Xt(),o=g.useMemo(()=>{if(e&&e.length){const i=A5({formFields:e,formId:n,formState:t,appDispatch:r});return e.reduce((l,D)=>{const d=D.columns;if(!d)return l;const E=A5({formFields:d,formId:n,formState:t,appDispatch:r});return{...l,[D.name]:{loadOptionsList:E}}},i)}return null},[e,t,n,r]),s=g.useMemo(()=>{const i=p5({formFields:e,formId:n,formState:t,conversationId:u,appDispatch:r});return e.reduce((l,D)=>{const d=D.columns;if(!d)return l;const E=p5({formFields:d,formId:n,formState:t,conversationId:u,appDispatch:r});return{...l,[D.name]:{createOptionList:E}}},i)},[e,n,t,u,r]);return{fetchConfig:o,createConfig:s}},YN="Link an object",qN="Search or paste a link",Bc="No results found",UN="Type to search",KN="This link is invalid",$N="or",g5="Search...",ej="Link",tj="Cancel",vc="Already linked to this conversation",nj="Results from the 1,000 most recently updated tasks",uj="Search didn't work.",rj="Try again",oj="This location wasn't found. Choose it again.",wc="item",Lu=e=>e.toLowerCase(),Sc=e=>/^[aeiou]/i.test(e)?"an":"a",$f=e=>/s$/i.test(e)?e:`${e}s`,aj=(e=wc)=>`Search ${Lu($f(e))} or paste URL/ID`,sj=e=>`Select ${Sc(e)} ${Lu(e)}`,fj=(e=wc)=>`Search ${Lu($f(e))}`,C5=e=>`Select ${Sc(e)} ${Lu(e)} first`,ij=e=>`Couldn’t load ${Lu($f(e))}.`,cj=e=>e?`No data found in this ${Lu(e)}`:"No data found",lj=(e,t)=>`Skip if the ${Lu(e)} isn’t in ${Sc(t)} ${Lu(t)}`,h5=e=>`Searching ${e}…`,Dj=(e,t)=>`You don’t have access to ${e} in ${t}. Ask your ${t} admin for access.`,dj=e=>`We couldn’t find ${e}. Check the link or ID`,Aj=(e,t,n=wc)=>t?{title:`Your ${e} connection has expired`,body:`Reconnect ${e} to search and link ${Lu($f(n))} again.`,action:`Reconnect ${e}`}:{title:`${e} connection has expired`,body:`Ask your admin to reconnect ${e}.`,action:null},pj=(e,t)=>{const[n,u]=g.useState(null);return g.useLayoutEffect(()=>{if(!t||!e)return;const r=()=>u(e.getBoundingClientRect());return r(),window.addEventListener("scroll",r,!0),window.addEventListener("resize",r),()=>{window.removeEventListener("scroll",r,!0),window.removeEventListener("resize",r)}},[e,t]),n},gj=4,Cj=232,hj={maxWidth:"40%",flexShrink:0},F5=({id:e,anchorEl:t,open:n,options:u,activeIndex:r,setActiveIndex:o,onSelect:s,onClose:i,loading:c,loadingText:l,emptyText:D,search:d,optionBadge:E,isOptionDisabled:b,optionTooltip:C,footer:p})=>{const A=pj(t,n),h=c?a.jsxs(f.Stack,{role:"status",direction:"row",alignItems:"center",gap:"8px",padding:"8px",children:[a.jsx(f.CircularProgress,{size:16,color:"inherit","aria-hidden":!0}),a.jsx(f.Typography,{variant:"body_sm_regular",children:l})]}):u.length?a.jsx(f.Stack,{role:"listbox",id:`${e}-listbox`,gap:"4px",children:u.map((m,F)=>{const x=!!(b!=null&&b(m)),y=C==null?void 0:C(m),S=E==null?void 0:E(m),v=a.jsx(xc.ListItem,{id:`${e}-option-${F}`,role:"option","aria-selected":F===r,"aria-disabled":x,selected:F===r,disabled:x,tabIndex:-1,endBadge:!!S,slotProps:S?{endBadge:{children:S,variant:"subtle",tone:"neutral",size:"xs",sx:hj}}:{},onMouseEnter:()=>o(F),onMouseDown:w=>{w.preventDefault(),x||s(m)},children:m.label},m.value);return y?a.jsx(JN,{label:y,placement:"top-start",describeChild:!0,children:a.jsx("div",{children:v})},m.value):v})}):D?a.jsx(f.Typography,{role:"status",variant:"body_sm_regular",align:"center",padding:"8px",children:D}):null;return!n||!t||!A||!d&&!h&&!p?null:Qt.createPortal(a.jsx("div",{style:{position:"fixed",top:A.bottom+gj,left:A.left,width:A.width,zIndex:1500},children:a.jsx(f.ClickAwayListener,{onClickAway:m=>{t.contains(m.target)||i()},children:a.jsx(xc.Menu,{id:`${e}-menu`,showSearch:!!d,maxHeight:Cj,showFooter:!!p,customFooter:p??void 0,slotProps:d?{search:{value:d.value,placeholder:g5,autoFocus:!0,onChange:m=>d.onChange(m.target.value),onClear:()=>d.onChange(""),onKeyDown:d.onKeyDown,slotProps:{input:{"aria-label":g5,"aria-controls":`${e}-listbox`}}}}:void 0,children:h})})}),document.body)},m5=({open:e,options:t,activeIndex:n,setActiveIndex:u,isOptionDisabled:r,onSelect:o,onClose:s})=>i=>{if(e)if(i.key==="ArrowDown"||i.key==="ArrowUp"){if(i.preventDefault(),!t.length)return;const c=i.key==="ArrowDown"?1:-1;u((n+c+t.length)%t.length)}else if(i.key==="Enter"){const c=t[n];c&&!(r!=null&&r(c))&&(i.preventDefault(),o(c))}else i.key==="Escape"&&s()},E5=({id:e,label:t,value:n,options:u,placeholder:r,helperText:o,disabled:s,hasError:i,loading:c,loadingText:l,emptyText:D,onSearch:d,onOpen:E,onChange:b,renderValue:C,isOptionDisabled:p,optionTooltip:A,footer:h})=>{const m=g.useRef(null),[F,x]=g.useState(!1),[y,S]=g.useState(""),[v,w]=g.useState(0),k=()=>{x(!1),y&&(S(""),d(""))},O=T=>{var M;b(T),k(),(M=m.current)==null||M.focus()},j=m5({open:F,options:u,activeIndex:v,setActiveIndex:w,isOptionDisabled:p,onSelect:O,onClose:()=>{var T;k(),(T=m.current)==null||T.focus()}}),L=()=>{if(F){k();return}w(0),x(!0),E==null||E()};return a.jsxs(a.Fragment,{children:[a.jsx(xc.Field,{ref:m,id:e,size:"sm",label:t,placeholder:r,value:n?(C==null?void 0:C(n))??n.label:void 0,helperText:o,disabled:s,error:i,open:F,slotProps:{field:{"aria-label":t}},onTriggerClick:L,onTriggerKeyDown:T=>{!F&&(T.key==="ArrowDown"||T.key==="Enter"||T.key===" ")&&(T.preventDefault(),L())}}),a.jsx(F5,{id:e,anchorEl:m.current,open:F&&!s,options:u,activeIndex:v,setActiveIndex:w,onSelect:O,onClose:k,loading:c,loadingText:l,emptyText:D,search:{value:y,onChange:T=>{S(T),w(0),d(T)},onKeyDown:j},isOptionDisabled:p,optionTooltip:A,footer:h})]})},Ic=({children:e,onRetry:t})=>a.jsxs(f.Typography,{role:"alert",variant:"body_sm_regular",color:"text.error.soft",component:"span",children:[e,t?a.jsxs(a.Fragment,{children:[" ",a.jsx(Kf,{variant:"linkWithUnderline",size:"2xs",onClick:t,children:rj})]}):null]}),b5=()=>a.jsxs(f.Stack,{direction:"row",alignItems:"flex-start",gap:"6px",color:"text.neutral.soft",children:[a.jsx(y0.InfoCircle,{width:14,height:14,"aria-hidden":!0}),a.jsx(f.Typography,{variant:"caption_regular",children:nj})]}),kc=(e,t=!1)=>({value:e.externalResourceId,label:t?`${e.displayId} · ${e.title}`:e.title,row:e}),Fj=(e,t)=>{var u,r;const n=Object.values(((u=e.interfaceDetails)==null?void 0:u.args)??{});return sp(t,(r=e.interfaceDetails)==null?void 0:r.args).length===n.length},mj=/^https?:\/\//i,Tc=e=>mj.test(e.trim()),Ej=e=>{const t=e.trim();if(!Tc(t))return t;try{const n=new URL(t).pathname.split("/").filter(Boolean);return n.length?decodeURIComponent(n[n.length-1]):t}catch{return t}},bj=300,xj=e=>{var t,n;return[...Object.values(((t=e.interfaceDetails)==null?void 0:t.args)??{}),...Object.values(((n=e.interfaceDetails)==null?void 0:n.optionalArgs)??{})]},yj=e=>e&&typeof e=="object"&&"value"in e?String(e.value):"",x5=e=>e.flatMap(t=>{if(t&&typeof t=="object"&&"options"in t)return x5(t.options);const{value:n,label:u}=t;return n===void 0?[]:[{value:String(n),label:String(u),raw:{value:n,label:String(u)}}]}),Bj=({field:e,config:t,value:n,disabled:u,placeholder:r,emptyText:o,hint:s,onChange:i,onEmpty:c})=>{const[l,D]=g.useState([]),[d,E]=g.useState(""),[b,C]=g.useState(!1),[p,A]=g.useState(!1),[h,m]=g.useState(!1),F=g.useRef(),x=g.useRef();g.useEffect(()=>()=>{var O;(O=F.current)==null||O.abort(),clearTimeout(x.current)},[]);const y=O=>{var T;if(!(t!=null&&t.loadOptions))return;(T=F.current)==null||T.abort();const j=new AbortController;F.current=j,C(!0),A(!1),m(!1);const L=(M,N)=>{if(j.signal.aborted)return;const Q=N!=null&&N.isError?[]:x5(M);D(Q),C(!1),A(!(N!=null&&N.isError)),m(!!(N!=null&&N.isError)),!O&&!(N!=null&&N.isError)&&Q.length===0&&c()};t.loadOptions(O,L,!1,j)},S=O=>{E(O),clearTimeout(x.current),x.current=setTimeout(()=>y(O),bj)},v=d.trim().toLowerCase(),w=v?l.filter(O=>O.label.toLowerCase().includes(v)):l,k=n?{value:String(n.value),label:n.label,raw:n}:null;return a.jsx(E5,{id:`pm-link-level-${e.name}`,label:e.label,value:k,options:w,placeholder:r,helperText:s,disabled:u,hasError:h,loading:b&&!l.length,emptyText:p?v?Bc:o:null,onOpen:()=>y(""),onSearch:S,onChange:O=>i(O.raw),footer:h?a.jsx(Ic,{onRetry:()=>y(d),children:ij(e.label)}):null})},vj=({formId:e,levelFields:t,optionalLevels:n,objectLabel:u,formState:r,onLevelChange:o,onEmptyLevel:s})=>{const{fetchConfig:i}=yc({formFields:t,formId:e,formState:r}),c=i??{};return a.jsx(a.Fragment,{children:t.map((l,D)=>{var m;const d=xj(l),E=t.filter(F=>F.name!==l.name&&d.includes(F.name)),b=[...E].reverse().find(F=>!!r.values[F.name]),C=E.find(F=>!n.includes(F.name)&&!r.values[F.name]),p=Fj(l,r),A=((m=t[D+1])==null?void 0:m.label)??u,h=r.values[l.name];return a.jsx(Bj,{field:l,config:c[l.name],value:h&&typeof h=="object"?h:null,disabled:!p,placeholder:!p&&C?C5(C.label):sj(l.label),emptyText:cj(b==null?void 0:b.label),hint:n.includes(l.name)?lj(A,l.label):void 0,onChange:F=>o(l.name,F),onEmpty:()=>s==null?void 0:s(l.name)},`${l.name}:${d.map(F=>yj(r.values[F])).join("|")}`)})})},wj=({id:e,label:t,value:n,inputValue:u,rows:r,status:o,app:s,placeholder:i,helperText:c,showCapNote:l,hideEmptyMessage:D,disabled:d,hasError:E,onInputChange:b,onChange:C})=>{const p=g.useRef(null),[A,h]=g.useState(null),[m,F]=g.useState(!1),[x,y]=g.useState(0),S=u?r.map(L=>kc(L)):[],v=L=>!!L.row.alreadyLinked,w=L=>{var T;C(L),F(!1),(T=p.current)==null||T.blur()},k=m5({open:m,options:S,activeIndex:x,setActiveIndex:y,isOptionDisabled:v,onSelect:w,onClose:()=>F(!1)}),O=o==="loading",j=m&&!d&&!n&&!!u&&(O||o==="done");return a.jsxs(a.Fragment,{children:[a.jsx(d5.Text,{id:e,size:"sm",label:t,placeholder:i,value:u||(n==null?void 0:n.label)||"",disabled:d,error:E,helperText:c,autoComplete:"off",inputRef:p,prefix:a.jsx(y0.SearchMd,{width:16,height:16,"aria-hidden":!0}),showClearSelection:!!(n||u)&&!d,onClear:()=>{var L;C(null),F(!1),(L=p.current)==null||L.focus()},slotProps:{field:{ref:h},input:{role:"combobox","aria-label":t,"aria-expanded":j,"aria-controls":`${e}-listbox`,"aria-invalid":E||void 0},clear:{"aria-label":"Clear"}},onFocus:()=>{u&&F(!0)},onChange:L=>{y(0),F(!0),b(L.target.value)},onKeyDown:k}),a.jsx(F5,{id:e,anchorEl:A,open:j,options:S,activeIndex:x,setActiveIndex:y,onSelect:w,onClose:()=>F(!1),loading:O,loadingText:h5(s),emptyText:D?null:Bc,optionBadge:L=>L.row.location?`In ${L.row.location}`:void 0,isOptionDisabled:v,optionTooltip:L=>L.row.alreadyLinked?vc:void 0,footer:l&&!O&&S.length?a.jsx(b5,{}):null})]})},Sj=async({formId:e,query:t,conversationId:n,args:u,channelType:r="email",smId:o,smIds:s})=>{const i=cc(uL.replace(":id",e),o,s),c=i.includes("?")?"&":"?",l=await Ee({url:`${i}${c}channel_type=${encodeURIComponent(r)}`,method:Be.POST,data:{query:t,conversationId:n,args:u}}),D=l!=null&&l.data&&"data"in l.data?l.data.data:l==null?void 0:l.data;return{rows:Array.isArray(D==null?void 0:D.rows)?D.rows:[],route:(D==null?void 0:D.route)??"name",truncatedAtCap:!!(D!=null&&D.truncatedAtCap),outcome:(D==null?void 0:D.outcome)??"ok"}},Ij=300,y5=({formId:e,query:t,args:n,enabled:u,onSettled:r})=>{const{conversationId:o}=g.useContext(qe),s=Pa(),i=bo(),[c,l]=g.useState("idle"),[D,d]=g.useState(null),[E,b]=g.useState(0),C=g.useCallback(()=>b(F=>F+1),[]),p=g.useRef(0),A=g.useRef(r);A.current=r;const h=t.trim(),m=JSON.stringify(n);return g.useEffect(()=>{const F=++p.current;if(!u||!h||!o){l("idle"),d(null);return}l("loading");const x=setTimeout(()=>{Sj({formId:e,query:h,conversationId:o,args:JSON.parse(m),smId:s,smIds:i}).then(y=>{var S;F===p.current&&(d(y),l("done"),(S=A.current)==null||S.call(A,y))}).catch(y=>{var S;F===p.current&&(Pe.error(y),d(null),l(((S=y==null?void 0:y.response)==null?void 0:S.status)===404?"unavailable":"error"))})},Ij);return()=>clearTimeout(x)},[e,h,m,u,o,s,i,E]),{status:c,result:D,retry:C}},kj=f.styled("p")`
2950
2950
  margin: 12px 0 0;
2951
2951
  font-size: 16px;
2952
2952
  font-weight: 600;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hiver/connector-agent",
3
- "version": "4.24.0-pmSearchLink-beta.12",
3
+ "version": "4.24.0-pmSearchLink-beta.13",
4
4
  "main": "index.es.js",
5
5
  "module": "index.es.js",
6
6
  "types": "index.d.ts",