{"version":3,"file":"TableLayoutContent.cjs","names":["_styled","_interopRequireDefault","require","_materialReactTable","_react","_Box","_Button","_MenuButton","_useScrollIndication","_i18n","_index","_OdysseyDesignTokensContext","_RowActions","_tableConstants","_jsxRuntime","e","__esModule","default","TextWrapper","styled","whiteSpace","textOverflow","overflow","RowActionsContainer","display","TableLayoutContent","columns","data","draggingRow","emptyState","enableVirtualization","getRowId","hasRowReordering","hasRowSelection","isEmpty","isLoading","isNoResults","isRowReorderingDisabled","isRowSelectionDisabled","onReorderRows","pagination","rowReorderingUtilities","rowSelection","search","setRowSelection","setTableState","tableLayoutOptions","tableState","totalRows","isTableContainerScrolledToStart","setIsTableContainerScrolledToStart","useState","isTableContainerScrolledToEnd","setIsTableContainerScrolledToEnd","tableInnerContainerWidth","setTableInnerContainerWidth","shouldUpdateScroll","useRef","tableOuterContainerRef","tableInnerContainerRef","tableContentRef","useScrollIndication","tableInnerContainer","current","tableOuterContainer","odysseyDesignTokens","useOdysseyDesignTokens","t","useTranslation","columnIds","useMemo","map","column","accessorKey","columnOrder","filter","id","rowDensityClassName","rowDensity","defaultCell","useCallback","cell","value","getValue","hasTextWrapping","columnDef","enableWrapping","jsx","children","draggableTableBodyRowClassName","dragHandleStyles","dragHandleText","handleDragHandleKeyDown","handleDragHandleOnDragCapture","handleDragHandleOnDragEnd","resetDraggingAndHoveredRow","updateRowOrder","renderRowActions","row","currentIndex","index","pageIndex","pageSize","jsxs","rowActionButtons","original","rowActionMenuItems","MenuButton","ariaLabel","buttonVariant","endIcon","MoreIcon","menuAlignment","size","RowActions","rowIndex","undefined","innerWidthStyle","width","emptyStateContainer","Box","sx","useEffect","scrollTo","clientHeight","shouldDisplayRowActions","hasColumnWithGrow","some","grow","dataTable","useMaterialReactTable","state","sorting","columnSorting","columnVisibility","globalFilter","icons","ArrowDownwardIcon","ArrowDownIcon","DragHandleIcon","DragIndicatorIcon","SyncAltIcon","ArrowUnsortedIcon","ExpandMoreIcon","ChevronDownIcon","dataTableImmutableSettings","displayColumnDefOptions","header","muiTableBodyCellProps","align","className","muiTableHeadCellProps","visibility","Button","isDisabled","variant","muiTableProps","ref","hasColumnResizing","muiTableContainerProps","muiTableBodyProps","tabIndex","height","enableColumnResizing","defaultColumn","Cell","enableRowActions","enableRowOrdering","Boolean","enableRowDragging","muiDetailPanelProps","paddingBlock","getIsExpanded","Spacing3","muiTableBodyRowProps","table","isDetailPanel","currentRowId","draggingRowId","hoveredRowId","getState","hoveredRow","border","backgroundColor","HueNeutralWhite","muiRowDragHandleProps","onKeyDown","event","onBlur","onDragEnd","onDragCapture","disabled","renderDetailPanel","enableRowVirtualization","currentColumn","find","sortedColumn","getIsResizing","enableSorting","hasSorting","onSortingChange","sortingUpdater","newSortVal","prevState","enableRowSelection","onRowSelectionChange","renderEmptyRowsFallback","localization","collapse","collapseAll","expand","expandAll","ScrollableTableContainer","isScrollableEnd","isScrollableStart","MRT_TableContainer","MemoizedTableLayoutContent","exports","memo","displayName"],"sources":["../../../../src/labs/DataView/TableLayoutContent.tsx"],"sourcesContent":["/*!\n * Copyright (c) 2024-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 styled, { CSSObject } from \"@emotion/styled\";\nimport {\n  MRT_Row,\n  MRT_RowData,\n  MRT_RowSelectionState,\n  MRT_TableContainer,\n  MRT_TableInstance,\n  MRT_TableOptions,\n  useMaterialReactTable,\n} from \"material-react-table\";\nimport {\n  Dispatch,\n  type JSX,\n  memo,\n  ReactElement,\n  ReactNode,\n  SetStateAction,\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 { useScrollIndication } from \"../../DataTable/useScrollIndication.js\";\nimport { useTranslation } from \"../../i18n.generated/i18n.js\";\nimport {\n  ArrowDownIcon,\n  ArrowUnsortedIcon,\n  ChevronDownIcon,\n  DragIndicatorIcon,\n  MoreIcon,\n} from \"../../icons.generated/index.js\";\nimport { useOdysseyDesignTokens } from \"../../OdysseyDesignTokensContext.js\";\nimport {\n  TableLayoutProps,\n  TableState,\n  UniversalProps,\n} from \"./componentTypes.js\";\nimport { DataTableCell } from \"./dataTypes.js\";\nimport { RowActions } from \"./RowActions.js\";\nimport {\n  dataTableImmutableSettings,\n  displayColumnDefOptions,\n  ScrollableTableContainer,\n} from \"./tableConstants.js\";\n\nconst TextWrapper = styled(\"div\")({\n  whiteSpace: \"nowrap\",\n  textOverflow: \"ellipsis\",\n  overflow: \"hidden\",\n});\n\nconst RowActionsContainer = styled(\"div\")({\n  display: \"flex\",\n});\n\nexport type TableLayoutContentProps<TData extends MRT_RowData> = {\n  columns: TableLayoutProps<TData>[\"columns\"];\n  data: TData[];\n  draggingRow?: MRT_Row<TData> | null;\n  emptyState: ReactNode;\n  enableVirtualization?: boolean;\n  getRowId: UniversalProps<TData>[\"getRowId\"];\n  hasRowReordering: UniversalProps<TData>[\"hasRowReordering\"];\n  hasRowSelection: UniversalProps<TData>[\"hasRowSelection\"];\n  isEmpty?: boolean;\n  isLoading: boolean;\n  isNoResults?: boolean;\n  isRowReorderingDisabled?: boolean;\n  isRowSelectionDisabled?: UniversalProps<TData>[\"isRowSelectionDisabled\"];\n  onReorderRows: UniversalProps<TData>[\"onReorderRows\"];\n  pagination: {\n    pageIndex: number;\n    pageSize: number;\n  };\n  rowReorderingUtilities: {\n    draggableTableBodyRowClassName: ({\n      currentRowId,\n      draggingRowId,\n      hoveredRowId,\n    }: {\n      currentRowId: string;\n      draggingRowId?: string;\n      hoveredRowId?: string;\n    }) => string | undefined;\n    dragHandleStyles: CSSObject;\n    dragHandleText: {\n      \"aria-label\": string;\n      title: string;\n    };\n    handleDragHandleKeyDown: ({\n      table,\n      row,\n      event,\n    }: {\n      event: React.KeyboardEvent<HTMLButtonElement>;\n      row: MRT_Row<TData>;\n      table: MRT_TableInstance<TData>;\n    }) => void;\n    handleDragHandleOnDragCapture: (table: MRT_TableInstance<TData>) => void;\n    handleDragHandleOnDragEnd: (table: MRT_TableInstance<TData>) => void;\n    resetDraggingAndHoveredRow: (table: MRT_TableInstance<TData>) => void;\n    updateRowOrder: ({\n      rowId,\n      newRowIndex,\n    }: {\n      newRowIndex: number;\n      rowId: string;\n    }) => void;\n  };\n  rowSelection: MRT_RowSelectionState;\n  search?: string;\n  setRowSelection: Dispatch<SetStateAction<MRT_RowSelectionState>>;\n  setTableState: Dispatch<SetStateAction<TableState>>;\n  tableLayoutOptions: TableLayoutProps<TData>;\n  tableState: TableState;\n  totalRows: UniversalProps<TData>[\"totalRows\"];\n};\n\ntype TableLayoutContentComponent = (<TData extends MRT_RowData>(\n  props: TableLayoutContentProps<TData>,\n) => JSX.Element) & {\n  displayName?: string;\n};\n\nconst TableLayoutContent = <TData extends MRT_RowData>({\n  columns,\n  data,\n  draggingRow,\n  emptyState,\n  enableVirtualization,\n  getRowId,\n  hasRowReordering,\n  hasRowSelection,\n  isEmpty,\n  isLoading,\n  isNoResults,\n  isRowReorderingDisabled,\n  isRowSelectionDisabled,\n  onReorderRows,\n  pagination,\n  rowReorderingUtilities,\n  rowSelection,\n  search,\n  setRowSelection,\n  setTableState,\n  tableLayoutOptions,\n  tableState,\n  totalRows,\n}: TableLayoutContentProps<TData>) => {\n  const [isTableContainerScrolledToStart, setIsTableContainerScrolledToStart] =\n    useState(true);\n  const [isTableContainerScrolledToEnd, setIsTableContainerScrolledToEnd] =\n    useState(true);\n  const [tableInnerContainerWidth, setTableInnerContainerWidth] =\n    useState<string>(\"100%\");\n  const shouldUpdateScroll = useRef<boolean>(false);\n  const tableOuterContainerRef = useRef<HTMLDivElement>(null);\n  const tableInnerContainerRef = useRef<HTMLDivElement>(null);\n  const tableContentRef = useRef<HTMLTableElement>(null);\n\n  useScrollIndication({\n    setIsTableContainerScrolledToEnd: setIsTableContainerScrolledToEnd,\n    setIsTableContainerScrolledToStart: setIsTableContainerScrolledToStart,\n    setTableInnerContainerWidth: setTableInnerContainerWidth,\n    tableInnerContainer: tableInnerContainerRef.current,\n    tableOuterContainer: tableOuterContainerRef.current,\n  });\n\n  const odysseyDesignTokens = useOdysseyDesignTokens();\n  const { t } = useTranslation();\n\n  const columnIds = useMemo(() => {\n    return columns.map((column) => column.accessorKey) ?? [];\n  }, [columns]);\n\n  const columnOrder = useMemo(\n    () => [\n      \"mrt-row-drag\",\n      \"mrt-row-select\",\n      \"mrt-row-expand\",\n      ...(columnIds?.filter((id): id is string => typeof id === \"string\") ||\n        []),\n      \"mrt-row-actions\",\n    ],\n    [columnIds],\n  );\n\n  const rowDensityClassName = useMemo(() => {\n    return tableState.rowDensity === \"spacious\"\n      ? \"MuiTableBody-spacious\"\n      : tableState.rowDensity === \"compact\"\n        ? \"MuiTableBody-compact\"\n        : \"MuiTableBody-default\";\n  }, [tableState]);\n\n  const defaultCell = useCallback<\n    ({ cell }: { cell: DataTableCell<TData, unknown> }) => ReactElement | string\n  >(({ cell }) => {\n    const value = cell.getValue<string>();\n    const hasTextWrapping =\n      cell.column.columnDef.hasTextWrapping ||\n      cell.column.columnDef.enableWrapping;\n    return hasTextWrapping ? value : <TextWrapper>{value}</TextWrapper>;\n  }, []);\n\n  const {\n    draggableTableBodyRowClassName,\n    dragHandleStyles,\n    dragHandleText,\n    handleDragHandleKeyDown,\n    handleDragHandleOnDragCapture,\n    handleDragHandleOnDragEnd,\n    resetDraggingAndHoveredRow,\n    updateRowOrder,\n  } = rowReorderingUtilities;\n\n  const renderRowActions = useCallback(\n    ({ row }: { row: MRT_Row<TData> }) => {\n      const currentIndex =\n        row.index + (pagination.pageIndex - 1) * pagination.pageSize;\n      return (\n        <RowActionsContainer>\n          {tableLayoutOptions.rowActionButtons?.(row.original)}\n          {(tableLayoutOptions.rowActionMenuItems || hasRowReordering) && (\n            <MenuButton\n              ariaLabel={t(\"table.moreactions.arialabel\")}\n              buttonVariant=\"floating\"\n              endIcon={<MoreIcon />}\n              menuAlignment=\"right\"\n              size=\"small\"\n            >\n              <RowActions\n                isRowReorderingDisabled={isRowReorderingDisabled}\n                row={row}\n                rowActionMenuItems={\n                  tableLayoutOptions.rowActionMenuItems as TableLayoutProps<MRT_RowData>[\"rowActionMenuItems\"]\n                }\n                rowIndex={currentIndex}\n                totalRows={totalRows}\n                updateRowOrder={\n                  hasRowReordering && onReorderRows ? updateRowOrder : undefined\n                }\n              />\n            </MenuButton>\n          )}\n        </RowActionsContainer>\n      );\n    },\n    [\n      hasRowReordering,\n      isRowReorderingDisabled,\n      onReorderRows,\n      pagination.pageIndex,\n      pagination.pageSize,\n      t,\n      tableLayoutOptions,\n      totalRows,\n      updateRowOrder,\n    ],\n  );\n\n  const innerWidthStyle = useMemo(\n    () => ({ width: tableInnerContainerWidth }),\n    [tableInnerContainerWidth],\n  );\n\n  const emptyStateContainer = useCallback(\n    () => <Box sx={innerWidthStyle}>{emptyState}</Box>,\n    [innerWidthStyle, emptyState],\n  );\n\n  // Scroll to the bottom as soon as data loads after clicking the loadMore pagination button\n  useEffect(() => {\n    if (enableVirtualization) {\n      shouldUpdateScroll.current = true;\n    }\n  }, [enableVirtualization, pagination]);\n\n  useEffect(() => {\n    if (\n      shouldUpdateScroll.current &&\n      tableContentRef.current &&\n      typeof tableInnerContainerRef.current?.scrollTo !== \"undefined\"\n    ) {\n      tableInnerContainerRef.current?.scrollTo(\n        0,\n        tableContentRef.current.clientHeight,\n      );\n      shouldUpdateScroll.current = false;\n    }\n  }, [data]);\n\n  const shouldDisplayRowActions = useMemo(\n    () =>\n      (hasRowReordering === true && onReorderRows) ||\n      tableLayoutOptions.rowActionButtons ||\n      tableLayoutOptions.rowActionMenuItems\n        ? true\n        : false,\n    [\n      hasRowReordering,\n      onReorderRows,\n      tableLayoutOptions.rowActionButtons,\n      tableLayoutOptions.rowActionMenuItems,\n    ],\n  );\n\n  const hasColumnWithGrow = columns.some((column) => column.grow === true);\n\n  const dataTable = useMaterialReactTable<TData>({\n    data: !isEmpty && !isNoResults ? data : [],\n    columns,\n    getRowId,\n    state: {\n      sorting: tableState.columnSorting,\n      columnVisibility: tableState.columnVisibility,\n      isLoading,\n      rowSelection,\n      columnOrder,\n      globalFilter: search,\n    },\n    icons: {\n      ArrowDownwardIcon: ArrowDownIcon,\n      DragHandleIcon: DragIndicatorIcon,\n      SyncAltIcon: ArrowUnsortedIcon,\n      ExpandMoreIcon: ChevronDownIcon,\n    },\n    ...dataTableImmutableSettings,\n    displayColumnDefOptions: {\n      ...(displayColumnDefOptions satisfies Partial<\n        MRT_TableOptions<MRT_RowData>[\"displayColumnDefOptions\"]\n      >),\n      \"mrt-row-actions\": {\n        header: \"\",\n        grow: !hasColumnWithGrow,\n        muiTableBodyCellProps: {\n          align: \"right\" as const,\n          sx: {\n            overflow: \"visible\",\n            width: \"unset\",\n          },\n          className: \"ods-actions-cell\",\n        },\n        muiTableHeadCellProps: {\n          align: \"right\" as const,\n          sx: {\n            width: \"unset\",\n          },\n          className: \"ods-actions-cell\",\n          children: (\n            <Box sx={{ display: \"flex\", visibility: \"hidden\" }}>\n              {tableLayoutOptions.rowActionButtons &&\n                tableLayoutOptions.rowActionButtons()}\n              {((hasRowReordering === true && onReorderRows) ||\n                tableLayoutOptions.rowActionMenuItems) && (\n                <Box>\n                  <Button\n                    ariaLabel={t(\"table.moreactions.arialabel\")}\n                    endIcon={<MoreIcon />}\n                    isDisabled\n                    size=\"small\"\n                    variant=\"floating\"\n                  />\n                </Box>\n              )}\n            </Box>\n          ),\n        },\n      },\n    },\n    muiTableProps: {\n      ref: tableContentRef,\n      className:\n        !shouldDisplayRowActions && tableLayoutOptions.hasColumnResizing\n          ? hasColumnWithGrow\n            ? \"ods-hide-spacer-column\"\n            : \"ods-hide-spacer-column ods-column-grow\"\n          : \"\",\n    },\n    muiTableContainerProps: {\n      ref: tableInnerContainerRef,\n    },\n    muiTableBodyProps: () => ({\n      className: rowDensityClassName,\n      tabIndex: 0,\n      /**\n       * This is a fix for an issue related to the empty state creating a vertical scrollbar when virtualization is enabled. The root cause is tablebody having height: 0 when virtualization is enabled and there being no data https://okta.slack.com/archives/C7T2H3KNJ/p1742842106148929\n       */\n      sx:\n        isEmpty || isNoResults\n          ? {\n              height: \"unset\",\n            }\n          : undefined,\n    }),\n    enableColumnResizing: tableLayoutOptions.hasColumnResizing,\n    defaultColumn: {\n      Cell: defaultCell,\n    },\n    enableRowActions:\n      (hasRowReordering === true && onReorderRows) ||\n      tableLayoutOptions.rowActionButtons ||\n      tableLayoutOptions.rowActionMenuItems\n        ? true\n        : false,\n    renderRowActions: ({ row }) => renderRowActions({ row }),\n    enableRowOrdering: hasRowReordering && Boolean(onReorderRows),\n    enableRowDragging: hasRowReordering && Boolean(onReorderRows),\n    muiDetailPanelProps: ({ row }) => ({\n      sx: {\n        paddingBlock: row.getIsExpanded()\n          ? `${odysseyDesignTokens.Spacing3} !important`\n          : undefined,\n      },\n    }),\n    muiTableBodyRowProps: ({ table, row, isDetailPanel }) => ({\n      className: draggableTableBodyRowClassName({\n        currentRowId: row.id,\n        draggingRowId: draggingRow?.id,\n        hoveredRowId: table.getState().hoveredRow?.id,\n      }),\n      sx: isDetailPanel\n        ? {\n            paddingBlock: \"0 !important\",\n            border: 0,\n            [\"&:hover\"]: {\n              backgroundColor: `${odysseyDesignTokens.HueNeutralWhite} !important`,\n            },\n          }\n        : {},\n    }),\n    muiRowDragHandleProps: ({ table, row }) => ({\n      onKeyDown: (event) => handleDragHandleKeyDown({ table, row, event }),\n      onBlur: () => resetDraggingAndHoveredRow(table),\n      onDragEnd: () => handleDragHandleOnDragEnd(table),\n      onDragCapture: () => handleDragHandleOnDragCapture(table),\n      disabled: isRowReorderingDisabled,\n      sx: dragHandleStyles,\n      ...dragHandleText,\n    }),\n    renderDetailPanel: tableLayoutOptions.renderDetailPanel,\n    enableRowVirtualization: enableVirtualization,\n    muiTableHeadCellProps: ({ column: currentColumn }) => ({\n      className: tableState.columnSorting.find(\n        (sortedColumn) => sortedColumn.id === currentColumn.id,\n      )\n        ? \"isSorted\"\n        : \"isUnsorted\",\n    }),\n    muiTableBodyCellProps: ({ column }) => ({\n      className: column.getIsResizing() ? \"isResizing\" : \"\",\n    }),\n    enableSorting: tableLayoutOptions.hasSorting === true, // I don't know why this needs to be true, but it still works if undefined otherwise\n    onSortingChange: (sortingUpdater) => {\n      const newSortVal =\n        typeof sortingUpdater === \"function\"\n          ? sortingUpdater(tableState.columnSorting)\n          : tableState.columnSorting;\n      setTableState((prevState) => ({\n        ...prevState,\n        columnSorting: newSortVal,\n      }));\n    },\n    // Our public API is \"disabled\"-framed (isRowSelectionDisabled), whereas MRT's enableRowSelection predicate is \"enabled\"-framed, so the value is inverted before handing it off.\n    enableRowSelection: hasRowSelection\n      ? isRowSelectionDisabled\n        ? (row) => !isRowSelectionDisabled(row.original)\n        : true\n      : false,\n    onRowSelectionChange: setRowSelection,\n    renderEmptyRowsFallback: emptyStateContainer,\n    localization: {\n      collapse: t(\"table.rowexpansion.collapse\"),\n      collapseAll: t(\"table.rowexpansion.collapseall\"),\n      expand: t(\"table.rowexpansion.expand\"),\n      expandAll: t(\"table.rowexpansion.expandall\"),\n    },\n  });\n\n  return (\n    <ScrollableTableContainer\n      isScrollableEnd={!isTableContainerScrolledToEnd}\n      isScrollableStart={!isTableContainerScrolledToStart}\n      odysseyDesignTokens={odysseyDesignTokens}\n      ref={tableOuterContainerRef}\n    >\n      <MRT_TableContainer table={dataTable} />\n    </ScrollableTableContainer>\n  );\n};\n\nconst MemoizedTableLayoutContent = memo(\n  TableLayoutContent,\n) as TableLayoutContentComponent;\nMemoizedTableLayoutContent.displayName = \"TableLayoutContent\";\n\nexport { MemoizedTableLayoutContent as TableLayoutContent };\n"],"mappings":"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","ignoreList":[]}