@lax-wp/design-system 0.14.35 → 0.14.37
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/data-display/infinite-table/CellContextMenuPortal.cjs.js +2 -0
- package/dist/components/data-display/infinite-table/CellContextMenuPortal.cjs.js.map +1 -0
- package/dist/components/data-display/infinite-table/CellContextMenuPortal.d.ts +28 -0
- package/dist/components/data-display/infinite-table/CellContextMenuPortal.es.js +226 -0
- package/dist/components/data-display/infinite-table/CellContextMenuPortal.es.js.map +1 -0
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js +169 -151
- package/dist/components/data-display/infinite-table/body/cell/DataCell.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/constants.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/constants.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/constants.d.ts +8 -0
- package/dist/components/data-display/infinite-table/constants.es.js +24 -20
- package/dist/components/data-display/infinite-table/constants.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/context.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/context.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/context.d.ts +5 -1
- package/dist/components/data-display/infinite-table/context.es.js +5 -2
- package/dist/components/data-display/infinite-table/context.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/copy-text.cjs.js +3 -0
- package/dist/components/data-display/infinite-table/copy-text.cjs.js.map +1 -0
- package/dist/components/data-display/infinite-table/copy-text.d.ts +13 -0
- package/dist/components/data-display/infinite-table/copy-text.es.js +19 -0
- package/dist/components/data-display/infinite-table/copy-text.es.js.map +1 -0
- package/dist/components/data-display/infinite-table/index.cjs.js +1 -1
- package/dist/components/data-display/infinite-table/index.cjs.js.map +1 -1
- package/dist/components/data-display/infinite-table/index.d.ts +1 -1
- package/dist/components/data-display/infinite-table/index.es.js +518 -497
- package/dist/components/data-display/infinite-table/index.es.js.map +1 -1
- package/dist/components/data-display/infinite-table/types.d.ts +69 -0
- package/dist/components/forms/currency-input/CurrencyInputField.cjs.js +1 -1
- package/dist/components/forms/currency-input/CurrencyInputField.cjs.js.map +1 -1
- package/dist/components/forms/currency-input/CurrencyInputField.es.js +24 -24
- package/dist/components/forms/currency-input/CurrencyInputField.es.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/providers/design-system-provider/types.d.ts +1 -0
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataCell.es.js","sources":["../../../../../../src/components/data-display/infinite-table/body/cell/DataCell.tsx"],"sourcesContent":["import { useTheme } from '../../../../../hooks/useTheme';\nimport { formatCurrency } from '../../../../../utils/formatters';\nimport { formatDate } from '../../../../../utils/formatters';\nimport { getTableRowBgClassNamesByStatus } from '../../../../../constants/table';\nimport type { ICell, IPendingEdit, ValidateAndSaveResult } from '../../types';\nimport { useTableConfig } from '../../../../../providers/design-system-provider/hooks';\nimport Tooltip from '../../../../tooltip/Tooltip';\nimport { Typography } from '../../../../data-display/typography/Typography';\nimport { KeyboardArrowDownIcon, KeyboardArrowRightFilledIcon, LinkIcon, LoadingSpinnerIcon } from '../../../../icon';\nimport { OpenInNewRounded } from '@mui/icons-material';\nimport cn from 'classnames';\nimport React, { useCallback, useContext, useEffect, useRef, useState } from 'react';\nimport { Link } from 'react-router-dom';\n\nimport { TableContext } from '../../context';\nimport { InlineEditField } from './InlineEditField';\nimport { CELL_DEFAULT_RIGHT_OFFSET, CELL_INDENT_PER_LEVEL_PX, CELL_STICKY_SHADOW_DARK, CELL_STICKY_SHADOW_LIGHT } from '../../constants';\n\ntype CellProps = {\n cell: ICell;\n id: string | number;\n nextWidthSum: number;\n isLastCell: boolean;\n rowHovering: string | number | null;\n index: number;\n isFirstStickyCell: boolean;\n handleCellClick: (e?: React.MouseEvent) => void | null;\n currentData: { is_row_modified?: boolean; is_deleted?: boolean; is_added?: boolean };\n highlightSubstring?: (value: string) => JSX.Element;\n is_read: boolean;\n is_modified: boolean;\n is_row_modified: boolean;\n is_deleted: boolean;\n is_added: boolean;\n level: number;\n inlineEditing: string | null;\n isInlineEditing?: boolean;\n setRowHovering: (id: string | number | null) => void;\n handleCellValueChange: (event: React.ChangeEvent<HTMLInputElement>) => void;\n cellRef: React.RefObject<HTMLDivElement>;\n handleUpdateCellData: (directValue?: string | boolean | null, meta?: { currency_code?: string | null; reference?: unknown | null;[key: string]: unknown | null } | null) => void;\n registerValidation?: (validateFn: () => ValidateAndSaveResult) => void;\n loadingExpand: boolean;\n toggleRowExpand: () => void;\n isDraggingOver?: boolean;\n isLoading?: boolean;\n is_incomplete?: boolean;\n pendingEdit?: IPendingEdit;\n hasPendingEdit?: boolean;\n pendingValidationError?: string | null;\n};\n\nlet interval: ReturnType<typeof setInterval> | undefined;\n\nconst formatDurationFallback = (duration: unknown): string => {\n const durationInMs = Number(duration);\n\n if (Number.isNaN(durationInMs) || duration === null || duration === undefined) {\n return '0ms';\n }\n\n if (durationInMs >= 86400000) {\n const days = Math.floor(durationInMs / 86400000);\n const hours = Math.floor((durationInMs % 86400000) / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${days}d ${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 3600000) {\n const hours = Math.floor(durationInMs / 3600000);\n const minutes = Math.floor((durationInMs % 3600000) / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${hours}h ${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 60000) {\n const minutes = Math.floor(durationInMs / 60000);\n const seconds = Math.floor((durationInMs % 60000) / 1000);\n return `${minutes}m ${seconds}s`;\n }\n\n if (durationInMs >= 1000) {\n return `${(durationInMs / 1000).toFixed(2)}s`;\n }\n\n return `${durationInMs}ms`;\n};\n\nconst CellWrapper = ({ children, withLink, linkTo, rowData, disableRowClick }: { children: React.ReactNode; withLink?: boolean; linkTo?: (id: string, _rowData?: Record<string, unknown>) => string; rowData?: Record<string, unknown>; disableRowClick?: boolean }) => {\n return withLink && !disableRowClick ? <Link to={linkTo?.(rowData?.id as string, rowData) || ''}>{children}</Link> : children;\n};\n\nconst DataCellInner: React.FC<CellProps> = ({\n cell, id, nextWidthSum, isLastCell, rowHovering, index, isFirstStickyCell, handleCellClick, currentData, highlightSubstring,\n is_read, is_modified, is_row_modified, is_deleted, is_added, level, inlineEditing, isInlineEditing, setRowHovering,\n handleCellValueChange, cellRef, handleUpdateCellData, registerValidation, loadingExpand, toggleRowExpand,\n isDraggingOver, isLoading, is_incomplete, pendingEdit, hasPendingEdit, pendingValidationError,\n}) => {\n const {\n cascadingTableConfig, originalsOnly, maxLevel, showNewItem, expandedRows, rowLinkConfig, multiSelectConfig,\n cellEditing, cellEditingValue, allowInlineEdit, fieldOperationLoading, pendingEdits: contextPendingEdits,\n selectedRowId,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-700': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n useEffect(() => {\n const isRunning = cell?.row?.original?.status === 'running';\n if (isRunning && cell.column?.dataType === 'duration') {\n interval = setInterval(() => {\n const startedTime = new Date(formatDate((cell?.row?.original?.created_at || cell?.row?.original?.executed_on) as string | undefined, { withTime: true, format: 'yyyy-MM-dd HH:mm:ss' }) as unknown as Date);\n const timeDiff = Math.abs(new Date().getTime() - new Date(startedTime).getTime());\n setCellValue(getNodeExecutionDuration ? getNodeExecutionDuration(timeDiff) : formatDurationFallback(timeDiff));\n }, 500);\n }\n return () => { if (interval) clearInterval(interval); };\n }, [cellValue, cell.value, cell?.row?.original?.created_at, cell?.row?.original?.executed_on, cell?.row?.original?.status, cell.column?.dataType, getNodeExecutionDuration]);\n\n useEffect(() => {\n if (cell?.column?.tooltipCellKey || cell?.column?.type?.toLowerCase() === 'url') {\n if (cell?.column?.type?.toLowerCase() === 'url') setTooltipText(cell?.value as string | null);\n else setTooltipText(cell?.row?.original?.[String(cell?.column?.tooltipCellKey)] as string | null);\n }\n }, [cell?.column?.tooltipCellKey, cell?.row?.original, cell?.column?.type, cell?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'currency') {\n if (pendingEdit?.value !== undefined) {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n const currencyCode = pendingEdit?.meta?.currency_code || rawData?.[headerKey]?.currency_code || 'USD';\n setCellValue(formatCurrency(pendingEdit.value, currencyCode as string));\n } else {\n const rawData = cell?.row?.original?.__rawData as Record<string, Record<string, unknown>> | undefined;\n const headerKey = cell?.column?.Header as unknown as string;\n setCellValue(formatCurrency(cell?.value, (rawData?.[headerKey]?.currency_code as string) || 'USD'));\n }\n }\n }, [cell?.value, cell?.column?.type, cell?.column?.Header, cell?.row?.original?.__rawData, pendingEdit?.value, pendingEdit?.meta?.currency_code]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'percentage') {\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value?.toString() + '%' || '');\n else setCellValue(cell?.value?.toString() + '%' || '');\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['date', 'datetime'].includes(columnType)) {\n if (pendingEdit?.value !== undefined) {\n const hasTime = columnType === 'datetime';\n const formattedValue = formatDate(pendingEdit.value as string, { withTime: hasTime, skipTimezone: true });\n setCellValue(formattedValue || pendingEdit.value);\n } else setCellValue(cell.value);\n }\n }, [cell?.value, cell?.column?.type, pendingEdit?.value]);\n\n useEffect(() => {\n const columnType = cell?.column?.type?.toLowerCase() || '';\n if (['currency', 'percentage', 'duration', 'boolean', 'date', 'datetime'].includes(columnType)) return;\n if (pendingEdit?.value !== undefined) setCellValue(pendingEdit.value);\n else if (cell?.column?.dataType !== 'duration') setCellValue(cell.value);\n }, [cell?.value, cell?.column?.type, cell?.column?.dataType, pendingEdit?.value]);\n\n useEffect(() => {\n if (cell?.column?.type?.toLowerCase() === 'boolean' && allowInlineEdit) {\n const rawValue = pendingEdit?.value !== undefined ? pendingEdit.value : cell?.value;\n const booleanValue = rawValue === true || rawValue === 'true' || rawValue === 'True' || rawValue === 'Yes' || rawValue === 1;\n setCellValue(booleanValue ? 'Yes' : 'No');\n }\n }, [cell?.value, cell?.column?.type, allowInlineEdit, pendingEdit?.value]);\n\n useEffect(() => {\n return () => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n };\n }, []);\n\n const isUiElementCell = React.isValidElement(cellValue);\n\n return (\n <td\n key={index} id={cell.value as string | undefined} data-column-key={cell?.column?.key} {...cell.getCellProps()}\n onClick={rowLinkConfig?.isEnabled ? undefined : onClick}\n className={cn('h-row', {\n 'sticky left-0': cell?.column?.sticky,\n relative: !cell?.column?.sticky,\n 'w-full': isLastCell,\n 'overflow-visible': inlineEditing === cell.column.key,\n /** Chips/badges: avoid vertical clip from overflow-x-hidden + truncate (see isUiElementCell branch below) */\n 'overflow-x-hidden overflow-y-visible': inlineEditing !== cell.column.key && isUiElementCell,\n 'overflow-hidden': inlineEditing !== cell.column.key && !isUiElementCell,\n },\n cellValidationError && !isActuallyInlineEditing ? 'outline outline-2 outline-error-500 -outline-offset-2 z-[5]' : '',\n `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`,\n )}\n style={{ minWidth: `${cell.column.width}px`, maxWidth: `${cell.column.width}px`, right: cell?.column?.sticky ? `${nextWidthSum}px` : CELL_DEFAULT_RIGHT_OFFSET, paddingLeft: level > 0 && index === 0 ? `${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined }}\n onMouseEnter={onMouseEnter} onMouseLeave={onMouseLeave}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","useContext","TableContext","isSelectedRow","tableConfig","useTableConfig","isLocked","cellValidationError","isActuallyInlineEditing","isFieldOperationLoading","theme","useTheme","isDark","onMouseEnter","useCallback","onMouseLeave","getNodeExecutionDuration","cellValue","setCellValue","useState","tooltipText","setTooltipText","isTruncated","setIsTruncated","urlTooltipOpen","setUrlTooltipOpen","truncateTooltipOpen","setTruncateTooltipOpen","textRef","useRef","urlTooltipTimer","truncateTooltipTimer","selectedColumnIds","shouldHighlight","checkTruncation","handleUrlTooltipChange","open","handleTruncateTooltipChange","bgColor","cn","getTableRowBgClassNamesByStatus","onClick","e","useEffect","startedTime","formatDate","timeDiff","rawData","headerKey","currencyCode","formatCurrency","columnType","hasTime","formattedValue","rawValue","isUiElementCell","React","jsxs","CELL_DEFAULT_RIGHT_OFFSET","CELL_INDENT_PER_LEVEL_PX","currentCellId","editValue","LoadingSpinnerIcon","InlineEditField","Fragment","Tooltip","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","KeyboardArrowDownIcon","KeyboardArrowRightFilledIcon","LinkIcon","Typography","OpenInNewRounded","DataCell"],"mappings":"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"}
|
|
1
|
+
{"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, ICellContextMenuTarget, 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 { getCellText, getRowText } from '../../copy-text';\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, cellContextMenuConfig, openCellContextMenu,\n } = useContext(TableContext);\n\n const isSelectedRow =\n selectedRowId !== null && selectedRowId !== undefined && String(selectedRowId) === String(id);\n\n const tableConfig = useTableConfig();\n\n const rowCellMeta = cell?.column?.key ? (cell?.row?.original?.__cellMetadata as Record<string, Record<string, unknown>> | undefined)?.[cell.column.key] : undefined;\n const isLocked = rowCellMeta?.is_locked ?? cell?.column?.is_locked;\n const cellValidationError = (cell?.column?.key ? contextPendingEdits?.[id]?.[cell.column.key]?.validationError : null) || pendingValidationError || null;\n const isActuallyInlineEditing = inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled;\n const isFieldOperationLoading = fieldOperationLoading === `${id}-${cell?.column?.id}`;\n const { theme } = useTheme();\n const isDark = theme === 'dark';\n const onMouseEnter = useCallback(() => setRowHovering(id), [setRowHovering, id]);\n const onMouseLeave = useCallback(() => setRowHovering(null), [setRowHovering]);\n\n const getNodeExecutionDuration = tableConfig?.formatDuration;\n const [cellValue, setCellValue] = useState(\n cell?.column?.dataType === 'duration' && cell?.value\n ? getNodeExecutionDuration\n ? getNodeExecutionDuration(cell.value)\n : formatDurationFallback(cell.value)\n : cell.value,\n );\n const [tooltipText, setTooltipText] = useState<string | null>(null);\n const [isTruncated, setIsTruncated] = useState(false);\n const [urlTooltipOpen, setUrlTooltipOpen] = useState(false);\n const [truncateTooltipOpen, setTruncateTooltipOpen] = useState(false);\n const textRef = useRef<HTMLSpanElement>(null);\n const urlTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const truncateTooltipTimer = useRef<ReturnType<typeof setTimeout>>();\n const { selectedColumnIds = [] } = multiSelectConfig || {};\n const shouldHighlight = !Object.prototype.hasOwnProperty.call(cell?.column?.meta ?? {}, 'shouldHighlight') || cell?.column?.meta?.shouldHighlight;\n\n const checkTruncation = useCallback(() => {\n if (textRef.current) {\n setIsTruncated(textRef.current.scrollWidth > textRef.current.clientWidth);\n }\n }, []);\n\n const handleUrlTooltipChange = useCallback((open: boolean) => {\n if (urlTooltipTimer.current) {\n clearTimeout(urlTooltipTimer.current);\n }\n\n if (open) {\n setUrlTooltipOpen(true);\n } else {\n urlTooltipTimer.current = setTimeout(() => setUrlTooltipOpen(false), 200);\n }\n }, []);\n\n const handleTruncateTooltipChange = useCallback((open: boolean) => {\n if (truncateTooltipTimer.current) {\n clearTimeout(truncateTooltipTimer.current);\n }\n\n if (open) {\n setTruncateTooltipOpen(true);\n } else {\n truncateTooltipTimer.current = setTimeout(() => setTruncateTooltipOpen(false), 200);\n }\n }, []);\n\n const bgColor = cn({\n 'bg-amber-100 dark:bg-amber-900/30': hasPendingEdit,\n 'bg-neutral-100 dark:bg-black-600': rowHovering === id && !isInlineEditing && !hasPendingEdit && !(is_deleted || currentData?.is_deleted) && !(is_added || currentData?.is_added),\n 'bg-error-200 dark:bg-error-900': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_deleted || currentData?.is_deleted),\n 'bg-success-100 dark:bg-success-800': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_added || currentData?.is_added),\n 'bg-warning-100 dark:bg-warning-950': rowHovering === id && !isInlineEditing && !hasPendingEdit && (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified),\n // 'bg-primary-50 dark:bg-black-700': !is_incomplete && !is_read && showNewItem && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-warning-50 dark:bg-orange-900': (is_incomplete || is_modified || is_row_modified || currentData?.is_row_modified) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-error-100 dark:bg-error-975': (is_deleted || currentData?.is_deleted) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-success-50 dark:bg-success-900': (is_added || currentData?.is_added) && !isLoading && rowHovering !== id && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-900': (isDraggingOver || isInlineEditing) && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-800': selectedColumnIds?.includes(cell.column.id) && !isInlineEditing && !hasPendingEdit,\n 'bg-primary-50 dark:bg-primary-700': isSelectedRow && rowHovering !== id && !isInlineEditing && !hasPendingEdit && !isLoading,\n [getTableRowBgClassNamesByStatus[cell?.row?.original?.__rowBgStatus as string]]: cell?.row?.original?.__rowBgStatus && !isInlineEditing && !hasPendingEdit,\n });\n\n const onClick = (e: React.MouseEvent) => { if (cell.column?.disableRowClick) return; handleCellClick(e); };\n\n const handleContextMenu = useCallback((event: React.MouseEvent<HTMLTableCellElement>) => {\n // Keep the native menu when the table opted out, or while inline editing (cut/paste/undo).\n if (cellContextMenuConfig?.isEnabled === false || !openCellContextMenu || isActuallyInlineEditing) return;\n\n const target: ICellContextMenuTarget = {\n rowId: id,\n rowData: (cell?.row?.original ?? {}) as Record<string, unknown>,\n columnKey: cell?.column?.key ?? '',\n column: cell.column,\n value: cell?.value,\n text: getCellText(cellValue, cell?.value, event.currentTarget),\n rowText: getRowText(event.currentTarget),\n cell,\n };\n\n if (cellContextMenuConfig?.isDisabledForCell?.(target)) return;\n\n event.preventDefault();\n event.stopPropagation();\n openCellContextMenu({ x: event.clientX, y: event.clientY, target });\n }, [cellContextMenuConfig, openCellContextMenu, isActuallyInlineEditing, id, cell, cellValue]);\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 onContextMenu={handleContextMenu}\n >\n <CellWrapper withLink={rowLinkConfig?.isEnabled} linkTo={rowLinkConfig?.linkTo || undefined} rowData={cell?.row?.original} disableRowClick={cell?.column?.disableRowClick}>\n {(Array.isArray(cellEditing) ? cellEditing.includes(`${id}-${cell?.column?.id}`) : cellEditing === `${id}-${cell?.column?.id}`) ? (\n <div className='h-row top-0 font-medium font-inter w-full absolute flex items-center px-4'>\n <span className='text-neutral-400 dark:text-black-400 truncate'>\n {(() => {\n const currentCellId = `${id}-${cell?.column?.id}`;\n const editValue = typeof cellEditingValue === 'object' ? cellEditingValue?.[currentCellId] : cellEditingValue;\n const columnType = cell?.column?.type?.toLowerCase();\n\n if (columnType === 'boolean') {\n return (editValue as unknown) === true || editValue === 'true' || editValue === 'True' ? 'Yes' : 'No';\n }\n\n if ((columnType === 'date' || columnType === 'datetime') && editValue) {\n const hasTime = columnType === 'datetime';\n return formatDate(editValue as string, { withTime: hasTime, skipTimezone: true }) || String(editValue);\n }\n\n return editValue !== undefined && editValue !== null ? String(editValue) : (cellValue as React.ReactNode);\n })()}\n </span>\n <div className='ml-2 flex items-center gap-1.5'><LoadingSpinnerIcon className='spinner text-neutral-600 dark:text-white' size={12} /></div>\n </div>\n ) : inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled ? (\n <div className='h-row w-full absolute top-0 left-0 flex items-center' style={{ marginLeft: level > 0 && index === 0 ? `-${level * CELL_INDENT_PER_LEVEL_PX}px` : undefined, width: level > 0 && index === 0 ? `calc(100% + ${level * CELL_INDENT_PER_LEVEL_PX}px)` : '100%' }}>\n <InlineEditField cell={cell} id={id} inlineEditing={inlineEditing} cellRef={cellRef} handleCellValueChange={handleCellValueChange} handleUpdateCellData={handleUpdateCellData} registerValidation={registerValidation} />\n </div>\n ) : (\n <>\n {level > 0 && index === 0 && <div className='h-row border-l border-neutral-300 dark:border-black-600 ml-2' />}\n <div className='min-h-6'>\n <Tooltip\n title={tooltipText && cell?.column?.type?.toLowerCase() !== 'url' ? tooltipText : undefined}\n hideTooltip={!tooltipText || cell?.column?.type?.toLowerCase() === 'url'}\n delayShow\n placement='top'\n >\n <div className={cn(`h-row top-0 font-medium font-inter overflow-index-auto whitespace-nowrap text-ellipsis dark:text-black-200 w-full absolute flex items-center ${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`, isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-x-hidden', { 'border border-b-0 border-t-0 border-primary-600 dark:border-blue-800': selectedColumnIds?.includes(cell.column.id) })}\n style={cell?.column?.sticky && isFirstStickyCell ? { boxShadow: isDark ? CELL_STICKY_SHADOW_DARK : CELL_STICKY_SHADOW_LIGHT } : {}}>\n {cascadingTableConfig?.isCascading && !originalsOnly && index === 0 && (\n <div className={cn('w-[22px] h-row flex items-center px-4', `${bgColor ? bgColor : 'bg-white dark:bg-black-800'}`)} id='cascading'>\n {maxLevel! > level && (cell?.row?.original?.__has_children || cascadingTableConfig?.showAllDropdown) && (\n <div>{loadingExpand ? <LoadingSpinnerIcon className='text-neutral-600 dark:text-white' size={8} /> : <div>{expandedRows?.[id]?.isOpen ? <KeyboardArrowDownIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} /> : <KeyboardArrowRightFilledIcon size={20} className='text-neutral-400 dark:text-neutral-400' onClick={(e) => { toggleRowExpand(); e.stopPropagation(); }} />}</div>}</div>\n )}\n </div>\n )}\n\n {cell?.column?.type?.toLowerCase() === 'url' && tooltipText ? (\n <Tooltip\n title={(\n <div onMouseEnter={() => handleUrlTooltipChange(true)} onMouseLeave={() => handleUrlTooltipChange(false)}>\n <a href={tooltipText} target='_blank' rel='noopener noreferrer' onClick={(e) => e.stopPropagation()}>\n <div className='flex gap-1 items-center w-full'>\n <div className='w-4 h-4'>\n <LinkIcon height={16} width={16} />\n </div>\n <Typography variant='medium' size='small' className='truncate' appearance='custom'>{tooltipText}</Typography>\n <OpenInNewRounded sx={{ height: '16px', width: '16px', color: '#016DCF' }} />\n </div>\n </a>\n </div>\n )}\n placement='top'\n open={urlTooltipOpen}\n onOpenChange={handleUrlTooltipChange}\n className='block w-full min-w-0 overflow-hidden'\n >\n <div className='w-full h-row flex items-center px-4 min-w-0 overflow-hidden text-primary-400'>\n <span ref={textRef} data-cell-content onMouseEnter={checkTruncation} className='truncate w-full'>\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n ) : (\n <Tooltip\n title={\n isTruncated && cellValue && !isUiElementCell ? (\n <div\n onMouseEnter={() => handleTruncateTooltipChange(true)}\n onMouseLeave={() => handleTruncateTooltipChange(false)}\n className='max-h-96 overflow-y-auto whitespace-pre-wrap break-words no-scroll'\n >\n {String(cellValue)}\n </div>\n ) : undefined\n }\n placement='top'\n delayShow\n hideTooltip={!!tooltipText}\n open={isTruncated && !tooltipText && !isUiElementCell ? truncateTooltipOpen : undefined}\n onOpenChange={isTruncated && !tooltipText && !isUiElementCell ? handleTruncateTooltipChange : undefined}\n className={cn('block w-full min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}\n >\n <div className={cn('w-full h-row flex items-center px-4 min-w-0', isUiElementCell ? 'overflow-x-hidden overflow-y-visible' : 'overflow-hidden')}>\n <span\n ref={isUiElementCell ? undefined : textRef}\n data-cell-content\n onMouseEnter={isUiElementCell ? undefined : checkTruncation}\n className={cn(isUiElementCell ? 'flex min-w-0 max-w-full items-center justify-start gap-1' : 'truncate w-full')}\n >\n {highlightSubstring && shouldHighlight && !React.isValidElement(cellValue) && typeof cellValue !== 'object'\n ? highlightSubstring(cellValue as string)\n : React.isValidElement(cellValue)\n ? (typeof (cellValue as React.ReactElement<Record<string, unknown>>).type === 'string'\n ? cellValue\n : React.cloneElement(cellValue as React.ReactElement<Record<string, unknown>>, {\n ...((cellValue as React.ReactElement<Record<string, unknown>>).props as Record<string, unknown>),\n containerWidth: cell.column.width,\n }))\n : cellValue as React.ReactNode}\n </span>\n </div>\n </Tooltip>\n )}\n </div>\n </Tooltip>\n </div>\n </>\n )}\n </CellWrapper>\n {cellValidationError && !isActuallyInlineEditing && (\n <div className='absolute bottom-0 left-0 right-0 h-row flex items-end pointer-events-none z-[5]'>\n <div className='w-full bg-error-50 dark:bg-error-975 px-1.5 py-0.5 truncate'><span className='text-error-600 text-2xs font-medium leading-none'>{cellValidationError}</span></div>\n </div>\n )}\n {isFieldOperationLoading && !(inlineEditing === cell.column.key && cell?.column?.canEdit && !isLocked && !cell?.column?.is_disabled) && (\n <div className='absolute top-0 right-0 bg-white dark:bg-black-800 rounded-full w-5 h-5 flex items-center justify-center border border-primary-300 dark:border-primary-600 shadow-sm z-10'>\n <LoadingSpinnerIcon className='text-primary-600 dark:text-white' size={8} />\n </div>\n )}\n </td>\n );\n};\n\nexport const DataCell = React.memo(DataCellInner);\n"],"names":["interval","formatDurationFallback","duration","durationInMs","days","hours","minutes","seconds","CellWrapper","children","withLink","linkTo","rowData","disableRowClick","jsx","Link","DataCellInner","cell","id","nextWidthSum","isLastCell","rowHovering","index","isFirstStickyCell","handleCellClick","currentData","highlightSubstring","is_read","is_modified","is_row_modified","is_deleted","is_added","level","inlineEditing","isInlineEditing","setRowHovering","handleCellValueChange","cellRef","handleUpdateCellData","registerValidation","loadingExpand","toggleRowExpand","isDraggingOver","isLoading","is_incomplete","pendingEdit","hasPendingEdit","pendingValidationError","cascadingTableConfig","originalsOnly","maxLevel","showNewItem","expandedRows","rowLinkConfig","multiSelectConfig","cellEditing","cellEditingValue","allowInlineEdit","fieldOperationLoading","contextPendingEdits","selectedRowId","cellContextMenuConfig","openCellContextMenu","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","handleContextMenu","event","target","getCellText","getRowText","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 _=700,T=430,O=10,
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const _=700,T=430,O=10,E=1,L=100,A=200,I=999999,N=5,D="cubic-bezier(0.18, 0.67, 0.6, 1.22)",C=20,R=200,S=200,F=40,t=28,o=".os-viewport",U="data-row-id",M="data-column-key",c=16,n="0px",s="-8px 0px 8px 0px rgba(255, 255, 255, 0.01)",P="-8px 0px 8px 0px rgba(0, 0, 0, 0.02)",W="28px",B="-160px",H="4px",G=8,K=2,X=99999,p=700;exports.CELL_CONTEXT_MENU_CURSOR_OFFSET=K;exports.CELL_CONTEXT_MENU_VIEWPORT_MARGIN=G;exports.CELL_CONTEXT_MENU_Z_INDEX=X;exports.CELL_DEFAULT_RIGHT_OFFSET=n;exports.CELL_INDENT_PER_LEVEL_PX=c;exports.CELL_STICKY_SHADOW_DARK=s;exports.CELL_STICKY_SHADOW_LIGHT=P;exports.CHECKBOX_PENDING_EDITS_LEFT_OFFSET=W;exports.COPY_FEEDBACK_DURATION=p;exports.DATA_COLUMN_KEY_ATTR=M;exports.DATA_ROW_ID_ATTR=U;exports.DEFAULT_COLUMN_MAX_WIDTH=I;exports.DEFAULT_COLUMN_MIN_WIDTH=L;exports.DEFAULT_COLUMN_WIDTH=A;exports.DEFAULT_PAGE_SIZE=O;exports.DND_ACTIVATION_DISTANCE=N;exports.DROP_ANIMATION_DURATION=C;exports.DROP_ANIMATION_EASING=D;exports.FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM=H;exports.FLOATING_BAR_TOOLTIP_MARGIN_LEFT=B;exports.OS_VIEWPORT_SELECTOR=o;exports.ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH=F;exports.ROW_OPTIONS_COLUMN_WIDTH=t;exports.ROW_SLOT_BORDER_PX=E;exports.SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK=R;exports.SCROLL_TO_CELL_LEFT_OFFSET=S;exports.TOOLBAR_FIRST_BREAKPOINT=_;exports.TOOLBAR_SECOND_BREAKPOINT=T;
|
|
2
2
|
//# sourceMappingURL=constants.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.cjs.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"gFAYO,MAAMA,EAA2B,IAC3BC,EAA4B,IAM5BC,EAAoB,GAUpBC,EAAqB,EAKrBC,EAA2B,IAC3BC,EAAuB,IACvBC,EAA2B,OAM3BC,EAA0B,EAC1BC,EAAwB,sCACxBC,EAA0B,GAM1BC,EAAuC,IAEvCC,EAA6B,IAM7BC,EAAuC,GAEvCC,EAA2B,GAK3BC,EAAuB,eACvBC,EAAmB,cACnBC,EAAuB,kBAMvBC,EAA2B,GAE3BC,EAA4B,MAK5BC,EAA0B,6CAC1BC,EAA2B,uCAM3BC,EAAqC,OAErCC,EAAmC,SACnCC,EAAqC"}
|
|
1
|
+
{"version":3,"file":"constants.cjs.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n\n// ---------------------------------------------------------------------------\n// Cell context menu (right click)\n// ---------------------------------------------------------------------------\n/** Gap kept between the menu and the viewport edges when flipping/clamping. */\nexport const CELL_CONTEXT_MENU_VIEWPORT_MARGIN = 8;\n/** Offset from the cursor so the pointer never sits on the first item. */\nexport const CELL_CONTEXT_MENU_CURSOR_OFFSET = 2;\n/** Above every table overlay (sticky cells, currency dropdown lives at 99999). */\nexport const CELL_CONTEXT_MENU_Z_INDEX = 99999;\n/** How long the menu lingers on \"Copied\" before closing itself. */\nexport const COPY_FEEDBACK_DURATION = 700;\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM","CELL_CONTEXT_MENU_VIEWPORT_MARGIN","CELL_CONTEXT_MENU_CURSOR_OFFSET","CELL_CONTEXT_MENU_Z_INDEX","COPY_FEEDBACK_DURATION"],"mappings":"gFAYO,MAAMA,EAA2B,IAC3BC,EAA4B,IAM5BC,EAAoB,GAUpBC,EAAqB,EAKrBC,EAA2B,IAC3BC,EAAuB,IACvBC,EAA2B,OAM3BC,EAA0B,EAC1BC,EAAwB,sCACxBC,EAA0B,GAM1BC,EAAuC,IAEvCC,EAA6B,IAM7BC,EAAuC,GAEvCC,EAA2B,GAK3BC,EAAuB,eACvBC,EAAmB,cACnBC,EAAuB,kBAMvBC,EAA2B,GAE3BC,EAA4B,MAK5BC,EAA0B,6CAC1BC,EAA2B,uCAM3BC,EAAqC,OAErCC,EAAmC,SACnCC,EAAqC,MAMrCC,EAAoC,EAEpCC,EAAkC,EAElCC,EAA4B,MAE5BC,EAAyB"}
|
|
@@ -45,3 +45,11 @@ export declare const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = "28px";
|
|
|
45
45
|
/** Half the floating-bar tooltip width — negative margin to center it. */
|
|
46
46
|
export declare const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = "-160px";
|
|
47
47
|
export declare const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = "4px";
|
|
48
|
+
/** Gap kept between the menu and the viewport edges when flipping/clamping. */
|
|
49
|
+
export declare const CELL_CONTEXT_MENU_VIEWPORT_MARGIN = 8;
|
|
50
|
+
/** Offset from the cursor so the pointer never sits on the first item. */
|
|
51
|
+
export declare const CELL_CONTEXT_MENU_CURSOR_OFFSET = 2;
|
|
52
|
+
/** Above every table overlay (sticky cells, currency dropdown lives at 99999). */
|
|
53
|
+
export declare const CELL_CONTEXT_MENU_Z_INDEX = 99999;
|
|
54
|
+
/** How long the menu lingers on "Copied" before closing itself. */
|
|
55
|
+
export declare const COPY_FEEDBACK_DURATION = 700;
|
|
@@ -1,27 +1,31 @@
|
|
|
1
|
-
const _ = 700, T = 430, O = 10,
|
|
1
|
+
const _ = 700, T = 430, O = 10, E = 1, L = 100, A = 200, I = 999999, N = 5, D = "cubic-bezier(0.18, 0.67, 0.6, 1.22)", o = 20, C = 200, t = 200, R = 40, c = 28, n = ".os-viewport", s = "data-row-id", F = "data-column-key", S = 16, U = "0px", M = "-8px 0px 8px 0px rgba(255, 255, 255, 0.01)", P = "-8px 0px 8px 0px rgba(0, 0, 0, 0.02)", p = "28px", W = "-160px", x = "4px", B = 8, H = 2, G = 99999, K = 700;
|
|
2
2
|
export {
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
3
|
+
H as CELL_CONTEXT_MENU_CURSOR_OFFSET,
|
|
4
|
+
B as CELL_CONTEXT_MENU_VIEWPORT_MARGIN,
|
|
5
|
+
G as CELL_CONTEXT_MENU_Z_INDEX,
|
|
6
|
+
U as CELL_DEFAULT_RIGHT_OFFSET,
|
|
7
|
+
S as CELL_INDENT_PER_LEVEL_PX,
|
|
8
|
+
M as CELL_STICKY_SHADOW_DARK,
|
|
9
|
+
P as CELL_STICKY_SHADOW_LIGHT,
|
|
10
|
+
p as CHECKBOX_PENDING_EDITS_LEFT_OFFSET,
|
|
11
|
+
K as COPY_FEEDBACK_DURATION,
|
|
12
|
+
F as DATA_COLUMN_KEY_ATTR,
|
|
13
|
+
s as DATA_ROW_ID_ATTR,
|
|
14
|
+
I as DEFAULT_COLUMN_MAX_WIDTH,
|
|
15
|
+
L as DEFAULT_COLUMN_MIN_WIDTH,
|
|
16
|
+
A as DEFAULT_COLUMN_WIDTH,
|
|
13
17
|
O as DEFAULT_PAGE_SIZE,
|
|
14
|
-
|
|
18
|
+
N as DND_ACTIVATION_DISTANCE,
|
|
15
19
|
o as DROP_ANIMATION_DURATION,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
+
D as DROP_ANIMATION_EASING,
|
|
21
|
+
x as FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM,
|
|
22
|
+
W as FLOATING_BAR_TOOLTIP_MARGIN_LEFT,
|
|
23
|
+
n as OS_VIEWPORT_SELECTOR,
|
|
20
24
|
R as ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH,
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
+
c as ROW_OPTIONS_COLUMN_WIDTH,
|
|
26
|
+
E as ROW_SLOT_BORDER_PX,
|
|
27
|
+
C as SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK,
|
|
28
|
+
t as SCROLL_TO_CELL_LEFT_OFFSET,
|
|
25
29
|
_ as TOOLBAR_FIRST_BREAKPOINT,
|
|
26
30
|
T as TOOLBAR_SECOND_BREAKPOINT
|
|
27
31
|
};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"constants.es.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM"],"mappings":"AAYO,MAAMA,IAA2B,KAC3BC,IAA4B,KAM5BC,IAAoB,IAUpBC,IAAqB,GAKrBC,IAA2B,KAC3BC,IAAuB,KACvBC,IAA2B,QAM3BC,IAA0B,GAC1BC,IAAwB,uCACxBC,IAA0B,IAM1BC,IAAuC,KAEvCC,IAA6B,KAM7BC,IAAuC,IAEvCC,IAA2B,IAK3BC,IAAuB,gBACvBC,IAAmB,eACnBC,IAAuB,mBAMvBC,IAA2B,IAE3BC,IAA4B,OAK5BC,IAA0B,8CAC1BC,IAA2B,wCAM3BC,IAAqC,QAErCC,IAAmC,UACnCC,IAAqC;"}
|
|
1
|
+
{"version":3,"file":"constants.es.js","sources":["../../../../src/components/data-display/infinite-table/constants.ts"],"sourcesContent":["/**\n * Shared static values for the InfiniteTable and every component under it.\n *\n * Rule for this subtree: magic numbers, timings, sizes, and meaningful string\n * literals (DOM selectors, data-attributes, CSS values used in inline styles)\n * live here with a descriptive name. Tailwind `className` strings are NOT\n * extracted — they stay inline so JIT can see them and JSX stays readable.\n */\n\n// ---------------------------------------------------------------------------\n// Responsive toolbar breakpoints (header layout collapse thresholds, in px)\n// ---------------------------------------------------------------------------\nexport const TOOLBAR_FIRST_BREAKPOINT = 700;\nexport const TOOLBAR_SECOND_BREAKPOINT = 430;\n\n// ---------------------------------------------------------------------------\n// Table defaults\n// ---------------------------------------------------------------------------\n/** Default page size for pagination when the consumer doesn't pass `pageSize`. */\nexport const DEFAULT_PAGE_SIZE = 10;\n\n// ---------------------------------------------------------------------------\n// Row sizing — virtualization & layout math\n// ---------------------------------------------------------------------------\n/**\n * Extra px added to the measured `h-row` content height to get a full row slot.\n * Accounts for the 1px `border-t` on each `<tr>`. The row content height itself\n * is a viewport clamp (`h-row`), measured at runtime via `useRowHeight`.\n */\nexport const ROW_SLOT_BORDER_PX = 1;\n\n// ---------------------------------------------------------------------------\n// Column sizing defaults (react-table `defaultColumn`, in px)\n// ---------------------------------------------------------------------------\nexport const DEFAULT_COLUMN_MIN_WIDTH = 100;\nexport const DEFAULT_COLUMN_WIDTH = 200;\nexport const DEFAULT_COLUMN_MAX_WIDTH = 999999;\n\n// ---------------------------------------------------------------------------\n// Drag & drop (dnd-kit)\n// ---------------------------------------------------------------------------\n/** Pointer travel (px) before a drag starts, for both mouse and touch sensors. */\nexport const DND_ACTIVATION_DISTANCE = 5;\nexport const DROP_ANIMATION_EASING = 'cubic-bezier(0.18, 0.67, 0.6, 1.22)';\nexport const DROP_ANIMATION_DURATION = 20;\n\n// ---------------------------------------------------------------------------\n// scrollToCell — horizontal auto-scroll to a target inline-edit cell\n// ---------------------------------------------------------------------------\n/** Assumed column width (px) when a header has no explicit width, used to sum offset. */\nexport const SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK = 200;\n/** Left padding (px) kept before the target cell so it isn't flush to the edge. */\nexport const SCROLL_TO_CELL_LEFT_OFFSET = 200;\n\n// ---------------------------------------------------------------------------\n// Trailing action-column widths (px) used when summing sticky offsets\n// ---------------------------------------------------------------------------\n/** Fallback width for the row-additional-actions column when none is provided. */\nexport const ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH = 40;\n/** Width reserved for the row-options (three-dot) column. */\nexport const ROW_OPTIONS_COLUMN_WIDTH = 28;\n\n// ---------------------------------------------------------------------------\n// DOM selectors / data-attributes used to locate cells & the scroll viewport\n// ---------------------------------------------------------------------------\nexport const OS_VIEWPORT_SELECTOR = '.os-viewport';\nexport const DATA_ROW_ID_ATTR = 'data-row-id';\nexport const DATA_COLUMN_KEY_ATTR = 'data-column-key';\n\n// ---------------------------------------------------------------------------\n// DataCell — sizing / layout\n// ---------------------------------------------------------------------------\n/** Left indent (px) added per cascading nesting level. */\nexport const CELL_INDENT_PER_LEVEL_PX = 16;\n/** Fallback `right` offset for non-sticky cells. */\nexport const CELL_DEFAULT_RIGHT_OFFSET = '0px';\n\n// ---------------------------------------------------------------------------\n// DataCell — sticky first-cell drop shadow (theme-specific)\n// ---------------------------------------------------------------------------\nexport const CELL_STICKY_SHADOW_DARK = '-8px 0px 8px 0px rgba(255, 255, 255, 0.01)';\nexport const CELL_STICKY_SHADOW_LIGHT = '-8px 0px 8px 0px rgba(0, 0, 0, 0.02)';\n\n// ---------------------------------------------------------------------------\n// Inline-style pixel offsets (used in style={{…}}, not classNames)\n// ---------------------------------------------------------------------------\n/** Left offset for the checkbox cell when the pending-edits column is present. */\nexport const CHECKBOX_PENDING_EDITS_LEFT_OFFSET = '28px';\n/** Half the floating-bar tooltip width — negative margin to center it. */\nexport const FLOATING_BAR_TOOLTIP_MARGIN_LEFT = '-160px';\nexport const FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM = '4px';\n\n// ---------------------------------------------------------------------------\n// Cell context menu (right click)\n// ---------------------------------------------------------------------------\n/** Gap kept between the menu and the viewport edges when flipping/clamping. */\nexport const CELL_CONTEXT_MENU_VIEWPORT_MARGIN = 8;\n/** Offset from the cursor so the pointer never sits on the first item. */\nexport const CELL_CONTEXT_MENU_CURSOR_OFFSET = 2;\n/** Above every table overlay (sticky cells, currency dropdown lives at 99999). */\nexport const CELL_CONTEXT_MENU_Z_INDEX = 99999;\n/** How long the menu lingers on \"Copied\" before closing itself. */\nexport const COPY_FEEDBACK_DURATION = 700;\n"],"names":["TOOLBAR_FIRST_BREAKPOINT","TOOLBAR_SECOND_BREAKPOINT","DEFAULT_PAGE_SIZE","ROW_SLOT_BORDER_PX","DEFAULT_COLUMN_MIN_WIDTH","DEFAULT_COLUMN_WIDTH","DEFAULT_COLUMN_MAX_WIDTH","DND_ACTIVATION_DISTANCE","DROP_ANIMATION_EASING","DROP_ANIMATION_DURATION","SCROLL_TO_CELL_COLUMN_WIDTH_FALLBACK","SCROLL_TO_CELL_LEFT_OFFSET","ROW_ADDITIONAL_ACTIONS_DEFAULT_WIDTH","ROW_OPTIONS_COLUMN_WIDTH","OS_VIEWPORT_SELECTOR","DATA_ROW_ID_ATTR","DATA_COLUMN_KEY_ATTR","CELL_INDENT_PER_LEVEL_PX","CELL_DEFAULT_RIGHT_OFFSET","CELL_STICKY_SHADOW_DARK","CELL_STICKY_SHADOW_LIGHT","CHECKBOX_PENDING_EDITS_LEFT_OFFSET","FLOATING_BAR_TOOLTIP_MARGIN_LEFT","FLOATING_BAR_TOOLTIP_MARGIN_BOTTOM","CELL_CONTEXT_MENU_VIEWPORT_MARGIN","CELL_CONTEXT_MENU_CURSOR_OFFSET","CELL_CONTEXT_MENU_Z_INDEX","COPY_FEEDBACK_DURATION"],"mappings":"AAYO,MAAMA,IAA2B,KAC3BC,IAA4B,KAM5BC,IAAoB,IAUpBC,IAAqB,GAKrBC,IAA2B,KAC3BC,IAAuB,KACvBC,IAA2B,QAM3BC,IAA0B,GAC1BC,IAAwB,uCACxBC,IAA0B,IAM1BC,IAAuC,KAEvCC,IAA6B,KAM7BC,IAAuC,IAEvCC,IAA2B,IAK3BC,IAAuB,gBACvBC,IAAmB,eACnBC,IAAuB,mBAMvBC,IAA2B,IAE3BC,IAA4B,OAK5BC,IAA0B,8CAC1BC,IAA2B,wCAM3BC,IAAqC,QAErCC,IAAmC,UACnCC,IAAqC,OAMrCC,IAAoC,GAEpCC,IAAkC,GAElCC,IAA4B,OAE5BC,IAAyB;"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),e=l.createContext({tableWrapper:null,tableBodyWrapper:null,lastNonStickyColumnIndex:()=>null,search:null,columnFilters:[],onRowClick:null,onSort:null,onFilter:null,onRemoveFilter:null,onClearFilter:null,rowOptions:null,checkboxConfig:null,onResetFilter:null,isColumnConfigurable:!1,onAddColumnClick:null,onEditColumnClick:null,onDeleteColumnClick:null,toggleShowFilters:null,toggleShowSorts:null,onRowTooltipClick:null,tooltiptext:null,cascadingTableConfig:null,originalsOnly:!1,disableOptionsForRowIndex:null,getFullRowDataOnClick:!1,getSumOfNextVisibleColumnWidth:()=>null,onRowEdit:null,inlineEditColumns:[],tableActions:null,dndSortableUtils:null,withSortable:!1,withDraggable:!1,onCascadingRowExpand:null,getInnerRowData:null,tableHeaders:null,maxLevel:0,expandedRows:{},setExpandedRows:null,showNewItem:!1,rawData:null,dragConfig:null,rowWrapper:null,asyncRowOptionsFilter:null,rowLinkConfig:{isEnabled:!1,linkTo:null},isCellClickDisabled:!1,activeInlineEdit:null,setActiveInlineEdit:void 0,handleUpdateColumnWidth:()=>{},isTableViewReadOnly:!1,multiSelectConfig:null,headerContextOptions:null,showHeaderContextOptions:null,setShowHeaderContextOptions:void 0,showDataTypeIcon:!1,rowAdditionalActions:null,rowAdditionalActionsWidth:0,hoverConfig:null,openMasterDataModal:void 0,closeMasterDataModal:void 0,selectedMasterData:null,clearSelectedMasterData:void 0,openCurrencyDropdown:void 0,closeCurrencyDropdown:void 0,currencyDropdownConfig:null,selectedCurrenciesMap:{},setCurrencyForCell:void 0,getCurrencyForCell:void 0});exports.TableContext=e;
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const l=require("react"),e=l.createContext({tableWrapper:null,tableBodyWrapper:null,lastNonStickyColumnIndex:()=>null,search:null,columnFilters:[],onRowClick:null,onSort:null,onFilter:null,onRemoveFilter:null,onClearFilter:null,rowOptions:null,checkboxConfig:null,onResetFilter:null,isColumnConfigurable:!1,onAddColumnClick:null,onEditColumnClick:null,onDeleteColumnClick:null,toggleShowFilters:null,toggleShowSorts:null,onRowTooltipClick:null,tooltiptext:null,cascadingTableConfig:null,originalsOnly:!1,disableOptionsForRowIndex:null,getFullRowDataOnClick:!1,getSumOfNextVisibleColumnWidth:()=>null,onRowEdit:null,inlineEditColumns:[],tableActions:null,dndSortableUtils:null,withSortable:!1,withDraggable:!1,onCascadingRowExpand:null,getInnerRowData:null,tableHeaders:null,maxLevel:0,expandedRows:{},setExpandedRows:null,showNewItem:!1,rawData:null,dragConfig:null,rowWrapper:null,asyncRowOptionsFilter:null,rowLinkConfig:{isEnabled:!1,linkTo:null},isCellClickDisabled:!1,activeInlineEdit:null,setActiveInlineEdit:void 0,handleUpdateColumnWidth:()=>{},isTableViewReadOnly:!1,multiSelectConfig:null,cellContextMenuConfig:null,openCellContextMenu:void 0,closeCellContextMenu:void 0,headerContextOptions:null,showHeaderContextOptions:null,setShowHeaderContextOptions:void 0,showDataTypeIcon:!1,rowAdditionalActions:null,rowAdditionalActionsWidth:0,hoverConfig:null,openMasterDataModal:void 0,closeMasterDataModal:void 0,selectedMasterData:null,clearSelectedMasterData:void 0,openCurrencyDropdown:void 0,closeCurrencyDropdown:void 0,currencyDropdownConfig:null,selectedCurrenciesMap:{},setCurrencyForCell:void 0,getCurrencyForCell:void 0});exports.TableContext=e;
|
|
2
2
|
//# sourceMappingURL=context.cjs.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.cjs.js","sources":["../../../../src/components/data-display/infinite-table/context.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext } from 'react';\nimport type { ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';\n\nexport interface ITableContext {\n tableWrapper?: any;\n tableBodyWrapper?: any;\n lastNonStickyColumnIndex?: () => number | null;\n search?: string | null;\n columnFilters?: any[];\n onRowClick?: any;\n onSort?: any;\n onFilter?: any;\n toggleShowFilters?: any;\n toggleShowSorts?: any;\n onRemoveFilter?: any;\n onClearFilter?: any;\n rowOptions?: any;\n checkboxConfig?: any;\n onResetFilter?: any;\n isColumnConfigurable?: boolean;\n onAddColumnClick?: any;\n onEditColumnClick?: any;\n onDeleteColumnClick?: any;\n onRowTooltipClick?: any;\n tooltiptext?: any;\n cascadingTableConfig?: any;\n originalsOnly?: boolean;\n disableOptionsForRowIndex?: any;\n getFullRowDataOnClick?: boolean;\n selectedRowId?: string | number | null;\n getSumOfNextVisibleColumnWidth?: (currentIndex: number) => number | null;\n onRowEdit?: any;\n inlineEditColumns?: string[];\n tableActions?: any;\n dndSortableUtils?: any;\n withSortable?: boolean;\n withDraggable?: boolean;\n onCascadingRowExpand?: any;\n getInnerRowData?: any;\n tableHeaders?: any[];\n maxLevel?: number;\n expandedRows?: any;\n setExpandedRows?: any;\n showNewItem?: boolean;\n rawData?: any;\n dragConfig?: any;\n rowWrapper?: any;\n asyncRowOptionsFilter?: any;\n rowLinkConfig?: {\n isEnabled: boolean;\n linkTo: any;\n };\n isCellClickDisabled?: boolean;\n activeInlineEdit?: { rowId: string; columnKey: string } | null;\n setActiveInlineEdit?: (value: { rowId: string; columnKey: string } | null) => void;\n handleUpdateColumnWidth?: (columnName: string, width: number) => void;\n isTableViewReadOnly?: boolean;\n multiSelectConfig?: IMultiSelectConfig | null;\n headerContextOptions?: React.ReactNode;\n showHeaderContextOptions?: string | null;\n setShowHeaderContextOptions?: (value: string | null) => void;\n headerDivWidth?: number;\n showDataTypeIcon?: boolean;\n rowAdditionalActions?: any;\n rowAdditionalActionsWidth?: number;\n hoverConfig?: any;\n cellEditing?: string | string[] | null;\n cellEditingValue?: string | Record<string, string> | null;\n openMasterDataModal?: (config: IMasterDataModalConfig) => void;\n closeMasterDataModal?: () => void;\n selectedMasterData?: { value: any; reference: any } | null;\n clearSelectedMasterData?: () => void;\n allowInlineEdit?: boolean;\n openCurrencyDropdown?: (config: ICurrencyDropdownConfig) => void;\n closeCurrencyDropdown?: () => void;\n currencyDropdownConfig?: ICurrencyDropdownConfig | null;\n selectedCurrenciesMap?: Record<string, string>;\n setCurrencyForCell?: (cellKey: string, currency: string) => void;\n getCurrencyForCell?: (cellKey: string) => string | undefined;\n pendingEdits?: PendingEditsMap;\n addPendingEdit?: (rowId: string, columnKey: string, edit: IPendingEdit) => void;\n removePendingEdit?: (rowId: string, columnKey: string) => void;\n getPendingEdit?: (rowId: string, columnKey: string) => IPendingEdit | undefined;\n hasPendingEdit?: (rowId: string, columnKey: string) => boolean;\n clearAllPendingEdits?: () => void;\n saveAllPendingEdits?: () => void;\n clearRowPendingEdits?: (rowId: string) => void;\n saveRowPendingEdits?: (rowId: string) => void;\n pendingEditsCount?: number;\n scrollToCell?: (rowId: string, columnKey: string, rowIndex: number) => void;\n onFieldOperationFlow?: (params: {\n value: unknown;\n fieldId: string;\n rowId: string;\n rowData: any;\n columnKey: string;\n flowName?: string;\n isLiveField?: boolean;\n meta?: { reference?: unknown; currency_code?: string };\n }) => Promise<void>;\n fieldOperationLoading?: string | null;\n validateAllPendingEdits?: any;\n}\n\nexport const TableContext = createContext<ITableContext>({\n tableWrapper: null,\n tableBodyWrapper: null,\n lastNonStickyColumnIndex: () => null,\n search: null,\n columnFilters: [],\n onRowClick: null,\n onSort: null,\n onFilter: null,\n onRemoveFilter: null,\n onClearFilter: null,\n rowOptions: null,\n checkboxConfig: null,\n onResetFilter: null,\n isColumnConfigurable: false,\n onAddColumnClick: null,\n onEditColumnClick: null,\n onDeleteColumnClick: null,\n toggleShowFilters: null,\n toggleShowSorts: null,\n onRowTooltipClick: null,\n tooltiptext: null,\n cascadingTableConfig: null,\n originalsOnly: false,\n disableOptionsForRowIndex: null,\n getFullRowDataOnClick: false,\n getSumOfNextVisibleColumnWidth: () => null,\n onRowEdit: null,\n inlineEditColumns: [],\n tableActions: null,\n dndSortableUtils: null,\n withSortable: false,\n withDraggable: false,\n onCascadingRowExpand: null,\n getInnerRowData: null,\n tableHeaders: null as any,\n maxLevel: 0,\n expandedRows: {},\n setExpandedRows: null,\n showNewItem: false,\n rawData: null,\n dragConfig: null,\n rowWrapper: null,\n asyncRowOptionsFilter: null,\n rowLinkConfig: {\n isEnabled: false,\n linkTo: null,\n },\n isCellClickDisabled: false,\n activeInlineEdit: null,\n setActiveInlineEdit: undefined,\n handleUpdateColumnWidth: () => undefined,\n isTableViewReadOnly: false,\n multiSelectConfig: null,\n headerContextOptions: null,\n showHeaderContextOptions: null,\n setShowHeaderContextOptions: undefined,\n showDataTypeIcon: false,\n rowAdditionalActions: null,\n rowAdditionalActionsWidth: 0,\n hoverConfig: null,\n openMasterDataModal: undefined,\n closeMasterDataModal: undefined,\n selectedMasterData: null,\n clearSelectedMasterData: undefined,\n openCurrencyDropdown: undefined,\n closeCurrencyDropdown: undefined,\n currencyDropdownConfig: null,\n selectedCurrenciesMap: {},\n setCurrencyForCell: undefined,\n getCurrencyForCell: undefined,\n});\n"],"names":["TableContext","createContext"],"mappings":"
|
|
1
|
+
{"version":3,"file":"context.cjs.js","sources":["../../../../src/components/data-display/infinite-table/context.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext } from 'react';\nimport type { ICellContextMenuConfig, ICellContextMenuState, ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';\n\nexport interface ITableContext {\n tableWrapper?: any;\n tableBodyWrapper?: any;\n lastNonStickyColumnIndex?: () => number | null;\n search?: string | null;\n columnFilters?: any[];\n onRowClick?: any;\n onSort?: any;\n onFilter?: any;\n toggleShowFilters?: any;\n toggleShowSorts?: any;\n onRemoveFilter?: any;\n onClearFilter?: any;\n rowOptions?: any;\n checkboxConfig?: any;\n onResetFilter?: any;\n isColumnConfigurable?: boolean;\n onAddColumnClick?: any;\n onEditColumnClick?: any;\n onDeleteColumnClick?: any;\n onRowTooltipClick?: any;\n tooltiptext?: any;\n cascadingTableConfig?: any;\n originalsOnly?: boolean;\n disableOptionsForRowIndex?: any;\n getFullRowDataOnClick?: boolean;\n selectedRowId?: string | number | null;\n getSumOfNextVisibleColumnWidth?: (currentIndex: number) => number | null;\n onRowEdit?: any;\n inlineEditColumns?: string[];\n tableActions?: any;\n dndSortableUtils?: any;\n withSortable?: boolean;\n withDraggable?: boolean;\n onCascadingRowExpand?: any;\n getInnerRowData?: any;\n tableHeaders?: any[];\n maxLevel?: number;\n expandedRows?: any;\n setExpandedRows?: any;\n showNewItem?: boolean;\n rawData?: any;\n dragConfig?: any;\n rowWrapper?: any;\n asyncRowOptionsFilter?: any;\n rowLinkConfig?: {\n isEnabled: boolean;\n linkTo: any;\n };\n isCellClickDisabled?: boolean;\n activeInlineEdit?: { rowId: string; columnKey: string } | null;\n setActiveInlineEdit?: (value: { rowId: string; columnKey: string } | null) => void;\n handleUpdateColumnWidth?: (columnName: string, width: number) => void;\n isTableViewReadOnly?: boolean;\n multiSelectConfig?: IMultiSelectConfig | null;\n cellContextMenuConfig?: ICellContextMenuConfig | null;\n /** Opens the cell right-click menu at the given viewport coordinates. */\n openCellContextMenu?: (state: ICellContextMenuState) => void;\n closeCellContextMenu?: () => void;\n headerContextOptions?: React.ReactNode;\n showHeaderContextOptions?: string | null;\n setShowHeaderContextOptions?: (value: string | null) => void;\n headerDivWidth?: number;\n showDataTypeIcon?: boolean;\n rowAdditionalActions?: any;\n rowAdditionalActionsWidth?: number;\n hoverConfig?: any;\n cellEditing?: string | string[] | null;\n cellEditingValue?: string | Record<string, string> | null;\n openMasterDataModal?: (config: IMasterDataModalConfig) => void;\n closeMasterDataModal?: () => void;\n selectedMasterData?: { value: any; reference: any } | null;\n clearSelectedMasterData?: () => void;\n allowInlineEdit?: boolean;\n openCurrencyDropdown?: (config: ICurrencyDropdownConfig) => void;\n closeCurrencyDropdown?: () => void;\n currencyDropdownConfig?: ICurrencyDropdownConfig | null;\n selectedCurrenciesMap?: Record<string, string>;\n setCurrencyForCell?: (cellKey: string, currency: string) => void;\n getCurrencyForCell?: (cellKey: string) => string | undefined;\n pendingEdits?: PendingEditsMap;\n addPendingEdit?: (rowId: string, columnKey: string, edit: IPendingEdit) => void;\n removePendingEdit?: (rowId: string, columnKey: string) => void;\n getPendingEdit?: (rowId: string, columnKey: string) => IPendingEdit | undefined;\n hasPendingEdit?: (rowId: string, columnKey: string) => boolean;\n clearAllPendingEdits?: () => void;\n saveAllPendingEdits?: () => void;\n clearRowPendingEdits?: (rowId: string) => void;\n saveRowPendingEdits?: (rowId: string) => void;\n pendingEditsCount?: number;\n scrollToCell?: (rowId: string, columnKey: string, rowIndex: number) => void;\n onFieldOperationFlow?: (params: {\n value: unknown;\n fieldId: string;\n rowId: string;\n rowData: any;\n columnKey: string;\n flowName?: string;\n isLiveField?: boolean;\n meta?: { reference?: unknown; currency_code?: string };\n }) => Promise<void>;\n fieldOperationLoading?: string | null;\n validateAllPendingEdits?: any;\n}\n\nexport const TableContext = createContext<ITableContext>({\n tableWrapper: null,\n tableBodyWrapper: null,\n lastNonStickyColumnIndex: () => null,\n search: null,\n columnFilters: [],\n onRowClick: null,\n onSort: null,\n onFilter: null,\n onRemoveFilter: null,\n onClearFilter: null,\n rowOptions: null,\n checkboxConfig: null,\n onResetFilter: null,\n isColumnConfigurable: false,\n onAddColumnClick: null,\n onEditColumnClick: null,\n onDeleteColumnClick: null,\n toggleShowFilters: null,\n toggleShowSorts: null,\n onRowTooltipClick: null,\n tooltiptext: null,\n cascadingTableConfig: null,\n originalsOnly: false,\n disableOptionsForRowIndex: null,\n getFullRowDataOnClick: false,\n getSumOfNextVisibleColumnWidth: () => null,\n onRowEdit: null,\n inlineEditColumns: [],\n tableActions: null,\n dndSortableUtils: null,\n withSortable: false,\n withDraggable: false,\n onCascadingRowExpand: null,\n getInnerRowData: null,\n tableHeaders: null as any,\n maxLevel: 0,\n expandedRows: {},\n setExpandedRows: null,\n showNewItem: false,\n rawData: null,\n dragConfig: null,\n rowWrapper: null,\n asyncRowOptionsFilter: null,\n rowLinkConfig: {\n isEnabled: false,\n linkTo: null,\n },\n isCellClickDisabled: false,\n activeInlineEdit: null,\n setActiveInlineEdit: undefined,\n handleUpdateColumnWidth: () => undefined,\n isTableViewReadOnly: false,\n multiSelectConfig: null,\n cellContextMenuConfig: null,\n openCellContextMenu: undefined,\n closeCellContextMenu: undefined,\n headerContextOptions: null,\n showHeaderContextOptions: null,\n setShowHeaderContextOptions: undefined,\n showDataTypeIcon: false,\n rowAdditionalActions: null,\n rowAdditionalActionsWidth: 0,\n hoverConfig: null,\n openMasterDataModal: undefined,\n closeMasterDataModal: undefined,\n selectedMasterData: null,\n clearSelectedMasterData: undefined,\n openCurrencyDropdown: undefined,\n closeCurrencyDropdown: undefined,\n currencyDropdownConfig: null,\n selectedCurrenciesMap: {},\n setCurrencyForCell: undefined,\n getCurrencyForCell: undefined,\n});\n"],"names":["TableContext","createContext"],"mappings":"yGA6GaA,EAAeC,EAAAA,cAA6B,CACvD,aAAc,KACd,iBAAkB,KAClB,yBAA0B,IAAM,KAChC,OAAQ,KACR,cAAe,CAAA,EACf,WAAY,KACZ,OAAQ,KACR,SAAU,KACV,eAAgB,KAChB,cAAe,KACf,WAAY,KACZ,eAAgB,KAChB,cAAe,KACf,qBAAsB,GACtB,iBAAkB,KAClB,kBAAmB,KACnB,oBAAqB,KACrB,kBAAmB,KACnB,gBAAiB,KACjB,kBAAmB,KACnB,YAAa,KACb,qBAAsB,KACtB,cAAe,GACf,0BAA2B,KAC3B,sBAAuB,GACvB,+BAAgC,IAAM,KACtC,UAAW,KACX,kBAAmB,CAAA,EACnB,aAAc,KACd,iBAAkB,KAClB,aAAc,GACd,cAAe,GACf,qBAAsB,KACtB,gBAAiB,KACjB,aAAc,KACd,SAAU,EACV,aAAc,CAAA,EACd,gBAAiB,KACjB,YAAa,GACb,QAAS,KACT,WAAY,KACZ,WAAY,KACZ,sBAAuB,KACvB,cAAe,CACb,UAAW,GACX,OAAQ,IAAA,EAEV,oBAAqB,GACrB,iBAAkB,KAClB,oBAAqB,OACrB,wBAAyB,IAAA,GACzB,oBAAqB,GACrB,kBAAmB,KACnB,sBAAuB,KACvB,oBAAqB,OACrB,qBAAsB,OACtB,qBAAsB,KACtB,yBAA0B,KAC1B,4BAA6B,OAC7B,iBAAkB,GAClB,qBAAsB,KACtB,0BAA2B,EAC3B,YAAa,KACb,oBAAqB,OACrB,qBAAsB,OACtB,mBAAoB,KACpB,wBAAyB,OACzB,qBAAsB,OACtB,sBAAuB,OACvB,uBAAwB,KACxB,sBAAuB,CAAA,EACvB,mBAAoB,OACpB,mBAAoB,MACtB,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import type { ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';
|
|
1
|
+
import type { ICellContextMenuConfig, ICellContextMenuState, ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';
|
|
2
2
|
export interface ITableContext {
|
|
3
3
|
tableWrapper?: any;
|
|
4
4
|
tableBodyWrapper?: any;
|
|
@@ -60,6 +60,10 @@ export interface ITableContext {
|
|
|
60
60
|
handleUpdateColumnWidth?: (columnName: string, width: number) => void;
|
|
61
61
|
isTableViewReadOnly?: boolean;
|
|
62
62
|
multiSelectConfig?: IMultiSelectConfig | null;
|
|
63
|
+
cellContextMenuConfig?: ICellContextMenuConfig | null;
|
|
64
|
+
/** Opens the cell right-click menu at the given viewport coordinates. */
|
|
65
|
+
openCellContextMenu?: (state: ICellContextMenuState) => void;
|
|
66
|
+
closeCellContextMenu?: () => void;
|
|
63
67
|
headerContextOptions?: React.ReactNode;
|
|
64
68
|
showHeaderContextOptions?: string | null;
|
|
65
69
|
setShowHeaderContextOptions?: (value: string | null) => void;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { createContext as l } from "react";
|
|
2
|
-
const
|
|
2
|
+
const n = l({
|
|
3
3
|
tableWrapper: null,
|
|
4
4
|
tableBodyWrapper: null,
|
|
5
5
|
lastNonStickyColumnIndex: () => null,
|
|
@@ -54,6 +54,9 @@ const e = l({
|
|
|
54
54
|
},
|
|
55
55
|
isTableViewReadOnly: !1,
|
|
56
56
|
multiSelectConfig: null,
|
|
57
|
+
cellContextMenuConfig: null,
|
|
58
|
+
openCellContextMenu: void 0,
|
|
59
|
+
closeCellContextMenu: void 0,
|
|
57
60
|
headerContextOptions: null,
|
|
58
61
|
showHeaderContextOptions: null,
|
|
59
62
|
setShowHeaderContextOptions: void 0,
|
|
@@ -73,6 +76,6 @@ const e = l({
|
|
|
73
76
|
getCurrencyForCell: void 0
|
|
74
77
|
});
|
|
75
78
|
export {
|
|
76
|
-
|
|
79
|
+
n as TableContext
|
|
77
80
|
};
|
|
78
81
|
//# sourceMappingURL=context.es.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"context.es.js","sources":["../../../../src/components/data-display/infinite-table/context.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext } from 'react';\nimport type { ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';\n\nexport interface ITableContext {\n tableWrapper?: any;\n tableBodyWrapper?: any;\n lastNonStickyColumnIndex?: () => number | null;\n search?: string | null;\n columnFilters?: any[];\n onRowClick?: any;\n onSort?: any;\n onFilter?: any;\n toggleShowFilters?: any;\n toggleShowSorts?: any;\n onRemoveFilter?: any;\n onClearFilter?: any;\n rowOptions?: any;\n checkboxConfig?: any;\n onResetFilter?: any;\n isColumnConfigurable?: boolean;\n onAddColumnClick?: any;\n onEditColumnClick?: any;\n onDeleteColumnClick?: any;\n onRowTooltipClick?: any;\n tooltiptext?: any;\n cascadingTableConfig?: any;\n originalsOnly?: boolean;\n disableOptionsForRowIndex?: any;\n getFullRowDataOnClick?: boolean;\n selectedRowId?: string | number | null;\n getSumOfNextVisibleColumnWidth?: (currentIndex: number) => number | null;\n onRowEdit?: any;\n inlineEditColumns?: string[];\n tableActions?: any;\n dndSortableUtils?: any;\n withSortable?: boolean;\n withDraggable?: boolean;\n onCascadingRowExpand?: any;\n getInnerRowData?: any;\n tableHeaders?: any[];\n maxLevel?: number;\n expandedRows?: any;\n setExpandedRows?: any;\n showNewItem?: boolean;\n rawData?: any;\n dragConfig?: any;\n rowWrapper?: any;\n asyncRowOptionsFilter?: any;\n rowLinkConfig?: {\n isEnabled: boolean;\n linkTo: any;\n };\n isCellClickDisabled?: boolean;\n activeInlineEdit?: { rowId: string; columnKey: string } | null;\n setActiveInlineEdit?: (value: { rowId: string; columnKey: string } | null) => void;\n handleUpdateColumnWidth?: (columnName: string, width: number) => void;\n isTableViewReadOnly?: boolean;\n multiSelectConfig?: IMultiSelectConfig | null;\n headerContextOptions?: React.ReactNode;\n showHeaderContextOptions?: string | null;\n setShowHeaderContextOptions?: (value: string | null) => void;\n headerDivWidth?: number;\n showDataTypeIcon?: boolean;\n rowAdditionalActions?: any;\n rowAdditionalActionsWidth?: number;\n hoverConfig?: any;\n cellEditing?: string | string[] | null;\n cellEditingValue?: string | Record<string, string> | null;\n openMasterDataModal?: (config: IMasterDataModalConfig) => void;\n closeMasterDataModal?: () => void;\n selectedMasterData?: { value: any; reference: any } | null;\n clearSelectedMasterData?: () => void;\n allowInlineEdit?: boolean;\n openCurrencyDropdown?: (config: ICurrencyDropdownConfig) => void;\n closeCurrencyDropdown?: () => void;\n currencyDropdownConfig?: ICurrencyDropdownConfig | null;\n selectedCurrenciesMap?: Record<string, string>;\n setCurrencyForCell?: (cellKey: string, currency: string) => void;\n getCurrencyForCell?: (cellKey: string) => string | undefined;\n pendingEdits?: PendingEditsMap;\n addPendingEdit?: (rowId: string, columnKey: string, edit: IPendingEdit) => void;\n removePendingEdit?: (rowId: string, columnKey: string) => void;\n getPendingEdit?: (rowId: string, columnKey: string) => IPendingEdit | undefined;\n hasPendingEdit?: (rowId: string, columnKey: string) => boolean;\n clearAllPendingEdits?: () => void;\n saveAllPendingEdits?: () => void;\n clearRowPendingEdits?: (rowId: string) => void;\n saveRowPendingEdits?: (rowId: string) => void;\n pendingEditsCount?: number;\n scrollToCell?: (rowId: string, columnKey: string, rowIndex: number) => void;\n onFieldOperationFlow?: (params: {\n value: unknown;\n fieldId: string;\n rowId: string;\n rowData: any;\n columnKey: string;\n flowName?: string;\n isLiveField?: boolean;\n meta?: { reference?: unknown; currency_code?: string };\n }) => Promise<void>;\n fieldOperationLoading?: string | null;\n validateAllPendingEdits?: any;\n}\n\nexport const TableContext = createContext<ITableContext>({\n tableWrapper: null,\n tableBodyWrapper: null,\n lastNonStickyColumnIndex: () => null,\n search: null,\n columnFilters: [],\n onRowClick: null,\n onSort: null,\n onFilter: null,\n onRemoveFilter: null,\n onClearFilter: null,\n rowOptions: null,\n checkboxConfig: null,\n onResetFilter: null,\n isColumnConfigurable: false,\n onAddColumnClick: null,\n onEditColumnClick: null,\n onDeleteColumnClick: null,\n toggleShowFilters: null,\n toggleShowSorts: null,\n onRowTooltipClick: null,\n tooltiptext: null,\n cascadingTableConfig: null,\n originalsOnly: false,\n disableOptionsForRowIndex: null,\n getFullRowDataOnClick: false,\n getSumOfNextVisibleColumnWidth: () => null,\n onRowEdit: null,\n inlineEditColumns: [],\n tableActions: null,\n dndSortableUtils: null,\n withSortable: false,\n withDraggable: false,\n onCascadingRowExpand: null,\n getInnerRowData: null,\n tableHeaders: null as any,\n maxLevel: 0,\n expandedRows: {},\n setExpandedRows: null,\n showNewItem: false,\n rawData: null,\n dragConfig: null,\n rowWrapper: null,\n asyncRowOptionsFilter: null,\n rowLinkConfig: {\n isEnabled: false,\n linkTo: null,\n },\n isCellClickDisabled: false,\n activeInlineEdit: null,\n setActiveInlineEdit: undefined,\n handleUpdateColumnWidth: () => undefined,\n isTableViewReadOnly: false,\n multiSelectConfig: null,\n headerContextOptions: null,\n showHeaderContextOptions: null,\n setShowHeaderContextOptions: undefined,\n showDataTypeIcon: false,\n rowAdditionalActions: null,\n rowAdditionalActionsWidth: 0,\n hoverConfig: null,\n openMasterDataModal: undefined,\n closeMasterDataModal: undefined,\n selectedMasterData: null,\n clearSelectedMasterData: undefined,\n openCurrencyDropdown: undefined,\n closeCurrencyDropdown: undefined,\n currencyDropdownConfig: null,\n selectedCurrenciesMap: {},\n setCurrencyForCell: undefined,\n getCurrencyForCell: undefined,\n});\n"],"names":["TableContext","createContext"],"mappings":";
|
|
1
|
+
{"version":3,"file":"context.es.js","sources":["../../../../src/components/data-display/infinite-table/context.ts"],"sourcesContent":["/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { createContext } from 'react';\nimport type { ICellContextMenuConfig, ICellContextMenuState, ICurrencyDropdownConfig, IMasterDataModalConfig, IMultiSelectConfig, IPendingEdit, PendingEditsMap } from './types';\n\nexport interface ITableContext {\n tableWrapper?: any;\n tableBodyWrapper?: any;\n lastNonStickyColumnIndex?: () => number | null;\n search?: string | null;\n columnFilters?: any[];\n onRowClick?: any;\n onSort?: any;\n onFilter?: any;\n toggleShowFilters?: any;\n toggleShowSorts?: any;\n onRemoveFilter?: any;\n onClearFilter?: any;\n rowOptions?: any;\n checkboxConfig?: any;\n onResetFilter?: any;\n isColumnConfigurable?: boolean;\n onAddColumnClick?: any;\n onEditColumnClick?: any;\n onDeleteColumnClick?: any;\n onRowTooltipClick?: any;\n tooltiptext?: any;\n cascadingTableConfig?: any;\n originalsOnly?: boolean;\n disableOptionsForRowIndex?: any;\n getFullRowDataOnClick?: boolean;\n selectedRowId?: string | number | null;\n getSumOfNextVisibleColumnWidth?: (currentIndex: number) => number | null;\n onRowEdit?: any;\n inlineEditColumns?: string[];\n tableActions?: any;\n dndSortableUtils?: any;\n withSortable?: boolean;\n withDraggable?: boolean;\n onCascadingRowExpand?: any;\n getInnerRowData?: any;\n tableHeaders?: any[];\n maxLevel?: number;\n expandedRows?: any;\n setExpandedRows?: any;\n showNewItem?: boolean;\n rawData?: any;\n dragConfig?: any;\n rowWrapper?: any;\n asyncRowOptionsFilter?: any;\n rowLinkConfig?: {\n isEnabled: boolean;\n linkTo: any;\n };\n isCellClickDisabled?: boolean;\n activeInlineEdit?: { rowId: string; columnKey: string } | null;\n setActiveInlineEdit?: (value: { rowId: string; columnKey: string } | null) => void;\n handleUpdateColumnWidth?: (columnName: string, width: number) => void;\n isTableViewReadOnly?: boolean;\n multiSelectConfig?: IMultiSelectConfig | null;\n cellContextMenuConfig?: ICellContextMenuConfig | null;\n /** Opens the cell right-click menu at the given viewport coordinates. */\n openCellContextMenu?: (state: ICellContextMenuState) => void;\n closeCellContextMenu?: () => void;\n headerContextOptions?: React.ReactNode;\n showHeaderContextOptions?: string | null;\n setShowHeaderContextOptions?: (value: string | null) => void;\n headerDivWidth?: number;\n showDataTypeIcon?: boolean;\n rowAdditionalActions?: any;\n rowAdditionalActionsWidth?: number;\n hoverConfig?: any;\n cellEditing?: string | string[] | null;\n cellEditingValue?: string | Record<string, string> | null;\n openMasterDataModal?: (config: IMasterDataModalConfig) => void;\n closeMasterDataModal?: () => void;\n selectedMasterData?: { value: any; reference: any } | null;\n clearSelectedMasterData?: () => void;\n allowInlineEdit?: boolean;\n openCurrencyDropdown?: (config: ICurrencyDropdownConfig) => void;\n closeCurrencyDropdown?: () => void;\n currencyDropdownConfig?: ICurrencyDropdownConfig | null;\n selectedCurrenciesMap?: Record<string, string>;\n setCurrencyForCell?: (cellKey: string, currency: string) => void;\n getCurrencyForCell?: (cellKey: string) => string | undefined;\n pendingEdits?: PendingEditsMap;\n addPendingEdit?: (rowId: string, columnKey: string, edit: IPendingEdit) => void;\n removePendingEdit?: (rowId: string, columnKey: string) => void;\n getPendingEdit?: (rowId: string, columnKey: string) => IPendingEdit | undefined;\n hasPendingEdit?: (rowId: string, columnKey: string) => boolean;\n clearAllPendingEdits?: () => void;\n saveAllPendingEdits?: () => void;\n clearRowPendingEdits?: (rowId: string) => void;\n saveRowPendingEdits?: (rowId: string) => void;\n pendingEditsCount?: number;\n scrollToCell?: (rowId: string, columnKey: string, rowIndex: number) => void;\n onFieldOperationFlow?: (params: {\n value: unknown;\n fieldId: string;\n rowId: string;\n rowData: any;\n columnKey: string;\n flowName?: string;\n isLiveField?: boolean;\n meta?: { reference?: unknown; currency_code?: string };\n }) => Promise<void>;\n fieldOperationLoading?: string | null;\n validateAllPendingEdits?: any;\n}\n\nexport const TableContext = createContext<ITableContext>({\n tableWrapper: null,\n tableBodyWrapper: null,\n lastNonStickyColumnIndex: () => null,\n search: null,\n columnFilters: [],\n onRowClick: null,\n onSort: null,\n onFilter: null,\n onRemoveFilter: null,\n onClearFilter: null,\n rowOptions: null,\n checkboxConfig: null,\n onResetFilter: null,\n isColumnConfigurable: false,\n onAddColumnClick: null,\n onEditColumnClick: null,\n onDeleteColumnClick: null,\n toggleShowFilters: null,\n toggleShowSorts: null,\n onRowTooltipClick: null,\n tooltiptext: null,\n cascadingTableConfig: null,\n originalsOnly: false,\n disableOptionsForRowIndex: null,\n getFullRowDataOnClick: false,\n getSumOfNextVisibleColumnWidth: () => null,\n onRowEdit: null,\n inlineEditColumns: [],\n tableActions: null,\n dndSortableUtils: null,\n withSortable: false,\n withDraggable: false,\n onCascadingRowExpand: null,\n getInnerRowData: null,\n tableHeaders: null as any,\n maxLevel: 0,\n expandedRows: {},\n setExpandedRows: null,\n showNewItem: false,\n rawData: null,\n dragConfig: null,\n rowWrapper: null,\n asyncRowOptionsFilter: null,\n rowLinkConfig: {\n isEnabled: false,\n linkTo: null,\n },\n isCellClickDisabled: false,\n activeInlineEdit: null,\n setActiveInlineEdit: undefined,\n handleUpdateColumnWidth: () => undefined,\n isTableViewReadOnly: false,\n multiSelectConfig: null,\n cellContextMenuConfig: null,\n openCellContextMenu: undefined,\n closeCellContextMenu: undefined,\n headerContextOptions: null,\n showHeaderContextOptions: null,\n setShowHeaderContextOptions: undefined,\n showDataTypeIcon: false,\n rowAdditionalActions: null,\n rowAdditionalActionsWidth: 0,\n hoverConfig: null,\n openMasterDataModal: undefined,\n closeMasterDataModal: undefined,\n selectedMasterData: null,\n clearSelectedMasterData: undefined,\n openCurrencyDropdown: undefined,\n closeCurrencyDropdown: undefined,\n currencyDropdownConfig: null,\n selectedCurrenciesMap: {},\n setCurrencyForCell: undefined,\n getCurrencyForCell: undefined,\n});\n"],"names":["TableContext","createContext"],"mappings":";AA6GO,MAAMA,IAAeC,EAA6B;AAAA,EACvD,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,0BAA0B,MAAM;AAAA,EAChC,QAAQ;AAAA,EACR,eAAe,CAAA;AAAA,EACf,YAAY;AAAA,EACZ,QAAQ;AAAA,EACR,UAAU;AAAA,EACV,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,kBAAkB;AAAA,EAClB,mBAAmB;AAAA,EACnB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,iBAAiB;AAAA,EACjB,mBAAmB;AAAA,EACnB,aAAa;AAAA,EACb,sBAAsB;AAAA,EACtB,eAAe;AAAA,EACf,2BAA2B;AAAA,EAC3B,uBAAuB;AAAA,EACvB,gCAAgC,MAAM;AAAA,EACtC,WAAW;AAAA,EACX,mBAAmB,CAAA;AAAA,EACnB,cAAc;AAAA,EACd,kBAAkB;AAAA,EAClB,cAAc;AAAA,EACd,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,iBAAiB;AAAA,EACjB,cAAc;AAAA,EACd,UAAU;AAAA,EACV,cAAc,CAAA;AAAA,EACd,iBAAiB;AAAA,EACjB,aAAa;AAAA,EACb,SAAS;AAAA,EACT,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB,eAAe;AAAA,IACb,WAAW;AAAA,IACX,QAAQ;AAAA,EAAA;AAAA,EAEV,qBAAqB;AAAA,EACrB,kBAAkB;AAAA,EAClB,qBAAqB;AAAA,EACrB,yBAAyB,MAAA;AAAA;AAAA,EACzB,qBAAqB;AAAA,EACrB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,sBAAsB;AAAA,EACtB,0BAA0B;AAAA,EAC1B,6BAA6B;AAAA,EAC7B,kBAAkB;AAAA,EAClB,sBAAsB;AAAA,EACtB,2BAA2B;AAAA,EAC3B,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,sBAAsB;AAAA,EACtB,oBAAoB;AAAA,EACpB,yBAAyB;AAAA,EACzB,sBAAsB;AAAA,EACtB,uBAAuB;AAAA,EACvB,wBAAwB;AAAA,EACxB,uBAAuB,CAAA;AAAA,EACvB,oBAAoB;AAAA,EACpB,oBAAoB;AACtB,CAAC;"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,Symbol.toStringTag,{value:"Module"});const c="[data-cell-content]",l=" ",S=`
|
|
2
|
+
`,s=t=>["string","number","boolean"].includes(typeof t),g=t=>t?(t.innerText??t.textContent??"").trim():"",T=(t,n,r)=>{const i=s(t)?t:n;return s(i)?String(i):g(r?.querySelector(c)??r)},f=t=>{const n=t?.closest("tr")?.querySelectorAll(c);return n?.length?Array.from(n,g).join(l):""},u=(t,n,r)=>{if(!t?.length||!n?.length||!r?.length)return"";const i=new Set(r.map(String)),a=n.filter(e=>e.visible!==!1&&e.is_visible!==!1).map(e=>e.key);return t.filter(e=>i.has(String(e.id))).map(e=>a.map(o=>o&&s(e[o])?String(e[o]):"").join(l)).join(S)};exports.getCellText=T;exports.getRowText=f;exports.getSelectedRowsText=u;
|
|
3
|
+
//# sourceMappingURL=copy-text.cjs.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-text.cjs.js","sources":["../../../../src/components/data-display/infinite-table/copy-text.ts"],"sourcesContent":["import type { IColumn } from './types';\n\nconst CELL_CONTENT_SELECTOR = '[data-cell-content]';\nconst COLUMN_SEPARATOR = '\\t';\nconst ROW_SEPARATOR = '\\n';\n\nconst isPrimitive = (value: unknown): value is string | number | boolean => ['string', 'number', 'boolean'].includes(typeof value);\n\n/** innerText keeps the on-screen spacing between chips; textContent covers non-rendering hosts. */\nconst readText = (element: HTMLElement | null): string => (element ? (element.innerText ?? element.textContent ?? '').trim() : '');\n\n/**\n * Clipboard text for a cell: the formatted value, else the raw value, else what is on\n * screen — chips and custom cell renderers only exist as rendered nodes.\n */\nexport const getCellText = (displayValue: unknown, rawValue: unknown, cellElement: HTMLElement | null): string => {\n const candidate = isPrimitive(displayValue) ? displayValue : rawValue;\n\n if (isPrimitive(candidate)) return String(candidate);\n\n // The value span only — the cell also holds overlays (validation error, spinner).\n return readText(cellElement?.querySelector<HTMLElement>(CELL_CONTENT_SELECTOR) ?? cellElement);\n};\n\n/** Tab-separated text of the row the cell belongs to, taken from what is rendered so values keep their cell formatting. */\nexport const getRowText = (cellElement: HTMLElement | null): string => {\n const cells = cellElement?.closest('tr')?.querySelectorAll<HTMLElement>(CELL_CONTENT_SELECTOR);\n\n if (!cells?.length) return '';\n\n return Array.from(cells, readText).join(COLUMN_SEPARATOR);\n};\n\n/**\n * Tab-separated text of the checked rows, one row per line. Built from the data rather than\n * the DOM because a selected row may be scrolled out of the virtualized viewport.\n */\nexport const getSelectedRowsText = (\n rows: Record<string, unknown>[] | undefined,\n columns: IColumn[] | undefined,\n checkedIds: (string | number)[] | undefined,\n): string => {\n if (!rows?.length || !columns?.length || !checkedIds?.length) return '';\n\n const checked = new Set(checkedIds.map(String));\n const keys = columns.filter((column) => column.visible !== false && column.is_visible !== false).map((column) => column.key);\n\n return rows\n .filter((row) => checked.has(String(row.id)))\n .map((row) => keys.map((key) => (key && isPrimitive(row[key]) ? String(row[key]) : '')).join(COLUMN_SEPARATOR))\n .join(ROW_SEPARATOR);\n};\n"],"names":["CELL_CONTENT_SELECTOR","COLUMN_SEPARATOR","ROW_SEPARATOR","isPrimitive","value","readText","element","getCellText","displayValue","rawValue","cellElement","candidate","getRowText","cells","getSelectedRowsText","rows","columns","checkedIds","checked","keys","column","row","key"],"mappings":"gFAEA,MAAMA,EAAwB,sBACxBC,EAAmB,IACnBC,EAAgB;AAAA,EAEhBC,EAAeC,GAAuD,CAAC,SAAU,SAAU,SAAS,EAAE,SAAS,OAAOA,CAAK,EAG3HC,EAAYC,GAAyCA,GAAWA,EAAQ,WAAaA,EAAQ,aAAe,IAAI,KAAA,EAAS,GAMlHC,EAAc,CAACC,EAAuBC,EAAmBC,IAA4C,CAChH,MAAMC,EAAYR,EAAYK,CAAY,EAAIA,EAAeC,EAE7D,OAAIN,EAAYQ,CAAS,EAAU,OAAOA,CAAS,EAG5CN,EAASK,GAAa,cAA2BV,CAAqB,GAAKU,CAAW,CAC/F,EAGaE,EAAcF,GAA4C,CACrE,MAAMG,EAAQH,GAAa,QAAQ,IAAI,GAAG,iBAA8BV,CAAqB,EAE7F,OAAKa,GAAO,OAEL,MAAM,KAAKA,EAAOR,CAAQ,EAAE,KAAKJ,CAAgB,EAF7B,EAG7B,EAMaa,EAAsB,CACjCC,EACAC,EACAC,IACW,CACX,GAAI,CAACF,GAAM,QAAU,CAACC,GAAS,QAAU,CAACC,GAAY,OAAQ,MAAO,GAErE,MAAMC,EAAU,IAAI,IAAID,EAAW,IAAI,MAAM,CAAC,EACxCE,EAAOH,EAAQ,OAAQI,GAAWA,EAAO,UAAY,IAASA,EAAO,aAAe,EAAK,EAAE,IAAKA,GAAWA,EAAO,GAAG,EAE3H,OAAOL,EACJ,OAAQM,GAAQH,EAAQ,IAAI,OAAOG,EAAI,EAAE,CAAC,CAAC,EAC3C,IAAKA,GAAQF,EAAK,IAAKG,GAASA,GAAOnB,EAAYkB,EAAIC,CAAG,CAAC,EAAI,OAAOD,EAAIC,CAAG,CAAC,EAAI,EAAG,EAAE,KAAKrB,CAAgB,CAAC,EAC7G,KAAKC,CAAa,CACvB"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import type { IColumn } from './types';
|
|
2
|
+
/**
|
|
3
|
+
* Clipboard text for a cell: the formatted value, else the raw value, else what is on
|
|
4
|
+
* screen — chips and custom cell renderers only exist as rendered nodes.
|
|
5
|
+
*/
|
|
6
|
+
export declare const getCellText: (displayValue: unknown, rawValue: unknown, cellElement: HTMLElement | null) => string;
|
|
7
|
+
/** Tab-separated text of the row the cell belongs to, taken from what is rendered so values keep their cell formatting. */
|
|
8
|
+
export declare const getRowText: (cellElement: HTMLElement | null) => string;
|
|
9
|
+
/**
|
|
10
|
+
* Tab-separated text of the checked rows, one row per line. Built from the data rather than
|
|
11
|
+
* the DOM because a selected row may be scrolled out of the virtualized viewport.
|
|
12
|
+
*/
|
|
13
|
+
export declare const getSelectedRowsText: (rows: Record<string, unknown>[] | undefined, columns: IColumn[] | undefined, checkedIds: (string | number)[] | undefined) => string;
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
const c = "[data-cell-content]";
|
|
2
|
+
const s = (t) => ["string", "number", "boolean"].includes(typeof t), l = (t) => t ? (t.innerText ?? t.textContent ?? "").trim() : "", S = (t, n, r) => {
|
|
3
|
+
const i = s(t) ? t : n;
|
|
4
|
+
return s(i) ? String(i) : l(r?.querySelector(c) ?? r);
|
|
5
|
+
}, T = (t) => {
|
|
6
|
+
const n = t?.closest("tr")?.querySelectorAll(c);
|
|
7
|
+
return n?.length ? Array.from(n, l).join(" ") : "";
|
|
8
|
+
}, a = (t, n, r) => {
|
|
9
|
+
if (!t?.length || !n?.length || !r?.length) return "";
|
|
10
|
+
const i = new Set(r.map(String)), R = n.filter((e) => e.visible !== !1 && e.is_visible !== !1).map((e) => e.key);
|
|
11
|
+
return t.filter((e) => i.has(String(e.id))).map((e) => R.map((o) => o && s(e[o]) ? String(e[o]) : "").join(" ")).join(`
|
|
12
|
+
`);
|
|
13
|
+
};
|
|
14
|
+
export {
|
|
15
|
+
S as getCellText,
|
|
16
|
+
T as getRowText,
|
|
17
|
+
a as getSelectedRowsText
|
|
18
|
+
};
|
|
19
|
+
//# sourceMappingURL=copy-text.es.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"copy-text.es.js","sources":["../../../../src/components/data-display/infinite-table/copy-text.ts"],"sourcesContent":["import type { IColumn } from './types';\n\nconst CELL_CONTENT_SELECTOR = '[data-cell-content]';\nconst COLUMN_SEPARATOR = '\\t';\nconst ROW_SEPARATOR = '\\n';\n\nconst isPrimitive = (value: unknown): value is string | number | boolean => ['string', 'number', 'boolean'].includes(typeof value);\n\n/** innerText keeps the on-screen spacing between chips; textContent covers non-rendering hosts. */\nconst readText = (element: HTMLElement | null): string => (element ? (element.innerText ?? element.textContent ?? '').trim() : '');\n\n/**\n * Clipboard text for a cell: the formatted value, else the raw value, else what is on\n * screen — chips and custom cell renderers only exist as rendered nodes.\n */\nexport const getCellText = (displayValue: unknown, rawValue: unknown, cellElement: HTMLElement | null): string => {\n const candidate = isPrimitive(displayValue) ? displayValue : rawValue;\n\n if (isPrimitive(candidate)) return String(candidate);\n\n // The value span only — the cell also holds overlays (validation error, spinner).\n return readText(cellElement?.querySelector<HTMLElement>(CELL_CONTENT_SELECTOR) ?? cellElement);\n};\n\n/** Tab-separated text of the row the cell belongs to, taken from what is rendered so values keep their cell formatting. */\nexport const getRowText = (cellElement: HTMLElement | null): string => {\n const cells = cellElement?.closest('tr')?.querySelectorAll<HTMLElement>(CELL_CONTENT_SELECTOR);\n\n if (!cells?.length) return '';\n\n return Array.from(cells, readText).join(COLUMN_SEPARATOR);\n};\n\n/**\n * Tab-separated text of the checked rows, one row per line. Built from the data rather than\n * the DOM because a selected row may be scrolled out of the virtualized viewport.\n */\nexport const getSelectedRowsText = (\n rows: Record<string, unknown>[] | undefined,\n columns: IColumn[] | undefined,\n checkedIds: (string | number)[] | undefined,\n): string => {\n if (!rows?.length || !columns?.length || !checkedIds?.length) return '';\n\n const checked = new Set(checkedIds.map(String));\n const keys = columns.filter((column) => column.visible !== false && column.is_visible !== false).map((column) => column.key);\n\n return rows\n .filter((row) => checked.has(String(row.id)))\n .map((row) => keys.map((key) => (key && isPrimitive(row[key]) ? String(row[key]) : '')).join(COLUMN_SEPARATOR))\n .join(ROW_SEPARATOR);\n};\n"],"names":["CELL_CONTENT_SELECTOR","isPrimitive","value","readText","element","getCellText","displayValue","rawValue","cellElement","candidate","getRowText","cells","getSelectedRowsText","rows","columns","checkedIds","checked","keys","column","row","key"],"mappings":"AAEA,MAAMA,IAAwB;AAI9B,MAAMC,IAAc,CAACC,MAAuD,CAAC,UAAU,UAAU,SAAS,EAAE,SAAS,OAAOA,CAAK,GAG3HC,IAAW,CAACC,MAAyCA,KAAWA,EAAQ,aAAaA,EAAQ,eAAe,IAAI,KAAA,IAAS,IAMlHC,IAAc,CAACC,GAAuBC,GAAmBC,MAA4C;AAChH,QAAMC,IAAYR,EAAYK,CAAY,IAAIA,IAAeC;AAE7D,SAAIN,EAAYQ,CAAS,IAAU,OAAOA,CAAS,IAG5CN,EAASK,GAAa,cAA2BR,CAAqB,KAAKQ,CAAW;AAC/F,GAGaE,IAAa,CAACF,MAA4C;AACrE,QAAMG,IAAQH,GAAa,QAAQ,IAAI,GAAG,iBAA8BR,CAAqB;AAE7F,SAAKW,GAAO,SAEL,MAAM,KAAKA,GAAOR,CAAQ,EAAE,KAAK,GAAgB,IAF7B;AAG7B,GAMaS,IAAsB,CACjCC,GACAC,GACAC,MACW;AACX,MAAI,CAACF,GAAM,UAAU,CAACC,GAAS,UAAU,CAACC,GAAY,OAAQ,QAAO;AAErE,QAAMC,IAAU,IAAI,IAAID,EAAW,IAAI,MAAM,CAAC,GACxCE,IAAOH,EAAQ,OAAO,CAACI,MAAWA,EAAO,YAAY,MAASA,EAAO,eAAe,EAAK,EAAE,IAAI,CAACA,MAAWA,EAAO,GAAG;AAE3H,SAAOL,EACJ,OAAO,CAACM,MAAQH,EAAQ,IAAI,OAAOG,EAAI,EAAE,CAAC,CAAC,EAC3C,IAAI,CAACA,MAAQF,EAAK,IAAI,CAACG,MAASA,KAAOnB,EAAYkB,EAAIC,CAAG,CAAC,IAAI,OAAOD,EAAIC,CAAG,CAAC,IAAI,EAAG,EAAE,KAAK,GAAgB,CAAC,EAC7G,KAAK;AAAA,CAAa;AACvB;"}
|