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

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 (67) hide show
  1. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js +1 -1
  2. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js.map +1 -1
  3. package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js +11 -11
  4. package/dist/components/data-display/infinite-table/body/cell/ActionCell.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 +10 -10
  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 +23 -23
  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 +6 -6
  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 +4 -4
  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 +3 -3
  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 +24 -24
  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/cell/SpinnerCell.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js +1 -1
  32. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js.map +1 -1
  33. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js +1 -1
  34. package/dist/components/data-display/infinite-table/body/rows/index.cjs.js.map +1 -1
  35. package/dist/components/data-display/infinite-table/body/rows/index.es.js +104 -101
  36. package/dist/components/data-display/infinite-table/body/rows/index.es.js.map +1 -1
  37. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
  38. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
  39. package/dist/components/data-display/infinite-table/body/rows/row.es.js +2 -2
  40. package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
  41. package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
  42. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
  43. package/dist/components/data-display/infinite-table/constants.d.ts +6 -0
  44. package/dist/components/data-display/infinite-table/constants.es.js +17 -16
  45. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
  46. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
  47. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
  48. package/dist/components/data-display/infinite-table/head/CheckAll.es.js +1 -1
  49. package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
  50. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
  51. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
  52. package/dist/components/data-display/infinite-table/head/cell/index.es.js +2 -2
  53. package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
  54. package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
  55. package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
  56. package/dist/components/data-display/infinite-table/head/index.es.js +20 -20
  57. package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
  58. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  59. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  60. package/dist/components/data-display/infinite-table/index.es.js +188 -187
  61. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  62. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js +2 -0
  63. package/dist/components/data-display/infinite-table/useRowHeight.cjs.js.map +1 -0
  64. package/dist/components/data-display/infinite-table/useRowHeight.d.ts +15 -0
  65. package/dist/components/data-display/infinite-table/useRowHeight.es.js +24 -0
  66. package/dist/components/data-display/infinite-table/useRowHeight.es.js.map +1 -0
  67. 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("../../../../tooltip/Tooltip.cjs.js"),r=require("react"),C=require("../../../../../providers/design-system-provider/hooks.cjs.js"),y=({rowHovering:f,level:a,totalWidth:c,isCheckbox:s,id:i,onClick:l,cells:m,isRoot:b,name:u,uploadCell:j,row:d,disabled:t,disabledTooltip:x})=>{const p=C.useTableConfig(),o=d?.name?.props,g=r.useCallback(()=>o?.text&&o.text==="+ New Line Item"?"new-line-item":`id-${Math.random().toString(36).substring(2,15)}`,[o?.text]),w=r.useMemo(()=>g(),[g]),N=r.useCallback(n=>{t||l&&l(n)},[l,t]),h=r.useMemo(()=>m.filter(n=>n?.column?.visible!==!1)?.length-(s?1:0),[m,s]),k=r.useMemo(()=>a>0?a*16:0,[a]);if(j&&p?.renderUploadAttachmentRow)return e.jsx(e.Fragment,{children:p.renderUploadAttachmentRow({data:d,colSpan:h+2,totalWidth:c})});const v=t&&x?e.jsx(S,{title:x,placement:"top",children:e.jsx("span",{className:t?"text-neutral-400":"text-primary-600",children:u})}):e.jsx("span",{className:t?"text-neutral-400":"text-primary-600",children:u});return e.jsxs("div",{className:"relative dark:bg-black-800",children:[s&&e.jsx("td",{className:`min-w-[40px] ${f===i?"bg-neutral-100 dark:bg-black-700":""}`}),e.jsxs("td",{id:String(w)||String(i),onClick:N,className:`relative w-full h-10 overflow-x-hidden ${t?"cursor-not-allowed":"cursor-pointer"}`,colSpan:h,style:{paddingLeft:k,width:c},children:[!b&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700"}),e.jsx("div",{className:"ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700"})]}),e.jsx("div",{className:"px-6 w-full absolute h-10 top-0 flex items-center",children:v})]})]})},A=r.memo(y);exports.ActionCell=A;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const e=require("react/jsx-runtime"),S=require("../../../../tooltip/Tooltip.cjs.js"),r=require("react"),C=require("../../../../../providers/design-system-provider/hooks.cjs.js"),y=({rowHovering:f,level:a,totalWidth:c,isCheckbox:s,id:i,onClick:l,cells:m,isRoot:b,name:u,uploadCell:j,row:d,disabled:t,disabledTooltip:x})=>{const p=C.useTableConfig(),o=d?.name?.props,g=r.useCallback(()=>o?.text&&o.text==="+ New Line Item"?"new-line-item":`id-${Math.random().toString(36).substring(2,15)}`,[o?.text]),w=r.useMemo(()=>g(),[g]),N=r.useCallback(n=>{t||l&&l(n)},[l,t]),h=r.useMemo(()=>m.filter(n=>n?.column?.visible!==!1)?.length-(s?1:0),[m,s]),k=r.useMemo(()=>a>0?a*16:0,[a]);if(j&&p?.renderUploadAttachmentRow)return e.jsx(e.Fragment,{children:p.renderUploadAttachmentRow({data:d,colSpan:h+2,totalWidth:c})});const v=t&&x?e.jsx(S,{title:x,placement:"top",children:e.jsx("span",{className:t?"text-neutral-400":"text-primary-600",children:u})}):e.jsx("span",{className:t?"text-neutral-400":"text-primary-600",children:u});return e.jsxs("div",{className:"relative dark:bg-black-800",children:[s&&e.jsx("td",{className:`min-w-[40px] ${f===i?"bg-neutral-100 dark:bg-black-700":""}`}),e.jsxs("td",{id:String(w)||String(i),onClick:N,className:`relative w-full h-row overflow-x-hidden ${t?"cursor-not-allowed":"cursor-pointer"}`,colSpan:h,style:{paddingLeft:k,width:c},children:[!b&&e.jsxs(e.Fragment,{children:[e.jsx("div",{className:"h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700"}),e.jsx("div",{className:"ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700"})]}),e.jsx("div",{className:"px-6 w-full absolute h-row top-0 flex items-center",children:v})]})]})},A=r.memo(y);exports.ActionCell=A;
2
2
  //# sourceMappingURL=ActionCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/ActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport React, { useCallback, useMemo } from 'react';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\n\ntype CellProps = {\n rowHovering: number | string;\n level: number;\n totalWidth: number;\n isCheckbox: boolean;\n id: number | string;\n onClick: (e?: React.MouseEvent<HTMLTableCellElement>) => void;\n cells: Array<{ column?: { visible?: boolean; [k: string]: unknown }; [k: string]: unknown }>;\n isRoot: boolean;\n name: string;\n uploadCell?: boolean;\n row?: Record<string, unknown>;\n disabled?: boolean;\n disabledTooltip?: string;\n};\n\nconst ActionCellInner: React.FC<CellProps> = ({\n rowHovering,\n level,\n totalWidth,\n isCheckbox,\n id,\n onClick,\n cells,\n isRoot,\n name,\n uploadCell,\n row,\n disabled,\n disabledTooltip,\n}) => {\n const tableConfig = useTableConfig();\n\n const rowNameProps = (row?.name as { props?: { text?: string } } | undefined)?.props;\n const generateId = useCallback(() => {\n if (rowNameProps?.text && rowNameProps.text === '+ New Line Item') {\n return 'new-line-item';\n } else {\n const formatted = Math.random().toString(36).substring(2, 15);\n return `id-${formatted}`;\n }\n }, [rowNameProps?.text]);\n const currentId = useMemo(() => generateId(), [generateId]);\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLTableCellElement>) => {\n if (disabled) return;\n if (onClick) onClick(e);\n },\n [onClick, disabled],\n );\n\n const colSpan = useMemo(() => cells.filter((cell) => cell?.column?.visible !== false)?.length - (isCheckbox ? 1 : 0), [cells, isCheckbox]);\n const paddingLeft = useMemo(() => (level > 0 ? level * 16 : 0), [level]);\n\n if (uploadCell && tableConfig?.renderUploadAttachmentRow) {\n return <>{tableConfig.renderUploadAttachmentRow({ data: row, colSpan: colSpan + 2, totalWidth })}</>;\n }\n\n const nameContent =\n disabled && disabledTooltip ? (\n <Tooltip title={disabledTooltip} placement='top'>\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n </Tooltip>\n ) : (\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n );\n\n return (\n <div className='relative dark:bg-black-800'>\n {isCheckbox && <td className={`min-w-[40px] ${rowHovering === id ? 'bg-neutral-100 dark:bg-black-700' : ''}`} />}\n <td\n id={String(currentId) || String(id)}\n onClick={handleClick}\n className={`relative w-full h-10 overflow-x-hidden ${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}`}\n colSpan={colSpan}\n style={{ paddingLeft, width: totalWidth }}\n >\n {!isRoot && (\n <>\n <div className='h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700' />\n <div className='ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700' />\n </>\n )}\n <div className='px-6 w-full absolute h-10 top-0 flex items-center'>{nameContent}</div>\n </td>\n </div>\n );\n};\n\nexport const ActionCell = React.memo(ActionCellInner);\n"],"names":["ActionCellInner","rowHovering","level","totalWidth","isCheckbox","id","onClick","cells","isRoot","name","uploadCell","row","disabled","disabledTooltip","tableConfig","useTableConfig","rowNameProps","generateId","useCallback","currentId","useMemo","handleClick","e","colSpan","cell","paddingLeft","jsx","Fragment","nameContent","Tooltip","jsxs","ActionCell","React"],"mappings":"kQAoBMA,EAAuC,CAAC,CAC5C,YAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,GAAAC,EACA,QAAAC,EACA,MAAAC,EACA,OAAAC,EACA,KAAAC,EACA,WAAAC,EACA,IAAAC,EACA,SAAAC,EACA,gBAAAC,CACF,IAAM,CACJ,MAAMC,EAAcC,EAAAA,eAAA,EAEdC,EAAgBL,GAAK,MAAoD,MACzEM,EAAaC,EAAAA,YAAY,IACzBF,GAAc,MAAQA,EAAa,OAAS,kBACvC,gBAGA,MADW,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,CACtC,GAEvB,CAACA,GAAc,IAAI,CAAC,EACjBG,EAAYC,EAAAA,QAAQ,IAAMH,IAAc,CAACA,CAAU,CAAC,EACpDI,EAAcH,EAAAA,YACjBI,GAA8C,CACzCV,GACAN,KAAiBgB,CAAC,CACxB,EACA,CAAChB,EAASM,CAAQ,CAAA,EAGdW,EAAUH,EAAAA,QAAQ,IAAMb,EAAM,OAAQiB,GAASA,GAAM,QAAQ,UAAY,EAAK,GAAG,QAAUpB,EAAa,EAAI,GAAI,CAACG,EAAOH,CAAU,CAAC,EACnIqB,EAAcL,UAAQ,IAAOlB,EAAQ,EAAIA,EAAQ,GAAK,EAAI,CAACA,CAAK,CAAC,EAEvE,GAAIQ,GAAcI,GAAa,0BAC7B,OAAOY,EAAAA,IAAAC,EAAAA,SAAA,CAAG,SAAAb,EAAY,0BAA0B,CAAE,KAAMH,EAAK,QAASY,EAAU,EAAG,WAAApB,CAAA,CAAY,CAAA,CAAE,EAGnG,MAAMyB,EACJhB,GAAYC,EACVa,EAAAA,IAACG,EAAA,CAAQ,MAAOhB,EAAiB,UAAU,MACzC,SAAAa,EAAAA,IAAC,OAAA,CAAK,UAAWd,EAAW,mBAAqB,mBAAqB,SAAAH,CAAA,CAAK,CAAA,CAC7E,EAEAiB,EAAAA,IAAC,QAAK,UAAWd,EAAW,mBAAqB,mBAAqB,SAAAH,CAAA,CAAK,EAG/E,OACEqB,EAAAA,KAAC,MAAA,CAAI,UAAU,6BACZ,SAAA,CAAA1B,GAAcsB,EAAAA,IAAC,MAAG,UAAW,gBAAgBzB,IAAgBI,EAAK,mCAAqC,EAAE,EAAA,CAAI,EAC9GyB,EAAAA,KAAC,KAAA,CACC,GAAI,OAAOX,CAAS,GAAK,OAAOd,CAAE,EAClC,QAASgB,EACT,UAAW,0CAA0CT,EAAW,qBAAuB,gBAAgB,GACvG,QAAAW,EACA,MAAO,CAAE,YAAAE,EAAa,MAAOtB,CAAA,EAE5B,SAAA,CAAA,CAACK,GACAsB,EAAAA,KAAAH,EAAAA,SAAA,CACE,SAAA,CAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,8DAAA,CAA+D,EAC9EA,EAAAA,IAAC,MAAA,CAAI,UAAU,kDAAA,CAAmD,CAAA,EACpE,EAEFA,EAAAA,IAAC,MAAA,CAAI,UAAU,oDAAqD,SAAAE,CAAA,CAAY,CAAA,CAAA,CAAA,CAClF,EACF,CAEJ,EAEaG,EAAaC,EAAM,KAAKhC,CAAe"}
1
+ {"version":3,"file":"ActionCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/ActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport React, { useCallback, useMemo } from 'react';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\n\ntype CellProps = {\n rowHovering: number | string;\n level: number;\n totalWidth: number;\n isCheckbox: boolean;\n id: number | string;\n onClick: (e?: React.MouseEvent<HTMLTableCellElement>) => void;\n cells: Array<{ column?: { visible?: boolean; [k: string]: unknown }; [k: string]: unknown }>;\n isRoot: boolean;\n name: string;\n uploadCell?: boolean;\n row?: Record<string, unknown>;\n disabled?: boolean;\n disabledTooltip?: string;\n};\n\nconst ActionCellInner: React.FC<CellProps> = ({\n rowHovering,\n level,\n totalWidth,\n isCheckbox,\n id,\n onClick,\n cells,\n isRoot,\n name,\n uploadCell,\n row,\n disabled,\n disabledTooltip,\n}) => {\n const tableConfig = useTableConfig();\n\n const rowNameProps = (row?.name as { props?: { text?: string } } | undefined)?.props;\n const generateId = useCallback(() => {\n if (rowNameProps?.text && rowNameProps.text === '+ New Line Item') {\n return 'new-line-item';\n } else {\n const formatted = Math.random().toString(36).substring(2, 15);\n return `id-${formatted}`;\n }\n }, [rowNameProps?.text]);\n const currentId = useMemo(() => generateId(), [generateId]);\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLTableCellElement>) => {\n if (disabled) return;\n if (onClick) onClick(e);\n },\n [onClick, disabled],\n );\n\n const colSpan = useMemo(() => cells.filter((cell) => cell?.column?.visible !== false)?.length - (isCheckbox ? 1 : 0), [cells, isCheckbox]);\n const paddingLeft = useMemo(() => (level > 0 ? level * 16 : 0), [level]);\n\n if (uploadCell && tableConfig?.renderUploadAttachmentRow) {\n return <>{tableConfig.renderUploadAttachmentRow({ data: row, colSpan: colSpan + 2, totalWidth })}</>;\n }\n\n const nameContent =\n disabled && disabledTooltip ? (\n <Tooltip title={disabledTooltip} placement='top'>\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n </Tooltip>\n ) : (\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n );\n\n return (\n <div className='relative dark:bg-black-800'>\n {isCheckbox && <td className={`min-w-[40px] ${rowHovering === id ? 'bg-neutral-100 dark:bg-black-700' : ''}`} />}\n <td\n id={String(currentId) || String(id)}\n onClick={handleClick}\n className={`relative w-full h-row overflow-x-hidden ${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}`}\n colSpan={colSpan}\n style={{ paddingLeft, width: totalWidth }}\n >\n {!isRoot && (\n <>\n <div className='h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700' />\n <div className='ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700' />\n </>\n )}\n <div className='px-6 w-full absolute h-row top-0 flex items-center'>{nameContent}</div>\n </td>\n </div>\n );\n};\n\nexport const ActionCell = React.memo(ActionCellInner);\n"],"names":["ActionCellInner","rowHovering","level","totalWidth","isCheckbox","id","onClick","cells","isRoot","name","uploadCell","row","disabled","disabledTooltip","tableConfig","useTableConfig","rowNameProps","generateId","useCallback","currentId","useMemo","handleClick","e","colSpan","cell","paddingLeft","jsx","Fragment","nameContent","Tooltip","jsxs","ActionCell","React"],"mappings":"kQAoBMA,EAAuC,CAAC,CAC5C,YAAAC,EACA,MAAAC,EACA,WAAAC,EACA,WAAAC,EACA,GAAAC,EACA,QAAAC,EACA,MAAAC,EACA,OAAAC,EACA,KAAAC,EACA,WAAAC,EACA,IAAAC,EACA,SAAAC,EACA,gBAAAC,CACF,IAAM,CACJ,MAAMC,EAAcC,EAAAA,eAAA,EAEdC,EAAgBL,GAAK,MAAoD,MACzEM,EAAaC,EAAAA,YAAY,IACzBF,GAAc,MAAQA,EAAa,OAAS,kBACvC,gBAGA,MADW,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,EAAG,EAAE,CACtC,GAEvB,CAACA,GAAc,IAAI,CAAC,EACjBG,EAAYC,EAAAA,QAAQ,IAAMH,IAAc,CAACA,CAAU,CAAC,EACpDI,EAAcH,EAAAA,YACjBI,GAA8C,CACzCV,GACAN,KAAiBgB,CAAC,CACxB,EACA,CAAChB,EAASM,CAAQ,CAAA,EAGdW,EAAUH,EAAAA,QAAQ,IAAMb,EAAM,OAAQiB,GAASA,GAAM,QAAQ,UAAY,EAAK,GAAG,QAAUpB,EAAa,EAAI,GAAI,CAACG,EAAOH,CAAU,CAAC,EACnIqB,EAAcL,UAAQ,IAAOlB,EAAQ,EAAIA,EAAQ,GAAK,EAAI,CAACA,CAAK,CAAC,EAEvE,GAAIQ,GAAcI,GAAa,0BAC7B,OAAOY,EAAAA,IAAAC,EAAAA,SAAA,CAAG,SAAAb,EAAY,0BAA0B,CAAE,KAAMH,EAAK,QAASY,EAAU,EAAG,WAAApB,CAAA,CAAY,CAAA,CAAE,EAGnG,MAAMyB,EACJhB,GAAYC,EACVa,EAAAA,IAACG,EAAA,CAAQ,MAAOhB,EAAiB,UAAU,MACzC,SAAAa,EAAAA,IAAC,OAAA,CAAK,UAAWd,EAAW,mBAAqB,mBAAqB,SAAAH,CAAA,CAAK,CAAA,CAC7E,EAEAiB,EAAAA,IAAC,QAAK,UAAWd,EAAW,mBAAqB,mBAAqB,SAAAH,CAAA,CAAK,EAG/E,OACEqB,EAAAA,KAAC,MAAA,CAAI,UAAU,6BACZ,SAAA,CAAA1B,GAAcsB,EAAAA,IAAC,MAAG,UAAW,gBAAgBzB,IAAgBI,EAAK,mCAAqC,EAAE,EAAA,CAAI,EAC9GyB,EAAAA,KAAC,KAAA,CACC,GAAI,OAAOX,CAAS,GAAK,OAAOd,CAAE,EAClC,QAASgB,EACT,UAAW,2CAA2CT,EAAW,qBAAuB,gBAAgB,GACxG,QAAAW,EACA,MAAO,CAAE,YAAAE,EAAa,MAAOtB,CAAA,EAE5B,SAAA,CAAA,CAACK,GACAsB,EAAAA,KAAAH,EAAAA,SAAA,CACE,SAAA,CAAAD,EAAAA,IAAC,MAAA,CAAI,UAAU,8DAAA,CAA+D,EAC9EA,EAAAA,IAAC,MAAA,CAAI,UAAU,kDAAA,CAAmD,CAAA,EACpE,EAEFA,EAAAA,IAAC,MAAA,CAAI,UAAU,qDAAsD,SAAAE,CAAA,CAAY,CAAA,CAAA,CAAA,CACnF,EACF,CAEJ,EAEaG,EAAaC,EAAM,KAAKhC,CAAe"}
@@ -1,4 +1,4 @@
1
- import { jsx as t, Fragment as w, jsxs as c } from "react/jsx-runtime";
1
+ import { jsx as t, Fragment as x, jsxs as c } from "react/jsx-runtime";
2
2
  import y from "../../../../tooltip/Tooltip.es.js";
3
3
  import R, { useCallback as b, useMemo as s } from "react";
4
4
  import { useTableConfig as $ } from "../../../../../providers/design-system-provider/hooks.es.js";
@@ -8,7 +8,7 @@ const j = ({
8
8
  totalWidth: i,
9
9
  isCheckbox: a,
10
10
  id: m,
11
- onClick: l,
11
+ onClick: o,
12
12
  cells: d,
13
13
  isRoot: k,
14
14
  name: p,
@@ -17,14 +17,14 @@ const j = ({
17
17
  disabled: e,
18
18
  disabledTooltip: f
19
19
  }) => {
20
- const h = $(), o = u?.name?.props, g = b(() => o?.text && o.text === "+ New Line Item" ? "new-line-item" : `id-${Math.random().toString(36).substring(2, 15)}`, [o?.text]), S = s(() => g(), [g]), A = b(
20
+ const h = $(), l = u?.name?.props, g = b(() => l?.text && l.text === "+ New Line Item" ? "new-line-item" : `id-${Math.random().toString(36).substring(2, 15)}`, [l?.text]), S = s(() => g(), [g]), A = b(
21
21
  (r) => {
22
- e || l && l(r);
22
+ e || o && o(r);
23
23
  },
24
- [l, e]
25
- ), x = s(() => d.filter((r) => r?.column?.visible !== !1)?.length - (a ? 1 : 0), [d, a]), C = s(() => n > 0 ? n * 16 : 0, [n]);
24
+ [o, e]
25
+ ), w = s(() => d.filter((r) => r?.column?.visible !== !1)?.length - (a ? 1 : 0), [d, a]), C = s(() => n > 0 ? n * 16 : 0, [n]);
26
26
  if (v && h?.renderUploadAttachmentRow)
27
- return /* @__PURE__ */ t(w, { children: h.renderUploadAttachmentRow({ data: u, colSpan: x + 2, totalWidth: i }) });
27
+ return /* @__PURE__ */ t(x, { children: h.renderUploadAttachmentRow({ data: u, colSpan: w + 2, totalWidth: i }) });
28
28
  const I = e && f ? /* @__PURE__ */ t(y, { title: f, placement: "top", children: /* @__PURE__ */ t("span", { className: e ? "text-neutral-400" : "text-primary-600", children: p }) }) : /* @__PURE__ */ t("span", { className: e ? "text-neutral-400" : "text-primary-600", children: p });
29
29
  return /* @__PURE__ */ c("div", { className: "relative dark:bg-black-800", children: [
30
30
  a && /* @__PURE__ */ t("td", { className: `min-w-[40px] ${N === m ? "bg-neutral-100 dark:bg-black-700" : ""}` }),
@@ -33,15 +33,15 @@ const j = ({
33
33
  {
34
34
  id: String(S) || String(m),
35
35
  onClick: A,
36
- className: `relative w-full h-10 overflow-x-hidden ${e ? "cursor-not-allowed" : "cursor-pointer"}`,
37
- colSpan: x,
36
+ className: `relative w-full h-row overflow-x-hidden ${e ? "cursor-not-allowed" : "cursor-pointer"}`,
37
+ colSpan: w,
38
38
  style: { paddingLeft: C, width: i },
39
39
  children: [
40
- !k && /* @__PURE__ */ c(w, { children: [
40
+ !k && /* @__PURE__ */ c(x, { children: [
41
41
  /* @__PURE__ */ t("div", { className: "h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700" }),
42
42
  /* @__PURE__ */ t("div", { className: "ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700" })
43
43
  ] }),
44
- /* @__PURE__ */ t("div", { className: "px-6 w-full absolute h-10 top-0 flex items-center", children: I })
44
+ /* @__PURE__ */ t("div", { className: "px-6 w-full absolute h-row top-0 flex items-center", children: I })
45
45
  ]
46
46
  }
47
47
  )
@@ -1 +1 @@
1
- {"version":3,"file":"ActionCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/ActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport React, { useCallback, useMemo } from 'react';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\n\ntype CellProps = {\n rowHovering: number | string;\n level: number;\n totalWidth: number;\n isCheckbox: boolean;\n id: number | string;\n onClick: (e?: React.MouseEvent<HTMLTableCellElement>) => void;\n cells: Array<{ column?: { visible?: boolean; [k: string]: unknown }; [k: string]: unknown }>;\n isRoot: boolean;\n name: string;\n uploadCell?: boolean;\n row?: Record<string, unknown>;\n disabled?: boolean;\n disabledTooltip?: string;\n};\n\nconst ActionCellInner: React.FC<CellProps> = ({\n rowHovering,\n level,\n totalWidth,\n isCheckbox,\n id,\n onClick,\n cells,\n isRoot,\n name,\n uploadCell,\n row,\n disabled,\n disabledTooltip,\n}) => {\n const tableConfig = useTableConfig();\n\n const rowNameProps = (row?.name as { props?: { text?: string } } | undefined)?.props;\n const generateId = useCallback(() => {\n if (rowNameProps?.text && rowNameProps.text === '+ New Line Item') {\n return 'new-line-item';\n } else {\n const formatted = Math.random().toString(36).substring(2, 15);\n return `id-${formatted}`;\n }\n }, [rowNameProps?.text]);\n const currentId = useMemo(() => generateId(), [generateId]);\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLTableCellElement>) => {\n if (disabled) return;\n if (onClick) onClick(e);\n },\n [onClick, disabled],\n );\n\n const colSpan = useMemo(() => cells.filter((cell) => cell?.column?.visible !== false)?.length - (isCheckbox ? 1 : 0), [cells, isCheckbox]);\n const paddingLeft = useMemo(() => (level > 0 ? level * 16 : 0), [level]);\n\n if (uploadCell && tableConfig?.renderUploadAttachmentRow) {\n return <>{tableConfig.renderUploadAttachmentRow({ data: row, colSpan: colSpan + 2, totalWidth })}</>;\n }\n\n const nameContent =\n disabled && disabledTooltip ? (\n <Tooltip title={disabledTooltip} placement='top'>\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n </Tooltip>\n ) : (\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n );\n\n return (\n <div className='relative dark:bg-black-800'>\n {isCheckbox && <td className={`min-w-[40px] ${rowHovering === id ? 'bg-neutral-100 dark:bg-black-700' : ''}`} />}\n <td\n id={String(currentId) || String(id)}\n onClick={handleClick}\n className={`relative w-full h-10 overflow-x-hidden ${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}`}\n colSpan={colSpan}\n style={{ paddingLeft, width: totalWidth }}\n >\n {!isRoot && (\n <>\n <div className='h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700' />\n <div className='ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700' />\n </>\n )}\n <div className='px-6 w-full absolute h-10 top-0 flex items-center'>{nameContent}</div>\n </td>\n </div>\n );\n};\n\nexport const ActionCell = React.memo(ActionCellInner);\n"],"names":["ActionCellInner","rowHovering","level","totalWidth","isCheckbox","id","onClick","cells","isRoot","name","uploadCell","row","disabled","disabledTooltip","tableConfig","useTableConfig","rowNameProps","generateId","useCallback","currentId","useMemo","handleClick","e","colSpan","cell","paddingLeft","jsx","Fragment","nameContent","Tooltip","jsxs","ActionCell","React"],"mappings":";;;;AAoBA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,IAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACJ,QAAMC,IAAcC,EAAA,GAEdC,IAAgBL,GAAK,MAAoD,OACzEM,IAAaC,EAAY,MACzBF,GAAc,QAAQA,EAAa,SAAS,oBACvC,kBAGA,MADW,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,CACtC,IAEvB,CAACA,GAAc,IAAI,CAAC,GACjBG,IAAYC,EAAQ,MAAMH,KAAc,CAACA,CAAU,CAAC,GACpDI,IAAcH;AAAA,IAClB,CAACI,MAA8C;AAC7C,MAAIV,KACAN,OAAiBgB,CAAC;AAAA,IACxB;AAAA,IACA,CAAChB,GAASM,CAAQ;AAAA,EAAA,GAGdW,IAAUH,EAAQ,MAAMb,EAAM,OAAO,CAACiB,MAASA,GAAM,QAAQ,YAAY,EAAK,GAAG,UAAUpB,IAAa,IAAI,IAAI,CAACG,GAAOH,CAAU,CAAC,GACnIqB,IAAcL,EAAQ,MAAOlB,IAAQ,IAAIA,IAAQ,KAAK,GAAI,CAACA,CAAK,CAAC;AAEvE,MAAIQ,KAAcI,GAAa;AAC7B,WAAO,gBAAAY,EAAAC,GAAA,EAAG,UAAAb,EAAY,0BAA0B,EAAE,MAAMH,GAAK,SAASY,IAAU,GAAG,YAAApB,EAAA,CAAY,EAAA,CAAE;AAGnG,QAAMyB,IACJhB,KAAYC,IACV,gBAAAa,EAACG,GAAA,EAAQ,OAAOhB,GAAiB,WAAU,OACzC,UAAA,gBAAAa,EAAC,QAAA,EAAK,WAAWd,IAAW,qBAAqB,oBAAqB,UAAAH,EAAA,CAAK,EAAA,CAC7E,IAEA,gBAAAiB,EAAC,UAAK,WAAWd,IAAW,qBAAqB,oBAAqB,UAAAH,EAAA,CAAK;AAG/E,SACE,gBAAAqB,EAAC,OAAA,EAAI,WAAU,8BACZ,UAAA;AAAA,IAAA1B,KAAc,gBAAAsB,EAAC,QAAG,WAAW,gBAAgBzB,MAAgBI,IAAK,qCAAqC,EAAE,GAAA,CAAI;AAAA,IAC9G,gBAAAyB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,OAAOX,CAAS,KAAK,OAAOd,CAAE;AAAA,QAClC,SAASgB;AAAA,QACT,WAAW,0CAA0CT,IAAW,uBAAuB,gBAAgB;AAAA,QACvG,SAAAW;AAAA,QACA,OAAO,EAAE,aAAAE,GAAa,OAAOtB,EAAA;AAAA,QAE5B,UAAA;AAAA,UAAA,CAACK,KACA,gBAAAsB,EAAAH,GAAA,EACE,UAAA;AAAA,YAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,+DAAA,CAA+D;AAAA,YAC9E,gBAAAA,EAAC,OAAA,EAAI,WAAU,mDAAA,CAAmD;AAAA,UAAA,GACpE;AAAA,UAEF,gBAAAA,EAAC,OAAA,EAAI,WAAU,qDAAqD,UAAAE,EAAA,CAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EAClF,GACF;AAEJ,GAEaG,IAAaC,EAAM,KAAKhC,CAAe;"}
1
+ {"version":3,"file":"ActionCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/ActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport React, { useCallback, useMemo } from 'react';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\n\ntype CellProps = {\n rowHovering: number | string;\n level: number;\n totalWidth: number;\n isCheckbox: boolean;\n id: number | string;\n onClick: (e?: React.MouseEvent<HTMLTableCellElement>) => void;\n cells: Array<{ column?: { visible?: boolean; [k: string]: unknown }; [k: string]: unknown }>;\n isRoot: boolean;\n name: string;\n uploadCell?: boolean;\n row?: Record<string, unknown>;\n disabled?: boolean;\n disabledTooltip?: string;\n};\n\nconst ActionCellInner: React.FC<CellProps> = ({\n rowHovering,\n level,\n totalWidth,\n isCheckbox,\n id,\n onClick,\n cells,\n isRoot,\n name,\n uploadCell,\n row,\n disabled,\n disabledTooltip,\n}) => {\n const tableConfig = useTableConfig();\n\n const rowNameProps = (row?.name as { props?: { text?: string } } | undefined)?.props;\n const generateId = useCallback(() => {\n if (rowNameProps?.text && rowNameProps.text === '+ New Line Item') {\n return 'new-line-item';\n } else {\n const formatted = Math.random().toString(36).substring(2, 15);\n return `id-${formatted}`;\n }\n }, [rowNameProps?.text]);\n const currentId = useMemo(() => generateId(), [generateId]);\n const handleClick = useCallback(\n (e: React.MouseEvent<HTMLTableCellElement>) => {\n if (disabled) return;\n if (onClick) onClick(e);\n },\n [onClick, disabled],\n );\n\n const colSpan = useMemo(() => cells.filter((cell) => cell?.column?.visible !== false)?.length - (isCheckbox ? 1 : 0), [cells, isCheckbox]);\n const paddingLeft = useMemo(() => (level > 0 ? level * 16 : 0), [level]);\n\n if (uploadCell && tableConfig?.renderUploadAttachmentRow) {\n return <>{tableConfig.renderUploadAttachmentRow({ data: row, colSpan: colSpan + 2, totalWidth })}</>;\n }\n\n const nameContent =\n disabled && disabledTooltip ? (\n <Tooltip title={disabledTooltip} placement='top'>\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n </Tooltip>\n ) : (\n <span className={disabled ? 'text-neutral-400' : 'text-primary-600'}>{name}</span>\n );\n\n return (\n <div className='relative dark:bg-black-800'>\n {isCheckbox && <td className={`min-w-[40px] ${rowHovering === id ? 'bg-neutral-100 dark:bg-black-700' : ''}`} />}\n <td\n id={String(currentId) || String(id)}\n onClick={handleClick}\n className={`relative w-full h-row overflow-x-hidden ${disabled ? 'cursor-not-allowed' : 'cursor-pointer'}`}\n colSpan={colSpan}\n style={{ paddingLeft, width: totalWidth }}\n >\n {!isRoot && (\n <>\n <div className='h-1/2 border-l border-neutral-300 ml-2 dark:border-black-700' />\n <div className='ml-2 w-2.5 h-px bg-neutral-300 dark:bg-black-700' />\n </>\n )}\n <div className='px-6 w-full absolute h-row top-0 flex items-center'>{nameContent}</div>\n </td>\n </div>\n );\n};\n\nexport const ActionCell = React.memo(ActionCellInner);\n"],"names":["ActionCellInner","rowHovering","level","totalWidth","isCheckbox","id","onClick","cells","isRoot","name","uploadCell","row","disabled","disabledTooltip","tableConfig","useTableConfig","rowNameProps","generateId","useCallback","currentId","useMemo","handleClick","e","colSpan","cell","paddingLeft","jsx","Fragment","nameContent","Tooltip","jsxs","ActionCell","React"],"mappings":";;;;AAoBA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,aAAAC;AAAA,EACA,OAAAC;AAAA,EACA,YAAAC;AAAA,EACA,YAAAC;AAAA,EACA,IAAAC;AAAA,EACA,SAAAC;AAAA,EACA,OAAAC;AAAA,EACA,QAAAC;AAAA,EACA,MAAAC;AAAA,EACA,YAAAC;AAAA,EACA,KAAAC;AAAA,EACA,UAAAC;AAAA,EACA,iBAAAC;AACF,MAAM;AACJ,QAAMC,IAAcC,EAAA,GAEdC,IAAgBL,GAAK,MAAoD,OACzEM,IAAaC,EAAY,MACzBF,GAAc,QAAQA,EAAa,SAAS,oBACvC,kBAGA,MADW,KAAK,SAAS,SAAS,EAAE,EAAE,UAAU,GAAG,EAAE,CACtC,IAEvB,CAACA,GAAc,IAAI,CAAC,GACjBG,IAAYC,EAAQ,MAAMH,KAAc,CAACA,CAAU,CAAC,GACpDI,IAAcH;AAAA,IAClB,CAACI,MAA8C;AAC7C,MAAIV,KACAN,OAAiBgB,CAAC;AAAA,IACxB;AAAA,IACA,CAAChB,GAASM,CAAQ;AAAA,EAAA,GAGdW,IAAUH,EAAQ,MAAMb,EAAM,OAAO,CAACiB,MAASA,GAAM,QAAQ,YAAY,EAAK,GAAG,UAAUpB,IAAa,IAAI,IAAI,CAACG,GAAOH,CAAU,CAAC,GACnIqB,IAAcL,EAAQ,MAAOlB,IAAQ,IAAIA,IAAQ,KAAK,GAAI,CAACA,CAAK,CAAC;AAEvE,MAAIQ,KAAcI,GAAa;AAC7B,WAAO,gBAAAY,EAAAC,GAAA,EAAG,UAAAb,EAAY,0BAA0B,EAAE,MAAMH,GAAK,SAASY,IAAU,GAAG,YAAApB,EAAA,CAAY,EAAA,CAAE;AAGnG,QAAMyB,IACJhB,KAAYC,IACV,gBAAAa,EAACG,GAAA,EAAQ,OAAOhB,GAAiB,WAAU,OACzC,UAAA,gBAAAa,EAAC,QAAA,EAAK,WAAWd,IAAW,qBAAqB,oBAAqB,UAAAH,EAAA,CAAK,EAAA,CAC7E,IAEA,gBAAAiB,EAAC,UAAK,WAAWd,IAAW,qBAAqB,oBAAqB,UAAAH,EAAA,CAAK;AAG/E,SACE,gBAAAqB,EAAC,OAAA,EAAI,WAAU,8BACZ,UAAA;AAAA,IAAA1B,KAAc,gBAAAsB,EAAC,QAAG,WAAW,gBAAgBzB,MAAgBI,IAAK,qCAAqC,EAAE,GAAA,CAAI;AAAA,IAC9G,gBAAAyB;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,IAAI,OAAOX,CAAS,KAAK,OAAOd,CAAE;AAAA,QAClC,SAASgB;AAAA,QACT,WAAW,2CAA2CT,IAAW,uBAAuB,gBAAgB;AAAA,QACxG,SAAAW;AAAA,QACA,OAAO,EAAE,aAAAE,GAAa,OAAOtB,EAAA;AAAA,QAE5B,UAAA;AAAA,UAAA,CAACK,KACA,gBAAAsB,EAAAH,GAAA,EACE,UAAA;AAAA,YAAA,gBAAAD,EAAC,OAAA,EAAI,WAAU,+DAAA,CAA+D;AAAA,YAC9E,gBAAAA,EAAC,OAAA,EAAI,WAAU,mDAAA,CAAmD;AAAA,UAAA,GACpE;AAAA,UAEF,gBAAAA,EAAC,OAAA,EAAI,WAAU,sDAAsD,UAAAE,EAAA,CAAY;AAAA,QAAA;AAAA,MAAA;AAAA,IAAA;AAAA,EACnF,GACF;AAEJ,GAEaG,IAAaC,EAAM,KAAKhC,CAAe;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),O=require("antd"),B=require("../../../../../providers/design-system-provider/hooks.cjs.js"),R=require("../../../../../_virtual/index.cjs.js"),p=require("react"),$=require("../../constants.cjs.js");let b=null;const w=({checkboxConfig:t,id:e,rowHovering:r,isDisabled:j,is_read:C,is_modified:S,is_row_modified:M,is_deleted:u,is_added:n,isDraggingOver:T,showNewItem:q,currentData:a,bgColor:m,is_incomplete:x,isInlineEditing:c,hasPendingEditsColumn:_,rowHasPendingEdits:y})=>{const i=B.useTableConfig()?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",o=p.useRef(null),F=s=>{if(s.key!=="Enter")return;s.preventDefault();const k=s.currentTarget.form;if(!k)return;const N=new Event("submit",{bubbles:!0,cancelable:!0});k.dispatchEvent(N);const g=k.querySelector('button[type="submit"]');g&&g.click()},f=typeof t?.checkboxMetadata=="object"&&t?.checkboxMetadata!==null&&t?.checkboxMetadata.checkedIds?.includes(e)||t?.checkedIds?.includes(e),d=j||y||t?.checkboxMetadata?.checkedIds?.includes(e);p.useLayoutEffect(()=>{b!==e||d||o.current&&document.activeElement!==o.current&&o.current.focus({preventScroll:!0})},[e,d,f]);const h=R({"bg-primary-50 dark:bg-primary-900":c,"bg-neutral-100 dark:bg-black-600":r===e&&!c&&!(u||a?.is_deleted)&&!(n||a?.is_added),"bg-error-200 dark:bg-error-900":r===e&&!c&&(u||a?.is_deleted),"bg-success-100 dark:bg-success-800":r===e&&!c&&(n||a?.is_added),"bg-primary-50 dark:bg-black-700":!x&&!C&&q&&r!==e&&!c,"bg-warning-50 dark:bg-black-500":(x||S||M||a?.is_row_modified)&&r!==e&&!c,"bg-error-100 dark:bg-error-975":(u||a?.is_deleted)&&r!==e&&!c,"bg-success-50 dark:bg-success-900":(n||a?.is_added)&&r!==e&&!c,"bg-primary-50":T&&!c,...m&&!c&&{[m]:!0}});return l.jsx("td",{className:`min-w-[40px] sticky right-0 z-30 ${h||"bg-white dark:bg-black-800"} h-10`,style:{left:_?$.CHECKBOX_PENDING_EDITS_LEFT_OFFSET:"0"},children:l.jsxs("div",{className:"absolute w-full px-2.5 h-10 z-30 flex items-center",style:{boxShadow:"8px 0px 8px 0px rgba(0, 0, 0, 0.02)"},children:[l.jsx(O.Tooltip,{title:y?i:t?.checkboxMetadata?.tooltip&&t?.checkboxMetadata?.checkedIds?.includes(e)?t?.checkboxMetadata?.tooltip:"",children:l.jsx("input",{ref:o,id:`checkbox-table-search-${e}`,type:"checkbox",className:`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${h}`,onChange:s=>t?.onItemCheck(s,e),onKeyDown:F,onFocus:()=>{b=e},onBlur:()=>{b===e&&(b=null)},checked:f,disabled:d},`checkbox-table-search-${e}`)}),l.jsx("label",{htmlFor:"checkbox-table-search-1",className:"sr-only dark:text-neutral-200",children:"checkbox"})]})})},E=p.memo(w);exports.CheckboxCell=E;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),w=require("antd"),O=require("../../../../../providers/design-system-provider/hooks.cjs.js"),B=require("../../../../../_virtual/index.cjs.js"),p=require("react"),R=require("../../constants.cjs.js");let b=null;const $=({checkboxConfig:t,id:e,rowHovering:r,isDisabled:j,is_read:C,is_modified:S,is_row_modified:M,is_deleted:u,is_added:n,isDraggingOver:T,showNewItem:q,currentData:a,bgColor:m,is_incomplete:x,isInlineEditing:c,hasPendingEditsColumn:_,rowHasPendingEdits:y})=>{const i=O.useTableConfig()?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",l=p.useRef(null),F=s=>{if(s.key!=="Enter")return;s.preventDefault();const k=s.currentTarget.form;if(!k)return;const N=new Event("submit",{bubbles:!0,cancelable:!0});k.dispatchEvent(N);const g=k.querySelector('button[type="submit"]');g&&g.click()},f=typeof t?.checkboxMetadata=="object"&&t?.checkboxMetadata!==null&&t?.checkboxMetadata.checkedIds?.includes(e)||t?.checkedIds?.includes(e),d=j||y||t?.checkboxMetadata?.checkedIds?.includes(e);p.useLayoutEffect(()=>{b!==e||d||l.current&&document.activeElement!==l.current&&l.current.focus({preventScroll:!0})},[e,d,f]);const h=B({"bg-primary-50 dark:bg-primary-900":c,"bg-neutral-100 dark:bg-black-600":r===e&&!c&&!(u||a?.is_deleted)&&!(n||a?.is_added),"bg-error-200 dark:bg-error-900":r===e&&!c&&(u||a?.is_deleted),"bg-success-100 dark:bg-success-800":r===e&&!c&&(n||a?.is_added),"bg-primary-50 dark:bg-black-700":!x&&!C&&q&&r!==e&&!c,"bg-warning-50 dark:bg-black-500":(x||S||M||a?.is_row_modified)&&r!==e&&!c,"bg-error-100 dark:bg-error-975":(u||a?.is_deleted)&&r!==e&&!c,"bg-success-50 dark:bg-success-900":(n||a?.is_added)&&r!==e&&!c,"bg-primary-50":T&&!c,...m&&!c&&{[m]:!0}});return o.jsx("td",{className:`min-w-[40px] sticky right-0 z-30 ${h||"bg-white dark:bg-black-800"} h-row`,style:{left:_?R.CHECKBOX_PENDING_EDITS_LEFT_OFFSET:"0"},children:o.jsxs("div",{className:"absolute w-full px-2.5 h-row z-30 flex items-center",style:{boxShadow:"8px 0px 8px 0px rgba(0, 0, 0, 0.02)"},children:[o.jsx(w.Tooltip,{title:y?i:t?.checkboxMetadata?.tooltip&&t?.checkboxMetadata?.checkedIds?.includes(e)?t?.checkboxMetadata?.tooltip:"",children:o.jsx("input",{ref:l,id:`checkbox-table-search-${e}`,type:"checkbox",className:`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${h}`,onChange:s=>t?.onItemCheck(s,e),onKeyDown:F,onFocus:()=>{b=e},onBlur:()=>{b===e&&(b=null)},checked:f,disabled:d},`checkbox-table-search-${e}`)}),o.jsx("label",{htmlFor:"checkbox-table-search-1",className:"sr-only dark:text-neutral-200",children:"checkbox"})]})})},E=p.memo($);exports.CheckboxCell=E;
2
2
  //# sourceMappingURL=CheckboxCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/CheckboxCell.tsx"],"sourcesContent":["import { Tooltip } from 'antd';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { CHECKBOX_PENDING_EDITS_LEFT_OFFSET } from '../../constants';\n\ntype HighlightType = 'SUCCESS' | 'WARNING' | 'ERROR';\n\ntype CheckboxMetadata = {\n checkedIds: string[];\n tooltip: string;\n highlight: HighlightType;\n};\n\ntype TCheckboxCellProps = {\n checkboxConfig: {\n checkboxMetadata: CheckboxMetadata;\n checkedIds: string[];\n selectionDisabledRowIds: CheckboxMetadata;\n onItemCheck: (event: React.ChangeEvent<HTMLInputElement>, id: string) => void;\n };\n id: string;\n rowHovering?: string;\n isDisabled?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n isDraggingOver?: boolean;\n showNewItem?: boolean;\n currentData?: Record<string, unknown>;\n bgColor?: string;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n hasPendingEditsColumn?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nlet lastFocusedCheckboxId: string | null = null;\n\nconst CheckboxCellBase = ({\n checkboxConfig,\n id,\n rowHovering,\n isDisabled,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n isDraggingOver,\n showNewItem,\n currentData,\n bgColor: bgColorProp,\n is_incomplete,\n isInlineEditing,\n hasPendingEditsColumn,\n rowHasPendingEdits,\n}: TCheckboxCellProps) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Enter') return;\n event.preventDefault();\n const formEl = event.currentTarget.form;\n if (!formEl) return;\n\n const submitEvent = new Event('submit', { bubbles: true, cancelable: true });\n formEl.dispatchEvent(submitEvent);\n\n const submitBtn = formEl.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n }\n };\n\n const isCheckedObject = typeof checkboxConfig?.checkboxMetadata === 'object' && checkboxConfig?.checkboxMetadata !== null;\n const checkedValue = (isCheckedObject && checkboxConfig?.checkboxMetadata.checkedIds?.includes(id)) || checkboxConfig?.checkedIds?.includes(id);\n const isInputDisabled = isDisabled || rowHasPendingEdits || checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id);\n\n React.useLayoutEffect(() => {\n if (lastFocusedCheckboxId !== id || isInputDisabled) return;\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus({ preventScroll: true });\n }\n }, [id, isInputDisabled, checkedValue]);\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== id && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500':\n (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== id && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== id && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== id && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n return (\n <td\n className={`min-w-[40px] sticky right-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-10`}\n style={{ left: hasPendingEditsColumn ? CHECKBOX_PENDING_EDITS_LEFT_OFFSET : '0' }}\n >\n <div\n className={`absolute w-full px-2.5 h-10 z-30 flex items-center`}\n style={{ boxShadow: '8px 0px 8px 0px rgba(0, 0, 0, 0.02)' }}\n >\n <Tooltip\n title={\n rowHasPendingEdits\n ? pendingEditsTooltip\n : checkboxConfig?.checkboxMetadata?.tooltip && checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id)\n ? checkboxConfig?.checkboxMetadata?.tooltip\n : ''\n }\n >\n <input\n ref={inputRef}\n key={`checkbox-table-search-${id}`}\n id={`checkbox-table-search-${id}`}\n type='checkbox'\n className={`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${bgColor}`}\n onChange={(event) => checkboxConfig?.onItemCheck(event, id)}\n onKeyDown={handleKeyDown}\n onFocus={() => { lastFocusedCheckboxId = id; }}\n onBlur={() => { if (lastFocusedCheckboxId === id) lastFocusedCheckboxId = null; }}\n checked={checkedValue}\n disabled={isInputDisabled}\n />\n </Tooltip>\n <label htmlFor='checkbox-table-search-1' className='sr-only dark:text-neutral-200'>\n {'checkbox'}\n </label>\n </div>\n </td>\n );\n};\n\nexport const CheckboxCell = React.memo(CheckboxCellBase);\n"],"names":["lastFocusedCheckboxId","CheckboxCellBase","checkboxConfig","id","rowHovering","isDisabled","is_read","is_modified","is_row_modified","is_deleted","is_added","isDraggingOver","showNewItem","currentData","bgColorProp","is_incomplete","isInlineEditing","hasPendingEditsColumn","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","inputRef","React","handleKeyDown","event","formEl","submitEvent","submitBtn","checkedValue","isInputDisabled","bgColor","cn","jsx","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","jsxs","Tooltip","CheckboxCell"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/CheckboxCell.tsx"],"sourcesContent":["import { Tooltip } from 'antd';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { CHECKBOX_PENDING_EDITS_LEFT_OFFSET } from '../../constants';\n\ntype HighlightType = 'SUCCESS' | 'WARNING' | 'ERROR';\n\ntype CheckboxMetadata = {\n checkedIds: string[];\n tooltip: string;\n highlight: HighlightType;\n};\n\ntype TCheckboxCellProps = {\n checkboxConfig: {\n checkboxMetadata: CheckboxMetadata;\n checkedIds: string[];\n selectionDisabledRowIds: CheckboxMetadata;\n onItemCheck: (event: React.ChangeEvent<HTMLInputElement>, id: string) => void;\n };\n id: string;\n rowHovering?: string;\n isDisabled?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n isDraggingOver?: boolean;\n showNewItem?: boolean;\n currentData?: Record<string, unknown>;\n bgColor?: string;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n hasPendingEditsColumn?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nlet lastFocusedCheckboxId: string | null = null;\n\nconst CheckboxCellBase = ({\n checkboxConfig,\n id,\n rowHovering,\n isDisabled,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n isDraggingOver,\n showNewItem,\n currentData,\n bgColor: bgColorProp,\n is_incomplete,\n isInlineEditing,\n hasPendingEditsColumn,\n rowHasPendingEdits,\n}: TCheckboxCellProps) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Enter') return;\n event.preventDefault();\n const formEl = event.currentTarget.form;\n if (!formEl) return;\n\n const submitEvent = new Event('submit', { bubbles: true, cancelable: true });\n formEl.dispatchEvent(submitEvent);\n\n const submitBtn = formEl.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n }\n };\n\n const isCheckedObject = typeof checkboxConfig?.checkboxMetadata === 'object' && checkboxConfig?.checkboxMetadata !== null;\n const checkedValue = (isCheckedObject && checkboxConfig?.checkboxMetadata.checkedIds?.includes(id)) || checkboxConfig?.checkedIds?.includes(id);\n const isInputDisabled = isDisabled || rowHasPendingEdits || checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id);\n\n React.useLayoutEffect(() => {\n if (lastFocusedCheckboxId !== id || isInputDisabled) return;\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus({ preventScroll: true });\n }\n }, [id, isInputDisabled, checkedValue]);\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== id && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500':\n (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== id && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== id && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== id && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n return (\n <td\n className={`min-w-[40px] sticky right-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-row`}\n style={{ left: hasPendingEditsColumn ? CHECKBOX_PENDING_EDITS_LEFT_OFFSET : '0' }}\n >\n <div\n className={`absolute w-full px-2.5 h-row z-30 flex items-center`}\n style={{ boxShadow: '8px 0px 8px 0px rgba(0, 0, 0, 0.02)' }}\n >\n <Tooltip\n title={\n rowHasPendingEdits\n ? pendingEditsTooltip\n : checkboxConfig?.checkboxMetadata?.tooltip && checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id)\n ? checkboxConfig?.checkboxMetadata?.tooltip\n : ''\n }\n >\n <input\n ref={inputRef}\n key={`checkbox-table-search-${id}`}\n id={`checkbox-table-search-${id}`}\n type='checkbox'\n className={`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${bgColor}`}\n onChange={(event) => checkboxConfig?.onItemCheck(event, id)}\n onKeyDown={handleKeyDown}\n onFocus={() => { lastFocusedCheckboxId = id; }}\n onBlur={() => { if (lastFocusedCheckboxId === id) lastFocusedCheckboxId = null; }}\n checked={checkedValue}\n disabled={isInputDisabled}\n />\n </Tooltip>\n <label htmlFor='checkbox-table-search-1' className='sr-only dark:text-neutral-200'>\n {'checkbox'}\n </label>\n </div>\n </td>\n );\n};\n\nexport const CheckboxCell = React.memo(CheckboxCellBase);\n"],"names":["lastFocusedCheckboxId","CheckboxCellBase","checkboxConfig","id","rowHovering","isDisabled","is_read","is_modified","is_row_modified","is_deleted","is_added","isDraggingOver","showNewItem","currentData","bgColorProp","is_incomplete","isInlineEditing","hasPendingEditsColumn","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","inputRef","React","handleKeyDown","event","formEl","submitEvent","submitBtn","checkedValue","isInputDisabled","bgColor","cn","jsx","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","jsxs","Tooltip","CheckboxCell"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
- import { jsx as l, jsxs as $ } from "react/jsx-runtime";
2
- import { Tooltip as w } from "antd";
1
+ import { jsx as l, jsxs as O } from "react/jsx-runtime";
2
+ import { Tooltip as $ } from "antd";
3
3
  import { useTableConfig as E } from "../../../../../providers/design-system-provider/hooks.es.js";
4
4
  import K from "../../../../../_virtual/index.es.js";
5
5
  import k from "react";
@@ -24,13 +24,13 @@ const z = ({
24
24
  hasPendingEditsColumn: N,
25
25
  rowHasPendingEdits: x
26
26
  }) => {
27
- const j = E()?.t?.("Save or cancel pending changes first") ?? "Save or cancel pending changes first", o = k.useRef(null), B = (s) => {
27
+ const j = E()?.t?.("Save or cancel pending changes first") ?? "Save or cancel pending changes first", o = k.useRef(null), w = (s) => {
28
28
  if (s.key !== "Enter") return;
29
29
  s.preventDefault();
30
30
  const h = s.currentTarget.form;
31
31
  if (!h) return;
32
- const O = new Event("submit", { bubbles: !0, cancelable: !0 });
33
- h.dispatchEvent(O);
32
+ const B = new Event("submit", { bubbles: !0, cancelable: !0 });
33
+ h.dispatchEvent(B);
34
34
  const g = h.querySelector('button[type="submit"]');
35
35
  g && g.click();
36
36
  }, y = typeof r?.checkboxMetadata == "object" && r?.checkboxMetadata !== null && r?.checkboxMetadata.checkedIds?.includes(e) || r?.checkedIds?.includes(e), p = C || x || r?.checkboxMetadata?.checkedIds?.includes(e);
@@ -52,16 +52,16 @@ const z = ({
52
52
  return /* @__PURE__ */ l(
53
53
  "td",
54
54
  {
55
- className: `min-w-[40px] sticky right-0 z-30 ${m || "bg-white dark:bg-black-800"} h-10`,
55
+ className: `min-w-[40px] sticky right-0 z-30 ${m || "bg-white dark:bg-black-800"} h-row`,
56
56
  style: { left: N ? R : "0" },
57
- children: /* @__PURE__ */ $(
57
+ children: /* @__PURE__ */ O(
58
58
  "div",
59
59
  {
60
- className: "absolute w-full px-2.5 h-10 z-30 flex items-center",
60
+ className: "absolute w-full px-2.5 h-row z-30 flex items-center",
61
61
  style: { boxShadow: "8px 0px 8px 0px rgba(0, 0, 0, 0.02)" },
62
62
  children: [
63
63
  /* @__PURE__ */ l(
64
- w,
64
+ $,
65
65
  {
66
66
  title: x ? j : r?.checkboxMetadata?.tooltip && r?.checkboxMetadata?.checkedIds?.includes(e) ? r?.checkboxMetadata?.tooltip : "",
67
67
  children: /* @__PURE__ */ l(
@@ -72,7 +72,7 @@ const z = ({
72
72
  type: "checkbox",
73
73
  className: `w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${m}`,
74
74
  onChange: (s) => r?.onItemCheck(s, e),
75
- onKeyDown: B,
75
+ onKeyDown: w,
76
76
  onFocus: () => {
77
77
  b = e;
78
78
  },
@@ -1 +1 @@
1
- {"version":3,"file":"CheckboxCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/CheckboxCell.tsx"],"sourcesContent":["import { Tooltip } from 'antd';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { CHECKBOX_PENDING_EDITS_LEFT_OFFSET } from '../../constants';\n\ntype HighlightType = 'SUCCESS' | 'WARNING' | 'ERROR';\n\ntype CheckboxMetadata = {\n checkedIds: string[];\n tooltip: string;\n highlight: HighlightType;\n};\n\ntype TCheckboxCellProps = {\n checkboxConfig: {\n checkboxMetadata: CheckboxMetadata;\n checkedIds: string[];\n selectionDisabledRowIds: CheckboxMetadata;\n onItemCheck: (event: React.ChangeEvent<HTMLInputElement>, id: string) => void;\n };\n id: string;\n rowHovering?: string;\n isDisabled?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n isDraggingOver?: boolean;\n showNewItem?: boolean;\n currentData?: Record<string, unknown>;\n bgColor?: string;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n hasPendingEditsColumn?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nlet lastFocusedCheckboxId: string | null = null;\n\nconst CheckboxCellBase = ({\n checkboxConfig,\n id,\n rowHovering,\n isDisabled,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n isDraggingOver,\n showNewItem,\n currentData,\n bgColor: bgColorProp,\n is_incomplete,\n isInlineEditing,\n hasPendingEditsColumn,\n rowHasPendingEdits,\n}: TCheckboxCellProps) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Enter') return;\n event.preventDefault();\n const formEl = event.currentTarget.form;\n if (!formEl) return;\n\n const submitEvent = new Event('submit', { bubbles: true, cancelable: true });\n formEl.dispatchEvent(submitEvent);\n\n const submitBtn = formEl.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n }\n };\n\n const isCheckedObject = typeof checkboxConfig?.checkboxMetadata === 'object' && checkboxConfig?.checkboxMetadata !== null;\n const checkedValue = (isCheckedObject && checkboxConfig?.checkboxMetadata.checkedIds?.includes(id)) || checkboxConfig?.checkedIds?.includes(id);\n const isInputDisabled = isDisabled || rowHasPendingEdits || checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id);\n\n React.useLayoutEffect(() => {\n if (lastFocusedCheckboxId !== id || isInputDisabled) return;\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus({ preventScroll: true });\n }\n }, [id, isInputDisabled, checkedValue]);\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== id && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500':\n (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== id && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== id && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== id && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n return (\n <td\n className={`min-w-[40px] sticky right-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-10`}\n style={{ left: hasPendingEditsColumn ? CHECKBOX_PENDING_EDITS_LEFT_OFFSET : '0' }}\n >\n <div\n className={`absolute w-full px-2.5 h-10 z-30 flex items-center`}\n style={{ boxShadow: '8px 0px 8px 0px rgba(0, 0, 0, 0.02)' }}\n >\n <Tooltip\n title={\n rowHasPendingEdits\n ? pendingEditsTooltip\n : checkboxConfig?.checkboxMetadata?.tooltip && checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id)\n ? checkboxConfig?.checkboxMetadata?.tooltip\n : ''\n }\n >\n <input\n ref={inputRef}\n key={`checkbox-table-search-${id}`}\n id={`checkbox-table-search-${id}`}\n type='checkbox'\n className={`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${bgColor}`}\n onChange={(event) => checkboxConfig?.onItemCheck(event, id)}\n onKeyDown={handleKeyDown}\n onFocus={() => { lastFocusedCheckboxId = id; }}\n onBlur={() => { if (lastFocusedCheckboxId === id) lastFocusedCheckboxId = null; }}\n checked={checkedValue}\n disabled={isInputDisabled}\n />\n </Tooltip>\n <label htmlFor='checkbox-table-search-1' className='sr-only dark:text-neutral-200'>\n {'checkbox'}\n </label>\n </div>\n </td>\n );\n};\n\nexport const CheckboxCell = React.memo(CheckboxCellBase);\n"],"names":["lastFocusedCheckboxId","CheckboxCellBase","checkboxConfig","id","rowHovering","isDisabled","is_read","is_modified","is_row_modified","is_deleted","is_added","isDraggingOver","showNewItem","currentData","bgColorProp","is_incomplete","isInlineEditing","hasPendingEditsColumn","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","inputRef","React","handleKeyDown","event","formEl","submitEvent","submitBtn","checkedValue","isInputDisabled","bgColor","cn","jsx","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","jsxs","Tooltip","CheckboxCell"],"mappings":"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"}
1
+ {"version":3,"file":"CheckboxCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/CheckboxCell.tsx"],"sourcesContent":["import { Tooltip } from 'antd';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React from 'react';\n\nimport { CHECKBOX_PENDING_EDITS_LEFT_OFFSET } from '../../constants';\n\ntype HighlightType = 'SUCCESS' | 'WARNING' | 'ERROR';\n\ntype CheckboxMetadata = {\n checkedIds: string[];\n tooltip: string;\n highlight: HighlightType;\n};\n\ntype TCheckboxCellProps = {\n checkboxConfig: {\n checkboxMetadata: CheckboxMetadata;\n checkedIds: string[];\n selectionDisabledRowIds: CheckboxMetadata;\n onItemCheck: (event: React.ChangeEvent<HTMLInputElement>, id: string) => void;\n };\n id: string;\n rowHovering?: string;\n isDisabled?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n isDraggingOver?: boolean;\n showNewItem?: boolean;\n currentData?: Record<string, unknown>;\n bgColor?: string;\n is_incomplete?: boolean;\n isInlineEditing?: boolean;\n hasPendingEditsColumn?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nlet lastFocusedCheckboxId: string | null = null;\n\nconst CheckboxCellBase = ({\n checkboxConfig,\n id,\n rowHovering,\n isDisabled,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n isDraggingOver,\n showNewItem,\n currentData,\n bgColor: bgColorProp,\n is_incomplete,\n isInlineEditing,\n hasPendingEditsColumn,\n rowHasPendingEdits,\n}: TCheckboxCellProps) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n const inputRef = React.useRef<HTMLInputElement>(null);\n\n const handleKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n if (event.key !== 'Enter') return;\n event.preventDefault();\n const formEl = event.currentTarget.form;\n if (!formEl) return;\n\n const submitEvent = new Event('submit', { bubbles: true, cancelable: true });\n formEl.dispatchEvent(submitEvent);\n\n const submitBtn = formEl.querySelector<HTMLButtonElement>('button[type=\"submit\"]');\n if (submitBtn) {\n submitBtn.click();\n }\n };\n\n const isCheckedObject = typeof checkboxConfig?.checkboxMetadata === 'object' && checkboxConfig?.checkboxMetadata !== null;\n const checkedValue = (isCheckedObject && checkboxConfig?.checkboxMetadata.checkedIds?.includes(id)) || checkboxConfig?.checkedIds?.includes(id);\n const isInputDisabled = isDisabled || rowHasPendingEdits || checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id);\n\n React.useLayoutEffect(() => {\n if (lastFocusedCheckboxId !== id || isInputDisabled) return;\n if (inputRef.current && document.activeElement !== inputRef.current) {\n inputRef.current.focus({ preventScroll: true });\n }\n }, [id, isInputDisabled, checkedValue]);\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== id && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500':\n (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && rowHovering !== id && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && rowHovering !== id && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && rowHovering !== id && !isInlineEditing,\n 'bg-primary-50': isDraggingOver && !isInlineEditing,\n ...(bgColorProp && !isInlineEditing && { [bgColorProp]: true }),\n });\n\n return (\n <td\n className={`min-w-[40px] sticky right-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-row`}\n style={{ left: hasPendingEditsColumn ? CHECKBOX_PENDING_EDITS_LEFT_OFFSET : '0' }}\n >\n <div\n className={`absolute w-full px-2.5 h-row z-30 flex items-center`}\n style={{ boxShadow: '8px 0px 8px 0px rgba(0, 0, 0, 0.02)' }}\n >\n <Tooltip\n title={\n rowHasPendingEdits\n ? pendingEditsTooltip\n : checkboxConfig?.checkboxMetadata?.tooltip && checkboxConfig?.checkboxMetadata?.checkedIds?.includes(id)\n ? checkboxConfig?.checkboxMetadata?.tooltip\n : ''\n }\n >\n <input\n ref={inputRef}\n key={`checkbox-table-search-${id}`}\n id={`checkbox-table-search-${id}`}\n type='checkbox'\n className={`w-4 h-4 text-primary-600 appearance-none border border-gray-400 dark:border-neutral-400 rounded-[4px] checked:appearance-auto focus:ring-primary-500 dark:focus:ring-primary-600 focus:ring-2 cursor-pointer ${bgColor}`}\n onChange={(event) => checkboxConfig?.onItemCheck(event, id)}\n onKeyDown={handleKeyDown}\n onFocus={() => { lastFocusedCheckboxId = id; }}\n onBlur={() => { if (lastFocusedCheckboxId === id) lastFocusedCheckboxId = null; }}\n checked={checkedValue}\n disabled={isInputDisabled}\n />\n </Tooltip>\n <label htmlFor='checkbox-table-search-1' className='sr-only dark:text-neutral-200'>\n {'checkbox'}\n </label>\n </div>\n </td>\n );\n};\n\nexport const CheckboxCell = React.memo(CheckboxCellBase);\n"],"names":["lastFocusedCheckboxId","CheckboxCellBase","checkboxConfig","id","rowHovering","isDisabled","is_read","is_modified","is_row_modified","is_deleted","is_added","isDraggingOver","showNewItem","currentData","bgColorProp","is_incomplete","isInlineEditing","hasPendingEditsColumn","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","inputRef","React","handleKeyDown","event","formEl","submitEvent","submitBtn","checkedValue","isInputDisabled","bgColor","cn","jsx","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","jsxs","Tooltip","CheckboxCell"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),Oe=require("../../../../../hooks/useTheme.cjs.js"),D=require("../../../../../utils/formatters.cjs.js"),Ve=require("../../../../../constants/table.cjs.js"),qe=require("../../../../../providers/design-system-provider/hooks.cjs.js"),U=require("../../../../tooltip/Tooltip.cjs.js"),ze=require("../../../typography/Typography.cjs.js"),Ae=require("@mui/icons-material"),k=require("../../../../../_virtual/index.cjs.js"),a=require("react"),Fe=require("react-router-dom"),Ee=require("../../context.cjs.js"),Ke=require("./InlineEditField.cjs.js"),C=require("../../constants.cjs.js"),g=require("../../../../icon/icons.generated.cjs.js");let Y;const re=e=>{const t=Number(e);if(Number.isNaN(t)||e===null||e===void 0)return"0ms";if(t>=864e5){const h=Math.floor(t/864e5),f=Math.floor(t%864e5/36e5),i=Math.floor(t%36e5/6e4),b=Math.floor(t%6e4/1e3);return`${h}d ${f}h ${i}m ${b}s`}if(t>=36e5){const h=Math.floor(t/36e5),f=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3);return`${h}h ${f}m ${i}s`}if(t>=6e4){const h=Math.floor(t/6e4),f=Math.floor(t%6e4/1e3);return`${h}m ${f}s`}return t>=1e3?`${(t/1e3).toFixed(2)}s`:`${t}ms`},We=({children:e,withLink:t,linkTo:h,rowData:f,disableRowClick:i})=>t&&!i?o.jsx(Fe.Link,{to:h?.(f?.id,f)||"",children:e}):e,Ue=({cell:e,id:t,nextWidthSum:h,isLastCell:f,rowHovering:i,index:b,isFirstStickyCell:ae,handleCellClick:se,currentData:x,highlightSubstring:M,is_read:ne,is_modified:ue,is_row_modified:ie,is_deleted:R,is_added:I,level:y,inlineEditing:v,isInlineEditing:c,setRowHovering:$,handleCellValueChange:le,cellRef:ce,handleUpdateCellData:me,registerValidation:de,loadingExpand:fe,toggleRowExpand:B,isDraggingOver:pe,isLoading:_,is_incomplete:X,pendingEdit:s,hasPendingEdit:l,pendingValidationError:he})=>{const{cascadingTableConfig:G,originalsOnly:we,maxLevel:be,showNewItem:ye,expandedRows:xe,rowLinkConfig:O,multiSelectConfig:ve,cellEditing:V,cellEditingValue:q,allowInlineEdit:H,fieldOperationLoading:ke,pendingEdits:Te,selectedRowId:z}=a.useContext(Ee.TableContext),Ce=z!=null&&String(z)===String(t),ge=qe.useTableConfig(),A=(e?.column?.key?e?.row?.original?.__cellMetadata?.[e.column.key]:void 0)?.is_locked??e?.column?.is_locked,F=(e?.column?.key?Te?.[t]?.[e.column.key]?.validationError:null)||he||null,P=v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled,_e=ke===`${t}-${e?.column?.id}`,{theme:je}=Oe.useTheme(),Ne=je==="dark",Le=a.useCallback(()=>$(t),[$,t]),Se=a.useCallback(()=>$(null),[$]),j=ge?.formatDuration,[n,p]=a.useState(e?.column?.dataType==="duration"&&e?.value?j?j(e.value):re(e.value):e.value),[w,J]=a.useState(null),[E,De]=a.useState(!1),[Me,Q]=a.useState(!1),[$e,Z]=a.useState(!1),N=a.useRef(null),L=a.useRef(),S=a.useRef(),{selectedColumnIds:ee=[]}=ve||{},oe=!Object.prototype.hasOwnProperty.call(e?.column?.meta??{},"shouldHighlight")||e?.column?.meta?.shouldHighlight,te=a.useCallback(()=>{N.current&&De(N.current.scrollWidth>N.current.clientWidth)},[]),K=a.useCallback(r=>{L.current&&clearTimeout(L.current),r?Q(!0):L.current=setTimeout(()=>Q(!1),200)},[]),W=a.useCallback(r=>{S.current&&clearTimeout(S.current),r?Z(!0):S.current=setTimeout(()=>Z(!1),200)},[]),T=k({"bg-amber-100 dark:bg-amber-900/30":l,"bg-neutral-100 dark:bg-black-600":i===t&&!c&&!l&&!(R||x?.is_deleted)&&!(I||x?.is_added),"bg-error-200 dark:bg-error-900":i===t&&!c&&!l&&(R||x?.is_deleted),"bg-success-100 dark:bg-success-800":i===t&&!c&&!l&&(I||x?.is_added),"bg-primary-50 dark:bg-black-700":!X&&!ne&&ye&&!_&&i!==t&&!c&&!l,"bg-warning-50 dark:bg-black-500":(X||ue||ie||x?.is_row_modified)&&!_&&i!==t&&!c&&!l,"bg-error-100 dark:bg-error-975":(R||x?.is_deleted)&&!_&&i!==t&&!c&&!l,"bg-success-50 dark:bg-success-900":(I||x?.is_added)&&!_&&i!==t&&!c&&!l,"bg-primary-50 dark:bg-primary-900":(pe||c)&&!l,"bg-primary-50 dark:bg-primary-800":ee?.includes(e.column.id)&&!c&&!l,"bg-primary-100 dark:bg-primary-950":Ce&&i!==t&&!c&&!l&&!_,[Ve.getTableRowBgClassNamesByStatus[e?.row?.original?.__rowBgStatus]]:e?.row?.original?.__rowBgStatus&&!c&&!l}),Re=r=>{e.column?.disableRowClick||se(r)};a.useEffect(()=>(e?.row?.original?.status==="running"&&e.column?.dataType==="duration"&&(Y=setInterval(()=>{const u=new Date(D.formatDate(e?.row?.original?.created_at||e?.row?.original?.executed_on,{withTime:!0,format:"yyyy-MM-dd HH:mm:ss"})),d=Math.abs(new Date().getTime()-new Date(u).getTime());p(j?j(d):re(d))},500)),()=>{Y&&clearInterval(Y)}),[n,e.value,e?.row?.original?.created_at,e?.row?.original?.executed_on,e?.row?.original?.status,e.column?.dataType,j]),a.useEffect(()=>{(e?.column?.tooltipCellKey||e?.column?.type?.toLowerCase()==="url")&&(e?.column?.type?.toLowerCase()==="url"?J(e?.value):J(e?.row?.original?.[String(e?.column?.tooltipCellKey)]))},[e?.column?.tooltipCellKey,e?.row?.original,e?.column?.type,e?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="currency")if(s?.value!==void 0){const r=e?.row?.original?.__rawData,u=e?.column?.Header,d=s?.meta?.currency_code||r?.[u]?.currency_code||"USD";p(D.formatCurrency(s.value,d))}else{const r=e?.row?.original?.__rawData,u=e?.column?.Header;p(D.formatCurrency(e?.value,r?.[u]?.currency_code||"USD"))}},[e?.value,e?.column?.type,e?.column?.Header,e?.row?.original?.__rawData,s?.value,s?.meta?.currency_code]),a.useEffect(()=>{e?.column?.type?.toLowerCase()==="percentage"&&(s?.value!==void 0?p(s.value?.toString()+"%"||""):p(e?.value?.toString()+"%"||""))},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";if(["date","datetime"].includes(r))if(s?.value!==void 0){const u=r==="datetime",d=D.formatDate(s.value,{withTime:u,skipTimezone:!0});p(d||s.value)}else p(e.value)},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";["currency","percentage","duration","boolean","date","datetime"].includes(r)||(s?.value!==void 0?p(s.value):e?.column?.dataType!=="duration"&&p(e.value))},[e?.value,e?.column?.type,e?.column?.dataType,s?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="boolean"&&H){const r=s?.value!==void 0?s.value:e?.value;p(r===!0||r==="true"||r==="True"||r==="Yes"||r===1?"Yes":"No")}},[e?.value,e?.column?.type,H,s?.value]),a.useEffect(()=>()=>{L.current&&clearTimeout(L.current),S.current&&clearTimeout(S.current)},[]);const m=a.isValidElement(n);return o.jsxs("td",{id:e.value,"data-column-key":e?.column?.key,...e.getCellProps(),onClick:O?.isEnabled?void 0:Re,className:k("h-10",{"sticky left-0":e?.column?.sticky,relative:!e?.column?.sticky,"w-full":f,"overflow-visible":v===e.column.key,"overflow-x-hidden overflow-y-visible":v!==e.column.key&&m,"overflow-hidden":v!==e.column.key&&!m},F&&!P?"outline outline-2 outline-error-500 -outline-offset-2 z-[5]":"",`${T||"bg-white dark:bg-black-800"}`),style:{minWidth:`${e.column.width}px`,maxWidth:`${e.column.width}px`,right:e?.column?.sticky?`${h}px`:C.CELL_DEFAULT_RIGHT_OFFSET,paddingLeft:y>0&&b===0?`${y*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0},onMouseEnter:Le,onMouseLeave:Se,children:[o.jsx(We,{withLink:O?.isEnabled,linkTo:O?.linkTo||void 0,rowData:e?.row?.original,disableRowClick:e?.column?.disableRowClick,children:(Array.isArray(V)?V.includes(`${t}-${e?.column?.id}`):V===`${t}-${e?.column?.id}`)?o.jsxs("div",{className:"h-10 top-0 font-medium font-inter w-full absolute flex items-center px-4",children:[o.jsx("span",{className:"text-neutral-400 dark:text-black-400 truncate",children:(()=>{const r=`${t}-${e?.column?.id}`,u=typeof q=="object"?q?.[r]:q,d=e?.column?.type?.toLowerCase();if(d==="boolean")return u===!0||u==="true"||u==="True"?"Yes":"No";if((d==="date"||d==="datetime")&&u){const Ie=d==="datetime";return D.formatDate(u,{withTime:Ie,skipTimezone:!0})||String(u)}return u!=null?String(u):n})()}),o.jsx("div",{className:"ml-2 flex items-center gap-1.5",children:o.jsx(g.LoadingSpinnerIcon,{className:"spinner text-neutral-600 dark:text-white",size:12})})]}):v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled?o.jsx("div",{className:"h-10 w-full absolute top-0 left-0 flex items-center",style:{marginLeft:y>0&&b===0?`-${y*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0,width:y>0&&b===0?`calc(100% + ${y*C.CELL_INDENT_PER_LEVEL_PX}px)`:"100%"},children:o.jsx(Ke.InlineEditField,{cell:e,id:t,inlineEditing:v,cellRef:ce,handleCellValueChange:le,handleUpdateCellData:me,registerValidation:de})}):o.jsxs(o.Fragment,{children:[y>0&&b===0&&o.jsx("div",{className:"h-10 border-l border-neutral-300 dark:border-black-600 ml-2"}),o.jsx("div",{className:"min-h-6",children:o.jsx(U,{title:w&&e?.column?.type?.toLowerCase()!=="url"?w:void 0,hideTooltip:!w||e?.column?.type?.toLowerCase()==="url",delayShow:!0,placement:"top",children:o.jsxs("div",{className:k(`h-10 top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${T||"bg-white dark:bg-black-800"}`,m?"overflow-x-hidden overflow-y-visible":"overflow-x-hidden",{"border border-b-0 border-t-0 border-primary-600 dark:border-blue-800":ee?.includes(e.column.id)}),style:e?.column?.sticky&&ae?{boxShadow:Ne?C.CELL_STICKY_SHADOW_DARK:C.CELL_STICKY_SHADOW_LIGHT}:{},children:[G?.isCascading&&!we&&b===0&&o.jsx("div",{className:k("w-[22px] h-10 flex items-center px-4",`${T||"bg-white dark:bg-black-800"}`),id:"cascading",children:be>y&&(e?.row?.original?.__has_children||G?.showAllDropdown)&&o.jsx("div",{children:fe?o.jsx(g.LoadingSpinnerIcon,{className:"text-neutral-600 dark:text-white",size:8}):o.jsx("div",{children:xe?.[t]?.isOpen?o.jsx(g.KeyboardArrowDownIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{B(),r.stopPropagation()}}):o.jsx(g.KeyboardArrowRightFilledIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{B(),r.stopPropagation()}})})})}),e?.column?.type?.toLowerCase()==="url"&&w?o.jsx(U,{title:o.jsx("div",{onMouseEnter:()=>K(!0),onMouseLeave:()=>K(!1),children:o.jsx("a",{href:w,target:"_blank",rel:"noopener noreferrer",onClick:r=>r.stopPropagation(),children:o.jsxs("div",{className:"flex gap-1 items-center w-full",children:[o.jsx("div",{className:"w-4 h-4",children:o.jsx(g.LinkIcon,{height:16,width:16})}),o.jsx(ze.Typography,{variant:"medium",size:"small",className:"truncate",appearance:"custom",children:w}),o.jsx(Ae.OpenInNewRounded,{sx:{height:"16px",width:"16px",color:"#016DCF"}})]})})}),placement:"top",open:Me,onOpenChange:K,className:"block w-full min-w-0 overflow-hidden",children:o.jsx("div",{className:"w-full h-full flex items-center px-4 min-w-0 overflow-hidden text-primary-400",children:o.jsx("span",{ref:N,onMouseEnter:te,className:"truncate w-full",children:M&&oe&&!a.isValidElement(n)&&typeof n!="object"?M(n):n})})}):o.jsx(U,{title:E&&n&&!m?o.jsx("div",{onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),className:"max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll",children:String(n)}):void 0,placement:"top",delayShow:!0,hideTooltip:!!w,open:E&&!w&&!m?$e:void 0,onOpenChange:E&&!w&&!m?W:void 0,className:k("block w-full min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("div",{className:k("w-full h-full flex items-center px-4 min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("span",{ref:m?void 0:N,onMouseEnter:m?void 0:te,className:k(m?"flex min-w-0 max-w-full items-center justify-start gap-1":"truncate w-full"),children:M&&oe&&!a.isValidElement(n)&&typeof n!="object"?M(n):a.isValidElement(n)?typeof n.type=="string"?n:a.cloneElement(n,{...n.props,containerWidth:e.column.width}):n})})})]})})})]})}),F&&!P&&o.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-10 flex items-end pointer-events-none z-[5]",children:o.jsx("div",{className:"w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate",children:o.jsx("span",{className:"text-error-600 text-2xs font-medium leading-none",children:F})})}),_e&&!(v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled)&&o.jsx("div",{className:"absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10",children:o.jsx(g.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8})})]},b)},Ye=a.memo(Ue);exports.DataCell=Ye;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const o=require("react/jsx-runtime"),Oe=require("../../../../../hooks/useTheme.cjs.js"),D=require("../../../../../utils/formatters.cjs.js"),Ve=require("../../../../../constants/table.cjs.js"),qe=require("../../../../../providers/design-system-provider/hooks.cjs.js"),U=require("../../../../tooltip/Tooltip.cjs.js"),ze=require("../../../typography/Typography.cjs.js"),Ae=require("@mui/icons-material"),k=require("../../../../../_virtual/index.cjs.js"),a=require("react"),Fe=require("react-router-dom"),Ee=require("../../context.cjs.js"),Ke=require("./InlineEditField.cjs.js"),C=require("../../constants.cjs.js"),g=require("../../../../icon/icons.generated.cjs.js");let Y;const re=e=>{const t=Number(e);if(Number.isNaN(t)||e===null||e===void 0)return"0ms";if(t>=864e5){const w=Math.floor(t/864e5),f=Math.floor(t%864e5/36e5),i=Math.floor(t%36e5/6e4),b=Math.floor(t%6e4/1e3);return`${w}d ${f}h ${i}m ${b}s`}if(t>=36e5){const w=Math.floor(t/36e5),f=Math.floor(t%36e5/6e4),i=Math.floor(t%6e4/1e3);return`${w}h ${f}m ${i}s`}if(t>=6e4){const w=Math.floor(t/6e4),f=Math.floor(t%6e4/1e3);return`${w}m ${f}s`}return t>=1e3?`${(t/1e3).toFixed(2)}s`:`${t}ms`},We=({children:e,withLink:t,linkTo:w,rowData:f,disableRowClick:i})=>t&&!i?o.jsx(Fe.Link,{to:w?.(f?.id,f)||"",children:e}):e,Ue=({cell:e,id:t,nextWidthSum:w,isLastCell:f,rowHovering:i,index:b,isFirstStickyCell:ae,handleCellClick:se,currentData:x,highlightSubstring:M,is_read:ne,is_modified:ue,is_row_modified:ie,is_deleted:R,is_added:I,level:y,inlineEditing:v,isInlineEditing:c,setRowHovering:$,handleCellValueChange:le,cellRef:ce,handleUpdateCellData:me,registerValidation:de,loadingExpand:fe,toggleRowExpand:B,isDraggingOver:pe,isLoading:_,is_incomplete:X,pendingEdit:s,hasPendingEdit:l,pendingValidationError:we})=>{const{cascadingTableConfig:G,originalsOnly:he,maxLevel:be,showNewItem:ye,expandedRows:xe,rowLinkConfig:O,multiSelectConfig:ve,cellEditing:V,cellEditingValue:q,allowInlineEdit:H,fieldOperationLoading:ke,pendingEdits:Te,selectedRowId:z}=a.useContext(Ee.TableContext),Ce=z!=null&&String(z)===String(t),ge=qe.useTableConfig(),A=(e?.column?.key?e?.row?.original?.__cellMetadata?.[e.column.key]:void 0)?.is_locked??e?.column?.is_locked,F=(e?.column?.key?Te?.[t]?.[e.column.key]?.validationError:null)||we||null,P=v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled,_e=ke===`${t}-${e?.column?.id}`,{theme:je}=Oe.useTheme(),Ne=je==="dark",Le=a.useCallback(()=>$(t),[$,t]),Se=a.useCallback(()=>$(null),[$]),j=ge?.formatDuration,[n,p]=a.useState(e?.column?.dataType==="duration"&&e?.value?j?j(e.value):re(e.value):e.value),[h,J]=a.useState(null),[E,De]=a.useState(!1),[Me,Q]=a.useState(!1),[$e,Z]=a.useState(!1),N=a.useRef(null),L=a.useRef(),S=a.useRef(),{selectedColumnIds:ee=[]}=ve||{},oe=!Object.prototype.hasOwnProperty.call(e?.column?.meta??{},"shouldHighlight")||e?.column?.meta?.shouldHighlight,te=a.useCallback(()=>{N.current&&De(N.current.scrollWidth>N.current.clientWidth)},[]),K=a.useCallback(r=>{L.current&&clearTimeout(L.current),r?Q(!0):L.current=setTimeout(()=>Q(!1),200)},[]),W=a.useCallback(r=>{S.current&&clearTimeout(S.current),r?Z(!0):S.current=setTimeout(()=>Z(!1),200)},[]),T=k({"bg-amber-100 dark:bg-amber-900/30":l,"bg-neutral-100 dark:bg-black-600":i===t&&!c&&!l&&!(R||x?.is_deleted)&&!(I||x?.is_added),"bg-error-200 dark:bg-error-900":i===t&&!c&&!l&&(R||x?.is_deleted),"bg-success-100 dark:bg-success-800":i===t&&!c&&!l&&(I||x?.is_added),"bg-primary-50 dark:bg-black-700":!X&&!ne&&ye&&!_&&i!==t&&!c&&!l,"bg-warning-50 dark:bg-black-500":(X||ue||ie||x?.is_row_modified)&&!_&&i!==t&&!c&&!l,"bg-error-100 dark:bg-error-975":(R||x?.is_deleted)&&!_&&i!==t&&!c&&!l,"bg-success-50 dark:bg-success-900":(I||x?.is_added)&&!_&&i!==t&&!c&&!l,"bg-primary-50 dark:bg-primary-900":(pe||c)&&!l,"bg-primary-50 dark:bg-primary-800":ee?.includes(e.column.id)&&!c&&!l,"bg-primary-100 dark:bg-primary-950":Ce&&i!==t&&!c&&!l&&!_,[Ve.getTableRowBgClassNamesByStatus[e?.row?.original?.__rowBgStatus]]:e?.row?.original?.__rowBgStatus&&!c&&!l}),Re=r=>{e.column?.disableRowClick||se(r)};a.useEffect(()=>(e?.row?.original?.status==="running"&&e.column?.dataType==="duration"&&(Y=setInterval(()=>{const u=new Date(D.formatDate(e?.row?.original?.created_at||e?.row?.original?.executed_on,{withTime:!0,format:"yyyy-MM-dd HH:mm:ss"})),d=Math.abs(new Date().getTime()-new Date(u).getTime());p(j?j(d):re(d))},500)),()=>{Y&&clearInterval(Y)}),[n,e.value,e?.row?.original?.created_at,e?.row?.original?.executed_on,e?.row?.original?.status,e.column?.dataType,j]),a.useEffect(()=>{(e?.column?.tooltipCellKey||e?.column?.type?.toLowerCase()==="url")&&(e?.column?.type?.toLowerCase()==="url"?J(e?.value):J(e?.row?.original?.[String(e?.column?.tooltipCellKey)]))},[e?.column?.tooltipCellKey,e?.row?.original,e?.column?.type,e?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="currency")if(s?.value!==void 0){const r=e?.row?.original?.__rawData,u=e?.column?.Header,d=s?.meta?.currency_code||r?.[u]?.currency_code||"USD";p(D.formatCurrency(s.value,d))}else{const r=e?.row?.original?.__rawData,u=e?.column?.Header;p(D.formatCurrency(e?.value,r?.[u]?.currency_code||"USD"))}},[e?.value,e?.column?.type,e?.column?.Header,e?.row?.original?.__rawData,s?.value,s?.meta?.currency_code]),a.useEffect(()=>{e?.column?.type?.toLowerCase()==="percentage"&&(s?.value!==void 0?p(s.value?.toString()+"%"||""):p(e?.value?.toString()+"%"||""))},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";if(["date","datetime"].includes(r))if(s?.value!==void 0){const u=r==="datetime",d=D.formatDate(s.value,{withTime:u,skipTimezone:!0});p(d||s.value)}else p(e.value)},[e?.value,e?.column?.type,s?.value]),a.useEffect(()=>{const r=e?.column?.type?.toLowerCase()||"";["currency","percentage","duration","boolean","date","datetime"].includes(r)||(s?.value!==void 0?p(s.value):e?.column?.dataType!=="duration"&&p(e.value))},[e?.value,e?.column?.type,e?.column?.dataType,s?.value]),a.useEffect(()=>{if(e?.column?.type?.toLowerCase()==="boolean"&&H){const r=s?.value!==void 0?s.value:e?.value;p(r===!0||r==="true"||r==="True"||r==="Yes"||r===1?"Yes":"No")}},[e?.value,e?.column?.type,H,s?.value]),a.useEffect(()=>()=>{L.current&&clearTimeout(L.current),S.current&&clearTimeout(S.current)},[]);const m=a.isValidElement(n);return o.jsxs("td",{id:e.value,"data-column-key":e?.column?.key,...e.getCellProps(),onClick:O?.isEnabled?void 0:Re,className:k("h-row",{"sticky left-0":e?.column?.sticky,relative:!e?.column?.sticky,"w-full":f,"overflow-visible":v===e.column.key,"overflow-x-hidden overflow-y-visible":v!==e.column.key&&m,"overflow-hidden":v!==e.column.key&&!m},F&&!P?"outline outline-2 outline-error-500 -outline-offset-2 z-[5]":"",`${T||"bg-white dark:bg-black-800"}`),style:{minWidth:`${e.column.width}px`,maxWidth:`${e.column.width}px`,right:e?.column?.sticky?`${w}px`:C.CELL_DEFAULT_RIGHT_OFFSET,paddingLeft:y>0&&b===0?`${y*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0},onMouseEnter:Le,onMouseLeave:Se,children:[o.jsx(We,{withLink:O?.isEnabled,linkTo:O?.linkTo||void 0,rowData:e?.row?.original,disableRowClick:e?.column?.disableRowClick,children:(Array.isArray(V)?V.includes(`${t}-${e?.column?.id}`):V===`${t}-${e?.column?.id}`)?o.jsxs("div",{className:"h-row top-0 font-medium font-inter w-full absolute flex items-center px-4",children:[o.jsx("span",{className:"text-neutral-400 dark:text-black-400 truncate",children:(()=>{const r=`${t}-${e?.column?.id}`,u=typeof q=="object"?q?.[r]:q,d=e?.column?.type?.toLowerCase();if(d==="boolean")return u===!0||u==="true"||u==="True"?"Yes":"No";if((d==="date"||d==="datetime")&&u){const Ie=d==="datetime";return D.formatDate(u,{withTime:Ie,skipTimezone:!0})||String(u)}return u!=null?String(u):n})()}),o.jsx("div",{className:"ml-2 flex items-center gap-1.5",children:o.jsx(g.LoadingSpinnerIcon,{className:"spinner text-neutral-600 dark:text-white",size:12})})]}):v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled?o.jsx("div",{className:"h-row w-full absolute top-0 left-0 flex items-center",style:{marginLeft:y>0&&b===0?`-${y*C.CELL_INDENT_PER_LEVEL_PX}px`:void 0,width:y>0&&b===0?`calc(100% + ${y*C.CELL_INDENT_PER_LEVEL_PX}px)`:"100%"},children:o.jsx(Ke.InlineEditField,{cell:e,id:t,inlineEditing:v,cellRef:ce,handleCellValueChange:le,handleUpdateCellData:me,registerValidation:de})}):o.jsxs(o.Fragment,{children:[y>0&&b===0&&o.jsx("div",{className:"h-row border-l border-neutral-300 dark:border-black-600 ml-2"}),o.jsx("div",{className:"min-h-6",children:o.jsx(U,{title:h&&e?.column?.type?.toLowerCase()!=="url"?h:void 0,hideTooltip:!h||e?.column?.type?.toLowerCase()==="url",delayShow:!0,placement:"top",children:o.jsxs("div",{className:k(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${T||"bg-white dark:bg-black-800"}`,m?"overflow-x-hidden overflow-y-visible":"overflow-x-hidden",{"border border-b-0 border-t-0 border-primary-600 dark:border-blue-800":ee?.includes(e.column.id)}),style:e?.column?.sticky&&ae?{boxShadow:Ne?C.CELL_STICKY_SHADOW_DARK:C.CELL_STICKY_SHADOW_LIGHT}:{},children:[G?.isCascading&&!he&&b===0&&o.jsx("div",{className:k("w-[22px] h-row flex items-center px-4",`${T||"bg-white dark:bg-black-800"}`),id:"cascading",children:be>y&&(e?.row?.original?.__has_children||G?.showAllDropdown)&&o.jsx("div",{children:fe?o.jsx(g.LoadingSpinnerIcon,{className:"text-neutral-600 dark:text-white",size:8}):o.jsx("div",{children:xe?.[t]?.isOpen?o.jsx(g.KeyboardArrowDownIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{B(),r.stopPropagation()}}):o.jsx(g.KeyboardArrowRightFilledIcon,{size:20,className:"text-neutral-400 dark:text-neutral-400",onClick:r=>{B(),r.stopPropagation()}})})})}),e?.column?.type?.toLowerCase()==="url"&&h?o.jsx(U,{title:o.jsx("div",{onMouseEnter:()=>K(!0),onMouseLeave:()=>K(!1),children:o.jsx("a",{href:h,target:"_blank",rel:"noopener noreferrer",onClick:r=>r.stopPropagation(),children:o.jsxs("div",{className:"flex gap-1 items-center w-full",children:[o.jsx("div",{className:"w-4 h-4",children:o.jsx(g.LinkIcon,{height:16,width:16})}),o.jsx(ze.Typography,{variant:"medium",size:"small",className:"truncate",appearance:"custom",children:h}),o.jsx(Ae.OpenInNewRounded,{sx:{height:"16px",width:"16px",color:"#016DCF"}})]})})}),placement:"top",open:Me,onOpenChange:K,className:"block w-full min-w-0 overflow-hidden",children:o.jsx("div",{className:"w-full h-full flex items-center px-4 min-w-0 overflow-hidden text-primary-400",children:o.jsx("span",{ref:N,onMouseEnter:te,className:"truncate w-full",children:M&&oe&&!a.isValidElement(n)&&typeof n!="object"?M(n):n})})}):o.jsx(U,{title:E&&n&&!m?o.jsx("div",{onMouseEnter:()=>W(!0),onMouseLeave:()=>W(!1),className:"max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll",children:String(n)}):void 0,placement:"top",delayShow:!0,hideTooltip:!!h,open:E&&!h&&!m?$e:void 0,onOpenChange:E&&!h&&!m?W:void 0,className:k("block w-full min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("div",{className:k("w-full h-full flex items-center px-4 min-w-0",m?"overflow-x-hidden overflow-y-visible":"overflow-hidden"),children:o.jsx("span",{ref:m?void 0:N,onMouseEnter:m?void 0:te,className:k(m?"flex min-w-0 max-w-full items-center justify-start gap-1":"truncate w-full"),children:M&&oe&&!a.isValidElement(n)&&typeof n!="object"?M(n):a.isValidElement(n)?typeof n.type=="string"?n:a.cloneElement(n,{...n.props,containerWidth:e.column.width}):n})})})]})})})]})}),F&&!P&&o.jsx("div",{className:"absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]",children:o.jsx("div",{className:"w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate",children:o.jsx("span",{className:"text-error-600 text-2xs font-medium leading-none",children:F})})}),_e&&!(v===e.column.key&&e?.column?.canEdit&&!A&&!e?.column?.is_disabled)&&o.jsx("div",{className:"absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10",children:o.jsx(g.LoadingSpinnerIcon,{className:"text-primary-600 dark:text-white",size:8})})]},b)},Ye=a.memo(Ue);exports.DataCell=Ye;
2
2
  //# sourceMappingURL=DataCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"DataCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-100 dark:bg-primary-950': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-10', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-10 top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-10 w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-10 border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-10 top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-10 flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-full flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-full flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-10 flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
1
+ {"version":3,"file":"DataCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-100 dark:bg-primary-950': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-full flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-full flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}