{"version":3,"file":"DataTable.mjs","sources":["../../../../src/lib/nextGenComponents/components/DataTable/DataTable.tsx"],"sourcesContent":["import {\n  flexRender,\n  useReactTable,\n  getCoreRowModel,\n  getFilteredRowModel,\n  getSortedRowModel,\n  type ColumnDef,\n  type RowSelectionState,\n  type SortingState\n} from '@tanstack/react-table'\nimport { useVirtualizer } from '@tanstack/react-virtual'\nimport { ComponentType, ReactNode, useRef, useMemo } from 'react'\n\nimport SortArrow from '../../../images/sort-arrow.svg?react'\nimport DetailsPanel from '@/components/DetailsPanel'\nimport EllipsisTooltip from '@/components/EllipsisTooltip'\nimport PaginationControls, { PaginationConfig } from '@/components/PaginationControls'\nimport { RowActions, ActionMenuItem } from '@/components/RowActions'\nimport { DATATABLE_TEXT, ESTIMATED_ROW_HEIGHT, NO_ROWS_MESSAGES, SORT_DIRECTION } from '@/constants'\nimport { useClickOutside } from '@/hooks/useClickOutside'\nimport { cn } from '@/lib/utils'\n\nimport checkboxColumn from './checkboxColumn'\nimport { getColumnSize, getColumnWidthCalculator, getVirtualPadding } from './DataTable.utils'\n\nexport type DetailsPanelConfig<TData extends object> = {\n  content: ComponentType<TData>\n  titleAccessorKey?: keyof TData\n  titleAccessorFn?: (row: TData) => string | ReactNode\n  selectedRow?: TData\n  onRowSelect?: (row: TData) => void\n  onRowClose?: () => void\n}\n\nexport type CheckboxSelectionConfig = {\n  rowSelection: RowSelectionState\n  onRowSelectionChange: (state: RowSelectionState) => void\n}\n\nexport type DataTableProps<TData extends object> = {\n  className?: string\n  data: TData[]\n  columns: ColumnDef<TData, unknown>[]\n  initialSorting?: SortingState\n  pagination?: PaginationConfig\n  rowActions?: (row: TData) => ActionMenuItem[]\n  detailsPanel?: DetailsPanelConfig<TData>\n  checkboxSelection?: CheckboxSelectionConfig\n}\n\nconst DataTable = <TData extends object>({\n  className,\n  data,\n  columns,\n  initialSorting = [],\n  pagination,\n  rowActions,\n  detailsPanel,\n  checkboxSelection\n}: Readonly<DataTableProps<TData>>) => {\n  const { selectedRow, onRowSelect, onRowClose } = detailsPanel ?? {}\n  const tableContainerRef = useRef<HTMLDivElement>(null)\n  const wrapperRef = useClickOutside(selectedRow ? onRowClose : undefined)\n\n  const detailsPanelSelection = useMemo(() => {\n    if (!selectedRow) return {}\n    const index = data.indexOf(selectedRow)\n    return index >= 0 ? { [index]: true } : {}\n  }, [selectedRow, data])\n\n  const rowSelection = checkboxSelection ? checkboxSelection.rowSelection : detailsPanelSelection\n\n  const allColumns = useMemo(\n    () => (checkboxSelection ? [checkboxColumn as ColumnDef<TData, unknown>, ...columns] : columns),\n    [checkboxSelection, columns]\n  )\n\n  const table = useReactTable({\n    data,\n    columns: allColumns,\n    defaultColumn: {\n      size: 1,\n      minSize: 0\n    },\n    state: {\n      rowSelection\n    },\n    onRowSelectionChange: updaterOrValue => {\n      if (!checkboxSelection) return\n      const newSelection =\n        typeof updaterOrValue === 'function' ? updaterOrValue(rowSelection) : updaterOrValue\n      checkboxSelection.onRowSelectionChange(newSelection)\n    },\n    getCoreRowModel: getCoreRowModel(),\n    getFilteredRowModel: getFilteredRowModel(),\n    getSortedRowModel: getSortedRowModel(),\n    enableRowSelection: true,\n    enableMultiRowSelection: !!checkboxSelection,\n    enableSorting: true,\n    enableSortingRemoval: false,\n    initialState: {\n      sorting: initialSorting\n    }\n  })\n\n  const { rows } = table.getRowModel()\n\n  const rowVirtualizer = useVirtualizer({\n    count: rows.length,\n    estimateSize: () => ESTIMATED_ROW_HEIGHT,\n    getScrollElement: () => tableContainerRef.current,\n    overscan: 5\n  })\n\n  const virtualRows = rowVirtualizer.getVirtualItems()\n\n  const selected =\n    selectedRow ?? table.getRowModel().flatRows.find(r => r.getIsSelected())?.original\n\n  const visibleColumns = table.getVisibleLeafColumns()\n  const getColumnWidth = useMemo(() => getColumnWidthCalculator(visibleColumns), [visibleColumns])\n\n  const totalColSpan = allColumns.length + (rowActions ? 1 : 0)\n  const { top: topPadding, bottom: bottomPadding } = getVirtualPadding(virtualRows, rowVirtualizer)\n\n  return (\n    <>\n      <div\n        data-testid=\"data-table-wrapper\"\n        ref={wrapperRef}\n        className=\"flex flex-col relative flex-grow min-h-0\"\n      >\n        <div ref={tableContainerRef} className={cn('overflow-auto rounded-lg border', className)}>\n          <table className=\"w-full border-collapse table-fixed\">\n            <thead>\n              {table.getHeaderGroups().map(headerGroup => (\n                <tr\n                  key={headerGroup.id}\n                  className=\"sticky top-0 z-10 bg-white shadow-[0_1px_0_0_#eee]\"\n                  data-testid=\"data-table-header-row\"\n                >\n                  {headerGroup.headers.map((header, headerIndex) => {\n                    const isCheckboxColumn = header.column.id === DATATABLE_TEXT.CHECKBOX_COLUMN_ID\n                    const isFirstDataColumn = checkboxSelection\n                      ? headerIndex === 1\n                      : headerIndex === 0\n                    return (\n                      <th\n                        key={header.id}\n                        colSpan={header.colSpan}\n                        style={getColumnSize(\n                          isCheckboxColumn,\n                          isFirstDataColumn,\n                          header.column.getSize(),\n                          getColumnWidth\n                        )}\n                        className={cn(\n                          'relative px-4 py-2 text-left text-[15px] leading-6 text-[#7F7989] border-b border-[#eee] whitespace-nowrap',\n                          isFirstDataColumn && 'w-[250px] pr-[10px]',\n                          isCheckboxColumn && 'w-12 px-3'\n                        )}\n                        data-testid={`data-table-header-${typeof header.column.columnDef.header === 'string' ? header.column.columnDef.header : header.column.id}`}\n                      >\n                        {!header.isPlaceholder &&\n                          (isCheckboxColumn ? (\n                            flexRender(header.column.columnDef.header, header.getContext())\n                          ) : (\n                            <button\n                              type=\"button\"\n                              onClick={header.column.getToggleSortingHandler()}\n                              disabled={!header.column.getCanSort()}\n                              className={cn(\n                                'inline-flex items-center gap-2 w-full bg-transparent border-0 py-1 cursor-pointer focus-visible:outline focus-visible:outline-2 focus-visible:outline-[#b9d4ff] focus-visible:outline-offset-2 rounded disabled:cursor-default font-normal',\n                                header.column.getIsSorted() && 'font-bold'\n                              )}\n                              data-testid={`data-table-header-button-${header.column.columnDef.header}`}\n                            >\n                              <EllipsisTooltip className=\"w-fit\">\n                                {flexRender(header.column.columnDef.header, header.getContext())}\n                              </EllipsisTooltip>\n\n                              {header.column.getCanSort() && (\n                                <span className=\"w-2 h-2 shrink-0 flex items-center justify-center\">\n                                  <SortArrow\n                                    aria-hidden=\"true\"\n                                    className={cn(\n                                      'w-full h-full transition-transform duration-150 ease-in-out',\n                                      header.column.getIsSorted() === SORT_DIRECTION.ASC &&\n                                        'rotate-180 opacity-100',\n                                      header.column.getIsSorted() === SORT_DIRECTION.DESC &&\n                                        'rotate-0 opacity-100',\n                                      !header.column.getIsSorted() && 'opacity-40'\n                                    )}\n                                  />\n                                </span>\n                              )}\n                            </button>\n                          ))}\n                      </th>\n                    )\n                  })}\n                  {rowActions && (\n                    <th\n                      className=\"w-12 p-0 border-b border-[#eee]\"\n                      data-testid=\"data-table-header-actions\"\n                    />\n                  )}\n                </tr>\n              ))}\n            </thead>\n\n            <tbody>\n              {rows.length === 0 ? (\n                <tr>\n                  <td\n                    colSpan={totalColSpan}\n                    className=\"h-40 text-center text-[15px] text-[#4B4760]\"\n                    data-testid=\"data-table-empty-state\"\n                  >\n                    {NO_ROWS_MESSAGES}\n                  </td>\n                </tr>\n              ) : (\n                <>\n                  {topPadding > 0 && (\n                    <tr>\n                      <td colSpan={totalColSpan} style={{ height: topPadding, padding: 0 }} />\n                    </tr>\n                  )}\n                  {virtualRows.map(virtualRow => {\n                    const row = rows[virtualRow.index]\n                    return (\n                      <tr\n                        key={row.id}\n                        ref={rowVirtualizer.measureElement}\n                        data-index={virtualRow.index}\n                        className={cn(\n                          'group hover:bg-igz-accent-hover h-12 border-b border-[#eee] last:border-none',\n                          detailsPanel && 'cursor-pointer',\n                          row.getIsSelected() && 'bg-[#f2f7ff]'\n                        )}\n                        data-testid={`data-table-row-${row.id}`}\n                      >\n                        {row.getVisibleCells().map((cell, idx) => {\n                          const isCheckboxColumn =\n                            cell.column.id === DATATABLE_TEXT.CHECKBOX_COLUMN_ID\n                          const isFirstDataColumn = checkboxSelection ? idx === 1 : idx === 0\n                          const columnMeta = cell.column.columnDef.meta as\n                            | { skipEllipsisTooltip?: boolean; tdClassName?: string }\n                            | undefined\n                          const skipEllipsisTooltip = Boolean(columnMeta?.skipEllipsisTooltip)\n                          const renderedCell = flexRender(\n                            cell.column.columnDef.cell,\n                            cell.getContext()\n                          )\n                          const wrapCellWithEllipsis = !isCheckboxColumn && !skipEllipsisTooltip\n                          const cellContent = wrapCellWithEllipsis ? (\n                            <EllipsisTooltip>{renderedCell}</EllipsisTooltip>\n                          ) : (\n                            renderedCell\n                          )\n                          return (\n                            <td\n                              key={cell.id}\n                              onClick={\n                                !isCheckboxColumn && onRowSelect\n                                  ? () => onRowSelect(row.original)\n                                  : undefined\n                              }\n                              style={getColumnSize(\n                                isCheckboxColumn,\n                                isFirstDataColumn,\n                                cell.column.getSize(),\n                                getColumnWidth\n                              )}\n                              className={cn(\n                                'relative px-4 py-2 text-left text-[#4B4760] text-[15px] font-normal',\n                                skipEllipsisTooltip ? 'min-w-0' : 'truncate',\n                                isFirstDataColumn && 'w-[250px] pr-[10px]',\n                                isCheckboxColumn && 'w-12 px-3',\n                                columnMeta?.tdClassName\n                              )}\n                              data-testid={`data-table-cell-${row.id}`}\n                            >\n                              {cellContent}\n                            </td>\n                          )\n                        })}\n                        {rowActions && (\n                          <td\n                            className=\"relative px-1\"\n                            data-testid={`data-table-actions-cell-${row.id}`}\n                            onClick={e => e.stopPropagation()}\n                          >\n                            <RowActions actions={rowActions(row.original)} />\n                          </td>\n                        )}\n                      </tr>\n                    )\n                  })}\n                  {bottomPadding > 0 && (\n                    <tr>\n                      <td colSpan={totalColSpan} style={{ height: bottomPadding, padding: 0 }} />\n                    </tr>\n                  )}\n                </>\n              )}\n            </tbody>\n          </table>\n        </div>\n\n        {selected && detailsPanel && (\n          <DetailsPanel row={selected} {...detailsPanel} onClose={() => onRowClose?.()} />\n        )}\n      </div>\n\n      {pagination && <PaginationControls {...pagination} />}\n    </>\n  )\n}\n\nexport default DataTable\n"],"names":["DataTable","className","data","columns","initialSorting","pagination","rowActions","detailsPanel","checkboxSelection","selectedRow","onRowSelect","onRowClose","tableContainerRef","useRef","wrapperRef","useClickOutside","detailsPanelSelection","useMemo","index","rowSelection","allColumns","checkboxColumn","table","useReactTable","updaterOrValue","newSelection","getCoreRowModel","getFilteredRowModel","getSortedRowModel","rows","rowVirtualizer","useVirtualizer","ESTIMATED_ROW_HEIGHT","virtualRows","selected","_a","r","visibleColumns","getColumnWidth","getColumnWidthCalculator","totalColSpan","topPadding","bottomPadding","getVirtualPadding","jsxs","Fragment","jsx","cn","headerGroup","header","headerIndex","isCheckboxColumn","DATATABLE_TEXT","isFirstDataColumn","getColumnSize","flexRender","EllipsisTooltip","SortArrow","SORT_DIRECTION","NO_ROWS_MESSAGES","virtualRow","row","cell","idx","columnMeta","skipEllipsisTooltip","renderedCell","cellContent","e","RowActions","DetailsPanel","PaginationControls"],"mappings":"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"}