@okta/odyssey-react-mui 1.39.1 → 1.40.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +1 -1
- package/dist/cjs/Buttons/BaseMenuButton.cjs.map +1 -1
- package/dist/cjs/Buttons/MenuItem.cjs +1 -2
- package/dist/cjs/Buttons/MenuItem.cjs.map +1 -1
- package/dist/cjs/CheckboxGroup.cjs +1 -2
- package/dist/cjs/CheckboxGroup.cjs.map +1 -1
- package/dist/cjs/DataTable/DataTable.cjs.map +1 -1
- package/dist/cjs/DatePickers/datePickerTheme.cjs +1 -2
- package/dist/cjs/DatePickers/datePickerTheme.cjs.map +1 -1
- package/dist/cjs/Drawer.cjs.map +1 -1
- package/dist/cjs/NativeSelect.cjs +1 -2
- package/dist/cjs/NativeSelect.cjs.map +1 -1
- package/dist/cjs/OdysseyDesignTokensContext.cjs +1 -2
- package/dist/cjs/OdysseyDesignTokensContext.cjs.map +1 -1
- package/dist/cjs/OdysseyThemeProvider.cjs +1 -2
- package/dist/cjs/OdysseyThemeProvider.cjs.map +1 -1
- package/dist/cjs/Pagination/Pagination.cjs.map +1 -1
- package/dist/cjs/RadioGroup.cjs +1 -2
- package/dist/cjs/RadioGroup.cjs.map +1 -1
- package/dist/cjs/inputUtils.cjs.map +1 -1
- package/dist/cjs/labs/DataFilters.cjs.map +1 -1
- package/dist/cjs/labs/DataTable.cjs +11 -10
- package/dist/cjs/labs/DataTable.cjs.map +1 -1
- package/dist/cjs/labs/DataView/componentTypes.cjs.map +1 -1
- package/dist/cjs/labs/DataView/dataTypes.cjs.map +1 -1
- package/dist/cjs/labs/DataView/testSupportData.cjs.map +1 -1
- package/dist/cjs/labs/GroupPicker.cjs +1 -2
- package/dist/cjs/labs/GroupPicker.cjs.map +1 -1
- package/dist/cjs/useContrastMode.cjs +1 -2
- package/dist/cjs/useContrastMode.cjs.map +1 -1
- package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs +1 -1
- package/dist/cjs/web-component/odysseyWebComponentVersion.generated.cjs.map +1 -1
- package/dist/cjs/web-component/renderReactInWebComponent.cjs +1 -2
- package/dist/cjs/web-component/renderReactInWebComponent.cjs.map +1 -1
- package/dist/esm/Buttons/BaseMenuButton.js.map +1 -1
- package/dist/esm/DataTable/DataTable.js.map +1 -1
- package/dist/esm/Drawer.js.map +1 -1
- package/dist/esm/Pagination/Pagination.js.map +1 -1
- package/dist/esm/inputUtils.js.map +1 -1
- package/dist/esm/labs/DataFilters.js.map +1 -1
- package/dist/esm/labs/DataTable.js +2 -1
- package/dist/esm/labs/DataTable.js.map +1 -1
- package/dist/esm/labs/DataView/componentTypes.js.map +1 -1
- package/dist/esm/labs/DataView/dataTypes.js.map +1 -1
- package/dist/esm/labs/DataView/testSupportData.js.map +1 -1
- package/dist/esm/web-component/odysseyWebComponentVersion.generated.js +1 -1
- package/dist/esm/web-component/odysseyWebComponentVersion.generated.js.map +1 -1
- package/dist/index.cjs +231 -0
- package/dist/index.d.ts +233 -0
- package/dist/index.mjs +229 -0
- package/dist/index.scss +549 -0
- package/dist/tsconfig.production.tsbuildinfo +1 -1
- package/dist/types/Buttons/BaseMenuButton.d.ts +2 -2
- package/dist/types/DataTable/DataTable.d.ts +1 -1
- package/dist/types/inputUtils.d.ts +1 -1
- package/dist/types/labs/DataTable.d.ts +4 -4
- package/dist/types/labs/DataTable.d.ts.map +1 -1
- package/dist/types/labs/DataView/componentTypes.d.ts +1 -1
- package/dist/types/labs/DataView/componentTypes.d.ts.map +1 -1
- package/dist/types/labs/DataView/testSupportData.d.ts +1 -1
- package/dist/types/labs/DataView/testSupportData.d.ts.map +1 -1
- package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts +1 -1
- package/dist/types/web-component/odysseyWebComponentVersion.generated.d.ts.map +1 -1
- package/package.json +12 -12
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataTable.cjs","names":["_materialReactTable","require","_react","_index","_OdysseyDesignTokensContext","_DataTablePagination","_DataFilters","_Box","_index2","_reactI18next","_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","endIcon","jsx","MoreIcon","size","buttonVariant","ariaLabel","menuAlignment","Fragment","MenuItem","isDisabled","onClick","ArrowTopIcon","ArrowUpIcon","ArrowBottomIcon","tableSettings","ListIcon","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","ShowIcon","filter","_Checkbox2","checked","flexDirection","gap","DataFilters","onChangeSearch","onChangeFilters","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","MRT_TableContainer","DataTablePagination","currentNumberOfResults","length","currentPage","isPreviousButtonDisabled","isNextButtonDisabled","onClickPrevious","onClickNext","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 {\n MRT_Updater,\n MRT_RowVirtualizer,\n MRT_RowData,\n MRT_TableOptions,\n useMaterialReactTable,\n MRT_SortingState,\n MRT_DensityState,\n MRT_VisibilityState,\n MRT_TableContainer,\n MRT_RowSelectionState,\n MRT_Row,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport {\n Fragment,\n ReactElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\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 { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination.js\";\nimport { DataFilter, DataFilters } from \"./DataFilters.js\";\nimport { Button } from \"../Buttons/index.js\";\nimport { Box } from \"../Box.js\";\nimport { MenuButton, MenuItem } from \"../index.js\";\nimport { useTranslation } from \"react-i18next\";\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,\n// 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 * The human-friendly title of the column\n */\n header: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<TData>[\"Cell\"];\n /**\n * The UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<TData>[\"filterVariant\"];\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n filterSelectOptions?: Array<{ label: string; value: string }>;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * If set to false, the column won't be filterable\n */\n enableColumnFilter?: boolean;\n /**\n * If set to false, the column won't be searchable\n */\n enableGlobalFilter?: boolean;\n /**\n * If set to false, the column won't be sortable\n */\n enableSorting?: boolean;\n /**\n * If set to false, the column won't be resizable\n */\n enableResizing?: boolean;\n /**\n * If set to false, the column won't be hideable\n */\n enableHiding?: boolean;\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\n * as the table rows\n */\n data: MRT_TableOptions<TData>[\"data\"];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\n /**\n * The initial density of the table. This is available even if the table density\n * isn't changeable.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table 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 will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n fetchDataFn: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n }) =>\n | MRT_TableOptions<TData>[\"data\"]\n | Promise<MRT_TableOptions<TData>[\"data\"]>;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propogate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n rowId: string;\n newIndex: number;\n }) => void;\n /**\n * The current page number.\n */\n page?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[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\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 rowId: string;\n newIndex: number;\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 }: { rowId: string; newIndex: number }) => {\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 table: TableType<TData>;\n row: MRT_Row<TData>;\n event: KeyboardEvent<HTMLButtonElement>;\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 endIcon={<MoreIcon />}\n size=\"small\"\n buttonVariant=\"floating\"\n ariaLabel={t(\"table.moreactions.arialabel\")}\n menuAlignment=\"right\"\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 endIcon={<ListIcon />}\n ariaLabel=\"Table density\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n key={value}\n isSelected={density === 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 endIcon={<ShowIcon />}\n ariaLabel=\"Show/hide columns\"\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 onChangeSearch={hasSearch ? handleSearch : undefined}\n onChangeFilters={handleFilters}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\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 />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n paginationType={paginationType}\n currentNumberOfResults={data.length}\n currentPage={page}\n isPreviousButtonDisabled={page <= 1}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n onClickPrevious={() => setPage(page - 1)}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\n />\n )}\n </Box>\n );\n};\n\nconst MemoizedDataTable = memo(DataTable);\nMemoizedDataTable.displayName = \"DataTable\";\n\nexport { MemoizedDataTable as DataTable };\n"],"mappings":";;;;;;;AAYA,IAAAA,mBAAA,GAAAC,OAAA;AAeA,IAAAC,MAAA,GAAAD,OAAA;AAWA,IAAAE,MAAA,GAAAF,OAAA;AAYA,IAAAG,2BAAA,GAAAH,OAAA;AACA,IAAAI,oBAAA,GAAAJ,OAAA;AAIA,IAAAK,YAAA,GAAAL,OAAA;AAEA,IAAAM,IAAA,GAAAN,OAAA;AACA,IAAAO,OAAA,GAAAP,OAAA;AACA,IAAAQ,aAAA,GAAAR,OAAA;AAA+C,IAAAS,WAAA,GAAAT,OAAA;AAAA,SAAAU,uBAAAC,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AA3D/C;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AAmDO,MAAMG,aAAa,GAAAC,OAAA,CAAAD,aAAA,GAAG,CAAC,aAAa,EAAE,UAAU,EAAE,SAAS,CAAU;AA2M5E,MAAME,sBAAsB,GAAGA,CAA4B;EACzDC,WAAW;EACXC,KAAK;EACLC;AAKF,CAAC,KAAK;EACJ,MAAMC,WAAW,GAAG,CAAC,GAAGH,WAAW,CAAC;EAEpC,MAAMI,QAAQ,GAAGD,WAAW,CAACE,SAAS,CAAEC,GAAG,IAAKA,GAAG,CAACC,EAAE,KAAKN,KAAK,CAAC;EAEjE,IAAIG,QAAQ,KAAK,CAAC,CAAC,EAAE;IAEnB,MAAM,CAACI,UAAU,CAAC,GAAGL,WAAW,CAACM,MAAM,CAACL,QAAQ,EAAE,CAAC,CAAC;IAGpDD,WAAW,CAACM,MAAM,CAACP,QAAQ,EAAE,CAAC,EAAEM,UAAU,CAAC;EAC7C;EAEA,OAAOL,WAAW;AACpB,CAAC;AAED,MAAMO,SAAS,GAAGA,CAA4B;EAC5CC,OAAO;EACPC,IAAI,EAAEC,QAAQ;EACdC,QAAQ;EACRC,IAAI,EAAEC,QAAQ,GAAG,CAAC;EAClBC,cAAc,GAAGpB,aAAa,CAAC,CAAC,CAAC;EACjCqB,cAAc,EAAEC,kBAAkB,GAAG,EAAE;EACvCC,WAAW;EACXC,aAAa;EACbC,SAAS;EACTC,qBAAqB;EACrBC,eAAe;EACfC,cAAc,GAAG,OAAO;EACxBC,oBAAoB;EACpBC,gBAAgB;EAChBC,kBAAkB;EAClBC,oBAAoB;EACpBC,iBAAiB;EACjBC,mBAAmB;EACnBC,UAAU;EACVC,aAAa;EACbC,gBAAgB;EAChBC,eAAe;EACfC,SAAS;EACTC;AACqB,CAAC,KAAK;EAC3B,MAAMC,mBAAmB,GAAG,IAAAC,kDAAsB,EAAC,CAAC;EACpD,MAAM;IAAEC;EAAE,CAAC,GAAG,IAAAC,4BAAc,EAAC,CAAC;EAC9B,MAAM,CAACC,WAAW,EAAEC,cAAc,CAAC,GAAG,IAAAC,eAAQ,EAAwB,CAAC;EACvE,MAAM,CAACC,aAAa,EAAEC,gBAAgB,CAAC,GAAG,IAAAF,eAAQ,EAAU,IAAI,CAAC;EACjE,MAAM,CAAChC,IAAI,EAAEmC,OAAO,CAAC,GAAG,IAAAH,eAAQ,EAAkC/B,QAAQ,CAAC;EAC3E,MAAM,CAACE,IAAI,EAAEiC,OAAO,CAAC,GAAG,IAAAJ,eAAQ,EAAS5B,QAAQ,CAAC;EAClD,MAAM,CAACE,cAAc,EAAE+B,iBAAiB,CAAC,GACvC,IAAAL,eAAQ,EAASzB,kBAAkB,CAAC;EACtC,MAAM,CAAC+B,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAAP,eAAQ,EAAwB,CAAC,CAAC,CAAC;EAC3E,MAAM,CAACQ,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAT,eAAQ,EAAmB,EAAE,CAAC;EAC5D,MAAM,CAACU,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAX,eAAQ,EAAmB3B,cAAc,CAAC;EAExE,MAAMuC,uBAAuB,GAAG,IAAAC,cAAO,EAAC,MAAM;IAC5C,OAAO9C,OAAO,CAAC+C,MAAM,CAAC,CAACC,GAAG,EAAEC,MAAM,KAAK;MACrCD,GAAG,CAACC,MAAM,CAACC,WAAW,CAAC,GAAG,IAAI;MAC9B,OAAOF,GAAG;IACZ,CAAC,EAAE,CAAC,CAAwB,CAAC;EAC/B,CAAC,EAAE,CAAChD,OAAO,CAAC,CAAC;EAEb,MAAM,CAACmD,gBAAgB,EAAEC,mBAAmB,CAAC,GAAG,IAAAnB,eAAQ,EACtDY,uBACF,CAAC;EAED,MAAM,CAACQ,YAAY,EAAEC,eAAe,CAAC,GAAG,IAAArB,eAAQ,EAAS,EAAE,CAAC;EAC5D,MAAM,CAACsB,OAAO,EAAEC,UAAU,CAAC,GAAG,IAAAvB,eAAQ,EAAoB,CAAC;EAE3D,IAAAwB,gBAAS,EAAC,MAAM;IACdtB,gBAAgB,CAAC,KAAK,CAAC;EACzB,CAAC,EAAE,CAAClC,IAAI,CAAC,CAAC;EAEV,IAAAwD,gBAAS,EAAC,MAAM;IACd1C,oBAAoB,GAAGwB,YAAY,CAAC;EACtC,CAAC,EAAE,CAACA,YAAY,EAAExB,oBAAoB,CAAC,CAAC;EAExC,MAAM2C,WAAW,GAAG,IAAAC,kBAAW,EAAC,YAAY;IAC1CxB,gBAAgB,CAAC,IAAI,CAAC;IACtB,IAAI;MACF,MAAMyB,OAAO,GAAGnD,WAAW,CAAC;QAC1BL,IAAI,EAAEA,IAAI;QACVG,cAAc,EAAEA,cAAc;QAC9BsD,IAAI,EAAEpB,OAAO;QACbqB,MAAM,EAAET,YAAY;QACpBE,OAAO,EAAEA;MACX,CAAC,CAAC;MAEFnB,OAAO,CAACwB,OAAO,YAAYG,OAAO,GAAG,MAAMH,OAAO,GAAGA,OAAO,CAAC;MAE7DzB,gBAAgB,CAAC,KAAK,CAAC;IACzB,CAAC,CAAC,OAAO6B,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAACA,KAAK,CAAC;MACpB7B,gBAAgB,CAAC,KAAK,CAAC;IACzB;EACF,CAAC,EAAE,CAAC/B,IAAI,EAAEG,cAAc,EAAEkC,OAAO,EAAEY,YAAY,EAAEE,OAAO,EAAE9C,WAAW,CAAC,CAAC;EAEvE,IAAAgD,gBAAS,EAAC,MAAM;IACdC,WAAW,CAAC,CAAC;EACf,CAAC,EAAE,CAACA,WAAW,EAAEtD,IAAI,EAAEG,cAAc,EAAEkC,OAAO,EAAEY,YAAY,EAAEE,OAAO,CAAC,CAAC;EAEvE,MAAMW,mBAAmB,GAAG,IAAAP,kBAAW,EACpCQ,OAAsC,IAAK;IAC1CzB,UAAU,CAAE0B,WAAW,IACrBD,OAAO,YAAYE,QAAQ,GAAGF,OAAO,CAACC,WAAW,CAAC,GAAG3B,OACvD,CAAC;EACH,CAAC,EACD,CAACA,OAAO,CACV,CAAC;EAED,MAAM6B,sBAAsB,GAAG,IAAAX,kBAAW,EACvCY,QAAgB,IAAK;IACpBnB,mBAAmB,CAAEoB,cAAc,KAAM;MACvC,GAAGA,cAAc;MACjB,CAACD,QAAQ,GAAG,CAACpB,gBAAgB,CAACoB,QAAQ;IACxC,CAAC,CAAC,CAAC;EACL,CAAC,EACD,CAACpB,gBAAgB,CACnB,CAAC;EAED,MAAMsB,YAAY,GAAG,IAAAd,kBAAW,EAAEe,KAAa,IAAK;IAClDpB,eAAe,CAACoB,KAAK,CAAC;EACxB,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAG,IAAAhB,kBAAW,EAAEiB,cAAiC,IAAK;IACvEpB,UAAU,CAACoB,cAAc,CAAC;EAC5B,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,wBAAwB,GAAG,IAAAlB,kBAAW,EACzCQ,OAA2C,IAAK;IAC/C3B,eAAe,CAAEsC,gBAAgB,IAC/BX,OAAO,YAAYE,QAAQ,GAAGF,OAAO,CAACW,gBAAgB,CAAC,GAAGvC,YAC5D,CAAC;EACH,CAAC,EACD,CAACA,YAAY,CACf,CAAC;EAED,MAAMwC,cAAc,GAAG,IAAApB,kBAAW,EAChC,CAAC;IAAErE,KAAK;IAAEC;EAA8C,CAAC,KAAK;IAC5D,IAAIA,QAAQ,GAAG,CAAC,EAAE;MAChB;IACF;IAEA,IAAIoB,SAAS,IAAIpB,QAAQ,GAAGoB,SAAS,EAAE;MACrC;IACF;IAEA,MAAMiD,OAAO,GAAGxE,sBAAsB,CAAC;MACrCC,WAAW,EAAEY,IAAI;MACjBX,KAAK;MACLC;IACF,CAAC,CAAC;IAEF6C,OAAO,CAACwB,OAAO,CAAC;IAChBlD,aAAa,GAAG;MAAEpB,KAAK;MAAEC;IAAS,CAAC,CAAC;IACpCmE,WAAW,CAAC,CAAC;EACf,CAAC,EACD,CAACzD,IAAI,EAAEU,SAAS,EAAED,aAAa,EAAEgD,WAAW,CAC9C,CAAC;EAED,MAAMsB,yBAAyB,GAC7B,IAAAC,aAAM,EAA0D,IAAI,CAAC;EAEvE,MAAMC,aAAa,GAAG,IAAAvB,kBAAW,EAE/B,CAACwB,KAAK,EAAEvF,EAAE,KAAK;IACf,IAAIA,EAAE,EAAE;MACN,MAAMwF,OAAO,GAAGD,KAAK,CAACE,MAAM,CAACzF,EAAE,CAAmB;MAElD,IAAIwF,OAAO,EAAE;QACXD,KAAK,CAACD,aAAa,CAACE,OAAO,CAAC;MAC9B;IACF;EACF,CAAC,EAAE,EAAE,CAAC;EAEN,MAAME,0BAA0B,GAAG,IAAA3B,kBAAW,EAG3CwB,KAAK,IAAK;IACTnD,cAAc,CAAC,IAAI,CAAC;IACpBmD,KAAK,CAACD,aAAa,CAAC,IAAI,CAAC;EAC3B,CAAC,EACD,CAAClD,cAAc,CACjB,CAAC;EAQD,MAAMuD,uBAAuB,GAAG,IAAA5B,kBAAW,EACzC,CAAC;IAAEwB,KAAK;IAAExF,GAAG;IAAE6F;EAAmC,CAAC,KAAK;IACtD,MAAM;MAAEC;IAAW,CAAC,GAAGN,KAAK,CAACO,QAAQ,CAAC,CAAC;IAEvC,MAAM;MAAEC;IAAI,CAAC,GAAGH,KAAK;IAErB,MAAMI,UAAU,GAAGD,GAAG,KAAK,GAAG;IAC9B,MAAME,UAAU,GAAGF,GAAG,KAAK,OAAO;IAClC,MAAMG,WAAW,GAAGH,GAAG,KAAK,QAAQ;IACpC,MAAMI,WAAW,GAAGJ,GAAG,KAAK,WAAW;IACvC,MAAMK,SAAS,GAAGL,GAAG,KAAK,SAAS;IACnC,MAAMM,cAAc,GAAGL,UAAU,IAAIC,UAAU;IAC/C,MAAMK,qBAAqB,GAAG9F,IAAI,GAAG,CAAC;IACtC,MAAM+F,YAAY,GAAGxG,GAAG,CAACyG,KAAK,GAAGF,qBAAqB,GAAG3F,cAAc;IAEvE,IAAIuF,WAAW,EAAE;MACfR,0BAA0B,CAACH,KAAK,CAAC;MACjC;IACF;IAEA,IAAIc,cAAc,EAAE;MAClBT,KAAK,CAACa,cAAc,CAAC,CAAC;MACtBb,KAAK,CAACc,eAAe,CAAC,CAAC;IACzB;IAEA,IAAIvE,WAAW,EAAE;MACf,IAAI,OAAO0D,UAAU,EAAEW,KAAK,KAAK,QAAQ,EAAE;QACzC,MAAM;UAAEA;QAAM,CAAC,GAAGX,UAAU;QAE5B,IAAIQ,cAAc,EAAE;UAClB,MAAMM,iBAAiB,GACrBH,KAAK,GAAGF,qBAAqB,GAAG3F,cAAc;UAEhD,IAAIgG,iBAAiB,KAAKJ,YAAY,EAAE;YACtCpB,cAAc,CAAC;cACbzF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAEgH;YACZ,CAAC,CAAC;YAGFC,UAAU,CAAC,MAAM;cACflB,0BAA0B,CAACH,KAAK,CAAC;YACnC,CAAC,EAAExD,mBAAmB,CAAC8E,8BAA8B,CAAC;YACtD;UACF;QACF;QAEA,IAAIV,WAAW,IAAIC,SAAS,EAAE;UAC5B,MAAMU,SAAS,GAAGX,WAAW,GAAGK,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;UAErDlB,aAAa,CAACC,KAAK,EAAElF,IAAI,CAACyG,SAAS,CAAC,EAAE9G,EAAiB,CAAC;QAC1D;MACF,CAAC,MAAM;QACL,IAAImG,WAAW,IAAIC,SAAS,EAAE;UAC5B,MAAMU,SAAS,GAAGX,WAAW,GAAGpG,GAAG,CAACyG,KAAK,GAAG,CAAC,GAAGzG,GAAG,CAACyG,KAAK,GAAG,CAAC;UAE7DlB,aAAa,CAACC,KAAK,EAAElF,IAAI,CAACyG,SAAS,CAAC,EAAE9G,EAAiB,CAAC;QAC1D;MACF;IACF,CAAC,MAAM;MACL,IAAIqG,cAAc,EAAE;QAClBjE,cAAc,CAACrC,GAAG,CAAC;MACrB;IACF;EACF,CAAC,EACD,CACEM,IAAI,EACJ8B,WAAW,EACXJ,mBAAmB,CAAC8E,8BAA8B,EAClDrG,IAAI,EACJkF,0BAA0B,EAC1B/E,cAAc,EACd2E,aAAa,EACbH,cAAc,CAElB,CAAC;EAED,MAAM4B,yBAAyB,GAAG,IAAAhD,kBAAW,EAC1CwB,KAAuB,IAAK;IAC3B,MAAMyB,IAAI,GAAGzB,KAAK,CAAC0B,aAAa,CAAC,CAAC;IAClCD,IAAI,CAAC,CAAC,CAAC,CAACE,gBAAgB,CAAC,CAAC;IAE1B,MAAM;MAAE/E,WAAW;MAAE0D;IAAW,CAAC,GAAGN,KAAK,CAACO,QAAQ,CAAC,CAAC;IAEpD,IAAI3D,WAAW,EAAE;MACfgD,cAAc,CAAC;QACbxF,QAAQ,EAAGkG,UAAU,CAAWW,KAAe;QAC/C9G,KAAK,EAAEyC,WAAW,CAACnC;MACrB,CAAC,CAAC;IACJ;IAEAoC,cAAc,CAAC,IAAI,CAAC;EACtB,CAAC,EACD,CAAC+C,cAAc,CACjB,CAAC;EAED,MAAMgC,6BAA6B,GAAG,IAAApD,kBAAW,EAC9CwB,KAAuB,IAAK;IAC3B,IAAI,CAACpD,WAAW,IAAIoD,KAAK,CAACO,QAAQ,CAAC,CAAC,CAAC3D,WAAW,EAAEnC,EAAE,EAAE;MACpDoC,cAAc,CAACmD,KAAK,CAACO,QAAQ,CAAC,CAAC,CAAC3D,WAAW,CAAC;IAC9C;EACF,CAAC,EACD,CAACA,WAAW,CACd,CAAC;EAED,MAAMiF,UAAU,GAAG,IAAAlE,cAAO,EACxB,OAAO;IACLH,OAAO;IACPF,OAAO;IACPY,YAAY;IACZF,gBAAgB;IAChBZ,YAAY;IACZL;EACF,CAAC,CAAC,EACF,CACES,OAAO,EACPF,OAAO,EACPY,YAAY,EACZF,gBAAgB,EAChBZ,YAAY,EACZL,aAAa,CAEjB,CAAC;EAED,MAAMiD,KAAK,GAAG,IAAA8B,yCAAqB,EAAC;IAClCjH,OAAO,EAAEA,OAAO;IAChBC,IAAI,EAAEA,IAAI;IACViH,KAAK,EAAEF,UAAU;IACjBhC,yBAAyB,EAAEA,yBAAyB;IACpDmC,qBAAqB,EAAE;MAAEC,QAAQ,EAAE;IAAE,CAAC;IACtCC,uBAAuB,EACrBvG,cAAc,KAAK,UAAU,IAAIP,cAAc,GAAG,EAAE;IACtD+G,oBAAoB,EAAEnG,iBAAiB;IACvCoG,mBAAmB,EAAE,KAAK;IAC1BC,sBAAsB,EAAE,KAAK;IAC7BC,gBAAgB,EAAE,KAAK;IACvBC,kBAAkB,EAAElG,eAAe;IACnCmG,aAAa,EAAE,KAAK;IACpBC,YAAY,EAAE,KAAK;IACnBC,iBAAiB,EAAEtG,gBAAgB;IACnCuG,iBAAiB,EAAEvG,gBAAgB;IACnCwG,aAAa,EAAErG,UAAU;IACzBsG,aAAa,EAAE,KAAK;IACpBC,mBAAmB,EAAE,KAAK;IAC1BC,UAAU,EAAE,cAAc;IAC1BC,uBAAuB,EAAE;MACvB,iBAAiB,EAAE;QACjBC,qBAAqB,EAAE;UACrBC,KAAK,EAAE,OAAO;UACdC,EAAE,EAAE;YACFC,QAAQ,EAAE,SAAS;YACnBC,KAAK,EAAE;UACT;QACF,CAAC;QACDC,qBAAqB,EAAE;UACrBJ,KAAK,EAAE,OAAO;UACdC,EAAE,EAAE;YACFE,KAAK,EAAE;UACT;QACF;MACF,CAAC;MACD,cAAc,EAAE;QACdE,MAAM,EAAE,EAAE;QACVN,qBAAqB,EAAE;UACrBE,EAAE,EAAE;YACFK,QAAQ,EAAE,CAAC;YACXH,KAAK,EAAE;UACT;QACF,CAAC;QACDC,qBAAqB,EAAE;UACrBH,EAAE,EAAE;YACFK,QAAQ,EAAE,CAAC;YACXH,KAAK,EAAE;UACT;QACF;MACF;IACF,CAAC;IACDI,kBAAkB,EAAE,KAAK;IACzBC,eAAe,EAAE,IAAI;IACrBC,aAAa,EAAE,IAAI;IACnB3I,QAAQ,EAAEA,QAAQ;IAClB4I,KAAK,EAAE;MACLC,iBAAiB,EAAEC,oBAAa;MAChCC,cAAc,EAAEC,wBAAiB;MACjCC,WAAW,EAAEC;IACf,CAAC;IACDC,eAAe,EAAEpF,mBAAmB;IACpCnD,oBAAoB,EAAE8D,wBAAwB;IAC9C0E,gBAAgB,EACdhI,gBAAgB,KAAK,IAAI,IAAIP,gBAAgB,IAAIC,kBAAkB,GAC/D,IAAI,GACJ,KAAK;IACXuI,qBAAqB,EAAE,MAAM;IAE7Bf,qBAAqB,EAAEA,CAAC;MAAExF;IAAO,CAAC,MAAM;MACtCwG,SAAS,EAAEhH,OAAO,CAACiH,IAAI,CAAEC,IAAI,IAAKA,IAAI,CAAC/J,EAAE,KAAKqD,MAAM,CAACrD,EAAE,CAAC,GACpD,UAAU,GACV;IACN,CAAC,CAAC;IAEFgK,oBAAoB,EAAEA,CAAC;MAAEzE,KAAK;MAAExF;IAAI,CAAC,MAAM;MACzC8J,SAAS,EACP1H,WAAW,EAAEnC,EAAE,KAAKD,GAAG,CAACC,EAAE,IAAIuF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAE7F,EAAE,KAAKD,GAAG,CAACC,EAAE,GACpE,YAAY,GACZuF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAE7F,EAAE,KAAKD,GAAG,CAACC,EAAE,IACxCmC,WAAW,EAAEnC,EAAE,KAAKD,GAAG,CAACC,EAAE,GAC1B,cAAc,GACdmC,WAAW,EAAEnC,EAAE,KAAKD,GAAG,CAACC,EAAE,IACxBuF,KAAK,CAACO,QAAQ,CAAC,CAAC,CAACD,UAAU,EAAE7F,EAAE,KAAKD,GAAG,CAACC,EAAE,GAC1C,yBAAyB,GACzBiK;IACZ,CAAC,CAAC;IAEFC,qBAAqB,EAAEA,CAAC;MAAE3E,KAAK;MAAExF;IAAI,CAAC,MAAM;MAC1CoK,KAAK,EAAElI,CAAC,CAAC,0BAA0B,CAAC;MACpC,YAAY,EAAEA,CAAC,CAAC,4BAA4B,CAAC;MAC7CmI,SAAS,EAAGxE,KAAK,IAAKD,uBAAuB,CAAC;QAAEJ,KAAK;QAAExF,GAAG;QAAE6F;MAAM,CAAC,CAAC;MACpEyE,MAAM,EAAEA,CAAA,KAAM;QACZ3E,0BAA0B,CAACH,KAAK,CAAC;MACnC,CAAC;MACD+E,SAAS,EAAEA,CAAA,KAAMvD,yBAAyB,CAACxB,KAAK,CAAC;MACjDgF,aAAa,EAAEA,CAAA,KAAMpD,6BAA6B,CAAC5B,KAAK,CAAC;MACzDmD,EAAE,EAAE;QACF8B,OAAO,EAAEzI,mBAAmB,CAAC0I,QAAQ;QACrCC,YAAY,EAAE3I,mBAAmB,CAAC4I,gBAAgB;QAElD,iBAAiB,EAAE;UACjBC,SAAS,EAAE,aAAa7I,mBAAmB,CAAC8I,eAAe,eAAe9I,mBAAmB,CAAC+I,kBAAkB,EAAE;UAClHC,OAAO,EAAE,uBAAuB;UAChCC,aAAa,EAAE;QACjB;MACF;IACF,CAAC,CAAC;IAEFC,gBAAgB,EAAEA,CAAC;MAAElL;IAAI,CAAC,KAAK;MAC7B,MAAMwG,YAAY,GAAGxG,GAAG,CAACyG,KAAK,GAAG,CAAChG,IAAI,GAAG,CAAC,IAAIG,cAAc;MAE5D,OACE,IAAA1B,WAAA,CAAAiM,IAAA,EAACpM,IAAA,CAAAqM,GAAG;QAACzC,EAAE,EAAE;UAAE0C,OAAO,EAAE;QAAO,CAAE;QAAAC,QAAA,GAC1BjK,gBAAgB,GAAGrB,GAAG,CAACuL,QAAQ,CAAC,EAChC,CAACjK,kBAAkB,IAAIM,gBAAgB,KACtC,IAAA1C,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAwM,UAAU;UACTC,OAAO,EAAE,IAAAvM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAAgN,QAAQ,IAAE,CAAE;UACtBC,IAAI,EAAC,OAAO;UACZC,aAAa,EAAC,UAAU;UACxBC,SAAS,EAAE5J,CAAC,CAAC,6BAA6B,CAAE;UAC5C6J,aAAa,EAAC,OAAO;UAAAT,QAAA,GAEpBhK,kBAAkB,IACjB,IAAApC,WAAA,CAAAiM,IAAA,EAAAjM,WAAA,CAAA8M,QAAA;YAAAV,QAAA,GACGhK,kBAAkB,CAACtB,GAAG,CAACuL,QAAQ,CAAC,EACjC,IAAArM,WAAA,CAAAwM,GAAA,UAAK,CAAC;UAAA,CACN,CACH,EACD,IAAAxM,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAiN,QAAQ;YACPC,UAAU,EAAE1F,YAAY,IAAI,CAAE;YAC9B2F,OAAO,EAAEA,CAAA,KAAM/G,cAAc,CAAC;cAAEzF,KAAK,EAAEK,GAAG,CAACC,EAAE;cAAEL,QAAQ,EAAE;YAAE,CAAC,CAAE;YAAA0L,QAAA,GAE9D,IAAApM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAAyN,YAAY,IAAE,CAAC,mBAClB;UAAA,CAAU,CAAC,EACX,IAAAlN,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAiN,QAAQ;YACPC,UAAU,EAAE1F,YAAY,IAAI,CAAE;YAC9B2F,OAAO,EAAEA,CAAA,KACP/G,cAAc,CAAC;cACbzF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAE4G,YAAY,IAAI,CAAC,GAAG,CAAC,GAAGA,YAAY,GAAG;YACnD,CAAC,CACF;YAAA8E,QAAA,GAED,IAAApM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAA0N,WAAW,IAAE,CAAC,kBACjB;UAAA,CAAU,CAAC,EACX,IAAAnN,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAiN,QAAQ;YACPC,UAAU,EAAElL,SAAS,GAAGwF,YAAY,IAAIxF,SAAS,GAAG,CAAC,GAAG,KAAM;YAC9DmL,OAAO,EAAEA,CAAA,KACP/G,cAAc,CAAC;cACbzF,KAAK,EAAEK,GAAG,CAACC,EAAE;cACbL,QAAQ,EAAE4G,YAAY,GAAG;YAC3B,CAAC,CACF;YAAA8E,QAAA,GAED,IAAApM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAA2K,aAAa,IAAE,CAAC,kBACnB;UAAA,CAAU,CAAC,EACX,IAAApK,WAAA,CAAAwM,GAAA,EAAAxM,WAAA,CAAA8M,QAAA;YAAAV,QAAA,EACGtK,SAAS,IACR,IAAA9B,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAiN,QAAQ;cACPC,UAAU,EAAE1F,YAAY,IAAIxF,SAAS,GAAG,CAAE;cAC1CmL,OAAO,EAAEA,CAAA,KACP/G,cAAc,CAAC;gBACbzF,KAAK,EAAEK,GAAG,CAACC,EAAE;gBACbL,QAAQ,EAAEoB;cACZ,CAAC,CACF;cAAAsK,QAAA,GAED,IAAApM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAA2N,eAAe,IAAE,CAAC,iBACrB;YAAA,CAAU;UACX,CACD,CAAC;QAAA,CACO,CACb;MAAA,CACE,CAAC;IAEV;EACF,CAAC,CAAC;EAEF,MAAMC,aAAa,GAAG,IAAApJ,cAAO,EAC3B,MACE,IAAAjE,WAAA,CAAAiM,IAAA,EAAAjM,WAAA,CAAA8M,QAAA;IAAAV,QAAA,GACG/J,oBAAoB,IACnB,IAAArC,WAAA,CAAAwM,GAAA,EAAC1M,OAAA,CAAAwM,UAAU;MACTC,OAAO,EAAE,IAAAvM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAA6N,QAAQ,IAAE,CAAE;MACtBV,SAAS,EAAC,eAAe;MACzBC,aAAa,EAAC,OAAO;MACrBU,mBAAmB,EAAE,KAAM;MAAAnB,QAAA,EAE3B,IAAApM,WAAA,CAAAwM,GAAA,EAAAxM,WAAA,CAAA8M,QAAA;QAAAV,QAAA,EACG/L,aAAa,CAACmN,GAAG,CAAE3H,KAAuB,IACzC,IAAA7F,WAAA,CAAAwM,GAAA,EAAC1M,OAAA,CAAAiN,QAAQ;UAEPU,UAAU,EAAE3J,OAAO,KAAK+B,KAAM;UAC9BoH,OAAO,EAAEA,CAAA,KAAMlJ,UAAU,CAAC8B,KAAK,CAAE;UAAAuG,QAAA,EAEhC,GAAGvG,KAAK,CAAC6H,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAG9H,KAAK,CAAC+H,KAAK,CAAC,CAAC,CAAC;QAAE,GAJ/C/H,KAKG,CACX;MAAC,CACF;IAAC,CACO,CACb,EAEAtD,mBAAmB,IAClB,IAAAvC,WAAA,CAAAwM,GAAA,EAAC1M,OAAA,CAAAwM,UAAU;MACTC,OAAO,EAAE,IAAAvM,WAAA,CAAAwM,GAAA,EAAC/M,MAAA,CAAAoO,QAAQ,IAAE,CAAE;MACtBjB,SAAS,EAAC,mBAAmB;MAC7BC,aAAa,EAAC,OAAO;MACrBU,mBAAmB,EAAE,KAAM;MAAAnB,QAAA,EAE3B,IAAApM,WAAA,CAAAwM,GAAA,EAAAxM,WAAA,CAAA8M,QAAA;QAAAV,QAAA,EACGjL,OAAO,CACL2M,MAAM,CAAE1J,MAAM,IAAKA,MAAM,CAAC2E,YAAY,KAAK,KAAK,CAAC,CACjDyE,GAAG,CAAEpJ,MAAM,IACV,IAAApE,WAAA,CAAAiM,IAAA,EAACnM,OAAA,CAAAiN,QAAQ;UAEPE,OAAO,EAAEA,CAAA,KAAMxH,sBAAsB,CAACrB,MAAM,CAACC,WAAW,CAAE;UAAA+H,QAAA,GAE1D,IAAApM,WAAA,CAAAwM,GAAA,EAAAuB,UAAA,CAAA3N,OAAA;YACE4N,OAAO,EAAE1J,gBAAgB,CAACF,MAAM,CAACC,WAAW,CAAC,KAAK;UAAM,CACzD,CAAC,EACDD,MAAM,CAACyF,MAAM;QAAA,GANTzF,MAAM,CAACC,WAOJ,CACX;MAAC,CACJ;IAAC,CACO,CACb;EAAA,CACD,CACH,EACD,CACEC,gBAAgB,EAChBnD,OAAO,EACP2C,OAAO,EACPzB,oBAAoB,EACpBoD,sBAAsB,EACtBlD,mBAAmB,CAEvB,CAAC;EAED,OACE,IAAAvC,WAAA,CAAAiM,IAAA,EAACpM,IAAA,CAAAqM,GAAG;IAACzC,EAAE,EAAE;MAAE0C,OAAO,EAAE,MAAM;MAAE8B,aAAa,EAAE,QAAQ;MAAEC,GAAG,EAAE;IAAE,CAAE;IAAA9B,QAAA,GAC5D,IAAApM,WAAA,CAAAwM,GAAA,EAAC5M,YAAA,CAAAuO,WAAW;MACVC,cAAc,EAAExL,SAAS,GAAGgD,YAAY,GAAGoF,SAAU;MACrDqD,eAAe,EAAEvI,aAAc;MAC/B/D,qBAAqB,EAAEA,qBAAsB;MAC7CC,eAAe,EAAEA,eAAgB;MACjCsM,iBAAiB,EAAEjB,aAAc;MACjC3I,OAAO,EACLlC,UAAU,GACNrB,OAAO,CACJ2M,MAAM,CAAE1J,MAAM,IAAKA,MAAM,CAACmK,kBAAkB,KAAK,KAAK,CAAC,CACvDf,GAAG,CAAEpJ,MAAM,IAAK;QACf,OAAO;UACLrD,EAAE,EAAEqD,MAAM,CAACC,WAAW;UACtBmK,KAAK,EAAEpK,MAAM,CAACyF,MAAM;UACpB4E,OAAO,EAAErK,MAAM,CAACsK,aAAa,IAAI,MAAM;UACvCC,OAAO,EAAEvK,MAAM,CAACwK;QAClB,CAAC;MACH,CAAC,CAAC,GACJ5D;IACL,CACF,CAAC,EAEF,IAAAhL,WAAA,CAAAwM,GAAA,EAAClN,mBAAA,CAAAuP,kBAAkB;MAACvI,KAAK,EAAEA;IAAM,CAAE,CAAC,EAEnC7D,aAAa,IACZ,IAAAzC,WAAA,CAAAwM,GAAA,EAAC7M,oBAAA,CAAAmP,mBAAmB;MAClB7M,cAAc,EAAEA,cAAe;MAC/B8M,sBAAsB,EAAE3N,IAAI,CAAC4N,MAAO;MACpCC,WAAW,EAAE1N,IAAK;MAClB2N,wBAAwB,EAAE3N,IAAI,IAAI,CAAE;MACpC4N,oBAAoB,EAAE,KAAM;MAC5BC,eAAe,EAAEA,CAAA,KAAM5L,OAAO,CAACjC,IAAI,GAAG,CAAC,CAAE;MACzC8N,WAAW,EAAEA,CAAA,KAAM;QACjB,IAAIpN,cAAc,KAAK,UAAU,EAAE;UACjCwB,iBAAiB,CAAC/B,cAAc,GAAGC,kBAAkB,CAAC;QACxD,CAAC,MAAM;UACL6B,OAAO,CAACjC,IAAI,GAAG,CAAC,CAAC;QACnB;MACF;IAAE,CACH,CACF;EAAA,CACE,CAAC;AAEV,CAAC;AAED,MAAM+N,iBAAiB,GAAAhP,OAAA,CAAAY,SAAA,GAAG,IAAAqO,WAAI,EAACrO,SAAS,CAAC;AACzCoO,iBAAiB,CAACE,WAAW,GAAG,WAAW","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"DataTable.cjs","names":["_materialReactTable","require","_react","_index","_OdysseyDesignTokensContext","_DataTablePagination","_DataFilters","_MenuButton","_MenuItem","_Box","_reactI18next","_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","endIcon","jsx","MoreIcon","size","buttonVariant","ariaLabel","menuAlignment","Fragment","MenuItem","isDisabled","onClick","ArrowTopIcon","ArrowUpIcon","ArrowBottomIcon","tableSettings","ListIcon","shouldCloseOnSelect","map","isSelected","charAt","toUpperCase","slice","ShowIcon","filter","_Checkbox2","checked","flexDirection","gap","DataFilters","onChangeSearch","onChangeFilters","additionalActions","enableColumnFilter","label","variant","filterVariant","options","filterSelectOptions","MRT_TableContainer","DataTablePagination","currentNumberOfResults","length","currentPage","isPreviousButtonDisabled","isNextButtonDisabled","onClickPrevious","onClickNext","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 {\n MRT_Updater,\n MRT_RowVirtualizer,\n MRT_RowData,\n MRT_TableOptions,\n useMaterialReactTable,\n MRT_SortingState,\n MRT_DensityState,\n MRT_VisibilityState,\n MRT_TableContainer,\n MRT_RowSelectionState,\n MRT_Row,\n MRT_ColumnDef,\n MRT_TableInstance,\n} from \"material-react-table\";\nimport {\n Fragment,\n ReactElement,\n memo,\n useCallback,\n useEffect,\n useMemo,\n useRef,\n useState,\n KeyboardEvent,\n} from \"react\";\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 { Checkbox as MuiCheckbox } from \"@mui/material\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport {\n DataTablePagination,\n paginationTypeValues,\n} from \"./DataTablePagination.js\";\nimport { DataFilter, DataFilters } from \"./DataFilters.js\";\nimport { Button } from \"../Buttons/Button.js\";\nimport { MenuButton } from \"../Buttons/MenuButton.js\";\nimport { MenuItem } from \"../Buttons/MenuItem.js\";\nimport { Box } from \"../Box.js\";\nimport { useTranslation } from \"react-i18next\";\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,\n// 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 * The human-friendly title of the column\n */\n header: string;\n /**\n * Customize the way each cell in the column is\n * displayed via a custom React component.\n */\n Cell?: MRT_ColumnDef<TData>[\"Cell\"];\n /**\n * The UI control that will be used to filter the column.\n * Defaults to a standard text input.\n */\n filterVariant?: MRT_ColumnDef<TData>[\"filterVariant\"];\n /**\n * If the filter control has preset options (such as a select or multi-select),\n * these are the options provided.\n */\n filterSelectOptions?: Array<{ label: string; value: string }>;\n /**\n * The optional column width, in pixels\n */\n size?: number;\n /**\n * The minimum column width, in pixels\n */\n minSize?: number;\n /**\n * The maximum column width, in pixels\n */\n maxSize?: number;\n /**\n * If set to false, the column won't be filterable\n */\n enableColumnFilter?: boolean;\n /**\n * If set to false, the column won't be searchable\n */\n enableGlobalFilter?: boolean;\n /**\n * If set to false, the column won't be sortable\n */\n enableSorting?: boolean;\n /**\n * If set to false, the column won't be resizable\n */\n enableResizing?: boolean;\n /**\n * If set to false, the column won't be hidable\n */\n enableHiding?: boolean;\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\n * as the table rows\n */\n data: MRT_TableOptions<TData>[\"data\"];\n /**\n * The total number of rows in the table. Optional, because it's sometimes impossible\n * to calculate. Used in table pagination to know when to disable the \"next\"/\"more\" button.\n */\n totalRows?: number;\n /**\n * The function to get the ID of a row\n */\n getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\n /**\n * The initial density of the table. This is available even if the table density\n * isn't changeable.\n */\n initialDensity?: (typeof densityValues)[number];\n /**\n * If true, the end user will be able to change the table 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 will be able to show/hide columns.\n */\n hasColumnVisibility?: boolean;\n /**\n * If true, the end user will be able to filter columns.\n */\n hasFilters?: boolean;\n /**\n * If true, the table will include pagination controls.\n */\n hasPagination?: boolean;\n /**\n * If true, the table will include checkboxes on each row, enabling\n * the user to select some or all rows.\n */\n hasRowSelection?: boolean;\n /**\n * If true, the global table search controls will be shown.\n */\n hasSearch?: boolean;\n /**\n * If true, the end user can sort columns (ascending, descending, or neither)\n */\n hasSorting?: boolean;\n /**\n * If true, the end user can reorder rows via a drag-and-drop interface\n */\n hasRowReordering?: boolean;\n /**\n * If true, the search field will include a Search button, rather than\n * firing on input change.\n */\n hasSearchSubmitButton?: boolean;\n /**\n * The debounce time, in milliseconds, for the search input firing\n * `onChangeSearch` when changed. If `hasSearchSubmitButton` is true,\n * this doesn't do anything.\n */\n searchDelayTime?: number;\n /**\n * Callback that fires when a row (or rows) is selected or unselected.\n */\n onRowSelectionChange?: (rowSelection: MRT_RowSelectionState) => void;\n /**\n * Callback that fires whenever the table needs to fetch new data, due to changes in\n * page, results per page, search input, filters, or sorting\n */\n fetchDataFn: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: {\n page?: number;\n resultsPerPage?: number;\n search?: string;\n filters?: DataFilter[];\n sort?: MRT_SortingState;\n }) =>\n | MRT_TableOptions<TData>[\"data\"]\n | Promise<MRT_TableOptions<TData>[\"data\"]>;\n /**\n * Callback that fires when the user reorders rows within the table. Can be used\n * to propagate order change to the backend.\n */\n reorderDataFn?: ({\n rowId,\n newIndex,\n }: {\n rowId: string;\n newIndex: number;\n }) => void;\n /**\n * The current page number.\n */\n page?: number;\n /**\n * The number of results per page.\n */\n resultsPerPage?: number;\n /**\n * The type of pagination controls shown. Defaults to next/prev buttons, but can be\n * set to a simple \"Load more\" button by setting to \"loadMore\".\n */\n paginationType?: (typeof paginationTypeValues)[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\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 rowId: string;\n newIndex: number;\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 }: { rowId: string; newIndex: number }) => {\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 table: TableType<TData>;\n row: MRT_Row<TData>;\n event: KeyboardEvent<HTMLButtonElement>;\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 endIcon={<MoreIcon />}\n size=\"small\"\n buttonVariant=\"floating\"\n ariaLabel={t(\"table.moreactions.arialabel\")}\n menuAlignment=\"right\"\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 endIcon={<ListIcon />}\n ariaLabel=\"Table density\"\n menuAlignment=\"right\"\n shouldCloseOnSelect={false}\n >\n <>\n {densityValues.map((value: MRT_DensityState) => (\n <MenuItem\n key={value}\n isSelected={density === 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 endIcon={<ShowIcon />}\n ariaLabel=\"Show/hide columns\"\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 onChangeSearch={hasSearch ? handleSearch : undefined}\n onChangeFilters={handleFilters}\n hasSearchSubmitButton={hasSearchSubmitButton}\n searchDelayTime={searchDelayTime}\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 />\n\n <MRT_TableContainer table={table} />\n\n {hasPagination && (\n <DataTablePagination\n paginationType={paginationType}\n currentNumberOfResults={data.length}\n currentPage={page}\n isPreviousButtonDisabled={page <= 1}\n isNextButtonDisabled={false} // TODO: Add logic for disabling next/load more button\n onClickPrevious={() => setPage(page - 1)}\n onClickNext={() => {\n if (paginationType === \"loadMore\") {\n setResultsPerPage(resultsPerPage + resultsPerPageProp);\n } else {\n setPage(page + 1);\n }\n }}\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":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"componentTypes.cjs","names":[],"sources":["../../../../src/labs/DataView/componentTypes.ts"],"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 {\n MRT_DensityState,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_VisibilityState,\n} from \"material-react-table\";\nimport { ReactNode } from \"react\";\n\nimport { availableLayouts, availableCardLayouts } from \"./constants.js\";\nimport { DataFilter } from \"../DataFilters.js\";\nimport {\n DataGetDataType,\n DataOnReorderRowsType,\n DataRowSelectionState,\n DataTableColumn,\n} from \"./dataTypes.js\";\nimport { MenuButtonProps } from \"../../
|
|
1
|
+
{"version":3,"file":"componentTypes.cjs","names":[],"sources":["../../../../src/labs/DataView/componentTypes.ts"],"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 {\n MRT_DensityState,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_SortingState,\n MRT_TableOptions,\n MRT_VisibilityState,\n} from \"material-react-table\";\nimport { ReactNode } from \"react\";\n\nimport { availableLayouts, availableCardLayouts } from \"./constants.js\";\nimport { DataFilter } from \"../DataFilters.js\";\nimport {\n DataGetDataType,\n DataOnReorderRowsType,\n DataRowSelectionState,\n DataTableColumn,\n} from \"./dataTypes.js\";\nimport { MenuButtonProps } from \"../../Buttons/MenuButton.js\";\nimport { paginationTypeValues } from \"../DataTablePagination.js\";\nimport { DataCardProps } from \"./DataCard.js\";\nimport { type PaginationProps } from \"../../Pagination/index.js\";\nimport { RowActionsProps } from \"./RowActions.js\";\n\nexport type DataLayout = (typeof availableLayouts)[number];\nexport type CardLayout = (typeof availableCardLayouts)[number];\n\nexport type AvailableLayouts = DataLayout[];\nexport type AvailableCardLayouts = CardLayout[];\n\nexport type UniversalProps<TData extends MRT_RowData> = {\n additionalActionButton?: ReactNode;\n additionalActionMenuItems?: ReactNode;\n bulkActionMenuItems?: (\n selectedRows: MRT_RowSelectionState,\n ) => MenuButtonProps[\"children\"];\n currentPage?: number;\n emptyPlaceholder?: ReactNode;\n enableVirtualization?: boolean;\n errorMessage?: string;\n filters?: Array<DataFilter | DataTableColumn<TData> | string>;\n getData: ({\n page,\n resultsPerPage,\n search,\n filters,\n sort,\n }: DataGetDataType) => TData[] | Promise<TData[]>;\n getRowId?: MRT_TableOptions<TData>[\"getRowId\"];\n hasFilters?: boolean;\n hasPagination?: boolean;\n hasRowReordering?: boolean;\n hasRowSelection?: boolean;\n hasSearch?: boolean;\n hasSearchSubmitButton?: boolean;\n isEmpty?: boolean;\n isLoading?: boolean;\n isNoResults?: boolean;\n isPaginationMoreDisabled?: boolean;\n isRowReorderingDisabled?: boolean;\n maxPages?: number;\n maxResultsPerPage?: number;\n metaText?: string;\n noResultsPlaceholder?: ReactNode;\n /**\n * @deprecated onChangeRowSelection is now onRowSelectionChange\n */\n onChangeRowSelection?: (rowSelection: DataRowSelectionState) => void;\n onPaginationChange?: ({\n pageIndex,\n pageSize,\n }: {\n pageIndex: number;\n pageSize: number;\n }) => void;\n onReorderRows?: ({ rowId, newRowIndex }: DataOnReorderRowsType) => void;\n onRowSelectionChange?: (rowSelection: DataRowSelectionState) => void;\n paginationType?: (typeof paginationTypeValues)[number];\n resultsPerPage?: number;\n searchDelayTime?: number;\n totalRows?: number;\n} & Pick<\n PaginationProps,\n \"hasPageInput\" | \"hasRowCountInput\" | \"hasRowCountLabel\"\n>;\n\nexport type TableLayoutProps<TData extends MRT_RowData> = {\n columns: DataTableColumn<TData>[];\n hasChangeableDensity?: boolean;\n hasColumnResizing?: boolean;\n hasColumnVisibility?: boolean;\n hasSorting?: boolean;\n initialDensity?: MRT_DensityState;\n renderDetailPanel?: MRT_TableOptions<TData>[\"renderDetailPanel\"];\n rowActionButtons?: RowActionsProps<TData>[\"rowActionButtons\"];\n rowActionMenuItems?: RowActionsProps<TData>[\"rowActionMenuItems\"];\n};\n\nexport type CardLayoutProps<TData extends MRT_RowData> = {\n itemProps: (row: TData) => Omit<DataCardProps<TData>, \"row\">;\n maxGridColumns?: number;\n renderDetailPanel?: (props: { row: TData }) => ReactNode;\n rowActionMenuItems?: RowActionsProps<TData>[\"rowActionMenuItems\"];\n};\n\nexport type ViewProps<TData extends MRT_RowData, L extends DataLayout> = {\n availableLayouts?: L[];\n initialLayout?: L;\n cardLayoutOptions?: CardLayoutProps<TData>;\n tableLayoutOptions?: TableLayoutProps<TData>;\n};\n\nexport type TableState = {\n columnSorting: MRT_SortingState;\n columnVisibility: MRT_VisibilityState;\n rowDensity?: MRT_DensityState;\n};\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dataTypes.cjs","names":[],"sources":["../../../../src/labs/DataView/dataTypes.ts"],"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 {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_SortingState,\n} from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\n\nexport type DataQueryParamsType = {\n filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n};\n\nexport type DataTableColumn<\n TData extends MRT_RowData,\n TValue = unknown,\n> = MRT_ColumnDef<TData, TValue> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\nexport type DataTableColumnInstance<TData extends MRT_RowData, TValue> = Omit<\n MRT_Column<TData, TValue>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<TData, TValue>;\n};\n\nexport type DataTableCell<TData extends MRT_RowData, TValue> = Omit<\n MRT_Cell<TData>,\n \"column\"\n> & {\n column: DataTableColumnInstance<TData, TValue>;\n};\n\nexport type DataColumns<\n TData extends MRT_RowData,\n TValue = unknown,\n> = DataTableColumn<TData, TValue>[];\n\nexport type DataRow = MRT_RowData;\n\nexport type DataGetDataType = {\n filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n};\n\nexport type DataOnReorderRowsType = {\n newRowIndex: number;\n rowId: string;\n};\n\nexport type DataRowSelectionState = MRT_RowSelectionState;\n\n// Provided for backwards
|
|
1
|
+
{"version":3,"file":"dataTypes.cjs","names":[],"sources":["../../../../src/labs/DataView/dataTypes.ts"],"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 {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_RowData,\n MRT_RowSelectionState,\n MRT_SortingState,\n} from \"material-react-table\";\n\nimport { DataFilter } from \"../DataFilters.js\";\n\nexport type DataQueryParamsType = {\n filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n};\n\nexport type DataTableColumn<\n TData extends MRT_RowData,\n TValue = unknown,\n> = MRT_ColumnDef<TData, TValue> & {\n /**\n * @deprecated use hasTextWrapping instead of enableWrapping\n */\n enableWrapping?: boolean;\n hasTextWrapping?: boolean;\n};\n\nexport type DataTableColumnInstance<TData extends MRT_RowData, TValue> = Omit<\n MRT_Column<TData, TValue>,\n \"columnDef\"\n> & {\n columnDef: DataTableColumn<TData, TValue>;\n};\n\nexport type DataTableCell<TData extends MRT_RowData, TValue> = Omit<\n MRT_Cell<TData>,\n \"column\"\n> & {\n column: DataTableColumnInstance<TData, TValue>;\n};\n\nexport type DataColumns<\n TData extends MRT_RowData,\n TValue = unknown,\n> = DataTableColumn<TData, TValue>[];\n\nexport type DataRow = MRT_RowData;\n\nexport type DataGetDataType = {\n filters?: DataFilter[];\n page?: number;\n resultsPerPage?: number;\n search?: string;\n sort?: MRT_SortingState;\n};\n\nexport type DataOnReorderRowsType = {\n newRowIndex: number;\n rowId: string;\n};\n\nexport type DataRowSelectionState = MRT_RowSelectionState;\n\n// Provided for backwards compatibility with old DataTable types\nexport type DataTableGetDataType = DataGetDataType;\nexport type DataTableOnReorderRowsType = DataOnReorderRowsType;\nexport type DataTableRowSelectionState = DataRowSelectionState;\nexport type DataTableRow = DataRow;\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"testSupportData.cjs","names":["_Status","require","_jsxRuntime","columns","exports","accessorKey","header","enableColumnFilter","size","enableHiding","filterVariant","Cell","cell","value","getValue","severity","jsx","Status","label","charAt","toUpperCase","slice","filterSelectOptions","data","order","id","name","city","state","age","risk","result","i","concat","lotsOfData","filterData","args","search","filters","sort","page","resultsPerPage","searchFiltered","filter","row","Object","values","some","toString","toLowerCase","includes","personKeys","isKeyOfPerson","key","handleStartLetterFilter","firstLetter","handleStandardFilter","rowValue","String","undefined","Array","isArray","arrayValue","filterValue","compareValues","a","b","desc","columnFiltered","every","sorted","length","reduce","aValue","bValue","startRow","endRow","reorderData","rowId","newRowIndex","rowIndex","findIndex","removedRow","splice","reorderedData"],"sources":["../../../../src/labs/DataView/testSupportData.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 { Status } from \"../../Status.js\";\nimport { DataColumns, DataFilter, DataGetDataType } from \"../index.js\";\n\nexport type Person = {\n order: number;\n id: string;\n name: string;\n city: string;\n state: string;\n age: number;\n risk: \"high\" | \"medium\" | \"low\";\n};\n\nexport const columns: DataColumns<Person> = [\n {\n accessorKey: \"order\",\n header: \"ID\",\n enableColumnFilter: false,\n size: 120,\n },\n {\n accessorKey: \"name\",\n header: \"Name\",\n enableHiding: false,\n },\n {\n accessorKey: \"city\",\n header: \"City\",\n },\n {\n accessorKey: \"state\",\n header: \"State\",\n },\n {\n accessorKey: \"age\",\n header: \"Age\",\n size: 80,\n filterVariant: \"range\",\n },\n {\n accessorKey: \"risk\",\n header: \"Risk level\",\n Cell: ({ cell }) => {\n const value = cell.getValue<string>();\n const severity =\n value === \"low\" ? \"success\" : value === \"medium\" ? \"warning\" : \"error\";\n return (\n <Status\n label={value.charAt(0).toUpperCase() + value.slice(1)}\n severity={severity}\n />\n );\n },\n filterVariant: \"multi-select\",\n filterSelectOptions: [\n {\n label: \"Low\",\n value: \"low\",\n },\n {\n label: \"Medium\",\n value: \"medium\",\n },\n {\n label: \"High\",\n value: \"high\",\n },\n ],\n },\n];\n\nexport const data: Person[] = [\n {\n order: 1,\n id: \"1\",\n name: \"Luke Skywalker\",\n city: \"Mos Eisley\",\n state: \"Tatooine\",\n age: 19,\n risk: \"low\",\n },\n {\n order: 2,\n id: \"2\",\n name: \"Han Solo\",\n city: \"Corellia\",\n state: \"Corellia\",\n age: 40,\n risk: \"medium\",\n },\n {\n order: 3,\n id: \"3\",\n name: \"Leia Organa\",\n city: \"Alderaan City\",\n state: \"Alderaan\",\n age: 19,\n risk: \"low\",\n },\n {\n order: 4,\n id: \"4\",\n name: \"Chewbacca\",\n city: \"Kashyyyk City\",\n state: \"Kashyyyk\",\n age: 50,\n risk: \"high\",\n },\n {\n order: 5,\n id: \"5\",\n name: \"C-3P0\",\n city: \"Mos Espa\",\n state: \"Tatooine\",\n age: 25,\n risk: \"low\",\n },\n {\n order: 6,\n id: \"6\",\n name: \"R2-D2\",\n city: \"Theed\",\n state: \"Naboo\",\n age: 25,\n risk: \"low\",\n },\n];\n\nlet result: Person[] = [];\nfor (let i = 0; i < 50; i++) {\n result = result.concat(data);\n}\nexport const lotsOfData = result;\n\nexport const filterData = ({\n data,\n ...args\n}: {\n data: Person[];\n} & DataGetDataType) => {\n const { search, filters, sort, page = 1, resultsPerPage = 20 } = args;\n\n const searchFiltered = search\n ? data.filter((row) =>\n Object.values(row).some((value) =>\n value.toString().toLowerCase().includes(search.toLowerCase()),\n ),\n )\n : data;\n\n const personKeys: (keyof Person)[] = [\n \"order\",\n \"id\",\n \"name\",\n \"city\",\n \"state\",\n \"age\",\n \"risk\",\n ];\n\n const isKeyOfPerson = (key: string): key is keyof Person => {\n return personKeys.includes(key as keyof Person);\n };\n\n const handleStartLetterFilter = (\n row: Person,\n value: DataFilter[\"value\"],\n ): boolean => {\n if (typeof row.name !== \"string\") return true;\n const firstLetter = row.name[0]?.toLowerCase();\n if (value === \"vowel\") return \"aeiou\".includes(firstLetter);\n if (value === \"consonant\") return !\"aeiou\".includes(firstLetter);\n return true;\n };\n\n const handleStandardFilter = (\n row: Person,\n id: keyof Person,\n value: DataFilter[\"value\"],\n ): boolean => {\n const rowValue = String(row[id]).toLowerCase();\n\n if (value === null || value === undefined) {\n return true;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n return rowValue.includes(String(value).toLowerCase());\n }\n\n if (Array.isArray(value)) {\n return value.some((arrayValue) => {\n const filterValue =\n typeof arrayValue === \"object\" ? arrayValue.value : arrayValue;\n return row[id]\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase());\n });\n }\n\n return false;\n };\n\n const compareValues = (\n a: string | number,\n b: string | number,\n desc: boolean,\n ): number => {\n if (a < b) return desc ? 1 : -1;\n if (a > b) return desc ? -1 : 1;\n return 0;\n };\n\n // In a real-world scenario, the consumer would provide their own backend\n // filtering/searching logic. This is a demo of what that could look like\n // for the provided sample data and demo filters.\n const columnFiltered = filters\n ? searchFiltered.filter((row) =>\n filters.every(({ id, value }: DataFilter) => {\n // If the filter value is null, return all the data\n if (value === null || value === undefined) {\n return true;\n }\n\n // Handle custom filters\n if (id === \"startLetter\") {\n return handleStartLetterFilter(row, value);\n }\n\n // Handle standard Person properties\n if (isKeyOfPerson(id)) {\n return handleStandardFilter(row, id, value);\n }\n\n return true;\n }),\n )\n : searchFiltered;\n\n const sorted =\n sort && sort.length > 0\n ? [...columnFiltered].sort((a, b) =>\n sort.reduce((result, { id, desc }) => {\n if (result !== 0) return result;\n\n if (isKeyOfPerson(id)) {\n const aValue = a[id];\n const bValue = b[id];\n return compareValues(aValue, bValue, desc);\n }\n\n // Handle custom sort fields if needed\n return 0;\n }, 0),\n )\n : columnFiltered;\n\n const startRow = (page - 1) * resultsPerPage;\n const endRow = startRow + resultsPerPage;\n\n return sorted.slice(startRow, endRow);\n};\n\nexport const reorderData = <Data extends Person>({\n data,\n rowId,\n newRowIndex,\n}: {\n data: Data[];\n rowId: string | number;\n newRowIndex: number;\n}): Data[] => {\n const rowIndex = data.findIndex((row) => row.id === rowId);\n\n if (rowIndex === -1) {\n return data;\n }\n\n const [removedRow] = data.splice(rowIndex, 1);\n\n const reorderedData = [\n ...data.slice(0, newRowIndex),\n removedRow,\n ...data.slice(newRowIndex),\n ];\n\n return reorderedData;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"testSupportData.cjs","names":["_Status","require","_jsxRuntime","columns","exports","accessorKey","header","enableColumnFilter","size","enableHiding","filterVariant","Cell","cell","value","getValue","severity","jsx","Status","label","charAt","toUpperCase","slice","filterSelectOptions","data","order","id","name","city","state","age","risk","result","i","concat","lotsOfData","filterData","args","search","filters","sort","page","resultsPerPage","searchFiltered","filter","row","Object","values","some","toString","toLowerCase","includes","personKeys","isKeyOfPerson","key","handleStartLetterFilter","firstLetter","handleStandardFilter","rowValue","String","undefined","Array","isArray","arrayValue","filterValue","compareValues","a","b","desc","columnFiltered","every","sorted","length","reduce","aValue","bValue","startRow","endRow","reorderData","rowId","newRowIndex","rowIndex","findIndex","removedRow","splice","reorderedData"],"sources":["../../../../src/labs/DataView/testSupportData.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 { Status } from \"../../Status.js\";\nimport { DataColumns, DataGetDataType } from \"./dataTypes.js\";\nimport { DataFilter } from \"../DataFilters.js\";\n\nexport type Person = {\n order: number;\n id: string;\n name: string;\n city: string;\n state: string;\n age: number;\n risk: \"high\" | \"medium\" | \"low\";\n};\n\nexport const columns: DataColumns<Person> = [\n {\n accessorKey: \"order\",\n header: \"ID\",\n enableColumnFilter: false,\n size: 120,\n },\n {\n accessorKey: \"name\",\n header: \"Name\",\n enableHiding: false,\n },\n {\n accessorKey: \"city\",\n header: \"City\",\n },\n {\n accessorKey: \"state\",\n header: \"State\",\n },\n {\n accessorKey: \"age\",\n header: \"Age\",\n size: 80,\n filterVariant: \"range\",\n },\n {\n accessorKey: \"risk\",\n header: \"Risk level\",\n Cell: ({ cell }) => {\n const value = cell.getValue<string>();\n const severity =\n value === \"low\" ? \"success\" : value === \"medium\" ? \"warning\" : \"error\";\n return (\n <Status\n label={value.charAt(0).toUpperCase() + value.slice(1)}\n severity={severity}\n />\n );\n },\n filterVariant: \"multi-select\",\n filterSelectOptions: [\n {\n label: \"Low\",\n value: \"low\",\n },\n {\n label: \"Medium\",\n value: \"medium\",\n },\n {\n label: \"High\",\n value: \"high\",\n },\n ],\n },\n];\n\nexport const data: Person[] = [\n {\n order: 1,\n id: \"1\",\n name: \"Luke Skywalker\",\n city: \"Mos Eisley\",\n state: \"Tatooine\",\n age: 19,\n risk: \"low\",\n },\n {\n order: 2,\n id: \"2\",\n name: \"Han Solo\",\n city: \"Corellia\",\n state: \"Corellia\",\n age: 40,\n risk: \"medium\",\n },\n {\n order: 3,\n id: \"3\",\n name: \"Leia Organa\",\n city: \"Alderaan City\",\n state: \"Alderaan\",\n age: 19,\n risk: \"low\",\n },\n {\n order: 4,\n id: \"4\",\n name: \"Chewbacca\",\n city: \"Kashyyyk City\",\n state: \"Kashyyyk\",\n age: 50,\n risk: \"high\",\n },\n {\n order: 5,\n id: \"5\",\n name: \"C-3P0\",\n city: \"Mos Espa\",\n state: \"Tatooine\",\n age: 25,\n risk: \"low\",\n },\n {\n order: 6,\n id: \"6\",\n name: \"R2-D2\",\n city: \"Theed\",\n state: \"Naboo\",\n age: 25,\n risk: \"low\",\n },\n];\n\nlet result: Person[] = [];\nfor (let i = 0; i < 50; i++) {\n result = result.concat(data);\n}\nexport const lotsOfData = result;\n\nexport const filterData = ({\n data,\n ...args\n}: {\n data: Person[];\n} & DataGetDataType) => {\n const { search, filters, sort, page = 1, resultsPerPage = 20 } = args;\n\n const searchFiltered = search\n ? data.filter((row) =>\n Object.values(row).some((value) =>\n value.toString().toLowerCase().includes(search.toLowerCase()),\n ),\n )\n : data;\n\n const personKeys: (keyof Person)[] = [\n \"order\",\n \"id\",\n \"name\",\n \"city\",\n \"state\",\n \"age\",\n \"risk\",\n ];\n\n const isKeyOfPerson = (key: string): key is keyof Person => {\n return personKeys.includes(key as keyof Person);\n };\n\n const handleStartLetterFilter = (\n row: Person,\n value: DataFilter[\"value\"],\n ): boolean => {\n if (typeof row.name !== \"string\") return true;\n const firstLetter = row.name[0]?.toLowerCase();\n if (value === \"vowel\") return \"aeiou\".includes(firstLetter);\n if (value === \"consonant\") return !\"aeiou\".includes(firstLetter);\n return true;\n };\n\n const handleStandardFilter = (\n row: Person,\n id: keyof Person,\n value: DataFilter[\"value\"],\n ): boolean => {\n const rowValue = String(row[id]).toLowerCase();\n\n if (value === null || value === undefined) {\n return true;\n }\n\n if (typeof value === \"string\" || typeof value === \"number\") {\n return rowValue.includes(String(value).toLowerCase());\n }\n\n if (Array.isArray(value)) {\n return value.some((arrayValue) => {\n const filterValue =\n typeof arrayValue === \"object\" ? arrayValue.value : arrayValue;\n return row[id]\n ?.toString()\n .toLowerCase()\n .includes(filterValue.toString().toLowerCase());\n });\n }\n\n return false;\n };\n\n const compareValues = (\n a: string | number,\n b: string | number,\n desc: boolean,\n ): number => {\n if (a < b) return desc ? 1 : -1;\n if (a > b) return desc ? -1 : 1;\n return 0;\n };\n\n // In a real-world scenario, the consumer would provide their own backend\n // filtering/searching logic. This is a demo of what that could look like\n // for the provided sample data and demo filters.\n const columnFiltered = filters\n ? searchFiltered.filter((row) =>\n filters.every(({ id, value }: DataFilter) => {\n // If the filter value is null, return all the data\n if (value === null || value === undefined) {\n return true;\n }\n\n // Handle custom filters\n if (id === \"startLetter\") {\n return handleStartLetterFilter(row, value);\n }\n\n // Handle standard Person properties\n if (isKeyOfPerson(id)) {\n return handleStandardFilter(row, id, value);\n }\n\n return true;\n }),\n )\n : searchFiltered;\n\n const sorted =\n sort && sort.length > 0\n ? [...columnFiltered].sort((a, b) =>\n sort.reduce((result, { id, desc }) => {\n if (result !== 0) return result;\n\n if (isKeyOfPerson(id)) {\n const aValue = a[id];\n const bValue = b[id];\n return compareValues(aValue, bValue, desc);\n }\n\n // Handle custom sort fields if needed\n return 0;\n }, 0),\n )\n : columnFiltered;\n\n const startRow = (page - 1) * resultsPerPage;\n const endRow = startRow + resultsPerPage;\n\n return sorted.slice(startRow, endRow);\n};\n\nexport const reorderData = <Data extends Person>({\n data,\n rowId,\n newRowIndex,\n}: {\n data: Data[];\n rowId: string | number;\n newRowIndex: number;\n}): Data[] => {\n const rowIndex = data.findIndex((row) => row.id === rowId);\n\n if (rowIndex === -1) {\n return data;\n }\n\n const [removedRow] = data.splice(rowIndex, 1);\n\n const reorderedData = [\n ...data.slice(0, newRowIndex),\n removedRow,\n ...data.slice(newRowIndex),\n ];\n\n return reorderedData;\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,8 +15,7 @@ var _Tag = require("../Tag.cjs");
|
|
|
15
15
|
var _OdysseyDesignTokensContext = require("../OdysseyDesignTokensContext.cjs");
|
|
16
16
|
var _index = require("../icons.generated/index.cjs");
|
|
17
17
|
var _jsxRuntime = require("react/jsx-runtime");
|
|
18
|
-
function
|
|
19
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
18
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
20
19
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
21
20
|
/*!
|
|
22
21
|
* Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"GroupPicker.cjs","names":["_Avatar2","_interopRequireWildcard","require","_react","_Field","_Typography","_Tag","_OdysseyDesignTokensContext","_index","_jsxRuntime","_getRequireWildcardCache","e","WeakMap","r","t","__esModule","default","has","get","n","__proto__","a","Object","defineProperty","getOwnPropertyDescriptor","u","hasOwnProperty","call","i","set","_interopRequireDefault","avatarImageSizeSmall","avatarImageSizeMedium","GroupPicker","hasMultipleChoices","isCustomValueAllowed","isDisabled","isLoading","isOptional","isReadOnly","hint","label","onChange","onInputChange","options","value","testId","odysseyDesignTokens","useOdysseyDesignTokens","isOptionEqualToValue","useCallback","sourceValue","targetValue","id","getOptionLabel","option","name","renderOption","props","createElement","key","jsxs","_Box2","sx","alignItems","display","flexDirection","children","jsx","paddingRight","Spacing2","alt","src","logo","avatarClasses","fallback","visibility","background","height","width","Subordinate","description","paddingTop","Spacing1","usersCount","Spacing4","UserIcon","appsCount","GridIcon","groupPushMappingsCount","GroupIcon","renderTags","values","getTagProps","map","index","onDelete","margin","Tag","icon","onRemove","renderInput","InputLabelProps","InputProps","params","Field","fieldType","hasVisibleLabel","htmlFor","renderFieldComponent","ariaDescribedBy","_InputBase2","required","_Autocomplete2","disabled","filterSelectedOptions","freeSolo","loading","multiple","readOnly","MemoizedGroupPicker","exports","memo"],"sources":["../../../src/labs/GroupPicker.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 type {\n AutocompleteFreeSoloValueMapping,\n AutocompleteGetTagProps,\n} from \"@mui/material/useAutocomplete\";\n\nimport {\n Autocomplete as MuiAutocomplete,\n Avatar as MuiAvatar,\n Box,\n InputBase,\n AutocompleteRenderInputParams,\n} from \"@mui/material\";\nimport { avatarClasses } from \"@mui/material/Avatar\";\nimport { HTMLAttributes, memo, useCallback } from \"react\";\n\nimport { AutocompleteProps } from \"../Autocomplete.js\";\nimport { Field } from \"../Field.js\";\nimport { Subordinate } from \"../Typography.js\";\nimport { Tag } from \"../Tag.js\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport { UserIcon, GridIcon, GroupIcon } from \"../icons.generated/index.js\";\n\nexport type GroupPickerOptionType = {\n appsCount?: number;\n description: string;\n groupPushMappingsCount?: number;\n id: string;\n logo?: string;\n name: string;\n usersCount?: number;\n};\n\nexport type GroupPickerProps<\n GroupPickerOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<\n GroupPickerOptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>;\n\nconst avatarImageSizeSmall = 16;\nconst avatarImageSizeMedium = 24;\n\nconst GroupPicker = <\n OptionType extends GroupPickerOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n hasMultipleChoices,\n isCustomValueAllowed,\n isDisabled,\n isLoading,\n isOptional = false,\n isReadOnly,\n hint,\n label,\n onChange,\n onInputChange,\n options,\n value,\n testId,\n}: GroupPickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const isOptionEqualToValue = useCallback(\n (sourceValue: OptionType, targetValue: OptionType) => {\n return sourceValue.id === targetValue.id;\n },\n [],\n );\n\n const getOptionLabel = useCallback(\n (\n option:\n | OptionType\n | AutocompleteFreeSoloValueMapping<IsCustomValueAllowed>,\n ) => {\n return (option as OptionType).name;\n },\n [],\n );\n\n const renderOption = useCallback(\n (props: HTMLAttributes<HTMLElement>, option: OptionType) => {\n return (\n <li {...props} key={option.id}>\n <Box\n sx={{\n alignItems: \"top\",\n display: \"flex\",\n flexDirection: \"row\",\n }}\n >\n <Box sx={{ paddingRight: odysseyDesignTokens.Spacing2 }}>\n <MuiAvatar\n alt={option.name}\n src={option.logo}\n sx={{\n [`.${avatarClasses.fallback}`]: {\n visibility: \"hidden\",\n },\n background: \"transparent\",\n height: avatarImageSizeMedium,\n width: avatarImageSizeMedium,\n }}\n />\n </Box>\n <Box>\n {option.name}\n <Subordinate>{option.description}</Subordinate>\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingTop: odysseyDesignTokens.Spacing1,\n }}\n >\n {typeof option.usersCount === \"number\" && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingRight: odysseyDesignTokens.Spacing4,\n }}\n >\n <UserIcon />\n {option.usersCount}\n </Box>\n )}\n {typeof option.appsCount === \"number\" && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingRight: odysseyDesignTokens.Spacing4,\n }}\n >\n <GridIcon />\n {option.appsCount}\n </Box>\n )}\n {typeof option.groupPushMappingsCount === \"number\" && (\n <Box sx={{ display: \"flex\", flexDirection: \"row\" }}>\n <GroupIcon />\n {option.groupPushMappingsCount}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n </li>\n );\n },\n [odysseyDesignTokens],\n );\n\n const renderTags = useCallback(\n (values: OptionType[], getTagProps: AutocompleteGetTagProps) =>\n values.map((option, index) => {\n const { key, onDelete } = getTagProps({ index });\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n }}\n >\n <Tag\n icon={\n <MuiAvatar\n alt={option.name}\n src={option.logo}\n sx={{\n [`.${avatarClasses.fallback}`]: {\n visibility: \"hidden\",\n },\n background: \"transparent\",\n height: avatarImageSizeSmall,\n width: avatarImageSizeSmall,\n }}\n />\n }\n label={option.name}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const renderInput = useCallback(\n ({\n InputLabelProps,\n InputProps,\n ...params\n }: AutocompleteRenderInputParams) => (\n <Field\n fieldType=\"single\"\n hasVisibleLabel\n // @ts-expect-error The `htmlFor` prop doesn't exist `HTMLAttributes` for a `<label>` element even though it exists in JavaScript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n id={InputLabelProps.htmlFor}\n hint={hint}\n label={label}\n isOptional={isOptional}\n renderFieldComponent={({ ariaDescribedBy, id }) => (\n <InputBase\n {...params}\n {...InputProps}\n aria-describedby={ariaDescribedBy}\n id={id}\n required={!isOptional}\n />\n )}\n />\n ),\n [hint, isOptional, label],\n );\n\n return (\n <MuiAutocomplete\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n data-se={testId}\n disabled={isDisabled}\n filterSelectedOptions={true}\n freeSolo={isCustomValueAllowed}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n onChange={onChange}\n onInputChange={onInputChange}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n value={value}\n />\n );\n};\n\nconst MemoizedGroupPicker = memo(GroupPicker) as typeof GroupPicker;\n\nexport { MemoizedGroupPicker as GroupPicker };\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"GroupPicker.cjs","names":["_Avatar2","_interopRequireWildcard","require","_react","_Field","_Typography","_Tag","_OdysseyDesignTokensContext","_index","_jsxRuntime","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","_interopRequireDefault","avatarImageSizeSmall","avatarImageSizeMedium","GroupPicker","hasMultipleChoices","isCustomValueAllowed","isDisabled","isLoading","isOptional","isReadOnly","hint","label","onChange","onInputChange","options","value","testId","odysseyDesignTokens","useOdysseyDesignTokens","isOptionEqualToValue","useCallback","sourceValue","targetValue","id","getOptionLabel","option","name","renderOption","props","createElement","key","jsxs","_Box2","sx","alignItems","display","flexDirection","children","jsx","paddingRight","Spacing2","alt","src","logo","avatarClasses","fallback","visibility","background","height","width","Subordinate","description","paddingTop","Spacing1","usersCount","Spacing4","UserIcon","appsCount","GridIcon","groupPushMappingsCount","GroupIcon","renderTags","values","getTagProps","map","index","onDelete","margin","Tag","icon","onRemove","renderInput","InputLabelProps","InputProps","params","Field","fieldType","hasVisibleLabel","htmlFor","renderFieldComponent","ariaDescribedBy","_InputBase2","required","_Autocomplete2","disabled","filterSelectedOptions","freeSolo","loading","multiple","readOnly","MemoizedGroupPicker","exports","memo"],"sources":["../../../src/labs/GroupPicker.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 type {\n AutocompleteFreeSoloValueMapping,\n AutocompleteGetTagProps,\n} from \"@mui/material/useAutocomplete\";\n\nimport {\n Autocomplete as MuiAutocomplete,\n Avatar as MuiAvatar,\n Box,\n InputBase,\n AutocompleteRenderInputParams,\n} from \"@mui/material\";\nimport { avatarClasses } from \"@mui/material/Avatar\";\nimport { HTMLAttributes, memo, useCallback } from \"react\";\n\nimport { AutocompleteProps } from \"../Autocomplete.js\";\nimport { Field } from \"../Field.js\";\nimport { Subordinate } from \"../Typography.js\";\nimport { Tag } from \"../Tag.js\";\nimport { useOdysseyDesignTokens } from \"../OdysseyDesignTokensContext.js\";\nimport { UserIcon, GridIcon, GroupIcon } from \"../icons.generated/index.js\";\n\nexport type GroupPickerOptionType = {\n appsCount?: number;\n description: string;\n groupPushMappingsCount?: number;\n id: string;\n logo?: string;\n name: string;\n usersCount?: number;\n};\n\nexport type GroupPickerProps<\n GroupPickerOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n> = AutocompleteProps<\n GroupPickerOptionType,\n HasMultipleChoices,\n IsCustomValueAllowed\n>;\n\nconst avatarImageSizeSmall = 16;\nconst avatarImageSizeMedium = 24;\n\nconst GroupPicker = <\n OptionType extends GroupPickerOptionType,\n HasMultipleChoices extends boolean | undefined,\n IsCustomValueAllowed extends boolean | undefined,\n>({\n hasMultipleChoices,\n isCustomValueAllowed,\n isDisabled,\n isLoading,\n isOptional = false,\n isReadOnly,\n hint,\n label,\n onChange,\n onInputChange,\n options,\n value,\n testId,\n}: GroupPickerProps<OptionType, HasMultipleChoices, IsCustomValueAllowed>) => {\n const odysseyDesignTokens = useOdysseyDesignTokens();\n\n const isOptionEqualToValue = useCallback(\n (sourceValue: OptionType, targetValue: OptionType) => {\n return sourceValue.id === targetValue.id;\n },\n [],\n );\n\n const getOptionLabel = useCallback(\n (\n option:\n | OptionType\n | AutocompleteFreeSoloValueMapping<IsCustomValueAllowed>,\n ) => {\n return (option as OptionType).name;\n },\n [],\n );\n\n const renderOption = useCallback(\n (props: HTMLAttributes<HTMLElement>, option: OptionType) => {\n return (\n <li {...props} key={option.id}>\n <Box\n sx={{\n alignItems: \"top\",\n display: \"flex\",\n flexDirection: \"row\",\n }}\n >\n <Box sx={{ paddingRight: odysseyDesignTokens.Spacing2 }}>\n <MuiAvatar\n alt={option.name}\n src={option.logo}\n sx={{\n [`.${avatarClasses.fallback}`]: {\n visibility: \"hidden\",\n },\n background: \"transparent\",\n height: avatarImageSizeMedium,\n width: avatarImageSizeMedium,\n }}\n />\n </Box>\n <Box>\n {option.name}\n <Subordinate>{option.description}</Subordinate>\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingTop: odysseyDesignTokens.Spacing1,\n }}\n >\n {typeof option.usersCount === \"number\" && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingRight: odysseyDesignTokens.Spacing4,\n }}\n >\n <UserIcon />\n {option.usersCount}\n </Box>\n )}\n {typeof option.appsCount === \"number\" && (\n <Box\n sx={{\n display: \"flex\",\n flexDirection: \"row\",\n paddingRight: odysseyDesignTokens.Spacing4,\n }}\n >\n <GridIcon />\n {option.appsCount}\n </Box>\n )}\n {typeof option.groupPushMappingsCount === \"number\" && (\n <Box sx={{ display: \"flex\", flexDirection: \"row\" }}>\n <GroupIcon />\n {option.groupPushMappingsCount}\n </Box>\n )}\n </Box>\n </Box>\n </Box>\n </li>\n );\n },\n [odysseyDesignTokens],\n );\n\n const renderTags = useCallback(\n (values: OptionType[], getTagProps: AutocompleteGetTagProps) =>\n values.map((option, index) => {\n const { key, onDelete } = getTagProps({ index });\n return (\n <Box\n key={key}\n sx={{\n margin: odysseyDesignTokens.Spacing1,\n }}\n >\n <Tag\n icon={\n <MuiAvatar\n alt={option.name}\n src={option.logo}\n sx={{\n [`.${avatarClasses.fallback}`]: {\n visibility: \"hidden\",\n },\n background: \"transparent\",\n height: avatarImageSizeSmall,\n width: avatarImageSizeSmall,\n }}\n />\n }\n label={option.name}\n onRemove={onDelete}\n />\n </Box>\n );\n }),\n [odysseyDesignTokens],\n );\n\n const renderInput = useCallback(\n ({\n InputLabelProps,\n InputProps,\n ...params\n }: AutocompleteRenderInputParams) => (\n <Field\n fieldType=\"single\"\n hasVisibleLabel\n // @ts-expect-error The `htmlFor` prop doesn't exist `HTMLAttributes` for a `<label>` element even though it exists in JavaScript.\n // eslint-disable-next-line @typescript-eslint/no-unsafe-assignment\n id={InputLabelProps.htmlFor}\n hint={hint}\n label={label}\n isOptional={isOptional}\n renderFieldComponent={({ ariaDescribedBy, id }) => (\n <InputBase\n {...params}\n {...InputProps}\n aria-describedby={ariaDescribedBy}\n id={id}\n required={!isOptional}\n />\n )}\n />\n ),\n [hint, isOptional, label],\n );\n\n return (\n <MuiAutocomplete\n // AutoComplete is wrapped in a div within MUI which does not get the disabled attr. So this aria-disabled gets set in the div\n aria-disabled={isDisabled}\n data-se={testId}\n disabled={isDisabled}\n filterSelectedOptions={true}\n freeSolo={isCustomValueAllowed}\n getOptionLabel={getOptionLabel}\n isOptionEqualToValue={isOptionEqualToValue}\n loading={isLoading}\n multiple={hasMultipleChoices}\n onChange={onChange}\n onInputChange={onInputChange}\n options={options}\n readOnly={isReadOnly}\n renderInput={renderInput}\n renderOption={renderOption}\n renderTags={renderTags}\n value={value}\n />\n );\n};\n\nconst MemoizedGroupPicker = memo(GroupPicker) as typeof GroupPicker;\n\nexport { MemoizedGroupPicker as GroupPicker };\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -7,8 +7,7 @@ exports.useContrastModeContext = exports.useContrastMode = exports.normalizeRgba
|
|
|
7
7
|
var _react = require("react");
|
|
8
8
|
var Tokens = _interopRequireWildcard(require("@okta/odyssey-design-tokens"));
|
|
9
9
|
var _hexToRgb = require("./hexToRgb.cjs");
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
11
|
/*!
|
|
13
12
|
* Copyright (c) 2023-present, Okta, Inc. and/or its affiliates. All rights reserved.
|
|
14
13
|
* The Okta software accompanied by this notice is provided pursuant to the Apache License, Version 2.0 (the "License.")
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useContrastMode.cjs","names":["_react","require","Tokens","_interopRequireWildcard","_hexToRgb","
|
|
1
|
+
{"version":3,"file":"useContrastMode.cjs","names":["_react","require","Tokens","_interopRequireWildcard","_hexToRgb","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor","ContrastModeContext","exports","createContext","contrastMode","defaultContrast","useContrastModeContext","useContext","hueNeutral50Rgb","hexToRgb","HueNeutral50","asFormattedString","isTransparentColor","color","normalizeRgbaToRgb","rgba","replace","getElementComputedBackgroundColor","element","window","getComputedStyle","backgroundColor","normalizeBackgroundColor","bgColor","test","normalizedColor","defaultParentBackgroundColor","getBackgroundColor","parentElement","useContrastMode","explicitContrastMode","contrastContainerRef","useRef","existingContrastMode","parentBackgroundColor","setParentBackgroundColor","useState","setContrastMode","updateBackgroundColor","useCallback","newBgColor","current","useEffect","observer","MutationObserver","observe","document","querySelector","attributes","attributeFilter","head","childList","subtree","onTransitionEnd","event","propertyName","addEventListener","removeEventListener","disconnect"],"sources":["../../src/useContrastMode.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 {\n createContext,\n useCallback,\n useContext,\n useEffect,\n useRef,\n useState,\n} from \"react\";\nimport * as Tokens from \"@okta/odyssey-design-tokens\";\n\nimport { hexToRgb } from \"./hexToRgb.js\";\n\nexport type ContrastMode = \"lowContrast\" | \"highContrast\";\nexport type ContrastModeContextType = {\n contrastMode: ContrastMode;\n};\n\nexport const ContrastModeContext = createContext<ContrastModeContextType>({\n contrastMode: \"lowContrast\",\n});\n\nexport const defaultContrast = \"lowContrast\";\n\nexport const useContrastModeContext = () => useContext(ContrastModeContext);\n\nexport const hueNeutral50Rgb = hexToRgb(Tokens.HueNeutral50).asFormattedString;\n\nexport const isTransparentColor = (color: string) =>\n color === \"rgba(0, 0, 0, 0)\" || color === \"transparent\";\n\nexport const normalizeRgbaToRgb = (rgba: string) =>\n rgba.replace(/rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*[\\d.]+\\)/, \"rgb($1, $2, $3)\");\n\nexport const getElementComputedBackgroundColor = (\n element: HTMLElement,\n): string => window.getComputedStyle(element).backgroundColor;\n\nexport const normalizeBackgroundColor = (bgColor: string): string => {\n if (/rgba\\((\\d+),\\s*(\\d+),\\s*(\\d+),\\s*[\\d.]+\\)/.test(bgColor)) {\n const normalizedColor = normalizeRgbaToRgb(bgColor);\n return normalizedColor === hueNeutral50Rgb\n ? Tokens.HueNeutral50\n : normalizedColor;\n }\n\n return bgColor === hueNeutral50Rgb ? Tokens.HueNeutral50 : bgColor;\n};\n\nexport const defaultParentBackgroundColor = \"#ffffff\";\n\n/**\n * Determines the effective background color of an element.\n *\n * @param element - The HTML element to check.\n * @returns The effective background color. Returns defaultParentBackgroundColor if no non-transparent background is found.\n *\n * Note:\n * - Low contrast mode is used for white background (defaultParentBackgroundColor or HueNeutralWhite).\n * - High contrast mode is used for gray background (#f4f4f4 or HueNeutral50).\n */\nexport const getBackgroundColor = (element: HTMLElement | null): string => {\n while (element) {\n const bgColor = getElementComputedBackgroundColor(element);\n if (!isTransparentColor(bgColor)) {\n return normalizeBackgroundColor(bgColor);\n }\n element = element.parentElement;\n }\n return defaultParentBackgroundColor; // Default to white/low contrast if no background color is found\n};\n\ntype UseContrastModeProps = {\n contrastMode?: ContrastMode;\n};\n\nexport const useContrastMode = ({\n contrastMode: explicitContrastMode,\n}: UseContrastModeProps) => {\n const contrastContainerRef = useRef<HTMLDivElement>(null);\n const { contrastMode: existingContrastMode } = useContrastModeContext();\n\n const [parentBackgroundColor, setParentBackgroundColor] = useState(\n defaultParentBackgroundColor,\n );\n const [contrastMode, setContrastMode] = useState<ContrastMode>(\n () => explicitContrastMode || existingContrastMode,\n );\n\n const updateBackgroundColor = useCallback(() => {\n const newBgColor = getBackgroundColor(contrastContainerRef.current);\n setParentBackgroundColor(newBgColor);\n\n if (!explicitContrastMode) {\n setContrastMode(\n newBgColor === Tokens.HueNeutral50 ? \"highContrast\" : \"lowContrast\",\n );\n }\n }, [explicitContrastMode]);\n\n useEffect(() => {\n const observer = new MutationObserver(updateBackgroundColor);\n observer.observe(document.querySelector(\"html\") as HTMLHtmlElement, {\n attributes: true,\n attributeFilter: [\"class\", \"style\"],\n });\n observer.observe(document.head, {\n childList: true,\n subtree: true,\n });\n\n const onTransitionEnd = (event: TransitionEvent) => {\n if (event.propertyName === \"background-color\") {\n updateBackgroundColor();\n }\n };\n\n document.addEventListener(\"transitionend\", onTransitionEnd);\n updateBackgroundColor();\n\n return () => {\n document.removeEventListener(\"transitionend\", onTransitionEnd);\n observer.disconnect();\n };\n }, [updateBackgroundColor]);\n\n return {\n contrastContainerRef,\n contrastMode,\n parentBackgroundColor,\n };\n};\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -15,5 +15,5 @@ exports.default = void 0;
|
|
|
15
15
|
*
|
|
16
16
|
* See the License for the specific language governing permissions and limitations under the License.
|
|
17
17
|
*/
|
|
18
|
-
var _default = exports.default = "
|
|
18
|
+
var _default = exports.default = "2-0-0";
|
|
19
19
|
//# sourceMappingURL=odysseyWebComponentVersion.generated.cjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"odysseyWebComponentVersion.generated.cjs","names":["_default","exports","default"],"sources":["../../../src/web-component/odysseyWebComponentVersion.generated.ts"],"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\n/**\n * DO NOT UPDATE THIS FILE MANUALLY\n * This file is managed by scripts/updateWebComponentVersion.ts and any changes made will be overwritten\n * This script only needs to be run during release, and shouldn't be used during local development.\n */\nexport default \"
|
|
1
|
+
{"version":3,"file":"odysseyWebComponentVersion.generated.cjs","names":["_default","exports","default"],"sources":["../../../src/web-component/odysseyWebComponentVersion.generated.ts"],"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\n/**\n * DO NOT UPDATE THIS FILE MANUALLY\n * This file is managed by scripts/updateWebComponentVersion.ts and any changes made will be overwritten\n * This script only needs to be run during release, and shouldn't be used during local development.\n */\nexport default \"2-0-0\";\n"],"mappings":";;;;;;AAAA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAVA,IAAAA,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAiBe,OAAO","ignoreList":[]}
|
|
@@ -7,8 +7,7 @@ exports.webComponentDataAttributeName = exports.versionedWebComponentName = expo
|
|
|
7
7
|
var _odysseyWebComponentVersionGenerated = _interopRequireDefault(require("./odysseyWebComponentVersion.generated.cjs"));
|
|
8
8
|
var _createReactRootElements = require("./createReactRootElements.cjs");
|
|
9
9
|
function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
|
|
10
|
-
function
|
|
11
|
-
function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
|
|
12
11
|
function __transformExtension(filepath, extMapping) {
|
|
13
12
|
if (!filepath.startsWith('./') && !filepath.startsWith('../')) {
|
|
14
13
|
return filepath;
|