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

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 (202) hide show
  1. package/dist/components/button/Button.cjs.js +5 -5
  2. package/dist/components/button/Button.cjs.js.map +1 -1
  3. package/dist/components/button/Button.es.js +18 -18
  4. package/dist/components/button/Button.es.js.map +1 -1
  5. package/dist/components/button/IconButton.cjs.js +1 -1
  6. package/dist/components/button/IconButton.cjs.js.map +1 -1
  7. package/dist/components/button/IconButton.es.js +8 -8
  8. package/dist/components/button/IconButton.es.js.map +1 -1
  9. package/dist/components/buttons/option-button/OptionButton.cjs.js +1 -1
  10. package/dist/components/buttons/option-button/OptionButton.cjs.js.map +1 -1
  11. package/dist/components/buttons/option-button/OptionButton.es.js +1 -1
  12. package/dist/components/buttons/option-button/OptionButton.es.js.map +1 -1
  13. package/dist/components/data-display/comparison/components/Header.cjs.js +1 -1
  14. package/dist/components/data-display/comparison/components/Header.cjs.js.map +1 -1
  15. package/dist/components/data-display/comparison/components/Header.es.js +13 -13
  16. package/dist/components/data-display/comparison/components/Header.es.js.map +1 -1
  17. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.cjs.js +1 -1
  18. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.cjs.js.map +1 -1
  19. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.es.js +57 -56
  20. package/dist/components/data-display/infinite-table/PendingEditsFloatingBar.es.js.map +1 -1
  21. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js +1 -1
  22. package/dist/components/data-display/infinite-table/body/cell/ActionCell.cjs.js.map +1 -1
  23. package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js +11 -11
  24. package/dist/components/data-display/infinite-table/body/cell/ActionCell.es.js.map +1 -1
  25. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js +1 -1
  26. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.cjs.js.map +1 -1
  27. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js +44 -43
  28. package/dist/components/data-display/infinite-table/body/cell/CheckboxCell.es.js.map +1 -1
  29. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
  30. package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
  31. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +148 -145
  32. package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
  33. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js +1 -1
  34. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.cjs.js.map +1 -1
  35. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js +12 -11
  36. package/dist/components/data-display/infinite-table/body/cell/LoaderCell.es.js.map +1 -1
  37. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js +1 -1
  38. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.cjs.js.map +1 -1
  39. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js +9 -9
  40. package/dist/components/data-display/infinite-table/body/cell/PendingEditCell.es.js.map +1 -1
  41. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js +1 -1
  42. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.cjs.js.map +1 -1
  43. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js +3 -3
  44. package/dist/components/data-display/infinite-table/body/cell/RowActionCell.es.js.map +1 -1
  45. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js +1 -1
  46. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.cjs.js.map +1 -1
  47. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js +24 -24
  48. package/dist/components/data-display/infinite-table/body/cell/RowOptionsCell.es.js.map +1 -1
  49. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js +1 -1
  50. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.cjs.js.map +1 -1
  51. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js +1 -1
  52. package/dist/components/data-display/infinite-table/body/cell/SpinnerCell.es.js.map +1 -1
  53. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js +1 -1
  54. package/dist/components/data-display/infinite-table/body/rows/row.cjs.js.map +1 -1
  55. package/dist/components/data-display/infinite-table/body/rows/row.es.js +286 -281
  56. package/dist/components/data-display/infinite-table/body/rows/row.es.js.map +1 -1
  57. package/dist/components/data-display/infinite-table/constants.cjs.js +2 -0
  58. package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -0
  59. package/dist/components/data-display/infinite-table/constants.d.ts +41 -0
  60. package/dist/components/data-display/infinite-table/constants.es.js +27 -0
  61. package/dist/components/data-display/infinite-table/constants.es.js.map +1 -0
  62. package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
  63. package/dist/components/data-display/infinite-table/context.d.ts +1 -0
  64. package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
  65. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js +1 -1
  66. package/dist/components/data-display/infinite-table/head/CheckAll.cjs.js.map +1 -1
  67. package/dist/components/data-display/infinite-table/head/CheckAll.es.js +1 -1
  68. package/dist/components/data-display/infinite-table/head/CheckAll.es.js.map +1 -1
  69. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js +1 -1
  70. package/dist/components/data-display/infinite-table/head/cell/index.cjs.js.map +1 -1
  71. package/dist/components/data-display/infinite-table/head/cell/index.es.js +37 -36
  72. package/dist/components/data-display/infinite-table/head/cell/index.es.js.map +1 -1
  73. package/dist/components/data-display/infinite-table/head/index.cjs.js +1 -1
  74. package/dist/components/data-display/infinite-table/head/index.cjs.js.map +1 -1
  75. package/dist/components/data-display/infinite-table/head/index.es.js +20 -20
  76. package/dist/components/data-display/infinite-table/head/index.es.js.map +1 -1
  77. package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
  78. package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
  79. package/dist/components/data-display/infinite-table/index.d.ts +1 -1
  80. package/dist/components/data-display/infinite-table/index.es.js +410 -406
  81. package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
  82. package/dist/components/data-display/infinite-table/types.d.ts +22 -0
  83. package/dist/components/data-display/tag/Tag.cjs.js +1 -1
  84. package/dist/components/data-display/tag/Tag.cjs.js.map +1 -1
  85. package/dist/components/data-display/tag/Tag.es.js +9 -11
  86. package/dist/components/data-display/tag/Tag.es.js.map +1 -1
  87. package/dist/components/floating-bar/FloatingBar.cjs.js +1 -1
  88. package/dist/components/floating-bar/FloatingBar.cjs.js.map +1 -1
  89. package/dist/components/floating-bar/FloatingBar.es.js +9 -9
  90. package/dist/components/floating-bar/FloatingBar.es.js.map +1 -1
  91. package/dist/components/forms/base-input-field/BaseInputField.cjs.js +2 -2
  92. package/dist/components/forms/base-input-field/BaseInputField.cjs.js.map +1 -1
  93. package/dist/components/forms/base-input-field/BaseInputField.es.js +42 -40
  94. package/dist/components/forms/base-input-field/BaseInputField.es.js.map +1 -1
  95. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js +1 -1
  96. package/dist/components/forms/creatable-select/CreatableSelect.cjs.js.map +1 -1
  97. package/dist/components/forms/creatable-select/CreatableSelect.es.js +15 -14
  98. package/dist/components/forms/creatable-select/CreatableSelect.es.js.map +1 -1
  99. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
  100. package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
  101. package/dist/components/forms/currency-input/CurrencyInputField.es.js +65 -57
  102. package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
  103. package/dist/components/forms/date-time-field/DateTimeField.cjs.js +1 -1
  104. package/dist/components/forms/date-time-field/DateTimeField.cjs.js.map +1 -1
  105. package/dist/components/forms/date-time-field/DateTimeField.es.js +33 -33
  106. package/dist/components/forms/date-time-field/DateTimeField.es.js.map +1 -1
  107. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js +1 -1
  108. package/dist/components/forms/debounce-input/DebounceInputField.cjs.js.map +1 -1
  109. package/dist/components/forms/debounce-input/DebounceInputField.es.js +2 -2
  110. package/dist/components/forms/debounce-input/DebounceInputField.es.js.map +1 -1
  111. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js +1 -1
  112. package/dist/components/forms/dynamic-data-input/DynamicDataInput.cjs.js.map +1 -1
  113. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js +7 -7
  114. package/dist/components/forms/dynamic-data-input/DynamicDataInput.es.js.map +1 -1
  115. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js +1 -1
  116. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.cjs.js.map +1 -1
  117. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js +19 -17
  118. package/dist/components/forms/dynamic-data-input/DynamicDataInputField.es.js.map +1 -1
  119. package/dist/components/forms/field-options/Item.cjs.js +1 -1
  120. package/dist/components/forms/field-options/Item.cjs.js.map +1 -1
  121. package/dist/components/forms/field-options/Item.es.js +5 -5
  122. package/dist/components/forms/field-options/Item.es.js.map +1 -1
  123. package/dist/components/forms/formula-input/FormulaInput.cjs.js +1 -1
  124. package/dist/components/forms/formula-input/FormulaInput.cjs.js.map +1 -1
  125. package/dist/components/forms/formula-input/FormulaInput.es.js +10 -10
  126. package/dist/components/forms/formula-input/FormulaInput.es.js.map +1 -1
  127. package/dist/components/forms/icon-picker/IconPicker.cjs.js +1 -1
  128. package/dist/components/forms/icon-picker/IconPicker.cjs.js.map +1 -1
  129. package/dist/components/forms/icon-picker/IconPicker.es.js +57 -42
  130. package/dist/components/forms/icon-picker/IconPicker.es.js.map +1 -1
  131. package/dist/components/forms/input-field/InputField.cjs.js.map +1 -1
  132. package/dist/components/forms/input-field/InputField.es.js.map +1 -1
  133. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js +1 -1
  134. package/dist/components/forms/master-data-input/MasterDataInputField.cjs.js.map +1 -1
  135. package/dist/components/forms/master-data-input/MasterDataInputField.es.js +60 -54
  136. package/dist/components/forms/master-data-input/MasterDataInputField.es.js.map +1 -1
  137. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js +3 -3
  138. package/dist/components/forms/md-input/RichMarkdownInput.cjs.js.map +1 -1
  139. package/dist/components/forms/md-input/RichMarkdownInput.es.js +63 -63
  140. package/dist/components/forms/md-input/RichMarkdownInput.es.js.map +1 -1
  141. package/dist/components/forms/number-input-field/NumberInputField.cjs.js +1 -1
  142. package/dist/components/forms/number-input-field/NumberInputField.cjs.js.map +1 -1
  143. package/dist/components/forms/number-input-field/NumberInputField.es.js +5 -5
  144. package/dist/components/forms/number-input-field/NumberInputField.es.js.map +1 -1
  145. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js +2 -2
  146. package/dist/components/forms/percentage-input/PercentageInputField.cjs.js.map +1 -1
  147. package/dist/components/forms/percentage-input/PercentageInputField.es.js +20 -20
  148. package/dist/components/forms/percentage-input/PercentageInputField.es.js.map +1 -1
  149. package/dist/components/forms/search-bar/SearchBar.cjs.js +1 -1
  150. package/dist/components/forms/search-bar/SearchBar.cjs.js.map +1 -1
  151. package/dist/components/forms/search-bar/SearchBar.es.js +16 -16
  152. package/dist/components/forms/search-bar/SearchBar.es.js.map +1 -1
  153. package/dist/components/forms/select-field/SelectField.cjs.js +2 -2
  154. package/dist/components/forms/select-field/SelectField.cjs.js.map +1 -1
  155. package/dist/components/forms/select-field/SelectField.d.ts +0 -4
  156. package/dist/components/forms/select-field/SelectField.es.js +203 -202
  157. package/dist/components/forms/select-field/SelectField.es.js.map +1 -1
  158. package/dist/components/forms/text-area-field/TextAreaField.cjs.js +1 -1
  159. package/dist/components/forms/text-area-field/TextAreaField.cjs.js.map +1 -1
  160. package/dist/components/forms/text-area-field/TextAreaField.es.js +14 -14
  161. package/dist/components/forms/text-area-field/TextAreaField.es.js.map +1 -1
  162. package/dist/components/forms/toggle/Toggle.cjs.js +1 -1
  163. package/dist/components/forms/toggle/Toggle.cjs.js.map +1 -1
  164. package/dist/components/forms/toggle/Toggle.es.js +59 -65
  165. package/dist/components/forms/toggle/Toggle.es.js.map +1 -1
  166. package/dist/components/navigation/accordion/Accordion.cjs.js +1 -1
  167. package/dist/components/navigation/accordion/Accordion.cjs.js.map +1 -1
  168. package/dist/components/navigation/accordion/Accordion.es.js +5 -5
  169. package/dist/components/navigation/accordion/Accordion.es.js.map +1 -1
  170. package/dist/components/navigation/stepper/Stepper.cjs.js +1 -1
  171. package/dist/components/navigation/stepper/Stepper.cjs.js.map +1 -1
  172. package/dist/components/navigation/stepper/Stepper.es.js +1 -1
  173. package/dist/components/navigation/stepper/Stepper.es.js.map +1 -1
  174. package/dist/components/navigation/tabs/TabOptions.cjs.js +1 -1
  175. package/dist/components/navigation/tabs/TabOptions.cjs.js.map +1 -1
  176. package/dist/components/navigation/tabs/TabOptions.es.js +15 -15
  177. package/dist/components/navigation/tabs/TabOptions.es.js.map +1 -1
  178. package/dist/components/navigation/tabs/TabSwitch.cjs.js +1 -1
  179. package/dist/components/navigation/tabs/TabSwitch.cjs.js.map +1 -1
  180. package/dist/components/navigation/tabs/TabSwitch.es.js +7 -7
  181. package/dist/components/navigation/tabs/TabSwitch.es.js.map +1 -1
  182. package/dist/components/navigation/tabs/Tabs.cjs.js +1 -1
  183. package/dist/components/navigation/tabs/Tabs.cjs.js.map +1 -1
  184. package/dist/components/navigation/tabs/Tabs.es.js +1 -1
  185. package/dist/components/navigation/tabs/Tabs.es.js.map +1 -1
  186. package/dist/components/tooltip/Tooltip.cjs.js +1 -1
  187. package/dist/components/tooltip/Tooltip.cjs.js.map +1 -1
  188. package/dist/components/tooltip/Tooltip.es.js +19 -19
  189. package/dist/components/tooltip/Tooltip.es.js.map +1 -1
  190. package/dist/components/user-avatar/UserAvatar.cjs.js +1 -1
  191. package/dist/components/user-avatar/UserAvatar.cjs.js.map +1 -1
  192. package/dist/components/user-avatar/UserAvatar.d.ts +1 -1
  193. package/dist/components/user-avatar/UserAvatar.es.js +38 -40
  194. package/dist/components/user-avatar/UserAvatar.es.js.map +1 -1
  195. package/dist/components/user-avatar/constants.cjs.js +1 -1
  196. package/dist/components/user-avatar/constants.cjs.js.map +1 -1
  197. package/dist/components/user-avatar/constants.d.ts +0 -1
  198. package/dist/components/user-avatar/constants.es.js +9 -10
  199. package/dist/components/user-avatar/constants.es.js.map +1 -1
  200. package/dist/design-system.css +1 -1
  201. package/dist/index.d.ts +1 -1
  202. package/package.json +3 -2
@@ -1 +1 @@
1
- {"version":3,"file":"DataCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\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 } = useContext(TableContext);\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 [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` : '0px', paddingLeft: level > 0 && index === 0 ? `${level * 16}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 * 16}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * 16}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 ? '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)' : '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)'}` } : {}}>\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","useContext","TableContext","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","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
1
+ {"version":3,"file":"DataCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-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-[10px] font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),o=require("../../../../../_virtual/index.cjs.js"),m=require("react"),h=({cell:t,id:r,nextWidthSum:s,isLastCell:a,rowHovering:n,index:i,isFirstStickyCell:c})=>{const e=t?.column?.sticky,d=o("relative h-10",{"bg-neutral-100 dark:bg-black-600":n===r,"sticky left-0 bg-white dark:bg-black-600":e,"w-full":a}),b=o("h-10 top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center",{"bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700":e}),u=e&&c?{boxShadow:"-8px 0px 8px rgba(0, 0, 0, 0.02)"}:{},x={minWidth:`${t.column.width}px`,maxWidth:`${t.column.width}px`,right:e?`${s}px`:"0px"};return l.jsx("td",{className:d,role:"cell",style:x,children:l.jsx("div",{className:b,style:u,children:l.jsx("div",{className:"skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded"})})},i)},p=m.memo(h);exports.LoaderCell=p;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react/jsx-runtime"),o=require("../../../../../_virtual/index.cjs.js"),m=require("react"),h=require("../../constants.cjs.js"),w=({cell:t,id:r,nextWidthSum:s,isLastCell:n,rowHovering:a,index:i,isFirstStickyCell:c})=>{const e=t?.column?.sticky,d=o("relative h-row",{"bg-neutral-100 dark:bg-black-600":a===r,"sticky left-0 bg-white dark:bg-black-600":e,"w-full":n}),b=o("h-row top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center",{"bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700":e}),u=e&&c?{boxShadow:"-8px 0px 8px rgba(0, 0, 0, 0.02)"}:{},x={minWidth:`${t.column.width}px`,maxWidth:`${t.column.width}px`,right:e?`${s}px`:h.CELL_DEFAULT_RIGHT_OFFSET};return l.jsx("td",{className:d,role:"cell",style:x,children:l.jsx("div",{className:b,style:u,children:l.jsx("div",{className:"skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded"})})},i)},k=m.memo(w);exports.LoaderCell=k;
2
2
  //# sourceMappingURL=LoaderCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoaderCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/LoaderCell.tsx"],"sourcesContent":["import cn from 'classnames';\nimport React from 'react';\n\ntype TProps = {\n cell: {\n column: {\n width: number;\n sticky?: boolean;\n sequence?: number;\n };\n };\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n};\n\nconst _LoaderCell: React.FC<TProps> = ({ cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell }) => {\n const isSticky = cell?.column?.sticky;\n\n const cellClasses = cn('relative h-10', {\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id,\n 'sticky left-0 bg-white dark:bg-black-600': isSticky,\n 'w-full': isLastCell,\n });\n\n const contentClasses = cn(\n 'h-10 top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center',\n {\n 'bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700': isSticky,\n },\n );\n\n const boxShadowStyle =\n isSticky && isFirstStickyCell\n ? { boxShadow: '-8px 0px 8px rgba(0, 0, 0, 0.02)' }\n : {};\n\n const cellStyle = {\n minWidth: `${cell.column.width}px`,\n maxWidth: `${cell.column.width}px`,\n right: isSticky ? `${nextWidthSum}px` : '0px',\n };\n\n return (\n <td key={index} className={cellClasses} role='cell' style={cellStyle}>\n <div className={contentClasses} style={boxShadowStyle}>\n <div className='skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded' />\n </div>\n </td>\n );\n};\n\nexport const LoaderCell = React.memo(_LoaderCell);\n"],"names":["_LoaderCell","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","isSticky","cellClasses","cn","contentClasses","boxShadowStyle","cellStyle","jsx","LoaderCell","React"],"mappings":"0LAmBMA,EAAgC,CAAC,CAAE,KAAAC,EAAM,GAAAC,EAAI,aAAAC,EAAc,WAAAC,EAAY,YAAAC,EAAA,MAAaC,EAAO,kBAAAC,KAAwB,CACvH,MAAMC,EAAWP,GAAM,QAAQ,OAEzBQ,EAAcC,EAAG,gBAAiB,CACtC,mCAAoCL,IAAgBH,EACpD,2CAA4CM,EAC5C,SAAUJ,CAAA,CACX,EAEKO,EAAiBD,EACrB,6IACA,CACE,+EAAgFF,CAAA,CAClF,EAGII,EACJJ,GAAYD,EACR,CAAE,UAAW,kCAAA,EACb,CAAA,EAEAM,EAAY,CAChB,SAAU,GAAGZ,EAAK,OAAO,KAAK,KAC9B,SAAU,GAAGA,EAAK,OAAO,KAAK,KAC9B,MAAOO,EAAW,GAAGL,CAAY,KAAO,KAAA,EAG1C,OACEW,MAAC,MAAe,UAAWL,EAAa,KAAK,OAAO,MAAOI,EACzD,SAAAC,EAAAA,IAAC,MAAA,CAAI,UAAWH,EAAgB,MAAOC,EACrC,SAAAE,EAAAA,IAAC,MAAA,CAAI,UAAU,0FAAA,CAA2F,EAC5G,GAHOR,CAIT,CAEJ,EAEaS,EAAaC,EAAM,KAAKhB,CAAW"}
1
+ {"version":3,"file":"LoaderCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/LoaderCell.tsx"],"sourcesContent":["import cn from 'classnames';\nimport React from 'react';\n\nimport { CELL_DEFAULT_RIGHT_OFFSET } from '../../constants';\n\ntype TProps = {\n cell: {\n column: {\n width: number;\n sticky?: boolean;\n sequence?: number;\n };\n };\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n};\n\nconst _LoaderCell: React.FC<TProps> = ({ cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell }) => {\n const isSticky = cell?.column?.sticky;\n\n const cellClasses = cn('relative h-row', {\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id,\n 'sticky left-0 bg-white dark:bg-black-600': isSticky,\n 'w-full': isLastCell,\n });\n\n const contentClasses = cn(\n 'h-row top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center',\n {\n 'bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700': isSticky,\n },\n );\n\n const boxShadowStyle =\n isSticky && isFirstStickyCell\n ? { boxShadow: '-8px 0px 8px rgba(0, 0, 0, 0.02)' }\n : {};\n\n const cellStyle = {\n minWidth: `${cell.column.width}px`,\n maxWidth: `${cell.column.width}px`,\n right: isSticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET,\n };\n\n return (\n <td key={index} className={cellClasses} role='cell' style={cellStyle}>\n <div className={contentClasses} style={boxShadowStyle}>\n <div className='skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded' />\n </div>\n </td>\n );\n};\n\nexport const LoaderCell = React.memo(_LoaderCell);\n"],"names":["_LoaderCell","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","isSticky","cellClasses","cn","contentClasses","boxShadowStyle","cellStyle","CELL_DEFAULT_RIGHT_OFFSET","jsx","LoaderCell","React"],"mappings":"8NAqBMA,EAAgC,CAAC,CAAE,KAAAC,EAAM,GAAAC,EAAI,aAAAC,EAAc,WAAAC,EAAY,YAAAC,EAAA,MAAaC,EAAO,kBAAAC,KAAwB,CACvH,MAAMC,EAAWP,GAAM,QAAQ,OAEzBQ,EAAcC,EAAG,iBAAkB,CACvC,mCAAoCL,IAAgBH,EACpD,2CAA4CM,EAC5C,SAAUJ,CAAA,CACX,EAEKO,EAAiBD,EACrB,8IACA,CACE,+EAAgFF,CAAA,CAClF,EAGII,EACJJ,GAAYD,EACR,CAAE,UAAW,kCAAA,EACb,CAAA,EAEAM,EAAY,CAChB,SAAU,GAAGZ,EAAK,OAAO,KAAK,KAC9B,SAAU,GAAGA,EAAK,OAAO,KAAK,KAC9B,MAAOO,EAAW,GAAGL,CAAY,KAAOW,EAAAA,yBAAA,EAG1C,OACEC,MAAC,MAAe,UAAWN,EAAa,KAAK,OAAO,MAAOI,EACzD,SAAAE,EAAAA,IAAC,MAAA,CAAI,UAAWJ,EAAgB,MAAOC,EACrC,SAAAG,EAAAA,IAAC,MAAA,CAAI,UAAU,0FAAA,CAA2F,EAC5G,GAHOT,CAIT,CAEJ,EAEaU,EAAaC,EAAM,KAAKjB,CAAW"}
@@ -1,24 +1,25 @@
1
1
  import { jsx as l } from "react/jsx-runtime";
2
2
  import o from "../../../../../_virtual/index.es.js";
3
- import x from "react";
4
- const h = ({ cell: t, id: r, nextWidthSum: a, isLastCell: s, rowHovering: n, index: c, isFirstStickyCell: i }) => {
5
- const e = t?.column?.sticky, d = o("relative h-10", {
6
- "bg-neutral-100 dark:bg-black-600": n === r,
3
+ import h from "react";
4
+ import { CELL_DEFAULT_RIGHT_OFFSET as w } from "../../constants.es.js";
5
+ const x = ({ cell: t, id: r, nextWidthSum: a, isLastCell: s, rowHovering: i, index: n, isFirstStickyCell: c }) => {
6
+ const e = t?.column?.sticky, d = o("relative h-row", {
7
+ "bg-neutral-100 dark:bg-black-600": i === r,
7
8
  "sticky left-0 bg-white dark:bg-black-600": e,
8
9
  "w-full": s
9
- }), b = o(
10
- "h-10 top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center",
10
+ }), m = o(
11
+ "h-row top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center",
11
12
  {
12
13
  "bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700": e
13
14
  }
14
- ), m = e && i ? { boxShadow: "-8px 0px 8px rgba(0, 0, 0, 0.02)" } : {}, p = {
15
+ ), b = e && c ? { boxShadow: "-8px 0px 8px rgba(0, 0, 0, 0.02)" } : {}, p = {
15
16
  minWidth: `${t.column.width}px`,
16
17
  maxWidth: `${t.column.width}px`,
17
- right: e ? `${a}px` : "0px"
18
+ right: e ? `${a}px` : w
18
19
  };
19
- return /* @__PURE__ */ l("td", { className: d, role: "cell", style: p, children: /* @__PURE__ */ l("div", { className: b, style: m, children: /* @__PURE__ */ l("div", { className: "skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded" }) }) }, c);
20
- }, f = x.memo(h);
20
+ return /* @__PURE__ */ l("td", { className: d, role: "cell", style: p, children: /* @__PURE__ */ l("div", { className: m, style: b, children: /* @__PURE__ */ l("div", { className: "skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded" }) }) }, n);
21
+ }, y = h.memo(x);
21
22
  export {
22
- f as LoaderCell
23
+ y as LoaderCell
23
24
  };
24
25
  //# sourceMappingURL=LoaderCell.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"LoaderCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/LoaderCell.tsx"],"sourcesContent":["import cn from 'classnames';\nimport React from 'react';\n\ntype TProps = {\n cell: {\n column: {\n width: number;\n sticky?: boolean;\n sequence?: number;\n };\n };\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n};\n\nconst _LoaderCell: React.FC<TProps> = ({ cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell }) => {\n const isSticky = cell?.column?.sticky;\n\n const cellClasses = cn('relative h-10', {\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id,\n 'sticky left-0 bg-white dark:bg-black-600': isSticky,\n 'w-full': isLastCell,\n });\n\n const contentClasses = cn(\n 'h-10 top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center',\n {\n 'bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700': isSticky,\n },\n );\n\n const boxShadowStyle =\n isSticky && isFirstStickyCell\n ? { boxShadow: '-8px 0px 8px rgba(0, 0, 0, 0.02)' }\n : {};\n\n const cellStyle = {\n minWidth: `${cell.column.width}px`,\n maxWidth: `${cell.column.width}px`,\n right: isSticky ? `${nextWidthSum}px` : '0px',\n };\n\n return (\n <td key={index} className={cellClasses} role='cell' style={cellStyle}>\n <div className={contentClasses} style={boxShadowStyle}>\n <div className='skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded' />\n </div>\n </td>\n );\n};\n\nexport const LoaderCell = React.memo(_LoaderCell);\n"],"names":["_LoaderCell","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","isSticky","cellClasses","cn","contentClasses","boxShadowStyle","cellStyle","jsx","LoaderCell","React"],"mappings":";;;AAmBA,MAAMA,IAAgC,CAAC,EAAE,MAAAC,GAAM,IAAAC,GAAI,cAAAC,GAAc,YAAAC,GAAY,aAAAC,GAAa,OAAAC,GAAO,mBAAAC,QAAwB;AACvH,QAAMC,IAAWP,GAAM,QAAQ,QAEzBQ,IAAcC,EAAG,iBAAiB;AAAA,IACtC,oCAAoCL,MAAgBH;AAAA,IACpD,4CAA4CM;AAAA,IAC5C,UAAUJ;AAAA,EAAA,CACX,GAEKO,IAAiBD;AAAA,IACrB;AAAA,IACA;AAAA,MACE,gFAAgFF;AAAA,IAAA;AAAA,EAClF,GAGII,IACJJ,KAAYD,IACR,EAAE,WAAW,mCAAA,IACb,CAAA,GAEAM,IAAY;AAAA,IAChB,UAAU,GAAGZ,EAAK,OAAO,KAAK;AAAA,IAC9B,UAAU,GAAGA,EAAK,OAAO,KAAK;AAAA,IAC9B,OAAOO,IAAW,GAAGL,CAAY,OAAO;AAAA,EAAA;AAG1C,SACE,gBAAAW,EAAC,QAAe,WAAWL,GAAa,MAAK,QAAO,OAAOI,GACzD,UAAA,gBAAAC,EAAC,OAAA,EAAI,WAAWH,GAAgB,OAAOC,GACrC,UAAA,gBAAAE,EAAC,OAAA,EAAI,WAAU,2FAAA,CAA2F,GAC5G,KAHOR,CAIT;AAEJ,GAEaS,IAAaC,EAAM,KAAKhB,CAAW;"}
1
+ {"version":3,"file":"LoaderCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/LoaderCell.tsx"],"sourcesContent":["import cn from 'classnames';\nimport React from 'react';\n\nimport { CELL_DEFAULT_RIGHT_OFFSET } from '../../constants';\n\ntype TProps = {\n cell: {\n column: {\n width: number;\n sticky?: boolean;\n sequence?: number;\n };\n };\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n};\n\nconst _LoaderCell: React.FC<TProps> = ({ cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell }) => {\n const isSticky = cell?.column?.sticky;\n\n const cellClasses = cn('relative h-row', {\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id,\n 'sticky left-0 bg-white dark:bg-black-600': isSticky,\n 'w-full': isLastCell,\n });\n\n const contentClasses = cn(\n 'h-row top-0 font-medium font-inter overflow-x-hidden overflow-y-auto whitespace-nowrap text-ellipsis px-4 w-full absolute flex items-center',\n {\n 'bg-white dark:bg-black-800 border-b border-neutral-200 dark:border-black-700': isSticky,\n },\n );\n\n const boxShadowStyle =\n isSticky && isFirstStickyCell\n ? { boxShadow: '-8px 0px 8px rgba(0, 0, 0, 0.02)' }\n : {};\n\n const cellStyle = {\n minWidth: `${cell.column.width}px`,\n maxWidth: `${cell.column.width}px`,\n right: isSticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET,\n };\n\n return (\n <td key={index} className={cellClasses} role='cell' style={cellStyle}>\n <div className={contentClasses} style={boxShadowStyle}>\n <div className='skeleton bg-neutral-200 dark:bg-black-600 animate-pulse h-4 min-w-[100px] w-full rounded' />\n </div>\n </td>\n );\n};\n\nexport const LoaderCell = React.memo(_LoaderCell);\n"],"names":["_LoaderCell","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","isSticky","cellClasses","cn","contentClasses","boxShadowStyle","cellStyle","CELL_DEFAULT_RIGHT_OFFSET","jsx","LoaderCell","React"],"mappings":";;;;AAqBA,MAAMA,IAAgC,CAAC,EAAE,MAAAC,GAAM,IAAAC,GAAI,cAAAC,GAAc,YAAAC,GAAY,aAAAC,GAAa,OAAAC,GAAO,mBAAAC,QAAwB;AACvH,QAAMC,IAAWP,GAAM,QAAQ,QAEzBQ,IAAcC,EAAG,kBAAkB;AAAA,IACvC,oCAAoCL,MAAgBH;AAAA,IACpD,4CAA4CM;AAAA,IAC5C,UAAUJ;AAAA,EAAA,CACX,GAEKO,IAAiBD;AAAA,IACrB;AAAA,IACA;AAAA,MACE,gFAAgFF;AAAA,IAAA;AAAA,EAClF,GAGII,IACJJ,KAAYD,IACR,EAAE,WAAW,mCAAA,IACb,CAAA,GAEAM,IAAY;AAAA,IAChB,UAAU,GAAGZ,EAAK,OAAO,KAAK;AAAA,IAC9B,UAAU,GAAGA,EAAK,OAAO,KAAK;AAAA,IAC9B,OAAOO,IAAW,GAAGL,CAAY,OAAOW;AAAA,EAAA;AAG1C,SACE,gBAAAC,EAAC,QAAe,WAAWN,GAAa,MAAK,QAAO,OAAOI,GACzD,UAAA,gBAAAE,EAAC,OAAA,EAAI,WAAWJ,GAAgB,OAAOC,GACrC,UAAA,gBAAAG,EAAC,OAAA,EAAI,WAAU,2FAAA,CAA2F,GAC5G,KAHOT,CAIT;AAEJ,GAEaU,IAAaC,EAAM,KAAKjB,CAAW;"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),L=require("../../../../../utils/formatters.cjs.js"),$=require("@mui/icons-material"),B=require("../../../../../_virtual/index.cjs.js"),u=require("react"),D=require("react-dom"),M=(e,i)=>{if(typeof e=="boolean")return e?"Yes":"No";if(e==null||e==="")return"-";const s=String(e);if(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?/.test(s)){const n=s.includes("T"),r=L.formatDate(s,{withTime:n,skipTimezone:!0});if(r)return r.length>20?r.substring(0,20)+"...":r}const o=s.length>20?s.substring(0,20)+"...":s;return i?`${o} ${i}`:o},F=({rowId:e,rowIndex:i,pendingEdits:s,tableHeaders:d,rowHasPendingEdits:o,rowHovering:n,isInlineEditing:r,is_read:w,is_modified:R,is_row_modified:v,is_deleted:m,is_added:x,is_incomplete:p,showNewItem:P,onScrollToCell:S})=>{const[q,b]=u.useState(!1),[k,C]=u.useState({top:0,left:0}),l=u.useRef(null),g=u.useRef(null),f=s?.[e],h=u.useMemo(()=>f?Object.entries(f).map(([t,c])=>{const T=d?.find(O=>O.key===t),z=T?.Header||T?.display_name||t;return{columnKey:t,fieldName:z,value:c.value,originalValue:c.originalValue,meta:c.meta,originalMeta:c.originalMeta}}):[],[f,d]),V=t=>{b(!1),l.current&&(clearTimeout(l.current),l.current=null),S?.(e,t,i)},y=()=>{if(o){if(l.current&&(clearTimeout(l.current),l.current=null),g.current){const t=g.current.getBoundingClientRect();C({top:t.top+t.height/2,left:t.right+8})}b(!0)}},j=()=>{l.current=setTimeout(()=>{b(!1)},300)},N=B({"bg-primary-50 dark:bg-primary-900":r,"bg-neutral-100 dark:bg-black-600":n===e&&!r&&!m&&!x,"bg-error-200 dark:bg-error-900":n===e&&!r&&m,"bg-success-100 dark:bg-success-800":n===e&&!r&&x,"bg-primary-50 dark:bg-black-700":!p&&!w&&P&&n!==e&&!r,"bg-warning-50 dark:bg-black-500":(p||R||v)&&n!==e&&!r,"bg-error-100 dark:bg-error-975":m&&n!==e&&!r,"bg-success-50 dark:bg-success-900":x&&n!==e&&!r});return a.jsxs("td",{className:`min-w-[28px] w-[28px] sticky left-0 z-30 ${N||"bg-white dark:bg-black-800"} h-[39px]`,children:[a.jsx("div",{ref:g,className:"w-full h-[39px] flex items-center justify-center cursor-pointer",onMouseEnter:y,onMouseLeave:j,children:o&&a.jsx("div",{className:"w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700",children:a.jsx($.EditNoteOutlined,{sx:{fontSize:14},className:"text-warning-600 dark:text-warning-400"})})}),q&&h.length>0&&D.createPortal(a.jsxs("div",{className:"fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]",style:{top:k.top,left:k.left,transform:"translateY(-50%)",zIndex:99999},onMouseEnter:y,onMouseLeave:j,children:[a.jsxs("div",{className:"px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600",children:["Pending Changes (",h.length,")"]}),a.jsx("div",{className:"max-h-48 overflow-y-auto",children:h.map((t,c)=>a.jsxs("button",{onClick:()=>V(t.columnKey),className:"w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer",children:[a.jsx("div",{className:"text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1",children:t.fieldName}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[a.jsx("span",{className:"text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]",children:M(t.originalValue,t.originalMeta?.currency_code)}),a.jsx("span",{className:"text-neutral-400 dark:text-neutral-500 flex-shrink-0",children:"→"}),a.jsx("span",{className:"text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]",children:M(t.value,t.meta?.currency_code)})]})]},c))})]}),document.getElementById("full-screen-container")||document.body)]})};exports.PendingEditCell=F;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const a=require("react/jsx-runtime"),L=require("../../../../../utils/formatters.cjs.js"),$=require("@mui/icons-material"),B=require("../../../../../_virtual/index.cjs.js"),u=require("react"),D=require("react-dom"),T=(e,i)=>{if(typeof e=="boolean")return e?"Yes":"No";if(e==null||e==="")return"-";const s=String(e);if(/^\d{4}-\d{2}-\d{2}(T\d{2}:\d{2}(:\d{2})?)?/.test(s)){const n=s.includes("T"),r=L.formatDate(s,{withTime:n,skipTimezone:!0});if(r)return r.length>20?r.substring(0,20)+"...":r}const o=s.length>20?s.substring(0,20)+"...":s;return i?`${o} ${i}`:o},F=({rowId:e,rowIndex:i,pendingEdits:s,tableHeaders:d,rowHasPendingEdits:o,rowHovering:n,isInlineEditing:r,is_read:M,is_modified:R,is_row_modified:v,is_deleted:m,is_added:x,is_incomplete:p,showNewItem:P,onScrollToCell:S})=>{const[q,b]=u.useState(!1),[k,C]=u.useState({top:0,left:0}),l=u.useRef(null),g=u.useRef(null),f=s?.[e],h=u.useMemo(()=>f?Object.entries(f).map(([t,c])=>{const w=d?.find(O=>O.key===t),z=w?.Header||w?.display_name||t;return{columnKey:t,fieldName:z,value:c.value,originalValue:c.originalValue,meta:c.meta,originalMeta:c.originalMeta}}):[],[f,d]),V=t=>{b(!1),l.current&&(clearTimeout(l.current),l.current=null),S?.(e,t,i)},y=()=>{if(o){if(l.current&&(clearTimeout(l.current),l.current=null),g.current){const t=g.current.getBoundingClientRect();C({top:t.top+t.height/2,left:t.right+8})}b(!0)}},j=()=>{l.current=setTimeout(()=>{b(!1)},300)},N=B({"bg-primary-50 dark:bg-primary-900":r,"bg-neutral-100 dark:bg-black-600":n===e&&!r&&!m&&!x,"bg-error-200 dark:bg-error-900":n===e&&!r&&m,"bg-success-100 dark:bg-success-800":n===e&&!r&&x,"bg-primary-50 dark:bg-black-700":!p&&!M&&P&&n!==e&&!r,"bg-warning-50 dark:bg-black-500":(p||R||v)&&n!==e&&!r,"bg-error-100 dark:bg-error-975":m&&n!==e&&!r,"bg-success-50 dark:bg-success-900":x&&n!==e&&!r});return a.jsxs("td",{className:`min-w-[28px] w-[28px] sticky left-0 z-30 ${N||"bg-white dark:bg-black-800"} h-row`,children:[a.jsx("div",{ref:g,className:"w-full h-row flex items-center justify-center cursor-pointer",onMouseEnter:y,onMouseLeave:j,children:o&&a.jsx("div",{className:"w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700",children:a.jsx($.EditNoteOutlined,{sx:{fontSize:14},className:"text-warning-600 dark:text-warning-400"})})}),q&&h.length>0&&D.createPortal(a.jsxs("div",{className:"fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]",style:{top:k.top,left:k.left,transform:"translateY(-50%)",zIndex:99999},onMouseEnter:y,onMouseLeave:j,children:[a.jsxs("div",{className:"px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600",children:["Pending Changes (",h.length,")"]}),a.jsx("div",{className:"max-h-48 overflow-y-auto",children:h.map((t,c)=>a.jsxs("button",{onClick:()=>V(t.columnKey),className:"w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer",children:[a.jsx("div",{className:"text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1",children:t.fieldName}),a.jsxs("div",{className:"flex items-center gap-1.5 text-xs",children:[a.jsx("span",{className:"text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]",children:T(t.originalValue,t.originalMeta?.currency_code)}),a.jsx("span",{className:"text-neutral-400 dark:text-neutral-500 flex-shrink-0",children:"→"}),a.jsx("span",{className:"text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]",children:T(t.value,t.meta?.currency_code)})]})]},c))})]}),document.getElementById("full-screen-container")||document.body)]})};exports.PendingEditCell=F;
2
2
  //# sourceMappingURL=PendingEditCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"PendingEditCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/PendingEditCell.tsx"],"sourcesContent":["import { formatDate } from '../../../../../utils/formatters';\nimport { EditNoteOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\ntype TPendingEditCellProps = {\n rowId: string;\n rowIndex: number;\n pendingEdits:\n | Record<string, Record<string, { value: unknown; originalValue?: unknown; meta?: { currency_code?: string | null; [key: string]: unknown | null } | null; originalMeta?: { currency_code?: string | null; [key: string]: unknown | null } | null }>>\n | undefined;\n tableHeaders: Array<{ key?: string; Header?: string; display_name?: string }> | undefined;\n rowHasPendingEdits: boolean;\n rowHovering?: string;\n isInlineEditing?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n is_incomplete?: boolean;\n showNewItem?: boolean;\n onScrollToCell?: (targetRowId: string, columnKey: string, targetRowIndex: number) => void;\n};\n\nconst formatValue = (val: unknown, currencyCode?: string | null): string => {\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (val === null || val === undefined || val === '') return '-';\n\n const strVal = String(val);\n const dateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?/;\n if (dateRegex.test(strVal)) {\n const hasTime = strVal.includes('T');\n const formatted = formatDate(strVal, { withTime: hasTime, skipTimezone: true });\n if (formatted) {\n return formatted.length > 20 ? formatted.substring(0, 20) + '...' : formatted;\n }\n }\n\n const display = strVal.length > 20 ? strVal.substring(0, 20) + '...' : strVal;\n if (currencyCode) return `${display} ${currencyCode}`;\n return display;\n};\n\nexport const PendingEditCell: React.FC<TPendingEditCellProps> = ({\n rowId,\n rowIndex,\n pendingEdits,\n tableHeaders,\n rowHasPendingEdits,\n rowHovering,\n isInlineEditing,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n is_incomplete,\n showNewItem,\n onScrollToCell,\n}) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const iconRef = useRef<HTMLDivElement>(null);\n\n const rowPendingEdits = pendingEdits?.[rowId];\n\n const editedFields = useMemo(\n () =>\n rowPendingEdits\n ? Object.entries(rowPendingEdits).map(([columnKey, edit]) => {\n const column = tableHeaders?.find((col) => col.key === columnKey);\n const fieldName = column?.Header || column?.display_name || columnKey;\n return { columnKey, fieldName, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta };\n })\n : [],\n [rowPendingEdits, tableHeaders],\n );\n\n const handleFieldClick = (columnKey: string) => {\n setShowTooltip(false);\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n onScrollToCell?.(rowId, columnKey, rowIndex);\n };\n\n const handleMouseEnter = () => {\n if (!rowHasPendingEdits) return;\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n if (iconRef.current) {\n const rect = iconRef.current.getBoundingClientRect();\n setTooltipPosition({ top: rect.top + rect.height / 2, left: rect.right + 8 });\n }\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n hideTimeoutRef.current = setTimeout(() => { setShowTooltip(false); }, 300);\n };\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !is_deleted && !is_added,\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && is_deleted,\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && is_added,\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': is_deleted && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': is_added && rowHovering !== rowId && !isInlineEditing,\n });\n\n return (\n <td className={`min-w-[28px] w-[28px] sticky left-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-[39px]`}>\n <div ref={iconRef} className='w-full h-[39px] flex items-center justify-center cursor-pointer' onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {rowHasPendingEdits && (\n <div className='w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700'>\n <EditNoteOutlined sx={{ fontSize: 14 }} className='text-warning-600 dark:text-warning-400' />\n </div>\n )}\n </div>\n {showTooltip && editedFields.length > 0 &&\n createPortal(\n <div\n className='fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]'\n style={{ top: tooltipPosition.top, left: tooltipPosition.left, transform: 'translateY(-50%)', zIndex: 99999 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className='px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600'>\n Pending Changes ({editedFields.length})\n </div>\n <div className='max-h-48 overflow-y-auto'>\n {editedFields.map((field, idx) => (\n <button key={idx} onClick={() => handleFieldClick(field.columnKey)} className='w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer'>\n <div className='text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1'>{field.fieldName}</div>\n <div className='flex items-center gap-1.5 text-xs'>\n <span className='text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]'>{formatValue(field.originalValue, field.originalMeta?.currency_code)}</span>\n <span className='text-neutral-400 dark:text-neutral-500 flex-shrink-0'>→</span>\n <span className='text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]'>{formatValue(field.value, field.meta?.currency_code)}</span>\n </div>\n </button>\n ))}\n </div>\n </div>,\n document.getElementById('full-screen-container') || document.body,\n )}\n </td>\n );\n};\n"],"names":["formatValue","val","currencyCode","strVal","hasTime","formatted","formatDate","display","PendingEditCell","rowId","rowIndex","pendingEdits","tableHeaders","rowHasPendingEdits","rowHovering","isInlineEditing","is_read","is_modified","is_row_modified","is_deleted","is_added","is_incomplete","showNewItem","onScrollToCell","showTooltip","setShowTooltip","useState","tooltipPosition","setTooltipPosition","hideTimeoutRef","useRef","iconRef","rowPendingEdits","editedFields","useMemo","columnKey","edit","column","col","fieldName","handleFieldClick","handleMouseEnter","rect","handleMouseLeave","bgColor","cn","jsx","EditNoteOutlined","createPortal","jsxs","field","idx"],"mappings":"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"}
1
+ {"version":3,"file":"PendingEditCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/PendingEditCell.tsx"],"sourcesContent":["import { formatDate } from '../../../../../utils/formatters';\nimport { EditNoteOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\ntype TPendingEditCellProps = {\n rowId: string;\n rowIndex: number;\n pendingEdits:\n | Record<string, Record<string, { value: unknown; originalValue?: unknown; meta?: { currency_code?: string | null; [key: string]: unknown | null } | null; originalMeta?: { currency_code?: string | null; [key: string]: unknown | null } | null }>>\n | undefined;\n tableHeaders: Array<{ key?: string; Header?: string; display_name?: string }> | undefined;\n rowHasPendingEdits: boolean;\n rowHovering?: string;\n isInlineEditing?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n is_incomplete?: boolean;\n showNewItem?: boolean;\n onScrollToCell?: (targetRowId: string, columnKey: string, targetRowIndex: number) => void;\n};\n\nconst formatValue = (val: unknown, currencyCode?: string | null): string => {\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (val === null || val === undefined || val === '') return '-';\n\n const strVal = String(val);\n const dateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?/;\n if (dateRegex.test(strVal)) {\n const hasTime = strVal.includes('T');\n const formatted = formatDate(strVal, { withTime: hasTime, skipTimezone: true });\n if (formatted) {\n return formatted.length > 20 ? formatted.substring(0, 20) + '...' : formatted;\n }\n }\n\n const display = strVal.length > 20 ? strVal.substring(0, 20) + '...' : strVal;\n if (currencyCode) return `${display} ${currencyCode}`;\n return display;\n};\n\nexport const PendingEditCell: React.FC<TPendingEditCellProps> = ({\n rowId,\n rowIndex,\n pendingEdits,\n tableHeaders,\n rowHasPendingEdits,\n rowHovering,\n isInlineEditing,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n is_incomplete,\n showNewItem,\n onScrollToCell,\n}) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const iconRef = useRef<HTMLDivElement>(null);\n\n const rowPendingEdits = pendingEdits?.[rowId];\n\n const editedFields = useMemo(\n () =>\n rowPendingEdits\n ? Object.entries(rowPendingEdits).map(([columnKey, edit]) => {\n const column = tableHeaders?.find((col) => col.key === columnKey);\n const fieldName = column?.Header || column?.display_name || columnKey;\n return { columnKey, fieldName, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta };\n })\n : [],\n [rowPendingEdits, tableHeaders],\n );\n\n const handleFieldClick = (columnKey: string) => {\n setShowTooltip(false);\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n onScrollToCell?.(rowId, columnKey, rowIndex);\n };\n\n const handleMouseEnter = () => {\n if (!rowHasPendingEdits) return;\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n if (iconRef.current) {\n const rect = iconRef.current.getBoundingClientRect();\n setTooltipPosition({ top: rect.top + rect.height / 2, left: rect.right + 8 });\n }\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n hideTimeoutRef.current = setTimeout(() => { setShowTooltip(false); }, 300);\n };\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !is_deleted && !is_added,\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && is_deleted,\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && is_added,\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': is_deleted && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': is_added && rowHovering !== rowId && !isInlineEditing,\n });\n\n return (\n <td className={`min-w-[28px] w-[28px] sticky left-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-row`}>\n <div ref={iconRef} className='w-full h-row flex items-center justify-center cursor-pointer' onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {rowHasPendingEdits && (\n <div className='w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700'>\n <EditNoteOutlined sx={{ fontSize: 14 }} className='text-warning-600 dark:text-warning-400' />\n </div>\n )}\n </div>\n {showTooltip && editedFields.length > 0 &&\n createPortal(\n <div\n className='fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]'\n style={{ top: tooltipPosition.top, left: tooltipPosition.left, transform: 'translateY(-50%)', zIndex: 99999 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className='px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600'>\n Pending Changes ({editedFields.length})\n </div>\n <div className='max-h-48 overflow-y-auto'>\n {editedFields.map((field, idx) => (\n <button key={idx} onClick={() => handleFieldClick(field.columnKey)} className='w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer'>\n <div className='text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1'>{field.fieldName}</div>\n <div className='flex items-center gap-1.5 text-xs'>\n <span className='text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]'>{formatValue(field.originalValue, field.originalMeta?.currency_code)}</span>\n <span className='text-neutral-400 dark:text-neutral-500 flex-shrink-0'>→</span>\n <span className='text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]'>{formatValue(field.value, field.meta?.currency_code)}</span>\n </div>\n </button>\n ))}\n </div>\n </div>,\n document.getElementById('full-screen-container') || document.body,\n )}\n </td>\n );\n};\n"],"names":["formatValue","val","currencyCode","strVal","hasTime","formatted","formatDate","display","PendingEditCell","rowId","rowIndex","pendingEdits","tableHeaders","rowHasPendingEdits","rowHovering","isInlineEditing","is_read","is_modified","is_row_modified","is_deleted","is_added","is_incomplete","showNewItem","onScrollToCell","showTooltip","setShowTooltip","useState","tooltipPosition","setTooltipPosition","hideTimeoutRef","useRef","iconRef","rowPendingEdits","editedFields","useMemo","columnKey","edit","column","col","fieldName","handleFieldClick","handleMouseEnter","rect","handleMouseLeave","bgColor","cn","jsx","EditNoteOutlined","createPortal","jsxs","field","idx"],"mappings":"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"}
@@ -32,18 +32,18 @@ const R = (e, i) => {
32
32
  showNewItem: V,
33
33
  onScrollToCell: z
34
34
  }) => {
35
- const [S, f] = M(!1), [k, L] = M({ top: 0, left: 0 }), l = v(null), p = v(null), g = n?.[e], x = q(
36
- () => g ? Object.entries(g).map(([t, s]) => {
37
- const w = m?.find((F) => F.key === t), B = w?.Header || w?.display_name || t;
35
+ const [S, f] = M(!1), [k, L] = M({ top: 0, left: 0 }), l = v(null), g = v(null), p = n?.[e], x = q(
36
+ () => p ? Object.entries(p).map(([t, s]) => {
37
+ const T = m?.find((F) => F.key === t), B = T?.Header || T?.display_name || t;
38
38
  return { columnKey: t, fieldName: B, value: s.value, originalValue: s.originalValue, meta: s.meta, originalMeta: s.originalMeta };
39
39
  }) : [],
40
- [g, m]
40
+ [p, m]
41
41
  ), $ = (t) => {
42
42
  f(!1), l.current && (clearTimeout(l.current), l.current = null), z?.(e, t, i);
43
43
  }, y = () => {
44
44
  if (c) {
45
- if (l.current && (clearTimeout(l.current), l.current = null), p.current) {
46
- const t = p.current.getBoundingClientRect();
45
+ if (l.current && (clearTimeout(l.current), l.current = null), g.current) {
46
+ const t = g.current.getBoundingClientRect();
47
47
  L({ top: t.top + t.height / 2, left: t.right + 8 });
48
48
  }
49
49
  f(!0);
@@ -52,7 +52,7 @@ const R = (e, i) => {
52
52
  l.current = setTimeout(() => {
53
53
  f(!1);
54
54
  }, 300);
55
- }, T = D({
55
+ }, w = D({
56
56
  "bg-primary-50 dark:bg-primary-900": r,
57
57
  "bg-neutral-100 dark:bg-black-600": a === e && !r && !d && !b,
58
58
  "bg-error-200 dark:bg-error-900": a === e && !r && d,
@@ -62,8 +62,8 @@ const R = (e, i) => {
62
62
  "bg-error-100 dark:bg-error-975": d && a !== e && !r,
63
63
  "bg-success-50 dark:bg-success-900": b && a !== e && !r
64
64
  });
65
- return /* @__PURE__ */ u("td", { className: `min-w-[28px] w-[28px] sticky left-0 z-30 ${T || "bg-white dark:bg-black-800"} h-[39px]`, children: [
66
- /* @__PURE__ */ o("div", { ref: p, className: "w-full h-[39px] flex items-center justify-center cursor-pointer", onMouseEnter: y, onMouseLeave: N, children: c && /* @__PURE__ */ o("div", { className: "w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700", children: /* @__PURE__ */ o(Y, { sx: { fontSize: 14 }, className: "text-warning-600 dark:text-warning-400" }) }) }),
65
+ return /* @__PURE__ */ u("td", { className: `min-w-[28px] w-[28px] sticky left-0 z-30 ${w || "bg-white dark:bg-black-800"} h-row`, children: [
66
+ /* @__PURE__ */ o("div", { ref: g, className: "w-full h-row flex items-center justify-center cursor-pointer", onMouseEnter: y, onMouseLeave: N, children: c && /* @__PURE__ */ o("div", { className: "w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700", children: /* @__PURE__ */ o(Y, { sx: { fontSize: 14 }, className: "text-warning-600 dark:text-warning-400" }) }) }),
67
67
  S && x.length > 0 && A(
68
68
  /* @__PURE__ */ u(
69
69
  "div",
@@ -1 +1 @@
1
- {"version":3,"file":"PendingEditCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/PendingEditCell.tsx"],"sourcesContent":["import { formatDate } from '../../../../../utils/formatters';\nimport { EditNoteOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\ntype TPendingEditCellProps = {\n rowId: string;\n rowIndex: number;\n pendingEdits:\n | Record<string, Record<string, { value: unknown; originalValue?: unknown; meta?: { currency_code?: string | null; [key: string]: unknown | null } | null; originalMeta?: { currency_code?: string | null; [key: string]: unknown | null } | null }>>\n | undefined;\n tableHeaders: Array<{ key?: string; Header?: string; display_name?: string }> | undefined;\n rowHasPendingEdits: boolean;\n rowHovering?: string;\n isInlineEditing?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n is_incomplete?: boolean;\n showNewItem?: boolean;\n onScrollToCell?: (targetRowId: string, columnKey: string, targetRowIndex: number) => void;\n};\n\nconst formatValue = (val: unknown, currencyCode?: string | null): string => {\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (val === null || val === undefined || val === '') return '-';\n\n const strVal = String(val);\n const dateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?/;\n if (dateRegex.test(strVal)) {\n const hasTime = strVal.includes('T');\n const formatted = formatDate(strVal, { withTime: hasTime, skipTimezone: true });\n if (formatted) {\n return formatted.length > 20 ? formatted.substring(0, 20) + '...' : formatted;\n }\n }\n\n const display = strVal.length > 20 ? strVal.substring(0, 20) + '...' : strVal;\n if (currencyCode) return `${display} ${currencyCode}`;\n return display;\n};\n\nexport const PendingEditCell: React.FC<TPendingEditCellProps> = ({\n rowId,\n rowIndex,\n pendingEdits,\n tableHeaders,\n rowHasPendingEdits,\n rowHovering,\n isInlineEditing,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n is_incomplete,\n showNewItem,\n onScrollToCell,\n}) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const iconRef = useRef<HTMLDivElement>(null);\n\n const rowPendingEdits = pendingEdits?.[rowId];\n\n const editedFields = useMemo(\n () =>\n rowPendingEdits\n ? Object.entries(rowPendingEdits).map(([columnKey, edit]) => {\n const column = tableHeaders?.find((col) => col.key === columnKey);\n const fieldName = column?.Header || column?.display_name || columnKey;\n return { columnKey, fieldName, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta };\n })\n : [],\n [rowPendingEdits, tableHeaders],\n );\n\n const handleFieldClick = (columnKey: string) => {\n setShowTooltip(false);\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n onScrollToCell?.(rowId, columnKey, rowIndex);\n };\n\n const handleMouseEnter = () => {\n if (!rowHasPendingEdits) return;\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n if (iconRef.current) {\n const rect = iconRef.current.getBoundingClientRect();\n setTooltipPosition({ top: rect.top + rect.height / 2, left: rect.right + 8 });\n }\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n hideTimeoutRef.current = setTimeout(() => { setShowTooltip(false); }, 300);\n };\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !is_deleted && !is_added,\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && is_deleted,\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && is_added,\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': is_deleted && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': is_added && rowHovering !== rowId && !isInlineEditing,\n });\n\n return (\n <td className={`min-w-[28px] w-[28px] sticky left-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-[39px]`}>\n <div ref={iconRef} className='w-full h-[39px] flex items-center justify-center cursor-pointer' onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {rowHasPendingEdits && (\n <div className='w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700'>\n <EditNoteOutlined sx={{ fontSize: 14 }} className='text-warning-600 dark:text-warning-400' />\n </div>\n )}\n </div>\n {showTooltip && editedFields.length > 0 &&\n createPortal(\n <div\n className='fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]'\n style={{ top: tooltipPosition.top, left: tooltipPosition.left, transform: 'translateY(-50%)', zIndex: 99999 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className='px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600'>\n Pending Changes ({editedFields.length})\n </div>\n <div className='max-h-48 overflow-y-auto'>\n {editedFields.map((field, idx) => (\n <button key={idx} onClick={() => handleFieldClick(field.columnKey)} className='w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer'>\n <div className='text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1'>{field.fieldName}</div>\n <div className='flex items-center gap-1.5 text-xs'>\n <span className='text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]'>{formatValue(field.originalValue, field.originalMeta?.currency_code)}</span>\n <span className='text-neutral-400 dark:text-neutral-500 flex-shrink-0'>→</span>\n <span className='text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]'>{formatValue(field.value, field.meta?.currency_code)}</span>\n </div>\n </button>\n ))}\n </div>\n </div>,\n document.getElementById('full-screen-container') || document.body,\n )}\n </td>\n );\n};\n"],"names":["formatValue","val","currencyCode","strVal","hasTime","formatted","formatDate","display","PendingEditCell","rowId","rowIndex","pendingEdits","tableHeaders","rowHasPendingEdits","rowHovering","isInlineEditing","is_read","is_modified","is_row_modified","is_deleted","is_added","is_incomplete","showNewItem","onScrollToCell","showTooltip","setShowTooltip","useState","tooltipPosition","setTooltipPosition","hideTimeoutRef","useRef","iconRef","rowPendingEdits","editedFields","useMemo","columnKey","edit","column","col","fieldName","handleFieldClick","handleMouseEnter","rect","handleMouseLeave","bgColor","cn","jsx","EditNoteOutlined","createPortal","jsxs","field","idx"],"mappings":"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"}
1
+ {"version":3,"file":"PendingEditCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/PendingEditCell.tsx"],"sourcesContent":["import { formatDate } from '../../../../../utils/formatters';\nimport { EditNoteOutlined } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useMemo, useRef, useState } from 'react';\nimport { createPortal } from 'react-dom';\n\ntype TPendingEditCellProps = {\n rowId: string;\n rowIndex: number;\n pendingEdits:\n | Record<string, Record<string, { value: unknown; originalValue?: unknown; meta?: { currency_code?: string | null; [key: string]: unknown | null } | null; originalMeta?: { currency_code?: string | null; [key: string]: unknown | null } | null }>>\n | undefined;\n tableHeaders: Array<{ key?: string; Header?: string; display_name?: string }> | undefined;\n rowHasPendingEdits: boolean;\n rowHovering?: string;\n isInlineEditing?: boolean;\n is_read?: boolean;\n is_modified?: boolean;\n is_row_modified?: boolean;\n is_deleted?: boolean;\n is_added?: boolean;\n is_incomplete?: boolean;\n showNewItem?: boolean;\n onScrollToCell?: (targetRowId: string, columnKey: string, targetRowIndex: number) => void;\n};\n\nconst formatValue = (val: unknown, currencyCode?: string | null): string => {\n if (typeof val === 'boolean') return val ? 'Yes' : 'No';\n if (val === null || val === undefined || val === '') return '-';\n\n const strVal = String(val);\n const dateRegex = /^\\d{4}-\\d{2}-\\d{2}(T\\d{2}:\\d{2}(:\\d{2})?)?/;\n if (dateRegex.test(strVal)) {\n const hasTime = strVal.includes('T');\n const formatted = formatDate(strVal, { withTime: hasTime, skipTimezone: true });\n if (formatted) {\n return formatted.length > 20 ? formatted.substring(0, 20) + '...' : formatted;\n }\n }\n\n const display = strVal.length > 20 ? strVal.substring(0, 20) + '...' : strVal;\n if (currencyCode) return `${display} ${currencyCode}`;\n return display;\n};\n\nexport const PendingEditCell: React.FC<TPendingEditCellProps> = ({\n rowId,\n rowIndex,\n pendingEdits,\n tableHeaders,\n rowHasPendingEdits,\n rowHovering,\n isInlineEditing,\n is_read,\n is_modified,\n is_row_modified,\n is_deleted,\n is_added,\n is_incomplete,\n showNewItem,\n onScrollToCell,\n}) => {\n const [showTooltip, setShowTooltip] = useState(false);\n const [tooltipPosition, setTooltipPosition] = useState({ top: 0, left: 0 });\n const hideTimeoutRef = useRef<ReturnType<typeof setTimeout> | null>(null);\n const iconRef = useRef<HTMLDivElement>(null);\n\n const rowPendingEdits = pendingEdits?.[rowId];\n\n const editedFields = useMemo(\n () =>\n rowPendingEdits\n ? Object.entries(rowPendingEdits).map(([columnKey, edit]) => {\n const column = tableHeaders?.find((col) => col.key === columnKey);\n const fieldName = column?.Header || column?.display_name || columnKey;\n return { columnKey, fieldName, value: edit.value, originalValue: edit.originalValue, meta: edit.meta, originalMeta: edit.originalMeta };\n })\n : [],\n [rowPendingEdits, tableHeaders],\n );\n\n const handleFieldClick = (columnKey: string) => {\n setShowTooltip(false);\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n onScrollToCell?.(rowId, columnKey, rowIndex);\n };\n\n const handleMouseEnter = () => {\n if (!rowHasPendingEdits) return;\n if (hideTimeoutRef.current) { clearTimeout(hideTimeoutRef.current); hideTimeoutRef.current = null; }\n if (iconRef.current) {\n const rect = iconRef.current.getBoundingClientRect();\n setTooltipPosition({ top: rect.top + rect.height / 2, left: rect.right + 8 });\n }\n setShowTooltip(true);\n };\n\n const handleMouseLeave = () => {\n hideTimeoutRef.current = setTimeout(() => { setShowTooltip(false); }, 300);\n };\n\n const bgColor = cn({\n 'bg-primary-50 dark:bg-primary-900': isInlineEditing,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === rowId && !isInlineEditing && !is_deleted && !is_added,\n 'bg-error-200 dark:bg-error-900': rowHovering === rowId && !isInlineEditing && is_deleted,\n 'bg-success-100 dark:bg-success-800': rowHovering === rowId && !isInlineEditing && is_added,\n 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && rowHovering !== rowId && !isInlineEditing,\n 'bg-warning-50 dark:bg-black-500': (is_incomplete || is_modified || is_row_modified) && rowHovering !== rowId && !isInlineEditing,\n 'bg-error-100 dark:bg-error-975': is_deleted && rowHovering !== rowId && !isInlineEditing,\n 'bg-success-50 dark:bg-success-900': is_added && rowHovering !== rowId && !isInlineEditing,\n });\n\n return (\n <td className={`min-w-[28px] w-[28px] sticky left-0 z-30 ${bgColor ? bgColor : 'bg-white dark:bg-black-800'} h-row`}>\n <div ref={iconRef} className='w-full h-row flex items-center justify-center cursor-pointer' onMouseEnter={handleMouseEnter} onMouseLeave={handleMouseLeave}>\n {rowHasPendingEdits && (\n <div className='w-5 h-5 rounded-full bg-warning-100 dark:bg-warning-900 flex items-center justify-center shadow-sm border border-warning-200 dark:border-warning-700'>\n <EditNoteOutlined sx={{ fontSize: 14 }} className='text-warning-600 dark:text-warning-400' />\n </div>\n )}\n </div>\n {showTooltip && editedFields.length > 0 &&\n createPortal(\n <div\n className='fixed bg-white dark:bg-black-700 rounded-lg shadow-xl border border-neutral-200 dark:border-black-600 py-2 min-w-[200px] max-w-[280px]'\n style={{ top: tooltipPosition.top, left: tooltipPosition.left, transform: 'translateY(-50%)', zIndex: 99999 }}\n onMouseEnter={handleMouseEnter}\n onMouseLeave={handleMouseLeave}\n >\n <div className='px-3 py-1.5 text-xs font-semibold text-neutral-500 dark:text-neutral-400 uppercase tracking-wider border-b border-neutral-100 dark:border-black-600'>\n Pending Changes ({editedFields.length})\n </div>\n <div className='max-h-48 overflow-y-auto'>\n {editedFields.map((field, idx) => (\n <button key={idx} onClick={() => handleFieldClick(field.columnKey)} className='w-full px-3 py-2 text-left hover:bg-neutral-50 dark:hover:bg-black-600 transition-colors cursor-pointer'>\n <div className='text-xs font-medium text-neutral-700 dark:text-neutral-300 mb-1'>{field.fieldName}</div>\n <div className='flex items-center gap-1.5 text-xs'>\n <span className='text-neutral-400 dark:text-neutral-500 line-through truncate max-w-[80px]'>{formatValue(field.originalValue, field.originalMeta?.currency_code)}</span>\n <span className='text-neutral-400 dark:text-neutral-500 flex-shrink-0'>→</span>\n <span className='text-primary-600 dark:text-primary-400 font-medium truncate max-w-[80px]'>{formatValue(field.value, field.meta?.currency_code)}</span>\n </div>\n </button>\n ))}\n </div>\n </div>,\n document.getElementById('full-screen-container') || document.body,\n )}\n </td>\n );\n};\n"],"names":["formatValue","val","currencyCode","strVal","hasTime","formatted","formatDate","display","PendingEditCell","rowId","rowIndex","pendingEdits","tableHeaders","rowHasPendingEdits","rowHovering","isInlineEditing","is_read","is_modified","is_row_modified","is_deleted","is_added","is_incomplete","showNewItem","onScrollToCell","showTooltip","setShowTooltip","useState","tooltipPosition","setTooltipPosition","hideTimeoutRef","useRef","iconRef","rowPendingEdits","editedFields","useMemo","columnKey","edit","column","col","fieldName","handleFieldClick","handleMouseEnter","rect","handleMouseLeave","bgColor","cn","jsx","EditNoteOutlined","createPortal","jsxs","field","idx"],"mappings":"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"}
@@ -1,2 +1,2 @@
1
- "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),q=require("../../../../tooltip/Tooltip.cjs.js"),S=require("../../../../../providers/design-system-provider/hooks.cjs.js"),j=require("../../../../../_virtual/index.cjs.js"),x=require("react"),T=({disableOptionsForRowIndex:C,tableActions:g,index:l,is_read:f,showNewItem:k,is_modified:p,is_row_modified:m,is_deleted:c,currentData:e,is_added:o,rowData:d,id:s,rowHovering:t,isDisabled:b,bgColor:n,is_incomplete:i,isInlineEditing:r,rowHasPendingEdits:a})=>{const R=S.useTableConfig()?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",y=x.useMemo(()=>r?"bg-primary-50 dark:bg-primary-900":n||(c||e?.is_deleted?"bg-error-100 dark:bg-error-975":i||p||m||e?.is_row_modified?"bg-warning-50 dark:bg-black-500":o||e?.is_added?"bg-success-50":!f&&k&&!b?"bg-primary-50 dark:bg-black-700":"bg-white dark:bg-black-800"),[i,f,k,p,m,c,e,o,n,r,b]),h=C===l||b||a;return u.jsxs("td",{"aria-disabled":h,className:j("px-2.5 relative",y,h&&"cursor-not-allowed opacity-50"),children:[g(d,l),u.jsx(q,{title:a?R:"",children:u.jsx("div",{className:j("absolute top-0 left-0 flex items-center justify-center w-full z-20",{[y]:t!==s||r},{"bg-neutral-100 dark:bg-black-600":t===s&&!r&&!(c||e?.is_deleted)&&!(o||e?.is_added)},{"bg-error-200 dark:bg-error-900":t===s&&!r&&(c||e?.is_deleted)},{"bg-success-100 dark:bg-success-800":t===s&&!r&&(o||e?.is_added)},a&&"pointer-events-none"),children:g(d,l)})})]})},v=x.memo(T);exports.RowActionCell=v;
1
+ "use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const u=require("react/jsx-runtime"),q=require("../../../../tooltip/Tooltip.cjs.js"),S=require("../../../../../providers/design-system-provider/hooks.cjs.js"),j=require("../../../../../_virtual/index.cjs.js"),x=require("react"),T=({disableOptionsForRowIndex:C,tableActions:g,index:l,is_read:f,showNewItem:k,is_modified:p,is_row_modified:m,is_deleted:c,currentData:e,is_added:o,rowData:d,id:s,rowHovering:t,isDisabled:b,bgColor:n,is_incomplete:h,isInlineEditing:r,rowHasPendingEdits:a})=>{const R=S.useTableConfig()?.t?.("Save or cancel pending changes first")??"Save or cancel pending changes first",i=x.useMemo(()=>r?"bg-primary-50 dark:bg-primary-900":n||(c||e?.is_deleted?"bg-error-100 dark:bg-error-975":h||p||m||e?.is_row_modified?"bg-warning-50 dark:bg-black-500":o||e?.is_added?"bg-success-50":!f&&k&&!b?"bg-primary-50 dark:bg-black-700":"bg-white dark:bg-black-800"),[h,f,k,p,m,c,e,o,n,r,b]),y=C===l||b||a;return u.jsxs("td",{"aria-disabled":y,className:j("px-2.5 relative h-row",i,y&&"cursor-not-allowed opacity-50"),children:[g(d,l),u.jsx(q,{title:a?R:"",children:u.jsx("div",{className:j("absolute top-0 left-0 flex items-center justify-center w-full z-20",{[i]:t!==s||r},{"bg-neutral-100 dark:bg-black-600":t===s&&!r&&!(c||e?.is_deleted)&&!(o||e?.is_added)},{"bg-error-200 dark:bg-error-900":t===s&&!r&&(c||e?.is_deleted)},{"bg-success-100 dark:bg-success-800":t===s&&!r&&(o||e?.is_added)},a&&"pointer-events-none"),children:g(d,l)})})]})},v=x.memo(T);exports.RowActionCell=v;
2
2
  //# sourceMappingURL=RowActionCell.cjs.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowActionCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React, { useMemo } from 'react';\n\ntype TProps = {\n disableOptionsForRowIndex: number | null;\n tableActions: (rowData: Record<string, unknown>, index: number) => JSX.Element;\n index: number;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n currentData: Record<string, unknown>;\n is_added: boolean;\n rowData: Record<string, unknown>;\n id: string | number;\n rowHovering: string | number | null;\n isDisabled?: boolean;\n bgColor?: string;\n is_incomplete: boolean;\n isInlineEditing?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nconst RowActionCellInner: React.FC<TProps> = ({\n disableOptionsForRowIndex,\n tableActions,\n index,\n is_read,\n showNewItem,\n is_modified,\n is_row_modified,\n is_deleted,\n currentData,\n is_added,\n rowData,\n id,\n rowHovering,\n isDisabled,\n bgColor,\n is_incomplete,\n isInlineEditing,\n rowHasPendingEdits,\n}) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n\n const backgroundColorClass = useMemo(() => {\n if (isInlineEditing) return 'bg-primary-50 dark:bg-primary-900';\n if (bgColor) return bgColor;\n if (is_deleted || currentData?.is_deleted) return 'bg-error-100 dark:bg-error-975';\n if (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) return 'bg-warning-50 dark:bg-black-500';\n if (is_added || currentData?.is_added) return 'bg-success-50';\n if (!is_read && showNewItem && !isDisabled) return 'bg-primary-50 dark:bg-black-700';\n return 'bg-white dark:bg-black-800';\n }, [is_incomplete, is_read, showNewItem, is_modified, is_row_modified, is_deleted, currentData, is_added, bgColor, isInlineEditing, isDisabled]);\n\n const isRowDisabled = disableOptionsForRowIndex === index || isDisabled || rowHasPendingEdits;\n\n return (\n <td aria-disabled={isRowDisabled} className={cn('px-2.5 relative', backgroundColorClass, isRowDisabled && 'cursor-not-allowed opacity-50')}>\n {tableActions(rowData, index)}\n <Tooltip title={rowHasPendingEdits ? pendingEditsTooltip : ''}>\n <div\n className={cn(\n 'absolute top-0 left-0 flex items-center justify-center w-full z-20',\n { [backgroundColorClass]: rowHovering !== id || 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 rowHasPendingEdits && 'pointer-events-none',\n )}\n >\n {tableActions(rowData, index)}\n </div>\n </Tooltip>\n </td>\n );\n};\n\nexport const RowActionCell = React.memo(RowActionCellInner);\n"],"names":["RowActionCellInner","disableOptionsForRowIndex","tableActions","index","is_read","showNewItem","is_modified","is_row_modified","is_deleted","currentData","is_added","rowData","id","rowHovering","isDisabled","bgColor","is_incomplete","isInlineEditing","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","backgroundColorClass","useMemo","isRowDisabled","jsxs","cn","jsx","Tooltip","RowActionCell","React"],"mappings":"oTA0BMA,EAAuC,CAAC,CAC5C,0BAAAC,EACA,aAAAC,EAAA,MACAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,YAAAC,EACA,SAAAC,EACA,QAAAC,EACA,GAAAC,EACA,YAAAC,EACA,WAAAC,EACA,QAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,mBAAAC,CACF,IAAM,CAEJ,MAAMC,EADcC,EAAAA,eAAA,GACqB,IAAI,sCAAsC,GAAK,uCAElFC,EAAuBC,EAAAA,QAAQ,IAC/BL,EAAwB,oCACxBF,IACAP,GAAcC,GAAa,WAAmB,iCAC9CO,GAAiBV,GAAeC,GAAmBE,GAAa,gBAAwB,kCACxFC,GAAYD,GAAa,SAAiB,gBAC1C,CAACL,GAAWC,GAAe,CAACS,EAAmB,kCAC5C,8BACN,CAACE,EAAeZ,EAASC,EAAaC,EAAaC,EAAiBC,EAAYC,EAAaC,EAAUK,EAASE,EAAiBH,CAAU,CAAC,EAEzIS,EAAgBtB,IAA8BE,GAASW,GAAcI,EAE3E,OACEM,EAAAA,KAAC,KAAA,CAAG,gBAAeD,EAAe,UAAWE,EAAG,kBAAmBJ,EAAsBE,GAAiB,+BAA+B,EACtI,SAAA,CAAArB,EAAaS,EAASR,CAAK,EAC5BuB,EAAAA,IAACC,EAAA,CAAQ,MAAOT,EAAqBC,EAAsB,GACzD,SAAAO,EAAAA,IAAC,MAAA,CACC,UAAWD,EACT,qEACA,CAAE,CAACJ,CAAoB,EAAGR,IAAgBD,GAAMK,CAAA,EAChD,CAAE,mCAAoCJ,IAAgBD,GAAM,CAACK,GAAmB,EAAET,GAAcC,GAAa,aAAe,EAAEC,GAAYD,GAAa,SAAA,EACvJ,CAAE,iCAAkCI,IAAgBD,GAAM,CAACK,IAAoBT,GAAcC,GAAa,WAAA,EAC1G,CAAE,qCAAsCI,IAAgBD,GAAM,CAACK,IAAoBP,GAAYD,GAAa,SAAA,EAC5GS,GAAsB,qBAAA,EAGvB,SAAAhB,EAAaS,EAASR,CAAK,CAAA,CAAA,CAC9B,CACF,CAAA,EACF,CAEJ,EAEayB,EAAgBC,EAAM,KAAK7B,CAAkB"}
1
+ {"version":3,"file":"RowActionCell.cjs.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React, { useMemo } from 'react';\n\ntype TProps = {\n disableOptionsForRowIndex: number | null;\n tableActions: (rowData: Record<string, unknown>, index: number) => JSX.Element;\n index: number;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n currentData: Record<string, unknown>;\n is_added: boolean;\n rowData: Record<string, unknown>;\n id: string | number;\n rowHovering: string | number | null;\n isDisabled?: boolean;\n bgColor?: string;\n is_incomplete: boolean;\n isInlineEditing?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nconst RowActionCellInner: React.FC<TProps> = ({\n disableOptionsForRowIndex,\n tableActions,\n index,\n is_read,\n showNewItem,\n is_modified,\n is_row_modified,\n is_deleted,\n currentData,\n is_added,\n rowData,\n id,\n rowHovering,\n isDisabled,\n bgColor,\n is_incomplete,\n isInlineEditing,\n rowHasPendingEdits,\n}) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n\n const backgroundColorClass = useMemo(() => {\n if (isInlineEditing) return 'bg-primary-50 dark:bg-primary-900';\n if (bgColor) return bgColor;\n if (is_deleted || currentData?.is_deleted) return 'bg-error-100 dark:bg-error-975';\n if (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) return 'bg-warning-50 dark:bg-black-500';\n if (is_added || currentData?.is_added) return 'bg-success-50';\n if (!is_read && showNewItem && !isDisabled) return 'bg-primary-50 dark:bg-black-700';\n return 'bg-white dark:bg-black-800';\n }, [is_incomplete, is_read, showNewItem, is_modified, is_row_modified, is_deleted, currentData, is_added, bgColor, isInlineEditing, isDisabled]);\n\n const isRowDisabled = disableOptionsForRowIndex === index || isDisabled || rowHasPendingEdits;\n\n return (\n <td aria-disabled={isRowDisabled} className={cn('px-2.5 relative h-row', backgroundColorClass, isRowDisabled && 'cursor-not-allowed opacity-50')}>\n {tableActions(rowData, index)}\n <Tooltip title={rowHasPendingEdits ? pendingEditsTooltip : ''}>\n <div\n className={cn(\n 'absolute top-0 left-0 flex items-center justify-center w-full z-20',\n { [backgroundColorClass]: rowHovering !== id || 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 rowHasPendingEdits && 'pointer-events-none',\n )}\n >\n {tableActions(rowData, index)}\n </div>\n </Tooltip>\n </td>\n );\n};\n\nexport const RowActionCell = React.memo(RowActionCellInner);\n"],"names":["RowActionCellInner","disableOptionsForRowIndex","tableActions","index","is_read","showNewItem","is_modified","is_row_modified","is_deleted","currentData","is_added","rowData","id","rowHovering","isDisabled","bgColor","is_incomplete","isInlineEditing","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","backgroundColorClass","useMemo","isRowDisabled","jsxs","cn","jsx","Tooltip","RowActionCell","React"],"mappings":"oTA0BMA,EAAuC,CAAC,CAC5C,0BAAAC,EACA,aAAAC,EAAA,MACAC,EACA,QAAAC,EACA,YAAAC,EACA,YAAAC,EACA,gBAAAC,EACA,WAAAC,EACA,YAAAC,EACA,SAAAC,EACA,QAAAC,EACA,GAAAC,EACA,YAAAC,EACA,WAAAC,EACA,QAAAC,EACA,cAAAC,EACA,gBAAAC,EACA,mBAAAC,CACF,IAAM,CAEJ,MAAMC,EADcC,EAAAA,eAAA,GACqB,IAAI,sCAAsC,GAAK,uCAElFC,EAAuBC,EAAAA,QAAQ,IAC/BL,EAAwB,oCACxBF,IACAP,GAAcC,GAAa,WAAmB,iCAC9CO,GAAiBV,GAAeC,GAAmBE,GAAa,gBAAwB,kCACxFC,GAAYD,GAAa,SAAiB,gBAC1C,CAACL,GAAWC,GAAe,CAACS,EAAmB,kCAC5C,8BACN,CAACE,EAAeZ,EAASC,EAAaC,EAAaC,EAAiBC,EAAYC,EAAaC,EAAUK,EAASE,EAAiBH,CAAU,CAAC,EAEzIS,EAAgBtB,IAA8BE,GAASW,GAAcI,EAE3E,OACEM,EAAAA,KAAC,KAAA,CAAG,gBAAeD,EAAe,UAAWE,EAAG,wBAAyBJ,EAAsBE,GAAiB,+BAA+B,EAC5I,SAAA,CAAArB,EAAaS,EAASR,CAAK,EAC5BuB,EAAAA,IAACC,EAAA,CAAQ,MAAOT,EAAqBC,EAAsB,GACzD,SAAAO,EAAAA,IAAC,MAAA,CACC,UAAWD,EACT,qEACA,CAAE,CAACJ,CAAoB,EAAGR,IAAgBD,GAAMK,CAAA,EAChD,CAAE,mCAAoCJ,IAAgBD,GAAM,CAACK,GAAmB,EAAET,GAAcC,GAAa,aAAe,EAAEC,GAAYD,GAAa,SAAA,EACvJ,CAAE,iCAAkCI,IAAgBD,GAAM,CAACK,IAAoBT,GAAcC,GAAa,WAAA,EAC1G,CAAE,qCAAsCI,IAAgBD,GAAM,CAACK,IAAoBP,GAAYD,GAAa,SAAA,EAC5GS,GAAsB,qBAAA,EAGvB,SAAAhB,EAAaS,EAASR,CAAK,CAAA,CAAA,CAC9B,CACF,CAAA,EACF,CAEJ,EAEayB,EAAgBC,EAAM,KAAK7B,CAAkB"}
@@ -24,7 +24,7 @@ const M = ({
24
24
  rowHasPendingEdits: f
25
25
  }) => {
26
26
  const x = S()?.t?.("Save or cancel pending changes first") ?? "Save or cancel pending changes first", y = A(() => e ? "bg-primary-50 dark:bg-primary-900" : a || (o || r?.is_deleted ? "bg-error-100 dark:bg-error-975" : h || k || n || r?.is_row_modified ? "bg-warning-50 dark:bg-black-500" : c || r?.is_added ? "bg-success-50" : !m && g && !s ? "bg-primary-50 dark:bg-black-700" : "bg-white dark:bg-black-800"), [h, m, g, k, n, o, r, c, a, e, s]), C = j === t || s || f;
27
- return /* @__PURE__ */ T("td", { "aria-disabled": C, className: d("px-2.5 relative", y, C && "cursor-not-allowed opacity-50"), children: [
27
+ return /* @__PURE__ */ T("td", { "aria-disabled": C, className: d("px-2.5 relative h-row", y, C && "cursor-not-allowed opacity-50"), children: [
28
28
  p(u, t),
29
29
  /* @__PURE__ */ R(v, { title: f ? x : "", children: /* @__PURE__ */ R(
30
30
  "div",
@@ -41,8 +41,8 @@ const M = ({
41
41
  }
42
42
  ) })
43
43
  ] });
44
- }, J = z.memo(M);
44
+ }, G = z.memo(M);
45
45
  export {
46
- J as RowActionCell
46
+ G as RowActionCell
47
47
  };
48
48
  //# sourceMappingURL=RowActionCell.es.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"RowActionCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React, { useMemo } from 'react';\n\ntype TProps = {\n disableOptionsForRowIndex: number | null;\n tableActions: (rowData: Record<string, unknown>, index: number) => JSX.Element;\n index: number;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n currentData: Record<string, unknown>;\n is_added: boolean;\n rowData: Record<string, unknown>;\n id: string | number;\n rowHovering: string | number | null;\n isDisabled?: boolean;\n bgColor?: string;\n is_incomplete: boolean;\n isInlineEditing?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nconst RowActionCellInner: React.FC<TProps> = ({\n disableOptionsForRowIndex,\n tableActions,\n index,\n is_read,\n showNewItem,\n is_modified,\n is_row_modified,\n is_deleted,\n currentData,\n is_added,\n rowData,\n id,\n rowHovering,\n isDisabled,\n bgColor,\n is_incomplete,\n isInlineEditing,\n rowHasPendingEdits,\n}) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n\n const backgroundColorClass = useMemo(() => {\n if (isInlineEditing) return 'bg-primary-50 dark:bg-primary-900';\n if (bgColor) return bgColor;\n if (is_deleted || currentData?.is_deleted) return 'bg-error-100 dark:bg-error-975';\n if (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) return 'bg-warning-50 dark:bg-black-500';\n if (is_added || currentData?.is_added) return 'bg-success-50';\n if (!is_read && showNewItem && !isDisabled) return 'bg-primary-50 dark:bg-black-700';\n return 'bg-white dark:bg-black-800';\n }, [is_incomplete, is_read, showNewItem, is_modified, is_row_modified, is_deleted, currentData, is_added, bgColor, isInlineEditing, isDisabled]);\n\n const isRowDisabled = disableOptionsForRowIndex === index || isDisabled || rowHasPendingEdits;\n\n return (\n <td aria-disabled={isRowDisabled} className={cn('px-2.5 relative', backgroundColorClass, isRowDisabled && 'cursor-not-allowed opacity-50')}>\n {tableActions(rowData, index)}\n <Tooltip title={rowHasPendingEdits ? pendingEditsTooltip : ''}>\n <div\n className={cn(\n 'absolute top-0 left-0 flex items-center justify-center w-full z-20',\n { [backgroundColorClass]: rowHovering !== id || 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 rowHasPendingEdits && 'pointer-events-none',\n )}\n >\n {tableActions(rowData, index)}\n </div>\n </Tooltip>\n </td>\n );\n};\n\nexport const RowActionCell = React.memo(RowActionCellInner);\n"],"names":["RowActionCellInner","disableOptionsForRowIndex","tableActions","index","is_read","showNewItem","is_modified","is_row_modified","is_deleted","currentData","is_added","rowData","id","rowHovering","isDisabled","bgColor","is_incomplete","isInlineEditing","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","backgroundColorClass","useMemo","isRowDisabled","jsxs","cn","jsx","Tooltip","RowActionCell","React"],"mappings":";;;;;AA0BA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,2BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AACF,MAAM;AAEJ,QAAMC,IADcC,EAAA,GACqB,IAAI,sCAAsC,KAAK,wCAElFC,IAAuBC,EAAQ,MAC/BL,IAAwB,sCACxBF,MACAP,KAAcC,GAAa,aAAmB,mCAC9CO,KAAiBV,KAAeC,KAAmBE,GAAa,kBAAwB,oCACxFC,KAAYD,GAAa,WAAiB,kBAC1C,CAACL,KAAWC,KAAe,CAACS,IAAmB,oCAC5C,+BACN,CAACE,GAAeZ,GAASC,GAAaC,GAAaC,GAAiBC,GAAYC,GAAaC,GAAUK,GAASE,GAAiBH,CAAU,CAAC,GAEzIS,IAAgBtB,MAA8BE,KAASW,KAAcI;AAE3E,SACE,gBAAAM,EAAC,MAAA,EAAG,iBAAeD,GAAe,WAAWE,EAAG,mBAAmBJ,GAAsBE,KAAiB,+BAA+B,GACtI,UAAA;AAAA,IAAArB,EAAaS,GAASR,CAAK;AAAA,IAC5B,gBAAAuB,EAACC,GAAA,EAAQ,OAAOT,IAAqBC,IAAsB,IACzD,UAAA,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACA,EAAE,CAACJ,CAAoB,GAAGR,MAAgBD,KAAMK,EAAA;AAAA,UAChD,EAAE,oCAAoCJ,MAAgBD,KAAM,CAACK,KAAmB,EAAET,KAAcC,GAAa,eAAe,EAAEC,KAAYD,GAAa,UAAA;AAAA,UACvJ,EAAE,kCAAkCI,MAAgBD,KAAM,CAACK,MAAoBT,KAAcC,GAAa,YAAA;AAAA,UAC1G,EAAE,sCAAsCI,MAAgBD,KAAM,CAACK,MAAoBP,KAAYD,GAAa,UAAA;AAAA,UAC5GS,KAAsB;AAAA,QAAA;AAAA,QAGvB,UAAAhB,EAAaS,GAASR,CAAK;AAAA,MAAA;AAAA,IAAA,EAC9B,CACF;AAAA,EAAA,GACF;AAEJ,GAEayB,IAAgBC,EAAM,KAAK7B,CAAkB;"}
1
+ {"version":3,"file":"RowActionCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/RowActionCell.tsx"],"sourcesContent":["import Tooltip from '../../../../tooltip/Tooltip';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport cn from 'classnames';\nimport React, { useMemo } from 'react';\n\ntype TProps = {\n disableOptionsForRowIndex: number | null;\n tableActions: (rowData: Record<string, unknown>, index: number) => JSX.Element;\n index: number;\n is_read: boolean;\n showNewItem: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n currentData: Record<string, unknown>;\n is_added: boolean;\n rowData: Record<string, unknown>;\n id: string | number;\n rowHovering: string | number | null;\n isDisabled?: boolean;\n bgColor?: string;\n is_incomplete: boolean;\n isInlineEditing?: boolean;\n rowHasPendingEdits?: boolean;\n};\n\nconst RowActionCellInner: React.FC<TProps> = ({\n disableOptionsForRowIndex,\n tableActions,\n index,\n is_read,\n showNewItem,\n is_modified,\n is_row_modified,\n is_deleted,\n currentData,\n is_added,\n rowData,\n id,\n rowHovering,\n isDisabled,\n bgColor,\n is_incomplete,\n isInlineEditing,\n rowHasPendingEdits,\n}) => {\n const tableConfig = useTableConfig();\n const pendingEditsTooltip = tableConfig?.t?.('Save or cancel pending changes first') ?? 'Save or cancel pending changes first';\n\n const backgroundColorClass = useMemo(() => {\n if (isInlineEditing) return 'bg-primary-50 dark:bg-primary-900';\n if (bgColor) return bgColor;\n if (is_deleted || currentData?.is_deleted) return 'bg-error-100 dark:bg-error-975';\n if (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) return 'bg-warning-50 dark:bg-black-500';\n if (is_added || currentData?.is_added) return 'bg-success-50';\n if (!is_read && showNewItem && !isDisabled) return 'bg-primary-50 dark:bg-black-700';\n return 'bg-white dark:bg-black-800';\n }, [is_incomplete, is_read, showNewItem, is_modified, is_row_modified, is_deleted, currentData, is_added, bgColor, isInlineEditing, isDisabled]);\n\n const isRowDisabled = disableOptionsForRowIndex === index || isDisabled || rowHasPendingEdits;\n\n return (\n <td aria-disabled={isRowDisabled} className={cn('px-2.5 relative h-row', backgroundColorClass, isRowDisabled && 'cursor-not-allowed opacity-50')}>\n {tableActions(rowData, index)}\n <Tooltip title={rowHasPendingEdits ? pendingEditsTooltip : ''}>\n <div\n className={cn(\n 'absolute top-0 left-0 flex items-center justify-center w-full z-20',\n { [backgroundColorClass]: rowHovering !== id || 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 rowHasPendingEdits && 'pointer-events-none',\n )}\n >\n {tableActions(rowData, index)}\n </div>\n </Tooltip>\n </td>\n );\n};\n\nexport const RowActionCell = React.memo(RowActionCellInner);\n"],"names":["RowActionCellInner","disableOptionsForRowIndex","tableActions","index","is_read","showNewItem","is_modified","is_row_modified","is_deleted","currentData","is_added","rowData","id","rowHovering","isDisabled","bgColor","is_incomplete","isInlineEditing","rowHasPendingEdits","pendingEditsTooltip","useTableConfig","backgroundColorClass","useMemo","isRowDisabled","jsxs","cn","jsx","Tooltip","RowActionCell","React"],"mappings":";;;;;AA0BA,MAAMA,IAAuC,CAAC;AAAA,EAC5C,2BAAAC;AAAA,EACA,cAAAC;AAAA,EACA,OAAAC;AAAA,EACA,SAAAC;AAAA,EACA,aAAAC;AAAA,EACA,aAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,YAAAC;AAAA,EACA,aAAAC;AAAA,EACA,UAAAC;AAAA,EACA,SAAAC;AAAA,EACA,IAAAC;AAAA,EACA,aAAAC;AAAA,EACA,YAAAC;AAAA,EACA,SAAAC;AAAA,EACA,eAAAC;AAAA,EACA,iBAAAC;AAAA,EACA,oBAAAC;AACF,MAAM;AAEJ,QAAMC,IADcC,EAAA,GACqB,IAAI,sCAAsC,KAAK,wCAElFC,IAAuBC,EAAQ,MAC/BL,IAAwB,sCACxBF,MACAP,KAAcC,GAAa,aAAmB,mCAC9CO,KAAiBV,KAAeC,KAAmBE,GAAa,kBAAwB,oCACxFC,KAAYD,GAAa,WAAiB,kBAC1C,CAACL,KAAWC,KAAe,CAACS,IAAmB,oCAC5C,+BACN,CAACE,GAAeZ,GAASC,GAAaC,GAAaC,GAAiBC,GAAYC,GAAaC,GAAUK,GAASE,GAAiBH,CAAU,CAAC,GAEzIS,IAAgBtB,MAA8BE,KAASW,KAAcI;AAE3E,SACE,gBAAAM,EAAC,MAAA,EAAG,iBAAeD,GAAe,WAAWE,EAAG,yBAAyBJ,GAAsBE,KAAiB,+BAA+B,GAC5I,UAAA;AAAA,IAAArB,EAAaS,GAASR,CAAK;AAAA,IAC5B,gBAAAuB,EAACC,GAAA,EAAQ,OAAOT,IAAqBC,IAAsB,IACzD,UAAA,gBAAAO;AAAA,MAAC;AAAA,MAAA;AAAA,QACC,WAAWD;AAAA,UACT;AAAA,UACA,EAAE,CAACJ,CAAoB,GAAGR,MAAgBD,KAAMK,EAAA;AAAA,UAChD,EAAE,oCAAoCJ,MAAgBD,KAAM,CAACK,KAAmB,EAAET,KAAcC,GAAa,eAAe,EAAEC,KAAYD,GAAa,UAAA;AAAA,UACvJ,EAAE,kCAAkCI,MAAgBD,KAAM,CAACK,MAAoBT,KAAcC,GAAa,YAAA;AAAA,UAC1G,EAAE,sCAAsCI,MAAgBD,KAAM,CAACK,MAAoBP,KAAYD,GAAa,UAAA;AAAA,UAC5GS,KAAsB;AAAA,QAAA;AAAA,QAGvB,UAAAhB,EAAaS,GAASR,CAAK;AAAA,MAAA;AAAA,IAAA,EAC9B,CACF;AAAA,EAAA,GACF;AAEJ,GAEayB,IAAgBC,EAAM,KAAK7B,CAAkB;"}