{"version":3,"file":"DataTableRowActions.cjs","names":["_react","require","_MenuButton","_MenuItem","_i18n","_index","_jsxRuntime","_interopRequireDefault","e","__esModule","default","DataTableRowActions","row","rowIndex","rowActionButtons","rowActionMenuItems","totalRows","updateRowOrder","t","useTranslation","handleToFrontClick","useCallback","rowId","id","newRowIndex","handleForwardClick","Math","max","handleBackwardClick","handleToBackClick","jsxs","_Box2","display","children","MenuButton","ariaLabel","buttonVariant","endIcon","jsx","MoreIcon","menuAlignment","size","Fragment","MenuItem","isDisabled","onClick","ArrowTopIcon","Trans","i18nKey","ArrowUpIcon","ArrowDownIcon","ArrowBottomIcon","MemoizedDataTableRowActions","exports","memo","displayName"],"sources":["../../../src/DataTable/DataTableRowActions.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 { Box as MuiBox } from \"@mui/material\";\nimport { MRT_Row, MRT_RowData } from \"material-react-table\";\nimport { Fragment, memo, ReactElement, useCallback } from \"react\";\n\nimport { Button } from \"../Buttons/Button.js\";\nimport { MenuButton, type MenuButtonProps } from \"../Buttons/MenuButton.js\";\nimport { MenuItem } from \"../Buttons/MenuItem.js\";\nimport { Trans, useTranslation } from \"../i18n.generated/i18n.js\";\nimport {\n  ArrowBottomIcon,\n  ArrowDownIcon,\n  ArrowTopIcon,\n  ArrowUpIcon,\n  MoreIcon,\n} from \"../icons.generated/index.js\";\nimport { DataTableProps } from \"./DataTable.js\";\n\nexport type DataTableRowActionsProps = {\n  row: (MRT_Row<MRT_RowData> | MRT_RowData) & { id: string };\n  rowActionButtons?: (\n    row: MRT_RowData,\n  ) => ReactElement<typeof Button | typeof Fragment>;\n  rowActionMenuItems?: (row: MRT_RowData) => MenuButtonProps[\"children\"];\n  rowIndex: number;\n  totalRows?: DataTableProps[\"totalRows\"];\n  updateRowOrder?: ({\n    rowId,\n    newRowIndex,\n  }: {\n    newRowIndex: number;\n    rowId: string;\n  }) => void;\n};\n\nconst DataTableRowActions = ({\n  row,\n  rowIndex,\n  rowActionButtons,\n  rowActionMenuItems,\n  totalRows,\n  updateRowOrder,\n}: DataTableRowActionsProps) => {\n  const { t } = useTranslation();\n\n  const handleToFrontClick = useCallback(() => {\n    if (updateRowOrder) {\n      updateRowOrder({ rowId: row.id, newRowIndex: 0 });\n    }\n  }, [row.id, updateRowOrder]);\n\n  const handleForwardClick = useCallback(() => {\n    if (updateRowOrder) {\n      updateRowOrder({ rowId: row.id, newRowIndex: Math.max(0, rowIndex - 1) });\n    }\n  }, [row.id, rowIndex, updateRowOrder]);\n\n  const handleBackwardClick = useCallback(() => {\n    if (updateRowOrder) {\n      updateRowOrder({ rowId: row.id, newRowIndex: rowIndex + 1 });\n    }\n  }, [row.id, rowIndex, updateRowOrder]);\n\n  const handleToBackClick = useCallback(() => {\n    if (updateRowOrder) {\n      updateRowOrder({\n        rowId: row.id,\n        newRowIndex: totalRows ? totalRows - 1 : rowIndex,\n      });\n    }\n  }, [row.id, rowIndex, totalRows, updateRowOrder]);\n\n  return (\n    <MuiBox display=\"flex\">\n      {rowActionButtons?.(row)}\n      {(rowActionMenuItems || updateRowOrder) && (\n        <MenuButton\n          ariaLabel={t(\"table.moreactions.arialabel\")}\n          buttonVariant=\"floating\"\n          endIcon={<MoreIcon />}\n          menuAlignment=\"right\"\n          size=\"small\"\n        >\n          {rowActionMenuItems && <>{rowActionMenuItems(row)}</>}\n          {rowActionMenuItems && updateRowOrder && <hr />}\n          {updateRowOrder && (\n            <>\n              <MenuItem isDisabled={rowIndex <= 0} onClick={handleToFrontClick}>\n                <ArrowTopIcon /> <Trans i18nKey=\"table.reorder.tofront\" />\n              </MenuItem>\n              <MenuItem isDisabled={rowIndex <= 0} onClick={handleForwardClick}>\n                <ArrowUpIcon /> <Trans i18nKey=\"table.reorder.forward\" />\n              </MenuItem>\n              <MenuItem\n                isDisabled={totalRows ? rowIndex >= totalRows - 1 : false}\n                onClick={handleBackwardClick}\n              >\n                <ArrowDownIcon /> <Trans i18nKey=\"table.reorder.backward\" />\n              </MenuItem>\n              {totalRows && (\n                <MenuItem\n                  isDisabled={rowIndex >= totalRows - 1}\n                  onClick={handleToBackClick}\n                >\n                  <ArrowBottomIcon /> <Trans i18nKey=\"table.reorder.toback\" />\n                </MenuItem>\n              )}\n            </>\n          )}\n        </MenuButton>\n      )}\n    </MuiBox>\n  );\n};\n\nconst MemoizedDataTableRowActions = memo(DataTableRowActions);\nMemoizedDataTableRowActions.displayName = \"DataTableRowActions\";\n\nexport { MemoizedDataTableRowActions as DataTableRowActions };\n"],"mappings":"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","ignoreList":[]}