@lax-wp/design-system 0.13.33-beta.6 → 0.13.33-beta.7

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.
Files changed (52) hide show
  1. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.cjs.js +1 -1
  2. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.cjs.js.map +1 -1
  3. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.es.js +57 -56
  4. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.es.js.map +1 -1
  5. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js +1 -1
  6. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
  7. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +43 -42
  8. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
  9. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  10. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  11. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +141 -138
  12. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  13. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js +1 -1
  14. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js.map +1 -1
  15. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js +10 -9
  16. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js +7 -7
  20. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js +1 -1
  24. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js +1 -1
  28. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js.map +1 -1
  29. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/body/rows/row.es.js +286 -281
  32. package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
  33. package/dist/components/data-display/infinite-table/constants.cjs.js +2 -0
  34. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -0
  35. package/dist/components/data-display/infinite-table/constants.d.ts +41 -0
  36. package/dist/components/data-display/infinite-table/constants.es.js +27 -0
  37. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -0
  38. package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
  39. package/dist/components/data-display/infinite-table/context.d.ts +1 -0
  40. package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
  41. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
  42. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
  43. package/dist/components/data-display/infinite-table/head/cell/index.es.js +36 -35
  44. package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
  45. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  46. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  47. package/dist/components/data-display/infinite-table/index.d.ts +1 -1
  48. package/dist/components/data-display/infinite-table/index.es.js +410 -406
  49. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  50. package/dist/components/data-display/infinite-table/types.d.ts +22 -0
  51. package/dist/index.d.ts +1 -1
  52. package/package.json +1 -1
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),S=require("../../../../button/ButtonThreeDots.cjs.js"),X=require("../../../../tooltip/Tooltip.cjs.js"),Y=require("../../../../../providers/design-system-provider/hooks.cjs.js"),v=require("@mui/icons-material"),Z=require("antd"),$=require("../../../../../_virtual/index.cjs.js"),a=require("react"),E=require("../../context.cjs.js"),H=require("./SpinnerCell.cjs.js"),I=require("../../../skeleton/loaders/SingleLineLoader.cjs.js"),ee=({rowId:s,rowOptions:l,disableOption:g,rowHovering:r,is_read:R,showNewItem:N,is_modified:T,is_row_modified:L,currentData:o,is_deleted:i,is_added:d,isDraggingOver:F,rowAdditionalActions:x,rowData:B,index:n,bgColor:k,setRowHovering:c,is_incomplete:m,isInlineEditing:t,onConfirmEdit:P,onCancelEdit:w,rowHasPendingEdits:M})=>{const f=Y.useTableConfig(),j=$({"bg-primary-50 dark:bg-primary-900":t,"bg-neutral-100 dark:bg-black-600":r===s&&!t&&!(i||o?.is_deleted)&&!(d||o?.is_added),"bg-error-200 dark:bg-error-900":r===s&&!t&&(i||o?.is_deleted),"bg-success-100 dark:bg-success-800":r===s&&!t&&(d||o?.is_added),"bg-primary-50 dark:bg-black-700":!m&&!R&&N&&r!==s&&!t,"bg-warning-50 dark:bg-black-500":(m||T||L||o?.is_row_modified)&&r!==s&&!t,"bg-error-100 dark:bg-error-975":(i||o?.is_deleted)&&r!==s&&!t,"bg-success-50 dark:bg-success-900":(d||o?.is_added)&&r!==s&&!t,"bg-primary-50":F&&!t,...k&&!t&&{[k]:!0}}),_=a.useCallback(()=>c(s),[c,s]),A=a.useCallback(()=>c(null),[c]),{asyncRowOptionsFilter:p,disableOptionsForRowIndex:u=null,fieldOperationLoading:V}=a.useContext(E.TableContext),z=f?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",D=f?.getRowOptionsDropdownProps?.(),b=!!V,[G,y]=a.useState(!!p),[J,C]=a.useState(l),K=l?l.filter(h=>h.isVisible!==!1).length:0,Q=async h=>{if(y(!0),h&&p)try{const O=await p(s),W=l?l.filter(q=>Object.keys(O).includes(q.key)?O[q.key]:!0):[];C(W)}catch{C([])}y(!1)},U=e.jsx("div",{className:"min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2","aria-disabled":!0,children:e.jsx(I,{repeat:l?.length||1,lineHeight:"15px"})});return e.jsx("td",{className:`sticky left-0 right-0 z-10 ${j||"bg-white dark:bg-black-800"} h-[39px]`,onMouseEnter:_,onMouseLeave:A,children:e.jsxs("div",{className:"h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center",children:[e.jsx("div",{className:`${u===n?"opacity-50":""}`,"aria-disabled":u===n,children:x?x(B,n,r===s):null}),t?e.jsxs("div",{className:`flex items-center gap-2 ${b?"pointer-events-none opacity-50":""}`,children:[e.jsx("div",{className:"cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5",onClick:()=>!b&&w?.(),children:e.jsx(v.CloseRounded,{sx:{height:20,width:20,color:"#667085"}})}),e.jsx("div",{className:"cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5",onClick:()=>!b&&P?.(),children:e.jsx(v.CheckRounded,{sx:{height:20,width:20,color:"var(--color-primary-600)"}})})]}):l?e.jsx(e.Fragment,{children:u===n?e.jsx(H.SpinnerCell,{}):M?e.jsx(X,{title:z,children:e.jsx("span",{children:e.jsx(S.ButtonThreeDots,{disabled:!0})})}):e.jsx(Z.Dropdown,{menu:{items:G?[{label:U,key:"loading"}]:J},trigger:["click"],overlayClassName:"row-option-cell table-row-option-dropdown",onOpenChange:Q,disabled:g||K===0,...D||{},children:e.jsx(S.ButtonThreeDots,{disabled:g})})}):null]})})};exports.RowOptionsCell=ee;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),S=require("../../../../button/ButtonThreeDots.cjs.js"),X=require("../../../../tooltip/Tooltip.cjs.js"),Y=require("../../../../../providers/design-system-provider/hooks.cjs.js"),v=require("@mui/icons-material"),Z=require("antd"),$=require("../../../../../_virtual/index.cjs.js"),a=require("react"),E=require("../../context.cjs.js"),H=require("./SpinnerCell.cjs.js"),I=require("../../../skeleton/loaders/SingleLineLoader.cjs.js"),ee=({rowId:s,rowOptions:l,disableOption:g,rowHovering:r,is_read:R,showNewItem:N,is_modified:T,is_row_modified:L,currentData:o,is_deleted:i,is_added:d,isDraggingOver:F,rowAdditionalActions:x,rowData:B,index:n,bgColor:k,setRowHovering:c,is_incomplete:m,isInlineEditing:t,onConfirmEdit:P,onCancelEdit:w,rowHasPendingEdits:M})=>{const f=Y.useTableConfig(),j=$({"bg-primary-50 dark:bg-primary-900":t,"bg-neutral-100 dark:bg-black-600":r===s&&!t&&!(i||o?.is_deleted)&&!(d||o?.is_added),"bg-error-200 dark:bg-error-900":r===s&&!t&&(i||o?.is_deleted),"bg-success-100 dark:bg-success-800":r===s&&!t&&(d||o?.is_added),"bg-primary-50 dark:bg-black-700":!m&&!R&&N&&r!==s&&!t,"bg-warning-50 dark:bg-black-500":(m||T||L||o?.is_row_modified)&&r!==s&&!t,"bg-error-100 dark:bg-error-975":(i||o?.is_deleted)&&r!==s&&!t,"bg-success-50 dark:bg-success-900":(d||o?.is_added)&&r!==s&&!t,"bg-primary-50":F&&!t,...k&&!t&&{[k]:!0}}),_=a.useCallback(()=>c(s),[c,s]),A=a.useCallback(()=>c(null),[c]),{asyncRowOptionsFilter:p,disableOptionsForRowIndex:u=null,fieldOperationLoading:V}=a.useContext(E.TableContext),z=f?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",D=f?.getRowOptionsDropdownProps?.(),b=!!V,[G,y]=a.useState(!!p),[J,C]=a.useState(l),K=l?l.filter(h=>h.isVisible!==!1).length:0,Q=async h=>{if(y(!0),h&&p)try{const O=await p(s),W=l?l.filter(q=>Object.keys(O).includes(q.key)?O[q.key]:!0):[];C(W)}catch{C([])}y(!1)},U=e.jsx("div",{className:"min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2","aria-disabled":!0,children:e.jsx(I,{repeat:l?.length||1,lineHeight:"15px"})});return e.jsx("td",{className:`sticky left-0 right-0 z-10 ${j||"bg-white dark:bg-black-800"} h-10`,onMouseEnter:_,onMouseLeave:A,children:e.jsxs("div",{className:"h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center",children:[e.jsx("div",{className:`${u===n?"opacity-50":""}`,"aria-disabled":u===n,children:x?x(B,n,r===s):null}),t?e.jsxs("div",{className:`flex items-center gap-2 ${b?"pointer-events-none opacity-50":""}`,children:[e.jsx("div",{className:"cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5",onClick:()=>!b&&w?.(),children:e.jsx(v.CloseRounded,{sx:{height:20,width:20,color:"#667085"}})}),e.jsx("div",{className:"cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5",onClick:()=>!b&&P?.(),children:e.jsx(v.CheckRounded,{sx:{height:20,width:20,color:"var(--color-primary-600)"}})})]}):l?e.jsx(e.Fragment,{children:u===n?e.jsx(H.SpinnerCell,{}):M?e.jsx(X,{title:z,children:e.jsx("span",{children:e.jsx(S.ButtonThreeDots,{disabled:!0})})}):e.jsx(Z.Dropdown,{menu:{items:G?[{label:U,key:"loading"}]:J},trigger:["click"],overlayClassName:"row-option-cell table-row-option-dropdown",onOpenChange:Q,disabled:g||K===0,...D||{},children:e.jsx(S.ButtonThreeDots,{disabled:g})})}):null]})})};exports.RowOptionsCell=ee;
2
2
  //# sourceMappingURL=RowOptionsCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowOptionsCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowOptionsCell.tsx"],"sourcesContent":["import { SingleLineLoader } from '../../../../data-display/skeleton/loaders';\nimport { ButtonThreeDots } from '../../../../button/ButtonThreeDots';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CheckRounded, CloseRounded } from '@mui/icons-material';\nimport { Dropdown } from 'antd';\nimport cn from 'classnames';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { SpinnerCell } from './SpinnerCell';\n\ntype TProps = {\n rowId: string | number;\n rowOptions: Array<{ key: string; label: React.ReactNode; isVisible?: boolean; [k: string]: unknown }>;\n disableOption: boolean;\n rowHovering: string | number | null;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n currentData: Record<string, unknown>;\n is_deleted: boolean;\n is_added: boolean;\n isDraggingOver: boolean;\n rowData: Record<string, unknown>;\n index: number;\n rowAdditionalActions: (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode;\n bgColor?: string;\n setRowHovering: (rowId: string | number | null) => void;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n onConfirmEdit?: () => void;\n onCancelEdit?: () => void;\n rowHasPendingEdits?: boolean;\n};\n\nexport const RowOptionsCell = ({\n rowId, rowOptions, disableOption, rowHovering, is_read, showNewItem, is_modified, is_row_modified, currentData,\n is_deleted, is_added, isDraggingOver, rowAdditionalActions, rowData, index, bgColor: bgColorProp, setRowHovering,\n is_incomplete, isInlineEditing, onConfirmEdit, onCancelEdit, rowHasPendingEdits,\n}: TProps) => {\n const tableConfig = useTableConfig();\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== rowId && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n const onMouseEnter = useCallback(() => setRowHovering(rowId), [setRowHovering, rowId]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const { asyncRowOptionsFilter, disableOptionsForRowIndex = null, fieldOperationLoading } = useContext(TableContext);\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const rowOptionsDropdownProps = tableConfig?.getRowOptionsDropdownProps?.();\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n const [isOptionLoading, setIsOptionLoading] = useState(!!asyncRowOptionsFilter);\n const [filteredRowOptions, setFilteredRowOptions] = useState(rowOptions);\n const visibleRowOptions = rowOptions ? rowOptions.filter((option) => option.isVisible !== false).length : 0;\n\n const handleDropdownVisibleChange = async (visible: boolean) => {\n setIsOptionLoading(true);\n if (visible && asyncRowOptionsFilter) {\n try {\n const buttonState = await asyncRowOptionsFilter(rowId);\n const filteredOptions = rowOptions ? rowOptions.filter((option) => { const existOnAPI = Object.keys(buttonState).includes(option.key); return existOnAPI ? buttonState[option.key] : true; }) : [];\n setFilteredRowOptions(filteredOptions);\n } catch { setFilteredRowOptions([]); }\n }\n setIsOptionLoading(false);\n };\n\n const getSkeleton = (\n <div className={`min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2`} aria-disabled={true}>\n <SingleLineLoader repeat={rowOptions?.length || 1} lineHeight='15px' />\n </div>\n );\n\n return (\n <td className={`sticky left-0 right-0 z-10 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-[39px]`} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <div className={`h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center`}>\n <div className={`${disableOptionsForRowIndex === index ? 'opacity-50' : ''}`} aria-disabled={disableOptionsForRowIndex === index}>\n {rowAdditionalActions ? rowAdditionalActions(rowData, index, rowHovering === rowId) : null}\n </div>\n {isInlineEditing ? (\n <div className={`flex items-center gap-2 ${isAnyFieldOperationLoading ? 'pointer-events-none opacity-50' : ''}`}>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onCancelEdit?.()}>\n <CloseRounded sx={{ height: 20, width: 20, color: '#667085' }} />\n </div>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onConfirmEdit?.()}>\n <CheckRounded sx={{ height: 20, width: 20, color: 'var(--color-primary-600)' }} />\n </div>\n </div>\n ) : rowOptions ? (\n <>\n {disableOptionsForRowIndex === index ? (\n <SpinnerCell />\n ) : rowHasPendingEdits ? (\n <Tooltip title={pendingEditsTooltip}>\n <span><ButtonThreeDots disabled /></span>\n </Tooltip>\n ) : (\n <Dropdown\n menu={{ items: isOptionLoading ? [{ label: getSkeleton, key: 'loading' }] : filteredRowOptions }}\n trigger={['click']}\n overlayClassName='row-option-cell table-row-option-dropdown'\n onOpenChange={handleDropdownVisibleChange}\n disabled={disableOption || visibleRowOptions === 0}\n {...(rowOptionsDropdownProps || {})}\n >\n <ButtonThreeDots disabled={disableOption} />\n </Dropdown>\n )}\n </>\n ) : null}\n </div>\n </td>\n );\n};\n"],"names":["RowOptionsCell","rowId","rowOptions","disableOption","rowHovering","is_read","showNewItem","is_modified","is_row_modified","currentData","is_deleted","is_added","isDraggingOver","rowAdditionalActions","rowData","index","bgColorProp","setRowHovering","is_incomplete","isInlineEditing","onConfirmEdit","onCancelEdit","rowHasPendingEdits","tableConfig","useTableConfig","bgColor","cn","onMouseEnter","useCallback","onMouseLeave","asyncRowOptionsFilter","disableOptionsForRowIndex","fieldOperationLoading","useContext","TableContext","pendingEditsTooltip","rowOptionsDropdownProps","isAnyFieldOperationLoading","isOptionLoading","setIsOptionLoading","useState","filteredRowOptions","setFilteredRowOptions","visibleRowOptions","option","handleDropdownVisibleChange","visible","buttonState","filteredOptions","getSkeleton","jsx","SingleLineLoader","jsxs","CloseRounded","CheckRounded","Fragment","SpinnerCell","Tooltip","ButtonThreeDots","Dropdown"],"mappings":"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"}
1
+ {"version":3,"file":"RowOptionsCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowOptionsCell.tsx"],"sourcesContent":["import { SingleLineLoader } from '../../../../data-display/skeleton/loaders';\nimport { ButtonThreeDots } from '../../../../button/ButtonThreeDots';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CheckRounded, CloseRounded } from '@mui/icons-material';\nimport { Dropdown } from 'antd';\nimport cn from 'classnames';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { SpinnerCell } from './SpinnerCell';\n\ntype TProps = {\n rowId: string | number;\n rowOptions: Array<{ key: string; label: React.ReactNode; isVisible?: boolean; [k: string]: unknown }>;\n disableOption: boolean;\n rowHovering: string | number | null;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n currentData: Record<string, unknown>;\n is_deleted: boolean;\n is_added: boolean;\n isDraggingOver: boolean;\n rowData: Record<string, unknown>;\n index: number;\n rowAdditionalActions: (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode;\n bgColor?: string;\n setRowHovering: (rowId: string | number | null) => void;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n onConfirmEdit?: () => void;\n onCancelEdit?: () => void;\n rowHasPendingEdits?: boolean;\n};\n\nexport const RowOptionsCell = ({\n rowId, rowOptions, disableOption, rowHovering, is_read, showNewItem, is_modified, is_row_modified, currentData,\n is_deleted, is_added, isDraggingOver, rowAdditionalActions, rowData, index, bgColor: bgColorProp, setRowHovering,\n is_incomplete, isInlineEditing, onConfirmEdit, onCancelEdit, rowHasPendingEdits,\n}: TProps) => {\n const tableConfig = useTableConfig();\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== rowId && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n const onMouseEnter = useCallback(() => setRowHovering(rowId), [setRowHovering, rowId]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const { asyncRowOptionsFilter, disableOptionsForRowIndex = null, fieldOperationLoading } = useContext(TableContext);\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const rowOptionsDropdownProps = tableConfig?.getRowOptionsDropdownProps?.();\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n const [isOptionLoading, setIsOptionLoading] = useState(!!asyncRowOptionsFilter);\n const [filteredRowOptions, setFilteredRowOptions] = useState(rowOptions);\n const visibleRowOptions = rowOptions ? rowOptions.filter((option) => option.isVisible !== false).length : 0;\n\n const handleDropdownVisibleChange = async (visible: boolean) => {\n setIsOptionLoading(true);\n if (visible && asyncRowOptionsFilter) {\n try {\n const buttonState = await asyncRowOptionsFilter(rowId);\n const filteredOptions = rowOptions ? rowOptions.filter((option) => { const existOnAPI = Object.keys(buttonState).includes(option.key); return existOnAPI ? buttonState[option.key] : true; }) : [];\n setFilteredRowOptions(filteredOptions);\n } catch { setFilteredRowOptions([]); }\n }\n setIsOptionLoading(false);\n };\n\n const getSkeleton = (\n <div className={`min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2`} aria-disabled={true}>\n <SingleLineLoader repeat={rowOptions?.length || 1} lineHeight='15px' />\n </div>\n );\n\n return (\n <td className={`sticky left-0 right-0 z-10 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-10`} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <div className={`h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center`}>\n <div className={`${disableOptionsForRowIndex === index ? 'opacity-50' : ''}`} aria-disabled={disableOptionsForRowIndex === index}>\n {rowAdditionalActions ? rowAdditionalActions(rowData, index, rowHovering === rowId) : null}\n </div>\n {isInlineEditing ? (\n <div className={`flex items-center gap-2 ${isAnyFieldOperationLoading ? 'pointer-events-none opacity-50' : ''}`}>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onCancelEdit?.()}>\n <CloseRounded sx={{ height: 20, width: 20, color: '#667085' }} />\n </div>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onConfirmEdit?.()}>\n <CheckRounded sx={{ height: 20, width: 20, color: 'var(--color-primary-600)' }} />\n </div>\n </div>\n ) : rowOptions ? (\n <>\n {disableOptionsForRowIndex === index ? (\n <SpinnerCell />\n ) : rowHasPendingEdits ? (\n <Tooltip title={pendingEditsTooltip}>\n <span><ButtonThreeDots disabled /></span>\n </Tooltip>\n ) : (\n <Dropdown\n menu={{ items: isOptionLoading ? [{ label: getSkeleton, key: 'loading' }] : filteredRowOptions }}\n trigger={['click']}\n overlayClassName='row-option-cell table-row-option-dropdown'\n onOpenChange={handleDropdownVisibleChange}\n disabled={disableOption || visibleRowOptions === 0}\n {...(rowOptionsDropdownProps || {})}\n >\n <ButtonThreeDots disabled={disableOption} />\n </Dropdown>\n )}\n </>\n ) : null}\n </div>\n </td>\n );\n};\n"],"names":["RowOptionsCell","rowId","rowOptions","disableOption","rowHovering","is_read","showNewItem","is_modified","is_row_modified","currentData","is_deleted","is_added","isDraggingOver","rowAdditionalActions","rowData","index","bgColorProp","setRowHovering","is_incomplete","isInlineEditing","onConfirmEdit","onCancelEdit","rowHasPendingEdits","tableConfig","useTableConfig","bgColor","cn","onMouseEnter","useCallback","onMouseLeave","asyncRowOptionsFilter","disableOptionsForRowIndex","fieldOperationLoading","useContext","TableContext","pendingEditsTooltip","rowOptionsDropdownProps","isAnyFieldOperationLoading","isOptionLoading","setIsOptionLoading","useState","filteredRowOptions","setFilteredRowOptions","visibleRowOptions","option","handleDropdownVisibleChange","visible","buttonState","filteredOptions","getSkeleton","jsx","SingleLineLoader","jsxs","CloseRounded","CheckRounded","Fragment","SpinnerCell","Tooltip","ButtonThreeDots","Dropdown"],"mappings":"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"}
@@ -54,7 +54,7 @@ const ue = ({
54
54
  }
55
55
  x(!1);
56
56
  }, W = /* @__PURE__ */ e("div", { className: "min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2", "aria-disabled": !0, children: /* @__PURE__ */ e(se, { repeat: s?.length || 1, lineHeight: "15px" }) });
57
- return /* @__PURE__ */ e("td", { className: `sticky left-0 right-0 z-10 ${y || "bg-white dark:bg-black-800"} h-[39px]`, onMouseEnter: V, onMouseLeave: z, children: /* @__PURE__ */ N("div", { className: "h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center", children: [
57
+ return /* @__PURE__ */ e("td", { className: `sticky left-0 right-0 z-10 ${y || "bg-white dark:bg-black-800"} h-10`, onMouseEnter: V, onMouseLeave: z, children: /* @__PURE__ */ N("div", { className: "h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center", children: [
58
58
  /* @__PURE__ */ e("div", { className: `${d === l ? "opacity-50" : ""}`, "aria-disabled": d === l, children: g ? g($, l, r === t) : null }),
59
59
  o ? /* @__PURE__ */ N("div", { className: `flex items-center gap-2 ${b ? "pointer-events-none opacity-50" : ""}`, children: [
60
60
  /* @__PURE__ */ e("div", { className: "cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5", onClick: () => !b && B?.(), children: /* @__PURE__ */ e(E, { sx: { height: 20, width: 20, color: "#667085" } }) }),
@@ -1 +1 @@
1
- {"version":3,"file":"RowOptionsCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowOptionsCell.tsx"],"sourcesContent":["import { SingleLineLoader } from '../../../../data-display/skeleton/loaders';\nimport { ButtonThreeDots } from '../../../../button/ButtonThreeDots';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CheckRounded, CloseRounded } from '@mui/icons-material';\nimport { Dropdown } from 'antd';\nimport cn from 'classnames';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { SpinnerCell } from './SpinnerCell';\n\ntype TProps = {\n rowId: string | number;\n rowOptions: Array<{ key: string; label: React.ReactNode; isVisible?: boolean; [k: string]: unknown }>;\n disableOption: boolean;\n rowHovering: string | number | null;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n currentData: Record<string, unknown>;\n is_deleted: boolean;\n is_added: boolean;\n isDraggingOver: boolean;\n rowData: Record<string, unknown>;\n index: number;\n rowAdditionalActions: (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode;\n bgColor?: string;\n setRowHovering: (rowId: string | number | null) => void;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n onConfirmEdit?: () => void;\n onCancelEdit?: () => void;\n rowHasPendingEdits?: boolean;\n};\n\nexport const RowOptionsCell = ({\n rowId, rowOptions, disableOption, rowHovering, is_read, showNewItem, is_modified, is_row_modified, currentData,\n is_deleted, is_added, isDraggingOver, rowAdditionalActions, rowData, index, bgColor: bgColorProp, setRowHovering,\n is_incomplete, isInlineEditing, onConfirmEdit, onCancelEdit, rowHasPendingEdits,\n}: TProps) => {\n const tableConfig = useTableConfig();\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== rowId && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n const onMouseEnter = useCallback(() => setRowHovering(rowId), [setRowHovering, rowId]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const { asyncRowOptionsFilter, disableOptionsForRowIndex = null, fieldOperationLoading } = useContext(TableContext);\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const rowOptionsDropdownProps = tableConfig?.getRowOptionsDropdownProps?.();\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n const [isOptionLoading, setIsOptionLoading] = useState(!!asyncRowOptionsFilter);\n const [filteredRowOptions, setFilteredRowOptions] = useState(rowOptions);\n const visibleRowOptions = rowOptions ? rowOptions.filter((option) => option.isVisible !== false).length : 0;\n\n const handleDropdownVisibleChange = async (visible: boolean) => {\n setIsOptionLoading(true);\n if (visible && asyncRowOptionsFilter) {\n try {\n const buttonState = await asyncRowOptionsFilter(rowId);\n const filteredOptions = rowOptions ? rowOptions.filter((option) => { const existOnAPI = Object.keys(buttonState).includes(option.key); return existOnAPI ? buttonState[option.key] : true; }) : [];\n setFilteredRowOptions(filteredOptions);\n } catch { setFilteredRowOptions([]); }\n }\n setIsOptionLoading(false);\n };\n\n const getSkeleton = (\n <div className={`min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2`} aria-disabled={true}>\n <SingleLineLoader repeat={rowOptions?.length || 1} lineHeight='15px' />\n </div>\n );\n\n return (\n <td className={`sticky left-0 right-0 z-10 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-[39px]`} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <div className={`h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center`}>\n <div className={`${disableOptionsForRowIndex === index ? 'opacity-50' : ''}`} aria-disabled={disableOptionsForRowIndex === index}>\n {rowAdditionalActions ? rowAdditionalActions(rowData, index, rowHovering === rowId) : null}\n </div>\n {isInlineEditing ? (\n <div className={`flex items-center gap-2 ${isAnyFieldOperationLoading ? 'pointer-events-none opacity-50' : ''}`}>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onCancelEdit?.()}>\n <CloseRounded sx={{ height: 20, width: 20, color: '#667085' }} />\n </div>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onConfirmEdit?.()}>\n <CheckRounded sx={{ height: 20, width: 20, color: 'var(--color-primary-600)' }} />\n </div>\n </div>\n ) : rowOptions ? (\n <>\n {disableOptionsForRowIndex === index ? (\n <SpinnerCell />\n ) : rowHasPendingEdits ? (\n <Tooltip title={pendingEditsTooltip}>\n <span><ButtonThreeDots disabled /></span>\n </Tooltip>\n ) : (\n <Dropdown\n menu={{ items: isOptionLoading ? [{ label: getSkeleton, key: 'loading' }] : filteredRowOptions }}\n trigger={['click']}\n overlayClassName='row-option-cell table-row-option-dropdown'\n onOpenChange={handleDropdownVisibleChange}\n disabled={disableOption || visibleRowOptions === 0}\n {...(rowOptionsDropdownProps || {})}\n >\n <ButtonThreeDots disabled={disableOption} />\n </Dropdown>\n )}\n </>\n ) : null}\n </div>\n </td>\n );\n};\n"],"names":["RowOptionsCell","rowId","rowOptions","disableOption","rowHovering","is_read","showNewItem","is_modified","is_row_modified","currentData","is_deleted","is_added","isDraggingOver","rowAdditionalActions","rowData","index","bgColorProp","setRowHovering","is_incomplete","isInlineEditing","onConfirmEdit","onCancelEdit","rowHasPendingEdits","tableConfig","useTableConfig","bgColor","cn","onMouseEnter","useCallback","onMouseLeave","asyncRowOptionsFilter","disableOptionsForRowIndex","fieldOperationLoading","useContext","TableContext","pendingEditsTooltip","rowOptionsDropdownProps","isAnyFieldOperationLoading","isOptionLoading","setIsOptionLoading","useState","filteredRowOptions","setFilteredRowOptions","visibleRowOptions","option","handleDropdownVisibleChange","visible","buttonState","filteredOptions","getSkeleton","jsx","SingleLineLoader","jsxs","CloseRounded","CheckRounded","Fragment","SpinnerCell","Tooltip","ButtonThreeDots","Dropdown"],"mappings":"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"}
1
+ {"version":3,"file":"RowOptionsCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowOptionsCell.tsx"],"sourcesContent":["import { SingleLineLoader } from '../../../../data-display/skeleton/loaders';\nimport { ButtonThreeDots } from '../../../../button/ButtonThreeDots';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport { CheckRounded, CloseRounded } from '@mui/icons-material';\nimport { Dropdown } from 'antd';\nimport cn from 'classnames';\nimport { useCallback, useContext, useState } from 'react';\n\nimport { TableContext } from '../../context';\nimport { SpinnerCell } from './SpinnerCell';\n\ntype TProps = {\n rowId: string | number;\n rowOptions: Array<{ key: string; label: React.ReactNode; isVisible?: boolean; [k: string]: unknown }>;\n disableOption: boolean;\n rowHovering: string | number | null;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n currentData: Record<string, unknown>;\n is_deleted: boolean;\n is_added: boolean;\n isDraggingOver: boolean;\n rowData: Record<string, unknown>;\n index: number;\n rowAdditionalActions: (rowData: Record<string, unknown>, index: number, isHovering: boolean) => React.ReactNode;\n bgColor?: string;\n setRowHovering: (rowId: string | number | null) => void;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n onConfirmEdit?: () => void;\n onCancelEdit?: () => void;\n rowHasPendingEdits?: boolean;\n};\n\nexport const RowOptionsCell = ({\n rowId, rowOptions, disableOption, rowHovering, is_read, showNewItem, is_modified, is_row_modified, currentData,\n is_deleted, is_added, isDraggingOver, rowAdditionalActions, rowData, index, bgColor: bgColorProp, setRowHovering,\n is_incomplete, isInlineEditing, onConfirmEdit, onCancelEdit, rowHasPendingEdits,\n}: TProps) => {\n const tableConfig = useTableConfig();\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== rowId && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n const onMouseEnter = useCallback(() => setRowHovering(rowId), [setRowHovering, rowId]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const { asyncRowOptionsFilter, disableOptionsForRowIndex = null, fieldOperationLoading } = useContext(TableContext);\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const rowOptionsDropdownProps = tableConfig?.getRowOptionsDropdownProps?.();\n const isAnyFieldOperationLoading = Boolean(fieldOperationLoading);\n const [isOptionLoading, setIsOptionLoading] = useState(!!asyncRowOptionsFilter);\n const [filteredRowOptions, setFilteredRowOptions] = useState(rowOptions);\n const visibleRowOptions = rowOptions ? rowOptions.filter((option) => option.isVisible !== false).length : 0;\n\n const handleDropdownVisibleChange = async (visible: boolean) => {\n setIsOptionLoading(true);\n if (visible && asyncRowOptionsFilter) {\n try {\n const buttonState = await asyncRowOptionsFilter(rowId);\n const filteredOptions = rowOptions ? rowOptions.filter((option) => { const existOnAPI = Object.keys(buttonState).includes(option.key); return existOnAPI ? buttonState[option.key] : true; }) : [];\n setFilteredRowOptions(filteredOptions);\n } catch { setFilteredRowOptions([]); }\n }\n setIsOptionLoading(false);\n };\n\n const getSkeleton = (\n <div className={`min-w-[140px] max-w-[200px] justify-start whitespace-nowrap items-center py-2 px-1 gap-2`} aria-disabled={true}>\n <SingleLineLoader repeat={rowOptions?.length || 1} lineHeight='15px' />\n </div>\n );\n\n return (\n <td className={`sticky left-0 right-0 z-10 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-10`} onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}>\n <div className={`h-full gap-2 top-0 font-medium font-inter overflow-hidden whitespace-nowrap text-ellipsis px-1 w-full flex items-center`}>\n <div className={`${disableOptionsForRowIndex === index ? 'opacity-50' : ''}`} aria-disabled={disableOptionsForRowIndex === index}>\n {rowAdditionalActions ? rowAdditionalActions(rowData, index, rowHovering === rowId) : null}\n </div>\n {isInlineEditing ? (\n <div className={`flex items-center gap-2 ${isAnyFieldOperationLoading ? 'pointer-events-none opacity-50' : ''}`}>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onCancelEdit?.()}>\n <CloseRounded sx={{ height: 20, width: 20, color: '#667085' }} />\n </div>\n <div className='cursor-pointer hover:bg-neutral-100 dark:hover:bg-black-600 rounded p-0.5' onClick={() => !isAnyFieldOperationLoading && onConfirmEdit?.()}>\n <CheckRounded sx={{ height: 20, width: 20, color: 'var(--color-primary-600)' }} />\n </div>\n </div>\n ) : rowOptions ? (\n <>\n {disableOptionsForRowIndex === index ? (\n <SpinnerCell />\n ) : rowHasPendingEdits ? (\n <Tooltip title={pendingEditsTooltip}>\n <span><ButtonThreeDots disabled /></span>\n </Tooltip>\n ) : (\n <Dropdown\n menu={{ items: isOptionLoading ? [{ label: getSkeleton, key: 'loading' }] : filteredRowOptions }}\n trigger={['click']}\n overlayClassName='row-option-cell table-row-option-dropdown'\n onOpenChange={handleDropdownVisibleChange}\n disabled={disableOption || visibleRowOptions === 0}\n {...(rowOptionsDropdownProps || {})}\n >\n <ButtonThreeDots disabled={disableOption} />\n </Dropdown>\n )}\n </>\n ) : null}\n </div>\n </td>\n );\n};\n"],"names":["RowOptionsCell","rowId","rowOptions","disableOption","rowHovering","is_read","showNewItem","is_modified","is_row_modified","currentData","is_deleted","is_added","isDraggingOver","rowAdditionalActions","rowData","index","bgColorProp","setRowHovering","is_incomplete","isInlineEditing","onConfirmEdit","onCancelEdit","rowHasPendingEdits","tableConfig","useTableConfig","bgColor","cn","onMouseEnter","useCallback","onMouseLeave","asyncRowOptionsFilter","disableOptionsForRowIndex","fieldOperationLoading","useContext","TableContext","pendingEditsTooltip","rowOptionsDropdownProps","isAnyFieldOperationLoading","isOptionLoading","setIsOptionLoading","useState","filteredRowOptions","setFilteredRowOptions","visibleRowOptions","option","handleDropdownVisibleChange","visible","buttonState","filteredOptions","getSkeleton","jsx","SingleLineLoader","jsxs","CloseRounded","CheckRounded","Fragment","SpinnerCell","Tooltip","ButtonThreeDots","Dropdown"],"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"),bi=require("../../../../../constants/table.cjs.js"),Xi=require("../../../../../providers/design-system-provider/hooks.cjs.js"),Vi=require("@dnd-kit/core"),Zi=require("@dnd-kit/sortable"),$i=require("@dnd-kit/utilities"),zi=require("@mui/icons-material"),wi=require("@mui/icons-material/AddRounded"),pi=require("../../../../../_virtual/index.cjs.js"),ie=require("react-dom"),ki=require("../../context.cjs.js"),ee=require("../cell/ActionCell.cjs.js"),ne=require("../cell/CheckboxCell.cjs.js"),te=require("../cell/DataCell.cjs.js"),Mi=require("../../validateCell.cjs.js"),le=require("../cell/LoaderCell.cjs.js"),ae=require("../cell/PendingEditCell.cjs.js"),se=require("../cell/RowActionCell.cjs.js"),oe=require("../cell/RowOptionsCell.cjs.js"),de=({row:i,isLastRow:J,lastRow:Q,highlightSubstring:X,index:V,style:Ci,level:e=0,expandedRows:c,rows:Z})=>{const{lastNonStickyColumnIndex:z,checkboxConfig:o,onRowClick:E,rowOptions:b,disableOptionsForRowIndex:M=null,getSumOfNextVisibleColumnWidth:$,onRowEdit:F,inlineEditColumns:xi,tableActions:w,dndSortableUtils:ii,withSortable:u,withDraggable:N,getInnerRowData:ei,showNewItem:H,rawData:B,dragConfig:p,getFullRowDataOnClick:ni,rowWrapper:_,isCellClickDisabled:ti,rowAdditionalActions:li,hoverConfig:j,addPendingEdit:D,removePendingEdit:ai,fieldOperationLoading:O,clearRowPendingEdits:q,saveRowPendingEdits:A,pendingEdits:L}=l.useContext(ki.TableContext),P=Xi.useTableConfig(),si=!!o,{activeInlineEdit:oi,setActiveInlineEdit:T}=l.useContext(ki.TableContext),a=oi?.rowId===i.original.id?oi?.columnKey:null,f=!!a,di=n=>{T?.(n===null?null:{rowId:String(i.original.id),columnKey:n})},[C,W]=l.useState(null),[ri,g]=l.useState(null),[R,U]=l.useState(null),[x,S]=l.useState(!1),[y,vi]=l.useState(!1),s=l.useRef(null);l.useEffect(()=>{const n=s.current,r=a;if(n&&!r){const h=L?.[i.original.id]?.[n];if(h){const d=i.cells?.find(m=>m.column?.key===n);if(d){const m=Mi.validateCellValue(h.value,d.column);!m.isValid&&D&&D(String(i.original.id),n,{...h,validationError:m.error})}}}s.current=r??null},[a,i.original.id,i.cells,L,D]),l.useEffect(()=>{if(B){const n=String(i?.original?.id);U(B[n]?.[i?.cells[0].column.Header]||B[n]?.[0])}},[B,i?.original?.id,i?.cells]);const v=Zi.useSortable({id:i.original.id,data:{...i.original},disabled:!u}),gi=Vi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!u}),{listeners:ci,transform:ui,setNodeRef:_i,isDragging:K,attributes:fi,active:hi,over:I,...Hi}=u?v:gi,{setNodeRef:Ei}=Vi.useDroppable({id:`table-file-dropzone-${i?.original?.id}`,data:{type:"table-file-dropzone",folderId:i?.original?.id,isFolder:i?.original?.type==="folder"}}),Wi={transform:$i.CSS.Transform.toString(ui),transition:u?Hi.transition:void 0,cursor:K?"grabbing":"grab",opacity:K?"0.5":"1"},Ui=()=>!hi||!I||!u?!1:ii?.checkOverEachItem?ii.checkOverEachItem(hi,I)&&!!I:hi.data.current?.type!==I.data.current?.type&&!!I,Ni=n=>{g(n.target.value)},Ki=()=>{O||di(null)},Ri=l.useRef(null),ji=l.useCallback(n=>{Ri.current=n},[]),Di=l.useRef(P);Di.current=P;const Ii=l.useCallback(()=>{q&&q(String(i.original.id))},[q,i.original.id]),Pi=l.useCallback(()=>{if(Ri.current){const n=Ri.current();if(!n.isValid)return;a&&n.value!==void 0&&D&&D(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(r=>r.column?.key===a);if(n){const r=L?.[i.original.id]?.[a]?.value,h=r!==void 0?r:n.value,d=Mi.validateCellValue(h,n.column);if(!d.isValid){Di.current?.showNotification?.("error",d.error||"Validation failed");return}}}A&&A(String(i.original.id))},[A,i.original,i.cells,a,D,L]),Bi=(n,r)=>{const h={...i.original},d=n!==void 0?n:ri;a&&d!==void 0&&(h[a]=d,F&&F(h,V,a,d,r),ai&&ai(String(i.original.id),a)),Ki()},Oi=l.useRef(null),qi=(n,r,h,d)=>{if(!ti&&(n?.stopPropagation(),a!==d)){if(F){if(xi?.includes(d))di(d),g(String(i.original[d]));else{const m=P?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";P?.showNotification?.("error",m)}return}if(E)E(r,h,i.original,Z?.map(m=>m.original)||[]);else if(!E&&o){const m=i.original.id,Qi={target:{checked:!o.checkedIds.includes(m)}};o.onItemCheck(Qi,m)}}},Ai=async()=>{S(!0),ei&&await ei(i?.original?.id,i?.original,!(c?.[i?.original?.id]?.isOpen??!1),i?.original?.__level||0),S(!1)},Yi=l.useMemo(()=>i.cells.filter(n=>n.column?.visible).map(n=>n.column?.width??0).reduce((n,r)=>n+r,0),[i.cells]),Y=l.useMemo(()=>p?.draggingOver&&p?.draggingOver===i?.original?.id,[p,i?.original?.id]),Si=l.useMemo(()=>Y?p?.dropPosition||"inside":null,[Y,p?.dropPosition]),G=!!(Y&&Si==="inside"),k=i?.original?.__rowMetadata||i?.original?._meta,mi=C!==i?.original?.id,yi=!i?.original?.__isLoading,Li=!!(k?.__is_new||k?.__is_added||i?.original?.is_added||R?.is_added||k?.is_added||k?.is_new),Gi=!!(i?.original?.is_deleted||k?.__is_deleted||R?.is_deleted||k?.is_deleted),Ji=!!(i?.original?.is_modified||i?.original?.is_row_modified||k?.__is_modified||k?.__is_edited||R?.is_row_modified||k?.is_modified)&&!Li,Ti=pi({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!f,"bg-primary-50 dark:bg-black-700":!i?.original?.is_read&&H&&!i?.original?.__isLoading&&mi&&!f,"bg-warning-50 dark:bg-warning-975":Ji&&yi&&mi&&!f,"bg-error-50 dark:bg-error-975":Gi&&yi&&mi&&!f,"bg-success-50 dark:bg-success-975":Li&&yi&&mi&&!f,"bg-primary-50 dark:bg-primary-900":f,[bi.getTableRowBgClassNamesByStatus[i?.original?.__rowBgStatus]]:i?.original?.__rowBgStatus&&!f});return l.createElement("tr",{...i.getRowProps(),ref:N||u?_i:null,key:i.original.id,"data-row-id":i.original.id,className:pi(`text-neutral-900 dark:text-white cursor-pointer min-w-full relative ${o?.selectionDisabledRowIds?.includes(i?.original?.id)?"opacity-50":""} border-t`,K?"z-40":"",Ui()?"shadow-dnd-drop":"",N&&I&&I?.data?.current?.type==="table-file-dropzone"&&I?.data?.current?.folderId===i?.original?.id&&i?.original?.type==="folder"?"bg-primary-50":"",i?.original?.isDefinedActionRow?"bg-primary-50":"",G?"z-50":"",Ti||"bg-white dark:bg-black-800"),style:{...Ci,...u?Wi:{},width:"max-content"},...N||u?fi:{},...N||u?ci:{}},G&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-10 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(wi,{sx:{fontSize:12},className:"text-primary-700"}):t.jsx(zi.SubdirectoryArrowLeftRounded,{sx:{fontSize:12},className:"text-primary-700"})})}):null,G&&!p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-10 flex items-center z-20 pointer-events-none",children:t.jsx(zi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Y&&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,Y&&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(ee.ActionCell,{cells:i.cells,id:i?.original?.id,isCheckbox:o,level:e,name:i?.original?.name,onClick:i?.original?.onClick,rowHovering:C||"",isRoot:i?.original?.isRoot,totalWidth:Yi,row:i.original,uploadCell:i?.original?.uploadCell,disabled:i?.original?.disabled,disabledTooltip:i?.original?.disabledTooltip}):_?t.jsx(_,{data:i.original,setIsDraggingFile:vi,children:t.jsx(Fi,{isDraggingOver:G,level:e,withDraggable:N,setDroppableNodeRef:Ei,isLastRow:J,lastRow:Q,isCheckbox:si,checkboxConfig:o,row:i,rowHovering:C,tableActions:w,disableOptionsForRowIndex:M,index:V,showNewItem:H,currentData:R,lastNonStickyColumnIndex:z,getSumOfNextVisibleColumnWidth:$,toggleRowExpand:Ai,loadingExpand:x,cellRef:Oi,handleCellClick:qi,getFullRowDataOnClick:ni,handleCellValueChange:Ni,handleUpdateCellData:Bi,handleRowCancelEdit:Ii,handleRowConfirmEdit:Pi,registerValidation:ji,inlineEditing:a,isInlineEditing:f,setRowHovering:W,highlightSubstring:X,rowOptions:b,isDraggingFile:y,rowAdditionalActions:li,hoverConfig:j})}):t.jsx(Fi,{level:e,withDraggable:N,setDroppableNodeRef:Ei,isLastRow:J,lastRow:Q,isCheckbox:si,checkboxConfig:o,row:i,rowHovering:C,tableActions:w,disableOptionsForRowIndex:M,index:V,showNewItem:H,currentData:R,lastNonStickyColumnIndex:z,getSumOfNextVisibleColumnWidth:$,toggleRowExpand:Ai,loadingExpand:x,cellRef:Oi,handleCellClick:qi,getFullRowDataOnClick:ni,handleCellValueChange:Ni,handleUpdateCellData:Bi,handleRowCancelEdit:Ii,handleRowConfirmEdit:Pi,registerValidation:ji,inlineEditing:a,isInlineEditing:f,setRowHovering:W,highlightSubstring:X,rowOptions:b,isDraggingFile:y,isDraggingOver:G,rowAdditionalActions:li,hoverConfig:j}))},Fi=({withDraggable:i,setDroppableNodeRef:J,isLastRow:Q,lastRow:X,isCheckbox:V,checkboxConfig:Ci,row:e,rowHovering:c,tableActions:Z,disableOptionsForRowIndex:z,index:o,showNewItem:E,currentData:b,lastNonStickyColumnIndex:M,getSumOfNextVisibleColumnWidth:$,toggleRowExpand:F,loadingExpand:xi,cellRef:w,handleCellClick:ii,getFullRowDataOnClick:u,handleCellValueChange:N,handleUpdateCellData:ei,handleRowCancelEdit:H,handleRowConfirmEdit:B,registerValidation:p,inlineEditing:ni,isInlineEditing:_,setRowHovering:ti,highlightSubstring:li,rowOptions:j,level:D,isDraggingFile:ai,isDraggingOver:O,rowAdditionalActions:q,hoverConfig:A})=>{const[L,P]=l.useState(!1),{getPendingEdit:si,hasPendingEdit:oi,pendingEdits:T,tableHeaders:a,pendingEditsCount:f,scrollToCell:di}=l.useContext(ki.TableContext),C=T?.[e.original.id]&&Object.keys(T[e.original.id]).length>0,W=(f??0)>0,ri=l.useMemo(()=>{if(Array.isArray(j))return j;if(typeof j=="function"){const s=j({...e.original,rowIndex:o});return Array.isArray(s)?s:[]}return[]},[j,e.original,o]),g=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,U=!e?.original?.__isLoading,x=!!(g?.__is_new||g?.__is_added||e?.original?.is_added||b?.is_added||g?.is_added||g?.is_new),S=!!(e?.original?.is_deleted||g?.__is_deleted||b?.is_deleted||g?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||g?.__is_modified||g?.__is_edited||b?.is_row_modified||g?.is_deleted)&&!x,vi=pi({"border-l-[3px] border-l-success-400 dark:border-l-success-500":x&&U&&R&&!_,"border-l-[3px] border-l-error-400 dark:border-l-error-500":S&&U&&R&&!_,"border-l-[3px] border-l-warning-400 dark:border-l-warning-500":y&&U&&R&&!_});return t.jsx("div",{ref:i?J:null,className:O?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:t.jsxs("div",{className:pi("flex",vi),ref:Q?X:null,children:[W&&t.jsx(ae.PendingEditCell,{rowId:String(e.original.id),rowIndex:o,pendingEdits:T,tableHeaders:a,rowHasPendingEdits:!!C,rowHovering:c!=null?String(c):void 0,isInlineEditing:_,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:E,onScrollToCell:di}),V&&t.jsx(ne.CheckboxCell,{checkboxConfig:Ci,id:String(e.original.id),rowHovering:c!=null?String(c):void 0,isDisabled:!!e?.original?.__isLoading,isDraggingOver:O,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:E,currentData:b??{},bgColor:e?.original?.__rowBgStatus?bi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:void 0,isInlineEditing:_,hasPendingEditsColumn:W,rowHasPendingEdits:C}),Z?t.jsx(se.RowActionCell,{tableActions:Z,disableOptionsForRowIndex:z??null,id:String(e.original.id),index:o,is_read:!!e?.original?.is_read,is_incomplete:e?.original?.status==="Incomplete",showNewItem:!!E,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:ai?"bg-primary-50":e?.original?.__rowBgStatus?bi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:void 0,isInlineEditing:_,rowHasPendingEdits:C}):null,t.jsxs("div",{className:"relative flex-1",id:`row-${e.original.id}`,onMouseEnter:()=>P(!0),onMouseLeave:()=>P(!1),children:[e.cells.filter(s=>s?.column?.visible!==!1).map((s,v)=>{const gi=v===M?.(),ci=v===(M?.()??-1)+1,ui=s?.column?.sticky?$?.(v)??0:0;if(e.original?.__isLoading)return t.jsx(le.LoaderCell,{cell:s,id:v,nextWidthSum:ui,isLastCell:gi,rowHovering:c,index:v,isFirstStickyCell:ci},v);const _i=si?.(String(e.original.id),s?.column?.key||""),K=oi?.(String(e.original.id),s?.column?.key||"");return t.jsx(te.DataCell,{cell:s,rowHovering:c,isFirstStickyCell:ci,level:D??0,toggleRowExpand:F,loadingExpand:xi,index:v,cellRef:w,currentData:b,handleCellClick:fi=>{fi&&ii(fi,u?e.original:String(e.original.id),v,s?.column?.key||"")},handleCellValueChange:N,handleUpdateCellData:ei,registerValidation:p,id:e.original.id,inlineEditing:ni,isInlineEditing:_,isLastCell:gi,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:ui,setRowHovering:ti,highlightSubstring:li,isDraggingOver:O,isLoading:!!e?.original?.__isLoading,pendingEdit:_i,hasPendingEdit:K,pendingValidationError:_i?.validationError},s?.column?.key)}),A?.onHover&&L&&ie.createPortal(t.jsx("div",{className:"absolute top-full left-10 z-50 bg-white dark:bg-black-800 rounded-xl",children:A.onHover(e.original)}),document.getElementById(`row-${e.original.id}`))]}),(ri.length>0||!!q)&&t.jsx(oe.RowOptionsCell,{rowId:e.original.id,rowOptions:ri,disableOption:z!==null||!!e?.original?.__isLoading,rowHovering:c,setRowHovering:ti,is_read:!!e.original.is_read,showNewItem:!!E,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:!!O,rowAdditionalActions:q,rowData:e.original,index:o,bgColor:e?.original?.__rowBgStatus?bi.getTableRowBgClassNamesByStatus[e?.original?.__rowBgStatus]:void 0,isInlineEditing:_,onConfirmEdit:B,onCancelEdit:H,rowHasPendingEdits:C})]})})};exports.Row=de;
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"),Ci=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:xi,level:e=0,expandedRows:c,rows:ei})=>{const{lastNonStickyColumnIndex:M,checkboxConfig:s,onRowClick:E,rowOptions:b,disableOptionsForRowIndex:F=null,getSumOfNextVisibleColumnWidth:ni,onRowEdit:H,inlineEditColumns:vi,tableActions:ti,dndSortableUtils:li,withSortable:f,withDraggable:N,getInnerRowData:ai,showNewItem:W,rawData:O,dragConfig:p,getFullRowDataOnClick:si,selectedRowId:r,rowWrapper:U,isCellClickDisabled:hi,rowAdditionalActions:j,hoverConfig:oi,addPendingEdit:D,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,_]=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&&D&&D(String(i.original.id),n,{...h,validationError:m.error})}}}_i.current=g??null},[a,i.original.id,i.cells,A,D]),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:!f}),v=Mi.useDraggable({id:i.original.id,data:{...i.original},disabled:!!f}),{listeners:fi,transform:mi,setNodeRef:bi,isDragging:T,attributes:Ri,active:V,over:I,...Ui}=f?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:f?Ui.transition:void 0,cursor:T?"grabbing":"grab",opacity:T?"0.5":"1"},Yi=()=>!V||!I||!f?!1:li?.checkOverEachItem?li.checkOverEachItem(V,I)&&!!I:V.data.current?.type!==I.data.current?.type&&!!I,Di=n=>{_(n.target.value)},Gi=()=>{di||ci(null)},Si=l.useRef(null),Ii=l.useCallback(n=>{Si.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(Si.current){const n=Si.current();if(!n.isValid)return;a&&n.value!==void 0&&D&&D(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,D,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(!hi&&(n?.stopPropagation(),a!==d)){if(H){if(vi?.includes(d))ci(d),_(String(i.original[d]));else{const m=B?.getSystemMessage?.("notAllowedInlineEdit")||"Inline Edit is not allowed for this column";B?.showNotification?.("error",m)}return}if(E)E(g,h,i.original,ei?.map(m=>m.original)||[]);else if(!E&&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]),yi=l.useMemo(()=>Q?p?.dropPosition||"inside":null,[Q,p?.dropPosition]),X=!!(Q&&yi==="inside"),k=i?.original?.__rowMetadata||i?.original?._meta,Z=C!==i?.original?.id,ki=!i?.original?.__isLoading,Vi=!!(k?.__is_new||k?.__is_added||i?.original?.is_added||R?.is_added||k?.is_added||k?.is_new),Qi=!!(i?.original?.is_deleted||k?.__is_deleted||R?.is_deleted||k?.is_deleted),Xi=!!(i?.original?.is_modified||i?.original?.is_row_modified||k?.__is_modified||k?.__is_edited||R?.is_row_modified||k?.is_modified)&&!Vi,Ei=r!=null&&String(r)===String(i?.original?.id),zi=Ci({"bg-neutral-100 dark:bg-black-600":C===i?.original?.id&&!u,"bg-primary-100 dark:bg-primary-950":Ei&&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&&ki&&Z&&!u,"bg-error-50 dark:bg-error-975":Qi&&ki&&Z&&!u,"bg-success-50 dark:bg-success-975":Vi&&ki&&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:N||f?bi:null,key:i.original.id,"data-row-id":i.original.id,className:Ci(`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":"",N&&I&&I?.data?.current?.type==="table-file-dropzone"&&I?.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:{...xi,...f?Ki:{},width:"max-content"},...N||f?Ri:{},...N||f?fi:{}},X&&p?.dragOperation?t.jsx("div",{className:"absolute right-2 h-10 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-10 flex items-center z-20 pointer-events-none",children:t.jsx(Fi.SubdirectoryArrowLeftRounded,{sx:{fontSize:16},className:"text-primary-500"})}):null,Q&&yi==="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&&yi==="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:N,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:j,hoverConfig:oi,isSelected:Ei})}):t.jsx(Wi,{level:e,withDraggable:N,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:j,hoverConfig:oi,isSelected:Ei}))},Wi=({withDraggable:i,setDroppableNodeRef:$,isLastRow:w,lastRow:ii,isCheckbox:z,checkboxConfig:xi,row:e,rowHovering:c,tableActions:ei,disableOptionsForRowIndex:M,index:s,showNewItem:E,currentData:b,lastNonStickyColumnIndex:F,getSumOfNextVisibleColumnWidth:ni,toggleRowExpand:H,loadingExpand:vi,cellRef:ti,handleCellClick:li,getFullRowDataOnClick:f,handleCellValueChange:N,handleUpdateCellData:ai,handleRowCancelEdit:W,handleRowConfirmEdit:O,registerValidation:p,inlineEditing:si,isInlineEditing:r,setRowHovering:U,highlightSubstring:hi,rowOptions:j,level:oi,isDraggingFile:D,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(j))return j;if(typeof j=="function"){const o=j({...e.original,rowIndex:s});return Array.isArray(o)?o:[]}return[]},[j,e.original,s]),_=e?.original?.__rowMetadata||e?.original?._meta,R=c!==e?.original?.id,G=!e?.original?.__isLoading,x=!!(_?.__is_new||_?.__is_added||e?.original?.is_added||b?.is_added||_?.is_added||_?.is_new),S=!!(e?.original?.is_deleted||_?.__is_deleted||b?.is_deleted||_?.is_deleted),y=!!(e?.original?.is_modified||e?.original?.is_row_modified||_?.__is_modified||_?.__is_edited||b?.is_row_modified||_?.is_deleted)&&!x,J=K&&!r&&c!==e?.original?.id?"bg-primary-100 dark:bg-primary-950":void 0,_i=Ci({"border-l-[3px] border-l-success-400 dark:border-l-success-500":x&&G&&R&&!r,"border-l-[3px] border-l-error-400 dark:border-l-error-500":S&&G&&R&&!r,"border-l-[3px] border-l-warning-400 dark:border-l-warning-500":y&&G&&R&&!r});return t.jsx("div",{ref:i?$:null,className:P?"border-2 border-primary-400 dark:border-primary-500 rounded-sm":"",children:t.jsxs("div",{className:Ci("flex",_i),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:E,onScrollToCell:ci}),z&&t.jsx(le.CheckboxCell,{checkboxConfig:xi,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:E,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:!!E,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:D?"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||""),Ri=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:vi,index:v,cellRef:ti,currentData:b,handleCellClick:V=>{V&&li(V,f?e.original:String(e.original.id),v,o?.column?.key||"")},handleCellValueChange:N,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:hi,isDraggingOver:P,isLoading:!!e?.original?.__isLoading,pendingEdit:T,hasPendingEdit:Ri,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:!!E,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 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 ||\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 bgColor = cn({\n 'bg-neutral-100 dark:bg-black-600': rowHovering === row?.original?.id && !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-10 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-10 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 />\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 />\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}\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}: 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 ||\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_deleted\n ) && !_isNewRow;\n\n const statusBorderClass = cn({\n 'border-l-[3px] border-l-success-400 dark:border-l-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'border-l-[3px] border-l-error-400 dark:border-l-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'border-l-[3px] border-l-warning-400 dark:border-l-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={cn('flex', statusBorderClass)} 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] : undefined}\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] : undefined}\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] : undefined}\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","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","bgColor","cn","getTableRowBgClassNamesByStatus","createElement","jsx","AddRounded","SubdirectoryArrowLeftRounded","ActionCell","RowContent","cellRef","isRowContentHovering","setIsRowContentHovering","getPendingEditFn","hasPendingEditFn","pendingEdits","tableHeaders","pendingEditsCount","scrollToCell","rowHasPendingEdits","tableHasAnyPendingEdits","resolvedRowOptions","options","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 ||\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-100 dark:bg-primary-950': 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-10 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-10 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 ||\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_deleted\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({\n 'border-l-[3px] border-l-success-400 dark:border-l-success-500': _isNewRow && _notLoading && _notHovering && !isInlineEditing,\n 'border-l-[3px] border-l-error-400 dark:border-l-error-500': _isDeletedRow && _notLoading && _notHovering && !isInlineEditing,\n 'border-l-[3px] border-l-warning-400 dark:border-l-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={cn('flex', statusBorderClass)} 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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"}