@aic-kits/react 0.36.2 → 0.37.0

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.
@@ -30,4 +30,7 @@ export interface StyledInlineCellProps {
30
30
  export declare const StyledInlineCell: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, StyledInlineCellProps>> & string;
31
31
  export declare const StyledCellPreformatted: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLPreElement>, HTMLPreElement>, never>> & string;
32
32
  export declare const StyledNoDataCell: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').TdHTMLAttributes<HTMLTableDataCellElement>, HTMLTableDataCellElement>, never>> & string;
33
- export declare const StyledTableWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components').FastOmit<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, never>> & string;
33
+ export interface StyledTableWrapperProps {
34
+ $scrollable?: boolean;
35
+ }
36
+ export declare const StyledTableWrapper: import('styled-components/dist/types').IStyledComponentBase<"web", import('styled-components/dist/types').Substitute<import('react').DetailedHTMLProps<import('react').HTMLAttributes<HTMLDivElement>, HTMLDivElement>, StyledTableWrapperProps>> & string;
package/dist/index.cjs CHANGED
@@ -753,7 +753,7 @@ function print() { __p += __j.call(arguments, '') }
753
753
  `,q5=ge.div`
754
754
  width: 100%;
755
755
  max-width: 100%;
756
- overflow-x: auto;
756
+ ${({$scrollable:e})=>e&&"overflow-x: auto;"}
757
757
  border-radius: ${({theme:e})=>e.radii.md}px;
758
758
  border: 1px solid ${({theme:e})=>e.colors.grey300};
759
759
 
@@ -778,7 +778,7 @@ function print() { __p += __j.call(arguments, '') }
778
778
  background-color: ${({theme:e})=>e.colors.grey500};
779
779
  }
780
780
  `;function K5({item:e,columns:n,isSelected:r,isEditable:o,onEditFormChange:l,onSave:c,onQuickEdit:u}){const[f,p]=a.useState(null),g=a.useRef(null);a.useEffect(()=>{if(typeof document>"u"||!f)return;const m=x=>{g.current&&x.target instanceof Node&&(g.current.contains(x.target)||p(null))};return document.addEventListener("mousedown",m),()=>document.removeEventListener("mousedown",m)},[f]);const y=n.reduce((m,x)=>m+Number(x.flex||1),0);return d.jsx(I,{bgColor:r?"orange100":"white",children:d.jsx(N5,{children:d.jsx("tbody",{children:d.jsx("tr",{children:n.map(m=>{const x=e[m.key],v=m.render?m.render(x,e):wc(x,m),_=typeof x=="string"&&x.includes(`
781
- `),j=Number(m.flex||1)/y*100,$=!!(m.headerEditable&&f===m.key);return d.jsx(U5,{$width:`${j}%`,$isEditing:$,children:d.jsx(I,{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:m.headerEditable&&o?f===m.key?m.type==="select"&&m.options?d.jsx(I,{ref:g,onClick:A=>A.stopPropagation(),position:"absolute",zIndex:50,left:0,top:"100%",marginTop:"xs",width:"176px",borderRadius:"md",borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:m.options.map(A=>d.jsx(at,{onMouseDown:k=>k.preventDefault(),onClick:()=>{u?u(e,m.key,A.value):(l(e.id,m.key,A.value),c(e)),p(null)},useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",width:"100%",py:"sm",px:"md",children:d.jsx(Oe,{fontSize:"small",children:A.label})},A.value))}):d.jsx(In,{value:String(e[m.key]??""),onChange:A=>{l(e.id,m.key,A)},onBlur:()=>{p(null),c(e)}}):d.jsx(at,{onClick:A=>{A.stopPropagation(),p(m.key)},useScaleAnimation:!1,children:m.href||m.type==="link"&&x?d.jsx(at,{href:m.href?m.href(e):String(x),target:"_blank",rel:"noopener noreferrer",onClick:A=>A.stopPropagation(),useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",children:d.jsx(Oe,{color:"primary",children:v})}):_?d.jsx(Cf,{children:v}):m.tagColor?d.jsx(Dl,{color:m.tagColor,children:v}):d.jsx("span",{children:v})}):m.href||m.type==="link"&&x?d.jsx(at,{href:m.href?m.href(e):String(x),target:"_blank",rel:"noopener noreferrer",onClick:A=>A.stopPropagation(),useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",children:d.jsx(Oe,{color:"primary",children:v})}):_?d.jsx(Cf,{children:v}):m.tagColor?d.jsx(Dl,{color:m.tagColor,size:"sm",children:v}):d.jsx("span",{children:v})})},String(m.key))})})})})})}function Ph({item:e,columns:n,allColumns:r,expandedRows:o,editFormData:l,loadingDetails:c,isFormLoading:u,isEditable:f=!0,isExpandAccordion:p=!0,isSelected:g=!1,onToggleExpanded:y,onEditFormChange:m,onSave:x,onDelete:v,onQuickEdit:_}){const j=a.useMemo(()=>{const k=l[e.id];return k?Object.keys(k).some(T=>{const S=k[T],E=e[T];return Array.isArray(S)&&Array.isArray(E)?JSON.stringify(S)!==JSON.stringify(E):S!==E}):!1},[l,e]),$=()=>d.jsx(K5,{item:e,columns:n,isSelected:g,isEditable:f,onEditFormChange:m,onSave:x,onQuickEdit:_}),A=()=>d.jsx(P5,{item:e,allColumns:r,editFormData:l,loadingDetails:c,isFormLoading:u,isEditable:f,hasChanges:j,onEditFormChange:m,onSave:x,onToggleExpanded:y,onDelete:v});return d.jsx(ks,{$isSelected:g,children:d.jsx(Z5,{colSpan:n.length,children:p?d.jsx(xh,{expanded:o.has(e.id),onExpandedChange:()=>y(e),iconPosition:"none",renderHeader:$,renderContent:A,borderRadius:"none",borderWidth:"none",padding:"none",paddingInline:"none"}):d.jsx(at,{onClick:()=>y(e),useScaleAnimation:!1,children:$()})})})}function Wh({columns:e,formData:n,isLoading:r,onInputChange:o,onSubmit:l,onCancel:c}){return d.jsxs(d.Fragment,{children:[d.jsx(_c,{columns:e,getValue:u=>n[u.key],onChange:(u,f)=>o(u.key,f),disabled:!1,formData:n,filterColumn:u=>u.editable!==!1&&u.key!=="id"}),d.jsxs(I,{display:"flex",justifyContent:"flex-end",gap:"sm",pt:"md",mt:"md",borderTopWidth:"thin",borderColor:"grey300",children:[d.jsx(ot,{text:r?"Adding...":"Add Item",onClick:l,disabled:r,loading:r}),d.jsx(ot,{text:"Cancel",variant:"outlined",onClick:c,disabled:r})]})]})}const Y5="Are you sure you want to delete this item?",X5="Delete",Hh=({open:e,onOpenChange:n,onConfirm:r,isLoading:o=!1,message:l=Y5,deleteButtonText:c=X5})=>{const u=()=>{o||n(!1)},f=()=>{r()};return d.jsx(Ls,{open:e,onClose:u,bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",children:"Confirm Delete"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:l}),d.jsxs(I,{display:"flex",justifyContent:"flex-end",gap:"sm",mt:"md",children:[d.jsx(ot,{text:"Cancel",variant:"outlined",onClick:u,disabled:o}),d.jsx(ot,{text:o?"Deleting...":c,color:"danger",onClick:f,disabled:o,loading:o})]})]})})};function Bh({columns:e,filters:n,onFiltersChange:r,borderRadius:o="md"}){const[l,c]=a.useState({}),u=a.useRef(new Set),f=a.useRef(new Set),p=a.useRef(!1),g=a.useRef(null),y=a.useRef(r),m=a.useRef(n),x=a.useRef(e);a.useEffect(()=>{y.current=r,m.current=n,x.current=e},[r,n,e]);const v=a.useCallback(S=>{switch(S.filterType||S.type){case"select":case"searchSelect":case"boolean":case"inlinepairselect":return"equals";case"checkboxes":case"inlinemultiselect":return"contains";case"number":case"date":return"greater_equal";case"text":case"email":default:return"contains"}},[]),_=a.useCallback(S=>{const E=[],R=x.current;return Object.entries(S).forEach(([z,F])=>{const X=F.value!=null&&String(F.value).trim()!=="",Z=F.valueEnd!=null&&String(F.valueEnd).trim()!=="";if(X||Z){const K=R.find(O=>String(O.key)===z);if(K){if((K.filterType||K.type)==="inlinepairselect"&&!(X&&Z))return;const H=K.filterKey||K.key;E.push({id:`filter-${z}`,column:H,operator:v(K),value:F.value||"",valueEnd:F.valueEnd||void 0,relation:K.filterRelation})}}}),E},[v]);a.useEffect(()=>{if(p.current){n.length===0&&(p.current=!1);return}const S={},E=x.current;n.forEach(R=>{const z=String(R.column),F=E.find(O=>(O.filterKey||String(O.key))===z),X=F?String(F.key):z,Z=R.value!=null&&String(R.value).trim()!=="",K=R.valueEnd!=null&&String(R.valueEnd).trim()!=="";(Z||K)&&(S[X]={value:R.value,valueEnd:R.valueEnd})}),c(R=>{const z={...S};return u.current.forEach(F=>{F in R&&(R[F]?z[F]=R[F]:delete z[F])}),f.current.forEach(F=>{F in R&&(R[F]?z[F]=R[F]:delete z[F])}),z})},[n]),a.useEffect(()=>{g.current&&clearTimeout(g.current);const S=setTimeout(()=>{if(g.current=null,u.current.size>0)return;const E=_(l),R=m.current;(()=>{if(E.length!==R.length)return!0;const F=[...E].sort((Z,K)=>String(Z.column).localeCompare(String(K.column))),X=[...R].sort((Z,K)=>String(Z.column).localeCompare(String(K.column)));return!F.every((Z,K)=>{const O=X[K];return String(Z.column)===String(O.column)&&Z.value===O.value&&Z.valueEnd===O.valueEnd})})()?y.current(E):f.current.clear()},500);return g.current=S,()=>{clearTimeout(S),g.current=null}},[l,_]);const j=a.useCallback((S,E,R=!1,z=!1)=>{f.current.add(S),z&&(u.current.add(S),g.current&&(clearTimeout(g.current),g.current=null)),c(F=>{const X=F[S]||{value:""},Z={...F,[S]:R?{...X,valueEnd:E}:{...X,value:E}};return z&&setTimeout(()=>{const K=_(Z);y.current(K),u.current.delete(S)},0),Z})},[_]),$=a.useCallback((S,E=!1)=>{c(R=>{var X,Z;const z=R[S];if(!((X=z==null?void 0:z.value)!=null&&X.trim())&&!((Z=z==null?void 0:z.valueEnd)!=null&&Z.trim()))return R;f.current.add(S),E&&(u.current.add(S),g.current&&(clearTimeout(g.current),g.current=null));const F={...R,[S]:{value:""}};return E&&setTimeout(()=>{const K=_(F);y.current(K),u.current.delete(S)},0),F})},[_]),A=a.useCallback(()=>{p.current=!0,g.current&&(clearTimeout(g.current),g.current=null),c({}),y.current([]),f.current.clear(),u.current.clear()},[]),k=a.useCallback(S=>{if(!S)return;const E=new Date(S);if(!isNaN(E.getTime()))return{date:E,timezone:null}},[]),T=a.useCallback((S,E,R)=>{if(!(E!=null&&E.date)){$(S,!0);return}const z=E.date,F=z.getFullYear(),X=String(z.getMonth()+1).padStart(2,"0"),Z=String(z.getDate()).padStart(2,"0");j(S,`${F}-${X}-${Z}`,R,!0)},[j,$]);return d.jsxs(d.Fragment,{children:[d.jsx(Yn,{container:!0,columns:{xs:3,sm:6,lg:9},spacing:"md",children:e.filter(S=>S.key!=="id").filter(S=>S.key!=="select").filter(S=>S.key!=="actions").map(S=>{var Z,K;const E=String(S.key),R=((Z=l[E])==null?void 0:Z.value)??"",z=((K=l[E])==null?void 0:K.valueEnd)??"",F=S.filterType||S.type;if(F==="none")return null;const X=F==="date";return d.jsx(Yn,{size:3,children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"xs",height:"100%",children:[d.jsx(Oe,{fontSize:"small",fontWeight:"medium",color:"grey700",children:S.header||E}),d.jsxs(I,{display:"flex",alignItems:"center",gap:"xs",flex:"1",children:[X&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(Ds,{range:!0,isFixedPosition:!0,startValue:k(R),endValue:k(z),onStartChange:O=>T(E,O,!1),onEndChange:O=>T(E,O,!0)})}),F==="number"&&d.jsxs(I,{display:"flex",flexDirection:"row",alignItems:"center",gap:"sm",flex:"2",minWidth:"0",children:[d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{type:"number",borderRadius:o,bgColor:"white",value:R,onChange:O=>j(E,O),placeholder:"Min"})}),d.jsx(Oe,{color:"grey500",children:"-"}),d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{type:"number",borderRadius:o,bgColor:"white",value:z,onChange:O=>j(E,O,!0),placeholder:"Max"})})]}),F==="select"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All"})}),F==="searchSelect"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(Eh,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All",searchPlaceholder:S.searchPlaceholder,onSearchTermChange:S.onSearchTermChange})}),F==="boolean"&&d.jsx(I,{flex:"1",minWidth:"0",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"sm",px:"sm",py:"sm",height:"100%",borderRadius:o,borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:d.jsx(Fs.Group,{value:R||"",onChange:O=>{const H=String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},{value:"true",label:"Yes"},{value:"false",label:"No"}]})}),F==="checkboxes"&&(S.filterOptions||S.options)&&d.jsx(I,{flex:"1",minWidth:"0",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"sm",px:"sm",py:"sm",height:"100%",borderRadius:o,borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:(S.filterOptions||S.options).map(O=>{const H=R?R.split(","):[],B=H.includes(O.value);return d.jsx(fc,{checked:B,onChange:fe=>{const U=[...H];if(fe)U.includes(O.value)||U.push(O.value);else{const ie=U.indexOf(O.value);ie>-1&&U.splice(ie,1)}const Y=U.join(",");Y===""?$(E,!0):j(E,Y,!1,!0)},label:O.label,size:"sm"},O.value)})}),F==="inlinemultiselect"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...S.filterBy==="group"&&S.groupOptions?S.groupOptions.map(O=>({value:O.values.join(","),label:O.label})):(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All"})}),F==="inlinepairselect"&&S.pairOptions&&d.jsxs(I,{display:"flex",alignItems:"center",gap:"sm",flex:"1",minWidth:"0",children:[d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):z?j(E,H,!1,!0):(f.current.add(E),c(B=>({...B,[E]:{...B[E],value:H}})))},options:[{value:"",label:"All"},...S.pairOptions.primaryOptions.map(O=>({value:O.value,label:O.label}))],placeholder:S.pairOptions.primaryPlaceholder||"Primary"})}),d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",disabled:!R,value:z||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):R?j(E,H,!0,!0):(f.current.add(E),c(B=>({...B,[E]:{...B[E],valueEnd:H}})))},options:[{value:"",label:"All"},...S.pairOptions.secondaryOptions.map(O=>({value:O.value,label:O.label}))],placeholder:S.pairOptions.secondaryPlaceholder||"Secondary"})})]}),(!F||F==="text"||F==="email")&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{borderRadius:o,bgColor:"white",value:R,onChange:O=>j(E,O),placeholder:"Contains..."})}),d.jsx(at,{onClick:()=>$(E,!0),useScaleAnimation:!0,useOpacityAnimation:!0,cursor:"pointer",alignItems:"center",flexShrink:0,ml:"xs",children:d.jsx(bt,{type:"icon",art:N1,color:"primary",weight:"regular",size:"sm"})})]})]})},E)})}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"Clear All",variant:"outlined",onClick:A,disabled:!Object.values(l).some(S=>{var E,R;return((E=S.value)==null?void 0:E.trim())||((R=S.valueEnd)==null?void 0:R.trim())})})})]})}function Q5(e){const n=e.getCurrentPage(),r=e.getPageSize(),o=e.getSortBy(),l=e.getSortDirection(),c=a.useMemo(()=>e.getFilters(),[e]),u=a.useCallback(p=>{e.setPagination(p)},[e]),f=a.useCallback(p=>{e.setFilters(p)},[e]);return{currentPage:n,pageSize:r,sortBy:o,sortDirection:l,filters:c,onPaginationChange:u,onFiltersChange:f}}function J5(e){const[n,r]=a.useState(1),[o,l]=a.useState((e==null?void 0:e.defaultPageSize)??10),[c,u]=a.useState((e==null?void 0:e.defaultSortBy)??""),[f,p]=a.useState((e==null?void 0:e.defaultSortDirection)??"asc"),[g,y]=a.useState([]);return a.useMemo(()=>({getCurrentPage:()=>n,getPageSize:()=>o,getSortBy:()=>c,getSortDirection:()=>f,getFilters:()=>g,setPagination:m=>{m.page!==void 0&&r(m.page),m.pageSize!==void 0&&l(m.pageSize),m.sortBy!==void 0&&u(m.sortBy),m.sortDirection!==void 0&&p(m.sortDirection)},setFilters:y}),[n,o,c,f,g])}function e_({data:e,columns:n,currentPage:r,pageSize:o,total:l,sortBy:c,sortDirection:u,onPaginationChange:f,onAdd:p,onEdit:g,onDelete:y,onView:m,onSelectedItemChange:x,onFieldChange:v,renderExpandedRow:_}){const[j,$]=a.useState(!1),[A,k]=a.useState(!1),[T,S]=a.useState([]),[E,R]=a.useState(null),z=a.useMemo(()=>{const pe={};for(const ke of n)if(ke.key!=="select"&&ke.defaultValue!==void 0){const Fe=pe;Fe[ke.key]=ke.defaultValue}return pe},[n]),[F,X]=a.useState(z),[Z,K]=a.useState(!1),[O,H]=a.useState(!1),[B,fe]=a.useState(new Set),[U,Y]=a.useState({}),[ie,Ae]=a.useState(new Set),[Te,_e]=a.useState(new Set),[xe,ve]=a.useState({}),ne=n.filter(pe=>!pe.hiddenInHeader),ye=Math.ceil(l/o),D=e,he=ne.reduce((pe,ke)=>pe+Number(ke.flex||1),0),Q=a.useCallback(pe=>{const ke=c===String(pe)&&u==="asc"?"desc":"asc";f({page:r,pageSize:o,sortBy:String(pe),sortDirection:ke})},[c,u,r,o,f]),Se=a.useCallback(pe=>{const ke=Math.max(1,Math.min(pe,ye));f({page:ke,pageSize:o,sortBy:c,sortDirection:u})},[ye,o,c,u,f]),Ee=a.useCallback(pe=>{f({page:1,pageSize:pe,sortBy:c,sortDirection:u})},[c,u,f]),re=a.useCallback((pe,ke)=>{X(Fe=>{let ce={...Fe,[pe]:ke};return v&&(ce=v(ce,pe,ke)),ce})},[v]),G=a.useCallback(async()=>{if(!p)return;const ke=n.filter(Fe=>Fe.required===!0).filter(Fe=>{if(Fe.key==="select")return!1;const ce=F[Fe.key];return ce==null||ce===""});if(ke.length>0){S(ke.map(Fe=>Fe.header));return}K(!0);try{await p(F),$(!1),X(z),f({page:r,pageSize:o,sortBy:c,sortDirection:u})}catch(Fe){console.error("Error adding item:",Fe)}finally{K(!1)}},[p,n,F,z,r,o,c,u,f]),me=a.useCallback(async()=>{if(!(!y||!E)){K(!0);try{await y(E.id),k(!1),R(null),f({page:r,pageSize:o,sortBy:c,sortDirection:u})}catch(pe){console.error("Error deleting item:",pe)}finally{K(!1)}}},[y,E,r,o,c,u,f]),N=a.useCallback(pe=>{R(pe),k(!0)},[]),se=a.useCallback(async pe=>{if(_){x&&x(pe),(E==null?void 0:E.id)===pe.id?R(null):R(pe);return}const ke=pe.id,Fe=new Set(B),ce=new Set(Te);if(Fe.has(ke))Fe.delete(ke),ce.delete(ke),ve(Re=>{const Me={...Re};return delete Me[ke],Me});else if(Fe.add(ke),ce.add(ke),ve(Re=>({...Re,[ke]:{}})),m&&!U[ke]&&!ie.has(ke)){Ae(Re=>{const Me=new Set(Re);return Me.add(ke),Me});try{const Re=await m(ke);Y(Me=>({...Me,[ke]:Re}))}catch(Re){console.error("Error fetching detailed data:",Re)}finally{Ae(Re=>{const Me=new Set(Re);return Me.delete(ke),Me})}}fe(Fe),_e(ce)},[_,x,E,B,Te,m,U,ie]),we=a.useRef(se);we.current=se;const ze=a.useCallback((pe,ke,Fe)=>{ve(ce=>{let Me={...ce[pe]||{},[ke]:Fe};return v&&(Me=v(Me,ke,Fe)),{...ce,[pe]:Me}})},[v]),We=a.useCallback(pe=>{if(g&&xe[pe.id]){const ke={...pe,...xe[pe.id]},ce=n.filter(Re=>Re.required===!0).filter(Re=>{if(Re.key==="select")return!1;const Me=ke[Re.key];return Me==null||Me===""});if(ce.length>0){S(ce.map(Re=>Re.header));return}B.has(pe.id)&&we.current(pe);try{const Re=g(pe.id,xe[pe.id]);Re instanceof Promise&&Re.catch(Me=>{console.error("Error updating item:",Me)})}catch(Re){console.error("Error updating item:",Re)}}},[g,xe,B,n]),Ke=a.useCallback((pe,ke,Fe)=>{if(g)try{const ce=g(pe.id,{[ke]:Fe});ce instanceof Promise&&ce.catch(Re=>{console.error("Error quick editing item:",Re)})}catch(ce){console.error("Error quick editing item:",ce)}},[g]);return{visibleColumns:ne,displayData:D,totalPages:ye,totalFlex:he,defaults:z,isAddFormOpen:j,setIsAddFormOpen:$,isDeleteDialogOpen:A,setIsDeleteDialogOpen:k,validationErrors:T,setValidationErrors:S,isFilterBuilderOpen:O,setIsFilterBuilderOpen:H,isFormLoading:Z,selectedItem:E,setSelectedItem:R,addFormData:F,setAddFormData:X,editFormData:xe,expandedRows:B,loadingDetails:ie,detailedData:U,handleSort:Q,handlePageChange:Se,handlePageSizeChange:Ee,handleAddFormInputChange:re,handleAdd:G,handleDelete:me,openDeleteDialog:N,toggleExpandedRow:se,handleInlineEditFormChange:ze,handleInlineSave:We,handleQuickEdit:Ke}}function t_({columns:e,totalFlex:n,sortBy:r,sortDirection:o,onSort:l}){const c=je();return d.jsx(ks,{children:e.map(u=>{const f=Number(u.flex||1)/n*100,p=r===String(u.key)?o:!1;return d.jsx(V5,{$sortable:u.sortable,$width:`${f}%`,onClick:()=>u.sortable&&l(u.key),children:d.jsxs(I,{display:"flex",alignItems:"center",gap:"xs",children:[d.jsx(Oe,{color:"grey600",fontSize:"medium",fontWeight:"bold",children:u.header}),u.sortable&&p&&(p==="asc"?d.jsx(F1,{size:12,weight:"bold",color:c.colors.primary}):d.jsx(z1,{size:12,weight:"bold",color:c.colors.primary}))]})},String(u.key))})})}function n_({currentPage:e,pageSize:n,total:r,totalPages:o,pageSizeOptions:l,onPageChange:c,onPageSizeChange:u}){return d.jsxs(I,{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:"md",px:"md",py:"sm",children:[d.jsxs(I,{display:"flex",alignItems:"center",gap:"md",children:[d.jsxs(Oe,{fontSize:"small",color:"grey500",children:["Showing ",(e-1)*n+1," to"," ",Math.min(e*n,r)," of ",r," results"]}),d.jsxs(I,{display:"flex",alignItems:"center",gap:"sm",children:[d.jsx(I,{whiteSpace:"nowrap",children:d.jsx(Oe,{fontSize:"small",color:"grey500",children:"Rows per page:"})}),d.jsx(qn,{value:String(n),onChange:f=>u(Number(f)),options:l.map(f=>({value:String(f),label:String(f)}))})]})]}),d.jsxs(I,{display:"flex",gap:"xs",alignItems:"center",children:[d.jsx(ot,{variant:"outlined",size:"sm",icon:ec,onClick:()=>c(1),disabled:e===1}),d.jsx(ot,{variant:"outlined",size:"sm",icon:Qi,onClick:()=>c(e-1),disabled:e===1}),d.jsx(I,{px:"sm",children:d.jsxs(Oe,{fontSize:"small",color:"grey700",children:["Page ",e," of ",o]})}),d.jsx(ot,{variant:"outlined",size:"sm",icon:Dr,onClick:()=>c(e+1),disabled:e===o}),d.jsx(ot,{variant:"outlined",size:"sm",icon:tc,onClick:()=>c(o),disabled:e===o})]})]})}const r_=({errors:e,onClose:n})=>e.length===0?null:d.jsx(Ls,{open:e.length>0,onClose:n,bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",children:"Required Fields Missing"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:"Please fill in the following required fields:"}),d.jsx(I,{display:"flex",flexDirection:"column",gap:"xs",children:e.map(r=>d.jsxs(Oe,{fontSize:"small",color:"danger",children:["• ",r]},r))}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"OK",onClick:n})})]})});function i_({data:e,columns:n,onAdd:r,onEdit:o,onDelete:l,onView:c,renderExpandedRow:u,onSelectedItemChange:f,title:p="Data Table",addButtonText:g="Add New",deleteButtonText:y="Delete",confirmDeleteMessage:m="Are you sure you want to delete this item?",noDataMessage:x="No data available",total:v,currentPage:_,pageSize:j=10,pageSizeOptions:$=[5,10,20,50,100],sortBy:A,sortDirection:k="asc",onPaginationChange:T,isLoading:S=!1,filters:E=[],onFiltersChange:R,showFilterBuilder:z=!0,onFieldChange:F,expandable:X=!0,error:Z=null,minWidth:K}){const{visibleColumns:O,displayData:H,totalPages:B,totalFlex:fe,defaults:U,isAddFormOpen:Y,setIsAddFormOpen:ie,isDeleteDialogOpen:Ae,setIsDeleteDialogOpen:Te,validationErrors:_e,setValidationErrors:xe,isFilterBuilderOpen:ve,setIsFilterBuilderOpen:ne,isFormLoading:ye,selectedItem:D,setSelectedItem:he,addFormData:Q,setAddFormData:Se,editFormData:Ee,expandedRows:re,loadingDetails:G,detailedData:me,handleSort:N,handlePageChange:se,handlePageSizeChange:we,handleAddFormInputChange:ze,handleAdd:We,handleDelete:Ke,openDeleteDialog:pe,toggleExpandedRow:ke,handleInlineEditFormChange:Fe,handleInlineSave:ce,handleQuickEdit:Re}=e_({data:e,columns:n,currentPage:_,pageSize:j,total:v,sortBy:A,sortDirection:k,onPaginationChange:T,onAdd:r,onEdit:o,onDelete:l,onView:c,onSelectedItemChange:f,onFieldChange:F,renderExpandedRow:u}),[Me,Ge]=a.useState(null),et=!!Z&&Z!==Me,[ht,Ct]=a.useState(!1),[gn,Ft]=a.useState(!1),Lt=a.useCallback(nt=>{ve&&nt.propertyName==="max-height"&&Ct(!0)},[ve]),pr=a.useCallback(nt=>{Y&&nt.propertyName==="max-height"&&Ft(!0)},[Y]);return a.useEffect(()=>{!ve&&ht&&Ct(!1)},[ve,ht]),a.useEffect(()=>{!Y&&gn&&Ft(!1)},[Y,gn]),d.jsxs(I,{fw:!0,display:"flex",flexDirection:"column",gap:"md",minWidth:0,children:[d.jsxs(I,{display:"flex",alignItems:"center",justifyContent:"space-between",px:"md",py:"sm",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"bold",children:p}),d.jsxs(I,{display:"flex",gap:"sm",children:[z&&R&&d.jsx(ot,{text:`Filters${E&&E.length>0?` (${E.length})`:""}`,variant:"outlined",icon:W1,onClick:()=>{const nt=!ve;ne(nt),nt&&ie(!1)},color:E&&E.length>0?"primary":void 0}),r&&d.jsx(ot,{text:Y?"Cancel":g,icon:B1,variant:Y?"outlined":"solid",onClick:()=>{const nt=!Y;ie(nt),nt&&(ne(!1),Se(U))}})]})]}),d.jsx(Ls,{open:et,onClose:()=>Ge(Z??null),bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",color:"danger",children:"Error"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:Z}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"OK",onClick:()=>Ge(Z??null)})})]})}),z&&R&&d.jsx(I,{mx:"md",mb:ve?"md":"none",bgColor:"backgroundPurple",borderRadius:"md",padding:ve?"md":"none",overflow:ht?"visible":"hidden",maxHeight:ve?"1000px":"0",opacity:ve?1:0,transition:"all 300ms ease-in-out",onTransitionEnd:Lt,children:d.jsx(Bh,{columns:n,filters:E||[],onFiltersChange:R})}),r&&d.jsx(I,{mx:"md",mb:Y?"md":"none",bgColor:"backgroundPurple",borderRadius:"md",padding:Y?"md":"none",overflow:gn?"visible":"hidden",maxHeight:Y?"1000px":"0",opacity:Y?1:0,transition:"all 300ms ease-in-out",onTransitionEnd:pr,children:d.jsx(Wh,{columns:n,formData:Q,isLoading:ye,onInputChange:ze,onSubmit:We,onCancel:()=>{ie(!1),Se(U)}})}),d.jsx(eo,{loading:S,size:"lg",children:d.jsx(q5,{children:d.jsxs(W5,{$minWidth:K,children:[d.jsx(H5,{children:d.jsx(t_,{columns:O,totalFlex:fe,sortBy:A,sortDirection:k,onSort:N})}),d.jsx(B5,{children:H.length===0?d.jsx(ks,{children:d.jsx(G5,{colSpan:O.length,children:x})}):X===!1?H.map(nt=>d.jsx(ks,{$isSelected:(D==null?void 0:D.id)===nt.id,$isClickable:!!f,onClick:()=>{he(nt),f==null||f(nt)},children:O.map(nn=>{const zn=nt[nn.key],Jn=`${Number(nn.flex||1)/fe*100}%`;return d.jsx(Dh,{width:Jn,children:nn.render?nn.render(zn,nt):wc(zn,nn)},String(nn.key))})},String(nt.id))):H.map(nt=>d.jsx(Ph,{item:nt,columns:O,allColumns:n,expandedRows:re,editFormData:Ee,loadingDetails:G,isFormLoading:ye,isEditable:!!o,isExpandAccordion:!u,isSelected:(D==null?void 0:D.id)===nt.id,onToggleExpanded:ke,onEditFormChange:Fe,onSave:ce,onDelete:l?pe:void 0,onQuickEdit:o?Re:void 0},String(nt.id)))})]})})}),(B>1||$.length>1)&&d.jsx(n_,{currentPage:_,pageSize:j,total:v,totalPages:B,pageSizeOptions:$,onPageChange:se,onPageSizeChange:we}),d.jsx(Hh,{open:Ae,onOpenChange:nt=>{Te(nt),nt||he(null)},onConfirm:Ke,isLoading:ye,message:m,deleteButtonText:y}),d.jsx(r_,{errors:_e,onClose:()=>xe([])}),D&&u&&u(D,me[D==null?void 0:D.id])]})}const o_=({children:e,description:n,placement:r,backgroundColor:o,color:l})=>{const c=je(),u=c.__hd__.tooltip,f=r??u.defaultPlacement,p=o??u.defaultBackgroundColor,g=l??u.defaultTextColor,y=a.useRef(null),m=Rs(y),x=u.positioning.placements[f];return d.jsxs(I,{display:"inline-block",position:"relative",ref:y,children:[e,m&&d.jsx(I,{position:"absolute",bgColor:p,p:u.container.padding,r:u.container.borderRadius,boxShadow:u.container.shadow,zIndex:c.zIndex.getZIndex("AIC_Kits_Tooltip"),width:"max-content",maxWidth:u.container.maxWidth,...x,children:d.jsx(Oe,{color:g,fontSize:u.text.fontSize,children:n})})]})},s_=On`
781
+ `),j=Number(m.flex||1)/y*100,$=!!(m.headerEditable&&f===m.key);return d.jsx(U5,{$width:`${j}%`,$isEditing:$,children:d.jsx(I,{whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis",children:m.headerEditable&&o?f===m.key?m.type==="select"&&m.options?d.jsx(I,{ref:g,onClick:A=>A.stopPropagation(),position:"absolute",zIndex:50,left:0,top:"100%",marginTop:"xs",width:"176px",borderRadius:"md",borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:m.options.map(A=>d.jsx(at,{onMouseDown:k=>k.preventDefault(),onClick:()=>{u?u(e,m.key,A.value):(l(e.id,m.key,A.value),c(e)),p(null)},useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",width:"100%",py:"sm",px:"md",children:d.jsx(Oe,{fontSize:"small",children:A.label})},A.value))}):d.jsx(In,{value:String(e[m.key]??""),onChange:A=>{l(e.id,m.key,A)},onBlur:()=>{p(null),c(e)}}):d.jsx(at,{onClick:A=>{A.stopPropagation(),p(m.key)},useScaleAnimation:!1,children:m.href||m.type==="link"&&x?d.jsx(at,{href:m.href?m.href(e):String(x),target:"_blank",rel:"noopener noreferrer",onClick:A=>A.stopPropagation(),useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",children:d.jsx(Oe,{color:"primary",children:v})}):_?d.jsx(Cf,{children:v}):m.tagColor?d.jsx(Dl,{color:m.tagColor,children:v}):d.jsx("span",{children:v})}):m.href||m.type==="link"&&x?d.jsx(at,{href:m.href?m.href(e):String(x),target:"_blank",rel:"noopener noreferrer",onClick:A=>A.stopPropagation(),useScaleAnimation:!1,useOpacityAnimation:!1,display:"block",overflow:"hidden",textOverflow:"ellipsis",whiteSpace:"nowrap",children:d.jsx(Oe,{color:"primary",children:v})}):_?d.jsx(Cf,{children:v}):m.tagColor?d.jsx(Dl,{color:m.tagColor,size:"sm",children:v}):d.jsx("span",{children:v})})},String(m.key))})})})})})}function Ph({item:e,columns:n,allColumns:r,expandedRows:o,editFormData:l,loadingDetails:c,isFormLoading:u,isEditable:f=!0,isExpandAccordion:p=!0,isSelected:g=!1,onToggleExpanded:y,onEditFormChange:m,onSave:x,onDelete:v,onQuickEdit:_}){const j=a.useMemo(()=>{const k=l[e.id];return k?Object.keys(k).some(T=>{const S=k[T],E=e[T];return Array.isArray(S)&&Array.isArray(E)?JSON.stringify(S)!==JSON.stringify(E):S!==E}):!1},[l,e]),$=()=>d.jsx(K5,{item:e,columns:n,isSelected:g,isEditable:f,onEditFormChange:m,onSave:x,onQuickEdit:_}),A=()=>d.jsx(P5,{item:e,allColumns:r,editFormData:l,loadingDetails:c,isFormLoading:u,isEditable:f,hasChanges:j,onEditFormChange:m,onSave:x,onToggleExpanded:y,onDelete:v});return d.jsx(ks,{$isSelected:g,children:d.jsx(Z5,{colSpan:n.length,children:p?d.jsx(xh,{expanded:o.has(e.id),onExpandedChange:()=>y(e),iconPosition:"none",renderHeader:$,renderContent:A,borderRadius:"none",borderWidth:"none",padding:"none",paddingInline:"none"}):d.jsx(at,{onClick:()=>y(e),useScaleAnimation:!1,children:$()})})})}function Wh({columns:e,formData:n,isLoading:r,onInputChange:o,onSubmit:l,onCancel:c}){return d.jsxs(d.Fragment,{children:[d.jsx(_c,{columns:e,getValue:u=>n[u.key],onChange:(u,f)=>o(u.key,f),disabled:!1,formData:n,filterColumn:u=>u.editable!==!1&&u.key!=="id"}),d.jsxs(I,{display:"flex",justifyContent:"flex-end",gap:"sm",pt:"md",mt:"md",borderTopWidth:"thin",borderColor:"grey300",children:[d.jsx(ot,{text:r?"Adding...":"Add Item",onClick:l,disabled:r,loading:r}),d.jsx(ot,{text:"Cancel",variant:"outlined",onClick:c,disabled:r})]})]})}const Y5="Are you sure you want to delete this item?",X5="Delete",Hh=({open:e,onOpenChange:n,onConfirm:r,isLoading:o=!1,message:l=Y5,deleteButtonText:c=X5})=>{const u=()=>{o||n(!1)},f=()=>{r()};return d.jsx(Ls,{open:e,onClose:u,bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",children:"Confirm Delete"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:l}),d.jsxs(I,{display:"flex",justifyContent:"flex-end",gap:"sm",mt:"md",children:[d.jsx(ot,{text:"Cancel",variant:"outlined",onClick:u,disabled:o}),d.jsx(ot,{text:o?"Deleting...":c,color:"danger",onClick:f,disabled:o,loading:o})]})]})})};function Bh({columns:e,filters:n,onFiltersChange:r,borderRadius:o="md"}){const[l,c]=a.useState({}),u=a.useRef(new Set),f=a.useRef(new Set),p=a.useRef(!1),g=a.useRef(null),y=a.useRef(r),m=a.useRef(n),x=a.useRef(e);a.useEffect(()=>{y.current=r,m.current=n,x.current=e},[r,n,e]);const v=a.useCallback(S=>{switch(S.filterType||S.type){case"select":case"searchSelect":case"boolean":case"inlinepairselect":return"equals";case"checkboxes":case"inlinemultiselect":return"contains";case"number":case"date":return"greater_equal";case"text":case"email":default:return"contains"}},[]),_=a.useCallback(S=>{const E=[],R=x.current;return Object.entries(S).forEach(([z,F])=>{const X=F.value!=null&&String(F.value).trim()!=="",Z=F.valueEnd!=null&&String(F.valueEnd).trim()!=="";if(X||Z){const K=R.find(O=>String(O.key)===z);if(K){if((K.filterType||K.type)==="inlinepairselect"&&!(X&&Z))return;const H=K.filterKey||K.key;E.push({id:`filter-${z}`,column:H,operator:v(K),value:F.value||"",valueEnd:F.valueEnd||void 0,relation:K.filterRelation})}}}),E},[v]);a.useEffect(()=>{if(p.current){n.length===0&&(p.current=!1);return}const S={},E=x.current;n.forEach(R=>{const z=String(R.column),F=E.find(O=>(O.filterKey||String(O.key))===z),X=F?String(F.key):z,Z=R.value!=null&&String(R.value).trim()!=="",K=R.valueEnd!=null&&String(R.valueEnd).trim()!=="";(Z||K)&&(S[X]={value:R.value,valueEnd:R.valueEnd})}),c(R=>{const z={...S};return u.current.forEach(F=>{F in R&&(R[F]?z[F]=R[F]:delete z[F])}),f.current.forEach(F=>{F in R&&(R[F]?z[F]=R[F]:delete z[F])}),z})},[n]),a.useEffect(()=>{g.current&&clearTimeout(g.current);const S=setTimeout(()=>{if(g.current=null,u.current.size>0)return;const E=_(l),R=m.current;(()=>{if(E.length!==R.length)return!0;const F=[...E].sort((Z,K)=>String(Z.column).localeCompare(String(K.column))),X=[...R].sort((Z,K)=>String(Z.column).localeCompare(String(K.column)));return!F.every((Z,K)=>{const O=X[K];return String(Z.column)===String(O.column)&&Z.value===O.value&&Z.valueEnd===O.valueEnd})})()?y.current(E):f.current.clear()},500);return g.current=S,()=>{clearTimeout(S),g.current=null}},[l,_]);const j=a.useCallback((S,E,R=!1,z=!1)=>{f.current.add(S),z&&(u.current.add(S),g.current&&(clearTimeout(g.current),g.current=null)),c(F=>{const X=F[S]||{value:""},Z={...F,[S]:R?{...X,valueEnd:E}:{...X,value:E}};return z&&setTimeout(()=>{const K=_(Z);y.current(K),u.current.delete(S)},0),Z})},[_]),$=a.useCallback((S,E=!1)=>{c(R=>{var X,Z;const z=R[S];if(!((X=z==null?void 0:z.value)!=null&&X.trim())&&!((Z=z==null?void 0:z.valueEnd)!=null&&Z.trim()))return R;f.current.add(S),E&&(u.current.add(S),g.current&&(clearTimeout(g.current),g.current=null));const F={...R,[S]:{value:""}};return E&&setTimeout(()=>{const K=_(F);y.current(K),u.current.delete(S)},0),F})},[_]),A=a.useCallback(()=>{p.current=!0,g.current&&(clearTimeout(g.current),g.current=null),c({}),y.current([]),f.current.clear(),u.current.clear()},[]),k=a.useCallback(S=>{if(!S)return;const E=new Date(S);if(!isNaN(E.getTime()))return{date:E,timezone:null}},[]),T=a.useCallback((S,E,R)=>{if(!(E!=null&&E.date)){$(S,!0);return}const z=E.date,F=z.getFullYear(),X=String(z.getMonth()+1).padStart(2,"0"),Z=String(z.getDate()).padStart(2,"0");j(S,`${F}-${X}-${Z}`,R,!0)},[j,$]);return d.jsxs(d.Fragment,{children:[d.jsx(Yn,{container:!0,columns:{xs:3,sm:6,lg:9},spacing:"md",children:e.filter(S=>S.key!=="id").filter(S=>S.key!=="select").filter(S=>S.key!=="actions").map(S=>{var Z,K;const E=String(S.key),R=((Z=l[E])==null?void 0:Z.value)??"",z=((K=l[E])==null?void 0:K.valueEnd)??"",F=S.filterType||S.type;if(F==="none")return null;const X=F==="date";return d.jsx(Yn,{size:3,children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"xs",height:"100%",children:[d.jsx(Oe,{fontSize:"small",fontWeight:"medium",color:"grey700",children:S.header||E}),d.jsxs(I,{display:"flex",alignItems:"center",gap:"xs",flex:"1",children:[X&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(Ds,{range:!0,isFixedPosition:!0,startValue:k(R),endValue:k(z),onStartChange:O=>T(E,O,!1),onEndChange:O=>T(E,O,!0)})}),F==="number"&&d.jsxs(I,{display:"flex",flexDirection:"row",alignItems:"center",gap:"sm",flex:"2",minWidth:"0",children:[d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{type:"number",borderRadius:o,bgColor:"white",value:R,onChange:O=>j(E,O),placeholder:"Min"})}),d.jsx(Oe,{color:"grey500",children:"-"}),d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{type:"number",borderRadius:o,bgColor:"white",value:z,onChange:O=>j(E,O,!0),placeholder:"Max"})})]}),F==="select"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All"})}),F==="searchSelect"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(Eh,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All",searchPlaceholder:S.searchPlaceholder,onSearchTermChange:S.onSearchTermChange})}),F==="boolean"&&d.jsx(I,{flex:"1",minWidth:"0",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"sm",px:"sm",py:"sm",height:"100%",borderRadius:o,borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:d.jsx(Fs.Group,{value:R||"",onChange:O=>{const H=String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},{value:"true",label:"Yes"},{value:"false",label:"No"}]})}),F==="checkboxes"&&(S.filterOptions||S.options)&&d.jsx(I,{flex:"1",minWidth:"0",display:"flex",flexWrap:"wrap",alignItems:"center",gap:"sm",px:"sm",py:"sm",height:"100%",borderRadius:o,borderWidth:"thin",borderColor:"grey300",bgColor:"white",children:(S.filterOptions||S.options).map(O=>{const H=R?R.split(","):[],B=H.includes(O.value);return d.jsx(fc,{checked:B,onChange:fe=>{const U=[...H];if(fe)U.includes(O.value)||U.push(O.value);else{const ie=U.indexOf(O.value);ie>-1&&U.splice(ie,1)}const Y=U.join(",");Y===""?$(E,!0):j(E,Y,!1,!0)},label:O.label,size:"sm"},O.value)})}),F==="inlinemultiselect"&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):j(E,H,!1,!0)},options:[{value:"",label:"All"},...S.filterBy==="group"&&S.groupOptions?S.groupOptions.map(O=>({value:O.values.join(","),label:O.label})):(S.filterOptions||S.options||[]).map(O=>({value:O.value,label:O.label}))],placeholder:"All"})}),F==="inlinepairselect"&&S.pairOptions&&d.jsxs(I,{display:"flex",alignItems:"center",gap:"sm",flex:"1",minWidth:"0",children:[d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",value:R||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):z?j(E,H,!1,!0):(f.current.add(E),c(B=>({...B,[E]:{...B[E],value:H}})))},options:[{value:"",label:"All"},...S.pairOptions.primaryOptions.map(O=>({value:O.value,label:O.label}))],placeholder:S.pairOptions.primaryPlaceholder||"Primary"})}),d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(qn,{borderRadius:o,bgColor:"white",disabled:!R,value:z||void 0,onChange:O=>{const H=O==null?"":String(O);H===""?$(E,!0):R?j(E,H,!0,!0):(f.current.add(E),c(B=>({...B,[E]:{...B[E],valueEnd:H}})))},options:[{value:"",label:"All"},...S.pairOptions.secondaryOptions.map(O=>({value:O.value,label:O.label}))],placeholder:S.pairOptions.secondaryPlaceholder||"Secondary"})})]}),(!F||F==="text"||F==="email")&&d.jsx(I,{flex:"1",minWidth:"0",children:d.jsx(In,{borderRadius:o,bgColor:"white",value:R,onChange:O=>j(E,O),placeholder:"Contains..."})}),d.jsx(at,{onClick:()=>$(E,!0),useScaleAnimation:!0,useOpacityAnimation:!0,cursor:"pointer",alignItems:"center",flexShrink:0,ml:"xs",children:d.jsx(bt,{type:"icon",art:N1,color:"primary",weight:"regular",size:"sm"})})]})]})},E)})}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"Clear All",variant:"outlined",onClick:A,disabled:!Object.values(l).some(S=>{var E,R;return((E=S.value)==null?void 0:E.trim())||((R=S.valueEnd)==null?void 0:R.trim())})})})]})}function Q5(e){const n=e.getCurrentPage(),r=e.getPageSize(),o=e.getSortBy(),l=e.getSortDirection(),c=a.useMemo(()=>e.getFilters(),[e]),u=a.useCallback(p=>{e.setPagination(p)},[e]),f=a.useCallback(p=>{e.setFilters(p)},[e]);return{currentPage:n,pageSize:r,sortBy:o,sortDirection:l,filters:c,onPaginationChange:u,onFiltersChange:f}}function J5(e){const[n,r]=a.useState(1),[o,l]=a.useState((e==null?void 0:e.defaultPageSize)??10),[c,u]=a.useState((e==null?void 0:e.defaultSortBy)??""),[f,p]=a.useState((e==null?void 0:e.defaultSortDirection)??"asc"),[g,y]=a.useState([]);return a.useMemo(()=>({getCurrentPage:()=>n,getPageSize:()=>o,getSortBy:()=>c,getSortDirection:()=>f,getFilters:()=>g,setPagination:m=>{m.page!==void 0&&r(m.page),m.pageSize!==void 0&&l(m.pageSize),m.sortBy!==void 0&&u(m.sortBy),m.sortDirection!==void 0&&p(m.sortDirection)},setFilters:y}),[n,o,c,f,g])}function e_({data:e,columns:n,currentPage:r,pageSize:o,total:l,sortBy:c,sortDirection:u,onPaginationChange:f,onAdd:p,onEdit:g,onDelete:y,onView:m,onSelectedItemChange:x,onFieldChange:v,renderExpandedRow:_}){const[j,$]=a.useState(!1),[A,k]=a.useState(!1),[T,S]=a.useState([]),[E,R]=a.useState(null),z=a.useMemo(()=>{const pe={};for(const ke of n)if(ke.key!=="select"&&ke.defaultValue!==void 0){const Fe=pe;Fe[ke.key]=ke.defaultValue}return pe},[n]),[F,X]=a.useState(z),[Z,K]=a.useState(!1),[O,H]=a.useState(!1),[B,fe]=a.useState(new Set),[U,Y]=a.useState({}),[ie,Ae]=a.useState(new Set),[Te,_e]=a.useState(new Set),[xe,ve]=a.useState({}),ne=n.filter(pe=>!pe.hiddenInHeader),ye=Math.ceil(l/o),D=e,he=ne.reduce((pe,ke)=>pe+Number(ke.flex||1),0),Q=a.useCallback(pe=>{const ke=c===String(pe)&&u==="asc"?"desc":"asc";f({page:r,pageSize:o,sortBy:String(pe),sortDirection:ke})},[c,u,r,o,f]),Se=a.useCallback(pe=>{const ke=Math.max(1,Math.min(pe,ye));f({page:ke,pageSize:o,sortBy:c,sortDirection:u})},[ye,o,c,u,f]),Ee=a.useCallback(pe=>{f({page:1,pageSize:pe,sortBy:c,sortDirection:u})},[c,u,f]),re=a.useCallback((pe,ke)=>{X(Fe=>{let ce={...Fe,[pe]:ke};return v&&(ce=v(ce,pe,ke)),ce})},[v]),G=a.useCallback(async()=>{if(!p)return;const ke=n.filter(Fe=>Fe.required===!0).filter(Fe=>{if(Fe.key==="select")return!1;const ce=F[Fe.key];return ce==null||ce===""});if(ke.length>0){S(ke.map(Fe=>Fe.header));return}K(!0);try{await p(F),$(!1),X(z),f({page:r,pageSize:o,sortBy:c,sortDirection:u})}catch(Fe){console.error("Error adding item:",Fe)}finally{K(!1)}},[p,n,F,z,r,o,c,u,f]),me=a.useCallback(async()=>{if(!(!y||!E)){K(!0);try{await y(E.id),k(!1),R(null),f({page:r,pageSize:o,sortBy:c,sortDirection:u})}catch(pe){console.error("Error deleting item:",pe)}finally{K(!1)}}},[y,E,r,o,c,u,f]),N=a.useCallback(pe=>{R(pe),k(!0)},[]),se=a.useCallback(async pe=>{if(_){x&&x(pe),(E==null?void 0:E.id)===pe.id?R(null):R(pe);return}const ke=pe.id,Fe=new Set(B),ce=new Set(Te);if(Fe.has(ke))Fe.delete(ke),ce.delete(ke),ve(Re=>{const Me={...Re};return delete Me[ke],Me});else if(Fe.add(ke),ce.add(ke),ve(Re=>({...Re,[ke]:{}})),m&&!U[ke]&&!ie.has(ke)){Ae(Re=>{const Me=new Set(Re);return Me.add(ke),Me});try{const Re=await m(ke);Y(Me=>({...Me,[ke]:Re}))}catch(Re){console.error("Error fetching detailed data:",Re)}finally{Ae(Re=>{const Me=new Set(Re);return Me.delete(ke),Me})}}fe(Fe),_e(ce)},[_,x,E,B,Te,m,U,ie]),we=a.useRef(se);we.current=se;const ze=a.useCallback((pe,ke,Fe)=>{ve(ce=>{let Me={...ce[pe]||{},[ke]:Fe};return v&&(Me=v(Me,ke,Fe)),{...ce,[pe]:Me}})},[v]),We=a.useCallback(pe=>{if(g&&xe[pe.id]){const ke={...pe,...xe[pe.id]},ce=n.filter(Re=>Re.required===!0).filter(Re=>{if(Re.key==="select")return!1;const Me=ke[Re.key];return Me==null||Me===""});if(ce.length>0){S(ce.map(Re=>Re.header));return}B.has(pe.id)&&we.current(pe);try{const Re=g(pe.id,xe[pe.id]);Re instanceof Promise&&Re.catch(Me=>{console.error("Error updating item:",Me)})}catch(Re){console.error("Error updating item:",Re)}}},[g,xe,B,n]),Ke=a.useCallback((pe,ke,Fe)=>{if(g)try{const ce=g(pe.id,{[ke]:Fe});ce instanceof Promise&&ce.catch(Re=>{console.error("Error quick editing item:",Re)})}catch(ce){console.error("Error quick editing item:",ce)}},[g]);return{visibleColumns:ne,displayData:D,totalPages:ye,totalFlex:he,defaults:z,isAddFormOpen:j,setIsAddFormOpen:$,isDeleteDialogOpen:A,setIsDeleteDialogOpen:k,validationErrors:T,setValidationErrors:S,isFilterBuilderOpen:O,setIsFilterBuilderOpen:H,isFormLoading:Z,selectedItem:E,setSelectedItem:R,addFormData:F,setAddFormData:X,editFormData:xe,expandedRows:B,loadingDetails:ie,detailedData:U,handleSort:Q,handlePageChange:Se,handlePageSizeChange:Ee,handleAddFormInputChange:re,handleAdd:G,handleDelete:me,openDeleteDialog:N,toggleExpandedRow:se,handleInlineEditFormChange:ze,handleInlineSave:We,handleQuickEdit:Ke}}function t_({columns:e,totalFlex:n,sortBy:r,sortDirection:o,onSort:l}){const c=je();return d.jsx(ks,{children:e.map(u=>{const f=Number(u.flex||1)/n*100,p=r===String(u.key)?o:!1;return d.jsx(V5,{$sortable:u.sortable,$width:`${f}%`,onClick:()=>u.sortable&&l(u.key),children:d.jsxs(I,{display:"flex",alignItems:"center",gap:"xs",children:[d.jsx(Oe,{color:"grey600",fontSize:"medium",fontWeight:"bold",children:u.header}),u.sortable&&p&&(p==="asc"?d.jsx(F1,{size:12,weight:"bold",color:c.colors.primary}):d.jsx(z1,{size:12,weight:"bold",color:c.colors.primary}))]})},String(u.key))})})}function n_({currentPage:e,pageSize:n,total:r,totalPages:o,pageSizeOptions:l,onPageChange:c,onPageSizeChange:u}){return d.jsxs(I,{display:"flex",alignItems:"center",justifyContent:"space-between",flexWrap:"wrap",gap:"md",px:"md",py:"sm",children:[d.jsxs(I,{display:"flex",alignItems:"center",gap:"md",children:[d.jsxs(Oe,{fontSize:"small",color:"grey500",children:["Showing ",(e-1)*n+1," to"," ",Math.min(e*n,r)," of ",r," results"]}),d.jsxs(I,{display:"flex",alignItems:"center",gap:"sm",children:[d.jsx(I,{whiteSpace:"nowrap",children:d.jsx(Oe,{fontSize:"small",color:"grey500",children:"Rows per page:"})}),d.jsx(qn,{value:String(n),onChange:f=>u(Number(f)),options:l.map(f=>({value:String(f),label:String(f)}))})]})]}),d.jsxs(I,{display:"flex",gap:"xs",alignItems:"center",children:[d.jsx(ot,{variant:"outlined",size:"sm",icon:ec,onClick:()=>c(1),disabled:e===1}),d.jsx(ot,{variant:"outlined",size:"sm",icon:Qi,onClick:()=>c(e-1),disabled:e===1}),d.jsx(I,{px:"sm",children:d.jsxs(Oe,{fontSize:"small",color:"grey700",children:["Page ",e," of ",o]})}),d.jsx(ot,{variant:"outlined",size:"sm",icon:Dr,onClick:()=>c(e+1),disabled:e===o}),d.jsx(ot,{variant:"outlined",size:"sm",icon:tc,onClick:()=>c(o),disabled:e===o})]})]})}const r_=({errors:e,onClose:n})=>e.length===0?null:d.jsx(Ls,{open:e.length>0,onClose:n,bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",children:"Required Fields Missing"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:"Please fill in the following required fields:"}),d.jsx(I,{display:"flex",flexDirection:"column",gap:"xs",children:e.map(r=>d.jsxs(Oe,{fontSize:"small",color:"danger",children:["• ",r]},r))}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"OK",onClick:n})})]})});function i_({data:e,columns:n,onAdd:r,onEdit:o,onDelete:l,onView:c,renderExpandedRow:u,onSelectedItemChange:f,title:p="Data Table",addButtonText:g="Add New",deleteButtonText:y="Delete",confirmDeleteMessage:m="Are you sure you want to delete this item?",noDataMessage:x="No data available",total:v,currentPage:_,pageSize:j=10,pageSizeOptions:$=[5,10,20,50,100],sortBy:A,sortDirection:k="asc",onPaginationChange:T,isLoading:S=!1,filters:E=[],onFiltersChange:R,showFilterBuilder:z=!0,onFieldChange:F,expandable:X=!0,error:Z=null,minWidth:K}){const{visibleColumns:O,displayData:H,totalPages:B,totalFlex:fe,defaults:U,isAddFormOpen:Y,setIsAddFormOpen:ie,isDeleteDialogOpen:Ae,setIsDeleteDialogOpen:Te,validationErrors:_e,setValidationErrors:xe,isFilterBuilderOpen:ve,setIsFilterBuilderOpen:ne,isFormLoading:ye,selectedItem:D,setSelectedItem:he,addFormData:Q,setAddFormData:Se,editFormData:Ee,expandedRows:re,loadingDetails:G,detailedData:me,handleSort:N,handlePageChange:se,handlePageSizeChange:we,handleAddFormInputChange:ze,handleAdd:We,handleDelete:Ke,openDeleteDialog:pe,toggleExpandedRow:ke,handleInlineEditFormChange:Fe,handleInlineSave:ce,handleQuickEdit:Re}=e_({data:e,columns:n,currentPage:_,pageSize:j,total:v,sortBy:A,sortDirection:k,onPaginationChange:T,onAdd:r,onEdit:o,onDelete:l,onView:c,onSelectedItemChange:f,onFieldChange:F,renderExpandedRow:u}),[Me,Ge]=a.useState(null),et=!!Z&&Z!==Me,[ht,Ct]=a.useState(!1),[gn,Ft]=a.useState(!1),Lt=a.useCallback(nt=>{ve&&nt.propertyName==="max-height"&&Ct(!0)},[ve]),pr=a.useCallback(nt=>{Y&&nt.propertyName==="max-height"&&Ft(!0)},[Y]);return a.useEffect(()=>{!ve&&ht&&Ct(!1)},[ve,ht]),a.useEffect(()=>{!Y&&gn&&Ft(!1)},[Y,gn]),d.jsxs(I,{fw:!0,display:"flex",flexDirection:"column",gap:"md",minWidth:0,children:[d.jsxs(I,{display:"flex",alignItems:"center",justifyContent:"space-between",px:"md",py:"sm",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"bold",children:p}),d.jsxs(I,{display:"flex",gap:"sm",children:[z&&R&&d.jsx(ot,{text:`Filters${E&&E.length>0?` (${E.length})`:""}`,variant:"outlined",icon:W1,onClick:()=>{const nt=!ve;ne(nt),nt&&ie(!1)},color:E&&E.length>0?"primary":void 0}),r&&d.jsx(ot,{text:Y?"Cancel":g,icon:B1,variant:Y?"outlined":"solid",onClick:()=>{const nt=!Y;ie(nt),nt&&(ne(!1),Se(U))}})]})]}),d.jsx(Ls,{open:et,onClose:()=>Ge(Z??null),bgColor:"white",borderRadius:"lg",padding:"lg",maxWidth:"480px",width:"90%",children:d.jsxs(I,{display:"flex",flexDirection:"column",gap:"md",children:[d.jsx(Oe,{fontSize:"large",fontWeight:"semibold",color:"danger",children:"Error"}),d.jsx(Oe,{fontSize:"small",color:"grey600",children:Z}),d.jsx(I,{display:"flex",justifyContent:"flex-end",mt:"md",children:d.jsx(ot,{text:"OK",onClick:()=>Ge(Z??null)})})]})}),z&&R&&d.jsx(I,{mx:"md",mb:ve?"md":"none",bgColor:"backgroundPurple",borderRadius:"md",padding:ve?"md":"none",overflow:ht?"visible":"hidden",maxHeight:ve?"1000px":"0",opacity:ve?1:0,transition:"all 300ms ease-in-out",onTransitionEnd:Lt,children:d.jsx(Bh,{columns:n,filters:E||[],onFiltersChange:R})}),r&&d.jsx(I,{mx:"md",mb:Y?"md":"none",bgColor:"backgroundPurple",borderRadius:"md",padding:Y?"md":"none",overflow:gn?"visible":"hidden",maxHeight:Y?"1000px":"0",opacity:Y?1:0,transition:"all 300ms ease-in-out",onTransitionEnd:pr,children:d.jsx(Wh,{columns:n,formData:Q,isLoading:ye,onInputChange:ze,onSubmit:We,onCancel:()=>{ie(!1),Se(U)}})}),d.jsx(eo,{loading:S,size:"lg",children:d.jsx(q5,{$scrollable:!!K,children:d.jsxs(W5,{$minWidth:K,children:[d.jsx(H5,{children:d.jsx(t_,{columns:O,totalFlex:fe,sortBy:A,sortDirection:k,onSort:N})}),d.jsx(B5,{children:H.length===0?d.jsx(ks,{children:d.jsx(G5,{colSpan:O.length,children:x})}):X===!1?H.map(nt=>d.jsx(ks,{$isSelected:(D==null?void 0:D.id)===nt.id,$isClickable:!!f,onClick:()=>{he(nt),f==null||f(nt)},children:O.map(nn=>{const zn=nt[nn.key],Jn=`${Number(nn.flex||1)/fe*100}%`;return d.jsx(Dh,{width:Jn,children:nn.render?nn.render(zn,nt):wc(zn,nn)},String(nn.key))})},String(nt.id))):H.map(nt=>d.jsx(Ph,{item:nt,columns:O,allColumns:n,expandedRows:re,editFormData:Ee,loadingDetails:G,isFormLoading:ye,isEditable:!!o,isExpandAccordion:!u,isSelected:(D==null?void 0:D.id)===nt.id,onToggleExpanded:ke,onEditFormChange:Fe,onSave:ce,onDelete:l?pe:void 0,onQuickEdit:o?Re:void 0},String(nt.id)))})]})})}),(B>1||$.length>1)&&d.jsx(n_,{currentPage:_,pageSize:j,total:v,totalPages:B,pageSizeOptions:$,onPageChange:se,onPageSizeChange:we}),d.jsx(Hh,{open:Ae,onOpenChange:nt=>{Te(nt),nt||he(null)},onConfirm:Ke,isLoading:ye,message:m,deleteButtonText:y}),d.jsx(r_,{errors:_e,onClose:()=>xe([])}),D&&u&&u(D,me[D==null?void 0:D.id])]})}const o_=({children:e,description:n,placement:r,backgroundColor:o,color:l})=>{const c=je(),u=c.__hd__.tooltip,f=r??u.defaultPlacement,p=o??u.defaultBackgroundColor,g=l??u.defaultTextColor,y=a.useRef(null),m=Rs(y),x=u.positioning.placements[f];return d.jsxs(I,{display:"inline-block",position:"relative",ref:y,children:[e,m&&d.jsx(I,{position:"absolute",bgColor:p,p:u.container.padding,r:u.container.borderRadius,boxShadow:u.container.shadow,zIndex:c.zIndex.getZIndex("AIC_Kits_Tooltip"),width:"max-content",maxWidth:u.container.maxWidth,...x,children:d.jsx(Oe,{color:g,fontSize:u.text.fontSize,children:n})})]})},s_=On`
782
782
  from {
783
783
  opacity: 0;
784
784
  }