{"version":3,"file":"DataTable.cjs","names":["_materialReactTable","require","_react","_Box","_MenuButton","_MenuItem","_i18n","_index","_OdysseyDesignTokensContext","_DataFilters","_DataTablePagination","_jsxRuntime","_interopRequireDefault","e","__esModule","default","densityValues","exports","reorderDataRowsLocally","currentData","rowId","newIndex","updatedData","rowIndex","findIndex","row","id","removedRow","splice","DataTable","columns","data","dataProp","getRowId","page","pageProp","initialDensity","resultsPerPage","resultsPerPageProp","fetchDataFn","reorderDataFn","totalRows","hasSearchSubmitButton","searchDelayTime","paginationType","onRowSelectionChange","rowActionButtons","rowActionMenuItems","hasChangeableDensity","hasColumnResizing","hasColumnVisibility","hasFilters","hasPagination","hasRowReordering","hasRowSelection","hasSearch","hasSorting","odysseyDesignTokens","useOdysseyDesignTokens","t","useTranslation","draggingRow","setDraggingRow","useState","showSkeletons","setShowSkeletons","setData","setPage","setResultsPerPage","rowSelection","setRowSelection","sorting","setSorting","density","setDensity","initialColumnVisibility","useMemo","reduce","acc","column","accessorKey","columnVisibility","setColumnVisibility","globalFilter","setGlobalFilter","filters","setFilters","useEffect","refreshData","useCallback","newData","sort","search","Promise","error","console","handleSortingChange","updater","prevSorting","Function","handleColumnVisibility","columnId","prevVisibility","handleSearch","value","handleFilters","updatedFilters","handleRowSelectionChange","prevRowSelection","updateRowOrder","rowVirtualizerInstanceRef","useRef","setHoveredRow","table","nextRow","getRow","resetDraggingAndHoveredRow","handleDragHandleKeyDown","event","hoveredRow","getState","key","isSpaceKey","isEnterKey","isEscapeKey","isArrowDown","isArrowUp","isSpaceOrEnter","zeroIndexedPageNumber","currentIndex","index","preventDefault","stopPropagation","pageRelativeIndex","setTimeout","TransitionDurationMainAsNumber","nextIndex","handleDragHandleOnDragEnd","cols","getAllColumns","toggleVisibility","handleDragHandleOnDragCapture","tableState","useMaterialReactTable","state","rowVirtualizerOptions","overscan","enableRowVirtualization","enableColumnResizing","enableDensityToggle","enableFullScreenToggle","enablePagination","enableRowSelection","enableFilters","enableHiding","enableRowOrdering","enableRowDragging","enableSorting","selectAllMode","enableColumnActions","layoutMode","displayColumnDefOptions","muiTableBodyCellProps","align","sx","overflow","width","muiTableHeadCellProps","header","minWidth","enableGlobalFilter","manualFiltering","manualSorting","icons","ArrowDownwardIcon","ArrowDownIcon","DragHandleIcon","DragIndicatorIcon","SyncAltIcon","ArrowUnsortedIcon","onSortingChange","enableRowActions","positionActionsColumn","className","find","item","muiTableBodyRowProps","undefined","muiRowDragHandleProps","title","onKeyDown","onBlur","onDragEnd","onDragCapture","padding","Spacing1","borderRadius","BorderRadiusMain","boxShadow","HueNeutralWhite","PalettePrimaryMain","outline","outlineOffset","renderRowActions","jsxs","Box","display","children","original","MenuButton","ariaLabel","buttonVariant","endIcon","jsx","MoreIcon","menuAlignment","size","Fragment","MenuItem","isDisabled","onClick","ArrowTopIcon","ArrowUpIcon","ArrowBottomIcon","tableSettings","ListIcon","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","ShowIcon","filter","_Checkbox2","checked","flexDirection","gap","DataFilters","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","onChangeFilters","onChangeSearch","MRT_TableContainer","DataTablePagination","currentNumberOfResults","length","currentPage","isNextButtonDisabled","isPreviousButtonDisabled","onClickNext","onClickPrevious","MemoizedDataTable","memo","displayName"],"sources":["../../../src/labs/DataTable.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.\n * The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the \"License.\")\n *\n * You may obtain a copy of the License at http://www.apache.org/licenses/LICENSE-2.0.\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS, WITHOUT\n * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *\n * See the License for the specific language governing permissions and limitations under the License.\n */\n\nimport { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport {\n  MRT_ColumnDef,\n  MRT_DensityState,\n  MRT_Row,\n  MRT_RowData,\n  MRT_RowSelectionState,\n  MRT_RowVirtualizer,\n  MRT_SortingState,\n  MRT_TableContainer,\n  MRT_TableInstance,\n  MRT_TableOptions,\n  MRT_Updater,\n  MRT_VisibilityState,\n  useMaterialReactTable,\n} from \"material-react-table\";\nimport {\n  Fragment,\n  KeyboardEvent,\n  memo,\n  ReactElement,\n  useCallback,\n  useEffect,\n  useMemo,\n  useRef,\n  useState,\n} from \"react\";\n\nimport { Box } from \"../Box.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { MenuButton } from \"../Buttons/MenuButton.js\";\nimport { MenuItem } from \"../Buttons/MenuItem.js\";\nimport { useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n  ArrowBottomIcon,\n  ArrowDownIcon,\n  ArrowTopIcon,\n  ArrowUnsortedIcon,\n  ArrowUpIcon,\n  DragIndicatorIcon,\n  ListIcon,\n  MoreIcon,\n  ShowIcon,\n} from \"../icons.generated/index.js\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport { DataFilter, DataFilters } from \"./DataFilters.js\";\nimport {\n  DataTablePagination,\n  paginationTypeValues,\n} from \"./DataTablePagination.js\";\n\nexport const densityValues = [\"comfortable\", \"spacious\", \"compact\"] as const;\n\nexport type {\n  MRT_ColumnFiltersState,\n  MRT_SortingState,\n  MRT_ColumnDef as TableColumn,\n} from \"material-react-table\";\n\n// The shape of the table columns, with props named to match their MRT_ColumnDef counterparts\nexport type DataTableColumn<TData extends MRT_RowData> = {\n  /**\n   * The unique ID of the column\n   */\n  accessorKey: string;\n  /**\n   * Customize the way each cell in the column is displayed via a custom React component.\n   */\n  Cell?: MRT_ColumnDef<TData>[\"Cell\"];\n  /**\n   * If `false`, the column is excluded from column-level filtering.\n   */\n  enableColumnFilter?: boolean;\n  /**\n   * If `false`, the column is excluded from the global search.\n   */\n  enableGlobalFilter?: boolean;\n  /**\n   * If `false`, the column cannot be hidden by the user.\n   */\n  enableHiding?: boolean;\n  /**\n   * If `false`, the column cannot be resized by the user.\n   */\n  enableResizing?: boolean;\n  /**\n   * If `false`, the column cannot be sorted.\n   */\n  enableSorting?: boolean;\n  /**\n   * If the filter control has preset options (such as a select or multi-select), these are the options provided.\n   */\n  filterSelectOptions?: Array<{ label: string; value: string }>;\n  /**\n   * The UI control that will be used to filter the column. Defaults to a standard text input.\n   */\n  filterVariant?: MRT_ColumnDef<TData>[\"filterVariant\"];\n  /**\n   * The human-friendly title of the column\n   */\n  header: string;\n  /**\n   * The maximum column width, in pixels\n   */\n  maxSize?: number;\n  /**\n   * The minimum column width, in pixels\n   */\n  minSize?: number;\n  /**\n   * The optional column width, in pixels\n   */\n  size?: number;\n};\n\nexport type DataTableProps<TData extends MRT_RowData> = {\n  /**\n   * The columns that make up the table\n   */\n  columns: DataTableColumn<TData>[];\n  /**\n   * The data that goes into the table, which will be displayed as the table rows\n   */\n  data: MRT_TableOptions<TData>[\"data\"];\n  /**\n   * Callback that fires whenever the table needs to fetch new data, due to changes in page, results per page, search input, filters, or sorting\n   */\n  fetchDataFn: ({\n    page,\n    resultsPerPage,\n    search,\n    filters,\n    sort,\n  }: {\n    filters?: DataFilter[];\n    page?: number;\n    resultsPerPage?: number;\n    search?: string;\n    sort?: MRT_SortingState;\n  }) =>\n    | MRT_TableOptions<TData>[\"data\"]\n    | Promise<MRT_TableOptions<TData>[\"data\"]>;\n  /**\n   * The function to get the ID of a row\n   */\n  getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\n  /**\n   * If `true`, the end user can change the table row density.\n   */\n  hasChangeableDensity?: boolean;\n  /**\n   * If `true`, the end user can resize individual columns.\n   */\n  hasColumnResizing?: boolean;\n  /**\n   * If `true`, the end user can show or hide columns.\n   */\n  hasColumnVisibility?: boolean;\n  /**\n   * If `true`, a filter menu is shown above the table.\n   */\n  hasFilters?: boolean;\n  /**\n   * If `true`, pagination controls are shown below the table.\n   */\n  hasPagination?: boolean;\n  /**\n   * If `true`, the end user can reorder rows via drag-and-drop.\n   */\n  hasRowReordering?: boolean;\n  /**\n   * If `true`, each row includes a checkbox for row selection.\n   */\n  hasRowSelection?: boolean;\n  /**\n   * If `true`, a global search field is shown above the table.\n   */\n  hasSearch?: boolean;\n  /**\n   * If `true`, the search field includes a submit button; otherwise it fires on each input change.\n   */\n  hasSearchSubmitButton?: boolean;\n  /**\n   * If `true`, the end user can sort columns ascending, descending, or unsorted.\n   */\n  hasSorting?: boolean;\n  /**\n   * The initial density of the table. This is available even if the table density isn't changeable.\n   */\n  initialDensity?: (typeof densityValues)[number];\n  /**\n   * Callback that fires when a row (or rows) is selected or unselected.\n   */\n  onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n  /**\n   * The current page number.\n   */\n  page?: number;\n  /**\n   * The type of pagination controls shown. Defaults to next/prev buttons, but can be set to a simple \"Load more\" button by setting to \"loadMore\".\n   */\n  paginationType?: (typeof paginationTypeValues)[number];\n  /**\n   * Callback that fires when the user reorders rows within the table. Can be used to propagate order change to the backend.\n   */\n  reorderDataFn?: ({\n    rowId,\n    newIndex,\n  }: {\n    newIndex: number;\n    rowId: string;\n  }) => void;\n  /**\n   * The number of results per page.\n   */\n  resultsPerPage?: number;\n  /**\n   * Action buttons to display in each row\n   */\n  rowActionButtons?: (\n    row: TData,\n  ) => ReactElement<typeof Button | typeof Fragment>;\n  /**\n   * Menu items to include in the optional actions menu on each row.\n   */\n  rowActionMenuItems?: (\n    row: TData,\n  ) => ReactElement<typeof MenuItem | typeof Fragment>;\n  /**\n   * The debounce time, in milliseconds, for the search input firing `onChangeSearch` when changed. If `hasSearchSubmitButton` is true, this doesn't do anything.\n   */\n  searchDelayTime?: number;\n  /**\n   * The total number of rows in the table. Optional, because it's sometimes impossible to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n   */\n  totalRows?: number;\n};\n\ntype TableType<TData extends MRT_RowData> = MRT_TableInstance<TData>;\n\nconst reorderDataRowsLocally = <TData extends MRT_RowData>({\n  currentData,\n  rowId,\n  newIndex,\n}: {\n  currentData: MRT_TableOptions<TData>[\"data\"];\n  newIndex: number;\n  rowId: string;\n}) => {\n  const updatedData = [...currentData];\n\n  const rowIndex = updatedData.findIndex((row) => row.id === rowId);\n\n  if (rowIndex !== -1) {\n    // Remove the row from its current position\n    const [removedRow] = updatedData.splice(rowIndex, 1);\n\n    // Insert the row at the new index\n    updatedData.splice(newIndex, 0, removedRow);\n  }\n\n  return updatedData;\n};\n\nconst DataTable = <TData extends MRT_RowData>({\n  columns,\n  data: dataProp,\n  getRowId,\n  page: pageProp = 1,\n  initialDensity = densityValues[0],\n  resultsPerPage: resultsPerPageProp = 20,\n  fetchDataFn,\n  reorderDataFn,\n  totalRows,\n  hasSearchSubmitButton,\n  searchDelayTime,\n  paginationType = \"paged\",\n  onRowSelectionChange,\n  rowActionButtons,\n  rowActionMenuItems,\n  hasChangeableDensity,\n  hasColumnResizing,\n  hasColumnVisibility,\n  hasFilters,\n  hasPagination,\n  hasRowReordering,\n  hasRowSelection,\n  hasSearch,\n  hasSorting,\n}: DataTableProps<TData>) => {\n  const odysseyDesignTokens = useOdysseyDesignTokens();\n  const { t } = useTranslation();\n  const [draggingRow, setDraggingRow] = useState<MRT_Row<TData> | null>();\n  const [showSkeletons, setShowSkeletons] = useState<boolean>(true);\n  const [data, setData] = useState<MRT_TableOptions<TData>[\"data\"]>(dataProp);\n  const [page, setPage] = useState<number>(pageProp);\n  const [resultsPerPage, setResultsPerPage] =\n    useState<number>(resultsPerPageProp);\n  const [rowSelection, setRowSelection] = useState<MRT_RowSelectionState>({});\n  const [sorting, setSorting] = useState<MRT_SortingState>([]);\n  const [density, setDensity] = useState<MRT_DensityState>(initialDensity);\n\n  const initialColumnVisibility = useMemo(() => {\n    return columns.reduce((acc, column) => {\n      acc[column.accessorKey] = true;\n      return acc;\n    }, {} as MRT_VisibilityState);\n  }, [columns]);\n\n  const [columnVisibility, setColumnVisibility] = useState<MRT_VisibilityState>(\n    initialColumnVisibility,\n  );\n\n  const [globalFilter, setGlobalFilter] = useState<string>(\"\");\n  const [filters, setFilters] = useState<Array<DataFilter>>();\n\n  useEffect(() => {\n    setShowSkeletons(false);\n  }, [data]);\n\n  useEffect(() => {\n    onRowSelectionChange?.(rowSelection);\n  }, [rowSelection, onRowSelectionChange]);\n\n  const refreshData = useCallback(async () => {\n    setShowSkeletons(true);\n    try {\n      const newData = fetchDataFn({\n        page: page,\n        resultsPerPage: resultsPerPage,\n        sort: sorting,\n        search: globalFilter,\n        filters: filters,\n      });\n\n      setData(newData instanceof Promise ? await newData : newData);\n\n      setShowSkeletons(false);\n    } catch (error) {\n      console.error(error);\n      setShowSkeletons(false);\n    }\n  }, [page, resultsPerPage, sorting, globalFilter, filters, fetchDataFn]);\n\n  useEffect(() => {\n    refreshData();\n  }, [refreshData, page, resultsPerPage, sorting, globalFilter, filters]);\n\n  const handleSortingChange = useCallback(\n    (updater: MRT_Updater<MRT_SortingState>) => {\n      setSorting((prevSorting) =>\n        updater instanceof Function ? updater(prevSorting) : sorting,\n      );\n    },\n    [sorting],\n  );\n\n  const handleColumnVisibility = useCallback(\n    (columnId: string) => {\n      setColumnVisibility((prevVisibility) => ({\n        ...prevVisibility,\n        [columnId]: !columnVisibility[columnId],\n      }));\n    },\n    [columnVisibility],\n  );\n\n  const handleSearch = useCallback((value: string) => {\n    setGlobalFilter(value);\n  }, []);\n\n  const handleFilters = useCallback((updatedFilters: Array<DataFilter>) => {\n    setFilters(updatedFilters);\n  }, []);\n\n  const handleRowSelectionChange = useCallback(\n    (updater: MRT_Updater<MRT_RowSelectionState>) => {\n      setRowSelection((prevRowSelection) =>\n        updater instanceof Function ? updater(prevRowSelection) : rowSelection,\n      );\n    },\n    [rowSelection],\n  );\n\n  const updateRowOrder = useCallback(\n    ({ rowId, newIndex }: { newIndex: number; rowId: string }) => {\n      if (newIndex < 0) {\n        return;\n      }\n\n      if (totalRows && newIndex > totalRows) {\n        return;\n      }\n\n      const newData = reorderDataRowsLocally({\n        currentData: data,\n        rowId,\n        newIndex,\n      });\n\n      setData(newData);\n      reorderDataFn?.({ rowId, newIndex });\n      refreshData();\n    },\n    [data, totalRows, reorderDataFn, refreshData],\n  );\n\n  const rowVirtualizerInstanceRef =\n    useRef<MRT_RowVirtualizer<HTMLDivElement, HTMLTableRowElement>>(null);\n\n  const setHoveredRow = useCallback<\n    (table: TableType<TData>, id: TData[\"id\"]) => void\n  >((table, id) => {\n    if (id) {\n      const nextRow = table.getRow(id) as MRT_Row<TData>;\n\n      if (nextRow) {\n        table.setHoveredRow(nextRow);\n      }\n    }\n  }, []);\n\n  const resetDraggingAndHoveredRow = useCallback<\n    (table: TableType<TData>) => void\n  >(\n    (table) => {\n      setDraggingRow(null);\n      table.setHoveredRow(null);\n    },\n    [setDraggingRow],\n  );\n\n  type HandleDragHandleKeyDownArgs = {\n    event: KeyboardEvent<HTMLButtonElement>;\n    row: MRT_Row<TData>;\n    table: TableType<TData>;\n  };\n\n  const handleDragHandleKeyDown = useCallback(\n    ({ table, row, event }: HandleDragHandleKeyDownArgs) => {\n      const { hoveredRow } = table.getState();\n\n      const { key } = event;\n\n      const isSpaceKey = key === \" \";\n      const isEnterKey = key === \"Enter\";\n      const isEscapeKey = key === \"Escape\";\n      const isArrowDown = key === \"ArrowDown\";\n      const isArrowUp = key === \"ArrowUp\";\n      const isSpaceOrEnter = isSpaceKey || isEnterKey;\n      const zeroIndexedPageNumber = page - 1;\n      const currentIndex = row.index + zeroIndexedPageNumber * resultsPerPage;\n\n      if (isEscapeKey) {\n        resetDraggingAndHoveredRow(table);\n        return;\n      }\n\n      if (isSpaceOrEnter) {\n        event.preventDefault();\n        event.stopPropagation();\n      }\n\n      if (draggingRow) {\n        if (typeof hoveredRow?.index === \"number\") {\n          const { index } = hoveredRow;\n\n          if (isSpaceOrEnter) {\n            const pageRelativeIndex =\n              index + zeroIndexedPageNumber * resultsPerPage;\n\n            if (pageRelativeIndex !== currentIndex) {\n              updateRowOrder({\n                rowId: row.id,\n                newIndex: pageRelativeIndex,\n              });\n\n              // Can't transition CSS hover effect. Use timeout to delay hovered row effect removal\n              setTimeout(() => {\n                resetDraggingAndHoveredRow(table);\n              }, odysseyDesignTokens.TransitionDurationMainAsNumber);\n              return;\n            }\n          }\n\n          if (isArrowDown || isArrowUp) {\n            const nextIndex = isArrowDown ? index + 1 : index - 1;\n            // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n            setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n          }\n        } else {\n          if (isArrowDown || isArrowUp) {\n            const nextIndex = isArrowDown ? row.index + 1 : row.index - 1;\n            // This is a legacy file. In general, we shouldn't have `as` here. Newer versions will have this fixed. --Kevin Ghadyani\n            setHoveredRow(table, data[nextIndex]?.id as TData[\"id\"]);\n          }\n        }\n      } else {\n        if (isSpaceOrEnter) {\n          setDraggingRow(row);\n        }\n      }\n    },\n    [\n      data,\n      draggingRow,\n      odysseyDesignTokens.TransitionDurationMainAsNumber,\n      page,\n      resetDraggingAndHoveredRow,\n      resultsPerPage,\n      setHoveredRow,\n      updateRowOrder,\n    ],\n  );\n\n  const handleDragHandleOnDragEnd = useCallback(\n    (table: TableType<TData>) => {\n      const cols = table.getAllColumns();\n      cols[0].toggleVisibility();\n\n      const { draggingRow, hoveredRow } = table.getState();\n\n      if (draggingRow) {\n        updateRowOrder({\n          newIndex: (hoveredRow as TData).index as number,\n          rowId: draggingRow.id,\n        });\n      }\n\n      setDraggingRow(null);\n    },\n    [updateRowOrder],\n  );\n\n  const handleDragHandleOnDragCapture = useCallback(\n    (table: TableType<TData>) => {\n      if (!draggingRow && table.getState().draggingRow?.id) {\n        setDraggingRow(table.getState().draggingRow);\n      }\n    },\n    [draggingRow],\n  );\n\n  const tableState = useMemo(\n    () => ({\n      density,\n      sorting,\n      globalFilter,\n      columnVisibility,\n      rowSelection,\n      showSkeletons,\n    }),\n    [\n      density,\n      sorting,\n      globalFilter,\n      columnVisibility,\n      rowSelection,\n      showSkeletons,\n    ],\n  );\n\n  const table = useMaterialReactTable({\n    columns: columns,\n    data: data,\n    state: tableState,\n    rowVirtualizerInstanceRef: rowVirtualizerInstanceRef,\n    rowVirtualizerOptions: { overscan: 4 },\n    enableRowVirtualization:\n      paginationType === \"loadMore\" || resultsPerPage > 50,\n    enableColumnResizing: hasColumnResizing,\n    enableDensityToggle: false,\n    enableFullScreenToggle: false,\n    enablePagination: false,\n    enableRowSelection: hasRowSelection,\n    enableFilters: false,\n    enableHiding: false,\n    enableRowOrdering: hasRowReordering,\n    enableRowDragging: hasRowReordering,\n    enableSorting: hasSorting,\n    selectAllMode: \"all\",\n    enableColumnActions: false,\n    layoutMode: \"grid-no-grow\",\n    displayColumnDefOptions: {\n      \"mrt-row-actions\": {\n        muiTableBodyCellProps: {\n          align: \"right\",\n          sx: {\n            overflow: \"visible\",\n            width: \"unset\",\n          },\n        },\n        muiTableHeadCellProps: {\n          align: \"right\",\n          sx: {\n            width: \"unset\",\n          },\n        },\n      },\n      \"mrt-row-drag\": {\n        header: \"\",\n        muiTableBodyCellProps: {\n          sx: {\n            minWidth: 0,\n            width: \"auto\",\n          },\n        },\n        muiTableHeadCellProps: {\n          sx: {\n            minWidth: 0,\n            width: \"auto\",\n          },\n        },\n      },\n    },\n    enableGlobalFilter: false,\n    manualFiltering: true,\n    manualSorting: true,\n    getRowId: getRowId,\n    icons: {\n      ArrowDownwardIcon: ArrowDownIcon,\n      DragHandleIcon: DragIndicatorIcon,\n      SyncAltIcon: ArrowUnsortedIcon,\n    },\n    onSortingChange: handleSortingChange,\n    onRowSelectionChange: handleRowSelectionChange,\n    enableRowActions:\n      hasRowReordering === true || rowActionButtons || rowActionMenuItems\n        ? true\n        : false,\n    positionActionsColumn: \"last\",\n\n    muiTableHeadCellProps: ({ column }) => ({\n      className: sorting.find((item) => item.id === column.id)\n        ? \"isSorted\"\n        : \"isUnsorted\",\n    }),\n\n    muiTableBodyRowProps: ({ table, row }) => ({\n      className:\n        draggingRow?.id === row.id && table.getState().hoveredRow?.id !== row.id\n          ? \"isDragging\"\n          : table.getState().hoveredRow?.id === row.id &&\n              draggingRow?.id !== row.id\n            ? \"isDragTarget\"\n            : draggingRow?.id === row.id &&\n                table.getState().hoveredRow?.id === row.id\n              ? \"isDragging isDragTarget\"\n              : undefined,\n    }),\n\n    muiRowDragHandleProps: ({ table, row }) => ({\n      title: t(\"table.draghandle.tooltip\"),\n      \"aria-label\": t(\"table.draghandle.arialabel\"),\n      onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n      onBlur: () => {\n        resetDraggingAndHoveredRow(table);\n      },\n      onDragEnd: () => handleDragHandleOnDragEnd(table),\n      onDragCapture: () => handleDragHandleOnDragCapture(table),\n      sx: {\n        padding: odysseyDesignTokens.Spacing1,\n        borderRadius: odysseyDesignTokens.BorderRadiusMain,\n\n        \"&:focus-visible\": {\n          boxShadow: `0 0 0 2px ${odysseyDesignTokens.HueNeutralWhite}, 0 0 0 4px ${odysseyDesignTokens.PalettePrimaryMain}`,\n          outline: \"2px solid transparent\",\n          outlineOffset: \"1px\",\n        },\n      },\n    }),\n\n    renderRowActions: ({ row }) => {\n      const currentIndex = row.index + (page - 1) * resultsPerPage;\n\n      return (\n        <Box sx={{ display: \"flex\" }}>\n          {rowActionButtons?.(row.original)}\n          {(rowActionMenuItems || hasRowReordering) && (\n            <MenuButton\n              ariaLabel={t(\"table.moreactions.arialabel\")}\n              buttonVariant=\"floating\"\n              endIcon={<MoreIcon />}\n              menuAlignment=\"right\"\n              size=\"small\"\n            >\n              {rowActionMenuItems && (\n                <>\n                  {rowActionMenuItems(row.original)}\n                  <hr />\n                </>\n              )}\n              <MenuItem\n                isDisabled={currentIndex <= 0}\n                onClick={() => updateRowOrder({ rowId: row.id, newIndex: 0 })}\n              >\n                <ArrowTopIcon /> Bring to front\n              </MenuItem>\n              <MenuItem\n                isDisabled={currentIndex <= 0}\n                onClick={() =>\n                  updateRowOrder({\n                    rowId: row.id,\n                    newIndex: currentIndex <= 0 ? 0 : currentIndex - 1,\n                  })\n                }\n              >\n                <ArrowUpIcon /> Bring forward\n              </MenuItem>\n              <MenuItem\n                isDisabled={totalRows ? currentIndex >= totalRows - 1 : false}\n                onClick={() =>\n                  updateRowOrder({\n                    rowId: row.id,\n                    newIndex: currentIndex + 1,\n                  })\n                }\n              >\n                <ArrowDownIcon /> Send backward\n              </MenuItem>\n              <>\n                {totalRows && (\n                  <MenuItem\n                    isDisabled={currentIndex >= totalRows - 1}\n                    onClick={() =>\n                      updateRowOrder({\n                        rowId: row.id,\n                        newIndex: totalRows,\n                      })\n                    }\n                  >\n                    <ArrowBottomIcon /> Send to back\n                  </MenuItem>\n                )}\n              </>\n            </MenuButton>\n          )}\n        </Box>\n      );\n    },\n  });\n\n  const tableSettings = useMemo(\n    () => (\n      <>\n        {hasChangeableDensity && (\n          <MenuButton\n            ariaLabel=\"Table density\"\n            endIcon={<ListIcon />}\n            menuAlignment=\"right\"\n            shouldCloseOnSelect={false}\n          >\n            <>\n              {densityValues.map((value: MRT_DensityState) => (\n                <MenuItem\n                  isSelected={density === value}\n                  key={value}\n                  onClick={() => setDensity(value)}\n                >\n                  {`${value.charAt(0).toUpperCase()}${value.slice(1)}`}\n                </MenuItem>\n              ))}\n            </>\n          </MenuButton>\n        )}\n\n        {hasColumnVisibility && (\n          <MenuButton\n            ariaLabel=\"Show/hide columns\"\n            endIcon={<ShowIcon />}\n            menuAlignment=\"right\"\n            shouldCloseOnSelect={false}\n          >\n            <>\n              {columns\n                .filter((column) => column.enableHiding !== false)\n                .map((column) => (\n                  <MenuItem\n                    key={column.accessorKey}\n                    onClick={() => handleColumnVisibility(column.accessorKey)}\n                  >\n                    <MuiCheckbox\n                      checked={columnVisibility[column.accessorKey] !== false}\n                    />\n                    {column.header}\n                  </MenuItem>\n                ))}\n            </>\n          </MenuButton>\n        )}\n      </>\n    ),\n    [\n      columnVisibility,\n      columns,\n      density,\n      hasChangeableDensity,\n      handleColumnVisibility,\n      hasColumnVisibility,\n    ],\n  );\n\n  return (\n    <Box sx={{ display: \"flex\", flexDirection: \"column\", gap: 4 }}>\n      <DataFilters\n        additionalActions={tableSettings}\n        filters={\n          hasFilters\n            ? columns\n                .filter((column) => column.enableColumnFilter !== false)\n                .map((column) => {\n                  return {\n                    id: column.accessorKey,\n                    label: column.header,\n                    variant: column.filterVariant ?? \"text\",\n                    options: column.filterSelectOptions,\n                  };\n                })\n            : undefined\n        }\n        hasSearchSubmitButton={hasSearchSubmitButton}\n        onChangeFilters={handleFilters}\n        onChangeSearch={hasSearch ? handleSearch : undefined}\n        searchDelayTime={searchDelayTime}\n      />\n\n      <MRT_TableContainer table={table} />\n\n      {hasPagination && (\n        <DataTablePagination\n          currentNumberOfResults={data.length}\n          currentPage={page}\n          isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n          isPreviousButtonDisabled={page <= 1}\n          onClickNext={() => {\n            if (paginationType === \"loadMore\") {\n              setResultsPerPage(resultsPerPage + resultsPerPageProp);\n            } else {\n              setPage(page + 1);\n            }\n          }}\n          onClickPrevious={() => setPage(page - 1)}\n          paginationType={paginationType}\n        />\n      )}\n    </Box>\n  );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":"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","ignoreList":[]}