@lax-wp/design-system 0.14.26 → 0.14.28
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/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.es.js +1 -1
- package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/types.d.ts +1 -1
- package/package.json +1 -1
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),Re=require("../../../../../hooks/useTheme.cjs.js"),S=require("../../../../../utils/formatters.cjs.js"),Ie=require("../../../../../constants/table.cjs.js"),Oe=require("../../../../../providers/design-system-provider/hooks.cjs.js"),U=require("../../../../tooltip/Tooltip.cjs.js"),Ve=require("../../../typography/Typography.cjs.js"),qe=require("@mui/icons-material"),k=require("../../../../../_virtual/index.cjs.js"),a=require("react"),ze=require("react-router-dom"),Ae=require("../../context.cjs.js"),Fe=require("./InlineEditField.cjs.js"),C=require("../../constants.cjs.js"),g=require("../../../../icon/icons.generated.cjs.js");let Y;const se=e=>{const t=Number(e);if(Number.isNaN(t)||e===null||e===void 0)return"0ms";if(t>=864e5){const p=Math.floor(t/864e5),f=Math.floor(t%864e5/36e5),i=Math.floor(t%36e5/6e4),b=Math.floor(t%6e4/1e3);return`${p}d ${f}h ${i}m ${b}s`}if(t>=36e5){const p=Math.floor(t/36e5),f=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3);return`${p}h ${f}m ${i}s`}if(t>=6e4){const p=Math.floor(t/6e4),f=Math.floor(t%6e4/1e3);return`${p}m ${f}s`}return t>=1e3?`${(t/1e3).toFixed(2)}s`:`${t}ms`},Ee=({children:e,withLink:t,linkTo:p,rowData:f,disableRowClick:i})=>t&&!i?o.jsx(ze.Link,{to:p?.(f?.id,f)||"",children:e}):e,Ke=({cell:e,id:t,nextWidthSum:p,isLastCell:f,rowHovering:i,index:b,isFirstStickyCell:ne,handleCellClick:ue,currentData:y,highlightSubstring:D,is_read:Ue,is_modified:B,is_row_modified:X,is_deleted:R,is_added:I,level:x,inlineEditing:v,isInlineEditing:c,setRowHovering:M,handleCellValueChange:ie,cellRef:le,handleUpdateCellData:ce,registerValidation:me,loadingExpand:de,toggleRowExpand:G,isDraggingOver:fe,isLoading:$,is_incomplete:H,pendingEdit:s,hasPendingEdit:l,pendingValidationError:we})=>{const{cascadingTableConfig:P,originalsOnly:pe,maxLevel:he,showNewItem:Ye,expandedRows:be,rowLinkConfig:O,multiSelectConfig:ye,cellEditing:V,cellEditingValue:q,allowInlineEdit:J,fieldOperationLoading:xe,pendingEdits:ve,selectedRowId:z}=a.useContext(Ae.TableContext),ke=z!=null&&String(z)===String(t),Te=Oe.useTableConfig(),A=(e?.column?.key?e?.row?.original?.__cellMetadata?.[e.column.key]:void 0)?.is_locked??e?.column?.is_locked,F=(e?.column?.key?ve?.[t]?.[e.column.key]?.validationError:null)||we||null,Q=v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled,Ce=xe===`${t}-${e?.column?.id}`,{theme:ge}=Re.useTheme(),_e=ge==="dark",je=a.useCallback(()=>M(t),[M,t]),Le=a.useCallback(()=>M(null),[M]),_=Te?.formatDuration,[n,w]=a.useState(e?.column?.dataType==="duration"&&e?.value?_?_(e.value):se(e.value):e.value),[h,Z]=a.useState(null),[E,Ne]=a.useState(!1),[Se,ee]=a.useState(!1),[De,oe]=a.useState(!1),j=a.useRef(null),L=a.useRef(),N=a.useRef(),{selectedColumnIds:te=[]}=ye||{},re=!Object.prototype.hasOwnProperty.call(e?.column?.meta??{},"shouldHighlight")||e?.column?.meta?.shouldHighlight,ae=a.useCallback(()=>{j.current&&Ne(j.current.scrollWidth>j.current.clientWidth)},[]),K=a.useCallback(r=>{L.current&&clearTimeout(L.current),r?ee(!0):L.current=setTimeout(()=>ee(!1),200)},[]),W=a.useCallback(r=>{N.current&&clearTimeout(N.current),r?oe(!0):N.current=setTimeout(()=>oe(!1),200)},[]),T=k({"bg-amber-100 dark:bg-amber-900/30":l,"bg-neutral-100 dark:bg-black-600":i===t&&!c&&!l&&!(R||y?.is_deleted)&&!(I||y?.is_added),"bg-error-200 dark:bg-error-900":i===t&&!c&&!l&&(R||y?.is_deleted),"bg-success-100 dark:bg-success-800":i===t&&!c&&!l&&(I||y?.is_added),"bg-warning-100 dark:bg-warning-950":i===t&&!c&&!l&&(H||B||X||y?.is_row_modified),"bg-warning-50 dark:bg-orange-900":(H||B||X||y?.is_row_modified)&&!$&&i!==t&&!c&&!l,"bg-error-100 dark:bg-error-975":(R||y?.is_deleted)&&!$&&i!==t&&!c&&!l,"bg-success-50 dark:bg-success-900":(I||y?.is_added)&&!$&&i!==t&&!c&&!l,"bg-primary-50 dark:bg-primary-900":(fe||c)&&!l,"bg-primary-50 dark:bg-primary-800":te?.includes(e.column.id)&&!c&&!l,"bg-primary-100 dark:bg-primary-950":ke&&i!==t&&!c&&!l&&!$,[Ie.getTableRowBgClassNamesByStatus[e?.row?.original?.__rowBgStatus]]:e?.row?.original?.__rowBgStatus&&!c&&!l}),Me=r=>{e.column?.disableRowClick||ue(r)};a.useEffect(()=>(e?.row?.original?.status==="running"&&e.column?.dataType==="duration"&&(Y=setInterval(()=>{const u=new Date(S.formatDate(e?.row?.original?.created_at||e?.row?.original?.executed_on,{withTime:!0,format:"yyyy-MM-dd HH:mm:ss"})),d=Math.abs(new Date().getTime()-new Date(u).getTime());w(_?_(d):se(d))},500)),()=>{Y&&clearInterval(Y)}),[n,e.value,e?.row?.original?.created_at,e?.row?.original?.executed_on,e?.row?.original?.status,e.column?.dataType,_]),a.useEffect(()=>{(e?.column?.tooltipCellKey||e?.column?.type?.toLowerCase()==="url")&&(e?.column?.type?.toLowerCase()==="url"?Z(e?.value):Z(e?.row?.original?.[String(e?.column?.tooltipCellKey)]))},[e?.column?.tooltipCellKey,e?.row?.original,e?.column?.type,e?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="currency")if(s?.value!==void 0){const r=e?.row?.original?.__rawData,u=e?.column?.Header,d=s?.meta?.currency_code||r?.[u]?.currency_code||"USD";w(S.formatCurrency(s.value,d))}else{const r=e?.row?.original?.__rawData,u=e?.column?.Header;w(S.formatCurrency(e?.value,r?.[u]?.currency_code||"USD"))}},[e?.value,e?.column?.type,e?.column?.Header,e?.row?.original?.__rawData,s?.value,s?.meta?.currency_code]),a.useEffect(()=>{e?.column?.type?.toLowerCase()==="percentage"&&(s?.value!==void 0?w(s.value?.toString()+"%"||""):w(e?.value?.toString()+"%"||""))},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";if(["date","datetime"].includes(r))if(s?.value!==void 0){const u=r==="datetime",d=S.formatDate(s.value,{withTime:u,skipTimezone:!0});w(d||s.value)}else w(e.value)},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";["currency","percentage","duration","boolean","date","datetime"].includes(r)||(s?.value!==void 0?w(s.value):e?.column?.dataType!=="duration"&&w(e.value))},[e?.value,e?.column?.type,e?.column?.dataType,s?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="boolean"&&J){const r=s?.value!==void 0?s.value:e?.value;w(r===!0||r==="true"||r==="True"||r==="Yes"||r===1?"Yes":"No")}},[e?.value,e?.column?.type,J,s?.value]),a.useEffect(()=>()=>{L.current&&clearTimeout(L.current),N.current&&clearTimeout(N.current)},[]);const m=a.isValidElement(n);return o.jsxs("td",{id:e.value,"data-column-key":e?.column?.key,...e.getCellProps(),onClick:O?.isEnabled?void 0:Me,className:k("h-row",{"sticky left-0":e?.column?.sticky,relative:!e?.column?.sticky,"w-full":f,"overflow-visible":v===e.column.key,"overflow-x-hidden overflow-y-visible":v!==e.column.key&&m,"overflow-hidden":v!==e.column.key&&!m},F&&!Q?"outline outline-2 outline-error-500 -outline-offset-2 z-[5]":"",`${T||"bg-white dark:bg-black-800"}`),style:{minWidth:`${e.column.width}px`,maxWidth:`${e.column.width}px`,right:e?.column?.sticky?`${p}px`:C.CELL_DEFAULT_RIGHT_OFFSET,paddingLeft:x>0&&b===0?`${x*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0},onMouseEnter:je,onMouseLeave:Le,children:[o.jsx(Ee,{withLink:O?.isEnabled,linkTo:O?.linkTo||void 0,rowData:e?.row?.original,disableRowClick:e?.column?.disableRowClick,children:(Array.isArray(V)?V.includes(`${t}-${e?.column?.id}`):V===`${t}-${e?.column?.id}`)?o.jsxs("div",{className:"h-row top-0 font-medium font-inter w-full absolute flex items-center px-4",children:[o.jsx("span",{className:"text-neutral-400 dark:text-black-400 truncate",children:(()=>{const r=`${t}-${e?.column?.id}`,u=typeof q=="object"?q?.[r]:q,d=e?.column?.type?.toLowerCase();if(d==="boolean")return u===!0||u==="true"||u==="True"?"Yes":"No";if((d==="date"||d==="datetime")&&u){const $e=d==="datetime";return S.formatDate(u,{withTime:$e,skipTimezone:!0})||String(u)}return u!=null?String(u):n})()}),o.jsx("div",{className:"ml-2 flex items-center gap-1.5",children:o.jsx(g.LoadingSpinnerIcon,{className:"spinner text-neutral-600 dark:text-white",size:12})})]}):v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled?o.jsx("div",{className:"h-row w-full absolute top-0 left-0 flex items-center",style:{marginLeft:x>0&&b===0?`-${x*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0,width:x>0&&b===0?`calc(100% + ${x*C.CELL_INDENT_PER_LEVEL_PX}px)`:"100%"},children:o.jsx(Fe.InlineEditField,{cell:e,id:t,inlineEditing:v,cellRef:le,handleCellValueChange:ie,handleUpdateCellData:ce,registerValidation:me})}):o.jsxs(o.Fragment,{children:[x>0&&b===0&&o.jsx("div",{className:"h-row border-l border-neutral-300 dark:border-black-600 ml-2"}),o.jsx("div",{className:"min-h-6",children:o.jsx(U,{title:h&&e?.column?.type?.toLowerCase()!=="url"?h:void 0,hideTooltip:!h||e?.column?.type?.toLowerCase()==="url",delayShow:!0,placement:"top",children:o.jsxs("div",{className:k(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${T||"bg-white dark:bg-black-800"}`,m?"overflow-x-hidden overflow-y-visible":"overflow-x-hidden",{"border border-b-0 border-t-0 border-primary-600 dark:border-blue-800":te?.includes(e.column.id)}),style:e?.column?.sticky&&ne?{boxShadow:_e?C.CELL_STICKY_SHADOW_DARK:C.CELL_STICKY_SHADOW_LIGHT}:{},children:[P?.isCascading&&!pe&&b===0&&o.jsx("div",{className:k("w-[22px] h-row flex items-center px-4",`${T||"bg-white dark:bg-black-800"}`),id:"cascading",children:he>x&&(e?.row?.original?.__has_children||P?.showAllDropdown)&&o.jsx("div",{children:de?o.jsx(g.LoadingSpinnerIcon,{className:"text-neutral-600 dark:text-white",size:8}):o.jsx("div",{children:be?.[t]?.isOpen?o.jsx(g.KeyboardArrowDownIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{G(),r.stopPropagation()}}):o.jsx(g.KeyboardArrowRightFilledIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{G(),r.stopPropagation()}})})})}),e?.column?.type?.toLowerCase()==="url"&&h?o.jsx(U,{title:o.jsx("div",{onMouseEnter:()=>K(!0),onMouseLeave:()=>K(!1),children:o.jsx("a",{href:h,target:"_blank",rel:"noopener noreferrer",onClick:r=>r.stopPropagation(),children:o.jsxs("div",{className:"flex gap-1 items-center w-full",children:[o.jsx("div",{className:"w-4 h-4",children:o.jsx(g.LinkIcon,{height:16,width:16})}),o.jsx(Ve.Typography,{variant:"medium",size:"small",className:"truncate",appearance:"custom",children:h}),o.jsx(qe.OpenInNewRounded,{sx:{height:"16px",width:"16px",color:"#016DCF"}})]})})}),placement:"top",open:Se,onOpenChange:K,className:"block w-full min-w-0 overflow-hidden",children:o.jsx("div",{className:"w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400",children:o.jsx("span",{ref:j,onMouseEnter:ae,className:"truncate w-full",children:D&&re&&!a.isValidElement(n)&&typeof n!="object"?D(n):n})})}):o.jsx(U,{title:E&&n&&!m?o.jsx("div",{onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),className:"max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll",children:String(n)}):void 0,placement:"top",delayShow:!0,hideTooltip:!!h,open:E&&!h&&!m?De:void 0,onOpenChange:E&&!h&&!m?W:void 0,className:k("block w-full min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("div",{className:k("w-full h-row flex items-center px-4 min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("span",{ref:m?void 0:j,onMouseEnter:m?void 0:ae,className:k(m?"flex min-w-0 max-w-full items-center justify-start gap-1":"truncate w-full"),children:D&&re&&!a.isValidElement(n)&&typeof n!="object"?D(n):a.isValidElement(n)?typeof n.type=="string"?n:a.cloneElement(n,{...n.props,containerWidth:e.column.width}):n})})})]})})})]})}),F&&!Q&&o.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]",children:o.jsx("div",{className:"w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate",children:o.jsx("span",{className:"text-error-600 text-2xs font-medium leading-none",children:F})})}),Ce&&!(v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled)&&o.jsx("div",{className:"absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10",children:o.jsx(g.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8})})]},b)},We=a.memo(Ke);exports.DataCell=We;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),Re=require("../../../../../hooks/useTheme.cjs.js"),S=require("../../../../../utils/formatters.cjs.js"),Ie=require("../../../../../constants/table.cjs.js"),Oe=require("../../../../../providers/design-system-provider/hooks.cjs.js"),U=require("../../../../tooltip/Tooltip.cjs.js"),Ve=require("../../../typography/Typography.cjs.js"),qe=require("@mui/icons-material"),k=require("../../../../../_virtual/index.cjs.js"),a=require("react"),ze=require("react-router-dom"),Ae=require("../../context.cjs.js"),Fe=require("./InlineEditField.cjs.js"),C=require("../../constants.cjs.js"),g=require("../../../../icon/icons.generated.cjs.js");let Y;const se=e=>{const t=Number(e);if(Number.isNaN(t)||e===null||e===void 0)return"0ms";if(t>=864e5){const p=Math.floor(t/864e5),f=Math.floor(t%864e5/36e5),i=Math.floor(t%36e5/6e4),b=Math.floor(t%6e4/1e3);return`${p}d ${f}h ${i}m ${b}s`}if(t>=36e5){const p=Math.floor(t/36e5),f=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3);return`${p}h ${f}m ${i}s`}if(t>=6e4){const p=Math.floor(t/6e4),f=Math.floor(t%6e4/1e3);return`${p}m ${f}s`}return t>=1e3?`${(t/1e3).toFixed(2)}s`:`${t}ms`},Ee=({children:e,withLink:t,linkTo:p,rowData:f,disableRowClick:i})=>t&&!i?o.jsx(ze.Link,{to:p?.(f?.id,f)||"",children:e}):e,Ke=({cell:e,id:t,nextWidthSum:p,isLastCell:f,rowHovering:i,index:b,isFirstStickyCell:ne,handleCellClick:ue,currentData:y,highlightSubstring:D,is_read:Ue,is_modified:B,is_row_modified:X,is_deleted:R,is_added:I,level:x,inlineEditing:v,isInlineEditing:c,setRowHovering:M,handleCellValueChange:ie,cellRef:le,handleUpdateCellData:ce,registerValidation:me,loadingExpand:de,toggleRowExpand:G,isDraggingOver:fe,isLoading:$,is_incomplete:H,pendingEdit:s,hasPendingEdit:l,pendingValidationError:we})=>{const{cascadingTableConfig:P,originalsOnly:pe,maxLevel:he,showNewItem:Ye,expandedRows:be,rowLinkConfig:O,multiSelectConfig:ye,cellEditing:V,cellEditingValue:q,allowInlineEdit:J,fieldOperationLoading:xe,pendingEdits:ve,selectedRowId:z}=a.useContext(Ae.TableContext),ke=z!=null&&String(z)===String(t),Te=Oe.useTableConfig(),A=(e?.column?.key?e?.row?.original?.__cellMetadata?.[e.column.key]:void 0)?.is_locked??e?.column?.is_locked,F=(e?.column?.key?ve?.[t]?.[e.column.key]?.validationError:null)||we||null,Q=v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled,Ce=xe===`${t}-${e?.column?.id}`,{theme:ge}=Re.useTheme(),_e=ge==="dark",je=a.useCallback(()=>M(t),[M,t]),Le=a.useCallback(()=>M(null),[M]),_=Te?.formatDuration,[n,w]=a.useState(e?.column?.dataType==="duration"&&e?.value?_?_(e.value):se(e.value):e.value),[h,Z]=a.useState(null),[E,Ne]=a.useState(!1),[Se,ee]=a.useState(!1),[De,oe]=a.useState(!1),j=a.useRef(null),L=a.useRef(),N=a.useRef(),{selectedColumnIds:te=[]}=ye||{},re=!Object.prototype.hasOwnProperty.call(e?.column?.meta??{},"shouldHighlight")||e?.column?.meta?.shouldHighlight,ae=a.useCallback(()=>{j.current&&Ne(j.current.scrollWidth>j.current.clientWidth)},[]),K=a.useCallback(r=>{L.current&&clearTimeout(L.current),r?ee(!0):L.current=setTimeout(()=>ee(!1),200)},[]),W=a.useCallback(r=>{N.current&&clearTimeout(N.current),r?oe(!0):N.current=setTimeout(()=>oe(!1),200)},[]),T=k({"bg-amber-100 dark:bg-amber-900/30":l,"bg-neutral-100 dark:bg-black-600":i===t&&!c&&!l&&!(R||y?.is_deleted)&&!(I||y?.is_added),"bg-error-200 dark:bg-error-900":i===t&&!c&&!l&&(R||y?.is_deleted),"bg-success-100 dark:bg-success-800":i===t&&!c&&!l&&(I||y?.is_added),"bg-warning-100 dark:bg-warning-950":i===t&&!c&&!l&&(H||B||X||y?.is_row_modified),"bg-warning-50 dark:bg-orange-900":(H||B||X||y?.is_row_modified)&&!$&&i!==t&&!c&&!l,"bg-error-100 dark:bg-error-975":(R||y?.is_deleted)&&!$&&i!==t&&!c&&!l,"bg-success-50 dark:bg-success-900":(I||y?.is_added)&&!$&&i!==t&&!c&&!l,"bg-primary-50 dark:bg-primary-900":(fe||c)&&!l,"bg-primary-50 dark:bg-primary-800":te?.includes(e.column.id)&&!c&&!l,"bg-primary-50 dark:bg-primary-700":ke&&i!==t&&!c&&!l&&!$,[Ie.getTableRowBgClassNamesByStatus[e?.row?.original?.__rowBgStatus]]:e?.row?.original?.__rowBgStatus&&!c&&!l}),Me=r=>{e.column?.disableRowClick||ue(r)};a.useEffect(()=>(e?.row?.original?.status==="running"&&e.column?.dataType==="duration"&&(Y=setInterval(()=>{const u=new Date(S.formatDate(e?.row?.original?.created_at||e?.row?.original?.executed_on,{withTime:!0,format:"yyyy-MM-dd HH:mm:ss"})),d=Math.abs(new Date().getTime()-new Date(u).getTime());w(_?_(d):se(d))},500)),()=>{Y&&clearInterval(Y)}),[n,e.value,e?.row?.original?.created_at,e?.row?.original?.executed_on,e?.row?.original?.status,e.column?.dataType,_]),a.useEffect(()=>{(e?.column?.tooltipCellKey||e?.column?.type?.toLowerCase()==="url")&&(e?.column?.type?.toLowerCase()==="url"?Z(e?.value):Z(e?.row?.original?.[String(e?.column?.tooltipCellKey)]))},[e?.column?.tooltipCellKey,e?.row?.original,e?.column?.type,e?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="currency")if(s?.value!==void 0){const r=e?.row?.original?.__rawData,u=e?.column?.Header,d=s?.meta?.currency_code||r?.[u]?.currency_code||"USD";w(S.formatCurrency(s.value,d))}else{const r=e?.row?.original?.__rawData,u=e?.column?.Header;w(S.formatCurrency(e?.value,r?.[u]?.currency_code||"USD"))}},[e?.value,e?.column?.type,e?.column?.Header,e?.row?.original?.__rawData,s?.value,s?.meta?.currency_code]),a.useEffect(()=>{e?.column?.type?.toLowerCase()==="percentage"&&(s?.value!==void 0?w(s.value?.toString()+"%"||""):w(e?.value?.toString()+"%"||""))},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";if(["date","datetime"].includes(r))if(s?.value!==void 0){const u=r==="datetime",d=S.formatDate(s.value,{withTime:u,skipTimezone:!0});w(d||s.value)}else w(e.value)},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";["currency","percentage","duration","boolean","date","datetime"].includes(r)||(s?.value!==void 0?w(s.value):e?.column?.dataType!=="duration"&&w(e.value))},[e?.value,e?.column?.type,e?.column?.dataType,s?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="boolean"&&J){const r=s?.value!==void 0?s.value:e?.value;w(r===!0||r==="true"||r==="True"||r==="Yes"||r===1?"Yes":"No")}},[e?.value,e?.column?.type,J,s?.value]),a.useEffect(()=>()=>{L.current&&clearTimeout(L.current),N.current&&clearTimeout(N.current)},[]);const m=a.isValidElement(n);return o.jsxs("td",{id:e.value,"data-column-key":e?.column?.key,...e.getCellProps(),onClick:O?.isEnabled?void 0:Me,className:k("h-row",{"sticky left-0":e?.column?.sticky,relative:!e?.column?.sticky,"w-full":f,"overflow-visible":v===e.column.key,"overflow-x-hidden overflow-y-visible":v!==e.column.key&&m,"overflow-hidden":v!==e.column.key&&!m},F&&!Q?"outline outline-2 outline-error-500 -outline-offset-2 z-[5]":"",`${T||"bg-white dark:bg-black-800"}`),style:{minWidth:`${e.column.width}px`,maxWidth:`${e.column.width}px`,right:e?.column?.sticky?`${p}px`:C.CELL_DEFAULT_RIGHT_OFFSET,paddingLeft:x>0&&b===0?`${x*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0},onMouseEnter:je,onMouseLeave:Le,children:[o.jsx(Ee,{withLink:O?.isEnabled,linkTo:O?.linkTo||void 0,rowData:e?.row?.original,disableRowClick:e?.column?.disableRowClick,children:(Array.isArray(V)?V.includes(`${t}-${e?.column?.id}`):V===`${t}-${e?.column?.id}`)?o.jsxs("div",{className:"h-row top-0 font-medium font-inter w-full absolute flex items-center px-4",children:[o.jsx("span",{className:"text-neutral-400 dark:text-black-400 truncate",children:(()=>{const r=`${t}-${e?.column?.id}`,u=typeof q=="object"?q?.[r]:q,d=e?.column?.type?.toLowerCase();if(d==="boolean")return u===!0||u==="true"||u==="True"?"Yes":"No";if((d==="date"||d==="datetime")&&u){const $e=d==="datetime";return S.formatDate(u,{withTime:$e,skipTimezone:!0})||String(u)}return u!=null?String(u):n})()}),o.jsx("div",{className:"ml-2 flex items-center gap-1.5",children:o.jsx(g.LoadingSpinnerIcon,{className:"spinner text-neutral-600 dark:text-white",size:12})})]}):v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled?o.jsx("div",{className:"h-row w-full absolute top-0 left-0 flex items-center",style:{marginLeft:x>0&&b===0?`-${x*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0,width:x>0&&b===0?`calc(100% + ${x*C.CELL_INDENT_PER_LEVEL_PX}px)`:"100%"},children:o.jsx(Fe.InlineEditField,{cell:e,id:t,inlineEditing:v,cellRef:le,handleCellValueChange:ie,handleUpdateCellData:ce,registerValidation:me})}):o.jsxs(o.Fragment,{children:[x>0&&b===0&&o.jsx("div",{className:"h-row border-l border-neutral-300 dark:border-black-600 ml-2"}),o.jsx("div",{className:"min-h-6",children:o.jsx(U,{title:h&&e?.column?.type?.toLowerCase()!=="url"?h:void 0,hideTooltip:!h||e?.column?.type?.toLowerCase()==="url",delayShow:!0,placement:"top",children:o.jsxs("div",{className:k(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${T||"bg-white dark:bg-black-800"}`,m?"overflow-x-hidden overflow-y-visible":"overflow-x-hidden",{"border border-b-0 border-t-0 border-primary-600 dark:border-blue-800":te?.includes(e.column.id)}),style:e?.column?.sticky&&ne?{boxShadow:_e?C.CELL_STICKY_SHADOW_DARK:C.CELL_STICKY_SHADOW_LIGHT}:{},children:[P?.isCascading&&!pe&&b===0&&o.jsx("div",{className:k("w-[22px] h-row flex items-center px-4",`${T||"bg-white dark:bg-black-800"}`),id:"cascading",children:he>x&&(e?.row?.original?.__has_children||P?.showAllDropdown)&&o.jsx("div",{children:de?o.jsx(g.LoadingSpinnerIcon,{className:"text-neutral-600 dark:text-white",size:8}):o.jsx("div",{children:be?.[t]?.isOpen?o.jsx(g.KeyboardArrowDownIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{G(),r.stopPropagation()}}):o.jsx(g.KeyboardArrowRightFilledIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{G(),r.stopPropagation()}})})})}),e?.column?.type?.toLowerCase()==="url"&&h?o.jsx(U,{title:o.jsx("div",{onMouseEnter:()=>K(!0),onMouseLeave:()=>K(!1),children:o.jsx("a",{href:h,target:"_blank",rel:"noopener noreferrer",onClick:r=>r.stopPropagation(),children:o.jsxs("div",{className:"flex gap-1 items-center w-full",children:[o.jsx("div",{className:"w-4 h-4",children:o.jsx(g.LinkIcon,{height:16,width:16})}),o.jsx(Ve.Typography,{variant:"medium",size:"small",className:"truncate",appearance:"custom",children:h}),o.jsx(qe.OpenInNewRounded,{sx:{height:"16px",width:"16px",color:"#016DCF"}})]})})}),placement:"top",open:Se,onOpenChange:K,className:"block w-full min-w-0 overflow-hidden",children:o.jsx("div",{className:"w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400",children:o.jsx("span",{ref:j,onMouseEnter:ae,className:"truncate w-full",children:D&&re&&!a.isValidElement(n)&&typeof n!="object"?D(n):n})})}):o.jsx(U,{title:E&&n&&!m?o.jsx("div",{onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),className:"max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll",children:String(n)}):void 0,placement:"top",delayShow:!0,hideTooltip:!!h,open:E&&!h&&!m?De:void 0,onOpenChange:E&&!h&&!m?W:void 0,className:k("block w-full min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("div",{className:k("w-full h-row flex items-center px-4 min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("span",{ref:m?void 0:j,onMouseEnter:m?void 0:ae,className:k(m?"flex min-w-0 max-w-full items-center justify-start gap-1":"truncate w-full"),children:D&&re&&!a.isValidElement(n)&&typeof n!="object"?D(n):a.isValidElement(n)?typeof n.type=="string"?n:a.cloneElement(n,{...n.props,containerWidth:e.column.width}):n})})})]})})})]})}),F&&!Q&&o.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]",children:o.jsx("div",{className:"w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate",children:o.jsx("span",{className:"text-error-600 text-2xs font-medium leading-none",children:F})})}),Ce&&!(v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled)&&o.jsx("div",{className:"absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10",children:o.jsx(g.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8})})]},b)},We=a.memo(Ke);exports.DataCell=We;
|
|
2
2
|
//# sourceMappingURL=DataCell.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-100 dark:bg-primary-950': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-700': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
|
|
@@ -98,7 +98,7 @@ const me = (e) => {
|
|
|
98
98
|
"bg-success-50 dark:bg-success-900": (I || y?.is_added) && !V && i !== o && !l && !u,
|
|
99
99
|
"bg-primary-50 dark:bg-primary-900": (ve || l) && !u,
|
|
100
100
|
"bg-primary-50 dark:bg-primary-800": ie?.includes(e.column.id) && !l && !u,
|
|
101
|
-
"bg-primary-
|
|
101
|
+
"bg-primary-50 dark:bg-primary-700": Le && i !== o && !l && !u && !V,
|
|
102
102
|
[je[e?.row?.original?.__rowBgStatus]]: e?.row?.original?.__rowBgStatus && !l && !u
|
|
103
103
|
}), Ae = (r) => {
|
|
104
104
|
e.column?.disableRowClick || fe(r);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-100 dark:bg-primary-950': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-700': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),pi=require("../../../../../constants/table.cjs.js"),$i=require("../../../../../providers/design-system-provider/hooks.cjs.js"),Mi=require("@dnd-kit/core"),wi=require("@dnd-kit/sortable"),ie=require("@dnd-kit/utilities"),Fi=require("@mui/icons-material"),ee=require("@mui/icons-material/AddRounded"),Ei=require("../../../../../_virtual/index.cjs.js"),ne=require("react-dom"),Ni=require("../../context.cjs.js"),te=require("../cell/ActionCell.cjs.js"),le=require("../cell/CheckboxCell.cjs.js"),ae=require("../cell/DataCell.cjs.js"),Hi=require("../../validateCell.cjs.js"),se=require("../cell/LoaderCell.cjs.js"),oe=require("../cell/PendingEditCell.cjs.js"),de=require("../cell/RowActionCell.cjs.js"),re=require("../cell/RowOptionsCell.cjs.js"),ge=({row:i,isLastRow:$,lastRow:w,highlightSubstring:ii,index:z,style:Ci,level:e=0,expandedRows:c,rows:ei})=>{const{lastNonStickyColumnIndex:M,checkboxConfig:s,onRowClick:k,rowOptions:b,disableOptionsForRowIndex:F=null,getSumOfNextVisibleColumnWidth:ni,onRowEdit:H,inlineEditColumns:xi,tableActions:ti,dndSortableUtils:li,withSortable:_,withDraggable:E,getInnerRowData:ai,showNewItem:W,rawData:O,dragConfig:p,getFullRowDataOnClick:si,selectedRowId:r,rowWrapper:U,isCellClickDisabled:vi,rowAdditionalActions:N,hoverConfig:oi,addPendingEdit:j,removePendingEdit:P,fieldOperationLoading:di,clearRowPendingEdits:q,saveRowPendingEdits:K,pendingEdits:A}=l.useContext(Ni.TableContext),B=$i.useTableConfig(),ri=!!s,{activeInlineEdit:gi,setActiveInlineEdit:L}=l.useContext(Ni.TableContext),a=gi?.rowId===i.original.id?gi?.columnKey:null,u=!!a,ci=n=>{L?.(n===null?null:{rowId:String(i.original.id),columnKey:n})},[C,Y]=l.useState(null),[ui,f]=l.useState(null),[R,G]=l.useState(null),[x,S]=l.useState(!1),[y,J]=l.useState(!1),_i=l.useRef(null);l.useEffect(()=>{const n=_i.current,g=a;if(n&&!g){const h=A?.[i.original.id]?.[n];if(h){const d=i.cells?.find(m=>m.column?.key===n);if(d){const m=Hi.validateCellValue(h.value,d.column);!m.isValid&&j&&j(String(i.original.id),n,{...h,validationError:m.error})}}}_i.current=g??null},[a,i.original.id,i.cells,A,j]),l.useEffect(()=>{if(O){const n=String(i?.original?.id);G(O[n]?.[i?.cells[0].column.Header]||O[n]?.[0])}},[O,i?.original?.id,i?.cells]);const o=wi.useSortable({id:i.original.id,data:{...i.original},disabled:!_}),v=Mi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!_}),{listeners:fi,transform:mi,setNodeRef:bi,isDragging:T,attributes:hi,active:V,over:D,...Ui}=_?o:v,{setNodeRef:ji}=Mi.useDroppable({id:`table-file-dropzone-${i?.original?.id}`,data:{type:"table-file-dropzone",folderId:i?.original?.id,isFolder:i?.original?.type==="folder"}}),Ki={transform:ie.CSS.Transform.toString(mi),transition:_?Ui.transition:void 0,cursor:T?"grabbing":"grab",opacity:T?"0.5":"1"},Yi=()=>!V||!D||!_?!1:li?.checkOverEachItem?li.checkOverEachItem(V,D)&&!!D:V.data.current?.type!==D.data.current?.type&&!!D,Di=n=>{f(n.target.value)},Gi=()=>{di||ci(null)},Ri=l.useRef(null),Ii=l.useCallback(n=>{Ri.current=n},[]),Pi=l.useRef(B);Pi.current=B;const Bi=l.useCallback(()=>{q&&q(String(i.original.id))},[q,i.original.id]),Oi=l.useCallback(()=>{if(Ri.current){const n=Ri.current();if(!n.isValid)return;a&&n.value!==void 0&&j&&j(String(i.original.id),a,{value:n.value,originalValue:i.original[a],meta:n.meta||void 0})}else if(a){const n=i.cells?.find(g=>g.column?.key===a);if(n){const g=A?.[i.original.id]?.[a]?.value,h=g!==void 0?g:n.value,d=Hi.validateCellValue(h,n.column);if(!d.isValid){Pi.current?.showNotification?.("error",d.error||"Validation failed");return}}}K&&K(String(i.original.id))},[K,i.original,i.cells,a,j,A]),qi=(n,g)=>{const h={...i.original},d=n!==void 0?n:ui;a&&d!==void 0&&(h[a]=d,H&&H(h,z,a,d,g),P&&P(String(i.original.id),a)),Gi()},Ai=l.useRef(null),Li=(n,g,h,d)=>{if(!vi&&(n?.stopPropagation(),a!==d)){if(H){if(xi?.includes(d))ci(d),f(String(i.original[d]));else{const m=B?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";B?.showNotification?.("error",m)}return}if(k)k(g,h,i.original,ei?.map(m=>m.original)||[]);else if(!k&&s){const m=i.original.id,Zi={target:{checked:!s.checkedIds.includes(m)}};s.onItemCheck(Zi,m)}}},Ti=async()=>{S(!0),ai&&await ai(i?.original?.id,i?.original,!(c?.[i?.original?.id]?.isOpen??!1),i?.original?.__level||0),S(!1)},Ji=l.useMemo(()=>i.cells.filter(n=>n.column?.visible).map(n=>n.column?.width??0).reduce((n,g)=>n+g,0),[i.cells]),Q=l.useMemo(()=>p?.draggingOver&&p?.draggingOver===i?.original?.id,[p,i?.original?.id]),Si=l.useMemo(()=>Q?p?.dropPosition||"inside":null,[Q,p?.dropPosition]),X=!!(Q&&Si==="inside"),I=i?.original?.__rowMetadata||i?.original?._meta,Z=C!==i?.original?.id,yi=!i?.original?.__isLoading,Vi=!!(I?.__is_new||I?.__is_added||i?.original?.is_added||R?.is_added||I?.is_new),Qi=!!(i?.original?.is_deleted||I?.__is_deleted||R?.is_deleted||I?.is_deleted),Xi=!!(i?.original?.is_modified||i?.original?.is_row_modified||I?.__is_modified||I?.__is_edited||R?.is_row_modified||I?.is_modified)&&!Vi,ki=r!=null&&String(r)===String(i?.original?.id),zi=Ei({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!u,"bg-primary-50 dark:bg-primary-700":ki&&Z&&!u,"bg-primary-50 dark:bg-black-700":!i?.original?.is_read&&W&&!i?.original?.__isLoading&&Z&&!u,"bg-warning-50 dark:bg-warning-975":Xi&&yi&&Z&&!u,"bg-error-50 dark:bg-error-975":Qi&&yi&&Z&&!u,"bg-success-50 dark:bg-success-975":Vi&&yi&&Z&&!u,"bg-primary-50 dark:bg-primary-900":u,[pi.getTableRowBgClassNamesByStatus[i?.original?.__rowBgStatus]]:i?.original?.__rowBgStatus&&!u});return l.createElement("tr",{...i.getRowProps(),ref:E||_?bi:null,key:i.original.id,"data-row-id":i.original.id,className:Ei(`text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${s?.selectionDisabledRowIds?.includes(i?.original?.id)?"opacity-50":""} border-t`,T?"z-40":"",Yi()?"shadow-dnd-drop":"",E&&D&&D?.data?.current?.type==="table-file-dropzone"&&D?.data?.current?.folderId===i?.original?.id&&i?.original?.type==="folder"?"bg-primary-50":"",i?.original?.isDefinedActionRow?"bg-primary-50":"",X?"z-50":"",zi||"bg-white dark:bg-black-800"),style:{...Ci,..._?Ki:{},width:"max-content"},...E||_?hi:{},...E||_?fi:{}},X&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx("div",{className:"bg-primary-200 px-2 py-1 rounded",children:p?.dragOperation==="COPY"?t.jsx(ee,{sx:{fontSize:12},className:"text-primary-700"}):t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:12},className:"text-primary-700"})})}):null,X&&!p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Q&&Si==="before"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,Q&&Si==="after"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,i?.original?.isDefinedActionRow?t.jsx(te.ActionCell,{cells:i.cells,id:i?.original?.id,isCheckbox:s,level:e,name:i?.original?.name,onClick:i?.original?.onClick,rowHovering:C||"",isRoot:i?.original?.isRoot,totalWidth:Ji,row:i.original,uploadCell:i?.original?.uploadCell,disabled:i?.original?.disabled,disabledTooltip:i?.original?.disabledTooltip}):U?t.jsx(U,{data:i.original,setIsDraggingFile:J,children:t.jsx(Wi,{isDraggingOver:X,level:e,withDraggable:E,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,rowAdditionalActions:N,hoverConfig:oi,isSelected:ki})}):t.jsx(Wi,{level:e,withDraggable:E,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,isDraggingOver:X,rowAdditionalActions:N,hoverConfig:oi,isSelected:ki}))},Wi=({withDraggable:i,setDroppableNodeRef:$,isLastRow:w,lastRow:ii,isCheckbox:z,checkboxConfig:Ci,row:e,rowHovering:c,tableActions:ei,disableOptionsForRowIndex:M,index:s,showNewItem:k,currentData:b,lastNonStickyColumnIndex:F,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:H,loadingExpand:xi,cellRef:ti,handleCellClick:li,getFullRowDataOnClick:_,handleCellValueChange:E,handleUpdateCellData:ai,handleRowCancelEdit:W,handleRowConfirmEdit:O,registerValidation:p,inlineEditing:si,isInlineEditing:r,setRowHovering:U,highlightSubstring:vi,rowOptions:N,level:oi,isDraggingFile:j,isDraggingOver:P,rowAdditionalActions:di,hoverConfig:q,isSelected:K})=>{const[A,B]=l.useState(!1),{getPendingEdit:ri,hasPendingEdit:gi,pendingEdits:L,tableHeaders:a,pendingEditsCount:u,scrollToCell:ci}=l.useContext(Ni.TableContext),C=L?.[e.original.id]&&Object.keys(L[e.original.id]).length>0,Y=(u??0)>0,ui=l.useMemo(()=>{if(Array.isArray(N))return N;if(typeof N=="function"){const o=N({...e.original,rowIndex:s});return Array.isArray(o)?o:[]}return[]},[N,e.original,s]),f=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,G=!e?.original?.__isLoading,x=!!(f?.__is_new||f?.__is_added||e?.original?.is_added||b?.is_added||f?.is_new),S=!!(e?.original?.is_deleted||f?.__is_deleted||b?.is_deleted||f?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||f?.__is_modified||f?.__is_edited||b?.is_row_modified||f?.is_modified)&&!x,J=K&&!r&&c!==e?.original?.id?"bg-primary-100 dark:bg-primary-950":void 0,_i=Ei("pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40",{"bg-success-400 dark:bg-success-500":x&&G&&R&&!r,"bg-error-400 dark:bg-error-500":S&&G&&R&&!r,"bg-warning-400 dark:bg-warning-500":y&&G&&R&&!r});return t.jsxs("div",{ref:i?$:null,className:P?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:[t.jsx("div",{className:_i}),t.jsxs("div",{className:"flex",ref:w?ii:null,children:[Y&&t.jsx(oe.PendingEditCell,{rowId:String(e.original.id),rowIndex:s,pendingEdits:L,tableHeaders:a,rowHasPendingEdits:!!C,rowHovering:c!=null?String(c):void 0,isInlineEditing:r,is_read:!!e.original.is_read,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_deleted:S,is_added:x,is_incomplete:e?.original?.status==="Incomplete",showNewItem:k,onScrollToCell:ci}),z&&t.jsx(le.CheckboxCell,{checkboxConfig:Ci,id:String(e.original.id),rowHovering:c!=null?String(c):void 0,isDisabled:!!e?.original?.__isLoading,isDraggingOver:P,is_added:x,is_deleted:S,is_incomplete:e?.original?.status==="Incomplete",is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,showNewItem:k,currentData:b??{},bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,hasPendingEditsColumn:Y,rowHasPendingEdits:C}),ei?t.jsx(de.RowActionCell,{tableActions:ei,disableOptionsForRowIndex:M??null,id:String(e.original.id),index:s,is_read:!!e?.original?.is_read,is_incomplete:e?.original?.status==="Incomplete",showNewItem:!!k,is_modified:y,is_row_modified:!!e?.original?.is_row_modified,is_deleted:S,currentData:b??{},is_added:x,rowData:e.original,rowHovering:c,isDisabled:!!e?.original?.__isLoading,bgColor:j?"bg-primary-50":e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,rowHasPendingEdits:C}):null,t.jsxs("div",{className:"relative flex-1",id:`row-${e.original.id}`,onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),children:[e.cells.filter(o=>o?.column?.visible!==!1).map((o,v)=>{const fi=v===F?.(),mi=v===(F?.()??-1)+1,bi=o?.column?.sticky?ni?.(v)??0:0;if(e.original?.__isLoading)return t.jsx(se.LoaderCell,{cell:o,id:v,nextWidthSum:bi,isLastCell:fi,rowHovering:c,index:v,isFirstStickyCell:mi},v);const T=ri?.(String(e.original.id),o?.column?.key||""),hi=gi?.(String(e.original.id),o?.column?.key||"");return t.jsx(ae.DataCell,{cell:o,rowHovering:c,isFirstStickyCell:mi,level:oi??0,toggleRowExpand:H,loadingExpand:xi,index:v,cellRef:ti,currentData:b,handleCellClick:V=>{V&&li(V,_?e.original:String(e.original.id),v,o?.column?.key||"")},handleCellValueChange:E,handleUpdateCellData:ai,registerValidation:p,id:e.original.id,inlineEditing:si,isInlineEditing:r,isLastCell:fi,is_incomplete:e?.original?.status==="Incomplete",is_added:x,is_deleted:S,is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,nextWidthSum:bi,setRowHovering:U,highlightSubstring:vi,isDraggingOver:P,isLoading:!!e?.original?.__isLoading,pendingEdit:T,hasPendingEdit:hi,pendingValidationError:T?.validationError},o?.column?.key)}),q?.onHover&&A&&ne.createPortal(t.jsx("div",{className:"absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl",children:q.onHover(e.original)}),document.getElementById(`row-${e.original.id}`))]}),(ui.length>0||!!di)&&t.jsx(re.RowOptionsCell,{rowId:e.original.id,rowOptions:ui,disableOption:M!==null||!!e?.original?.__isLoading,rowHovering:c,setRowHovering:U,is_read:!!e.original.is_read,showNewItem:!!k,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_incomplete:e?.original?.status==="Incomplete",currentData:b??{},is_deleted:S,is_added:x,isDraggingOver:!!P,rowAdditionalActions:di,rowData:e.original,index:s,bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,onConfirmEdit:O,onCancelEdit:W,rowHasPendingEdits:C})]})]})};exports.Row=ge;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const t=require("react/jsx-runtime"),l=require("react"),pi=require("../../../../../constants/table.cjs.js"),$i=require("../../../../../providers/design-system-provider/hooks.cjs.js"),Mi=require("@dnd-kit/core"),wi=require("@dnd-kit/sortable"),ie=require("@dnd-kit/utilities"),Fi=require("@mui/icons-material"),ee=require("@mui/icons-material/AddRounded"),Ei=require("../../../../../_virtual/index.cjs.js"),ne=require("react-dom"),Ni=require("../../context.cjs.js"),te=require("../cell/ActionCell.cjs.js"),le=require("../cell/CheckboxCell.cjs.js"),ae=require("../cell/DataCell.cjs.js"),Hi=require("../../validateCell.cjs.js"),se=require("../cell/LoaderCell.cjs.js"),oe=require("../cell/PendingEditCell.cjs.js"),de=require("../cell/RowActionCell.cjs.js"),re=require("../cell/RowOptionsCell.cjs.js"),ge=({row:i,isLastRow:$,lastRow:w,highlightSubstring:ii,index:z,style:Ci,level:e=0,expandedRows:c,rows:ei})=>{const{lastNonStickyColumnIndex:M,checkboxConfig:s,onRowClick:k,rowOptions:b,disableOptionsForRowIndex:F=null,getSumOfNextVisibleColumnWidth:ni,onRowEdit:H,inlineEditColumns:xi,tableActions:ti,dndSortableUtils:li,withSortable:_,withDraggable:E,getInnerRowData:ai,showNewItem:W,rawData:O,dragConfig:p,getFullRowDataOnClick:si,selectedRowId:r,rowWrapper:U,isCellClickDisabled:vi,rowAdditionalActions:N,hoverConfig:oi,addPendingEdit:j,removePendingEdit:P,fieldOperationLoading:di,clearRowPendingEdits:q,saveRowPendingEdits:K,pendingEdits:A}=l.useContext(Ni.TableContext),B=$i.useTableConfig(),ri=!!s,{activeInlineEdit:gi,setActiveInlineEdit:L}=l.useContext(Ni.TableContext),a=gi?.rowId===i.original.id?gi?.columnKey:null,u=!!a,ci=n=>{L?.(n===null?null:{rowId:String(i.original.id),columnKey:n})},[C,Y]=l.useState(null),[ui,f]=l.useState(null),[R,G]=l.useState(null),[x,S]=l.useState(!1),[y,J]=l.useState(!1),_i=l.useRef(null);l.useEffect(()=>{const n=_i.current,g=a;if(n&&!g){const h=A?.[i.original.id]?.[n];if(h){const d=i.cells?.find(m=>m.column?.key===n);if(d){const m=Hi.validateCellValue(h.value,d.column);!m.isValid&&j&&j(String(i.original.id),n,{...h,validationError:m.error})}}}_i.current=g??null},[a,i.original.id,i.cells,A,j]),l.useEffect(()=>{if(O){const n=String(i?.original?.id);G(O[n]?.[i?.cells[0].column.Header]||O[n]?.[0])}},[O,i?.original?.id,i?.cells]);const o=wi.useSortable({id:i.original.id,data:{...i.original},disabled:!_}),v=Mi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!_}),{listeners:fi,transform:mi,setNodeRef:bi,isDragging:T,attributes:hi,active:V,over:D,...Ui}=_?o:v,{setNodeRef:ji}=Mi.useDroppable({id:`table-file-dropzone-${i?.original?.id}`,data:{type:"table-file-dropzone",folderId:i?.original?.id,isFolder:i?.original?.type==="folder"}}),Ki={transform:ie.CSS.Transform.toString(mi),transition:_?Ui.transition:void 0,cursor:T?"grabbing":"grab",opacity:T?"0.5":"1"},Yi=()=>!V||!D||!_?!1:li?.checkOverEachItem?li.checkOverEachItem(V,D)&&!!D:V.data.current?.type!==D.data.current?.type&&!!D,Di=n=>{f(n.target.value)},Gi=()=>{di||ci(null)},Ri=l.useRef(null),Ii=l.useCallback(n=>{Ri.current=n},[]),Pi=l.useRef(B);Pi.current=B;const Bi=l.useCallback(()=>{q&&q(String(i.original.id))},[q,i.original.id]),Oi=l.useCallback(()=>{if(Ri.current){const n=Ri.current();if(!n.isValid)return;a&&n.value!==void 0&&j&&j(String(i.original.id),a,{value:n.value,originalValue:i.original[a],meta:n.meta||void 0})}else if(a){const n=i.cells?.find(g=>g.column?.key===a);if(n){const g=A?.[i.original.id]?.[a]?.value,h=g!==void 0?g:n.value,d=Hi.validateCellValue(h,n.column);if(!d.isValid){Pi.current?.showNotification?.("error",d.error||"Validation failed");return}}}K&&K(String(i.original.id))},[K,i.original,i.cells,a,j,A]),qi=(n,g)=>{const h={...i.original},d=n!==void 0?n:ui;a&&d!==void 0&&(h[a]=d,H&&H(h,z,a,d,g),P&&P(String(i.original.id),a)),Gi()},Ai=l.useRef(null),Li=(n,g,h,d)=>{if(!vi&&(n?.stopPropagation(),a!==d)){if(H){if(xi?.includes(d))ci(d),f(String(i.original[d]));else{const m=B?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";B?.showNotification?.("error",m)}return}if(k)k(g,h,i.original,ei?.map(m=>m.original)||[]);else if(!k&&s){const m=i.original.id,Zi={target:{checked:!s.checkedIds.includes(m)}};s.onItemCheck(Zi,m)}}},Ti=async()=>{S(!0),ai&&await ai(i?.original?.id,i?.original,!(c?.[i?.original?.id]?.isOpen??!1),i?.original?.__level||0),S(!1)},Ji=l.useMemo(()=>i.cells.filter(n=>n.column?.visible).map(n=>n.column?.width??0).reduce((n,g)=>n+g,0),[i.cells]),Q=l.useMemo(()=>p?.draggingOver&&p?.draggingOver===i?.original?.id,[p,i?.original?.id]),Si=l.useMemo(()=>Q?p?.dropPosition||"inside":null,[Q,p?.dropPosition]),X=!!(Q&&Si==="inside"),I=i?.original?.__rowMetadata||i?.original?._meta,Z=C!==i?.original?.id,yi=!i?.original?.__isLoading,Vi=!!(I?.__is_new||I?.__is_added||i?.original?.is_added||R?.is_added||I?.is_new),Qi=!!(i?.original?.is_deleted||I?.__is_deleted||R?.is_deleted||I?.is_deleted),Xi=!!(i?.original?.is_modified||i?.original?.is_row_modified||I?.__is_modified||I?.__is_edited||R?.is_row_modified||I?.is_modified)&&!Vi,ki=r!=null&&String(r)===String(i?.original?.id),zi=Ei({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!u,"bg-primary-50 dark:bg-primary-700":ki&&Z&&!u,"bg-primary-50 dark:bg-black-700":!i?.original?.is_read&&W&&!i?.original?.__isLoading&&Z&&!u,"bg-warning-50 dark:bg-warning-975":Xi&&yi&&Z&&!u,"bg-error-50 dark:bg-error-975":Qi&&yi&&Z&&!u,"bg-success-50 dark:bg-success-975":Vi&&yi&&Z&&!u,"bg-primary-50 dark:bg-primary-900":u,[pi.getTableRowBgClassNamesByStatus[i?.original?.__rowBgStatus]]:i?.original?.__rowBgStatus&&!u});return l.createElement("tr",{...i.getRowProps(),ref:E||_?bi:null,key:i.original.id,"data-row-id":i.original.id,className:Ei(`text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${s?.selectionDisabledRowIds?.includes(i?.original?.id)?"opacity-50":""} border-t`,T?"z-40":"",Yi()?"shadow-dnd-drop":"",E&&D&&D?.data?.current?.type==="table-file-dropzone"&&D?.data?.current?.folderId===i?.original?.id&&i?.original?.type==="folder"?"bg-primary-50":"",i?.original?.isDefinedActionRow?"bg-primary-50":"",X?"z-50":"",zi||"bg-white dark:bg-black-800"),style:{...Ci,..._?Ki:{},width:"max-content"},...E||_?hi:{},...E||_?fi:{}},X&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx("div",{className:"bg-primary-200 px-2 py-1 rounded",children:p?.dragOperation==="COPY"?t.jsx(ee,{sx:{fontSize:12},className:"text-primary-700"}):t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:12},className:"text-primary-700"})})}):null,X&&!p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-row flex items-center z-20 pointer-events-none",children:t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Q&&Si==="before"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,Q&&Si==="after"&&!i?.original?.isDefinedActionRow?t.jsx("div",{className:"absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none",children:t.jsx("div",{className:"absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500"})}):null,i?.original?.isDefinedActionRow?t.jsx(te.ActionCell,{cells:i.cells,id:i?.original?.id,isCheckbox:s,level:e,name:i?.original?.name,onClick:i?.original?.onClick,rowHovering:C||"",isRoot:i?.original?.isRoot,totalWidth:Ji,row:i.original,uploadCell:i?.original?.uploadCell,disabled:i?.original?.disabled,disabledTooltip:i?.original?.disabledTooltip}):U?t.jsx(U,{data:i.original,setIsDraggingFile:J,children:t.jsx(Wi,{isDraggingOver:X,level:e,withDraggable:E,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,rowAdditionalActions:N,hoverConfig:oi,isSelected:ki})}):t.jsx(Wi,{level:e,withDraggable:E,setDroppableNodeRef:ji,isLastRow:$,lastRow:w,isCheckbox:ri,checkboxConfig:s,row:i,rowHovering:C,tableActions:ti,disableOptionsForRowIndex:F,index:z,showNewItem:W,currentData:R,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:Ti,loadingExpand:x,cellRef:Ai,handleCellClick:Li,getFullRowDataOnClick:si,handleCellValueChange:Di,handleUpdateCellData:qi,handleRowCancelEdit:Bi,handleRowConfirmEdit:Oi,registerValidation:Ii,inlineEditing:a,isInlineEditing:u,setRowHovering:Y,highlightSubstring:ii,rowOptions:b,isDraggingFile:y,isDraggingOver:X,rowAdditionalActions:N,hoverConfig:oi,isSelected:ki}))},Wi=({withDraggable:i,setDroppableNodeRef:$,isLastRow:w,lastRow:ii,isCheckbox:z,checkboxConfig:Ci,row:e,rowHovering:c,tableActions:ei,disableOptionsForRowIndex:M,index:s,showNewItem:k,currentData:b,lastNonStickyColumnIndex:F,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:H,loadingExpand:xi,cellRef:ti,handleCellClick:li,getFullRowDataOnClick:_,handleCellValueChange:E,handleUpdateCellData:ai,handleRowCancelEdit:W,handleRowConfirmEdit:O,registerValidation:p,inlineEditing:si,isInlineEditing:r,setRowHovering:U,highlightSubstring:vi,rowOptions:N,level:oi,isDraggingFile:j,isDraggingOver:P,rowAdditionalActions:di,hoverConfig:q,isSelected:K})=>{const[A,B]=l.useState(!1),{getPendingEdit:ri,hasPendingEdit:gi,pendingEdits:L,tableHeaders:a,pendingEditsCount:u,scrollToCell:ci}=l.useContext(Ni.TableContext),C=L?.[e.original.id]&&Object.keys(L[e.original.id]).length>0,Y=(u??0)>0,ui=l.useMemo(()=>{if(Array.isArray(N))return N;if(typeof N=="function"){const o=N({...e.original,rowIndex:s});return Array.isArray(o)?o:[]}return[]},[N,e.original,s]),f=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,G=!e?.original?.__isLoading,x=!!(f?.__is_new||f?.__is_added||e?.original?.is_added||b?.is_added||f?.is_new),S=!!(e?.original?.is_deleted||f?.__is_deleted||b?.is_deleted||f?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||f?.__is_modified||f?.__is_edited||b?.is_row_modified||f?.is_modified)&&!x,J=K&&!r&&c!==e?.original?.id?"bg-primary-50 dark:bg-primary-700":void 0,_i=Ei("pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40",{"bg-success-400 dark:bg-success-500":x&&G&&R&&!r,"bg-error-400 dark:bg-error-500":S&&G&&R&&!r,"bg-warning-400 dark:bg-warning-500":y&&G&&R&&!r});return t.jsxs("div",{ref:i?$:null,className:P?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:[t.jsx("div",{className:_i}),t.jsxs("div",{className:"flex",ref:w?ii:null,children:[Y&&t.jsx(oe.PendingEditCell,{rowId:String(e.original.id),rowIndex:s,pendingEdits:L,tableHeaders:a,rowHasPendingEdits:!!C,rowHovering:c!=null?String(c):void 0,isInlineEditing:r,is_read:!!e.original.is_read,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_deleted:S,is_added:x,is_incomplete:e?.original?.status==="Incomplete",showNewItem:k,onScrollToCell:ci}),z&&t.jsx(le.CheckboxCell,{checkboxConfig:Ci,id:String(e.original.id),rowHovering:c!=null?String(c):void 0,isDisabled:!!e?.original?.__isLoading,isDraggingOver:P,is_added:x,is_deleted:S,is_incomplete:e?.original?.status==="Incomplete",is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,showNewItem:k,currentData:b??{},bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,hasPendingEditsColumn:Y,rowHasPendingEdits:C}),ei?t.jsx(de.RowActionCell,{tableActions:ei,disableOptionsForRowIndex:M??null,id:String(e.original.id),index:s,is_read:!!e?.original?.is_read,is_incomplete:e?.original?.status==="Incomplete",showNewItem:!!k,is_modified:y,is_row_modified:!!e?.original?.is_row_modified,is_deleted:S,currentData:b??{},is_added:x,rowData:e.original,rowHovering:c,isDisabled:!!e?.original?.__isLoading,bgColor:j?"bg-primary-50":e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,rowHasPendingEdits:C}):null,t.jsxs("div",{className:"relative flex-1",id:`row-${e.original.id}`,onMouseEnter:()=>B(!0),onMouseLeave:()=>B(!1),children:[e.cells.filter(o=>o?.column?.visible!==!1).map((o,v)=>{const fi=v===F?.(),mi=v===(F?.()??-1)+1,bi=o?.column?.sticky?ni?.(v)??0:0;if(e.original?.__isLoading)return t.jsx(se.LoaderCell,{cell:o,id:v,nextWidthSum:bi,isLastCell:fi,rowHovering:c,index:v,isFirstStickyCell:mi},v);const T=ri?.(String(e.original.id),o?.column?.key||""),hi=gi?.(String(e.original.id),o?.column?.key||"");return t.jsx(ae.DataCell,{cell:o,rowHovering:c,isFirstStickyCell:mi,level:oi??0,toggleRowExpand:H,loadingExpand:xi,index:v,cellRef:ti,currentData:b,handleCellClick:V=>{V&&li(V,_?e.original:String(e.original.id),v,o?.column?.key||"")},handleCellValueChange:E,handleUpdateCellData:ai,registerValidation:p,id:e.original.id,inlineEditing:si,isInlineEditing:r,isLastCell:fi,is_incomplete:e?.original?.status==="Incomplete",is_added:x,is_deleted:S,is_modified:y,is_read:!!e.original.is_read,is_row_modified:!!e.original.is_row_modified,nextWidthSum:bi,setRowHovering:U,highlightSubstring:vi,isDraggingOver:P,isLoading:!!e?.original?.__isLoading,pendingEdit:T,hasPendingEdit:hi,pendingValidationError:T?.validationError},o?.column?.key)}),q?.onHover&&A&&ne.createPortal(t.jsx("div",{className:"absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl",children:q.onHover(e.original)}),document.getElementById(`row-${e.original.id}`))]}),(ui.length>0||!!di)&&t.jsx(re.RowOptionsCell,{rowId:e.original.id,rowOptions:ui,disableOption:M!==null||!!e?.original?.__isLoading,rowHovering:c,setRowHovering:U,is_read:!!e.original.is_read,showNewItem:!!k,is_modified:y,is_row_modified:!!e.original.is_row_modified,is_incomplete:e?.original?.status==="Incomplete",currentData:b??{},is_deleted:S,is_added:x,isDraggingOver:!!P,rowAdditionalActions:di,rowData:e.original,index:s,bgColor:e?.original?.__rowBgStatus?pi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:J,isInlineEditing:r,onConfirmEdit:O,onCancelEdit:W,rowHasPendingEdits:C})]})]})};exports.Row=ge;
|
|
2
2
|
//# sourceMappingURL=row.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/row.tsx"],"sourcesContent":["import { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SubdirectoryArrowLeftRounded } from '@mui/icons-material';\nimport AddRounded from '@mui/icons-material/AddRounded';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { TableContext } from '../../context';\nimport { ActionCell } from '../cell/ActionCell';\nimport { CheckboxCell } from '../cell/CheckboxCell';\nimport { DataCell } from '../cell/DataCell';\nimport { validateCellValue } from '../../validateCell';\nimport { LoaderCell } from '../cell/LoaderCell';\nimport { PendingEditCell } from '../cell/PendingEditCell';\nimport { RowActionCell } from '../cell/RowActionCell';\nimport { RowOptionsCell } from '../cell/RowOptionsCell';\n\ntype TRowMetadata = {\n is_modified: object;\n is_new: boolean;\n is_deleted: boolean;\n is_added: boolean;\n __is_modified?: boolean;\n __is_edited?: boolean;\n __is_deleted?: boolean;\n __is_new?: boolean;\n __is_added?: boolean;\n};\n\ninterface TableCell {\n column: {\n key?: string;\n visible?: boolean;\n width?: number;\n sticky?: boolean;\n Header?: string;\n type?: string;\n is_required?: boolean;\n meta?: Record<string, unknown>;\n [key: string]: unknown;\n };\n value?: unknown;\n [key: string]: unknown;\n}\n\ninterface RowOriginal {\n id: string | number;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n status?: string;\n type?: string;\n __isLoading?: boolean;\n __level?: number;\n __rowBgStatus?: string;\n __rowMetadata?: { __is_modified?: boolean };\n isDefinedActionRow?: boolean;\n isRoot?: boolean;\n name?: string | { props?: { text?: string } };\n onClick?: () => void;\n uploadCell?: boolean;\n disabled?: boolean;\n disabledTooltip?: string;\n [key: string]: unknown;\n}\n\ninterface TableRowData {\n original: RowOriginal;\n cells: TableCell[];\n getRowProps: () => Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ntype TRowOption = {\n key: string;\n label: React.ReactNode;\n isVisible?: boolean;\n [k: string]: unknown;\n};\n\ntype TProps = {\n row: TableRowData;\n isLastRow?: boolean;\n lastRow?: unknown;\n getSubRows?: () => unknown;\n prepareRow?: (row: unknown) => void;\n highlightSubstring?: (value: string) => JSX.Element;\n index: number;\n style?: Record<string, unknown>;\n visibleSubRowIds?: Record<string, unknown>;\n rowsLength?: number;\n level?: number;\n columns?: Record<string, unknown>;\n expandedRows?: Record<string, { isOpen: boolean }>;\n rows?: Array<{ original: unknown }>;\n};\n\nexport const Row = ({ row, isLastRow, lastRow, highlightSubstring, index, style, level = 0, expandedRows, rows }: TProps) => {\n const {\n lastNonStickyColumnIndex,\n checkboxConfig,\n onRowClick,\n rowOptions,\n disableOptionsForRowIndex = null,\n getSumOfNextVisibleColumnWidth,\n onRowEdit,\n inlineEditColumns,\n tableActions,\n dndSortableUtils,\n withSortable,\n withDraggable,\n getInnerRowData,\n showNewItem,\n rawData,\n dragConfig,\n getFullRowDataOnClick,\n selectedRowId,\n rowWrapper: RowWrapper,\n isCellClickDisabled,\n rowAdditionalActions,\n hoverConfig,\n addPendingEdit,\n removePendingEdit,\n fieldOperationLoading,\n clearRowPendingEdits,\n saveRowPendingEdits,\n pendingEdits: contextPendingEdits,\n } = useContext(TableContext);\n\n const tableConfig = useTableConfig();\n\n const isCheckbox = Boolean(checkboxConfig);\n const { activeInlineEdit, setActiveInlineEdit } = useContext(TableContext);\n const inlineEditing = activeInlineEdit?.rowId === row.original.id ? activeInlineEdit?.columnKey : null;\n const isInlineEditing = Boolean(inlineEditing);\n const setInlineEditing = (columnKey: string | null) => {\n if (columnKey === null) setActiveInlineEdit?.(null);\n else setActiveInlineEdit?.({ rowId: String(row.original.id), columnKey });\n };\n const [rowHovering, setRowHovering] = useState<string | number | null>(null);\n const [editedCellValue, setEditedCellValue] = useState<string | null>(null);\n const [currentData, setCurrentData] = useState<Record<string, unknown> | null>(null);\n const [loadingExpand, setLoadingExpand] = useState(false);\n const [isDraggingFile, setIsDraggingFile] = useState(false);\n\n const prevInlineEditingRef = useRef<string | null>(null);\n useEffect(() => {\n const wasEditing = prevInlineEditingRef.current;\n const isNowEditing = inlineEditing;\n\n if (wasEditing && !isNowEditing) {\n const pendingEdit = contextPendingEdits?.[row.original.id]?.[wasEditing];\n if (pendingEdit) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === wasEditing);\n if (currentCell) {\n const result = validateCellValue(pendingEdit.value, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid && addPendingEdit) {\n addPendingEdit(String(row.original.id), wasEditing, {\n ...pendingEdit,\n validationError: result.error,\n });\n }\n }\n }\n }\n\n prevInlineEditingRef.current = isNowEditing ?? null;\n }, [inlineEditing, row.original.id, row.cells, contextPendingEdits, addPendingEdit]);\n\n useEffect(() => {\n if (rawData) {\n const idKey = String(row?.original?.id);\n setCurrentData(rawData[idKey]?.[row?.cells[0].column.Header as string] || rawData[idKey]?.[0]);\n }\n }, [rawData, row?.original?.id, row?.cells]);\n\n const sortableResult = useSortable({ id: row.original.id, data: { ...row.original }, disabled: !withSortable });\n const draggableResult = useDraggable({ id: row.original.id, data: { ...row.original }, disabled: !!withSortable });\n const { listeners, transform, setNodeRef, isDragging, attributes, active, over, ...rest } = withSortable\n ? sortableResult\n : draggableResult;\n\n const { setNodeRef: setDroppableNodeRef } = useDroppable({\n id: `table-file-dropzone-${row?.original?.id}`,\n data: { type: 'table-file-dropzone', folderId: row?.original?.id, isFolder: row?.original?.type === 'folder' },\n });\n\n const dndStyles = {\n transform: CSS.Transform.toString(transform),\n transition: withSortable ? (rest as { transition?: string }).transition : undefined,\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: isDragging ? '0.5' : '1',\n };\n\n const isOverOtherContext = (): boolean => {\n if (!active || !over || !withSortable) return false;\n if (dndSortableUtils?.checkOverEachItem) return dndSortableUtils.checkOverEachItem(active, over) && Boolean(over);\n return active.data.current?.type !== over.data.current?.type && Boolean(over);\n };\n\n const handleCellValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditedCellValue(e.target.value);\n };\n\n const handleCloseEdit = () => {\n if (fieldOperationLoading) return;\n setInlineEditing(null);\n };\n\n const validationRef = useRef<(() => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) | null>(null);\n\n const registerValidation = useCallback(\n (validateFn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => {\n validationRef.current = validateFn;\n },\n [],\n );\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n const handleRowCancelEdit = useCallback(() => {\n if (clearRowPendingEdits) clearRowPendingEdits(String(row.original.id));\n }, [clearRowPendingEdits, row.original.id]);\n\n const handleRowConfirmEdit = useCallback(() => {\n if (validationRef.current) {\n const result = validationRef.current();\n if (!result.isValid) return;\n if (inlineEditing && result.value !== undefined && addPendingEdit) {\n addPendingEdit(String(row.original.id), inlineEditing, {\n value: result.value,\n originalValue: row.original[inlineEditing],\n meta: result.meta || undefined,\n });\n }\n } else if (inlineEditing) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === inlineEditing);\n if (currentCell) {\n const pendingValue = contextPendingEdits?.[row.original.id]?.[inlineEditing]?.value;\n const valueToValidate = pendingValue !== undefined ? pendingValue : currentCell.value;\n const result = validateCellValue(valueToValidate as string | boolean | null | undefined, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n tableConfigRef.current?.showNotification?.('error', result.error || 'Validation failed');\n return;\n }\n }\n }\n\n if (saveRowPendingEdits) saveRowPendingEdits(String(row.original.id));\n }, [saveRowPendingEdits, row.original, row.cells, inlineEditing, addPendingEdit, contextPendingEdits]);\n\n const handleUpdateCellData = (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null,\n ) => {\n const _item = { ...row.original };\n const updatedValue = directValue !== undefined ? directValue : editedCellValue;\n if (inlineEditing && updatedValue !== undefined) {\n _item[inlineEditing] = updatedValue;\n if (onRowEdit) onRowEdit(_item, index, inlineEditing, updatedValue, meta);\n if (removePendingEdit) removePendingEdit(String(row.original.id), inlineEditing);\n }\n handleCloseEdit();\n };\n\n const ref = useRef<HTMLElement>(null);\n\n const handleCellClick = (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => {\n if (isCellClickDisabled) return;\n event?.stopPropagation();\n if (inlineEditing === key) return;\n\n if (onRowEdit) {\n if (inlineEditColumns?.includes(key)) {\n setInlineEditing(key);\n setEditedCellValue(String(row.original[key]));\n } else {\n const msg = tableConfig?.getSystemMessage?.('notAllowedInlineEdit') || 'Inline Edit is not allowed for this column';\n tableConfig?.showNotification?.('error', msg);\n }\n return;\n }\n\n if (onRowClick) {\n onRowClick(data, idx, row.original, rows?.map((_row: { original: unknown }) => _row.original) || []);\n } else if (!onRowClick && checkboxConfig) {\n const _id = row.original.id;\n const checkEvent = { target: { checked: !checkboxConfig.checkedIds.includes(_id) } };\n checkboxConfig.onItemCheck(checkEvent, _id);\n }\n };\n\n const toggleRowExpand = async () => {\n setLoadingExpand(true);\n if (getInnerRowData) {\n await getInnerRowData(row?.original?.id, row?.original, !(expandedRows?.[row?.original?.id as string]?.isOpen ?? false), row?.original?.__level || 0);\n }\n setLoadingExpand(false);\n };\n\n\n\n\n const totalWidth = useMemo(() => {\n return row.cells.filter((c: TableCell) => c.column?.visible).map((c: TableCell) => c.column?.width ?? 0).reduce((a: number, b: number) => a + b, 0);\n }, [row.cells]);\n\n const isDraggingOver = useMemo(() => {\n return dragConfig?.draggingOver && dragConfig?.draggingOver === row?.original?.id;\n }, [dragConfig, row?.original?.id]);\n\n const dropPosition = useMemo(() => {\n if (!isDraggingOver) return null;\n return dragConfig?.dropPosition || 'inside';\n }, [isDraggingOver, dragConfig?.dropPosition]);\n\n const isDraggingOverInside = Boolean(isDraggingOver && dropPosition === 'inside');\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n const isSelected =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(row?.original?.id);\n\n const bgColor = cn({\n 'bg-neutral-100 dark:bg-black-600': rowHovering === row?.original?.id && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-700': isSelected && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-black-700': !row?.original?.is_read && showNewItem && !row?.original?.__isLoading && _notHovering && !isInlineEditing,\n // 'bg-white dark:bg-black-700': cell.column.sticky && rowHovering !== id,\n 'bg-warning-50 dark:bg-warning-975': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-50 dark:bg-error-975': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-success-50 dark:bg-success-975': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n [getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string]]: row?.original?.__rowBgStatus && !isInlineEditing,\n });\n\n return (\n <tr\n {...row.getRowProps()}\n ref={withDraggable || withSortable ? setNodeRef : null}\n key={row.original.id}\n data-row-id={row.original.id}\n className={cn(\n `text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${checkboxConfig?.selectionDisabledRowIds?.includes(row?.original?.id) ? 'opacity-50' : ''} border-t`,\n isDragging ? 'z-40' : '',\n isOverOtherContext() ? 'shadow-dnd-drop' : '',\n withDraggable && over && over?.data?.current?.type === 'table-file-dropzone' && over?.data?.current?.folderId === row?.original?.id && row?.original?.type === 'folder' ? 'bg-primary-50' : '',\n row?.original?.isDefinedActionRow ? 'bg-primary-50' : '',\n isDraggingOverInside ? 'z-50' : '',\n bgColor ? bgColor : 'bg-white dark:bg-black-800',\n )}\n style={{ ...style, ...(withSortable ? dndStyles : {}), width: 'max-content' }}\n {...(withDraggable || withSortable ? attributes : {})}\n {...(withDraggable || withSortable ? listeners : {})}\n >\n {isDraggingOverInside && dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <div className='bg-primary-200 px-2 py-1 rounded'>\n {dragConfig?.dragOperation === 'COPY' ? (\n <AddRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n ) : (\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n )}\n </div>\n </div>\n ) : null}\n {isDraggingOverInside && !dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 16 }} className='text-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'before' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'after' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n\n {row?.original?.isDefinedActionRow ? (\n <ActionCell\n cells={row.cells}\n id={row?.original?.id}\n isCheckbox={checkboxConfig}\n level={level}\n name={row?.original?.name as string}\n onClick={row?.original?.onClick as () => void}\n rowHovering={rowHovering || ''}\n isRoot={row?.original?.isRoot as boolean}\n totalWidth={totalWidth}\n row={row.original as Record<string, unknown>}\n uploadCell={row?.original?.uploadCell as boolean}\n disabled={row?.original?.disabled as boolean}\n disabledTooltip={row?.original?.disabledTooltip as string}\n />\n ) : RowWrapper ? (\n <RowWrapper data={row.original} setIsDraggingFile={setIsDraggingFile}>\n <RowContent\n isDraggingOver={isDraggingOverInside}\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n </RowWrapper>\n ) : (\n <RowContent\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n isDraggingOver={isDraggingOverInside}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n )}\n </tr>\n );\n};\n\ninterface RowContentProps {\n withDraggable?: boolean;\n setDroppableNodeRef: (node: HTMLElement | null) => void;\n isLastRow?: boolean;\n lastRow?: unknown;\n isCheckbox: boolean;\n checkboxConfig: Record<string, unknown> | null;\n row: TableRowData;\n rowHovering: string | number | null;\n tableActions?: ((rowData: Record<string, unknown>, index: number) => React.ReactNode) | null;\n disableOptionsForRowIndex?: number | null;\n index: number;\n showNewItem?: boolean;\n currentData: Record<string, unknown> | null;\n lastNonStickyColumnIndex?: (() => number | null) | null;\n getSumOfNextVisibleColumnWidth?: (index: number) => number | null;\n toggleRowExpand: () => Promise<void>;\n loadingExpand: boolean;\n cellRef: React.RefObject<HTMLElement | null>;\n handleCellClick: (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => void;\n getFullRowDataOnClick?: boolean;\n handleCellValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: Record<string, unknown> | null) => void;\n handleRowCancelEdit: () => void;\n handleRowConfirmEdit: () => void;\n registerValidation: (fn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => void;\n inlineEditing: string | null;\n isInlineEditing: boolean;\n setRowHovering: (id: string | number | null) => void;\n highlightSubstring?: (value: string) => React.ReactNode;\n rowOptions?: TRowOption[] | ((rowData: Record<string, unknown>) => TRowOption[] | null) | null;\n level?: number;\n isDraggingFile?: boolean;\n isDraggingOver?: boolean;\n rowAdditionalActions?: unknown;\n hoverConfig?: { onHover?: (data: Record<string, unknown>) => React.ReactNode };\n isSelected?: boolean;\n}\n\nconst RowContent = ({\n withDraggable,\n setDroppableNodeRef,\n isLastRow,\n lastRow,\n isCheckbox,\n checkboxConfig,\n row,\n rowHovering,\n tableActions,\n disableOptionsForRowIndex,\n index,\n showNewItem,\n currentData,\n lastNonStickyColumnIndex,\n getSumOfNextVisibleColumnWidth,\n toggleRowExpand,\n loadingExpand,\n cellRef,\n handleCellClick,\n getFullRowDataOnClick,\n handleCellValueChange,\n handleUpdateCellData,\n handleRowCancelEdit,\n handleRowConfirmEdit,\n registerValidation,\n inlineEditing,\n isInlineEditing,\n setRowHovering,\n highlightSubstring,\n rowOptions,\n level,\n isDraggingFile,\n isDraggingOver,\n rowAdditionalActions,\n hoverConfig,\n isSelected,\n}: RowContentProps) => {\n const [isRowContentHovering, setIsRowContentHovering] = useState(false);\n const {\n getPendingEdit: getPendingEditFn,\n hasPendingEdit: hasPendingEditFn,\n pendingEdits,\n tableHeaders,\n pendingEditsCount,\n scrollToCell,\n } = useContext(TableContext);\n const rowHasPendingEdits = pendingEdits?.[row.original.id] && Object.keys(pendingEdits[row.original.id]).length > 0;\n const tableHasAnyPendingEdits = (pendingEditsCount ?? 0) > 0;\n const resolvedRowOptions = useMemo<TRowOption[]>(() => {\n if (Array.isArray(rowOptions)) return rowOptions;\n if (typeof rowOptions === 'function') {\n const options = rowOptions({ ...row.original, rowIndex: index });\n return Array.isArray(options) ? options : [];\n }\n return [];\n }, [rowOptions, row.original, index]);\n\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata | undefined) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n // Only apply the selected background when the row is not being hovered, so on hover the icon cells\n // (checkbox, actions, options) fall back to the same gray hover background as the data cells.\n const selectedBg =\n isSelected && !isInlineEditing && rowHovering !== row?.original?.id ? 'bg-primary-100 dark:bg-primary-950' : undefined;\n\n const statusBorderClass = cn('pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40', {\n 'bg-success-400 dark:bg-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-400 dark:bg-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-warning-400 dark:bg-warning-500': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n });\n\n return (\n <div\n ref={withDraggable ? setDroppableNodeRef : null}\n className={isDraggingOver ? 'border-2 border-primary-400 dark:border-primary-500 rounded-sm' : ''}\n >\n <div className={statusBorderClass} />\n <div className='flex' ref={isLastRow ? (lastRow as React.Ref<HTMLDivElement>) : null}>\n {tableHasAnyPendingEdits && (\n <PendingEditCell\n rowId={String(row.original.id)}\n rowIndex={index}\n pendingEdits={pendingEdits}\n tableHeaders={tableHeaders}\n rowHasPendingEdits={!!rowHasPendingEdits}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isInlineEditing={isInlineEditing}\n is_read={!!row.original.is_read}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={showNewItem}\n onScrollToCell={scrollToCell}\n />\n )}\n\n {isCheckbox && (\n <CheckboxCell\n checkboxConfig={checkboxConfig as never}\n id={String(row.original.id)}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isDisabled={!!row?.original?.__isLoading}\n isDraggingOver={isDraggingOver}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n showNewItem={showNewItem}\n currentData={currentData ?? {}}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n hasPendingEditsColumn={tableHasAnyPendingEdits}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n\n {tableActions ? (\n <RowActionCell\n tableActions={tableActions as (rowData: Record<string, unknown>, index: number) => JSX.Element}\n disableOptionsForRowIndex={disableOptionsForRowIndex ?? null}\n id={String(row.original.id)}\n index={index}\n is_read={!!row?.original?.is_read}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row?.original?.is_row_modified}\n is_deleted={_isDeletedRow}\n currentData={currentData ?? {}}\n is_added={_isNewRow}\n rowData={row.original as Record<string, unknown>}\n rowHovering={rowHovering}\n isDisabled={!!row?.original?.__isLoading}\n bgColor={isDraggingFile ? 'bg-primary-50' : row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n ) : null}\n\n <div\n className='relative flex-1'\n id={`row-${row.original.id}`}\n onMouseEnter={() => setIsRowContentHovering(true)}\n onMouseLeave={() => setIsRowContentHovering(false)}\n >\n {row.cells\n .filter((cell: TableCell) => cell?.column?.visible !== false)\n .map((cell: TableCell, y: number) => {\n const isLastCell = y === lastNonStickyColumnIndex?.();\n const isFirstStickyCell = y === (lastNonStickyColumnIndex?.() ?? -1) + 1;\n const nextWidthSum = cell?.column?.sticky ? (getSumOfNextVisibleColumnWidth?.(y) ?? 0) : 0;\n\n if (row.original?.__isLoading) {\n return (\n <LoaderCell cell={cell as unknown as { column: { width: number; sticky?: boolean; sequence?: number } }} id={y} nextWidthSum={nextWidthSum} isLastCell={isLastCell} rowHovering={rowHovering} index={y} key={y} isFirstStickyCell={isFirstStickyCell} />\n );\n }\n\n const pendingEdit = getPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n const hasPending = hasPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n\n return (\n <DataCell\n cell={cell as unknown as import('../../types').ICell}\n rowHovering={rowHovering}\n isFirstStickyCell={isFirstStickyCell}\n level={level ?? 0}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n key={cell?.column?.key}\n index={y}\n cellRef={cellRef as React.RefObject<HTMLDivElement>}\n currentData={currentData as { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean }}\n handleCellClick={(e?: React.MouseEvent) => { if (e) handleCellClick(e, getFullRowDataOnClick ? row.original : String(row.original.id), y, cell?.column?.key || ''); }}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n registerValidation={registerValidation}\n id={row.original.id}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n isLastCell={isLastCell}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n nextWidthSum={nextWidthSum}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring as ((value: string) => JSX.Element) | undefined}\n isDraggingOver={isDraggingOver}\n isLoading={!!row?.original?.__isLoading}\n pendingEdit={pendingEdit}\n hasPendingEdit={hasPending}\n pendingValidationError={pendingEdit?.validationError}\n />\n );\n })}\n\n {hoverConfig?.onHover &&\n isRowContentHovering &&\n createPortal(\n <div className='absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl'>{hoverConfig.onHover(row.original) as React.ReactNode}</div>,\n document.getElementById(`row-${row.original.id}`) as HTMLElement,\n )}\n </div>\n\n {(resolvedRowOptions.length > 0 || !!rowAdditionalActions) && (\n <RowOptionsCell\n rowId={row.original.id}\n rowOptions={resolvedRowOptions}\n disableOption={disableOptionsForRowIndex !== null || !!row?.original?.__isLoading}\n rowHovering={rowHovering}\n setRowHovering={setRowHovering}\n is_read={!!row.original.is_read}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_incomplete={row?.original?.status === 'Incomplete'}\n currentData={currentData ?? {}}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n isDraggingOver={!!isDraggingOver}\n rowAdditionalActions={rowAdditionalActions as (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode}\n rowData={row.original as Record<string, unknown>}\n index={index}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n onConfirmEdit={handleRowConfirmEdit}\n onCancelEdit={handleRowCancelEdit}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["Row","row","isLastRow","lastRow","highlightSubstring","index","style","level","expandedRows","rows","lastNonStickyColumnIndex","checkboxConfig","onRowClick","rowOptions","disableOptionsForRowIndex","getSumOfNextVisibleColumnWidth","onRowEdit","inlineEditColumns","tableActions","dndSortableUtils","withSortable","withDraggable","getInnerRowData","showNewItem","rawData","dragConfig","getFullRowDataOnClick","selectedRowId","RowWrapper","isCellClickDisabled","rowAdditionalActions","hoverConfig","addPendingEdit","removePendingEdit","fieldOperationLoading","clearRowPendingEdits","saveRowPendingEdits","contextPendingEdits","useContext","TableContext","tableConfig","useTableConfig","isCheckbox","activeInlineEdit","setActiveInlineEdit","inlineEditing","isInlineEditing","setInlineEditing","columnKey","rowHovering","setRowHovering","useState","editedCellValue","setEditedCellValue","currentData","setCurrentData","loadingExpand","setLoadingExpand","isDraggingFile","setIsDraggingFile","prevInlineEditingRef","useRef","useEffect","wasEditing","isNowEditing","pendingEdit","currentCell","c","result","validateCellValue","idKey","sortableResult","useSortable","draggableResult","useDraggable","listeners","transform","setNodeRef","isDragging","attributes","active","over","rest","setDroppableNodeRef","useDroppable","dndStyles","CSS","isOverOtherContext","handleCellValueChange","e","handleCloseEdit","validationRef","registerValidation","useCallback","validateFn","tableConfigRef","handleRowCancelEdit","handleRowConfirmEdit","pendingValue","valueToValidate","handleUpdateCellData","directValue","meta","_item","updatedValue","ref","handleCellClick","event","data","idx","key","msg","_row","_id","checkEvent","toggleRowExpand","totalWidth","useMemo","a","b","isDraggingOver","dropPosition","isDraggingOverInside","_meta","_notHovering","_notLoading","_isNewRow","_isDeletedRow","_isModifiedRow","isSelected","bgColor","cn","getTableRowBgClassNamesByStatus","createElement","jsx","AddRounded","SubdirectoryArrowLeftRounded","ActionCell","RowContent","cellRef","isRowContentHovering","setIsRowContentHovering","getPendingEditFn","hasPendingEditFn","pendingEdits","tableHeaders","pendingEditsCount","scrollToCell","rowHasPendingEdits","tableHasAnyPendingEdits","resolvedRowOptions","options","selectedBg","statusBorderClass","jsxs","PendingEditCell","CheckboxCell","RowActionCell","cell","y","isLastCell","isFirstStickyCell","nextWidthSum","LoaderCell","hasPending","DataCell","createPortal","RowOptionsCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"row.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/row.tsx"],"sourcesContent":["import { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SubdirectoryArrowLeftRounded } from '@mui/icons-material';\nimport AddRounded from '@mui/icons-material/AddRounded';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { TableContext } from '../../context';\nimport { ActionCell } from '../cell/ActionCell';\nimport { CheckboxCell } from '../cell/CheckboxCell';\nimport { DataCell } from '../cell/DataCell';\nimport { validateCellValue } from '../../validateCell';\nimport { LoaderCell } from '../cell/LoaderCell';\nimport { PendingEditCell } from '../cell/PendingEditCell';\nimport { RowActionCell } from '../cell/RowActionCell';\nimport { RowOptionsCell } from '../cell/RowOptionsCell';\n\ntype TRowMetadata = {\n is_modified: object;\n is_new: boolean;\n is_deleted: boolean;\n is_added: boolean;\n __is_modified?: boolean;\n __is_edited?: boolean;\n __is_deleted?: boolean;\n __is_new?: boolean;\n __is_added?: boolean;\n};\n\ninterface TableCell {\n column: {\n key?: string;\n visible?: boolean;\n width?: number;\n sticky?: boolean;\n Header?: string;\n type?: string;\n is_required?: boolean;\n meta?: Record<string, unknown>;\n [key: string]: unknown;\n };\n value?: unknown;\n [key: string]: unknown;\n}\n\ninterface RowOriginal {\n id: string | number;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n status?: string;\n type?: string;\n __isLoading?: boolean;\n __level?: number;\n __rowBgStatus?: string;\n __rowMetadata?: { __is_modified?: boolean };\n isDefinedActionRow?: boolean;\n isRoot?: boolean;\n name?: string | { props?: { text?: string } };\n onClick?: () => void;\n uploadCell?: boolean;\n disabled?: boolean;\n disabledTooltip?: string;\n [key: string]: unknown;\n}\n\ninterface TableRowData {\n original: RowOriginal;\n cells: TableCell[];\n getRowProps: () => Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ntype TRowOption = {\n key: string;\n label: React.ReactNode;\n isVisible?: boolean;\n [k: string]: unknown;\n};\n\ntype TProps = {\n row: TableRowData;\n isLastRow?: boolean;\n lastRow?: unknown;\n getSubRows?: () => unknown;\n prepareRow?: (row: unknown) => void;\n highlightSubstring?: (value: string) => JSX.Element;\n index: number;\n style?: Record<string, unknown>;\n visibleSubRowIds?: Record<string, unknown>;\n rowsLength?: number;\n level?: number;\n columns?: Record<string, unknown>;\n expandedRows?: Record<string, { isOpen: boolean }>;\n rows?: Array<{ original: unknown }>;\n};\n\nexport const Row = ({ row, isLastRow, lastRow, highlightSubstring, index, style, level = 0, expandedRows, rows }: TProps) => {\n const {\n lastNonStickyColumnIndex,\n checkboxConfig,\n onRowClick,\n rowOptions,\n disableOptionsForRowIndex = null,\n getSumOfNextVisibleColumnWidth,\n onRowEdit,\n inlineEditColumns,\n tableActions,\n dndSortableUtils,\n withSortable,\n withDraggable,\n getInnerRowData,\n showNewItem,\n rawData,\n dragConfig,\n getFullRowDataOnClick,\n selectedRowId,\n rowWrapper: RowWrapper,\n isCellClickDisabled,\n rowAdditionalActions,\n hoverConfig,\n addPendingEdit,\n removePendingEdit,\n fieldOperationLoading,\n clearRowPendingEdits,\n saveRowPendingEdits,\n pendingEdits: contextPendingEdits,\n } = useContext(TableContext);\n\n const tableConfig = useTableConfig();\n\n const isCheckbox = Boolean(checkboxConfig);\n const { activeInlineEdit, setActiveInlineEdit } = useContext(TableContext);\n const inlineEditing = activeInlineEdit?.rowId === row.original.id ? activeInlineEdit?.columnKey : null;\n const isInlineEditing = Boolean(inlineEditing);\n const setInlineEditing = (columnKey: string | null) => {\n if (columnKey === null) setActiveInlineEdit?.(null);\n else setActiveInlineEdit?.({ rowId: String(row.original.id), columnKey });\n };\n const [rowHovering, setRowHovering] = useState<string | number | null>(null);\n const [editedCellValue, setEditedCellValue] = useState<string | null>(null);\n const [currentData, setCurrentData] = useState<Record<string, unknown> | null>(null);\n const [loadingExpand, setLoadingExpand] = useState(false);\n const [isDraggingFile, setIsDraggingFile] = useState(false);\n\n const prevInlineEditingRef = useRef<string | null>(null);\n useEffect(() => {\n const wasEditing = prevInlineEditingRef.current;\n const isNowEditing = inlineEditing;\n\n if (wasEditing && !isNowEditing) {\n const pendingEdit = contextPendingEdits?.[row.original.id]?.[wasEditing];\n if (pendingEdit) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === wasEditing);\n if (currentCell) {\n const result = validateCellValue(pendingEdit.value, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid && addPendingEdit) {\n addPendingEdit(String(row.original.id), wasEditing, {\n ...pendingEdit,\n validationError: result.error,\n });\n }\n }\n }\n }\n\n prevInlineEditingRef.current = isNowEditing ?? null;\n }, [inlineEditing, row.original.id, row.cells, contextPendingEdits, addPendingEdit]);\n\n useEffect(() => {\n if (rawData) {\n const idKey = String(row?.original?.id);\n setCurrentData(rawData[idKey]?.[row?.cells[0].column.Header as string] || rawData[idKey]?.[0]);\n }\n }, [rawData, row?.original?.id, row?.cells]);\n\n const sortableResult = useSortable({ id: row.original.id, data: { ...row.original }, disabled: !withSortable });\n const draggableResult = useDraggable({ id: row.original.id, data: { ...row.original }, disabled: !!withSortable });\n const { listeners, transform, setNodeRef, isDragging, attributes, active, over, ...rest } = withSortable\n ? sortableResult\n : draggableResult;\n\n const { setNodeRef: setDroppableNodeRef } = useDroppable({\n id: `table-file-dropzone-${row?.original?.id}`,\n data: { type: 'table-file-dropzone', folderId: row?.original?.id, isFolder: row?.original?.type === 'folder' },\n });\n\n const dndStyles = {\n transform: CSS.Transform.toString(transform),\n transition: withSortable ? (rest as { transition?: string }).transition : undefined,\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: isDragging ? '0.5' : '1',\n };\n\n const isOverOtherContext = (): boolean => {\n if (!active || !over || !withSortable) return false;\n if (dndSortableUtils?.checkOverEachItem) return dndSortableUtils.checkOverEachItem(active, over) && Boolean(over);\n return active.data.current?.type !== over.data.current?.type && Boolean(over);\n };\n\n const handleCellValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditedCellValue(e.target.value);\n };\n\n const handleCloseEdit = () => {\n if (fieldOperationLoading) return;\n setInlineEditing(null);\n };\n\n const validationRef = useRef<(() => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) | null>(null);\n\n const registerValidation = useCallback(\n (validateFn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => {\n validationRef.current = validateFn;\n },\n [],\n );\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n const handleRowCancelEdit = useCallback(() => {\n if (clearRowPendingEdits) clearRowPendingEdits(String(row.original.id));\n }, [clearRowPendingEdits, row.original.id]);\n\n const handleRowConfirmEdit = useCallback(() => {\n if (validationRef.current) {\n const result = validationRef.current();\n if (!result.isValid) return;\n if (inlineEditing && result.value !== undefined && addPendingEdit) {\n addPendingEdit(String(row.original.id), inlineEditing, {\n value: result.value,\n originalValue: row.original[inlineEditing],\n meta: result.meta || undefined,\n });\n }\n } else if (inlineEditing) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === inlineEditing);\n if (currentCell) {\n const pendingValue = contextPendingEdits?.[row.original.id]?.[inlineEditing]?.value;\n const valueToValidate = pendingValue !== undefined ? pendingValue : currentCell.value;\n const result = validateCellValue(valueToValidate as string | boolean | null | undefined, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n tableConfigRef.current?.showNotification?.('error', result.error || 'Validation failed');\n return;\n }\n }\n }\n\n if (saveRowPendingEdits) saveRowPendingEdits(String(row.original.id));\n }, [saveRowPendingEdits, row.original, row.cells, inlineEditing, addPendingEdit, contextPendingEdits]);\n\n const handleUpdateCellData = (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null,\n ) => {\n const _item = { ...row.original };\n const updatedValue = directValue !== undefined ? directValue : editedCellValue;\n if (inlineEditing && updatedValue !== undefined) {\n _item[inlineEditing] = updatedValue;\n if (onRowEdit) onRowEdit(_item, index, inlineEditing, updatedValue, meta);\n if (removePendingEdit) removePendingEdit(String(row.original.id), inlineEditing);\n }\n handleCloseEdit();\n };\n\n const ref = useRef<HTMLElement>(null);\n\n const handleCellClick = (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => {\n if (isCellClickDisabled) return;\n event?.stopPropagation();\n if (inlineEditing === key) return;\n\n if (onRowEdit) {\n if (inlineEditColumns?.includes(key)) {\n setInlineEditing(key);\n setEditedCellValue(String(row.original[key]));\n } else {\n const msg = tableConfig?.getSystemMessage?.('notAllowedInlineEdit') || 'Inline Edit is not allowed for this column';\n tableConfig?.showNotification?.('error', msg);\n }\n return;\n }\n\n if (onRowClick) {\n onRowClick(data, idx, row.original, rows?.map((_row: { original: unknown }) => _row.original) || []);\n } else if (!onRowClick && checkboxConfig) {\n const _id = row.original.id;\n const checkEvent = { target: { checked: !checkboxConfig.checkedIds.includes(_id) } };\n checkboxConfig.onItemCheck(checkEvent, _id);\n }\n };\n\n const toggleRowExpand = async () => {\n setLoadingExpand(true);\n if (getInnerRowData) {\n await getInnerRowData(row?.original?.id, row?.original, !(expandedRows?.[row?.original?.id as string]?.isOpen ?? false), row?.original?.__level || 0);\n }\n setLoadingExpand(false);\n };\n\n\n\n\n const totalWidth = useMemo(() => {\n return row.cells.filter((c: TableCell) => c.column?.visible).map((c: TableCell) => c.column?.width ?? 0).reduce((a: number, b: number) => a + b, 0);\n }, [row.cells]);\n\n const isDraggingOver = useMemo(() => {\n return dragConfig?.draggingOver && dragConfig?.draggingOver === row?.original?.id;\n }, [dragConfig, row?.original?.id]);\n\n const dropPosition = useMemo(() => {\n if (!isDraggingOver) return null;\n return dragConfig?.dropPosition || 'inside';\n }, [isDraggingOver, dragConfig?.dropPosition]);\n\n const isDraggingOverInside = Boolean(isDraggingOver && dropPosition === 'inside');\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n const isSelected =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(row?.original?.id);\n\n const bgColor = cn({\n 'bg-neutral-100 dark:bg-black-600': rowHovering === row?.original?.id && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-700': isSelected && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-black-700': !row?.original?.is_read && showNewItem && !row?.original?.__isLoading && _notHovering && !isInlineEditing,\n // 'bg-white dark:bg-black-700': cell.column.sticky && rowHovering !== id,\n 'bg-warning-50 dark:bg-warning-975': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-50 dark:bg-error-975': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-success-50 dark:bg-success-975': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n [getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string]]: row?.original?.__rowBgStatus && !isInlineEditing,\n });\n\n return (\n <tr\n {...row.getRowProps()}\n ref={withDraggable || withSortable ? setNodeRef : null}\n key={row.original.id}\n data-row-id={row.original.id}\n className={cn(\n `text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${checkboxConfig?.selectionDisabledRowIds?.includes(row?.original?.id) ? 'opacity-50' : ''} border-t`,\n isDragging ? 'z-40' : '',\n isOverOtherContext() ? 'shadow-dnd-drop' : '',\n withDraggable && over && over?.data?.current?.type === 'table-file-dropzone' && over?.data?.current?.folderId === row?.original?.id && row?.original?.type === 'folder' ? 'bg-primary-50' : '',\n row?.original?.isDefinedActionRow ? 'bg-primary-50' : '',\n isDraggingOverInside ? 'z-50' : '',\n bgColor ? bgColor : 'bg-white dark:bg-black-800',\n )}\n style={{ ...style, ...(withSortable ? dndStyles : {}), width: 'max-content' }}\n {...(withDraggable || withSortable ? attributes : {})}\n {...(withDraggable || withSortable ? listeners : {})}\n >\n {isDraggingOverInside && dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <div className='bg-primary-200 px-2 py-1 rounded'>\n {dragConfig?.dragOperation === 'COPY' ? (\n <AddRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n ) : (\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n )}\n </div>\n </div>\n ) : null}\n {isDraggingOverInside && !dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 16 }} className='text-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'before' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'after' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n\n {row?.original?.isDefinedActionRow ? (\n <ActionCell\n cells={row.cells}\n id={row?.original?.id}\n isCheckbox={checkboxConfig}\n level={level}\n name={row?.original?.name as string}\n onClick={row?.original?.onClick as () => void}\n rowHovering={rowHovering || ''}\n isRoot={row?.original?.isRoot as boolean}\n totalWidth={totalWidth}\n row={row.original as Record<string, unknown>}\n uploadCell={row?.original?.uploadCell as boolean}\n disabled={row?.original?.disabled as boolean}\n disabledTooltip={row?.original?.disabledTooltip as string}\n />\n ) : RowWrapper ? (\n <RowWrapper data={row.original} setIsDraggingFile={setIsDraggingFile}>\n <RowContent\n isDraggingOver={isDraggingOverInside}\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n </RowWrapper>\n ) : (\n <RowContent\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n isDraggingOver={isDraggingOverInside}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n )}\n </tr>\n );\n};\n\ninterface RowContentProps {\n withDraggable?: boolean;\n setDroppableNodeRef: (node: HTMLElement | null) => void;\n isLastRow?: boolean;\n lastRow?: unknown;\n isCheckbox: boolean;\n checkboxConfig: Record<string, unknown> | null;\n row: TableRowData;\n rowHovering: string | number | null;\n tableActions?: ((rowData: Record<string, unknown>, index: number) => React.ReactNode) | null;\n disableOptionsForRowIndex?: number | null;\n index: number;\n showNewItem?: boolean;\n currentData: Record<string, unknown> | null;\n lastNonStickyColumnIndex?: (() => number | null) | null;\n getSumOfNextVisibleColumnWidth?: (index: number) => number | null;\n toggleRowExpand: () => Promise<void>;\n loadingExpand: boolean;\n cellRef: React.RefObject<HTMLElement | null>;\n handleCellClick: (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => void;\n getFullRowDataOnClick?: boolean;\n handleCellValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: Record<string, unknown> | null) => void;\n handleRowCancelEdit: () => void;\n handleRowConfirmEdit: () => void;\n registerValidation: (fn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => void;\n inlineEditing: string | null;\n isInlineEditing: boolean;\n setRowHovering: (id: string | number | null) => void;\n highlightSubstring?: (value: string) => React.ReactNode;\n rowOptions?: TRowOption[] | ((rowData: Record<string, unknown>) => TRowOption[] | null) | null;\n level?: number;\n isDraggingFile?: boolean;\n isDraggingOver?: boolean;\n rowAdditionalActions?: unknown;\n hoverConfig?: { onHover?: (data: Record<string, unknown>) => React.ReactNode };\n isSelected?: boolean;\n}\n\nconst RowContent = ({\n withDraggable,\n setDroppableNodeRef,\n isLastRow,\n lastRow,\n isCheckbox,\n checkboxConfig,\n row,\n rowHovering,\n tableActions,\n disableOptionsForRowIndex,\n index,\n showNewItem,\n currentData,\n lastNonStickyColumnIndex,\n getSumOfNextVisibleColumnWidth,\n toggleRowExpand,\n loadingExpand,\n cellRef,\n handleCellClick,\n getFullRowDataOnClick,\n handleCellValueChange,\n handleUpdateCellData,\n handleRowCancelEdit,\n handleRowConfirmEdit,\n registerValidation,\n inlineEditing,\n isInlineEditing,\n setRowHovering,\n highlightSubstring,\n rowOptions,\n level,\n isDraggingFile,\n isDraggingOver,\n rowAdditionalActions,\n hoverConfig,\n isSelected,\n}: RowContentProps) => {\n const [isRowContentHovering, setIsRowContentHovering] = useState(false);\n const {\n getPendingEdit: getPendingEditFn,\n hasPendingEdit: hasPendingEditFn,\n pendingEdits,\n tableHeaders,\n pendingEditsCount,\n scrollToCell,\n } = useContext(TableContext);\n const rowHasPendingEdits = pendingEdits?.[row.original.id] && Object.keys(pendingEdits[row.original.id]).length > 0;\n const tableHasAnyPendingEdits = (pendingEditsCount ?? 0) > 0;\n const resolvedRowOptions = useMemo<TRowOption[]>(() => {\n if (Array.isArray(rowOptions)) return rowOptions;\n if (typeof rowOptions === 'function') {\n const options = rowOptions({ ...row.original, rowIndex: index });\n return Array.isArray(options) ? options : [];\n }\n return [];\n }, [rowOptions, row.original, index]);\n\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata | undefined) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n // Only apply the selected background when the row is not being hovered, so on hover the icon cells\n // (checkbox, actions, options) fall back to the same gray hover background as the data cells.\n const selectedBg =\n isSelected && !isInlineEditing && rowHovering !== row?.original?.id ? 'bg-primary-50 dark:bg-primary-700' : undefined;\n\n const statusBorderClass = cn('pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40', {\n 'bg-success-400 dark:bg-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-400 dark:bg-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-warning-400 dark:bg-warning-500': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n });\n\n return (\n <div\n ref={withDraggable ? setDroppableNodeRef : null}\n className={isDraggingOver ? 'border-2 border-primary-400 dark:border-primary-500 rounded-sm' : ''}\n >\n <div className={statusBorderClass} />\n <div className='flex' ref={isLastRow ? (lastRow as React.Ref<HTMLDivElement>) : null}>\n {tableHasAnyPendingEdits && (\n <PendingEditCell\n rowId={String(row.original.id)}\n rowIndex={index}\n pendingEdits={pendingEdits}\n tableHeaders={tableHeaders}\n rowHasPendingEdits={!!rowHasPendingEdits}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isInlineEditing={isInlineEditing}\n is_read={!!row.original.is_read}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={showNewItem}\n onScrollToCell={scrollToCell}\n />\n )}\n\n {isCheckbox && (\n <CheckboxCell\n checkboxConfig={checkboxConfig as never}\n id={String(row.original.id)}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isDisabled={!!row?.original?.__isLoading}\n isDraggingOver={isDraggingOver}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n showNewItem={showNewItem}\n currentData={currentData ?? {}}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n hasPendingEditsColumn={tableHasAnyPendingEdits}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n\n {tableActions ? (\n <RowActionCell\n tableActions={tableActions as (rowData: Record<string, unknown>, index: number) => JSX.Element}\n disableOptionsForRowIndex={disableOptionsForRowIndex ?? null}\n id={String(row.original.id)}\n index={index}\n is_read={!!row?.original?.is_read}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row?.original?.is_row_modified}\n is_deleted={_isDeletedRow}\n currentData={currentData ?? {}}\n is_added={_isNewRow}\n rowData={row.original as Record<string, unknown>}\n rowHovering={rowHovering}\n isDisabled={!!row?.original?.__isLoading}\n bgColor={isDraggingFile ? 'bg-primary-50' : row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n ) : null}\n\n <div\n className='relative flex-1'\n id={`row-${row.original.id}`}\n onMouseEnter={() => setIsRowContentHovering(true)}\n onMouseLeave={() => setIsRowContentHovering(false)}\n >\n {row.cells\n .filter((cell: TableCell) => cell?.column?.visible !== false)\n .map((cell: TableCell, y: number) => {\n const isLastCell = y === lastNonStickyColumnIndex?.();\n const isFirstStickyCell = y === (lastNonStickyColumnIndex?.() ?? -1) + 1;\n const nextWidthSum = cell?.column?.sticky ? (getSumOfNextVisibleColumnWidth?.(y) ?? 0) : 0;\n\n if (row.original?.__isLoading) {\n return (\n <LoaderCell cell={cell as unknown as { column: { width: number; sticky?: boolean; sequence?: number } }} id={y} nextWidthSum={nextWidthSum} isLastCell={isLastCell} rowHovering={rowHovering} index={y} key={y} isFirstStickyCell={isFirstStickyCell} />\n );\n }\n\n const pendingEdit = getPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n const hasPending = hasPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n\n return (\n <DataCell\n cell={cell as unknown as import('../../types').ICell}\n rowHovering={rowHovering}\n isFirstStickyCell={isFirstStickyCell}\n level={level ?? 0}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n key={cell?.column?.key}\n index={y}\n cellRef={cellRef as React.RefObject<HTMLDivElement>}\n currentData={currentData as { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean }}\n handleCellClick={(e?: React.MouseEvent) => { if (e) handleCellClick(e, getFullRowDataOnClick ? row.original : String(row.original.id), y, cell?.column?.key || ''); }}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n registerValidation={registerValidation}\n id={row.original.id}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n isLastCell={isLastCell}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n nextWidthSum={nextWidthSum}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring as ((value: string) => JSX.Element) | undefined}\n isDraggingOver={isDraggingOver}\n isLoading={!!row?.original?.__isLoading}\n pendingEdit={pendingEdit}\n hasPendingEdit={hasPending}\n pendingValidationError={pendingEdit?.validationError}\n />\n );\n })}\n\n {hoverConfig?.onHover &&\n isRowContentHovering &&\n createPortal(\n <div className='absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl'>{hoverConfig.onHover(row.original) as React.ReactNode}</div>,\n document.getElementById(`row-${row.original.id}`) as HTMLElement,\n )}\n </div>\n\n {(resolvedRowOptions.length > 0 || !!rowAdditionalActions) && (\n <RowOptionsCell\n rowId={row.original.id}\n rowOptions={resolvedRowOptions}\n disableOption={disableOptionsForRowIndex !== null || !!row?.original?.__isLoading}\n rowHovering={rowHovering}\n setRowHovering={setRowHovering}\n is_read={!!row.original.is_read}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_incomplete={row?.original?.status === 'Incomplete'}\n currentData={currentData ?? {}}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n isDraggingOver={!!isDraggingOver}\n rowAdditionalActions={rowAdditionalActions as (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode}\n rowData={row.original as Record<string, unknown>}\n index={index}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n onConfirmEdit={handleRowConfirmEdit}\n onCancelEdit={handleRowCancelEdit}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["Row","row","isLastRow","lastRow","highlightSubstring","index","style","level","expandedRows","rows","lastNonStickyColumnIndex","checkboxConfig","onRowClick","rowOptions","disableOptionsForRowIndex","getSumOfNextVisibleColumnWidth","onRowEdit","inlineEditColumns","tableActions","dndSortableUtils","withSortable","withDraggable","getInnerRowData","showNewItem","rawData","dragConfig","getFullRowDataOnClick","selectedRowId","RowWrapper","isCellClickDisabled","rowAdditionalActions","hoverConfig","addPendingEdit","removePendingEdit","fieldOperationLoading","clearRowPendingEdits","saveRowPendingEdits","contextPendingEdits","useContext","TableContext","tableConfig","useTableConfig","isCheckbox","activeInlineEdit","setActiveInlineEdit","inlineEditing","isInlineEditing","setInlineEditing","columnKey","rowHovering","setRowHovering","useState","editedCellValue","setEditedCellValue","currentData","setCurrentData","loadingExpand","setLoadingExpand","isDraggingFile","setIsDraggingFile","prevInlineEditingRef","useRef","useEffect","wasEditing","isNowEditing","pendingEdit","currentCell","c","result","validateCellValue","idKey","sortableResult","useSortable","draggableResult","useDraggable","listeners","transform","setNodeRef","isDragging","attributes","active","over","rest","setDroppableNodeRef","useDroppable","dndStyles","CSS","isOverOtherContext","handleCellValueChange","e","handleCloseEdit","validationRef","registerValidation","useCallback","validateFn","tableConfigRef","handleRowCancelEdit","handleRowConfirmEdit","pendingValue","valueToValidate","handleUpdateCellData","directValue","meta","_item","updatedValue","ref","handleCellClick","event","data","idx","key","msg","_row","_id","checkEvent","toggleRowExpand","totalWidth","useMemo","a","b","isDraggingOver","dropPosition","isDraggingOverInside","_meta","_notHovering","_notLoading","_isNewRow","_isDeletedRow","_isModifiedRow","isSelected","bgColor","cn","getTableRowBgClassNamesByStatus","createElement","jsx","AddRounded","SubdirectoryArrowLeftRounded","ActionCell","RowContent","cellRef","isRowContentHovering","setIsRowContentHovering","getPendingEditFn","hasPendingEditFn","pendingEdits","tableHeaders","pendingEditsCount","scrollToCell","rowHasPendingEdits","tableHasAnyPendingEdits","resolvedRowOptions","options","selectedBg","statusBorderClass","jsxs","PendingEditCell","CheckboxCell","RowActionCell","cell","y","isLastCell","isFirstStickyCell","nextWidthSum","LoaderCell","hasPending","DataCell","createPortal","RowOptionsCell"],"mappings":"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"}
|
|
@@ -325,7 +325,7 @@ const Fe = ({ row: i, isLastRow: Z, lastRow: w, highlightSubstring: ii, index: M
|
|
|
325
325
|
}
|
|
326
326
|
return [];
|
|
327
327
|
}, [x, e.original, a]), u = e?.original?.__rowMetadata || e?.original?._meta, y = g !== e?.original?.id, q = !e?.original?.__isLoading, C = !!(u?.__is_new || u?.__is_added || e?.original?.is_added || f?.is_added || // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms "added".
|
|
328
|
-
u?.is_new), R = !!(e?.original?.is_deleted || u?.__is_deleted || f?.is_deleted || u?.is_deleted), k = !!(e?.original?.is_modified || e?.original?.is_row_modified || u?.__is_modified || u?.__is_edited || f?.is_row_modified || u?.is_modified) && !C, G = K && !r && g !== e?.original?.id ? "bg-primary-
|
|
328
|
+
u?.is_new), R = !!(e?.original?.is_deleted || u?.__is_deleted || f?.is_deleted || u?.is_deleted), k = !!(e?.original?.is_modified || e?.original?.is_row_modified || u?.__is_modified || u?.__is_edited || f?.is_row_modified || u?.is_modified) && !C, G = K && !r && g !== e?.original?.id ? "bg-primary-50 dark:bg-primary-700" : void 0, ui = Oi("pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40", {
|
|
329
329
|
"bg-success-400 dark:bg-success-500": C && q && y && !r,
|
|
330
330
|
"bg-error-400 dark:bg-error-500": R && q && y && !r,
|
|
331
331
|
"bg-warning-400 dark:bg-warning-500": k && q && y && !r
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"row.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/row.tsx"],"sourcesContent":["import { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SubdirectoryArrowLeftRounded } from '@mui/icons-material';\nimport AddRounded from '@mui/icons-material/AddRounded';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { TableContext } from '../../context';\nimport { ActionCell } from '../cell/ActionCell';\nimport { CheckboxCell } from '../cell/CheckboxCell';\nimport { DataCell } from '../cell/DataCell';\nimport { validateCellValue } from '../../validateCell';\nimport { LoaderCell } from '../cell/LoaderCell';\nimport { PendingEditCell } from '../cell/PendingEditCell';\nimport { RowActionCell } from '../cell/RowActionCell';\nimport { RowOptionsCell } from '../cell/RowOptionsCell';\n\ntype TRowMetadata = {\n is_modified: object;\n is_new: boolean;\n is_deleted: boolean;\n is_added: boolean;\n __is_modified?: boolean;\n __is_edited?: boolean;\n __is_deleted?: boolean;\n __is_new?: boolean;\n __is_added?: boolean;\n};\n\ninterface TableCell {\n column: {\n key?: string;\n visible?: boolean;\n width?: number;\n sticky?: boolean;\n Header?: string;\n type?: string;\n is_required?: boolean;\n meta?: Record<string, unknown>;\n [key: string]: unknown;\n };\n value?: unknown;\n [key: string]: unknown;\n}\n\ninterface RowOriginal {\n id: string | number;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n status?: string;\n type?: string;\n __isLoading?: boolean;\n __level?: number;\n __rowBgStatus?: string;\n __rowMetadata?: { __is_modified?: boolean };\n isDefinedActionRow?: boolean;\n isRoot?: boolean;\n name?: string | { props?: { text?: string } };\n onClick?: () => void;\n uploadCell?: boolean;\n disabled?: boolean;\n disabledTooltip?: string;\n [key: string]: unknown;\n}\n\ninterface TableRowData {\n original: RowOriginal;\n cells: TableCell[];\n getRowProps: () => Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ntype TRowOption = {\n key: string;\n label: React.ReactNode;\n isVisible?: boolean;\n [k: string]: unknown;\n};\n\ntype TProps = {\n row: TableRowData;\n isLastRow?: boolean;\n lastRow?: unknown;\n getSubRows?: () => unknown;\n prepareRow?: (row: unknown) => void;\n highlightSubstring?: (value: string) => JSX.Element;\n index: number;\n style?: Record<string, unknown>;\n visibleSubRowIds?: Record<string, unknown>;\n rowsLength?: number;\n level?: number;\n columns?: Record<string, unknown>;\n expandedRows?: Record<string, { isOpen: boolean }>;\n rows?: Array<{ original: unknown }>;\n};\n\nexport const Row = ({ row, isLastRow, lastRow, highlightSubstring, index, style, level = 0, expandedRows, rows }: TProps) => {\n const {\n lastNonStickyColumnIndex,\n checkboxConfig,\n onRowClick,\n rowOptions,\n disableOptionsForRowIndex = null,\n getSumOfNextVisibleColumnWidth,\n onRowEdit,\n inlineEditColumns,\n tableActions,\n dndSortableUtils,\n withSortable,\n withDraggable,\n getInnerRowData,\n showNewItem,\n rawData,\n dragConfig,\n getFullRowDataOnClick,\n selectedRowId,\n rowWrapper: RowWrapper,\n isCellClickDisabled,\n rowAdditionalActions,\n hoverConfig,\n addPendingEdit,\n removePendingEdit,\n fieldOperationLoading,\n clearRowPendingEdits,\n saveRowPendingEdits,\n pendingEdits: contextPendingEdits,\n } = useContext(TableContext);\n\n const tableConfig = useTableConfig();\n\n const isCheckbox = Boolean(checkboxConfig);\n const { activeInlineEdit, setActiveInlineEdit } = useContext(TableContext);\n const inlineEditing = activeInlineEdit?.rowId === row.original.id ? activeInlineEdit?.columnKey : null;\n const isInlineEditing = Boolean(inlineEditing);\n const setInlineEditing = (columnKey: string | null) => {\n if (columnKey === null) setActiveInlineEdit?.(null);\n else setActiveInlineEdit?.({ rowId: String(row.original.id), columnKey });\n };\n const [rowHovering, setRowHovering] = useState<string | number | null>(null);\n const [editedCellValue, setEditedCellValue] = useState<string | null>(null);\n const [currentData, setCurrentData] = useState<Record<string, unknown> | null>(null);\n const [loadingExpand, setLoadingExpand] = useState(false);\n const [isDraggingFile, setIsDraggingFile] = useState(false);\n\n const prevInlineEditingRef = useRef<string | null>(null);\n useEffect(() => {\n const wasEditing = prevInlineEditingRef.current;\n const isNowEditing = inlineEditing;\n\n if (wasEditing && !isNowEditing) {\n const pendingEdit = contextPendingEdits?.[row.original.id]?.[wasEditing];\n if (pendingEdit) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === wasEditing);\n if (currentCell) {\n const result = validateCellValue(pendingEdit.value, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid && addPendingEdit) {\n addPendingEdit(String(row.original.id), wasEditing, {\n ...pendingEdit,\n validationError: result.error,\n });\n }\n }\n }\n }\n\n prevInlineEditingRef.current = isNowEditing ?? null;\n }, [inlineEditing, row.original.id, row.cells, contextPendingEdits, addPendingEdit]);\n\n useEffect(() => {\n if (rawData) {\n const idKey = String(row?.original?.id);\n setCurrentData(rawData[idKey]?.[row?.cells[0].column.Header as string] || rawData[idKey]?.[0]);\n }\n }, [rawData, row?.original?.id, row?.cells]);\n\n const sortableResult = useSortable({ id: row.original.id, data: { ...row.original }, disabled: !withSortable });\n const draggableResult = useDraggable({ id: row.original.id, data: { ...row.original }, disabled: !!withSortable });\n const { listeners, transform, setNodeRef, isDragging, attributes, active, over, ...rest } = withSortable\n ? sortableResult\n : draggableResult;\n\n const { setNodeRef: setDroppableNodeRef } = useDroppable({\n id: `table-file-dropzone-${row?.original?.id}`,\n data: { type: 'table-file-dropzone', folderId: row?.original?.id, isFolder: row?.original?.type === 'folder' },\n });\n\n const dndStyles = {\n transform: CSS.Transform.toString(transform),\n transition: withSortable ? (rest as { transition?: string }).transition : undefined,\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: isDragging ? '0.5' : '1',\n };\n\n const isOverOtherContext = (): boolean => {\n if (!active || !over || !withSortable) return false;\n if (dndSortableUtils?.checkOverEachItem) return dndSortableUtils.checkOverEachItem(active, over) && Boolean(over);\n return active.data.current?.type !== over.data.current?.type && Boolean(over);\n };\n\n const handleCellValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditedCellValue(e.target.value);\n };\n\n const handleCloseEdit = () => {\n if (fieldOperationLoading) return;\n setInlineEditing(null);\n };\n\n const validationRef = useRef<(() => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) | null>(null);\n\n const registerValidation = useCallback(\n (validateFn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => {\n validationRef.current = validateFn;\n },\n [],\n );\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n const handleRowCancelEdit = useCallback(() => {\n if (clearRowPendingEdits) clearRowPendingEdits(String(row.original.id));\n }, [clearRowPendingEdits, row.original.id]);\n\n const handleRowConfirmEdit = useCallback(() => {\n if (validationRef.current) {\n const result = validationRef.current();\n if (!result.isValid) return;\n if (inlineEditing && result.value !== undefined && addPendingEdit) {\n addPendingEdit(String(row.original.id), inlineEditing, {\n value: result.value,\n originalValue: row.original[inlineEditing],\n meta: result.meta || undefined,\n });\n }\n } else if (inlineEditing) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === inlineEditing);\n if (currentCell) {\n const pendingValue = contextPendingEdits?.[row.original.id]?.[inlineEditing]?.value;\n const valueToValidate = pendingValue !== undefined ? pendingValue : currentCell.value;\n const result = validateCellValue(valueToValidate as string | boolean | null | undefined, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n tableConfigRef.current?.showNotification?.('error', result.error || 'Validation failed');\n return;\n }\n }\n }\n\n if (saveRowPendingEdits) saveRowPendingEdits(String(row.original.id));\n }, [saveRowPendingEdits, row.original, row.cells, inlineEditing, addPendingEdit, contextPendingEdits]);\n\n const handleUpdateCellData = (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null,\n ) => {\n const _item = { ...row.original };\n const updatedValue = directValue !== undefined ? directValue : editedCellValue;\n if (inlineEditing && updatedValue !== undefined) {\n _item[inlineEditing] = updatedValue;\n if (onRowEdit) onRowEdit(_item, index, inlineEditing, updatedValue, meta);\n if (removePendingEdit) removePendingEdit(String(row.original.id), inlineEditing);\n }\n handleCloseEdit();\n };\n\n const ref = useRef<HTMLElement>(null);\n\n const handleCellClick = (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => {\n if (isCellClickDisabled) return;\n event?.stopPropagation();\n if (inlineEditing === key) return;\n\n if (onRowEdit) {\n if (inlineEditColumns?.includes(key)) {\n setInlineEditing(key);\n setEditedCellValue(String(row.original[key]));\n } else {\n const msg = tableConfig?.getSystemMessage?.('notAllowedInlineEdit') || 'Inline Edit is not allowed for this column';\n tableConfig?.showNotification?.('error', msg);\n }\n return;\n }\n\n if (onRowClick) {\n onRowClick(data, idx, row.original, rows?.map((_row: { original: unknown }) => _row.original) || []);\n } else if (!onRowClick && checkboxConfig) {\n const _id = row.original.id;\n const checkEvent = { target: { checked: !checkboxConfig.checkedIds.includes(_id) } };\n checkboxConfig.onItemCheck(checkEvent, _id);\n }\n };\n\n const toggleRowExpand = async () => {\n setLoadingExpand(true);\n if (getInnerRowData) {\n await getInnerRowData(row?.original?.id, row?.original, !(expandedRows?.[row?.original?.id as string]?.isOpen ?? false), row?.original?.__level || 0);\n }\n setLoadingExpand(false);\n };\n\n\n\n\n const totalWidth = useMemo(() => {\n return row.cells.filter((c: TableCell) => c.column?.visible).map((c: TableCell) => c.column?.width ?? 0).reduce((a: number, b: number) => a + b, 0);\n }, [row.cells]);\n\n const isDraggingOver = useMemo(() => {\n return dragConfig?.draggingOver && dragConfig?.draggingOver === row?.original?.id;\n }, [dragConfig, row?.original?.id]);\n\n const dropPosition = useMemo(() => {\n if (!isDraggingOver) return null;\n return dragConfig?.dropPosition || 'inside';\n }, [isDraggingOver, dragConfig?.dropPosition]);\n\n const isDraggingOverInside = Boolean(isDraggingOver && dropPosition === 'inside');\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n const isSelected =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(row?.original?.id);\n\n const bgColor = cn({\n 'bg-neutral-100 dark:bg-black-600': rowHovering === row?.original?.id && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-700': isSelected && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-black-700': !row?.original?.is_read && showNewItem && !row?.original?.__isLoading && _notHovering && !isInlineEditing,\n // 'bg-white dark:bg-black-700': cell.column.sticky && rowHovering !== id,\n 'bg-warning-50 dark:bg-warning-975': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-50 dark:bg-error-975': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-success-50 dark:bg-success-975': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n [getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string]]: row?.original?.__rowBgStatus && !isInlineEditing,\n });\n\n return (\n <tr\n {...row.getRowProps()}\n ref={withDraggable || withSortable ? setNodeRef : null}\n key={row.original.id}\n data-row-id={row.original.id}\n className={cn(\n `text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${checkboxConfig?.selectionDisabledRowIds?.includes(row?.original?.id) ? 'opacity-50' : ''} border-t`,\n isDragging ? 'z-40' : '',\n isOverOtherContext() ? 'shadow-dnd-drop' : '',\n withDraggable && over && over?.data?.current?.type === 'table-file-dropzone' && over?.data?.current?.folderId === row?.original?.id && row?.original?.type === 'folder' ? 'bg-primary-50' : '',\n row?.original?.isDefinedActionRow ? 'bg-primary-50' : '',\n isDraggingOverInside ? 'z-50' : '',\n bgColor ? bgColor : 'bg-white dark:bg-black-800',\n )}\n style={{ ...style, ...(withSortable ? dndStyles : {}), width: 'max-content' }}\n {...(withDraggable || withSortable ? attributes : {})}\n {...(withDraggable || withSortable ? listeners : {})}\n >\n {isDraggingOverInside && dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <div className='bg-primary-200 px-2 py-1 rounded'>\n {dragConfig?.dragOperation === 'COPY' ? (\n <AddRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n ) : (\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n )}\n </div>\n </div>\n ) : null}\n {isDraggingOverInside && !dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 16 }} className='text-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'before' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'after' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n\n {row?.original?.isDefinedActionRow ? (\n <ActionCell\n cells={row.cells}\n id={row?.original?.id}\n isCheckbox={checkboxConfig}\n level={level}\n name={row?.original?.name as string}\n onClick={row?.original?.onClick as () => void}\n rowHovering={rowHovering || ''}\n isRoot={row?.original?.isRoot as boolean}\n totalWidth={totalWidth}\n row={row.original as Record<string, unknown>}\n uploadCell={row?.original?.uploadCell as boolean}\n disabled={row?.original?.disabled as boolean}\n disabledTooltip={row?.original?.disabledTooltip as string}\n />\n ) : RowWrapper ? (\n <RowWrapper data={row.original} setIsDraggingFile={setIsDraggingFile}>\n <RowContent\n isDraggingOver={isDraggingOverInside}\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n </RowWrapper>\n ) : (\n <RowContent\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n isDraggingOver={isDraggingOverInside}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n )}\n </tr>\n );\n};\n\ninterface RowContentProps {\n withDraggable?: boolean;\n setDroppableNodeRef: (node: HTMLElement | null) => void;\n isLastRow?: boolean;\n lastRow?: unknown;\n isCheckbox: boolean;\n checkboxConfig: Record<string, unknown> | null;\n row: TableRowData;\n rowHovering: string | number | null;\n tableActions?: ((rowData: Record<string, unknown>, index: number) => React.ReactNode) | null;\n disableOptionsForRowIndex?: number | null;\n index: number;\n showNewItem?: boolean;\n currentData: Record<string, unknown> | null;\n lastNonStickyColumnIndex?: (() => number | null) | null;\n getSumOfNextVisibleColumnWidth?: (index: number) => number | null;\n toggleRowExpand: () => Promise<void>;\n loadingExpand: boolean;\n cellRef: React.RefObject<HTMLElement | null>;\n handleCellClick: (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => void;\n getFullRowDataOnClick?: boolean;\n handleCellValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: Record<string, unknown> | null) => void;\n handleRowCancelEdit: () => void;\n handleRowConfirmEdit: () => void;\n registerValidation: (fn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => void;\n inlineEditing: string | null;\n isInlineEditing: boolean;\n setRowHovering: (id: string | number | null) => void;\n highlightSubstring?: (value: string) => React.ReactNode;\n rowOptions?: TRowOption[] | ((rowData: Record<string, unknown>) => TRowOption[] | null) | null;\n level?: number;\n isDraggingFile?: boolean;\n isDraggingOver?: boolean;\n rowAdditionalActions?: unknown;\n hoverConfig?: { onHover?: (data: Record<string, unknown>) => React.ReactNode };\n isSelected?: boolean;\n}\n\nconst RowContent = ({\n withDraggable,\n setDroppableNodeRef,\n isLastRow,\n lastRow,\n isCheckbox,\n checkboxConfig,\n row,\n rowHovering,\n tableActions,\n disableOptionsForRowIndex,\n index,\n showNewItem,\n currentData,\n lastNonStickyColumnIndex,\n getSumOfNextVisibleColumnWidth,\n toggleRowExpand,\n loadingExpand,\n cellRef,\n handleCellClick,\n getFullRowDataOnClick,\n handleCellValueChange,\n handleUpdateCellData,\n handleRowCancelEdit,\n handleRowConfirmEdit,\n registerValidation,\n inlineEditing,\n isInlineEditing,\n setRowHovering,\n highlightSubstring,\n rowOptions,\n level,\n isDraggingFile,\n isDraggingOver,\n rowAdditionalActions,\n hoverConfig,\n isSelected,\n}: RowContentProps) => {\n const [isRowContentHovering, setIsRowContentHovering] = useState(false);\n const {\n getPendingEdit: getPendingEditFn,\n hasPendingEdit: hasPendingEditFn,\n pendingEdits,\n tableHeaders,\n pendingEditsCount,\n scrollToCell,\n } = useContext(TableContext);\n const rowHasPendingEdits = pendingEdits?.[row.original.id] && Object.keys(pendingEdits[row.original.id]).length > 0;\n const tableHasAnyPendingEdits = (pendingEditsCount ?? 0) > 0;\n const resolvedRowOptions = useMemo<TRowOption[]>(() => {\n if (Array.isArray(rowOptions)) return rowOptions;\n if (typeof rowOptions === 'function') {\n const options = rowOptions({ ...row.original, rowIndex: index });\n return Array.isArray(options) ? options : [];\n }\n return [];\n }, [rowOptions, row.original, index]);\n\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata | undefined) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n // Only apply the selected background when the row is not being hovered, so on hover the icon cells\n // (checkbox, actions, options) fall back to the same gray hover background as the data cells.\n const selectedBg =\n isSelected && !isInlineEditing && rowHovering !== row?.original?.id ? 'bg-primary-100 dark:bg-primary-950' : undefined;\n\n const statusBorderClass = cn('pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40', {\n 'bg-success-400 dark:bg-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-400 dark:bg-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-warning-400 dark:bg-warning-500': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n });\n\n return (\n <div\n ref={withDraggable ? setDroppableNodeRef : null}\n className={isDraggingOver ? 'border-2 border-primary-400 dark:border-primary-500 rounded-sm' : ''}\n >\n <div className={statusBorderClass} />\n <div className='flex' ref={isLastRow ? (lastRow as React.Ref<HTMLDivElement>) : null}>\n {tableHasAnyPendingEdits && (\n <PendingEditCell\n rowId={String(row.original.id)}\n rowIndex={index}\n pendingEdits={pendingEdits}\n tableHeaders={tableHeaders}\n rowHasPendingEdits={!!rowHasPendingEdits}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isInlineEditing={isInlineEditing}\n is_read={!!row.original.is_read}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={showNewItem}\n onScrollToCell={scrollToCell}\n />\n )}\n\n {isCheckbox && (\n <CheckboxCell\n checkboxConfig={checkboxConfig as never}\n id={String(row.original.id)}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isDisabled={!!row?.original?.__isLoading}\n isDraggingOver={isDraggingOver}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n showNewItem={showNewItem}\n currentData={currentData ?? {}}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n hasPendingEditsColumn={tableHasAnyPendingEdits}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n\n {tableActions ? (\n <RowActionCell\n tableActions={tableActions as (rowData: Record<string, unknown>, index: number) => JSX.Element}\n disableOptionsForRowIndex={disableOptionsForRowIndex ?? null}\n id={String(row.original.id)}\n index={index}\n is_read={!!row?.original?.is_read}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row?.original?.is_row_modified}\n is_deleted={_isDeletedRow}\n currentData={currentData ?? {}}\n is_added={_isNewRow}\n rowData={row.original as Record<string, unknown>}\n rowHovering={rowHovering}\n isDisabled={!!row?.original?.__isLoading}\n bgColor={isDraggingFile ? 'bg-primary-50' : row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n ) : null}\n\n <div\n className='relative flex-1'\n id={`row-${row.original.id}`}\n onMouseEnter={() => setIsRowContentHovering(true)}\n onMouseLeave={() => setIsRowContentHovering(false)}\n >\n {row.cells\n .filter((cell: TableCell) => cell?.column?.visible !== false)\n .map((cell: TableCell, y: number) => {\n const isLastCell = y === lastNonStickyColumnIndex?.();\n const isFirstStickyCell = y === (lastNonStickyColumnIndex?.() ?? -1) + 1;\n const nextWidthSum = cell?.column?.sticky ? (getSumOfNextVisibleColumnWidth?.(y) ?? 0) : 0;\n\n if (row.original?.__isLoading) {\n return (\n <LoaderCell cell={cell as unknown as { column: { width: number; sticky?: boolean; sequence?: number } }} id={y} nextWidthSum={nextWidthSum} isLastCell={isLastCell} rowHovering={rowHovering} index={y} key={y} isFirstStickyCell={isFirstStickyCell} />\n );\n }\n\n const pendingEdit = getPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n const hasPending = hasPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n\n return (\n <DataCell\n cell={cell as unknown as import('../../types').ICell}\n rowHovering={rowHovering}\n isFirstStickyCell={isFirstStickyCell}\n level={level ?? 0}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n key={cell?.column?.key}\n index={y}\n cellRef={cellRef as React.RefObject<HTMLDivElement>}\n currentData={currentData as { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean }}\n handleCellClick={(e?: React.MouseEvent) => { if (e) handleCellClick(e, getFullRowDataOnClick ? row.original : String(row.original.id), y, cell?.column?.key || ''); }}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n registerValidation={registerValidation}\n id={row.original.id}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n isLastCell={isLastCell}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n nextWidthSum={nextWidthSum}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring as ((value: string) => JSX.Element) | undefined}\n isDraggingOver={isDraggingOver}\n isLoading={!!row?.original?.__isLoading}\n pendingEdit={pendingEdit}\n hasPendingEdit={hasPending}\n pendingValidationError={pendingEdit?.validationError}\n />\n );\n })}\n\n {hoverConfig?.onHover &&\n isRowContentHovering &&\n createPortal(\n <div className='absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl'>{hoverConfig.onHover(row.original) as React.ReactNode}</div>,\n document.getElementById(`row-${row.original.id}`) as HTMLElement,\n )}\n </div>\n\n {(resolvedRowOptions.length > 0 || !!rowAdditionalActions) && (\n <RowOptionsCell\n rowId={row.original.id}\n rowOptions={resolvedRowOptions}\n disableOption={disableOptionsForRowIndex !== null || !!row?.original?.__isLoading}\n rowHovering={rowHovering}\n setRowHovering={setRowHovering}\n is_read={!!row.original.is_read}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_incomplete={row?.original?.status === 'Incomplete'}\n currentData={currentData ?? {}}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n isDraggingOver={!!isDraggingOver}\n rowAdditionalActions={rowAdditionalActions as (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode}\n rowData={row.original as Record<string, unknown>}\n index={index}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n onConfirmEdit={handleRowConfirmEdit}\n onCancelEdit={handleRowCancelEdit}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["Row","row","isLastRow","lastRow","highlightSubstring","index","style","level","expandedRows","rows","lastNonStickyColumnIndex","checkboxConfig","onRowClick","rowOptions","disableOptionsForRowIndex","getSumOfNextVisibleColumnWidth","onRowEdit","inlineEditColumns","tableActions","dndSortableUtils","withSortable","withDraggable","getInnerRowData","showNewItem","rawData","dragConfig","getFullRowDataOnClick","selectedRowId","RowWrapper","isCellClickDisabled","rowAdditionalActions","hoverConfig","addPendingEdit","removePendingEdit","fieldOperationLoading","clearRowPendingEdits","saveRowPendingEdits","contextPendingEdits","useContext","TableContext","tableConfig","useTableConfig","isCheckbox","activeInlineEdit","setActiveInlineEdit","inlineEditing","isInlineEditing","setInlineEditing","columnKey","rowHovering","setRowHovering","useState","editedCellValue","setEditedCellValue","currentData","setCurrentData","loadingExpand","setLoadingExpand","isDraggingFile","setIsDraggingFile","prevInlineEditingRef","useRef","useEffect","wasEditing","isNowEditing","pendingEdit","currentCell","c","result","validateCellValue","idKey","sortableResult","useSortable","draggableResult","useDraggable","listeners","transform","setNodeRef","isDragging","attributes","active","over","rest","setDroppableNodeRef","useDroppable","dndStyles","CSS","isOverOtherContext","handleCellValueChange","e","handleCloseEdit","validationRef","registerValidation","useCallback","validateFn","tableConfigRef","handleRowCancelEdit","handleRowConfirmEdit","pendingValue","valueToValidate","handleUpdateCellData","directValue","meta","_item","updatedValue","ref","handleCellClick","event","data","idx","key","msg","_row","_id","checkEvent","toggleRowExpand","totalWidth","useMemo","a","b","isDraggingOver","dropPosition","isDraggingOverInside","_meta","_notHovering","_notLoading","_isNewRow","_isDeletedRow","_isModifiedRow","isSelected","bgColor","cn","getTableRowBgClassNamesByStatus","createElement","jsx","AddRounded","SubdirectoryArrowLeftRounded","ActionCell","RowContent","cellRef","isRowContentHovering","setIsRowContentHovering","getPendingEditFn","hasPendingEditFn","pendingEdits","tableHeaders","pendingEditsCount","scrollToCell","rowHasPendingEdits","tableHasAnyPendingEdits","resolvedRowOptions","options","selectedBg","statusBorderClass","jsxs","PendingEditCell","CheckboxCell","RowActionCell","cell","y","isLastCell","isFirstStickyCell","nextWidthSum","LoaderCell","hasPending","DataCell","createPortal","RowOptionsCell"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwGO,MAAMA,KAAM,CAAC,EAAE,KAAAC,GAAK,WAAAC,GAAW,SAAAC,GAAS,oBAAAC,IAAoB,OAAAC,GAAO,OAAAC,IAAO,OAAAC,IAAQ,GAAG,cAAAC,GAAc,MAAAC,SAAmB;AAC3H,QAAM;AAAA,IACJ,0BAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,2BAAAC,IAA4B;AAAA,IAC5B,gCAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAYC;AAAA,IACZ,qBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAcC;AAAA,EAAA,IACZC,GAAWC,EAAY,GAErBC,IAAcC,GAAA,GAEdC,KAAa,EAAQ/B,GACrB,EAAE,kBAAAgC,IAAkB,qBAAAC,MAAwBN,GAAWC,EAAY,GACnEM,IAAgBF,IAAkB,UAAU1C,EAAI,SAAS,KAAK0C,IAAkB,YAAY,MAC5FG,IAAkB,EAAQD,GAC1BE,KAAmB,CAACC,MAA6B;AACrD,IAAwBJ,IAApBI,MAAc,OAA4B,OACnB,EAAE,OAAO,OAAO/C,EAAI,SAAS,EAAE,GAAG,WAAA+C,GADX;AAAA,EAEpD,GACM,CAACC,GAAaC,CAAc,IAAIC,EAAiC,IAAI,GACrE,CAACC,IAAiBC,CAAkB,IAAIF,EAAwB,IAAI,GACpE,CAACG,GAAaC,CAAc,IAAIJ,EAAyC,IAAI,GAC7E,CAACK,GAAeC,CAAgB,IAAIN,EAAS,EAAK,GAClD,CAACO,GAAgBC,CAAiB,IAAIR,EAAS,EAAK,GAEpDS,KAAuBC,GAAsB,IAAI;AACvD,EAAAC,GAAU,MAAM;AACd,UAAMC,IAAaH,GAAqB,SAClCI,IAAenB;AAErB,QAAIkB,KAAc,CAACC,GAAc;AAC/B,YAAMC,IAAc5B,IAAsBpC,EAAI,SAAS,EAAE,IAAI8D,CAAU;AACvE,UAAIE,GAAa;AACf,cAAMC,IAAcjE,EAAI,OAAO,KAAK,CAACkE,MAAiBA,EAAE,QAAQ,QAAQJ,CAAU;AAClF,YAAIG,GAAa;AACf,gBAAME,IAASC,GAAkBJ,EAAY,OAAOC,EAAY,MAAkD;AAClH,UAAI,CAACE,EAAO,WAAWpC,KACrBA,EAAe,OAAO/B,EAAI,SAAS,EAAE,GAAG8D,GAAY;AAAA,YAClD,GAAGE;AAAA,YACH,iBAAiBG,EAAO;AAAA,UAAA,CACzB;AAAA,QAEL;AAAA,MACF;AAAA,IACF;AAEA,IAAAR,GAAqB,UAAUI,KAAgB;AAAA,EACjD,GAAG,CAACnB,GAAe5C,EAAI,SAAS,IAAIA,EAAI,OAAOoC,GAAqBL,CAAc,CAAC,GAEnF8B,GAAU,MAAM;AACd,QAAItC,GAAS;AACX,YAAM8C,IAAQ,OAAOrE,GAAK,UAAU,EAAE;AACtC,MAAAsD,EAAe/B,EAAQ8C,CAAK,IAAIrE,GAAK,MAAM,CAAC,EAAE,OAAO,MAAgB,KAAKuB,EAAQ8C,CAAK,IAAI,CAAC,CAAC;AAAA,IAC/F;AAAA,EACF,GAAG,CAAC9C,GAASvB,GAAK,UAAU,IAAIA,GAAK,KAAK,CAAC;AAE3C,QAAMsE,IAAiBC,GAAY,EAAE,IAAIvE,EAAI,SAAS,IAAI,MAAM,EAAE,GAAGA,EAAI,SAAA,GAAY,UAAU,CAACmB,GAAc,GACxGqD,IAAkBC,GAAa,EAAE,IAAIzE,EAAI,SAAS,IAAI,MAAM,EAAE,GAAGA,EAAI,SAAA,GAAY,UAAU,CAAC,CAACmB,GAAc,GAC3G,EAAE,WAAAuD,IAAW,WAAAC,IAAW,YAAAC,IAAY,YAAAC,GAAY,YAAAC,IAAY,QAAAC,GAAQ,MAAAC,GAAM,GAAGC,GAAA,IAAS9D,IACxFmD,IACAE,GAEE,EAAE,YAAYU,GAAA,IAAwBC,GAAa;AAAA,IACvD,IAAI,uBAAuBnF,GAAK,UAAU,EAAE;AAAA,IAC5C,MAAM,EAAE,MAAM,uBAAuB,UAAUA,GAAK,UAAU,IAAI,UAAUA,GAAK,UAAU,SAAS,SAAA;AAAA,EAAS,CAC9G,GAEKoF,KAAY;AAAA,IAChB,WAAWC,GAAI,UAAU,SAASV,EAAS;AAAA,IAC3C,YAAYxD,IAAgB8D,GAAiC,aAAa;AAAA,IAC1E,QAAQJ,IAAa,aAAa;AAAA,IAClC,SAASA,IAAa,QAAQ;AAAA,EAAA,GAG1BS,KAAqB,MACrB,CAACP,KAAU,CAACC,KAAQ,CAAC7D,IAAqB,KAC1CD,IAAkB,oBAA0BA,GAAiB,kBAAkB6D,GAAQC,CAAI,KAAK,EAAQA,IACrGD,EAAO,KAAK,SAAS,SAASC,EAAK,KAAK,SAAS,QAAQ,EAAQA,GAGpEO,KAAwB,CAACC,MAA2C;AACxE,IAAApC,EAAmBoC,EAAE,OAAO,KAAK;AAAA,EACnC,GAEMC,KAAkB,MAAM;AAC5B,IAAIxD,MACJa,GAAiB,IAAI;AAAA,EACvB,GAEM4C,KAAgB9B,GAAoH,IAAI,GAExI+B,KAAqBC;AAAA,IACzB,CAACC,MAAmH;AAClH,MAAAH,GAAc,UAAUG;AAAA,IAC1B;AAAA,IACA,CAAA;AAAA,EAAC,GAGGC,KAAiBlC,GAAOrB,CAAW;AACzC,EAAAuD,GAAe,UAAUvD;AAEzB,QAAMwD,KAAsBH,GAAY,MAAM;AAC5C,IAAI1D,KAAsBA,EAAqB,OAAOlC,EAAI,SAAS,EAAE,CAAC;AAAA,EACxE,GAAG,CAACkC,GAAsBlC,EAAI,SAAS,EAAE,CAAC,GAEpCgG,KAAuBJ,GAAY,MAAM;AAC7C,QAAIF,GAAc,SAAS;AACzB,YAAMvB,IAASuB,GAAc,QAAA;AAC7B,UAAI,CAACvB,EAAO,QAAS;AACrB,MAAIvB,KAAiBuB,EAAO,UAAU,UAAapC,KACjDA,EAAe,OAAO/B,EAAI,SAAS,EAAE,GAAG4C,GAAe;AAAA,QACrD,OAAOuB,EAAO;AAAA,QACd,eAAenE,EAAI,SAAS4C,CAAa;AAAA,QACzC,MAAMuB,EAAO,QAAQ;AAAA,MAAA,CACtB;AAAA,IAEL,WAAWvB,GAAe;AACxB,YAAMqB,IAAcjE,EAAI,OAAO,KAAK,CAACkE,MAAiBA,EAAE,QAAQ,QAAQtB,CAAa;AACrF,UAAIqB,GAAa;AACf,cAAMgC,IAAe7D,IAAsBpC,EAAI,SAAS,EAAE,IAAI4C,CAAa,GAAG,OACxEsD,IAAkBD,MAAiB,SAAYA,IAAehC,EAAY,OAC1EE,IAASC,GAAkB8B,GAAwDjC,EAAY,MAAkD;AACvJ,YAAI,CAACE,EAAO,SAAS;AACnB,UAAA2B,GAAe,SAAS,mBAAmB,SAAS3B,EAAO,SAAS,mBAAmB;AACvF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAIhC,KAAqBA,EAAoB,OAAOnC,EAAI,SAAS,EAAE,CAAC;AAAA,EACtE,GAAG,CAACmC,GAAqBnC,EAAI,UAAUA,EAAI,OAAO4C,GAAeb,GAAgBK,CAAmB,CAAC,GAE/F+D,KAAuB,CAC3BC,GACAC,MACG;AACH,UAAMC,IAAQ,EAAE,GAAGtG,EAAI,SAAA,GACjBuG,IAAeH,MAAgB,SAAYA,IAAcjD;AAC/D,IAAIP,KAAiB2D,MAAiB,WACpCD,EAAM1D,CAAa,IAAI2D,GACnBxF,KAAWA,EAAUuF,GAAOlG,GAAOwC,GAAe2D,GAAcF,CAAI,GACpErE,KAAmBA,EAAkB,OAAOhC,EAAI,SAAS,EAAE,GAAG4C,CAAa,IAEjF6C,GAAA;AAAA,EACF,GAEMe,KAAM5C,GAAoB,IAAI,GAE9B6C,KAAkB,CAACC,GAAyBC,GAAwCC,GAAaC,MAAgB;AACrH,QAAI,CAAAjF,OACJ8E,GAAO,gBAAA,GACH9D,MAAkBiE,IAEtB;AAAA,UAAI9F,GAAW;AACb,YAAIC,IAAmB,SAAS6F,CAAG;AACjC,UAAA/D,GAAiB+D,CAAG,GACpBzD,EAAmB,OAAOpD,EAAI,SAAS6G,CAAG,CAAC,CAAC;AAAA,aACvC;AACL,gBAAMC,IAAMvE,GAAa,mBAAmB,sBAAsB,KAAK;AACvE,UAAAA,GAAa,mBAAmB,SAASuE,CAAG;AAAA,QAC9C;AACA;AAAA,MACF;AAEA,UAAInG;AACF,QAAAA,EAAWgG,GAAMC,GAAK5G,EAAI,UAAUQ,IAAM,IAAI,CAACuG,MAAgCA,EAAK,QAAQ,KAAK,CAAA,CAAE;AAAA,eAC1F,CAACpG,KAAcD,GAAgB;AACxC,cAAMsG,IAAMhH,EAAI,SAAS,IACnBiH,KAAa,EAAE,QAAQ,EAAE,SAAS,CAACvG,EAAe,WAAW,SAASsG,CAAG,IAAE;AACjF,QAAAtG,EAAe,YAAYuG,IAAYD,CAAG;AAAA,MAC5C;AAAA;AAAA,EACF,GAEME,KAAkB,YAAY;AAClC,IAAA1D,EAAiB,EAAI,GACjBnC,MACF,MAAMA,GAAgBrB,GAAK,UAAU,IAAIA,GAAK,UAAU,EAAEO,IAAeP,GAAK,UAAU,EAAY,GAAG,UAAU,KAAQA,GAAK,UAAU,WAAW,CAAC,GAEtJwD,EAAiB,EAAK;AAAA,EACxB,GAKM2D,KAAaC,GAAQ,MAClBpH,EAAI,MAAM,OAAO,CAACkE,MAAiBA,EAAE,QAAQ,OAAO,EAAE,IAAI,CAACA,MAAiBA,EAAE,QAAQ,SAAS,CAAC,EAAE,OAAO,CAACmD,GAAWC,MAAcD,IAAIC,GAAG,CAAC,GACjJ,CAACtH,EAAI,KAAK,CAAC,GAERuH,IAAiBH,GAAQ,MACtB5F,GAAY,gBAAgBA,GAAY,iBAAiBxB,GAAK,UAAU,IAC9E,CAACwB,GAAYxB,GAAK,UAAU,EAAE,CAAC,GAE5BwH,KAAeJ,GAAQ,MACtBG,IACE/F,GAAY,gBAAgB,WADP,MAE3B,CAAC+F,GAAgB/F,GAAY,YAAY,CAAC,GAEvCiG,IAAuB,GAAQF,KAAkBC,OAAiB,WAElEE,IAAS1H,GAAK,UAAU,iBAAmCA,GAAK,UAAU,OAC1E2H,IAAe3E,MAAgBhD,GAAK,UAAU,IAC9C4H,KAAc,CAAC5H,GAAK,UAAU,aAC9B6H,KAAY,CAAC,EACjBH,GAAO,YACPA,GAAO,cACP1H,GAAK,UAAU,YACdqD,GAAa;AAAA,EAEdqE,GAAO,SAEHI,KAAgB,CAAC,EAAE9H,GAAK,UAAU,cAAc0H,GAAO,gBAAiBrE,GAAa,cAA0BqE,GAAO,aACtHK,KACJ,CAAC,EACC/H,GAAK,UAAU,eACfA,GAAK,UAAU,mBACf0H,GAAO,iBACPA,GAAO,eACNrE,GAAa,mBACdqE,GAAO,gBACJ,CAACG,IAEFG,KACJtG,KAAkB,QAAuC,OAAOA,CAAa,MAAM,OAAO1B,GAAK,UAAU,EAAE,GAEvGiI,KAAUC,GAAG;AAAA,IACjB,oCAAoClF,MAAgBhD,GAAK,UAAU,MAAM,CAAC6C;AAAA,IAC1E,qCAAqCmF,MAAcL,KAAgB,CAAC9E;AAAA,IACpE,mCAAmC,CAAC7C,GAAK,UAAU,WAAWsB,KAAe,CAACtB,GAAK,UAAU,eAAe2H,KAAgB,CAAC9E;AAAA;AAAA,IAE7H,qCAAqCkF,MAAkBH,MAAeD,KAAgB,CAAC9E;AAAA,IACvF,iCAAiCiF,MAAiBF,MAAeD,KAAgB,CAAC9E;AAAA,IAClF,qCAAqCgF,MAAaD,MAAeD,KAAgB,CAAC9E;AAAA,IAClF,qCAAqCA;AAAA,IACrC,CAACsF,GAAgCnI,GAAK,UAAU,aAAuB,CAAC,GAAGA,GAAK,UAAU,iBAAiB,CAAC6C;AAAA,EAAA,CAC7G;AAED,SACE,gBAAAuF;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGpI,EAAI,YAAA;AAAA,MACR,KAAKoB,KAAiBD,IAAeyD,KAAa;AAAA,MAClD,KAAK5E,EAAI,SAAS;AAAA,MAClB,eAAaA,EAAI,SAAS;AAAA,MAC1B,WAAWkI;AAAA,QACT,uEAAuExH,GAAgB,yBAAyB,SAASV,GAAK,UAAU,EAAE,IAAI,eAAe,EAAE;AAAA,QAC/J6E,IAAa,SAAS;AAAA,QACtBS,GAAA,IAAuB,oBAAoB;AAAA,QAC3ClE,KAAiB4D,KAAQA,GAAM,MAAM,SAAS,SAAS,yBAAyBA,GAAM,MAAM,SAAS,aAAahF,GAAK,UAAU,MAAMA,GAAK,UAAU,SAAS,WAAW,kBAAkB;AAAA,QAC5LA,GAAK,UAAU,qBAAqB,kBAAkB;AAAA,QACtDyH,IAAuB,SAAS;AAAA,QAChCQ,MAAoB;AAAA,MAAA;AAAA,MAEtB,OAAO,EAAE,GAAG5H,IAAO,GAAIc,IAAeiE,KAAY,CAAA,GAAK,OAAO,cAAA;AAAA,MAC7D,GAAIhE,KAAiBD,IAAe2D,KAAa,CAAA;AAAA,MACjD,GAAI1D,KAAiBD,IAAeuD,KAAY,CAAA;AAAA,IAAC;AAAA,IAEjD+C,KAAwBjG,GAAY,gBACnC,gBAAA6G,EAAC,SAAI,WAAU,qEACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,oCACZ,UAAA7G,GAAY,kBAAkB,2BAC5B8G,IAAA,EAAW,IAAI,EAAE,UAAU,MAAM,WAAU,oBAAmB,sBAE9DC,IAAA,EAA6B,IAAI,EAAE,UAAU,MAAM,WAAU,mBAAA,CAAmB,EAAA,CAErF,GACF,IACE;AAAA,IACHd,KAAwB,CAACjG,GAAY,gBACpC,gBAAA6G,EAAC,OAAA,EAAI,WAAU,qEACb,UAAA,gBAAAA,EAACE,IAAA,EAA6B,IAAI,EAAE,UAAU,GAAA,GAAM,WAAU,mBAAA,CAAmB,GACnF,IACE;AAAA,IACHhB,KAAkBC,OAAiB,YAAY,CAACxH,GAAK,UAAU,qBAC9D,gBAAAqI,EAAC,OAAA,EAAI,WAAU,sFACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+EAAA,CAA+E,GAChG,IACE;AAAA,IACHd,KAAkBC,OAAiB,WAAW,CAACxH,GAAK,UAAU,qBAC7D,gBAAAqI,EAAC,OAAA,EAAI,WAAU,yFACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+EAAA,CAA+E,GAChG,IACE;AAAA,IAEHrI,GAAK,UAAU,qBACd,gBAAAqI;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,OAAOxI,EAAI;AAAA,QACX,IAAIA,GAAK,UAAU;AAAA,QACnB,YAAYU;AAAA,QACZ,OAAAJ;AAAA,QACA,MAAMN,GAAK,UAAU;AAAA,QACrB,SAASA,GAAK,UAAU;AAAA,QACxB,aAAagD,KAAe;AAAA,QAC5B,QAAQhD,GAAK,UAAU;AAAA,QACvB,YAAAmH;AAAA,QACA,KAAKnH,EAAI;AAAA,QACT,YAAYA,GAAK,UAAU;AAAA,QAC3B,UAAUA,GAAK,UAAU;AAAA,QACzB,iBAAiBA,GAAK,UAAU;AAAA,MAAA;AAAA,IAAA,IAEhC2B,IACF,gBAAA0G,EAAC1G,KAAW,MAAM3B,EAAI,UAAU,mBAAA0D,GAC9B,UAAA,gBAAA2E;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,gBAAgBhB;AAAA,QAChB,OAAAnH;AAAA,QACA,eAAAc;AAAA,QACA,qBAAA8D;AAAA,QACA,WAAAjF;AAAA,QACA,SAAAC;AAAA,QACA,YAAAuC;AAAA,QACA,gBAAA/B;AAAA,QACA,KAAAV;AAAA,QACA,aAAAgD;AAAA,QACA,cAAA/B;AAAA,QACA,2BAAAJ;AAAA,QACA,OAAAT;AAAA,QACA,aAAAkB;AAAA,QACA,aAAA+B;AAAA,QACA,0BAAA5C;AAAA,QACA,gCAAAK;AAAA,QACA,iBAAAoG;AAAA,QACA,eAAA3D;AAAA,QACA,SAASiD;AAAA,QACT,iBAAAC;AAAA,QACA,uBAAAhF;AAAA,QACA,uBAAA8D;AAAA,QACA,sBAAAY;AAAA,QACA,qBAAAJ;AAAA,QACA,sBAAAC;AAAA,QACA,oBAAAL;AAAA,QACA,eAAA/C;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAI;AAAA,QACA,oBAAA9C;AAAA,QACA,YAAAS;AAAA,QACA,gBAAA6C;AAAA,QACA,sBAAA5B;AAAA,QACA,aAAAC;AAAA,QACA,YAAAkG;AAAA,MAAA;AAAA,IAAA,GAEJ,IAEA,gBAAAK;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,OAAAnI;AAAA,QACA,eAAAc;AAAA,QACA,qBAAA8D;AAAA,QACA,WAAAjF;AAAA,QACA,SAAAC;AAAA,QACA,YAAAuC;AAAA,QACA,gBAAA/B;AAAA,QACA,KAAAV;AAAA,QACA,aAAAgD;AAAA,QACA,cAAA/B;AAAA,QACA,2BAAAJ;AAAA,QACA,OAAAT;AAAA,QACA,aAAAkB;AAAA,QACA,aAAA+B;AAAA,QACA,0BAAA5C;AAAA,QACA,gCAAAK;AAAA,QACA,iBAAAoG;AAAA,QACA,eAAA3D;AAAA,QACA,SAASiD;AAAA,QACT,iBAAAC;AAAA,QACA,uBAAAhF;AAAA,QACA,uBAAA8D;AAAA,QACA,sBAAAY;AAAA,QACA,qBAAAJ;AAAA,QACA,sBAAAC;AAAA,QACA,oBAAAL;AAAA,QACA,eAAA/C;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAI;AAAA,QACA,oBAAA9C;AAAA,QACA,YAAAS;AAAA,QACA,gBAAA6C;AAAA,QACA,gBAAgBgE;AAAA,QAChB,sBAAA5F;AAAA,QACA,aAAAC;AAAA,QACA,YAAAkG;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAIR,GAyCMS,KAAa,CAAC;AAAA,EAClB,eAAArH;AAAA,EACA,qBAAA8D;AAAA,EACA,WAAAjF;AAAA,EACA,SAAAC;AAAA,EACA,YAAAuC;AAAA,EACA,gBAAA/B;AAAA,EACA,KAAAV;AAAA,EACA,aAAAgD;AAAA,EACA,cAAA/B;AAAA,EACA,2BAAAJ;AAAA,EACA,OAAAT;AAAA,EACA,aAAAkB;AAAA,EACA,aAAA+B;AAAA,EACA,0BAAA5C;AAAA,EACA,gCAAAK;AAAA,EACA,iBAAAoG;AAAA,EACA,eAAA3D;AAAA,EACA,SAAAmF;AAAA,EACA,iBAAAjC;AAAA,EACA,uBAAAhF;AAAA,EACA,uBAAA8D;AAAA,EACA,sBAAAY;AAAA,EACA,qBAAAJ;AAAA,EACA,sBAAAC;AAAA,EACA,oBAAAL;AAAA,EACA,eAAA/C;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAI;AAAA,EACA,oBAAA9C;AAAA,EACA,YAAAS;AAAA,EACA,OAAAN;AAAA,EACA,gBAAAmD;AAAA,EACA,gBAAA8D;AAAA,EACA,sBAAA1F;AAAA,EACA,aAAAC;AAAA,EACA,YAAAkG;AACF,MAAuB;AACrB,QAAM,CAACW,GAAsBC,CAAuB,IAAI1F,EAAS,EAAK,GAChE;AAAA,IACJ,gBAAgB2F;AAAA,IAChB,gBAAgBC;AAAA,IAChB,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACE7G,GAAWC,EAAY,GACrB6G,IAAqBJ,IAAe/I,EAAI,SAAS,EAAE,KAAK,OAAO,KAAK+I,EAAa/I,EAAI,SAAS,EAAE,CAAC,EAAE,SAAS,GAC5GoJ,KAA2BH,KAAqB,KAAK,GACrDI,KAAqBjC,GAAsB,MAAM;AACrD,QAAI,MAAM,QAAQxG,CAAU,EAAG,QAAOA;AACtC,QAAI,OAAOA,KAAe,YAAY;AACpC,YAAM0I,IAAU1I,EAAW,EAAE,GAAGZ,EAAI,UAAU,UAAUI,GAAO;AAC/D,aAAO,MAAM,QAAQkJ,CAAO,IAAIA,IAAU,CAAA;AAAA,IAC5C;AACA,WAAO,CAAA;AAAA,EACT,GAAG,CAAC1I,GAAYZ,EAAI,UAAUI,CAAK,CAAC,GAG9BsH,IAAS1H,GAAK,UAAU,iBAA+CA,GAAK,UAAU,OACtF2H,IAAe3E,MAAgBhD,GAAK,UAAU,IAC9C4H,IAAc,CAAC5H,GAAK,UAAU,aAC9B6H,IAAY,CAAC,EACjBH,GAAO,YACPA,GAAO,cACP1H,GAAK,UAAU,YACdqD,GAAa;AAAA,EAEdqE,GAAO,SAEHI,IAAgB,CAAC,EAAE9H,GAAK,UAAU,cAAc0H,GAAO,gBAAiBrE,GAAa,cAA0BqE,GAAO,aACtHK,IACJ,CAAC,EACC/H,GAAK,UAAU,eACfA,GAAK,UAAU,mBACf0H,GAAO,iBACPA,GAAO,eACNrE,GAAa,mBACdqE,GAAO,gBACJ,CAACG,GAIF0B,IACJvB,KAAc,CAACnF,KAAmBG,MAAgBhD,GAAK,UAAU,KAAK,uCAAuC,QAEzGwJ,KAAoBtB,GAAG,mEAAmE;AAAA,IAC9F,sCAAsCL,KAAaD,KAAeD,KAAgB,CAAC9E;AAAA,IACnF,kCAAkCiF,KAAiBF,KAAeD,KAAgB,CAAC9E;AAAA,IACnF,sCAAsCkF,KAAkBH,KAAeD,KAAgB,CAAC9E;AAAA,EAAA,CACzF;AAED,SACE,gBAAA4G;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKrI,IAAgB8D,IAAsB;AAAA,MAC3C,WAAWqC,IAAiB,mEAAmE;AAAA,MAE/F,UAAA;AAAA,QAAA,gBAAAc,EAAC,OAAA,EAAI,WAAWmB,GAAA,CAAmB;AAAA,2BAClC,OAAA,EAAI,WAAU,QAAO,KAAKvJ,IAAaC,KAAwC,MAC7E,UAAA;AAAA,UAAAkJ,KACC,gBAAAf;AAAA,YAACqB;AAAA,YAAA;AAAA,cACC,OAAO,OAAO1J,EAAI,SAAS,EAAE;AAAA,cAC7B,UAAUI;AAAA,cACV,cAAA2I;AAAA,cACA,cAAAC;AAAA,cACA,oBAAoB,CAAC,CAACG;AAAA,cACtB,aAAanG,KAAe,OAAO,OAAOA,CAAW,IAAI;AAAA,cACzD,iBAAAH;AAAA,cACA,SAAS,CAAC,CAAC7C,EAAI,SAAS;AAAA,cACxB,aAAa+H;AAAA,cACb,iBAAiB,CAAC,CAAC/H,EAAI,SAAS;AAAA,cAChC,YAAY8H;AAAA,cACZ,UAAUD;AAAA,cACV,eAAe7H,GAAK,UAAU,WAAW;AAAA,cACzC,aAAAsB;AAAA,cACA,gBAAgB4H;AAAA,YAAA;AAAA,UAAA;AAAA,UAInBzG,KACC,gBAAA4F;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,gBAAAjJ;AAAA,cACA,IAAI,OAAOV,EAAI,SAAS,EAAE;AAAA,cAC1B,aAAagD,KAAe,OAAO,OAAOA,CAAW,IAAI;AAAA,cACzD,YAAY,CAAC,CAAChD,GAAK,UAAU;AAAA,cAC7B,gBAAAuH;AAAA,cACA,UAAUM;AAAA,cACV,YAAYC;AAAA,cACZ,eAAe9H,GAAK,UAAU,WAAW;AAAA,cACzC,aAAa+H;AAAA,cACb,SAAS,CAAC,CAAC/H,EAAI,SAAS;AAAA,cACxB,iBAAiB,CAAC,CAACA,EAAI,SAAS;AAAA,cAChC,aAAAsB;AAAA,cACA,aAAa+B,KAAe,CAAA;AAAA,cAC5B,SAASrD,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cAClH,iBAAA1G;AAAA,cACA,uBAAuBuG;AAAA,cACvB,oBAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,UAIHlI,KACC,gBAAAoH;AAAA,YAACuB;AAAA,YAAA;AAAA,cACC,cAAA3I;AAAA,cACA,2BAA2BJ,KAA6B;AAAA,cACxD,IAAI,OAAOb,EAAI,SAAS,EAAE;AAAA,cAC1B,OAAAI;AAAA,cACA,SAAS,CAAC,CAACJ,GAAK,UAAU;AAAA,cAC1B,eAAeA,GAAK,UAAU,WAAW;AAAA,cACzC,aAAa,CAAC,CAACsB;AAAA,cACf,aAAayG;AAAA,cACb,iBAAiB,CAAC,CAAC/H,GAAK,UAAU;AAAA,cAClC,YAAY8H;AAAA,cACZ,aAAazE,KAAe,CAAA;AAAA,cAC5B,UAAUwE;AAAA,cACV,SAAS7H,EAAI;AAAA,cACb,aAAAgD;AAAA,cACA,YAAY,CAAC,CAAChD,GAAK,UAAU;AAAA,cAC7B,SAASyD,IAAiB,kBAAkBzD,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cACrJ,iBAAA1G;AAAA,cACA,oBAAAsG;AAAA,YAAA;AAAA,UAAA,IAEA;AAAA,UAEJ,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAI,OAAOzJ,EAAI,SAAS,EAAE;AAAA,cAC1B,cAAc,MAAM4I,EAAwB,EAAI;AAAA,cAChD,cAAc,MAAMA,EAAwB,EAAK;AAAA,cAEhD,UAAA;AAAA,gBAAA5I,EAAI,MACF,OAAO,CAAC6J,MAAoBA,GAAM,QAAQ,YAAY,EAAK,EAC3D,IAAI,CAACA,GAAiBC,MAAc;AACnC,wBAAMC,KAAaD,MAAMrJ,IAAA,GACnBuJ,KAAoBF,OAAOrJ,IAAA,KAAgC,MAAM,GACjEwJ,KAAeJ,GAAM,QAAQ,SAAU/I,KAAiCgJ,CAAC,KAAK,IAAK;AAEzF,sBAAI9J,EAAI,UAAU;AAChB,2BACE,gBAAAqI,EAAC6B,IAAA,EAAW,MAAAL,GAA6F,IAAIC,GAAG,cAAAG,IAA4B,YAAAF,IAAwB,aAAA/G,GAA0B,OAAO8G,GAAW,mBAAAE,GAAA,GAAHF,CAAyC;AAI1P,wBAAM9F,IAAc6E,KAAmB,OAAO7I,EAAI,SAAS,EAAE,GAAG6J,GAAM,QAAQ,OAAO,EAAE,GACjFM,KAAarB,KAAmB,OAAO9I,EAAI,SAAS,EAAE,GAAG6J,GAAM,QAAQ,OAAO,EAAE;AAEtF,yBACE,gBAAAxB;AAAA,oBAAC+B;AAAA,oBAAA;AAAA,sBACC,MAAAP;AAAA,sBACA,aAAA7G;AAAA,sBACA,mBAAAgH;AAAA,sBACA,OAAO1J,MAAS;AAAA,sBAChB,iBAAA4G;AAAA,sBACA,eAAA3D;AAAA,sBAEA,OAAOuG;AAAA,sBACP,SAAApB;AAAA,sBACA,aAAArF;AAAA,sBACA,iBAAiB,CAACmC,MAAyB;AAAE,wBAAIA,KAAGiB,GAAgBjB,GAAG/D,IAAwBzB,EAAI,WAAW,OAAOA,EAAI,SAAS,EAAE,GAAG8J,GAAGD,GAAM,QAAQ,OAAO,EAAE;AAAA,sBAAG;AAAA,sBACpK,uBAAAtE;AAAA,sBACA,sBAAAY;AAAA,sBACA,oBAAAR;AAAA,sBACA,IAAI3F,EAAI,SAAS;AAAA,sBACjB,eAAA4C;AAAA,sBACA,iBAAAC;AAAA,sBACA,YAAAkH;AAAA,sBACA,eAAe/J,GAAK,UAAU,WAAW;AAAA,sBACzC,UAAU6H;AAAA,sBACV,YAAYC;AAAA,sBACZ,aAAaC;AAAA,sBACb,SAAS,CAAC,CAAC/H,EAAI,SAAS;AAAA,sBACxB,iBAAiB,CAAC,CAACA,EAAI,SAAS;AAAA,sBAChC,cAAAiK;AAAA,sBACA,gBAAAhH;AAAA,sBACA,oBAAA9C;AAAA,sBACA,gBAAAoH;AAAA,sBACA,WAAW,CAAC,CAACvH,GAAK,UAAU;AAAA,sBAC5B,aAAAgE;AAAA,sBACA,gBAAgBmG;AAAA,sBAChB,wBAAwBnG,GAAa;AAAA,oBAAA;AAAA,oBAzBhC6F,GAAM,QAAQ;AAAA,kBAAA;AAAA,gBA4BzB,CAAC;AAAA,gBAEF/H,GAAa,WACZ6G,KACA0B;AAAA,kBACE,gBAAAhC,EAAC,SAAI,WAAU,wEAAwE,YAAY,QAAQrI,EAAI,QAAQ,GAAqB;AAAA,kBAC5I,SAAS,eAAe,OAAOA,EAAI,SAAS,EAAE,EAAE;AAAA,gBAAA;AAAA,cAClD;AAAA,YAAA;AAAA,UAAA;AAAA,WAGFqJ,GAAmB,SAAS,KAAK,CAAC,CAACxH,OACnC,gBAAAwG;AAAA,YAACiC;AAAA,YAAA;AAAA,cACC,OAAOtK,EAAI,SAAS;AAAA,cACpB,YAAYqJ;AAAA,cACZ,eAAexI,MAA8B,QAAQ,CAAC,CAACb,GAAK,UAAU;AAAA,cACtE,aAAAgD;AAAA,cACA,gBAAAC;AAAA,cACA,SAAS,CAAC,CAACjD,EAAI,SAAS;AAAA,cACxB,aAAa,CAAC,CAACsB;AAAA,cACf,aAAayG;AAAA,cACb,iBAAiB,CAAC,CAAC/H,EAAI,SAAS;AAAA,cAChC,eAAeA,GAAK,UAAU,WAAW;AAAA,cACzC,aAAaqD,KAAe,CAAA;AAAA,cAC5B,YAAYyE;AAAA,cACZ,UAAUD;AAAA,cACV,gBAAgB,CAAC,CAACN;AAAA,cAClB,sBAAA1F;AAAA,cACA,SAAS7B,EAAI;AAAA,cACb,OAAAI;AAAA,cACA,SAASJ,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cAClH,iBAAA1G;AAAA,cACA,eAAemD;AAAA,cACf,cAAcD;AAAA,cACd,oBAAAoD;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
1
|
+
{"version":3,"file":"row.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/rows/row.tsx"],"sourcesContent":["import { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { useDraggable, useDroppable } from '@dnd-kit/core';\nimport { useSortable } from '@dnd-kit/sortable';\nimport { CSS } from '@dnd-kit/utilities';\nimport { SubdirectoryArrowLeftRounded } from '@mui/icons-material';\nimport AddRounded from '@mui/icons-material/AddRounded';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\nimport { TableContext } from '../../context';\nimport { ActionCell } from '../cell/ActionCell';\nimport { CheckboxCell } from '../cell/CheckboxCell';\nimport { DataCell } from '../cell/DataCell';\nimport { validateCellValue } from '../../validateCell';\nimport { LoaderCell } from '../cell/LoaderCell';\nimport { PendingEditCell } from '../cell/PendingEditCell';\nimport { RowActionCell } from '../cell/RowActionCell';\nimport { RowOptionsCell } from '../cell/RowOptionsCell';\n\ntype TRowMetadata = {\n is_modified: object;\n is_new: boolean;\n is_deleted: boolean;\n is_added: boolean;\n __is_modified?: boolean;\n __is_edited?: boolean;\n __is_deleted?: boolean;\n __is_new?: boolean;\n __is_added?: boolean;\n};\n\ninterface TableCell {\n column: {\n key?: string;\n visible?: boolean;\n width?: number;\n sticky?: boolean;\n Header?: string;\n type?: string;\n is_required?: boolean;\n meta?: Record<string, unknown>;\n [key: string]: unknown;\n };\n value?: unknown;\n [key: string]: unknown;\n}\n\ninterface RowOriginal {\n id: string | number;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n status?: string;\n type?: string;\n __isLoading?: boolean;\n __level?: number;\n __rowBgStatus?: string;\n __rowMetadata?: { __is_modified?: boolean };\n isDefinedActionRow?: boolean;\n isRoot?: boolean;\n name?: string | { props?: { text?: string } };\n onClick?: () => void;\n uploadCell?: boolean;\n disabled?: boolean;\n disabledTooltip?: string;\n [key: string]: unknown;\n}\n\ninterface TableRowData {\n original: RowOriginal;\n cells: TableCell[];\n getRowProps: () => Record<string, unknown>;\n index: number;\n [key: string]: unknown;\n}\n\ntype TRowOption = {\n key: string;\n label: React.ReactNode;\n isVisible?: boolean;\n [k: string]: unknown;\n};\n\ntype TProps = {\n row: TableRowData;\n isLastRow?: boolean;\n lastRow?: unknown;\n getSubRows?: () => unknown;\n prepareRow?: (row: unknown) => void;\n highlightSubstring?: (value: string) => JSX.Element;\n index: number;\n style?: Record<string, unknown>;\n visibleSubRowIds?: Record<string, unknown>;\n rowsLength?: number;\n level?: number;\n columns?: Record<string, unknown>;\n expandedRows?: Record<string, { isOpen: boolean }>;\n rows?: Array<{ original: unknown }>;\n};\n\nexport const Row = ({ row, isLastRow, lastRow, highlightSubstring, index, style, level = 0, expandedRows, rows }: TProps) => {\n const {\n lastNonStickyColumnIndex,\n checkboxConfig,\n onRowClick,\n rowOptions,\n disableOptionsForRowIndex = null,\n getSumOfNextVisibleColumnWidth,\n onRowEdit,\n inlineEditColumns,\n tableActions,\n dndSortableUtils,\n withSortable,\n withDraggable,\n getInnerRowData,\n showNewItem,\n rawData,\n dragConfig,\n getFullRowDataOnClick,\n selectedRowId,\n rowWrapper: RowWrapper,\n isCellClickDisabled,\n rowAdditionalActions,\n hoverConfig,\n addPendingEdit,\n removePendingEdit,\n fieldOperationLoading,\n clearRowPendingEdits,\n saveRowPendingEdits,\n pendingEdits: contextPendingEdits,\n } = useContext(TableContext);\n\n const tableConfig = useTableConfig();\n\n const isCheckbox = Boolean(checkboxConfig);\n const { activeInlineEdit, setActiveInlineEdit } = useContext(TableContext);\n const inlineEditing = activeInlineEdit?.rowId === row.original.id ? activeInlineEdit?.columnKey : null;\n const isInlineEditing = Boolean(inlineEditing);\n const setInlineEditing = (columnKey: string | null) => {\n if (columnKey === null) setActiveInlineEdit?.(null);\n else setActiveInlineEdit?.({ rowId: String(row.original.id), columnKey });\n };\n const [rowHovering, setRowHovering] = useState<string | number | null>(null);\n const [editedCellValue, setEditedCellValue] = useState<string | null>(null);\n const [currentData, setCurrentData] = useState<Record<string, unknown> | null>(null);\n const [loadingExpand, setLoadingExpand] = useState(false);\n const [isDraggingFile, setIsDraggingFile] = useState(false);\n\n const prevInlineEditingRef = useRef<string | null>(null);\n useEffect(() => {\n const wasEditing = prevInlineEditingRef.current;\n const isNowEditing = inlineEditing;\n\n if (wasEditing && !isNowEditing) {\n const pendingEdit = contextPendingEdits?.[row.original.id]?.[wasEditing];\n if (pendingEdit) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === wasEditing);\n if (currentCell) {\n const result = validateCellValue(pendingEdit.value, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid && addPendingEdit) {\n addPendingEdit(String(row.original.id), wasEditing, {\n ...pendingEdit,\n validationError: result.error,\n });\n }\n }\n }\n }\n\n prevInlineEditingRef.current = isNowEditing ?? null;\n }, [inlineEditing, row.original.id, row.cells, contextPendingEdits, addPendingEdit]);\n\n useEffect(() => {\n if (rawData) {\n const idKey = String(row?.original?.id);\n setCurrentData(rawData[idKey]?.[row?.cells[0].column.Header as string] || rawData[idKey]?.[0]);\n }\n }, [rawData, row?.original?.id, row?.cells]);\n\n const sortableResult = useSortable({ id: row.original.id, data: { ...row.original }, disabled: !withSortable });\n const draggableResult = useDraggable({ id: row.original.id, data: { ...row.original }, disabled: !!withSortable });\n const { listeners, transform, setNodeRef, isDragging, attributes, active, over, ...rest } = withSortable\n ? sortableResult\n : draggableResult;\n\n const { setNodeRef: setDroppableNodeRef } = useDroppable({\n id: `table-file-dropzone-${row?.original?.id}`,\n data: { type: 'table-file-dropzone', folderId: row?.original?.id, isFolder: row?.original?.type === 'folder' },\n });\n\n const dndStyles = {\n transform: CSS.Transform.toString(transform),\n transition: withSortable ? (rest as { transition?: string }).transition : undefined,\n cursor: isDragging ? 'grabbing' : 'grab',\n opacity: isDragging ? '0.5' : '1',\n };\n\n const isOverOtherContext = (): boolean => {\n if (!active || !over || !withSortable) return false;\n if (dndSortableUtils?.checkOverEachItem) return dndSortableUtils.checkOverEachItem(active, over) && Boolean(over);\n return active.data.current?.type !== over.data.current?.type && Boolean(over);\n };\n\n const handleCellValueChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n setEditedCellValue(e.target.value);\n };\n\n const handleCloseEdit = () => {\n if (fieldOperationLoading) return;\n setInlineEditing(null);\n };\n\n const validationRef = useRef<(() => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) | null>(null);\n\n const registerValidation = useCallback(\n (validateFn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => {\n validationRef.current = validateFn;\n },\n [],\n );\n\n const tableConfigRef = useRef(tableConfig);\n tableConfigRef.current = tableConfig;\n\n const handleRowCancelEdit = useCallback(() => {\n if (clearRowPendingEdits) clearRowPendingEdits(String(row.original.id));\n }, [clearRowPendingEdits, row.original.id]);\n\n const handleRowConfirmEdit = useCallback(() => {\n if (validationRef.current) {\n const result = validationRef.current();\n if (!result.isValid) return;\n if (inlineEditing && result.value !== undefined && addPendingEdit) {\n addPendingEdit(String(row.original.id), inlineEditing, {\n value: result.value,\n originalValue: row.original[inlineEditing],\n meta: result.meta || undefined,\n });\n }\n } else if (inlineEditing) {\n const currentCell = row.cells?.find((c: TableCell) => c.column?.key === inlineEditing);\n if (currentCell) {\n const pendingValue = contextPendingEdits?.[row.original.id]?.[inlineEditing]?.value;\n const valueToValidate = pendingValue !== undefined ? pendingValue : currentCell.value;\n const result = validateCellValue(valueToValidate as string | boolean | null | undefined, currentCell.column as { type?: string; is_required?: boolean });\n if (!result.isValid) {\n tableConfigRef.current?.showNotification?.('error', result.error || 'Validation failed');\n return;\n }\n }\n }\n\n if (saveRowPendingEdits) saveRowPendingEdits(String(row.original.id));\n }, [saveRowPendingEdits, row.original, row.cells, inlineEditing, addPendingEdit, contextPendingEdits]);\n\n const handleUpdateCellData = (\n directValue?: string | boolean | null,\n meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null,\n ) => {\n const _item = { ...row.original };\n const updatedValue = directValue !== undefined ? directValue : editedCellValue;\n if (inlineEditing && updatedValue !== undefined) {\n _item[inlineEditing] = updatedValue;\n if (onRowEdit) onRowEdit(_item, index, inlineEditing, updatedValue, meta);\n if (removePendingEdit) removePendingEdit(String(row.original.id), inlineEditing);\n }\n handleCloseEdit();\n };\n\n const ref = useRef<HTMLElement>(null);\n\n const handleCellClick = (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => {\n if (isCellClickDisabled) return;\n event?.stopPropagation();\n if (inlineEditing === key) return;\n\n if (onRowEdit) {\n if (inlineEditColumns?.includes(key)) {\n setInlineEditing(key);\n setEditedCellValue(String(row.original[key]));\n } else {\n const msg = tableConfig?.getSystemMessage?.('notAllowedInlineEdit') || 'Inline Edit is not allowed for this column';\n tableConfig?.showNotification?.('error', msg);\n }\n return;\n }\n\n if (onRowClick) {\n onRowClick(data, idx, row.original, rows?.map((_row: { original: unknown }) => _row.original) || []);\n } else if (!onRowClick && checkboxConfig) {\n const _id = row.original.id;\n const checkEvent = { target: { checked: !checkboxConfig.checkedIds.includes(_id) } };\n checkboxConfig.onItemCheck(checkEvent, _id);\n }\n };\n\n const toggleRowExpand = async () => {\n setLoadingExpand(true);\n if (getInnerRowData) {\n await getInnerRowData(row?.original?.id, row?.original, !(expandedRows?.[row?.original?.id as string]?.isOpen ?? false), row?.original?.__level || 0);\n }\n setLoadingExpand(false);\n };\n\n\n\n\n const totalWidth = useMemo(() => {\n return row.cells.filter((c: TableCell) => c.column?.visible).map((c: TableCell) => c.column?.width ?? 0).reduce((a: number, b: number) => a + b, 0);\n }, [row.cells]);\n\n const isDraggingOver = useMemo(() => {\n return dragConfig?.draggingOver && dragConfig?.draggingOver === row?.original?.id;\n }, [dragConfig, row?.original?.id]);\n\n const dropPosition = useMemo(() => {\n if (!isDraggingOver) return null;\n return dragConfig?.dropPosition || 'inside';\n }, [isDraggingOver, dragConfig?.dropPosition]);\n\n const isDraggingOverInside = Boolean(isDraggingOver && dropPosition === 'inside');\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n const isSelected =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(row?.original?.id);\n\n const bgColor = cn({\n 'bg-neutral-100 dark:bg-black-600': rowHovering === row?.original?.id && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-700': isSelected && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-black-700': !row?.original?.is_read && showNewItem && !row?.original?.__isLoading && _notHovering && !isInlineEditing,\n // 'bg-white dark:bg-black-700': cell.column.sticky && rowHovering !== id,\n 'bg-warning-50 dark:bg-warning-975': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-50 dark:bg-error-975': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-success-50 dark:bg-success-975': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n [getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string]]: row?.original?.__rowBgStatus && !isInlineEditing,\n });\n\n return (\n <tr\n {...row.getRowProps()}\n ref={withDraggable || withSortable ? setNodeRef : null}\n key={row.original.id}\n data-row-id={row.original.id}\n className={cn(\n `text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${checkboxConfig?.selectionDisabledRowIds?.includes(row?.original?.id) ? 'opacity-50' : ''} border-t`,\n isDragging ? 'z-40' : '',\n isOverOtherContext() ? 'shadow-dnd-drop' : '',\n withDraggable && over && over?.data?.current?.type === 'table-file-dropzone' && over?.data?.current?.folderId === row?.original?.id && row?.original?.type === 'folder' ? 'bg-primary-50' : '',\n row?.original?.isDefinedActionRow ? 'bg-primary-50' : '',\n isDraggingOverInside ? 'z-50' : '',\n bgColor ? bgColor : 'bg-white dark:bg-black-800',\n )}\n style={{ ...style, ...(withSortable ? dndStyles : {}), width: 'max-content' }}\n {...(withDraggable || withSortable ? attributes : {})}\n {...(withDraggable || withSortable ? listeners : {})}\n >\n {isDraggingOverInside && dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <div className='bg-primary-200 px-2 py-1 rounded'>\n {dragConfig?.dragOperation === 'COPY' ? (\n <AddRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n ) : (\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 12 }} className='text-primary-700' />\n )}\n </div>\n </div>\n ) : null}\n {isDraggingOverInside && !dragConfig?.dragOperation ? (\n <div className='absolute right-2 h-row flex items-center z-20 pointer-events-none'>\n <SubdirectoryArrowLeftRounded sx={{ fontSize: 16 }} className='text-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'before' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -top-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n {isDraggingOver && dropPosition === 'after' && !row?.original?.isDefinedActionRow ? (\n <div className='absolute -bottom-[1px] left-0 right-0 h-[2px] bg-primary-500 z-20 pointer-events-none'>\n <div className='absolute left-0 top-1/2 -translate-y-1/2 w-2 h-2 rounded-full bg-primary-500' />\n </div>\n ) : null}\n\n {row?.original?.isDefinedActionRow ? (\n <ActionCell\n cells={row.cells}\n id={row?.original?.id}\n isCheckbox={checkboxConfig}\n level={level}\n name={row?.original?.name as string}\n onClick={row?.original?.onClick as () => void}\n rowHovering={rowHovering || ''}\n isRoot={row?.original?.isRoot as boolean}\n totalWidth={totalWidth}\n row={row.original as Record<string, unknown>}\n uploadCell={row?.original?.uploadCell as boolean}\n disabled={row?.original?.disabled as boolean}\n disabledTooltip={row?.original?.disabledTooltip as string}\n />\n ) : RowWrapper ? (\n <RowWrapper data={row.original} setIsDraggingFile={setIsDraggingFile}>\n <RowContent\n isDraggingOver={isDraggingOverInside}\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n </RowWrapper>\n ) : (\n <RowContent\n level={level}\n withDraggable={withDraggable}\n setDroppableNodeRef={setDroppableNodeRef}\n isLastRow={isLastRow}\n lastRow={lastRow}\n isCheckbox={isCheckbox}\n checkboxConfig={checkboxConfig}\n row={row}\n rowHovering={rowHovering}\n tableActions={tableActions}\n disableOptionsForRowIndex={disableOptionsForRowIndex}\n index={index}\n showNewItem={showNewItem}\n currentData={currentData}\n lastNonStickyColumnIndex={lastNonStickyColumnIndex}\n getSumOfNextVisibleColumnWidth={getSumOfNextVisibleColumnWidth}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n cellRef={ref}\n handleCellClick={handleCellClick}\n getFullRowDataOnClick={getFullRowDataOnClick}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n handleRowCancelEdit={handleRowCancelEdit}\n handleRowConfirmEdit={handleRowConfirmEdit}\n registerValidation={registerValidation}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring}\n rowOptions={rowOptions}\n isDraggingFile={isDraggingFile}\n isDraggingOver={isDraggingOverInside}\n rowAdditionalActions={rowAdditionalActions}\n hoverConfig={hoverConfig}\n isSelected={isSelected}\n />\n )}\n </tr>\n );\n};\n\ninterface RowContentProps {\n withDraggable?: boolean;\n setDroppableNodeRef: (node: HTMLElement | null) => void;\n isLastRow?: boolean;\n lastRow?: unknown;\n isCheckbox: boolean;\n checkboxConfig: Record<string, unknown> | null;\n row: TableRowData;\n rowHovering: string | number | null;\n tableActions?: ((rowData: Record<string, unknown>, index: number) => React.ReactNode) | null;\n disableOptionsForRowIndex?: number | null;\n index: number;\n showNewItem?: boolean;\n currentData: Record<string, unknown> | null;\n lastNonStickyColumnIndex?: (() => number | null) | null;\n getSumOfNextVisibleColumnWidth?: (index: number) => number | null;\n toggleRowExpand: () => Promise<void>;\n loadingExpand: boolean;\n cellRef: React.RefObject<HTMLElement | null>;\n handleCellClick: (event: React.MouseEvent, data: string | Record<string, unknown>, idx: number, key: string) => void;\n getFullRowDataOnClick?: boolean;\n handleCellValueChange: (e: React.ChangeEvent<HTMLInputElement>) => void;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: Record<string, unknown> | null) => void;\n handleRowCancelEdit: () => void;\n handleRowConfirmEdit: () => void;\n registerValidation: (fn: () => { isValid: boolean; value?: string | boolean | null; meta?: Record<string, unknown> | null }) => void;\n inlineEditing: string | null;\n isInlineEditing: boolean;\n setRowHovering: (id: string | number | null) => void;\n highlightSubstring?: (value: string) => React.ReactNode;\n rowOptions?: TRowOption[] | ((rowData: Record<string, unknown>) => TRowOption[] | null) | null;\n level?: number;\n isDraggingFile?: boolean;\n isDraggingOver?: boolean;\n rowAdditionalActions?: unknown;\n hoverConfig?: { onHover?: (data: Record<string, unknown>) => React.ReactNode };\n isSelected?: boolean;\n}\n\nconst RowContent = ({\n withDraggable,\n setDroppableNodeRef,\n isLastRow,\n lastRow,\n isCheckbox,\n checkboxConfig,\n row,\n rowHovering,\n tableActions,\n disableOptionsForRowIndex,\n index,\n showNewItem,\n currentData,\n lastNonStickyColumnIndex,\n getSumOfNextVisibleColumnWidth,\n toggleRowExpand,\n loadingExpand,\n cellRef,\n handleCellClick,\n getFullRowDataOnClick,\n handleCellValueChange,\n handleUpdateCellData,\n handleRowCancelEdit,\n handleRowConfirmEdit,\n registerValidation,\n inlineEditing,\n isInlineEditing,\n setRowHovering,\n highlightSubstring,\n rowOptions,\n level,\n isDraggingFile,\n isDraggingOver,\n rowAdditionalActions,\n hoverConfig,\n isSelected,\n}: RowContentProps) => {\n const [isRowContentHovering, setIsRowContentHovering] = useState(false);\n const {\n getPendingEdit: getPendingEditFn,\n hasPendingEdit: hasPendingEditFn,\n pendingEdits,\n tableHeaders,\n pendingEditsCount,\n scrollToCell,\n } = useContext(TableContext);\n const rowHasPendingEdits = pendingEdits?.[row.original.id] && Object.keys(pendingEdits[row.original.id]).length > 0;\n const tableHasAnyPendingEdits = (pendingEditsCount ?? 0) > 0;\n const resolvedRowOptions = useMemo<TRowOption[]>(() => {\n if (Array.isArray(rowOptions)) return rowOptions;\n if (typeof rowOptions === 'function') {\n const options = rowOptions({ ...row.original, rowIndex: index });\n return Array.isArray(options) ? options : [];\n }\n return [];\n }, [rowOptions, row.original, index]);\n\n\n const _meta = (row?.original?.__rowMetadata as TRowMetadata | undefined) || (row?.original?._meta as TRowMetadata | undefined);\n const _notHovering = rowHovering !== row?.original?.id;\n const _notLoading = !row?.original?.__isLoading;\n const _isNewRow = !!(\n _meta?.__is_new ||\n _meta?.__is_added ||\n row?.original?.is_added ||\n (currentData?.is_added as boolean) ||\n // _meta.is_added alone is not reliable — the API sends it on modified/deleted rows too; only is_new confirms \"added\".\n _meta?.is_new\n );\n const _isDeletedRow = !!(row?.original?.is_deleted || _meta?.__is_deleted || (currentData?.is_deleted as boolean) || _meta?.is_deleted);\n const _isModifiedRow =\n !!(\n row?.original?.is_modified ||\n row?.original?.is_row_modified ||\n _meta?.__is_modified ||\n _meta?.__is_edited ||\n (currentData?.is_row_modified as boolean) ||\n _meta?.is_modified\n ) && !_isNewRow;\n\n // Only apply the selected background when the row is not being hovered, so on hover the icon cells\n // (checkbox, actions, options) fall back to the same gray hover background as the data cells.\n const selectedBg =\n isSelected && !isInlineEditing && rowHovering !== row?.original?.id ? 'bg-primary-50 dark:bg-primary-700' : undefined;\n\n const statusBorderClass = cn('pointer-events-none absolute left-0 top-0 bottom-0 w-[3px] z-40', {\n 'bg-success-400 dark:bg-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-error-400 dark:bg-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'bg-warning-400 dark:bg-warning-500': _isModifiedRow && _notLoading && _notHovering && !isInlineEditing,\n });\n\n return (\n <div\n ref={withDraggable ? setDroppableNodeRef : null}\n className={isDraggingOver ? 'border-2 border-primary-400 dark:border-primary-500 rounded-sm' : ''}\n >\n <div className={statusBorderClass} />\n <div className='flex' ref={isLastRow ? (lastRow as React.Ref<HTMLDivElement>) : null}>\n {tableHasAnyPendingEdits && (\n <PendingEditCell\n rowId={String(row.original.id)}\n rowIndex={index}\n pendingEdits={pendingEdits}\n tableHeaders={tableHeaders}\n rowHasPendingEdits={!!rowHasPendingEdits}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isInlineEditing={isInlineEditing}\n is_read={!!row.original.is_read}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={showNewItem}\n onScrollToCell={scrollToCell}\n />\n )}\n\n {isCheckbox && (\n <CheckboxCell\n checkboxConfig={checkboxConfig as never}\n id={String(row.original.id)}\n rowHovering={rowHovering != null ? String(rowHovering) : undefined}\n isDisabled={!!row?.original?.__isLoading}\n isDraggingOver={isDraggingOver}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n showNewItem={showNewItem}\n currentData={currentData ?? {}}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n hasPendingEditsColumn={tableHasAnyPendingEdits}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n\n {tableActions ? (\n <RowActionCell\n tableActions={tableActions as (rowData: Record<string, unknown>, index: number) => JSX.Element}\n disableOptionsForRowIndex={disableOptionsForRowIndex ?? null}\n id={String(row.original.id)}\n index={index}\n is_read={!!row?.original?.is_read}\n is_incomplete={row?.original?.status === 'Incomplete'}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row?.original?.is_row_modified}\n is_deleted={_isDeletedRow}\n currentData={currentData ?? {}}\n is_added={_isNewRow}\n rowData={row.original as Record<string, unknown>}\n rowHovering={rowHovering}\n isDisabled={!!row?.original?.__isLoading}\n bgColor={isDraggingFile ? 'bg-primary-50' : row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n ) : null}\n\n <div\n className='relative flex-1'\n id={`row-${row.original.id}`}\n onMouseEnter={() => setIsRowContentHovering(true)}\n onMouseLeave={() => setIsRowContentHovering(false)}\n >\n {row.cells\n .filter((cell: TableCell) => cell?.column?.visible !== false)\n .map((cell: TableCell, y: number) => {\n const isLastCell = y === lastNonStickyColumnIndex?.();\n const isFirstStickyCell = y === (lastNonStickyColumnIndex?.() ?? -1) + 1;\n const nextWidthSum = cell?.column?.sticky ? (getSumOfNextVisibleColumnWidth?.(y) ?? 0) : 0;\n\n if (row.original?.__isLoading) {\n return (\n <LoaderCell cell={cell as unknown as { column: { width: number; sticky?: boolean; sequence?: number } }} id={y} nextWidthSum={nextWidthSum} isLastCell={isLastCell} rowHovering={rowHovering} index={y} key={y} isFirstStickyCell={isFirstStickyCell} />\n );\n }\n\n const pendingEdit = getPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n const hasPending = hasPendingEditFn?.(String(row.original.id), cell?.column?.key || '');\n\n return (\n <DataCell\n cell={cell as unknown as import('../../types').ICell}\n rowHovering={rowHovering}\n isFirstStickyCell={isFirstStickyCell}\n level={level ?? 0}\n toggleRowExpand={toggleRowExpand}\n loadingExpand={loadingExpand}\n key={cell?.column?.key}\n index={y}\n cellRef={cellRef as React.RefObject<HTMLDivElement>}\n currentData={currentData as { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean }}\n handleCellClick={(e?: React.MouseEvent) => { if (e) handleCellClick(e, getFullRowDataOnClick ? row.original : String(row.original.id), y, cell?.column?.key || ''); }}\n handleCellValueChange={handleCellValueChange}\n handleUpdateCellData={handleUpdateCellData}\n registerValidation={registerValidation}\n id={row.original.id}\n inlineEditing={inlineEditing}\n isInlineEditing={isInlineEditing}\n isLastCell={isLastCell}\n is_incomplete={row?.original?.status === 'Incomplete'}\n is_added={_isNewRow}\n is_deleted={_isDeletedRow}\n is_modified={_isModifiedRow}\n is_read={!!row.original.is_read}\n is_row_modified={!!row.original.is_row_modified}\n nextWidthSum={nextWidthSum}\n setRowHovering={setRowHovering}\n highlightSubstring={highlightSubstring as ((value: string) => JSX.Element) | undefined}\n isDraggingOver={isDraggingOver}\n isLoading={!!row?.original?.__isLoading}\n pendingEdit={pendingEdit}\n hasPendingEdit={hasPending}\n pendingValidationError={pendingEdit?.validationError}\n />\n );\n })}\n\n {hoverConfig?.onHover &&\n isRowContentHovering &&\n createPortal(\n <div className='absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl'>{hoverConfig.onHover(row.original) as React.ReactNode}</div>,\n document.getElementById(`row-${row.original.id}`) as HTMLElement,\n )}\n </div>\n\n {(resolvedRowOptions.length > 0 || !!rowAdditionalActions) && (\n <RowOptionsCell\n rowId={row.original.id}\n rowOptions={resolvedRowOptions}\n disableOption={disableOptionsForRowIndex !== null || !!row?.original?.__isLoading}\n rowHovering={rowHovering}\n setRowHovering={setRowHovering}\n is_read={!!row.original.is_read}\n showNewItem={!!showNewItem}\n is_modified={_isModifiedRow}\n is_row_modified={!!row.original.is_row_modified}\n is_incomplete={row?.original?.status === 'Incomplete'}\n currentData={currentData ?? {}}\n is_deleted={_isDeletedRow}\n is_added={_isNewRow}\n isDraggingOver={!!isDraggingOver}\n rowAdditionalActions={rowAdditionalActions as (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode}\n rowData={row.original as Record<string, unknown>}\n index={index}\n bgColor={row?.original?.__rowBgStatus ? getTableRowBgClassNamesByStatus[row?.original?.__rowBgStatus as string] : selectedBg}\n isInlineEditing={isInlineEditing}\n onConfirmEdit={handleRowConfirmEdit}\n onCancelEdit={handleRowCancelEdit}\n rowHasPendingEdits={rowHasPendingEdits}\n />\n )}\n </div>\n </div>\n );\n};\n"],"names":["Row","row","isLastRow","lastRow","highlightSubstring","index","style","level","expandedRows","rows","lastNonStickyColumnIndex","checkboxConfig","onRowClick","rowOptions","disableOptionsForRowIndex","getSumOfNextVisibleColumnWidth","onRowEdit","inlineEditColumns","tableActions","dndSortableUtils","withSortable","withDraggable","getInnerRowData","showNewItem","rawData","dragConfig","getFullRowDataOnClick","selectedRowId","RowWrapper","isCellClickDisabled","rowAdditionalActions","hoverConfig","addPendingEdit","removePendingEdit","fieldOperationLoading","clearRowPendingEdits","saveRowPendingEdits","contextPendingEdits","useContext","TableContext","tableConfig","useTableConfig","isCheckbox","activeInlineEdit","setActiveInlineEdit","inlineEditing","isInlineEditing","setInlineEditing","columnKey","rowHovering","setRowHovering","useState","editedCellValue","setEditedCellValue","currentData","setCurrentData","loadingExpand","setLoadingExpand","isDraggingFile","setIsDraggingFile","prevInlineEditingRef","useRef","useEffect","wasEditing","isNowEditing","pendingEdit","currentCell","c","result","validateCellValue","idKey","sortableResult","useSortable","draggableResult","useDraggable","listeners","transform","setNodeRef","isDragging","attributes","active","over","rest","setDroppableNodeRef","useDroppable","dndStyles","CSS","isOverOtherContext","handleCellValueChange","e","handleCloseEdit","validationRef","registerValidation","useCallback","validateFn","tableConfigRef","handleRowCancelEdit","handleRowConfirmEdit","pendingValue","valueToValidate","handleUpdateCellData","directValue","meta","_item","updatedValue","ref","handleCellClick","event","data","idx","key","msg","_row","_id","checkEvent","toggleRowExpand","totalWidth","useMemo","a","b","isDraggingOver","dropPosition","isDraggingOverInside","_meta","_notHovering","_notLoading","_isNewRow","_isDeletedRow","_isModifiedRow","isSelected","bgColor","cn","getTableRowBgClassNamesByStatus","createElement","jsx","AddRounded","SubdirectoryArrowLeftRounded","ActionCell","RowContent","cellRef","isRowContentHovering","setIsRowContentHovering","getPendingEditFn","hasPendingEditFn","pendingEdits","tableHeaders","pendingEditsCount","scrollToCell","rowHasPendingEdits","tableHasAnyPendingEdits","resolvedRowOptions","options","selectedBg","statusBorderClass","jsxs","PendingEditCell","CheckboxCell","RowActionCell","cell","y","isLastCell","isFirstStickyCell","nextWidthSum","LoaderCell","hasPending","DataCell","createPortal","RowOptionsCell"],"mappings":";;;;;;;;;;;;;;;;;;;;AAwGO,MAAMA,KAAM,CAAC,EAAE,KAAAC,GAAK,WAAAC,GAAW,SAAAC,GAAS,oBAAAC,IAAoB,OAAAC,GAAO,OAAAC,IAAO,OAAAC,IAAQ,GAAG,cAAAC,GAAc,MAAAC,SAAmB;AAC3H,QAAM;AAAA,IACJ,0BAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,YAAAC;AAAA,IACA,YAAAC;AAAA,IACA,2BAAAC,IAA4B;AAAA,IAC5B,gCAAAC;AAAA,IACA,WAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,kBAAAC;AAAA,IACA,cAAAC;AAAA,IACA,eAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,YAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAYC;AAAA,IACZ,qBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,gBAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,uBAAAC;AAAA,IACA,sBAAAC;AAAA,IACA,qBAAAC;AAAA,IACA,cAAcC;AAAA,EAAA,IACZC,GAAWC,EAAY,GAErBC,IAAcC,GAAA,GAEdC,KAAa,EAAQ/B,GACrB,EAAE,kBAAAgC,IAAkB,qBAAAC,MAAwBN,GAAWC,EAAY,GACnEM,IAAgBF,IAAkB,UAAU1C,EAAI,SAAS,KAAK0C,IAAkB,YAAY,MAC5FG,IAAkB,EAAQD,GAC1BE,KAAmB,CAACC,MAA6B;AACrD,IAAwBJ,IAApBI,MAAc,OAA4B,OACnB,EAAE,OAAO,OAAO/C,EAAI,SAAS,EAAE,GAAG,WAAA+C,GADX;AAAA,EAEpD,GACM,CAACC,GAAaC,CAAc,IAAIC,EAAiC,IAAI,GACrE,CAACC,IAAiBC,CAAkB,IAAIF,EAAwB,IAAI,GACpE,CAACG,GAAaC,CAAc,IAAIJ,EAAyC,IAAI,GAC7E,CAACK,GAAeC,CAAgB,IAAIN,EAAS,EAAK,GAClD,CAACO,GAAgBC,CAAiB,IAAIR,EAAS,EAAK,GAEpDS,KAAuBC,GAAsB,IAAI;AACvD,EAAAC,GAAU,MAAM;AACd,UAAMC,IAAaH,GAAqB,SAClCI,IAAenB;AAErB,QAAIkB,KAAc,CAACC,GAAc;AAC/B,YAAMC,IAAc5B,IAAsBpC,EAAI,SAAS,EAAE,IAAI8D,CAAU;AACvE,UAAIE,GAAa;AACf,cAAMC,IAAcjE,EAAI,OAAO,KAAK,CAACkE,MAAiBA,EAAE,QAAQ,QAAQJ,CAAU;AAClF,YAAIG,GAAa;AACf,gBAAME,IAASC,GAAkBJ,EAAY,OAAOC,EAAY,MAAkD;AAClH,UAAI,CAACE,EAAO,WAAWpC,KACrBA,EAAe,OAAO/B,EAAI,SAAS,EAAE,GAAG8D,GAAY;AAAA,YAClD,GAAGE;AAAA,YACH,iBAAiBG,EAAO;AAAA,UAAA,CACzB;AAAA,QAEL;AAAA,MACF;AAAA,IACF;AAEA,IAAAR,GAAqB,UAAUI,KAAgB;AAAA,EACjD,GAAG,CAACnB,GAAe5C,EAAI,SAAS,IAAIA,EAAI,OAAOoC,GAAqBL,CAAc,CAAC,GAEnF8B,GAAU,MAAM;AACd,QAAItC,GAAS;AACX,YAAM8C,IAAQ,OAAOrE,GAAK,UAAU,EAAE;AACtC,MAAAsD,EAAe/B,EAAQ8C,CAAK,IAAIrE,GAAK,MAAM,CAAC,EAAE,OAAO,MAAgB,KAAKuB,EAAQ8C,CAAK,IAAI,CAAC,CAAC;AAAA,IAC/F;AAAA,EACF,GAAG,CAAC9C,GAASvB,GAAK,UAAU,IAAIA,GAAK,KAAK,CAAC;AAE3C,QAAMsE,IAAiBC,GAAY,EAAE,IAAIvE,EAAI,SAAS,IAAI,MAAM,EAAE,GAAGA,EAAI,SAAA,GAAY,UAAU,CAACmB,GAAc,GACxGqD,IAAkBC,GAAa,EAAE,IAAIzE,EAAI,SAAS,IAAI,MAAM,EAAE,GAAGA,EAAI,SAAA,GAAY,UAAU,CAAC,CAACmB,GAAc,GAC3G,EAAE,WAAAuD,IAAW,WAAAC,IAAW,YAAAC,IAAY,YAAAC,GAAY,YAAAC,IAAY,QAAAC,GAAQ,MAAAC,GAAM,GAAGC,GAAA,IAAS9D,IACxFmD,IACAE,GAEE,EAAE,YAAYU,GAAA,IAAwBC,GAAa;AAAA,IACvD,IAAI,uBAAuBnF,GAAK,UAAU,EAAE;AAAA,IAC5C,MAAM,EAAE,MAAM,uBAAuB,UAAUA,GAAK,UAAU,IAAI,UAAUA,GAAK,UAAU,SAAS,SAAA;AAAA,EAAS,CAC9G,GAEKoF,KAAY;AAAA,IAChB,WAAWC,GAAI,UAAU,SAASV,EAAS;AAAA,IAC3C,YAAYxD,IAAgB8D,GAAiC,aAAa;AAAA,IAC1E,QAAQJ,IAAa,aAAa;AAAA,IAClC,SAASA,IAAa,QAAQ;AAAA,EAAA,GAG1BS,KAAqB,MACrB,CAACP,KAAU,CAACC,KAAQ,CAAC7D,IAAqB,KAC1CD,IAAkB,oBAA0BA,GAAiB,kBAAkB6D,GAAQC,CAAI,KAAK,EAAQA,IACrGD,EAAO,KAAK,SAAS,SAASC,EAAK,KAAK,SAAS,QAAQ,EAAQA,GAGpEO,KAAwB,CAACC,MAA2C;AACxE,IAAApC,EAAmBoC,EAAE,OAAO,KAAK;AAAA,EACnC,GAEMC,KAAkB,MAAM;AAC5B,IAAIxD,MACJa,GAAiB,IAAI;AAAA,EACvB,GAEM4C,KAAgB9B,GAAoH,IAAI,GAExI+B,KAAqBC;AAAA,IACzB,CAACC,MAAmH;AAClH,MAAAH,GAAc,UAAUG;AAAA,IAC1B;AAAA,IACA,CAAA;AAAA,EAAC,GAGGC,KAAiBlC,GAAOrB,CAAW;AACzC,EAAAuD,GAAe,UAAUvD;AAEzB,QAAMwD,KAAsBH,GAAY,MAAM;AAC5C,IAAI1D,KAAsBA,EAAqB,OAAOlC,EAAI,SAAS,EAAE,CAAC;AAAA,EACxE,GAAG,CAACkC,GAAsBlC,EAAI,SAAS,EAAE,CAAC,GAEpCgG,KAAuBJ,GAAY,MAAM;AAC7C,QAAIF,GAAc,SAAS;AACzB,YAAMvB,IAASuB,GAAc,QAAA;AAC7B,UAAI,CAACvB,EAAO,QAAS;AACrB,MAAIvB,KAAiBuB,EAAO,UAAU,UAAapC,KACjDA,EAAe,OAAO/B,EAAI,SAAS,EAAE,GAAG4C,GAAe;AAAA,QACrD,OAAOuB,EAAO;AAAA,QACd,eAAenE,EAAI,SAAS4C,CAAa;AAAA,QACzC,MAAMuB,EAAO,QAAQ;AAAA,MAAA,CACtB;AAAA,IAEL,WAAWvB,GAAe;AACxB,YAAMqB,IAAcjE,EAAI,OAAO,KAAK,CAACkE,MAAiBA,EAAE,QAAQ,QAAQtB,CAAa;AACrF,UAAIqB,GAAa;AACf,cAAMgC,IAAe7D,IAAsBpC,EAAI,SAAS,EAAE,IAAI4C,CAAa,GAAG,OACxEsD,IAAkBD,MAAiB,SAAYA,IAAehC,EAAY,OAC1EE,IAASC,GAAkB8B,GAAwDjC,EAAY,MAAkD;AACvJ,YAAI,CAACE,EAAO,SAAS;AACnB,UAAA2B,GAAe,SAAS,mBAAmB,SAAS3B,EAAO,SAAS,mBAAmB;AACvF;AAAA,QACF;AAAA,MACF;AAAA,IACF;AAEA,IAAIhC,KAAqBA,EAAoB,OAAOnC,EAAI,SAAS,EAAE,CAAC;AAAA,EACtE,GAAG,CAACmC,GAAqBnC,EAAI,UAAUA,EAAI,OAAO4C,GAAeb,GAAgBK,CAAmB,CAAC,GAE/F+D,KAAuB,CAC3BC,GACAC,MACG;AACH,UAAMC,IAAQ,EAAE,GAAGtG,EAAI,SAAA,GACjBuG,IAAeH,MAAgB,SAAYA,IAAcjD;AAC/D,IAAIP,KAAiB2D,MAAiB,WACpCD,EAAM1D,CAAa,IAAI2D,GACnBxF,KAAWA,EAAUuF,GAAOlG,GAAOwC,GAAe2D,GAAcF,CAAI,GACpErE,KAAmBA,EAAkB,OAAOhC,EAAI,SAAS,EAAE,GAAG4C,CAAa,IAEjF6C,GAAA;AAAA,EACF,GAEMe,KAAM5C,GAAoB,IAAI,GAE9B6C,KAAkB,CAACC,GAAyBC,GAAwCC,GAAaC,MAAgB;AACrH,QAAI,CAAAjF,OACJ8E,GAAO,gBAAA,GACH9D,MAAkBiE,IAEtB;AAAA,UAAI9F,GAAW;AACb,YAAIC,IAAmB,SAAS6F,CAAG;AACjC,UAAA/D,GAAiB+D,CAAG,GACpBzD,EAAmB,OAAOpD,EAAI,SAAS6G,CAAG,CAAC,CAAC;AAAA,aACvC;AACL,gBAAMC,IAAMvE,GAAa,mBAAmB,sBAAsB,KAAK;AACvE,UAAAA,GAAa,mBAAmB,SAASuE,CAAG;AAAA,QAC9C;AACA;AAAA,MACF;AAEA,UAAInG;AACF,QAAAA,EAAWgG,GAAMC,GAAK5G,EAAI,UAAUQ,IAAM,IAAI,CAACuG,MAAgCA,EAAK,QAAQ,KAAK,CAAA,CAAE;AAAA,eAC1F,CAACpG,KAAcD,GAAgB;AACxC,cAAMsG,IAAMhH,EAAI,SAAS,IACnBiH,KAAa,EAAE,QAAQ,EAAE,SAAS,CAACvG,EAAe,WAAW,SAASsG,CAAG,IAAE;AACjF,QAAAtG,EAAe,YAAYuG,IAAYD,CAAG;AAAA,MAC5C;AAAA;AAAA,EACF,GAEME,KAAkB,YAAY;AAClC,IAAA1D,EAAiB,EAAI,GACjBnC,MACF,MAAMA,GAAgBrB,GAAK,UAAU,IAAIA,GAAK,UAAU,EAAEO,IAAeP,GAAK,UAAU,EAAY,GAAG,UAAU,KAAQA,GAAK,UAAU,WAAW,CAAC,GAEtJwD,EAAiB,EAAK;AAAA,EACxB,GAKM2D,KAAaC,GAAQ,MAClBpH,EAAI,MAAM,OAAO,CAACkE,MAAiBA,EAAE,QAAQ,OAAO,EAAE,IAAI,CAACA,MAAiBA,EAAE,QAAQ,SAAS,CAAC,EAAE,OAAO,CAACmD,GAAWC,MAAcD,IAAIC,GAAG,CAAC,GACjJ,CAACtH,EAAI,KAAK,CAAC,GAERuH,IAAiBH,GAAQ,MACtB5F,GAAY,gBAAgBA,GAAY,iBAAiBxB,GAAK,UAAU,IAC9E,CAACwB,GAAYxB,GAAK,UAAU,EAAE,CAAC,GAE5BwH,KAAeJ,GAAQ,MACtBG,IACE/F,GAAY,gBAAgB,WADP,MAE3B,CAAC+F,GAAgB/F,GAAY,YAAY,CAAC,GAEvCiG,IAAuB,GAAQF,KAAkBC,OAAiB,WAElEE,IAAS1H,GAAK,UAAU,iBAAmCA,GAAK,UAAU,OAC1E2H,IAAe3E,MAAgBhD,GAAK,UAAU,IAC9C4H,KAAc,CAAC5H,GAAK,UAAU,aAC9B6H,KAAY,CAAC,EACjBH,GAAO,YACPA,GAAO,cACP1H,GAAK,UAAU,YACdqD,GAAa;AAAA,EAEdqE,GAAO,SAEHI,KAAgB,CAAC,EAAE9H,GAAK,UAAU,cAAc0H,GAAO,gBAAiBrE,GAAa,cAA0BqE,GAAO,aACtHK,KACJ,CAAC,EACC/H,GAAK,UAAU,eACfA,GAAK,UAAU,mBACf0H,GAAO,iBACPA,GAAO,eACNrE,GAAa,mBACdqE,GAAO,gBACJ,CAACG,IAEFG,KACJtG,KAAkB,QAAuC,OAAOA,CAAa,MAAM,OAAO1B,GAAK,UAAU,EAAE,GAEvGiI,KAAUC,GAAG;AAAA,IACjB,oCAAoClF,MAAgBhD,GAAK,UAAU,MAAM,CAAC6C;AAAA,IAC1E,qCAAqCmF,MAAcL,KAAgB,CAAC9E;AAAA,IACpE,mCAAmC,CAAC7C,GAAK,UAAU,WAAWsB,KAAe,CAACtB,GAAK,UAAU,eAAe2H,KAAgB,CAAC9E;AAAA;AAAA,IAE7H,qCAAqCkF,MAAkBH,MAAeD,KAAgB,CAAC9E;AAAA,IACvF,iCAAiCiF,MAAiBF,MAAeD,KAAgB,CAAC9E;AAAA,IAClF,qCAAqCgF,MAAaD,MAAeD,KAAgB,CAAC9E;AAAA,IAClF,qCAAqCA;AAAA,IACrC,CAACsF,GAAgCnI,GAAK,UAAU,aAAuB,CAAC,GAAGA,GAAK,UAAU,iBAAiB,CAAC6C;AAAA,EAAA,CAC7G;AAED,SACE,gBAAAuF;AAAA,IAAC;AAAA,IAAA;AAAA,MACE,GAAGpI,EAAI,YAAA;AAAA,MACR,KAAKoB,KAAiBD,IAAeyD,KAAa;AAAA,MAClD,KAAK5E,EAAI,SAAS;AAAA,MAClB,eAAaA,EAAI,SAAS;AAAA,MAC1B,WAAWkI;AAAA,QACT,uEAAuExH,GAAgB,yBAAyB,SAASV,GAAK,UAAU,EAAE,IAAI,eAAe,EAAE;AAAA,QAC/J6E,IAAa,SAAS;AAAA,QACtBS,GAAA,IAAuB,oBAAoB;AAAA,QAC3ClE,KAAiB4D,KAAQA,GAAM,MAAM,SAAS,SAAS,yBAAyBA,GAAM,MAAM,SAAS,aAAahF,GAAK,UAAU,MAAMA,GAAK,UAAU,SAAS,WAAW,kBAAkB;AAAA,QAC5LA,GAAK,UAAU,qBAAqB,kBAAkB;AAAA,QACtDyH,IAAuB,SAAS;AAAA,QAChCQ,MAAoB;AAAA,MAAA;AAAA,MAEtB,OAAO,EAAE,GAAG5H,IAAO,GAAIc,IAAeiE,KAAY,CAAA,GAAK,OAAO,cAAA;AAAA,MAC7D,GAAIhE,KAAiBD,IAAe2D,KAAa,CAAA;AAAA,MACjD,GAAI1D,KAAiBD,IAAeuD,KAAY,CAAA;AAAA,IAAC;AAAA,IAEjD+C,KAAwBjG,GAAY,gBACnC,gBAAA6G,EAAC,SAAI,WAAU,qEACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,oCACZ,UAAA7G,GAAY,kBAAkB,2BAC5B8G,IAAA,EAAW,IAAI,EAAE,UAAU,MAAM,WAAU,oBAAmB,sBAE9DC,IAAA,EAA6B,IAAI,EAAE,UAAU,MAAM,WAAU,mBAAA,CAAmB,EAAA,CAErF,GACF,IACE;AAAA,IACHd,KAAwB,CAACjG,GAAY,gBACpC,gBAAA6G,EAAC,OAAA,EAAI,WAAU,qEACb,UAAA,gBAAAA,EAACE,IAAA,EAA6B,IAAI,EAAE,UAAU,GAAA,GAAM,WAAU,mBAAA,CAAmB,GACnF,IACE;AAAA,IACHhB,KAAkBC,OAAiB,YAAY,CAACxH,GAAK,UAAU,qBAC9D,gBAAAqI,EAAC,OAAA,EAAI,WAAU,sFACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+EAAA,CAA+E,GAChG,IACE;AAAA,IACHd,KAAkBC,OAAiB,WAAW,CAACxH,GAAK,UAAU,qBAC7D,gBAAAqI,EAAC,OAAA,EAAI,WAAU,yFACb,UAAA,gBAAAA,EAAC,OAAA,EAAI,WAAU,+EAAA,CAA+E,GAChG,IACE;AAAA,IAEHrI,GAAK,UAAU,qBACd,gBAAAqI;AAAA,MAACG;AAAA,MAAA;AAAA,QACC,OAAOxI,EAAI;AAAA,QACX,IAAIA,GAAK,UAAU;AAAA,QACnB,YAAYU;AAAA,QACZ,OAAAJ;AAAA,QACA,MAAMN,GAAK,UAAU;AAAA,QACrB,SAASA,GAAK,UAAU;AAAA,QACxB,aAAagD,KAAe;AAAA,QAC5B,QAAQhD,GAAK,UAAU;AAAA,QACvB,YAAAmH;AAAA,QACA,KAAKnH,EAAI;AAAA,QACT,YAAYA,GAAK,UAAU;AAAA,QAC3B,UAAUA,GAAK,UAAU;AAAA,QACzB,iBAAiBA,GAAK,UAAU;AAAA,MAAA;AAAA,IAAA,IAEhC2B,IACF,gBAAA0G,EAAC1G,KAAW,MAAM3B,EAAI,UAAU,mBAAA0D,GAC9B,UAAA,gBAAA2E;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,gBAAgBhB;AAAA,QAChB,OAAAnH;AAAA,QACA,eAAAc;AAAA,QACA,qBAAA8D;AAAA,QACA,WAAAjF;AAAA,QACA,SAAAC;AAAA,QACA,YAAAuC;AAAA,QACA,gBAAA/B;AAAA,QACA,KAAAV;AAAA,QACA,aAAAgD;AAAA,QACA,cAAA/B;AAAA,QACA,2BAAAJ;AAAA,QACA,OAAAT;AAAA,QACA,aAAAkB;AAAA,QACA,aAAA+B;AAAA,QACA,0BAAA5C;AAAA,QACA,gCAAAK;AAAA,QACA,iBAAAoG;AAAA,QACA,eAAA3D;AAAA,QACA,SAASiD;AAAA,QACT,iBAAAC;AAAA,QACA,uBAAAhF;AAAA,QACA,uBAAA8D;AAAA,QACA,sBAAAY;AAAA,QACA,qBAAAJ;AAAA,QACA,sBAAAC;AAAA,QACA,oBAAAL;AAAA,QACA,eAAA/C;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAI;AAAA,QACA,oBAAA9C;AAAA,QACA,YAAAS;AAAA,QACA,gBAAA6C;AAAA,QACA,sBAAA5B;AAAA,QACA,aAAAC;AAAA,QACA,YAAAkG;AAAA,MAAA;AAAA,IAAA,GAEJ,IAEA,gBAAAK;AAAA,MAACI;AAAA,MAAA;AAAA,QACC,OAAAnI;AAAA,QACA,eAAAc;AAAA,QACA,qBAAA8D;AAAA,QACA,WAAAjF;AAAA,QACA,SAAAC;AAAA,QACA,YAAAuC;AAAA,QACA,gBAAA/B;AAAA,QACA,KAAAV;AAAA,QACA,aAAAgD;AAAA,QACA,cAAA/B;AAAA,QACA,2BAAAJ;AAAA,QACA,OAAAT;AAAA,QACA,aAAAkB;AAAA,QACA,aAAA+B;AAAA,QACA,0BAAA5C;AAAA,QACA,gCAAAK;AAAA,QACA,iBAAAoG;AAAA,QACA,eAAA3D;AAAA,QACA,SAASiD;AAAA,QACT,iBAAAC;AAAA,QACA,uBAAAhF;AAAA,QACA,uBAAA8D;AAAA,QACA,sBAAAY;AAAA,QACA,qBAAAJ;AAAA,QACA,sBAAAC;AAAA,QACA,oBAAAL;AAAA,QACA,eAAA/C;AAAA,QACA,iBAAAC;AAAA,QACA,gBAAAI;AAAA,QACA,oBAAA9C;AAAA,QACA,YAAAS;AAAA,QACA,gBAAA6C;AAAA,QACA,gBAAgBgE;AAAA,QAChB,sBAAA5F;AAAA,QACA,aAAAC;AAAA,QACA,YAAAkG;AAAA,MAAA;AAAA,IAAA;AAAA,EACF;AAIR,GAyCMS,KAAa,CAAC;AAAA,EAClB,eAAArH;AAAA,EACA,qBAAA8D;AAAA,EACA,WAAAjF;AAAA,EACA,SAAAC;AAAA,EACA,YAAAuC;AAAA,EACA,gBAAA/B;AAAA,EACA,KAAAV;AAAA,EACA,aAAAgD;AAAA,EACA,cAAA/B;AAAA,EACA,2BAAAJ;AAAA,EACA,OAAAT;AAAA,EACA,aAAAkB;AAAA,EACA,aAAA+B;AAAA,EACA,0BAAA5C;AAAA,EACA,gCAAAK;AAAA,EACA,iBAAAoG;AAAA,EACA,eAAA3D;AAAA,EACA,SAAAmF;AAAA,EACA,iBAAAjC;AAAA,EACA,uBAAAhF;AAAA,EACA,uBAAA8D;AAAA,EACA,sBAAAY;AAAA,EACA,qBAAAJ;AAAA,EACA,sBAAAC;AAAA,EACA,oBAAAL;AAAA,EACA,eAAA/C;AAAA,EACA,iBAAAC;AAAA,EACA,gBAAAI;AAAA,EACA,oBAAA9C;AAAA,EACA,YAAAS;AAAA,EACA,OAAAN;AAAA,EACA,gBAAAmD;AAAA,EACA,gBAAA8D;AAAA,EACA,sBAAA1F;AAAA,EACA,aAAAC;AAAA,EACA,YAAAkG;AACF,MAAuB;AACrB,QAAM,CAACW,GAAsBC,CAAuB,IAAI1F,EAAS,EAAK,GAChE;AAAA,IACJ,gBAAgB2F;AAAA,IAChB,gBAAgBC;AAAA,IAChB,cAAAC;AAAA,IACA,cAAAC;AAAA,IACA,mBAAAC;AAAA,IACA,cAAAC;AAAA,EAAA,IACE7G,GAAWC,EAAY,GACrB6G,IAAqBJ,IAAe/I,EAAI,SAAS,EAAE,KAAK,OAAO,KAAK+I,EAAa/I,EAAI,SAAS,EAAE,CAAC,EAAE,SAAS,GAC5GoJ,KAA2BH,KAAqB,KAAK,GACrDI,KAAqBjC,GAAsB,MAAM;AACrD,QAAI,MAAM,QAAQxG,CAAU,EAAG,QAAOA;AACtC,QAAI,OAAOA,KAAe,YAAY;AACpC,YAAM0I,IAAU1I,EAAW,EAAE,GAAGZ,EAAI,UAAU,UAAUI,GAAO;AAC/D,aAAO,MAAM,QAAQkJ,CAAO,IAAIA,IAAU,CAAA;AAAA,IAC5C;AACA,WAAO,CAAA;AAAA,EACT,GAAG,CAAC1I,GAAYZ,EAAI,UAAUI,CAAK,CAAC,GAG9BsH,IAAS1H,GAAK,UAAU,iBAA+CA,GAAK,UAAU,OACtF2H,IAAe3E,MAAgBhD,GAAK,UAAU,IAC9C4H,IAAc,CAAC5H,GAAK,UAAU,aAC9B6H,IAAY,CAAC,EACjBH,GAAO,YACPA,GAAO,cACP1H,GAAK,UAAU,YACdqD,GAAa;AAAA,EAEdqE,GAAO,SAEHI,IAAgB,CAAC,EAAE9H,GAAK,UAAU,cAAc0H,GAAO,gBAAiBrE,GAAa,cAA0BqE,GAAO,aACtHK,IACJ,CAAC,EACC/H,GAAK,UAAU,eACfA,GAAK,UAAU,mBACf0H,GAAO,iBACPA,GAAO,eACNrE,GAAa,mBACdqE,GAAO,gBACJ,CAACG,GAIF0B,IACJvB,KAAc,CAACnF,KAAmBG,MAAgBhD,GAAK,UAAU,KAAK,sCAAsC,QAExGwJ,KAAoBtB,GAAG,mEAAmE;AAAA,IAC9F,sCAAsCL,KAAaD,KAAeD,KAAgB,CAAC9E;AAAA,IACnF,kCAAkCiF,KAAiBF,KAAeD,KAAgB,CAAC9E;AAAA,IACnF,sCAAsCkF,KAAkBH,KAAeD,KAAgB,CAAC9E;AAAA,EAAA,CACzF;AAED,SACE,gBAAA4G;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,KAAKrI,IAAgB8D,IAAsB;AAAA,MAC3C,WAAWqC,IAAiB,mEAAmE;AAAA,MAE/F,UAAA;AAAA,QAAA,gBAAAc,EAAC,OAAA,EAAI,WAAWmB,GAAA,CAAmB;AAAA,2BAClC,OAAA,EAAI,WAAU,QAAO,KAAKvJ,IAAaC,KAAwC,MAC7E,UAAA;AAAA,UAAAkJ,KACC,gBAAAf;AAAA,YAACqB;AAAA,YAAA;AAAA,cACC,OAAO,OAAO1J,EAAI,SAAS,EAAE;AAAA,cAC7B,UAAUI;AAAA,cACV,cAAA2I;AAAA,cACA,cAAAC;AAAA,cACA,oBAAoB,CAAC,CAACG;AAAA,cACtB,aAAanG,KAAe,OAAO,OAAOA,CAAW,IAAI;AAAA,cACzD,iBAAAH;AAAA,cACA,SAAS,CAAC,CAAC7C,EAAI,SAAS;AAAA,cACxB,aAAa+H;AAAA,cACb,iBAAiB,CAAC,CAAC/H,EAAI,SAAS;AAAA,cAChC,YAAY8H;AAAA,cACZ,UAAUD;AAAA,cACV,eAAe7H,GAAK,UAAU,WAAW;AAAA,cACzC,aAAAsB;AAAA,cACA,gBAAgB4H;AAAA,YAAA;AAAA,UAAA;AAAA,UAInBzG,KACC,gBAAA4F;AAAA,YAACsB;AAAA,YAAA;AAAA,cACC,gBAAAjJ;AAAA,cACA,IAAI,OAAOV,EAAI,SAAS,EAAE;AAAA,cAC1B,aAAagD,KAAe,OAAO,OAAOA,CAAW,IAAI;AAAA,cACzD,YAAY,CAAC,CAAChD,GAAK,UAAU;AAAA,cAC7B,gBAAAuH;AAAA,cACA,UAAUM;AAAA,cACV,YAAYC;AAAA,cACZ,eAAe9H,GAAK,UAAU,WAAW;AAAA,cACzC,aAAa+H;AAAA,cACb,SAAS,CAAC,CAAC/H,EAAI,SAAS;AAAA,cACxB,iBAAiB,CAAC,CAACA,EAAI,SAAS;AAAA,cAChC,aAAAsB;AAAA,cACA,aAAa+B,KAAe,CAAA;AAAA,cAC5B,SAASrD,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cAClH,iBAAA1G;AAAA,cACA,uBAAuBuG;AAAA,cACvB,oBAAAD;AAAA,YAAA;AAAA,UAAA;AAAA,UAIHlI,KACC,gBAAAoH;AAAA,YAACuB;AAAA,YAAA;AAAA,cACC,cAAA3I;AAAA,cACA,2BAA2BJ,KAA6B;AAAA,cACxD,IAAI,OAAOb,EAAI,SAAS,EAAE;AAAA,cAC1B,OAAAI;AAAA,cACA,SAAS,CAAC,CAACJ,GAAK,UAAU;AAAA,cAC1B,eAAeA,GAAK,UAAU,WAAW;AAAA,cACzC,aAAa,CAAC,CAACsB;AAAA,cACf,aAAayG;AAAA,cACb,iBAAiB,CAAC,CAAC/H,GAAK,UAAU;AAAA,cAClC,YAAY8H;AAAA,cACZ,aAAazE,KAAe,CAAA;AAAA,cAC5B,UAAUwE;AAAA,cACV,SAAS7H,EAAI;AAAA,cACb,aAAAgD;AAAA,cACA,YAAY,CAAC,CAAChD,GAAK,UAAU;AAAA,cAC7B,SAASyD,IAAiB,kBAAkBzD,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cACrJ,iBAAA1G;AAAA,cACA,oBAAAsG;AAAA,YAAA;AAAA,UAAA,IAEA;AAAA,UAEJ,gBAAAM;AAAA,YAAC;AAAA,YAAA;AAAA,cACC,WAAU;AAAA,cACV,IAAI,OAAOzJ,EAAI,SAAS,EAAE;AAAA,cAC1B,cAAc,MAAM4I,EAAwB,EAAI;AAAA,cAChD,cAAc,MAAMA,EAAwB,EAAK;AAAA,cAEhD,UAAA;AAAA,gBAAA5I,EAAI,MACF,OAAO,CAAC6J,MAAoBA,GAAM,QAAQ,YAAY,EAAK,EAC3D,IAAI,CAACA,GAAiBC,MAAc;AACnC,wBAAMC,KAAaD,MAAMrJ,IAAA,GACnBuJ,KAAoBF,OAAOrJ,IAAA,KAAgC,MAAM,GACjEwJ,KAAeJ,GAAM,QAAQ,SAAU/I,KAAiCgJ,CAAC,KAAK,IAAK;AAEzF,sBAAI9J,EAAI,UAAU;AAChB,2BACE,gBAAAqI,EAAC6B,IAAA,EAAW,MAAAL,GAA6F,IAAIC,GAAG,cAAAG,IAA4B,YAAAF,IAAwB,aAAA/G,GAA0B,OAAO8G,GAAW,mBAAAE,GAAA,GAAHF,CAAyC;AAI1P,wBAAM9F,IAAc6E,KAAmB,OAAO7I,EAAI,SAAS,EAAE,GAAG6J,GAAM,QAAQ,OAAO,EAAE,GACjFM,KAAarB,KAAmB,OAAO9I,EAAI,SAAS,EAAE,GAAG6J,GAAM,QAAQ,OAAO,EAAE;AAEtF,yBACE,gBAAAxB;AAAA,oBAAC+B;AAAA,oBAAA;AAAA,sBACC,MAAAP;AAAA,sBACA,aAAA7G;AAAA,sBACA,mBAAAgH;AAAA,sBACA,OAAO1J,MAAS;AAAA,sBAChB,iBAAA4G;AAAA,sBACA,eAAA3D;AAAA,sBAEA,OAAOuG;AAAA,sBACP,SAAApB;AAAA,sBACA,aAAArF;AAAA,sBACA,iBAAiB,CAACmC,MAAyB;AAAE,wBAAIA,KAAGiB,GAAgBjB,GAAG/D,IAAwBzB,EAAI,WAAW,OAAOA,EAAI,SAAS,EAAE,GAAG8J,GAAGD,GAAM,QAAQ,OAAO,EAAE;AAAA,sBAAG;AAAA,sBACpK,uBAAAtE;AAAA,sBACA,sBAAAY;AAAA,sBACA,oBAAAR;AAAA,sBACA,IAAI3F,EAAI,SAAS;AAAA,sBACjB,eAAA4C;AAAA,sBACA,iBAAAC;AAAA,sBACA,YAAAkH;AAAA,sBACA,eAAe/J,GAAK,UAAU,WAAW;AAAA,sBACzC,UAAU6H;AAAA,sBACV,YAAYC;AAAA,sBACZ,aAAaC;AAAA,sBACb,SAAS,CAAC,CAAC/H,EAAI,SAAS;AAAA,sBACxB,iBAAiB,CAAC,CAACA,EAAI,SAAS;AAAA,sBAChC,cAAAiK;AAAA,sBACA,gBAAAhH;AAAA,sBACA,oBAAA9C;AAAA,sBACA,gBAAAoH;AAAA,sBACA,WAAW,CAAC,CAACvH,GAAK,UAAU;AAAA,sBAC5B,aAAAgE;AAAA,sBACA,gBAAgBmG;AAAA,sBAChB,wBAAwBnG,GAAa;AAAA,oBAAA;AAAA,oBAzBhC6F,GAAM,QAAQ;AAAA,kBAAA;AAAA,gBA4BzB,CAAC;AAAA,gBAEF/H,GAAa,WACZ6G,KACA0B;AAAA,kBACE,gBAAAhC,EAAC,SAAI,WAAU,wEAAwE,YAAY,QAAQrI,EAAI,QAAQ,GAAqB;AAAA,kBAC5I,SAAS,eAAe,OAAOA,EAAI,SAAS,EAAE,EAAE;AAAA,gBAAA;AAAA,cAClD;AAAA,YAAA;AAAA,UAAA;AAAA,WAGFqJ,GAAmB,SAAS,KAAK,CAAC,CAACxH,OACnC,gBAAAwG;AAAA,YAACiC;AAAA,YAAA;AAAA,cACC,OAAOtK,EAAI,SAAS;AAAA,cACpB,YAAYqJ;AAAA,cACZ,eAAexI,MAA8B,QAAQ,CAAC,CAACb,GAAK,UAAU;AAAA,cACtE,aAAAgD;AAAA,cACA,gBAAAC;AAAA,cACA,SAAS,CAAC,CAACjD,EAAI,SAAS;AAAA,cACxB,aAAa,CAAC,CAACsB;AAAA,cACf,aAAayG;AAAA,cACb,iBAAiB,CAAC,CAAC/H,EAAI,SAAS;AAAA,cAChC,eAAeA,GAAK,UAAU,WAAW;AAAA,cACzC,aAAaqD,KAAe,CAAA;AAAA,cAC5B,YAAYyE;AAAA,cACZ,UAAUD;AAAA,cACV,gBAAgB,CAAC,CAACN;AAAA,cAClB,sBAAA1F;AAAA,cACA,SAAS7B,EAAI;AAAA,cACb,OAAAI;AAAA,cACA,SAASJ,GAAK,UAAU,gBAAgBmI,GAAgCnI,GAAK,UAAU,aAAuB,IAAIuJ;AAAA,cAClH,iBAAA1G;AAAA,cACA,eAAemD;AAAA,cACf,cAAcD;AAAA,cACd,oBAAAoD;AAAA,YAAA;AAAA,UAAA;AAAA,QACF,EAAA,CAEJ;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAGN;"}
|
|
@@ -143,7 +143,7 @@ export interface ITableProps {
|
|
|
143
143
|
onBulkRowEdit?: (rows: any[]) => void;
|
|
144
144
|
onRowTooltipClick?: (...args: any[]) => void;
|
|
145
145
|
getFullRowDataOnClick?: boolean;
|
|
146
|
-
/** Id of the row to highlight as selected (light theme color background) */
|
|
146
|
+
/** Id of the row to highlight as selected (light theme color background in light mode, black background in dark mode) */
|
|
147
147
|
selectedRowId?: TId | null;
|
|
148
148
|
disableOptionsForRowIndex?: number | null;
|
|
149
149
|
isCellClickDisabled?: boolean;
|