{"version":3,"file":"RowNumberColumn.cjs","sources":["../../../../src/components/Grid/RowNumberColumn.tsx"],"sourcesContent":["import { CSSProperties } from 'react';\nimport { cn } from '@/lib/cva';\nimport styles from './RowNumberColumn.module.css';\nimport { SelectionTypeFn } from './types';\nimport { StyledCell } from './StyledCell';\n\ninterface RowNumberColumnProps {\n  minRow: number;\n  maxRow: number;\n  rowHeight: number;\n  headerHeight: number;\n  rowWidth: number;\n  getSelectionType: SelectionTypeFn;\n  rowCount: number;\n  scrolledHorizontal: boolean;\n  rowStart: number;\n  showBorder: boolean;\n  rowAutoHeight?: boolean;\n}\ninterface RowNumberProps extends Pick<\n  RowNumberColumnProps,\n  'rowHeight' | 'getSelectionType' | 'showBorder' | 'rowStart'\n> {\n  rowIndex: number;\n  isLastRow: boolean;\n  rowAutoHeight?: boolean;\n}\nconst RowNumber = ({\n  rowIndex,\n  rowHeight,\n  getSelectionType,\n  isLastRow,\n  showBorder,\n  rowStart,\n  rowAutoHeight,\n}: RowNumberProps) => {\n  const currentRowIndex = rowIndex + rowStart;\n  const selectionType = getSelectionType({\n    row: currentRowIndex,\n    type: 'row',\n  });\n  const isSelected = selectionType === 'selectDirect';\n  const topSelectionType = getSelectionType({\n    row: currentRowIndex - 1,\n    type: 'row',\n  });\n  const isSelectedTop =\n    (topSelectionType === 'selectDirect' || isSelected) &&\n    topSelectionType !== selectionType;\n\n  return (\n    <div\n      className={styles['row-number-column__cell']}\n      style={\n        {\n          '--row-number-cell-top': `${rowHeight * rowIndex}px`,\n          '--row-number-cell-height': rowAutoHeight ? '100%' : `${rowHeight}px`,\n        } as CSSProperties\n      }\n    >\n      <StyledCell\n        $height={rowHeight}\n        $isLastColumn={false}\n        $selectionType={selectionType}\n        $type=\"header\"\n        $isFocused={false}\n        $isLastRow={isLastRow}\n        $isSelectedLeft={isSelected}\n        $isSelectedTop={isSelectedTop}\n        $rowAutoHeight={rowAutoHeight}\n        data-selected={isSelected}\n        data-grid-row={currentRowIndex}\n        data-grid-column={-1}\n        data-testid={`header-cell-${currentRowIndex}-x`}\n        $showBorder={showBorder}\n        data-align=\"right\"\n      >\n        {currentRowIndex}\n      </StyledCell>\n    </div>\n  );\n};\n\nconst RowNumberColumn = ({\n  minRow,\n  maxRow,\n  rowHeight,\n  headerHeight,\n  rowWidth,\n  getSelectionType,\n  rowCount,\n  scrolledHorizontal,\n  rowStart = 0,\n  showBorder,\n  rowAutoHeight,\n}: RowNumberColumnProps) => {\n  return (\n    <div\n      className={cn(\n        styles['row-number-column'],\n        scrolledHorizontal && styles['row-number-column_scrolled-horizontal']\n      )}\n      style={\n        {\n          '--row-number-column-top': `${headerHeight}px`,\n          '--row-number-column-width': `${rowWidth}px`,\n        } as CSSProperties\n      }\n    >\n      {Array.from({ length: maxRow - minRow + 1 }, (_, index) => minRow + index).map(\n        rowIndex => (\n          <RowNumber\n            key={`row-number-${rowIndex}`}\n            getSelectionType={getSelectionType}\n            rowHeight={rowHeight}\n            rowIndex={rowIndex}\n            isLastRow={rowIndex === rowCount}\n            showBorder={showBorder}\n            rowStart={rowStart}\n            rowAutoHeight={rowAutoHeight}\n          />\n        )\n      )}\n    </div>\n  );\n};\n\nexport default RowNumberColumn;\n"],"names":["jsx","styles","StyledCell","cn"],"mappings":"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"}