material-react-table 0.26.6 → 0.27.0

Sign up to get free protection for your applications and to get access to all the features.
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/column.utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyRowGrabHandle.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterBetweenInclusive: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterGreaterThanOrEqualTo: string;\n filterLessThan: string;\n filterLessThanOrEqualTo: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n move: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterBetweenInclusive: 'Between Inclusive',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',\n filterLessThan: 'Less Than',\n filterLessThanOrEqualTo: 'Less Than Or Equal To',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n move: 'Move',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Box, Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n (\n [\n {\n option: 'fuzzy',\n symbol: '≈',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n symbol: '*',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n symbol: 'a',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n symbol: 'z',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n symbol: '=',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n symbol: '≠',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n symbol: '⇿',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'betweenInclusive',\n symbol: '⬌',\n label: localization.filterBetweenInclusive,\n divider: true,\n },\n {\n option: 'greaterThan',\n symbol: '>',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'greaterThanOrEqualTo',\n symbol: '≥',\n label: localization.filterGreaterThanOrEqualTo,\n divider: false,\n },\n {\n option: 'lessThan',\n symbol: '<',\n label: localization.filterLessThan,\n divider: false,\n },\n {\n option: 'lessThanOrEqualTo',\n symbol: '≤',\n label: localization.filterLessThanOrEqualTo,\n divider: true,\n },\n {\n option: 'empty',\n symbol: '∅',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n symbol: '!∅',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ] as Array<{\n divider: boolean;\n fn: Function;\n label: string;\n option: MRT_FilterOption;\n symbol?: string;\n }>\n ).filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ),\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider, symbol }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={{\n py: '6px',\n my: 0,\n alignItems: 'center',\n display: 'flex',\n gap: '2ch',\n }}\n value={option}\n >\n <Box sx={{ fontSize: '1.25rem', width: '2ch' }}>{symbol}</Box>\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n iconButtonProps?: IconButtonProps;\n onDragStart: DragEventHandler<HTMLButtonElement>;\n onDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n iconButtonProps,\n onDragEnd,\n onDragStart,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.move}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n ...iconButtonProps?.sx,\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nconst contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nconst startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nconst endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nconst equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nconst notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nconst greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) > +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nconst greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);\n\ngreaterThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) < +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nconst lessThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || lessThan(row, id, filterValue);\n\nlessThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nconst betweenInclusive = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThanOrEqualTo(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThanOrEqualTo(row, id, filterValues[1]));\n\nbetweenInclusive.autoRemove = (val: any) => !val;\n\nconst empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nconst notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n betweenInclusive,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n greaterThanOrEqualTo,\n lessThan,\n lessThanOrEqualTo,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_DisplayColumnIds,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n draggedColumn: MRT_Column<TData>,\n targetColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (draggedColumn.getCanPin()) {\n draggedColumn.pin(targetColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(targetColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n props.positionExpandColumn === 'first' &&\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n props.enableRowSelection && 'mrt-row-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as MRT_DisplayColumnIds[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n props.positionExpandColumn === 'last' &&\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../column.utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n enabledColumnFilterOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-row-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing &&\n column.getCanResize() && [\n <MenuItem\n disabled={!columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const checkboxProps = !row\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={\n !row\n ? selectAllMode === 'all'\n ? table.getToggleAllRowsSelectedHandler()\n : table.getToggleAllPageRowsSelectedHandler()\n : row.getToggleSelectedHandler()\n }\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.5rem' : '2rem',\n width: density === 'compact' ? '1.5rem' : '2rem',\n m: '-1re.m',\n ...(checkboxProps?.sx instanceof Function\n ? checkboxProps.sx(theme)\n : (checkboxProps?.sx as any)),\n })}\n />\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={(theme) => ({\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...(tablePaginationProps?.sx instanceof Function\n ? tablePaginationProps.sx(theme)\n : (tablePaginationProps?.sx as any)),\n })}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={(theme) => ({\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...(alertProps?.sx instanceof Function\n ? alertProps.sx(theme)\n : (alertProps?.sx as any)),\n })}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n alignItems: 'flex-start',\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile || !!renderToolbarTopCustomActions || showGlobalFilter;\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner = isMobile || !!renderToolbarBottomCustomActions;\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={(theme) => ({\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n enabledColumnFilterOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n let value =\n textFieldProps.type === 'date'\n ? new Date(event.target.value)\n : event.target.value;\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string | Date]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={(theme) => ({\n m: '-0.25rem',\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...(textFieldProps?.sx instanceof Function\n ? textFieldProps.sx(theme)\n : (textFieldProps?.sx as any)),\n })}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n tableHeadCellRef: RefObject<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = ({\n column,\n table,\n tableHeadCellRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n muiTableHeadCellDragHandleProps,\n onColumnDrop,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnDef } = column;\n const { currentHoveredColumn, currentDraggingColumn, columnOrder } =\n getState();\n\n const mIconButtonProps =\n muiTableHeadCellDragHandleProps instanceof Function\n ? muiTableHeadCellDragHandleProps({ column, table })\n : muiTableHeadCellDragHandleProps;\n\n const mcIconButtonProps =\n columnDef.muiTableHeadCellDragHandleProps instanceof Function\n ? columnDef.muiTableHeadCellDragHandleProps({ column, table })\n : columnDef.muiTableHeadCellDragHandleProps;\n\n const iconButtonProps = {\n ...mIconButtonProps,\n ...mcIconButtonProps,\n };\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onColumnDrop?.({\n event,\n draggedColumn: column,\n targetColumn: currentHoveredColumn,\n });\n if (\n enableColumnOrdering &&\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnDragging,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setCurrentHoveredColumn,\n } = table;\n const { density, currentDraggingColumn, currentHoveredColumn } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const tableHeadCellRef = React.useRef<HTMLTableCellElement>(null);\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n tableCellProps?.align === 'right'\n ? 'flex-end'\n : columnDefType === 'group' ||\n tableCellProps?.align === 'center'\n ? 'center'\n : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n m: tableCellProps?.align === 'center' ? 'auto' : undefined,\n pl:\n tableCellProps?.align === 'center' && column.getCanSort()\n ? '1rem'\n : undefined,\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n {columnDefType !== 'group' && (\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {((enableColumnDragging &&\n columnDef.enableColumnDragging !== false) ||\n (enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n column={column}\n table={table}\n tableHeadCellRef={tableHeadCellRef}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n )}\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={(theme) => ({\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...(buttonProps?.sx instanceof Function\n ? buttonProps.sx(theme)\n : (buttonProps?.sx as any)),\n })}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\n\ninterface Props {\n cell: MRT_Cell;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRowGrabHandle: FC<Props> = ({\n cell,\n rowRef,\n table,\n}) => {\n const {\n options: { muiTableBodyRowDragHandleProps, onRowDrop },\n } = table;\n\n const iconButtonProps =\n muiTableBodyRowDragHandleProps instanceof Function\n ? muiTableBodyRowDragHandleProps({ row: cell.row, table })\n : muiTableBodyRowDragHandleProps;\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n e.dataTransfer.setDragImage(rowRef.current as HTMLElement, 0, 0);\n table.setCurrentDraggingRow(cell.row as any);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onRowDrop?.({\n event,\n draggedRow: table.getState().currentDraggingRow as any,\n targetRow: table.getState().currentHoveredRow as any,\n });\n table.setCurrentDraggingRow(null);\n table.setCurrentHoveredRow(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { DragEvent, FC, MouseEvent, RefObject, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n rowRef,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderBottom:\n row.index === table.getRowModel().rows.length - 1\n ? draggingBorder\n : undefined,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-row-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : column.id === 'mrt-row-drag' ? (\n <MRT_TableBodyRowGrabHandle\n cell={cell}\n rowRef={rowRef}\n table={table}\n />\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={(theme) => ({\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { DragEvent, FC, useRef } from 'react';\nimport { darken, lighten, TableRow, useTheme } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const theme = useTheme();\n const {\n getIsSomeColumnsPinned,\n getState,\n options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },\n setCurrentHoveredRow,\n } = table;\n const { currentDraggingRow, currentHoveredRow } = getState();\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableRowOrdering && currentDraggingRow) {\n setCurrentHoveredRow(row);\n }\n };\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n\n const draggingBorder =\n currentDraggingRow?.id === row.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredRow?.id === row.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n border: draggingBorder,\n }\n : undefined;\n\n return (\n <>\n <TableRow\n onDragEnter={handleDragEnter}\n hover\n selected={row.getIsSelected()}\n ref={rowRef}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n opacity:\n currentDraggingRow?.id === row.id ||\n currentHoveredRow?.id === row.id\n ? 0.5\n : 1,\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx instanceof Function\n ? tableRowProps.sx(theme)\n : (tableRowProps?.sx as any)),\n ...draggingBorders,\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n rowRef={rowRef}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={(theme) => ({\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...(tableProps?.sx instanceof Function\n ? tableProps.sx(theme)\n : (tableProps?.sx as any)),\n })}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={(theme) => ({\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...(tableContainerProps?.sx instanceof Function\n ? tableContainerProps.sx(theme)\n : (tableContainerProps?.sx as any)),\n })}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../column.utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport type {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n MaterialReactTableProps,\n} from '..';\n\nconst defaultDisplayColumnDefOptions = {\n columnDefType: 'display',\n enableClickToCopy: false,\n enableColumnActions: false,\n enableColumnDragging: false,\n enableColumnFilter: false,\n enableColumnOrdering: false,\n enableEditing: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n} as Partial<MRT_ColumnDef>;\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentDraggingColumn ?? null,\n );\n const [currentDraggingRow, setCurrentDraggingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentDraggingRow ?? null);\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentEditingRow ?? null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentHoveredColumn ?? null,\n );\n const [currentHoveredRow, setCurrentHoveredRow] =\n useState<MRT_Row<TData> | null>(initialState.currentHoveredRow ?? null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-drag') && {\n header: props.localization?.move,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-drag'],\n id: 'mrt-row-drag',\n },\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n header: props.localization?.actions,\n size: 70,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-actions'],\n id: 'mrt-row-actions',\n },\n columnOrder.includes('mrt-row-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n header: props.localization?.expand,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-expand'],\n id: 'mrt-row-expand',\n },\n columnOrder.includes('mrt-row-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n header: props.localization?.select,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-select'],\n id: 'mrt-row-select',\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-numbers'],\n id: 'mrt-row-numbers',\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.displayColumnDefOptions,\n props.editingMode,\n props.enableColumnDragging,\n props.enableColumnOrdering,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowDragging,\n props.enableRowNumbers,\n props.enableRowOrdering,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentDraggingRow,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n currentHoveredRow,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentDraggingRow:\n props.onCurrentDraggingRowChange ?? setCurrentDraggingRow,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setCurrentHoveredRow:\n props.onCurrentHoveredRowChange ?? setCurrentHoveredRow,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n useEffect(() => props?.onTableInstanceChange?.(table as any), [table]);\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n DragEvent,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport type {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport type {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport type { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentDraggingRow: MRT_Row<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n currentHoveredRow: MRT_Row<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: string & keyof TData;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\nexport type MRT_DisplayColumnIds =\n | 'mrt-row-drag'\n | 'mrt-row-actions'\n | 'mrt-row-expand'\n | 'mrt-row-select'\n | 'mrt-row-numbers';\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n Omit<\n Partial<TableOptions<TData>>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n > & {\n displayColumnDefOptions?: Partial<{\n [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;\n }>;\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowDragging?: boolean;\n enableRowNumbers?: boolean;\n enableRowOrdering?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledColumnFilterOptions?: (MRT_FilterOption | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n expandRowsFn?: (dataRow: TData) => TData[];\n icons?: Partial<MRT_Icons>;\n initialState?: Partial<MRT_TableState<TData>>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onColumnDrop?: ({\n event,\n draggedColumn,\n targetColumn,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedColumn: MRT_Column<TData>;\n targetColumn: MRT_Column<TData> | null;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onDensityChange?: OnChangeFn<boolean>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onRowDrop?: ({\n event,\n draggedRow,\n targetRow,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedRow: MRT_Row<TData>;\n targetRow: MRT_Row<TData> | null;\n }) => void;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n onTableInstanceChange?: (table: MRT_TableInstance<TData>) => void;\n positionActionsColumn?: 'first' | 'last';\n positionExpandColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n state?: Partial<MRT_TableState<TData>>;\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = true,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = true,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionExpandColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionExpandColumn={positionExpandColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterBetweenInclusive","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterGreaterThanOrEqualTo","filterLessThan","filterLessThanOrEqualTo","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","move","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","theme","getIsExpanded","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","symbol","label","divider","filter","filterType","undefined","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","py","my","alignItems","display","gap","value","Box","fontSize","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","onDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","between","filterValues","betweenInclusive","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","draggedColumn","targetColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","enableRowDragging","enableRowOrdering","positionActionsColumn","enableRowActions","enableEditing","editingMode","positionExpandColumn","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","justifyContent","outline","palette","primary","main","pl","depth","flexWrap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonMenuItemStyles","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleSelectedHandler","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","muiSearchTextFieldProps","globalFilter","showGlobalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","textFieldProps","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","top","LinearProgress","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","zIndex","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","left","right","AlertTitle","children","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","setShowGlobalFilter","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_FilterTextField","inputIndex","_column$getFilterValu2","type","Date","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellGrabHandle","tableHeadCellRef","muiTableHeadCellDragHandleProps","onColumnDrop","setCurrentDraggingColumn","currentDraggingColumn","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCell","useTheme","enableColumnActions","enableColumnDragging","enableMultiSort","muiTableHeadCellProps","tableCellProps","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","headerElement","Header","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyRowGrabHandle","rowRef","muiTableBodyRowDragHandleProps","onRowDrop","setCurrentDraggingRow","draggedRow","currentDraggingRow","targetRow","currentHoveredRow","setCurrentHoveredRow","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","borderBottom","getRowModel","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","defaultDisplayColumnDefOptions","enableColumnFilter","enableResizing","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current7","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","displayColumnDefOptions","_props$displayColumnD","_props$localization2","_props$displayColumnD2","enableExpandAll","_props$localization3","_props$displayColumnD3","enableSelectAll","_props$localization4","_props$displayColumnD4","_props$localization5","_props$localization6","_props$displayColumnD5","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentDraggingRowChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onCurrentHoveredRowChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","onTableInstanceChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.cjs.production.min.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/column.utils.ts","../src/menus/MRT_ShowHideColumnsMenuItems.tsx","../src/menus/MRT_ShowHideColumnsMenu.tsx","../src/menus/MRT_ColumnActionMenu.tsx","../src/menus/MRT_RowActionMenu.tsx","../src/buttons/MRT_EditActionButtons.tsx","../src/buttons/MRT_ToggleRowActionMenuButton.tsx","../src/inputs/MRT_SelectCheckbox.tsx","../src/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/buttons/MRT_FullScreenToggleButton.tsx","../src/buttons/MRT_ShowHideColumnsButton.tsx","../src/buttons/MRT_ToggleDensePaddingButton.tsx","../src/buttons/MRT_ToggleFiltersButton.tsx","../src/buttons/MRT_ToggleGlobalFilterButton.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellGrabHandle.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyRowGrabHandle.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/body/MRT_TableBody.tsx","../src/footer/MRT_TableFooterCell.tsx","../src/footer/MRT_TableFooterRow.tsx","../src/footer/MRT_TableFooter.tsx","../src/table/MRT_Table.tsx","../src/table/MRT_TableContainer.tsx","../src/table/MRT_TablePaper.tsx","../src/table/MRT_TableRoot.tsx","../src/MaterialReactTable.tsx"],"sourcesContent":["export interface MRT_Localization {\n actions: string;\n and: string;\n cancel: string;\n changeFilterMode: string;\n changeSearchMode: string;\n clearFilter: string;\n clearSearch: string;\n clearSort: string;\n clickToCopy: string;\n columnActions: string;\n copiedToClipboard: string;\n edit: string;\n expand: string;\n expandAll: string;\n filterBetween: string;\n filterBetweenInclusive: string;\n filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterGreaterThanOrEqualTo: string;\n filterLessThan: string;\n filterLessThanOrEqualTo: string;\n filterMode: string;\n filterNotEmpty: string;\n filterNotEquals: string;\n filterStartsWith: string;\n filteringByColumn: string;\n grab: string;\n groupByColumn: string;\n groupedBy: string;\n hideAll: string;\n hideColumn: string;\n max: string;\n min: string;\n move: string;\n pinToLeft: string;\n pinToRight: string;\n resetColumnSize: string;\n resetOrder: string;\n rowActions: string;\n rowNumber: string;\n rowNumbers: string;\n save: string;\n search: string;\n select: string;\n selectedCountOfRowCountRowsSelected: string;\n showAll: string;\n showAllColumns: string;\n showHideColumns: string;\n showHideFilters: string;\n showHideSearch: string;\n sortByColumnAsc: string;\n sortByColumnDesc: string;\n sortedByColumnAsc: string;\n sortedByColumnDesc: string;\n thenBy: string;\n toggleDensity: string;\n toggleFullScreen: string;\n toggleSelectAll: string;\n toggleSelectRow: string;\n toggleVisibility: string;\n ungroupByColumn: string;\n unpin: string;\n unpinAll: string;\n unsorted: string;\n}\n\nexport const MRT_DefaultLocalization_EN: MRT_Localization = {\n actions: 'Actions',\n and: 'and',\n cancel: 'Cancel',\n changeFilterMode: 'Change filter mode',\n changeSearchMode: 'Change search mode',\n clearFilter: 'Clear filter',\n clearSearch: 'Clear search',\n clearSort: 'Clear sort',\n clickToCopy: 'Click to copy',\n columnActions: 'Column Actions',\n copiedToClipboard: 'Copied to clipboard',\n edit: 'Edit',\n expand: 'Expand',\n expandAll: 'Expand all',\n filterBetween: 'Between',\n filterBetweenInclusive: 'Between Inclusive',\n filterByColumn: 'Filter by {column}',\n filterContains: 'Contains',\n filterEmpty: 'Empty',\n filterEndsWith: 'Ends With',\n filterEquals: 'Equals',\n filterFuzzy: 'Fuzzy',\n filterGreaterThan: 'Greater Than',\n filterGreaterThanOrEqualTo: 'Greater Than Or Equal To',\n filterLessThan: 'Less Than',\n filterLessThanOrEqualTo: 'Less Than Or Equal To',\n filterMode: 'Filter Mode: {filterType}',\n filterNotEmpty: 'Not Empty',\n filterNotEquals: 'Not Equals',\n filterStartsWith: 'Starts With',\n filteringByColumn: 'Filtering by {column} - {filterType} {filterValue}',\n grab: 'Grab',\n groupByColumn: 'Group by {column}',\n groupedBy: 'Grouped by ',\n hideAll: 'Hide all',\n hideColumn: 'Hide {column} column',\n max: 'Max',\n min: 'Min',\n move: 'Move',\n pinToLeft: 'Pin to left',\n pinToRight: 'Pin to right',\n resetColumnSize: 'Reset column size',\n resetOrder: 'Reset order',\n rowActions: 'Row Actions',\n rowNumber: '#',\n rowNumbers: 'Row Numbers',\n save: 'Save',\n search: 'Search',\n selectedCountOfRowCountRowsSelected:\n '{selectedCount} of {rowCount} row(s) selected',\n select: 'Select',\n showAll: 'Show all',\n showAllColumns: 'Show all columns',\n showHideColumns: 'Show/Hide columns',\n showHideFilters: 'Show/Hide filters',\n showHideSearch: 'Show/Hide search',\n sortByColumnAsc: 'Sort by {column} ascending',\n sortByColumnDesc: 'Sort by {column} descending',\n sortedByColumnAsc: 'Sorted by {column} ascending',\n sortedByColumnDesc: 'Sorted by {column} descending',\n thenBy: ', then by ',\n toggleDensity: 'Toggle density',\n toggleFullScreen: 'Toggle full screen',\n toggleSelectAll: 'Toggle select all',\n toggleSelectRow: 'Toggle select row',\n toggleVisibility: 'Toggle visibility',\n ungroupByColumn: 'Ungroup by {column}',\n unpin: 'Unpin',\n unpinAll: 'Unpin all',\n unsorted: 'Unsorted',\n};\n","import {\n ArrowRight,\n Cancel,\n CheckBox,\n ClearAll,\n Close,\n DensityLarge,\n DensityMedium,\n DensitySmall,\n DragHandle,\n DynamicFeed,\n Edit,\n ExpandLess,\n ExpandMore,\n FilterAlt,\n FilterAltOff,\n FilterList,\n FilterListOff,\n Fullscreen,\n FullscreenExit,\n KeyboardDoubleArrowDown,\n MoreHoriz,\n MoreVert,\n PushPin,\n RestartAlt,\n Save,\n Search,\n SearchOff,\n Sort,\n ViewColumn,\n VisibilityOff,\n} from '@mui/icons-material';\n\nexport interface MRT_Icons {\n ArrowRightIcon: any;\n CancelIcon: any;\n CheckBoxIcon: any;\n ClearAllIcon: any;\n CloseIcon: any;\n DensityLargeIcon: any;\n DensityMediumIcon: any;\n DensitySmallIcon: any;\n KeyboardDoubleArrowDownIcon: any;\n DragHandleIcon: any;\n DynamicFeedIcon: any;\n EditIcon: any;\n ExpandLessIcon: any;\n ExpandMoreIcon: any;\n FilterAltIcon: any;\n FilterAltOffIcon: any;\n FilterListIcon: any;\n FilterListOffIcon: any;\n FullscreenExitIcon: any;\n FullscreenIcon: any;\n MoreHorizIcon: any;\n MoreVertIcon: any;\n PushPinIcon: any;\n RestartAltIcon: any;\n SaveIcon: any;\n SearchIcon: any;\n SearchOffIcon: any;\n SortIcon: any;\n ViewColumnIcon: any;\n VisibilityOffIcon: any;\n}\n\nexport const MRT_Default_Icons: MRT_Icons = {\n ArrowRightIcon: ArrowRight,\n CancelIcon: Cancel,\n CheckBoxIcon: CheckBox,\n ClearAllIcon: ClearAll,\n CloseIcon: Close,\n DensityLargeIcon: DensityLarge,\n DensityMediumIcon: DensityMedium,\n DensitySmallIcon: DensitySmall,\n DragHandleIcon: DragHandle,\n DynamicFeedIcon: DynamicFeed,\n EditIcon: Edit,\n ExpandLessIcon: ExpandLess,\n ExpandMoreIcon: ExpandMore,\n FilterAltIcon: FilterAlt,\n FilterAltOffIcon: FilterAltOff,\n FilterListIcon: FilterList,\n FilterListOffIcon: FilterListOff,\n FullscreenExitIcon: FullscreenExit,\n FullscreenIcon: Fullscreen,\n KeyboardDoubleArrowDownIcon: KeyboardDoubleArrowDown,\n MoreHorizIcon: MoreHoriz,\n MoreVertIcon: MoreVert,\n PushPinIcon: PushPin,\n RestartAltIcon: RestartAlt,\n SaveIcon: Save,\n SearchIcon: Search,\n SearchOffIcon: SearchOff,\n SortIcon: Sort,\n ViewColumnIcon: ViewColumn,\n VisibilityOffIcon: VisibilityOff,\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ table }) => {\n const {\n getIsAllRowsExpanded,\n getIsSomeRowsExpanded,\n getCanSomeRowsExpand,\n getState,\n options: {\n icons: { KeyboardDoubleArrowDownIcon },\n localization,\n muiExpandAllButtonProps,\n renderDetailPanel,\n },\n toggleAllRowsExpanded,\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ table })\n : muiExpandAllButtonProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expandAll}\n >\n <span>\n <IconButton\n aria-label={localization.expandAll}\n disabled={!getCanSomeRowsExpand() && !renderDetailPanel}\n onClick={() => toggleAllRowsExpanded(!getIsAllRowsExpanded())}\n {...iconButtonProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n mt: density !== 'compact' ? '-0.25rem' : undefined,\n ...iconButtonProps?.sx,\n }}\n >\n <KeyboardDoubleArrowDownIcon\n style={{\n transform: `rotate(${\n getIsAllRowsExpanded()\n ? -180\n : getIsSomeRowsExpanded()\n ? -90\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = table;\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ table, row })\n : muiExpandButtonProps;\n\n const handleToggleExpand = () => {\n row.toggleExpanded();\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.expand}\n >\n <span>\n <IconButton\n aria-label={localization.expand}\n disabled={!row.getCanExpand() && !renderDetailPanel}\n onClick={handleToggleExpand}\n {...iconButtonProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <ExpandMoreIcon\n style={{\n transform: `rotate(${\n !row.getCanExpand() && !renderDetailPanel\n ? -90\n : row.getIsExpanded()\n ? -180\n : 0\n }deg)`,\n transition: 'transform 0.2s',\n }}\n />\n </IconButton>\n </span>\n </Tooltip>\n );\n};\n","import React, { FC, useMemo } from 'react';\nimport { Box, Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n columnFilterModeOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = table;\n const { currentFilterFns, currentGlobalFilterFn, density } = getState();\n const { column } = header ?? {};\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;\n\n const filterOptions = useMemo(\n () =>\n (\n [\n {\n option: 'fuzzy',\n symbol: '≈',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n symbol: '*',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n symbol: 'a',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n symbol: 'z',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n symbol: '=',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n symbol: '≠',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n symbol: '⇿',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'betweenInclusive',\n symbol: '⬌',\n label: localization.filterBetweenInclusive,\n divider: true,\n },\n {\n option: 'greaterThan',\n symbol: '>',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'greaterThanOrEqualTo',\n symbol: '≥',\n label: localization.filterGreaterThanOrEqualTo,\n divider: false,\n },\n {\n option: 'lessThan',\n symbol: '<',\n label: localization.filterLessThan,\n divider: false,\n },\n {\n option: 'lessThanOrEqualTo',\n symbol: '≤',\n label: localization.filterLessThanOrEqualTo,\n divider: true,\n },\n {\n option: 'empty',\n symbol: '∅',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n symbol: '!∅',\n label: localization.filterNotEmpty,\n divider: false,\n },\n ] as Array<{\n divider: boolean;\n fn: Function;\n label: string;\n option: MRT_FilterOption;\n symbol?: string;\n }>\n ).filter((filterType) =>\n columnDef\n ? allowedColumnFilterOptions === undefined ||\n allowedColumnFilterOptions?.includes(filterType.option)\n : (!enabledGlobalFilterOptions ||\n enabledGlobalFilterOptions.includes(filterType.option)) &&\n ['fuzzy', 'contains'].includes(filterType.option),\n ),\n [],\n );\n\n const handleSelectFilterType = (option: MRT_FilterOption) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: any }) => ({\n ...prev,\n [header.id]: option,\n }));\n if (['empty', 'notEmpty'].includes(option)) {\n column.setFilterValue(' ');\n } else if (option === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(option);\n }\n setAnchorEl(null);\n onSelect?.();\n };\n\n const filterOption = !!header\n ? currentFilterFns[header.id]\n : currentGlobalFilterFn;\n\n return (\n <Menu\n anchorEl={anchorEl}\n anchorOrigin={{ vertical: 'center', horizontal: 'right' }}\n onClose={() => setAnchorEl(null)}\n open={!!anchorEl}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {filterOptions.map(({ option, label, divider, symbol }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={{\n py: '6px',\n my: 0,\n alignItems: 'center',\n display: 'flex',\n gap: '2ch',\n }}\n value={option}\n >\n <Box sx={{ fontSize: '1.25rem', width: '2ch' }}>{symbol}</Box>\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, table }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = table;\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n };\n\n return (\n <Box sx={{ minWidth: '70px', textAlign: 'center' }}>\n {column.getIsPinned() ? (\n <Tooltip arrow title={localization.unpin}>\n <IconButton onClick={() => handlePinColumn(false)} size=\"small\">\n <PushPinIcon />\n </IconButton>\n </Tooltip>\n ) : (\n <>\n <Tooltip arrow title={localization.pinToLeft}>\n <IconButton onClick={() => handlePinColumn('left')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.pinToRight}>\n <IconButton onClick={() => handlePinColumn('right')} size=\"small\">\n <PushPinIcon\n style={{\n transform: 'rotate(-90deg)',\n }}\n />\n </IconButton>\n </Tooltip>\n </>\n )}\n </Box>\n );\n};\n","import { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport React, { DragEventHandler, FC } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n iconButtonProps?: IconButtonProps;\n onDragStart: DragEventHandler<HTMLButtonElement>;\n onDragEnd: DragEventHandler<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = ({\n iconButtonProps,\n onDragEnd,\n onDragStart,\n table,\n}) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = table;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.move}\n >\n <IconButton\n disableRipple\n draggable=\"true\"\n onDragStart={onDragStart}\n onDragEnd={onDragEnd}\n size=\"small\"\n {...iconButtonProps}\n sx={{\n cursor: 'grab',\n m: 0,\n opacity: 0.5,\n p: '2px',\n transition: 'all 0.2s ease-in-out',\n '&:hover': {\n backgroundColor: 'transparent',\n opacity: 1,\n },\n '&:active': {\n cursor: 'grabbing',\n },\n ...iconButtonProps?.sx,\n }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n};\n","import { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { filterFns, Row } from '@tanstack/react-table';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n columnId: string,\n filterValue: string | number,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue as string, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nconst contains = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nconst startsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nconst endsWith = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue<string | number>(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nconst equals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nconst notEquals = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue<string | number>(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nconst greaterThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) > +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nconst greaterThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || greaterThan(row, id, filterValue);\n\ngreaterThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst lessThan = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue<string | number>(id))\n ? +row.getValue<string | number>(id) < +filterValue\n : row.getValue<string | number>(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nconst lessThanOrEqualTo = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValue: string | number,\n) => equals(row, id, filterValue) || lessThan(row, id, filterValue);\n\nlessThanOrEqualTo.autoRemove = (val: any) => !val;\n\nconst between = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThan(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThan(row, id, filterValues[1]));\n\nbetween.autoRemove = (val: any) => !val;\n\nconst betweenInclusive = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n filterValues: [string | number, string | number],\n) =>\n ((['', undefined] as any[]).includes(filterValues[0]) ||\n greaterThanOrEqualTo(row, id, filterValues[0])) &&\n ((!isNaN(+filterValues[0]) &&\n !isNaN(+filterValues[1]) &&\n +filterValues[0] > +filterValues[1]) ||\n (['', undefined] as any[]).includes(filterValues[1]) ||\n lessThanOrEqualTo(row, id, filterValues[1]));\n\nbetweenInclusive.autoRemove = (val: any) => !val;\n\nconst empty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue<string | number>(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nconst notEmpty = <TData extends Record<string, any> = {}>(\n row: Row<TData>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue<string | number>(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n betweenInclusive,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n greaterThanOrEqualTo,\n lessThan,\n lessThanOrEqualTo,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport { MRT_Row } from '.';\n\nconst fuzzy = <TData extends Record<string, any> = {}>(\n rowA: Row<TData>,\n rowB: Row<TData>,\n columnId: string,\n) => {\n let dir = 0;\n if (rowA.columnFiltersMeta[columnId]) {\n dir = compareItems(\n rowA.columnFiltersMeta[columnId]! as RankingInfo,\n rowB.columnFiltersMeta[columnId]! as RankingInfo,\n );\n }\n // Provide a fallback for when the item ranks are equal\n return dir === 0\n ? sortingFns.alphanumeric(rowA as Row<any>, rowB as Row<any>, columnId)\n : dir;\n};\n\nexport const MRT_SortingFns = {\n ...sortingFns,\n fuzzy,\n};\n\nexport const rankGlobalFuzzy = <TData extends Record<string, any> = {}>(\n rowA: MRT_Row<TData>,\n rowB: MRT_Row<TData>,\n) =>\n Math.max(...Object.values(rowB.columnFiltersMeta).map((v: any) => v.rank)) -\n Math.max(...Object.values(rowA.columnFiltersMeta).map((v: any) => v.rank));\n","import { ColumnOrderState } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_DefinedColumnDef,\n MRT_DisplayColumnIds,\n MRT_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <TData extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<TData>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <TData extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<TData>[],\n): MRT_ColumnDef<TData>[] => {\n let lowestLevelColumns: MRT_ColumnDef<TData>[] = columns;\n let currentCols: MRT_ColumnDef<TData>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<TData>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<TData>[];\n if (nextCols.every((col) => !col?.columns)) {\n lowestLevelColumns = [...lowestLevelColumns, ...nextCols];\n }\n currentCols = nextCols;\n }\n return lowestLevelColumns.filter((col) => !col.columns);\n};\n\nexport const prepareColumns = <TData extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<TData>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<TData>[] =>\n columnDefs.map((columnDef) => {\n if (!columnDef.id) columnDef.id = getColumnId(columnDef);\n if (process.env.NODE_ENV !== 'production' && !columnDef.id) {\n console.error(\n 'Column definitions must have a valid `accessorKey` or `id` property',\n );\n }\n if (!columnDef.columnDefType) columnDef.columnDefType = 'data';\n if (!!columnDef.columns?.length) {\n columnDef.columnDefType = 'group';\n columnDef.columns = prepareColumns(columnDef.columns, currentFilterFns);\n } else if (columnDef.columnDefType === 'data') {\n if (Object.keys(MRT_FilterFns).includes(currentFilterFns[columnDef.id])) {\n columnDef.filterFn =\n MRT_FilterFns[currentFilterFns[columnDef.id]] ?? MRT_FilterFns.fuzzy;\n }\n if (Object.keys(MRT_SortingFns).includes(columnDef.sortingFn as string)) {\n // @ts-ignore\n columnDef.sortingFn = MRT_SortingFns[columnDef.sortingFn];\n }\n }\n return columnDef;\n }) as MRT_DefinedColumnDef<TData>[];\n\nexport const reorderColumn = <TData extends Record<string, any> = {}>(\n draggedColumn: MRT_Column<TData>,\n targetColumn: MRT_Column<TData>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (draggedColumn.getCanPin()) {\n draggedColumn.pin(targetColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(targetColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(draggedColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n (props.enableRowDragging || props.enableRowOrdering) && 'mrt-row-drag',\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n props.positionExpandColumn === 'first' &&\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n props.enableRowSelection && 'mrt-row-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as MRT_DisplayColumnIds[];\n\nexport const getTrailingDisplayColumnIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n props.positionExpandColumn === 'last' &&\n (props.enableExpanding ||\n props.enableGrouping ||\n props.renderDetailPanel) &&\n 'mrt-row-expand',\n];\n\nexport const getDefaultColumnOrderIds = <\n TData extends Record<string, any> = {},\n>(\n props: MaterialReactTableProps<TData>,\n) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns).map((columnDef) =>\n getColumnId(columnDef),\n ),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, {\n Dispatch,\n DragEvent,\n FC,\n SetStateAction,\n useState,\n} from 'react';\nimport {\n Box,\n FormControlLabel,\n MenuItem,\n Switch,\n Tooltip,\n Typography,\n} from '@mui/material';\nimport { MRT_ColumnPinningButtons } from '../buttons/MRT_ColumnPinningButtons';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n currentHoveredColumn: MRT_Column | null;\n isSubMenu?: boolean;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column | null>>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n currentHoveredColumn,\n setCurrentHoveredColumn,\n column,\n isSubMenu,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = table;\n const { columnOrder } = getState();\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const switchChecked =\n (columnDefType !== 'group' && column.getIsVisible()) ||\n (columnDefType === 'group' &&\n column.getLeafColumns().some((col) => col.getIsVisible()));\n\n const handleToggleColumnHidden = (column: MRT_Column) => {\n if (columnDefType === 'group') {\n column?.columns?.forEach?.((childColumn: MRT_Column) => {\n childColumn.toggleVisibility(!switchChecked);\n });\n } else {\n column.toggleVisibility();\n }\n };\n\n const menuItemRef = React.useRef<HTMLElement>(null);\n\n const [isDragging, setIsDragging] = useState(false);\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(true);\n e.dataTransfer.setDragImage(menuItemRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (_e: DragEvent<HTMLButtonElement>) => {\n setIsDragging(false);\n setCurrentHoveredColumn(null);\n if (currentHoveredColumn) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (!isDragging) {\n setCurrentHoveredColumn(column);\n }\n };\n\n return (\n <>\n <MenuItem\n disableRipple\n ref={menuItemRef as any}\n onDragEnter={handleDragEnter}\n sx={(theme) => ({\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n opacity: isDragging ? 0.5 : 1,\n outline: isDragging\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : 'none',\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n })}\n >\n <Box\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {!isSubMenu &&\n columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n onDragEnd={handleDragEnd}\n onDragStart={handleDragStart}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {!isSubMenu &&\n enablePinning &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} table={table} />\n ) : (\n <Box sx={{ width: '70px' }} />\n ))}\n {enableHiding ? (\n <FormControlLabel\n componentsProps={{\n typography: {\n sx: {\n mb: 0,\n opacity: columnDefType !== 'display' ? 1 : 0.5,\n },\n },\n }}\n checked={switchChecked}\n control={\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.toggleVisibility}\n >\n <Switch />\n </Tooltip>\n }\n disabled={\n (isSubMenu && switchChecked) ||\n !column.getCanHide() ||\n column.getIsGrouped()\n }\n label={columnDef.header}\n onChange={() => handleToggleColumnHidden(column)}\n />\n ) : (\n <Typography sx={{ alignSelf: 'center' }}>\n {columnDef.header}\n </Typography>\n )}\n </Box>\n </MenuItem>\n {column.columns?.map((c: MRT_Column, i) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={c}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${i}-${c.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo, useState } from 'react';\nimport { Button, Menu, Divider, Box } from '@mui/material';\nimport { MRT_ShowHideColumnsMenuItems } from './MRT_ShowHideColumnsMenuItems';\nimport type { MRT_Column, MRT_TableInstance } from '..';\nimport { getDefaultColumnOrderIds } from '../column.utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n table,\n}) => {\n const {\n getAllColumns,\n getAllLeafColumns,\n getCenterLeafColumns,\n getIsAllColumnsVisible,\n getIsSomeColumnsPinned,\n getIsSomeColumnsVisible,\n getLeftLeafColumns,\n getRightLeafColumns,\n getState,\n toggleAllColumnsVisible,\n options: { localization, enablePinning, enableColumnOrdering },\n } = table;\n const { density, columnOrder, columnPinning } = getState();\n\n const hideAllColumns = () => {\n getAllLeafColumns()\n .filter((col) => col.columnDef.enableHiding !== false)\n .forEach((col) => col.toggleVisibility(false));\n };\n\n const allColumns = useMemo(() => {\n const columns = getAllColumns();\n if (\n columnOrder.length > 0 &&\n !columns.some((col) => col.columnDef.columnDefType === 'group')\n ) {\n return [\n ...getLeftLeafColumns(),\n ...Array.from(new Set(columnOrder)).map((colId) =>\n getCenterLeafColumns().find((col) => col?.id === colId),\n ),\n ...getRightLeafColumns(),\n ].filter(Boolean);\n }\n return columns;\n }, [\n columnOrder,\n columnPinning,\n getAllColumns(),\n getCenterLeafColumns(),\n getLeftLeafColumns(),\n getRightLeafColumns(),\n ]) as MRT_Column[];\n\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column | null>(null);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n <Box\n sx={{\n display: 'flex',\n justifyContent: isSubMenu ? 'center' : 'space-between',\n p: '0.5rem',\n pt: 0,\n }}\n >\n {!isSubMenu && (\n <Button\n disabled={!getIsSomeColumnsVisible()}\n onClick={hideAllColumns}\n >\n {localization.hideAll}\n </Button>\n )}\n {!isSubMenu && enableColumnOrdering && (\n <Button\n onClick={() =>\n table.setColumnOrder(\n getDefaultColumnOrderIds(table.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => table.resetColumnPinning(true)}\n >\n {localization.unpinAll}\n </Button>\n )}\n <Button\n disabled={getIsAllColumnsVisible()}\n onClick={() => toggleAllColumnsVisible(true)}\n >\n {localization.showAll}\n </Button>\n </Box>\n <Divider />\n {allColumns.map((column, index) => (\n <MRT_ShowHideColumnsMenuItems\n allColumns={allColumns}\n column={column}\n currentHoveredColumn={currentHoveredColumn}\n isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n setCurrentHoveredColumn={setCurrentHoveredColumn}\n table={table}\n />\n ))}\n </Menu>\n );\n};\n","import React, { FC, useState } from 'react';\nimport { Box, IconButton, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\nimport { MRT_FilterOptionMenu } from './MRT_FilterOptionMenu';\nimport { MRT_ShowHideColumnsMenu } from './MRT_ShowHideColumnsMenu';\n\nexport const commonMenuItemStyles = {\n py: '6px',\n my: 0,\n justifyContent: 'space-between',\n alignItems: 'center',\n};\n\nexport const commonListItemStyles = {\n display: 'flex',\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header: MRT_Header;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n toggleAllColumnsVisible,\n setColumnOrder,\n options: {\n enableColumnFilterChangeMode,\n enableColumnFilters,\n enableColumnResizing,\n enableGrouping,\n enableHiding,\n enablePinning,\n enableSorting,\n columnFilterModeOptions,\n icons: {\n ArrowRightIcon,\n ClearAllIcon,\n ViewColumnIcon,\n DynamicFeedIcon,\n FilterListIcon,\n FilterListOffIcon,\n PushPinIcon,\n SortIcon,\n RestartAltIcon,\n VisibilityOffIcon,\n },\n tableId,\n localization,\n },\n setShowFilters,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n const [showHideColumnsMenuAnchorEl, setShowHideColumnsMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\n const handleClearSort = () => {\n column.clearSorting();\n setAnchorEl(null);\n };\n\n const handleSortAsc = () => {\n column.toggleSorting(false);\n setAnchorEl(null);\n };\n\n const handleSortDesc = () => {\n column.toggleSorting(true);\n setAnchorEl(null);\n };\n\n const handleResetColumnSize = () => {\n column.resetSize();\n setAnchorEl(null);\n };\n\n const handleHideColumn = () => {\n column.toggleVisibility(false);\n setAnchorEl(null);\n };\n\n const handlePinColumn = (pinDirection: 'left' | 'right' | false) => {\n column.pin(pinDirection);\n setAnchorEl(null);\n };\n\n const handleGroupByColumn = () => {\n column.toggleGrouping();\n setColumnOrder((old) => ['mrt-row-expand', ...old]);\n setAnchorEl(null);\n };\n\n const handleClearFilter = () => {\n column.setFilterValue('');\n setAnchorEl(null);\n };\n\n const handleFilterByColumn = () => {\n setShowFilters(true);\n setTimeout(\n () =>\n document\n .getElementById(\n // @ts-ignore\n header.muiTableHeadCellFilterTextFieldProps?.id ??\n `mrt-${tableId}-${header.id}-filter-text-field`,\n )\n ?.focus(),\n 200,\n );\n setAnchorEl(null);\n };\n\n const handleShowAllColumns = () => {\n toggleAllColumnsVisible(true);\n setAnchorEl(null);\n };\n\n const handleOpenFilterModeMenu = (event: React.MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n setFilterMenuAnchorEl(event.currentTarget);\n };\n\n const handleOpenShowHideColumnsMenu = (\n event: React.MouseEvent<HTMLElement>,\n ) => {\n event.stopPropagation();\n setShowHideColumnsMenuAnchorEl(event.currentTarget);\n };\n\n const isSelectFilter = !!columnDef.filterSelectOptions;\n\n const allowedColumnFilterOptions =\n columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;\n\n const showFilterModeSubMenu =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableSorting &&\n column.getCanSort() && [\n <MenuItem\n disabled={!column.getIsSorted()}\n key={0}\n onClick={handleClearSort}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ClearAllIcon />\n </ListItemIcon>\n {localization.clearSort}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsSorted() === 'asc'}\n key={1}\n onClick={handleSortAsc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon />\n </ListItemIcon>\n {localization.sortByColumnAsc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableColumnFilters || enableGrouping || enableHiding}\n key={2}\n disabled={column.getIsSorted() === 'desc'}\n onClick={handleSortDesc}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <SortIcon style={{ transform: 'rotate(180deg) scaleX(-1)' }} />\n </ListItemIcon>\n {localization.sortByColumnDesc?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnFilters &&\n column.getCanFilter() &&\n [\n <MenuItem\n disabled={!column.getFilterValue()}\n key={0}\n onClick={handleClearFilter}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListOffIcon />\n </ListItemIcon>\n {localization.clearFilter}\n </Box>\n </MenuItem>,\n <MenuItem\n divider={enableGrouping || enableHiding}\n key={1}\n onClick={handleFilterByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <FilterListIcon />\n </ListItemIcon>\n {localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n {showFilterModeSubMenu && (\n <IconButton\n onClick={handleOpenFilterModeMenu}\n onMouseEnter={handleOpenFilterModeMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n )}\n </MenuItem>,\n showFilterModeSubMenu && (\n <MRT_FilterOptionMenu\n anchorEl={filterMenuAnchorEl}\n header={header}\n key={2}\n onSelect={handleFilterByColumn}\n setAnchorEl={setFilterMenuAnchorEl}\n table={table}\n />\n ),\n ].filter(Boolean)}\n {enableGrouping &&\n column.getCanGroup() && [\n <MenuItem\n divider={enablePinning}\n key={0}\n onClick={handleGroupByColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <DynamicFeedIcon />\n </ListItemIcon>\n {localization[\n column.getIsGrouped() ? 'ungroupByColumn' : 'groupByColumn'\n ]?.replace('{column}', String(columnDef.header))}\n </Box>\n </MenuItem>,\n ]}\n {enablePinning &&\n column.getCanPin() && [\n <MenuItem\n disabled={column.getIsPinned() === 'left' || !column.getCanPin()}\n key={0}\n onClick={() => handlePinColumn('left')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(90deg)' }} />\n </ListItemIcon>\n {localization.pinToLeft}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={column.getIsPinned() === 'right' || !column.getCanPin()}\n key={1}\n onClick={() => handlePinColumn('right')}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon style={{ transform: 'rotate(-90deg)' }} />\n </ListItemIcon>\n {localization.pinToRight}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={!column.getIsPinned()}\n divider={enableHiding}\n key={2}\n onClick={() => handlePinColumn(false)}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <PushPinIcon />\n </ListItemIcon>\n {localization.unpin}\n </Box>\n </MenuItem>,\n ]}\n {enableColumnResizing &&\n column.getCanResize() && [\n <MenuItem\n disabled={!columnSizing[column.id]}\n key={0}\n onClick={handleResetColumnSize}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <RestartAltIcon />\n </ListItemIcon>\n {localization.resetColumnSize}\n </Box>\n </MenuItem>,\n ]}\n {enableHiding && [\n <MenuItem\n disabled={columnDef.enableHiding === false}\n key={0}\n onClick={handleHideColumn}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <VisibilityOffIcon />\n </ListItemIcon>\n {localization.hideColumn?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n </MenuItem>,\n <MenuItem\n disabled={\n !Object.values(columnVisibility).filter((visible) => !visible)\n .length\n }\n key={1}\n onClick={handleShowAllColumns}\n sx={commonMenuItemStyles}\n >\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <ViewColumnIcon />\n </ListItemIcon>\n {localization.showAllColumns?.replace(\n '{column}',\n String(columnDef.header),\n )}\n </Box>\n <IconButton\n onClick={handleOpenShowHideColumnsMenu}\n onMouseEnter={handleOpenShowHideColumnsMenu}\n size=\"small\"\n sx={{ p: 0 }}\n >\n <ArrowRightIcon />\n </IconButton>\n </MenuItem>,\n <MRT_ShowHideColumnsMenu\n anchorEl={showHideColumnsMenuAnchorEl}\n isSubMenu\n key={2}\n setAnchorEl={setShowHideColumnsMenuAnchorEl}\n table={table}\n />,\n ]}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, ListItemIcon, Menu, MenuItem } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport {\n commonListItemStyles,\n commonMenuItemStyles,\n} from './MRT_ColumnActionMenu';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n handleEdit: () => void;\n row: MRT_Row;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n table: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n table,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = table;\n const { density } = getState();\n\n return (\n <Menu\n anchorEl={anchorEl}\n open={!!anchorEl}\n onClose={() => setAnchorEl(null)}\n MenuListProps={{\n dense: density === 'compact',\n }}\n >\n {enableEditing && (\n <MenuItem onClick={handleEdit} sx={commonMenuItemStyles}>\n <Box sx={commonListItemStyles}>\n <ListItemIcon>\n <EditIcon />\n </ListItemIcon>\n {localization.edit}\n </Box>\n </MenuItem>\n )}\n {renderRowActionMenuItems?.({\n row,\n table,\n closeMenu: () => setAnchorEl(null),\n })}\n </Menu>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, IconButton, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = table;\n const { currentEditingRow } = getState();\n\n const handleCancel = () => {\n row._valuesCache = row.original ?? {};\n setCurrentEditingRow(null);\n };\n\n const handleSave = () => {\n onEditRowSubmit?.({ row: currentEditingRow ?? row, table });\n setCurrentEditingRow(null);\n };\n\n return (\n <Box sx={{ display: 'flex', gap: '0.75rem' }}>\n <Tooltip arrow title={localization.cancel}>\n <IconButton aria-label={localization.cancel} onClick={handleCancel}>\n <CancelIcon />\n </IconButton>\n </Tooltip>\n <Tooltip arrow title={localization.save}>\n <IconButton\n aria-label={localization.save}\n color=\"info\"\n onClick={handleSave}\n >\n <SaveIcon />\n </IconButton>\n </Tooltip>\n </Box>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_RowActionMenu } from '../menus/MRT_RowActionMenu';\nimport { MRT_EditActionButtons } from './MRT_EditActionButtons';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\nconst commonIconButtonStyles = {\n height: '2rem',\n ml: '10px',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n};\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, table }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = table;\n\n const { currentEditingRow } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleOpenRowActionMenu = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const handleStartEditMode = () => {\n setCurrentEditingRow({ ...row });\n setAnchorEl(null);\n };\n\n return (\n <>\n {renderRowActions ? (\n <>{renderRowActions({ row, table })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} table={table} />\n ) : !renderRowActionMenuItems && enableEditing ? (\n <Tooltip placement=\"right\" arrow title={localization.edit}>\n <IconButton sx={commonIconButtonStyles} onClick={handleStartEditMode}>\n <EditIcon />\n </IconButton>\n </Tooltip>\n ) : renderRowActionMenuItems ? (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={localization.rowActions}\n >\n <IconButton\n aria-label={localization.rowActions}\n onClick={handleOpenRowActionMenu}\n size=\"small\"\n sx={commonIconButtonStyles}\n >\n <MoreHorizIcon />\n </IconButton>\n </Tooltip>\n <MRT_RowActionMenu\n anchorEl={anchorEl}\n handleEdit={handleStartEditMode}\n row={row}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Checkbox, Tooltip } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row?: MRT_Row;\n selectAll?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, table }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = table;\n const { density } = getState();\n\n const checkboxProps = !row\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row, table })\n : muiSelectCheckboxProps;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n title={\n selectAll ? localization.toggleSelectAll : localization.toggleSelectRow\n }\n >\n <Checkbox\n checked={\n selectAll ? table.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll ? table.getIsSomeRowsSelected() : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={\n !row\n ? selectAllMode === 'all'\n ? table.getToggleAllRowsSelectedHandler()\n : table.getToggleAllPageRowsSelectedHandler()\n : row.getToggleSelectedHandler()\n }\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={(theme) => ({\n height: density === 'compact' ? '1.75rem' : '2.5rem',\n width: density === 'compact' ? '1.75rem' : '2.5rem',\n m: density !== 'compact' ? '-0.4rem' : undefined,\n ...(checkboxProps?.sx instanceof Function\n ? checkboxProps.sx(theme)\n : (checkboxProps?.sx as any)),\n })}\n />\n </Tooltip>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Collapse,\n debounce,\n IconButton,\n InputAdornment,\n TextField,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ table }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = table;\n const { globalFilter, showGlobalFilter } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n const [searchValue, setSearchValue] = useState(globalFilter ?? '');\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n setGlobalFilter(event.target.value ?? undefined);\n }, 250),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setSearchValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleGlobalFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setSearchValue('');\n setGlobalFilter(undefined);\n };\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n return (\n <Collapse in={showGlobalFilter} orientation=\"horizontal\">\n <TextField\n id={`mrt-${tableId}-search-text-field`}\n placeholder={localization.search}\n onChange={handleChange}\n value={searchValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: enableGlobalFilterChangeMode ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeSearchMode}>\n <IconButton\n aria-label={localization.changeSearchMode}\n onClick={handleGlobalFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <SearchIcon />\n </IconButton>\n </Tooltip>\n </InputAdornment>\n ) : (\n <SearchIcon />\n ),\n endAdornment: (\n <InputAdornment position=\"end\">\n <Tooltip arrow title={localization.clearSearch ?? ''}>\n <span>\n <IconButton\n aria-label={localization.clearSearch}\n disabled={!searchValue?.length}\n onClick={handleClear}\n size=\"small\"\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n />\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n isTopToolbar: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ isTopToolbar, table }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = table;\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ isTopToolbar, table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: isTopToolbar ? 0 : undefined,\n position: 'absolute',\n top: !isTopToolbar ? 0 : undefined,\n width: '100%',\n }}\n >\n <LinearProgress\n aria-label=\"Loading\"\n aria-busy=\"true\"\n sx={{ position: 'relative' }}\n {...linearProgressProps}\n />\n </Collapse>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ table, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = table;\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ table })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n return (\n <TablePagination\n SelectProps={{\n sx: { m: '0 1rem 0 1ch' },\n MenuProps: { MenuListProps: { disablePadding: true } },\n }}\n component=\"div\"\n count={totalRowCount}\n onPageChange={(_: any, newPage: number) => setPageIndex(newPage)}\n onRowsPerPageChange={handleChangeRowsPerPage}\n page={pageIndex}\n rowsPerPage={pageSize}\n rowsPerPageOptions={[5, 10, 15, 20, 25, 30, 50, 100]}\n showFirstButton={showFirstLastPageButtons}\n showLastButton={showFirstLastPageButtons}\n {...tablePaginationProps}\n sx={(theme) => ({\n m: '0 0.5rem',\n mt:\n position === 'top' &&\n enableToolbarInternalActions &&\n !showGlobalFilter\n ? '3.5rem'\n : undefined,\n position: 'relative',\n zIndex: 2,\n ...(tablePaginationProps?.sx instanceof Function\n ? tablePaginationProps.sx(theme)\n : (tablePaginationProps?.sx as any)),\n })}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, AlertTitle, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n table,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = table;\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ table })\n : muiTableToolbarAlertBannerProps;\n\n const selectMessage =\n getSelectedRowModel().rows.length > 0\n ? localization.selectedCountOfRowCountRowsSelected\n ?.replace(\n '{selectedCount}',\n getSelectedRowModel().rows.length.toString(),\n )\n ?.replace(\n '{rowCount}',\n getPrePaginationRowModel().rows.length.toString(),\n )\n : null;\n\n const groupedByMessage =\n grouping.length > 0 ? (\n <span>\n {localization.groupedBy}{' '}\n {grouping.map((columnId, index) => (\n <Fragment key={`${index}-${columnId}`}>\n {index > 0 ? localization.thenBy : ''}\n <Chip\n color=\"secondary\"\n label={table.getColumn(columnId).columnDef.header}\n onDelete={() => table.getColumn(columnId).toggleGrouping()}\n />\n </Fragment>\n ))}\n </span>\n ) : null;\n\n return (\n <Collapse\n in={showAlertBanner || !!selectMessage || !!groupedByMessage}\n timeout={stackAlertBanner ? 200 : 0}\n >\n <Alert\n color=\"info\"\n icon={false}\n {...alertProps}\n sx={(theme) => ({\n borderRadius: 0,\n fontSize: '1rem',\n left: 0,\n p: 0,\n position: 'relative',\n right: 0,\n top: 0,\n width: '100%',\n zIndex: 2,\n ...(alertProps?.sx instanceof Function\n ? alertProps.sx(theme)\n : (alertProps?.sx as any)),\n })}\n >\n {alertProps?.title && <AlertTitle>{alertProps.title}</AlertTitle>}\n <Box sx={{ p: '0.5rem 1rem' }}>\n {alertProps?.children}\n {alertProps?.children && (selectMessage || groupedByMessage) && (\n <br />\n )}\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = table;\n const { isFullScreen } = getState();\n\n const handleToggleFullScreen = () => {\n setIsFullScreen(!isFullScreen);\n };\n\n return (\n <Tooltip arrow title={localization.toggleFullScreen}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleFullScreen}\n {...rest}\n >\n {isFullScreen ? <FullscreenExitIcon /> : <FullscreenIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip, IconButtonProps } from '@mui/material';\nimport { MRT_ShowHideColumnsMenu } from '../menus/MRT_ShowHideColumnsMenu';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ table, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = table;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n return (\n <>\n <Tooltip arrow title={localization.showHideColumns}>\n <IconButton\n aria-label={localization.showHideColumns}\n onClick={handleClick}\n {...rest}\n >\n <ViewColumnIcon />\n </IconButton>\n </Tooltip>\n <MRT_ShowHideColumnsMenu\n anchorEl={anchorEl}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = table;\n const { density } = getState();\n\n const handleToggleDensePadding = () => {\n const nextDensity =\n density === 'comfortable'\n ? 'compact'\n : density === 'compact'\n ? 'spacious'\n : 'comfortable';\n setDensity(nextDensity);\n };\n\n return (\n <Tooltip arrow title={localization.toggleDensity}>\n <IconButton\n aria-label={localization.toggleDensity}\n onClick={handleToggleDensePadding}\n {...rest}\n >\n {density === 'compact' ? (\n <DensitySmallIcon />\n ) : density === 'comfortable' ? (\n <DensityMediumIcon />\n ) : (\n <DensityLargeIcon />\n )}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = table;\n const { showColumnFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showColumnFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showColumnFilters ? <FilterListOffIcon /> : <FilterListIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({ table, ...rest }) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = table;\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ table })\n : muiSearchTextFieldProps;\n\n const handleToggleSearch = () => {\n setShowGlobalFilter(!showGlobalFilter);\n setTimeout(\n () =>\n document\n .getElementById(\n textFieldProps?.id ?? `mrt-${tableId}-search-text-field`,\n )\n ?.focus(),\n 200,\n );\n };\n\n return (\n <Tooltip arrow title={localization.showHideSearch}>\n <IconButton onClick={handleToggleSearch} {...rest}>\n {showGlobalFilter ? <SearchOffIcon /> : <SearchIcon />}\n </IconButton>\n </Tooltip>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FullScreenToggleButton } from '../buttons/MRT_FullScreenToggleButton';\nimport { MRT_ShowHideColumnsButton } from '../buttons/MRT_ShowHideColumnsButton';\nimport { MRT_ToggleDensePaddingButton } from '../buttons/MRT_ToggleDensePaddingButton';\nimport { MRT_ToggleFiltersButton } from '../buttons/MRT_ToggleFiltersButton';\nimport { MRT_ToggleGlobalFilterButton } from '../buttons/MRT_ToggleGlobalFilterButton';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ table }) => {\n const {\n options: {\n enableColumnFilters,\n enableColumnOrdering,\n enableDensityToggle,\n enableFilters,\n enableFullScreenToggle,\n enableGlobalFilter,\n enableHiding,\n enablePinning,\n positionGlobalFilter,\n renderToolbarInternalActions,\n },\n } = table;\n\n return (\n <Box\n sx={{\n alignItems: 'center',\n display: 'flex',\n zIndex: 3,\n }}\n >\n {renderToolbarInternalActions?.({\n MRT_FullScreenToggleButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_ToggleFiltersButton,\n MRT_ToggleGlobalFilterButton,\n table,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton table={table} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton table={table} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton table={table} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton table={table} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton table={table} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\n alignItems: 'flex-start',\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n backgroundImage: 'none',\n display: 'grid',\n minHeight: '3.5rem',\n overflow: 'hidden',\n p: '0 !important',\n transition: 'all 0.2s ease-in-out',\n zIndex: 1,\n});\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableGlobalFilter,\n enablePagination,\n enableToolbarInternalActions,\n muiTableToolbarTopProps,\n positionGlobalFilter,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarTopCustomActions,\n tableId,\n },\n } = table;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ table })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile || !!renderToolbarTopCustomActions || showGlobalFilter;\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-top`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n position: isFullScreen ? 'sticky' : undefined,\n top: isFullScreen ? '0' : undefined,\n ...commonToolbarStyles({ theme }),\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n table={table}\n />\n )}\n <Box\n sx={{\n alignItems: 'flex-start',\n boxSizing: 'border-box',\n display: 'flex',\n justifyContent: 'space-between',\n p: '0.5rem',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n width: '100%',\n }}\n >\n {enableGlobalFilter && positionGlobalFilter === 'left' && (\n <MRT_GlobalFilterTextField table={table} />\n )}\n\n {renderToolbarTopCustomActions?.({ table }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons table={table} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField table={table} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"top\" />\n )}\n <MRT_LinearProgressBar isTopToolbar table={table} />\n </Toolbar>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, Box, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { commonToolbarStyles } from './MRT_ToolbarTop';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ table })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner = isMobile || !!renderToolbarBottomCustomActions;\n\n return (\n <Toolbar\n id={`mrt-${tableId}-toolbar-bottom`}\n variant=\"dense\"\n {...toolbarProps}\n sx={(theme) =>\n ({\n ...commonToolbarStyles({ theme }),\n bottom: isFullScreen ? '0' : undefined,\n boxShadow: `-3px 0 6px ${alpha(theme.palette.common.black, 0.1)}`,\n left: 0,\n position: isFullScreen ? 'fixed' : 'relative',\n right: 0,\n ...(toolbarProps?.sx instanceof Function\n ? toolbarProps.sx(theme)\n : (toolbarProps?.sx as any)),\n } as any)\n }\n >\n <MRT_LinearProgressBar isTopToolbar={false} table={table} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner table={table} />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'space-between',\n width: '100%',\n }}\n >\n {renderToolbarBottomCustomActions ? (\n <Box sx={{ p: '0.5rem' }}>\n {renderToolbarBottomCustomActions({ table })}\n </Box>\n ) : (\n <span />\n )}\n <Box\n sx={{\n display: 'flex',\n justifyContent: 'flex-end',\n position: stackAlertBanner ? 'relative' : 'absolute',\n right: 0,\n top: 0,\n }}\n >\n {enablePagination &&\n ['bottom', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination table={table} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\n );\n};\n","import React, { FC, MouseEvent, useState } from 'react';\nimport { IconButton, Tooltip } from '@mui/material';\nimport { MRT_ColumnActionMenu } from '../menus/MRT_ColumnActionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n table,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const handleClick = (event: MouseEvent<HTMLElement>) => {\n event.stopPropagation();\n event.preventDefault();\n setAnchorEl(event.currentTarget);\n };\n\n const mTableHeadCellColumnActionsButtonProps =\n muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? muiTableHeadCellColumnActionsButtonProps({ column, table })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellColumnActionsButtonProps;\n\n const iconButtonProps = {\n ...mTableHeadCellColumnActionsButtonProps,\n ...mcTableHeadCellColumnActionsButtonProps,\n };\n\n return (\n <>\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.columnActions}\n >\n <IconButton\n aria-label={localization.columnActions}\n onClick={handleClick}\n size=\"small\"\n {...iconButtonProps}\n sx={(theme) => ({\n height: '2rem',\n mt: '-0.2rem',\n opacity: 0.5,\n transition: 'opacity 0.2s',\n width: '2rem',\n '&:hover': {\n opacity: 1,\n },\n ...(iconButtonProps?.sx instanceof Function\n ? iconButtonProps.sx(theme)\n : (iconButtonProps?.sx as any)),\n })}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n MouseEvent,\n useCallback,\n useState,\n} from 'react';\nimport {\n Chip,\n debounce,\n IconButton,\n InputAdornment,\n MenuItem,\n TextField,\n TextFieldProps,\n Tooltip,\n} from '@mui/material';\nimport { MRT_FilterOptionMenu } from '../menus/MRT_FilterOptionMenu';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n inputIndex?: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n table,\n}) => {\n const {\n getState,\n options: {\n enableColumnFilterChangeMode,\n columnFilterModeOptions,\n icons: { FilterListIcon, CloseIcon },\n localization,\n muiTableHeadCellFilterTextFieldProps,\n tableId,\n },\n setCurrentFilterFns,\n } = table;\n const { column } = header;\n const { columnDef } = column;\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, table })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n table,\n })\n : columnDef.muiTableHeadCellFilterTextFieldProps;\n\n const textFieldProps = {\n ...mTableHeadCellFilterTextFieldProps,\n ...mcTableHeadCellFilterTextFieldProps,\n } as TextFieldProps;\n\n const [filterValue, setFilterValue] = useState<string>(() =>\n inputIndex !== undefined\n ? (column.getFilterValue() as [string, string])?.[inputIndex] ?? ''\n : (column.getFilterValue() as string) ?? '',\n );\n\n const handleChangeDebounced = useCallback(\n debounce((event: ChangeEvent<HTMLInputElement>) => {\n let value =\n textFieldProps.type === 'date'\n ? new Date(event.target.value)\n : event.target.value;\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string | Date]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(value ?? undefined);\n }\n }, 200),\n [],\n );\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setFilterValue(event.target.value);\n handleChangeDebounced(event);\n };\n\n const handleFilterMenuOpen = (event: MouseEvent<HTMLElement>) => {\n setAnchorEl(event.currentTarget);\n };\n\n const handleClear = () => {\n setFilterValue('');\n if (inputIndex !== undefined) {\n column.setFilterValue((old: [string | undefined, string | undefined]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = undefined;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(undefined);\n }\n };\n\n const handleClearFilterChip = () => {\n setFilterValue('');\n column.setFilterValue(undefined);\n setCurrentFilterFns((prev) => ({\n ...prev,\n [header.id]: 'fuzzy',\n }));\n };\n\n if (columnDef.Filter) {\n return <>{columnDef.Filter?.({ header, table })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const currentFilterOption = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel = ['empty', 'notEmpty'].includes(currentFilterOption)\n ? //@ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ]\n : '';\n const filterPlaceholder =\n inputIndex === undefined\n ? localization.filterByColumn?.replace(\n '{column}',\n String(columnDef.header),\n )\n : inputIndex === 0\n ? localization.min\n : inputIndex === 1\n ? localization.max\n : '';\n\n const allowedColumnFilterOptions =\n columnDef?.columnFilterModeOptions ?? columnFilterModeOptions;\n\n const showChangeModeButton =\n enableColumnFilterChangeMode &&\n columnDef.enableColumnFilterChangeMode !== false &&\n !isSelectFilter &&\n !inputIndex &&\n (allowedColumnFilterOptions === undefined ||\n !!allowedColumnFilterOptions?.length);\n\n return (\n <>\n <TextField\n fullWidth\n id={filterId}\n inputProps={{\n disabled: !!filterChipLabel,\n sx: {\n textOverflow: 'ellipsis',\n width: filterChipLabel ? 0 : undefined,\n },\n title: filterPlaceholder,\n }}\n helperText={\n showChangeModeButton ? (\n <label htmlFor={filterId}>\n {localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ],\n )}\n </label>\n ) : null\n }\n FormHelperTextProps={{\n sx: {\n fontSize: '0.6rem',\n lineHeight: '0.8rem',\n whiteSpace: 'nowrap',\n },\n }}\n margin=\"none\"\n placeholder={\n filterChipLabel || isSelectFilter ? undefined : filterPlaceholder\n }\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n select={isSelectFilter}\n value={filterValue ?? ''}\n variant=\"standard\"\n InputProps={{\n startAdornment: showChangeModeButton ? (\n <InputAdornment position=\"start\">\n <Tooltip arrow title={localization.changeFilterMode}>\n <span>\n <IconButton\n aria-label={localization.changeFilterMode}\n onClick={handleFilterMenuOpen}\n size=\"small\"\n sx={{ height: '1.75rem', width: '1.75rem' }}\n >\n <FilterListIcon />\n </IconButton>\n </span>\n </Tooltip>\n {filterChipLabel && (\n <Chip\n onDelete={handleClearFilterChip}\n label={filterChipLabel}\n />\n )}\n </InputAdornment>\n ) : (\n <FilterListIcon />\n ),\n endAdornment: !filterChipLabel && (\n <InputAdornment position=\"end\">\n <Tooltip\n arrow\n disableHoverListener={isSelectFilter}\n placement=\"right\"\n title={localization.clearFilter ?? ''}\n >\n <span>\n <IconButton\n aria-label={localization.clearFilter}\n disabled={!filterValue?.length}\n onClick={handleClear}\n size=\"small\"\n sx={{\n height: '1.75rem',\n width: '1.75rem',\n }}\n >\n <CloseIcon />\n </IconButton>\n </span>\n </Tooltip>\n </InputAdornment>\n ),\n }}\n {...textFieldProps}\n sx={(theme) => ({\n p: 0,\n minWidth: !filterChipLabel ? '8rem' : 'auto',\n width: 'calc(100% + 0.5rem)',\n '&\t.MuiSelect-icon': {\n mr: '1.5rem',\n },\n ...(textFieldProps?.sx instanceof Function\n ? textFieldProps.sx(theme)\n : (textFieldProps?.sx as any)),\n })}\n >\n {isSelectFilter && (\n <MenuItem divider disabled={!filterValue} value=\"\">\n {localization.clearFilter}\n </MenuItem>\n )}\n {columnDef?.filterSelectOptions?.map((option) => {\n let value;\n let text;\n if (typeof option === 'string') {\n value = option;\n text = option;\n } else if (typeof option === 'object') {\n value = option.value;\n text = option.text;\n }\n return (\n <MenuItem key={value} value={value}>\n {text}\n </MenuItem>\n );\n })}\n </TextField>\n <MRT_FilterOptionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n table={table}\n />\n </>\n );\n};\n","import React, { FC } from 'react';\nimport { Box } from '@mui/material';\nimport { MRT_FilterTextField } from './MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, table }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} table={table} />\n <MRT_FilterTextField header={header} inputIndex={1} table={table} />\n </Box>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse } from '@mui/material';\nimport { MRT_FilterRangeFields } from '../inputs/MRT_FilterRangeFields';\nimport { MRT_FilterTextField } from '../inputs/MRT_FilterTextField';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n table,\n}) => {\n const { getState } = table;\n const { currentFilterFns, showColumnFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showColumnFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} table={table} />\n ) : (\n <MRT_FilterTextField header={header} table={table} />\n )}\n </Collapse>\n );\n};\n","import React, { FC, MouseEvent } from 'react';\nimport { Grow, IconButton, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = table;\n const { currentFilterFns } = getState();\n const { column } = header;\n const { columnDef } = column;\n\n const currentFilterOption = currentFilterFns?.[header.id];\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n currentFilterOption?.charAt(0)?.toUpperCase() +\n currentFilterOption?.slice(1)\n }`\n ],\n )\n .replace(\n '{filterValue}',\n `\"${\n Array.isArray(column.getFilterValue())\n ? (column.getFilterValue() as [string, string]).join(\n `\" ${localization.and} \"`,\n )\n : (column.getFilterValue() as string)\n }\"`,\n )\n .replace('\" \"', '');\n\n return (\n <Grow\n unmountOnExit\n in={\n (!!column.getFilterValue() && currentFilterOption !== 'between') ||\n (currentFilterOption === 'between' && // @ts-ignore\n (!!column.getFilterValue()?.[0] || !!column.getFilterValue()?.[1]))\n }\n >\n <span>\n <Tooltip arrow placement=\"top\" title={filterTooltip}>\n <IconButton\n disableRipple\n onClick={(event: MouseEvent<HTMLButtonElement>) => {\n event.stopPropagation();\n }}\n size=\"small\"\n sx={{\n m: 0,\n opacity: 0.8,\n p: '2px',\n transform: 'scale(0.66)',\n width: '1.5ch',\n }}\n >\n <FilterAltIcon />\n </IconButton>\n </Tooltip>\n </span>\n </Grow>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { reorderColumn } from '../column.utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n column: MRT_Column;\n table: MRT_TableInstance;\n tableHeadCellRef: RefObject<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCellGrabHandle: FC<Props> = ({\n column,\n table,\n tableHeadCellRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n muiTableHeadCellDragHandleProps,\n onColumnDrop,\n },\n setColumnOrder,\n setCurrentDraggingColumn,\n setCurrentHoveredColumn,\n } = table;\n const { columnDef } = column;\n const { currentHoveredColumn, currentDraggingColumn, columnOrder } =\n getState();\n\n const mIconButtonProps =\n muiTableHeadCellDragHandleProps instanceof Function\n ? muiTableHeadCellDragHandleProps({ column, table })\n : muiTableHeadCellDragHandleProps;\n\n const mcIconButtonProps =\n columnDef.muiTableHeadCellDragHandleProps instanceof Function\n ? columnDef.muiTableHeadCellDragHandleProps({ column, table })\n : columnDef.muiTableHeadCellDragHandleProps;\n\n const iconButtonProps = {\n ...mIconButtonProps,\n ...mcIconButtonProps,\n };\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n setCurrentDraggingColumn(column);\n e.dataTransfer.setDragImage(tableHeadCellRef.current as HTMLElement, 0, 0);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onColumnDrop?.({\n event,\n draggedColumn: column,\n targetColumn: currentHoveredColumn,\n });\n if (\n enableColumnOrdering &&\n currentHoveredColumn &&\n currentHoveredColumn?.id !== currentDraggingColumn?.id\n ) {\n setColumnOrder(reorderColumn(column, currentHoveredColumn, columnOrder));\n }\n setCurrentDraggingColumn(null);\n setCurrentHoveredColumn(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({ header, table }) => {\n const {\n getState,\n options: { columnResizeMode },\n } = table;\n const { density, showColumnFilters } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n return (\n <Divider\n flexItem\n orientation=\"vertical\"\n onDoubleClick={() => column.resetSize()}\n sx={(theme: Theme) => ({\n borderRadius: '2px',\n borderRightWidth: '2px',\n cursor: 'col-resize',\n height: showColumnFilters && columnDefType === 'data' ? '4rem' : '2rem',\n mr: density === 'compact' ? '-0.5rem' : '-1rem',\n opacity: 0.8,\n position: 'absolute',\n right: '1px',\n touchAction: 'none',\n transition: column.getIsResizing() ? undefined : 'all 0.2s ease-in-out',\n userSelect: 'none',\n zIndex: 4,\n '&:active': {\n backgroundColor: theme.palette.info.main,\n opacity: 1,\n },\n })}\n onMouseDown={header.getResizeHandler()}\n onTouchStart={header.getResizeHandler()}\n style={{\n transform: column.getIsResizing()\n ? `translateX(${\n (getState().columnSizingInfo.deltaOffset ?? 0) /\n (columnResizeMode === 'onChange' ? 16 : 1)\n }px)`\n : 'none',\n }}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { TableSortLabel, Tooltip } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, table }) => {\n const {\n options: { localization },\n } = table;\n const { column } = header;\n const { columnDef } = column;\n\n const sortTooltip = !!column.getIsSorted()\n ? column.getIsSorted() === 'desc'\n ? localization.sortedByColumnDesc.replace('{column}', columnDef.header)\n : localization.sortedByColumnAsc.replace('{column}', columnDef.header)\n : localization.unsorted;\n\n return (\n <Tooltip arrow placement=\"top\" title={sortTooltip}>\n <TableSortLabel\n aria-label={sortTooltip}\n active={!!column.getIsSorted()}\n direction={\n column.getIsSorted()\n ? (column.getIsSorted() as 'asc' | 'desc')\n : undefined\n }\n sx={{\n width: '2ch',\n transform: 'translateX(-0.5ch)',\n }}\n />\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, ReactNode } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten, useTheme } from '@mui/material';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_TableHeadCellGrabHandle } from './MRT_TableHeadCellGrabHandle';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({ header, table }) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnDragging,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n setCurrentHoveredColumn,\n } = table;\n const { density, currentDraggingColumn, currentHoveredColumn } = getState();\n const { column } = header;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, table })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, table })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderTop: draggingBorder,\n }\n : undefined;\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\n\n const tableHeadCellRef = React.useRef<HTMLTableCellElement>(null);\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n onDragEnter={handleDragEnter}\n ref={tableHeadCellRef}\n {...tableCellProps}\n sx={(theme: Theme) => ({\n backgroundColor:\n column.getIsPinned() && columnDefType !== 'group'\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : 'inherit',\n backgroundImage: 'inherit',\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n fontWeight: 'bold',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pb: columnDefType === 'display' ? 0 : undefined,\n position:\n column.getIsPinned() && columnDefType !== 'group'\n ? 'sticky'\n : undefined,\n pt:\n columnDefType === 'group'\n ? 0\n : density === 'compact'\n ? '0.25'\n : density === 'comfortable'\n ? '.75rem'\n : '1.25rem',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n transition: `all ${enableColumnResizing ? 0 : '0.2s'} ease-in-out`,\n userSelect: enableMultiSort && column.getCanSort() ? 'none' : undefined,\n verticalAlign: 'top',\n zIndex:\n column.getIsResizing() || currentDraggingColumn?.id === column.id\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: header.getSize(),\n })}\n >\n {header.isPlaceholder ? null : (\n <Box\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n tableCellProps?.align === 'right'\n ? 'flex-end'\n : columnDefType === 'group' ||\n tableCellProps?.align === 'center'\n ? 'center'\n : 'space-between',\n position: 'relative',\n width: '100%',\n }}\n >\n <Box\n onClick={column.getToggleSortingHandler()}\n sx={{\n alignItems: 'center',\n cursor:\n column.getCanSort() && columnDefType !== 'group'\n ? 'pointer'\n : undefined,\n display: 'flex',\n flexWrap: 'nowrap',\n m: tableCellProps?.align === 'center' ? 'auto' : undefined,\n pl:\n tableCellProps?.align === 'center' && column.getCanSort()\n ? '1rem'\n : undefined,\n whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n {columnDefType !== 'group' && (\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {((enableColumnDragging &&\n columnDef.enableColumnDragging !== false) ||\n (enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_TableHeadCellGrabHandle\n column={column}\n table={table}\n tableHeadCellRef={tableHeadCellRef}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n )}\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, table }) => {\n const {\n options: { muiTableHeadRowProps },\n } = table;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, table })\n : muiTableHeadRowProps;\n\n return (\n <TableRow\n {...tableRowProps}\n sx={(theme) => ({\n boxShadow: `4px 0 8px ${alpha(theme.palette.common.black, 0.1)}`,\n backgroundColor: lighten(theme.palette.background.default, 0.04),\n ...(tableRowProps?.sx as any),\n })}\n >\n {headerGroup.headers.map((header: MRT_Header, index) => (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableHead } from '@mui/material';\nimport { MRT_TableHeadRow } from './MRT_TableHeadRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ table }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = table;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ table })\n : muiTableHeadProps;\n\n return (\n <TableHead {...tableHeadProps}>\n {getHeaderGroups().map((headerGroup) => (\n <MRT_TableHeadRow\n headerGroup={headerGroup as any}\n key={headerGroup.id}\n table={table}\n />\n ))}\n </TableHead>\n );\n};\n","import React, {\n ChangeEvent,\n FC,\n FocusEvent,\n MouseEvent,\n useState,\n} from 'react';\nimport { TextField } from '@mui/material';\nimport type { MRT_Cell, MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n table: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, table }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = table;\n const { column, row } = cell;\n const { columnDef } = column;\n\n const [value, setValue] = useState(cell.getValue<string>());\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, table });\n onCellEditChange?.({ event, cell, table });\n };\n\n const handleBlur = (event: FocusEvent<HTMLInputElement>) => {\n if (getState().currentEditingRow) {\n if (!row._valuesCache) row._valuesCache = {};\n (row._valuesCache as Record<string, any>)[column.id] = value;\n setCurrentEditingRow({ ...getState().currentEditingRow } as MRT_Row);\n }\n setCurrentEditingCell(null);\n columnDef.onCellEditBlur?.({ event, cell, table });\n onCellEditBlur?.({ event, cell, table });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, table })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellEditTextFieldProps;\n\n const textFieldProps = {\n ...mTableBodyCellEditTextFieldProps,\n ...mcTableBodyCellEditTextFieldProps,\n };\n\n if (enableEditing && columnDef.enableEditing !== false && columnDef.Edit) {\n return <>{columnDef.Edit?.({ cell, table })}</>;\n }\n\n return (\n <TextField\n id={`mrt-${tableId}-edit-cell-text-field-${cell.id}`}\n margin=\"dense\"\n onBlur={handleBlur}\n onChange={handleChange}\n onClick={(e: MouseEvent<HTMLInputElement>) => e.stopPropagation()}\n placeholder={columnDef.header}\n value={value}\n variant=\"standard\"\n {...textFieldProps}\n />\n );\n};\n","import React, { FC, ReactNode, useState } from 'react';\nimport { Button, Tooltip } from '@mui/material';\nimport { MRT_Cell, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n children: ReactNode;\n table: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, table }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = table;\n const { column } = cell;\n const { columnDef } = column;\n\n const [copied, setCopied] = useState(false);\n\n const handleCopy = (text: unknown) => {\n navigator.clipboard.writeText(text as string);\n setCopied(true);\n setTimeout(() => setCopied(false), 4000);\n };\n\n const mTableBodyCellCopyButtonProps =\n muiTableBodyCellCopyButtonProps instanceof Function\n ? muiTableBodyCellCopyButtonProps({ cell, table })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n table,\n })\n : columnDef.muiTableBodyCellCopyButtonProps;\n\n const buttonProps = {\n ...mTableBodyCellCopyButtonProps,\n ...mcTableBodyCellCopyButtonProps,\n };\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={copied ? localization.copiedToClipboard : localization.clickToCopy}\n >\n <Button\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={(theme) => ({\n backgroundColor: 'transparent',\n border: 'none',\n color: 'inherit',\n cursor: 'copy',\n fontFamily: 'inherit',\n fontSize: 'inherit',\n letterSpacing: 'inherit',\n m: '-0.25rem',\n minWidth: 'unset',\n textAlign: 'inherit',\n textTransform: 'inherit',\n ...(buttonProps?.sx instanceof Function\n ? buttonProps.sx(theme)\n : (buttonProps?.sx as any)),\n })}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { DragEvent, FC, RefObject } from 'react';\nimport { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\n\ninterface Props {\n cell: MRT_Cell;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRowGrabHandle: FC<Props> = ({\n cell,\n rowRef,\n table,\n}) => {\n const {\n options: { muiTableBodyRowDragHandleProps, onRowDrop },\n } = table;\n\n const iconButtonProps =\n muiTableBodyRowDragHandleProps instanceof Function\n ? muiTableBodyRowDragHandleProps({ row: cell.row, table })\n : muiTableBodyRowDragHandleProps;\n\n const handleDragStart = (e: DragEvent<HTMLButtonElement>) => {\n e.dataTransfer.setDragImage(rowRef.current as HTMLElement, 0, 0);\n table.setCurrentDraggingRow(cell.row as any);\n };\n\n const handleDragEnd = (event: DragEvent<HTMLButtonElement>) => {\n onRowDrop?.({\n event,\n draggedRow: table.getState().currentDraggingRow as any,\n targetRow: table.getState().currentHoveredRow as any,\n });\n table.setCurrentDraggingRow(null);\n table.setCurrentHoveredRow(null);\n };\n\n return (\n <MRT_GrabHandleButton\n iconButtonProps={iconButtonProps}\n onDragStart={handleDragStart}\n onDragEnd={handleDragEnd}\n table={table}\n />\n );\n};\n","import React, { DragEvent, FC, MouseEvent, RefObject, useMemo } from 'react';\nimport {\n alpha,\n darken,\n lighten,\n Skeleton,\n TableCell,\n useTheme,\n} from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport type { MRT_Cell, MRT_TableInstance } from '..';\nimport { MRT_TableBodyRowGrabHandle } from './MRT_TableBodyRowGrabHandle';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n rowRef: RefObject<HTMLTableRowElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n rowRef,\n table,\n}) => {\n const theme = useTheme();\n const {\n getState,\n options: {\n editingMode,\n enableClickToCopy,\n enableColumnOrdering,\n enableEditing,\n enablePagination,\n enableRowNumbers,\n muiTableBodyCellProps,\n muiTableBodyCellSkeletonProps,\n rowNumberMode,\n tableId,\n },\n setCurrentEditingCell,\n setCurrentHoveredColumn,\n } = table;\n const {\n currentDraggingColumn,\n currentEditingCell,\n currentEditingRow,\n currentHoveredColumn,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, table })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, table })\n : columnDef.muiTableBodyCellProps;\n\n const tableCellProps = {\n ...mTableCellBodyProps,\n ...mcTableCellBodyProps,\n };\n\n const skeletonWidth = useMemo(\n () =>\n columnDefType === 'display'\n ? column.getSize() / 2\n : Math.random() * (column.getSize() - column.getSize() / 3) +\n column.getSize() / 3,\n [],\n );\n\n const isEditable =\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false;\n\n const isEditing =\n isEditable &&\n (editingMode === 'table' ||\n currentEditingRow?.id === row.id ||\n currentEditingCell?.id === cell.id);\n\n const handleDoubleClick = (_event: MouseEvent<HTMLTableCellElement>) => {\n if (\n (enableEditing || columnDef.enableEditing) &&\n columnDef.enableEditing !== false &&\n editingMode === 'cell'\n ) {\n setCurrentEditingCell(cell);\n setTimeout(() => {\n const textField = document.getElementById(\n `mrt-${tableId}-edit-cell-text-field-${cell.id}`,\n ) as HTMLInputElement;\n if (textField) {\n textField.focus();\n textField.select();\n }\n }, 200);\n }\n };\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n table.getLeftLeafHeaders().length - 1 === column.getPinnedIndex()\n );\n };\n\n const getIsFirstRightPinnedColumn = () => {\n return column.getIsPinned() === 'right' && column.getPinnedIndex() === 0;\n };\n\n const getTotalRight = () => {\n return (\n (table.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) * 150\n );\n };\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableColumnOrdering && currentDraggingColumn) {\n setCurrentHoveredColumn(\n columnDef.enableColumnOrdering !== false ? column : null,\n );\n }\n };\n\n const draggingBorder =\n currentDraggingColumn?.id === column.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredColumn?.id === column.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n borderLeft: draggingBorder,\n borderRight: draggingBorder,\n borderBottom:\n row.index ===\n (enablePagination\n ? table.getRowModel()\n : table.getPrePaginationRowModel()\n ).rows.length -\n 1\n ? draggingBorder\n : undefined,\n }\n : undefined;\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n onDragEnter={handleDragEnter}\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: column.getIsPinned()\n ? alpha(lighten(theme.palette.background.default, 0.04), 0.95)\n : undefined,\n boxShadow: getIsLastLeftPinnedColumn()\n ? `4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : getIsFirstRightPinnedColumn()\n ? `-4px 0 4px -2px ${alpha(theme.palette.common.black, 0.1)}`\n : undefined,\n cursor: isEditable && editingMode === 'cell' ? 'pointer' : 'text',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n opacity:\n currentDraggingColumn?.id === column.id ||\n currentHoveredColumn?.id === column.id\n ? 0.5\n : 1,\n overflow: 'hidden',\n p:\n density === 'compact'\n ? columnDefType === 'display'\n ? '0 0.5rem'\n : '0.5rem'\n : density === 'comfortable'\n ? columnDefType === 'display'\n ? '0.5rem 0.75rem'\n : '1rem'\n : columnDefType === 'display'\n ? '1rem 1.25rem'\n : '1.5rem',\n pl:\n column.id === 'mrt-row-expand'\n ? `${\n row.depth +\n (density === 'compact'\n ? 0.5\n : density === 'comfortable'\n ? 0.75\n : 1.25)\n }rem`\n : undefined,\n position: column.getIsPinned() ? 'sticky' : 'relative',\n right:\n column.getIsPinned() === 'right' ? `${getTotalRight()}px` : undefined,\n textOverflow: columnDefType !== 'display' ? 'ellipsis' : undefined,\n transition: 'all 0.2s ease-in-out',\n whiteSpace: density === 'compact' ? 'nowrap' : 'normal',\n zIndex:\n currentDraggingColumn?.id === column.id\n ? 2\n : column.getIsPinned()\n ? 1\n : undefined,\n '&:hover': {\n backgroundColor:\n enableHover && enableEditing && editingMode !== 'row'\n ? theme.palette.mode === 'dark'\n ? `${lighten(\n theme.palette.background.default,\n 0.13,\n )} !important`\n : `${darken(theme.palette.background.default, 0.07)} !important`\n : undefined,\n },\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n ...draggingBorders,\n maxWidth: `min(${column.getSize()}px, fit-content)`,\n minWidth: `max(${column.getSize()}px, ${columnDef.minSize ?? 30}px)`,\n width: column.getSize(),\n })}\n >\n <>\n {cell.getIsPlaceholder() ? null : isLoading || showSkeletons ? (\n <Skeleton\n animation=\"wave\"\n height={20}\n width={skeletonWidth}\n {...muiTableBodyCellSkeletonProps}\n />\n ) : enableRowNumbers &&\n rowNumberMode === 'static' &&\n column.id === 'mrt-row-numbers' ? (\n rowIndex + 1\n ) : column.id === 'mrt-row-drag' ? (\n <MRT_TableBodyRowGrabHandle\n cell={cell}\n rowRef={rowRef}\n table={table}\n />\n ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, table })\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} table={table} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} table={table}>\n <>{columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}</>\n </MRT_CopyButton>\n {cell.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, table }) ?? cell.renderValue()}\n {cell.getIsGrouped() && <> ({row.subRows?.length ?? ''})</>}\n </>\n )}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, TableCell, TableRow } from '@mui/material';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, table }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, table })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={(theme) => ({\n borderBottom: !row.getIsExpanded() ? 'none' : undefined,\n pb: row.getIsExpanded() ? '1rem' : 0,\n pt: row.getIsExpanded() ? '1rem' : 0,\n transition: 'all 0.2s ease-in-out',\n width: `${table.getTotalSize()}px`,\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, table })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { DragEvent, FC, useRef } from 'react';\nimport { darken, lighten, TableRow, useTheme } from '@mui/material';\nimport { MRT_TableBodyCell } from './MRT_TableBodyCell';\nimport { MRT_TableDetailPanel } from './MRT_TableDetailPanel';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n row: MRT_Row;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, table }) => {\n const theme = useTheme();\n const {\n getIsSomeColumnsPinned,\n getState,\n options: { enableRowOrdering, muiTableBodyRowProps, renderDetailPanel },\n setCurrentHoveredRow,\n } = table;\n const { currentDraggingRow, currentHoveredRow } = getState();\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n const handleDragEnter = (_e: DragEvent) => {\n if (enableRowOrdering && currentDraggingRow) {\n setCurrentHoveredRow(row);\n }\n };\n\n const rowRef = useRef<HTMLTableRowElement>(null);\n\n const draggingBorder =\n currentDraggingRow?.id === row.id\n ? `1px dashed ${theme.palette.divider}`\n : currentHoveredRow?.id === row.id\n ? `2px dashed ${theme.palette.primary.main}`\n : undefined;\n\n const draggingBorders = draggingBorder\n ? {\n border: draggingBorder,\n }\n : undefined;\n\n return (\n <>\n <TableRow\n onDragEnter={handleDragEnter}\n hover\n selected={row.getIsSelected()}\n ref={rowRef}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\n opacity:\n currentDraggingRow?.id === row.id ||\n currentHoveredRow?.id === row.id\n ? 0.5\n : 1,\n transition: 'all 0.2s ease-in-out',\n '&:hover td': {\n backgroundColor:\n tableRowProps?.hover !== false && getIsSomeColumnsPinned()\n ? theme.palette.mode === 'dark'\n ? `${lighten(theme.palette.background.default, 0.12)}`\n : `${darken(theme.palette.background.default, 0.05)}`\n : undefined,\n },\n ...(tableRowProps?.sx instanceof Function\n ? tableRowProps.sx(theme)\n : (tableRowProps?.sx as any)),\n ...draggingBorders,\n })}\n >\n {row?.getVisibleCells()?.map?.((cell) => (\n <MRT_TableBodyCell\n cell={cell}\n key={cell.id}\n enableHover={tableRowProps?.hover !== false}\n rowIndex={rowIndex}\n rowRef={rowRef}\n table={table}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} table={table} />\n )}\n </>\n );\n};\n","import React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport { rankGlobalFuzzy } from '../sortingFns';\nimport type { MRT_Row, MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ table, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = table;\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ table })\n : muiTableBodyProps;\n\n const getIsSomeColumnsSorted = () => {\n return Object.values(sorting).some(Boolean);\n };\n\n const rows = useMemo(() => {\n if (\n enableGlobalFilterRankedResults &&\n globalFilter &&\n !getIsSomeColumnsSorted()\n ) {\n const rankedRows = getPrePaginationRowModel().rows.sort((a, b) =>\n rankGlobalFuzzy(a, b),\n );\n if (enablePagination) {\n return rankedRows.slice(0, pagination.pageSize);\n }\n return rankedRows;\n }\n\n return enablePagination\n ? getRowModel().rows\n : getPrePaginationRowModel().rows;\n }, [\n enableGlobalFilterRankedResults,\n (enableGlobalFilterRankedResults && globalFilter) || !enablePagination\n ? getPrePaginationRowModel().rows\n : getRowModel().rows,\n globalFilter,\n ]);\n\n const rowVirtualizer = enableRowVirtualization\n ? useVirtual({\n // estimateSize: () => (density === 'compact' ? 25 : 50),\n overscan: density === 'compact' ? 30 : 10,\n parentRef: tableContainerRef,\n size: rows.length,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const virtualRows = enableRowVirtualization\n ? rowVirtualizer.virtualItems\n : [];\n\n let paddingTop = 0;\n let paddingBottom = 0;\n if (enableRowVirtualization) {\n paddingTop = virtualRows.length > 0 ? virtualRows[0].start : 0;\n paddingBottom =\n virtualRows.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n }\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {(enableRowVirtualization ? virtualRows : rows).map(\n (rowOrVirtualRow: any, rowIndex: number) => {\n const row = enableRowVirtualization\n ? (rows[rowOrVirtualRow.index] as MRT_Row)\n : (rowOrVirtualRow as MRT_Row);\n return (\n <MRT_TableBodyRow\n key={row.id}\n row={row}\n rowIndex={\n enableRowVirtualization ? rowOrVirtualRow.index : rowIndex\n }\n table={table}\n />\n );\n },\n )}\n {enableRowVirtualization && paddingBottom > 0 && (\n <tr>\n <td style={{ height: `${paddingBottom}px` }} />\n </tr>\n )}\n </TableBody>\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, TableCell } from '@mui/material';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n footer: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, table }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = table;\n const { density } = getState();\n const { column } = footer;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, table })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, table })\n : columnDef.muiTableFooterCellProps;\n\n const tableCellProps = {\n ...mTableFooterCellProps,\n ...mcTableFooterCellProps,\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={footer.colSpan}\n variant=\"head\"\n {...tableCellProps}\n sx={(theme) => ({\n backgroundColor: theme.palette.background.default,\n backgroundImage: `linear-gradient(${alpha(\n theme.palette.common.white,\n 0.05,\n )},${alpha(theme.palette.common.white, 0.05)})`,\n fontWeight: 'bold',\n maxWidth: `${column.getSize()}px`,\n minWidth: `${column.getSize()}px`,\n p:\n density === 'compact'\n ? '0.5rem'\n : density === 'comfortable'\n ? '1rem'\n : '1.5rem',\n transition: `all ${enableColumnResizing ? '10ms' : '0.2s'} ease-in-out`,\n width: column.getSize(),\n verticalAlign: 'text-top',\n ...(tableCellProps?.sx instanceof Function\n ? tableCellProps.sx(theme)\n : (tableCellProps?.sx as any)),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n table,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n null}\n </>\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { TableRow } from '@mui/material';\nimport { MRT_TableFooterCell } from './MRT_TableFooterCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n footerGroup: MRT_HeaderGroup;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, table }) => {\n const {\n options: { muiTableFooterRowProps },\n } = table;\n\n // if no content in row, skip row\n if (\n !footerGroup.headers?.some(\n (header) =>\n (typeof header.column.columnDef.footer === 'string' &&\n !!header.column.columnDef.footer) ||\n header.column.columnDef.Footer,\n )\n )\n return null;\n\n const tableRowProps =\n muiTableFooterRowProps instanceof Function\n ? muiTableFooterRowProps({ footerGroup, table })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell footer={footer} key={footer.id} table={table} />\n ))}\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { TableFooter } from '@mui/material';\nimport { MRT_TableFooterRow } from './MRT_TableFooterRow';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ table }) => {\n const {\n getFooterGroups,\n options: { muiTableFooterProps },\n } = table;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ table })\n : muiTableFooterProps;\n\n return (\n <TableFooter {...tableFooterProps}>\n {getFooterGroups().map((footerGroup) => (\n <MRT_TableFooterRow\n footerGroup={footerGroup as any}\n key={footerGroup.id}\n table={table}\n />\n ))}\n </TableFooter>\n );\n};\n","import React, { FC, RefObject } from 'react';\nimport { Table } from '@mui/material';\nimport { MRT_TableHead } from '../head/MRT_TableHead';\nimport { MRT_TableBody } from '../body/MRT_TableBody';\nimport { MRT_TableFooter } from '../footer/MRT_TableFooter';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n tableContainerRef: RefObject<HTMLDivElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, table }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ table })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={(theme) => ({\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...(tableProps?.sx instanceof Function\n ? tableProps.sx(theme)\n : (tableProps?.sx as any)),\n })}\n >\n {enableTableHead && <MRT_TableHead table={table} />}\n <MRT_TableBody tableContainerRef={tableContainerRef} table={table} />\n {enableTableFooter && <MRT_TableFooter table={table} />}\n </Table>\n );\n};\n","import React, { FC, useEffect, useLayoutEffect, useState } from 'react';\nimport { TableContainer } from '@mui/material';\nimport { MRT_Table } from './MRT_Table';\nimport type { MRT_TableInstance } from '..';\n\nconst useIsomorphicLayoutEffect =\n typeof window !== 'undefined' ? useLayoutEffect : useEffect;\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ table }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = table;\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ table })\n : muiTableContainerProps;\n\n useIsomorphicLayoutEffect(() => {\n const topToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-top`)\n ?.offsetHeight ?? 0\n : 0;\n\n const bottomToolbarHeight =\n typeof document !== 'undefined'\n ? document?.getElementById(`mrt-${tableId}-toolbar-bottom`)\n ?.offsetHeight ?? 0\n : 0;\n\n setTotalToolbarHeight(topToolbarHeight + bottomToolbarHeight);\n });\n\n const tableContainerRef = React.useRef<HTMLDivElement>(null);\n\n return (\n <TableContainer\n ref={tableContainerRef}\n {...tableContainerProps}\n sx={(theme) => ({\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...(tableContainerProps?.sx instanceof Function\n ? tableContainerProps.sx(theme)\n : (tableContainerProps?.sx as any)),\n })}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} table={table} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { MRT_ToolbarTop } from '../toolbar/MRT_ToolbarTop';\nimport { MRT_ToolbarBottom } from '../toolbar/MRT_ToolbarBottom';\nimport { MRT_TableContainer } from './MRT_TableContainer';\nimport type { MRT_TableInstance } from '..';\n\ninterface Props {\n table: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ table }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = table;\n const { isFullScreen } = getState();\n\n useEffect(() => {\n if (typeof window !== 'undefined') {\n if (isFullScreen) {\n document.body.style.height = '100vh';\n } else {\n document.body.style.height = 'auto';\n }\n }\n }, [isFullScreen]);\n\n const tablePaperProps =\n muiTablePaperProps instanceof Function\n ? muiTablePaperProps({ table })\n : muiTablePaperProps;\n\n return (\n <Paper\n elevation={2}\n {...tablePaperProps}\n sx={{\n transition: 'all 0.2s ease-in-out',\n ...tablePaperProps?.sx,\n }}\n style={{\n ...tablePaperProps?.style,\n height: isFullScreen ? '100vh' : undefined,\n margin: isFullScreen ? '0' : undefined,\n maxHeight: isFullScreen ? '100vh' : undefined,\n maxWidth: isFullScreen ? '100vw' : undefined,\n padding: isFullScreen ? '0' : undefined,\n width: isFullScreen ? '100vw' : undefined,\n }}\n >\n {enableToolbarTop && <MRT_ToolbarTop table={table} />}\n <MRT_TableContainer table={table} />\n {enableToolbarBottom && <MRT_ToolbarBottom table={table} />}\n </Paper>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n TableState,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useReactTable,\n} from '@tanstack/react-table';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport { MRT_ExpandAllButton } from '../buttons/MRT_ExpandAllButton';\nimport { MRT_ExpandButton } from '../buttons/MRT_ExpandButton';\nimport { MRT_ToggleRowActionMenuButton } from '../buttons/MRT_ToggleRowActionMenuButton';\nimport { MRT_SelectCheckbox } from '../inputs/MRT_SelectCheckbox';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../column.utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport type {\n MRT_Cell,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n MaterialReactTableProps,\n} from '..';\n\nconst defaultDisplayColumnDefOptions = {\n columnDefType: 'display',\n enableClickToCopy: false,\n enableColumnActions: false,\n enableColumnDragging: false,\n enableColumnFilter: false,\n enableColumnOrdering: false,\n enableEditing: false,\n enableGlobalFilter: false,\n enableGrouping: false,\n enableHiding: false,\n enablePinning: false,\n enableResizing: false,\n enableSorting: false,\n} as Partial<MRT_ColumnDef>;\n\nexport const MRT_TableRoot = <TData extends Record<string, any> = {}>(\n props: MaterialReactTableProps<TData>,\n) => {\n const [tableId, setIdPrefix] = useState(props.tableId);\n useEffect(\n () =>\n setIdPrefix(props.tableId ?? Math.random().toString(36).substring(2, 9)),\n [props.tableId],\n );\n\n const initialState: Partial<MRT_TableState<TData>> = useMemo(() => {\n const initState = props.initialState ?? {};\n initState.columnOrder =\n initState.columnOrder ?? getDefaultColumnOrderIds(props);\n return initState;\n }, []);\n\n const [columnOrder, setColumnOrder] = useState(\n initialState.columnOrder ?? [],\n );\n const [currentDraggingColumn, setCurrentDraggingColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentDraggingColumn ?? null,\n );\n const [currentDraggingRow, setCurrentDraggingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentDraggingRow ?? null);\n const [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<TData> | null>(initialState.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] =\n useState<MRT_Row<TData> | null>(initialState.currentEditingRow ?? null);\n const [currentHoveredColumn, setCurrentHoveredColumn] =\n useState<MRT_Column<TData> | null>(\n initialState.currentHoveredColumn ?? null,\n );\n const [currentHoveredRow, setCurrentHoveredRow] =\n useState<MRT_Row<TData> | null>(initialState.currentHoveredRow ?? null);\n const [density, setDensity] = useState(\n initialState?.density ?? 'comfortable',\n );\n const [isFullScreen, setIsFullScreen] = useState(\n initialState?.isFullScreen ?? false,\n );\n const [showAlertBanner, setShowAlertBanner] = useState(\n props.initialState?.showAlertBanner ?? false,\n );\n const [showColumnFilters, setShowFilters] = useState(\n initialState?.showColumnFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<TData>[]).map(\n (col) => ({\n [col.id?.toString() ?? col.accessorKey?.toString() ?? '']:\n col.filterFn instanceof Function\n ? col.filterFn.name ?? 'custom'\n : col.filterFn ??\n initialState?.currentFilterFns?.[\n col.id?.toString() ?? col.accessorKey?.toString() ?? ''\n ] ??\n (!!col.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n }),\n ),\n ),\n );\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] =\n useState<MRT_FilterOption>(\n props.globalFilterFn instanceof String\n ? (props.globalFilterFn as MRT_FilterOption)\n : 'fuzzy',\n );\n\n const displayColumns = useMemo(\n () =>\n (\n [\n columnOrder.includes('mrt-row-drag') && {\n header: props.localization?.move,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-drag'],\n id: 'mrt-row-drag',\n },\n columnOrder.includes('mrt-row-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n header: props.localization?.actions,\n size: 70,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-actions'],\n id: 'mrt-row-actions',\n },\n columnOrder.includes('mrt-row-expand') && {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton table={table} />\n ) : null,\n header: props.localization?.expand,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-expand'],\n id: 'mrt-row-expand',\n },\n columnOrder.includes('mrt-row-select') && {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} table={table} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll table={table} />\n ) : null,\n header: props.localization?.select,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-select'],\n id: 'mrt-row-select',\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n size: 60,\n ...defaultDisplayColumnDefOptions,\n ...props.displayColumnDefOptions?.['mrt-row-numbers'],\n id: 'mrt-row-numbers',\n },\n ] as MRT_ColumnDef<TData>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.displayColumnDefOptions,\n props.editingMode,\n props.enableColumnDragging,\n props.enableColumnOrdering,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowDragging,\n props.enableRowNumbers,\n props.enableRowOrdering,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n ],\n );\n\n const columnDefs = useMemo(\n () =>\n prepareColumns([...displayColumns, ...props.columns], currentFilterFns),\n [currentFilterFns, displayColumns, props.columns],\n );\n\n const data: TData[] = useMemo(\n () =>\n (props.state?.isLoading || props.state?.showSkeletons) &&\n !props.data.length\n ? [...Array(10).fill(null)].map(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map(\n (col) => ({\n [col.id ?? col.accessorKey ?? '']: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const table = {\n ...useReactTable({\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns: columnDefs,\n data,\n getSubRows: (row) => row?.subRows,\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentDraggingColumn,\n currentDraggingRow,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n currentHoveredColumn,\n currentHoveredRow,\n density,\n isFullScreen,\n showAlertBanner,\n showColumnFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentDraggingColumn:\n props.onCurrentDraggingColumnChange ?? setCurrentDraggingColumn,\n setCurrentDraggingRow:\n props.onCurrentDraggingRowChange ?? setCurrentDraggingRow,\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\n setCurrentHoveredColumn:\n props.onCurrentHoveredColumnChange ?? setCurrentHoveredColumn,\n setCurrentHoveredRow:\n props.onCurrentHoveredRowChange ?? setCurrentHoveredRow,\n setDensity: props.onDensityChange ?? setDensity,\n setIsFullScreen: props.onIsFullScreenChange ?? setIsFullScreen,\n setShowAlertBanner: props.onShowAlertBannerChange ?? setShowAlertBanner,\n setShowFilters: props.onShowFiltersChange ?? setShowFilters,\n setShowGlobalFilter: props.onShowGlobalFilterChange ?? setShowGlobalFilter,\n } as MRT_TableInstance;\n\n useEffect(() => props?.onTableInstanceChange?.(table as any), [table]);\n\n return (\n <>\n <Dialog\n PaperComponent={Box}\n TransitionComponent={Grow}\n disablePortal\n fullScreen\n keepMounted={false}\n onClose={() => setIsFullScreen(false)}\n open={isFullScreen}\n transitionDuration={400}\n >\n <MRT_TablePaper table={table} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper table={table} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n DragEvent,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport type {\n AlertProps,\n ButtonProps,\n CheckboxProps,\n IconButtonProps,\n LinearProgressProps,\n PaperProps,\n SkeletonProps,\n TableBodyProps,\n TableCellProps,\n TableContainerProps,\n TableFooterProps,\n TableHeadProps,\n TablePaginationProps,\n TableProps,\n TableRowProps,\n TextFieldProps,\n ToolbarProps,\n} from '@mui/material';\nimport type {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n Header,\n HeaderGroup,\n OnChangeFn,\n Row,\n SortingFn,\n Table,\n TableOptions,\n TableState,\n} from '@tanstack/react-table';\nimport type { Options as VirtualizerOptions } from 'react-virtual';\nimport { MRT_Localization, MRT_DefaultLocalization_EN } from './localization';\nimport { MRT_Default_Icons, MRT_Icons } from './icons';\nimport { MRT_TableRoot } from './table/MRT_TableRoot';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\ntype LiteralUnion<T extends U, U = string> = T | (U & Record<never, never>);\n\nexport interface MRT_RowModel<TData extends Record<string, any> = {}> {\n flatRows: MRT_Row<TData>[];\n rows: MRT_Row<TData>[];\n rowsById: { [key: string]: MRT_Row<TData> };\n}\n\nexport type MRT_TableInstance<TData extends Record<string, any> = {}> = Omit<\n Table<TData>,\n | 'getAllColumns'\n | 'getAllFlatColumns'\n | 'getAllLeafColumns'\n | 'getCenterLeafColumns'\n | 'getColumn'\n | 'getExpandedRowModel'\n | 'getFlatHeaders'\n | 'getLeftLeafColumns'\n | 'getPaginationRowModel'\n | 'getPreFilteredRowModel'\n | 'getPrePaginationRowModel'\n | 'getRightLeafColumns'\n | 'getRowModel'\n | 'getSelectedRowModel'\n | 'getState'\n | 'options'\n> & {\n getAllColumns: () => MRT_Column<TData>[];\n getAllFlatColumns: () => MRT_Column<TData>[];\n getAllLeafColumns: () => MRT_Column<TData>[];\n getCenterLeafColumns: () => MRT_Column<TData>[];\n getColumn: (columnId: string) => MRT_Column<TData>;\n getExpandedRowModel: () => MRT_RowModel<TData>;\n getFlatHeaders: () => MRT_Header<TData>[];\n getLeftLeafColumns: () => MRT_Column<TData>[];\n getPaginationRowModel: () => MRT_RowModel<TData>;\n getPreFilteredRowModel: () => MRT_RowModel<TData>;\n getPrePaginationRowModel: () => MRT_RowModel<TData>;\n getRightLeafColumns: () => MRT_Column<TData>[];\n getRowModel: () => MRT_RowModel<TData>;\n getSelectedRowModel: () => MRT_RowModel<TData>;\n getState: () => MRT_TableState<TData>;\n options: MaterialReactTableProps<TData> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentDraggingColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentDraggingRow: Dispatch<SetStateAction<MRT_Row<TData> | null>>;\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterOption;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterOption>>;\n setCurrentHoveredColumn: Dispatch<SetStateAction<MRT_Column<TData> | null>>;\n setCurrentHoveredRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setDensity: Dispatch<SetStateAction<'comfortable' | 'compact' | 'spacious'>>;\n setIsFullScreen: Dispatch<SetStateAction<boolean>>;\n setShowAlertBanner: Dispatch<SetStateAction<boolean>>;\n setShowFilters: Dispatch<SetStateAction<boolean>>;\n setShowGlobalFilter: Dispatch<SetStateAction<boolean>>;\n};\n\nexport type MRT_TableState<TData extends Record<string, any> = {}> =\n TableState & {\n currentDraggingColumn: MRT_Column<TData> | null;\n currentDraggingRow: MRT_Row<TData> | null;\n currentEditingCell: MRT_Cell<TData> | null;\n currentEditingRow: MRT_Row<TData> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n currentHoveredColumn: MRT_Column<TData> | null;\n currentHoveredRow: MRT_Row<TData> | null;\n density: 'comfortable' | 'compact' | 'spacious';\n isFullScreen: boolean;\n isLoading: boolean;\n showAlertBanner: boolean;\n showColumnFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n };\n\nexport type MRT_ColumnDef<TData extends Record<string, any> = {}> = Omit<\n ColumnDef<TData, unknown>,\n | 'accessorFn'\n | 'accessorKey'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'id'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode);\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify a function here to point to the correct property in the data object.\n *\n * @example accessorFn: (row) => row.username\n */\n accessorFn?: (row: TData) => any;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n * Specify which key in the row this column should use to access the correct data.\n *\n * @example accessorKey: 'username'\n */\n accessorKey?: string & keyof TData;\n /**\n * Specify what type of column this is. Either `data`, `display`, or `group`. Defaults to `data`.\n * Leave this blank if you are just creating a normal data column.\n *\n * @default 'data'\n *\n * @example columnDefType: 'display'\n */\n columnDefType?: 'data' | 'display' | 'group';\n columnFilterModeOptions?: MRT_FilterOption[] | null;\n columns?: MRT_ColumnDef<TData>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n filterFn?: MRT_FilterFn<TData>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n /**\n * footer must be a string. If you want custom JSX to render the footer, you can also specify a `Footer` option. (Capital F)\n */\n footer?: string;\n /**\n * header must be a string. If you want custom JSX to render the header, you can also specify a `Header` option. (Capital H)\n */\n header: string;\n /**\n * Either an `accessorKey` or a combination of an `accessorFn` and `id` are required for a data column definition.\n *\n * If you have also specified an `accessorFn`, MRT still needs to have a valid `id` to be able to identify the column uniquely.\n *\n * `id` defaults to the `accessorKey` or `header` if not specified.\n *\n * @default gets set to the same value as `accessorKey` by default\n */\n id?: LiteralUnion<string & keyof TData>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<TData extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<TData>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<TData extends Record<string, any> = {}> = Omit<\n Column<TData, unknown>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<TData>;\n columns?: MRT_Column<TData>[];\n filterFn?: MRT_FilterFn<TData>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<TData extends Record<string, any> = {}> = Omit<\n Header<TData, unknown>,\n 'column'\n> & {\n column: MRT_Column<TData>;\n};\n\nexport type MRT_HeaderGroup<TData extends Record<string, any> = {}> = Omit<\n HeaderGroup<TData>,\n 'headers'\n> & {\n headers: MRT_Header<TData>[];\n};\n\nexport type MRT_Row<TData extends Record<string, any> = {}> = Omit<\n Row<TData>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<TData>[];\n getVisibleCells: () => MRT_Cell<TData>[];\n subRows?: MRT_Row<TData>[];\n _valuesCache?: TData;\n};\n\nexport type MRT_Cell<TData extends Record<string, any> = {}> = Omit<\n Cell<TData, unknown>,\n 'column' | 'row'\n> & {\n column: MRT_Column<TData>;\n row: MRT_Row<TData>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<TData extends Record<string, any> = {}> =\n | SortingFn<TData>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<TData extends Record<string, any> = {}> =\n | FilterFn<TData>\n | MRT_FilterOption;\n\nexport type MRT_DisplayColumnIds =\n | 'mrt-row-drag'\n | 'mrt-row-actions'\n | 'mrt-row-expand'\n | 'mrt-row-select'\n | 'mrt-row-numbers';\n\n/**\n * `columns` and `data` props are the only required props, but there are over 150 other optional props.\n *\n * See more info on creating columns and data on the official docs site:\n * @link https://www.material-react-table.com/docs/usage\n *\n * See the full props list on the official docs site:\n * @link https://www.material-react-table.com/docs/api/props\n */\nexport type MaterialReactTableProps<TData extends Record<string, any> = {}> =\n Omit<\n Partial<TableOptions<TData>>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n > & {\n displayColumnDefOptions?: Partial<{\n [key in MRT_DisplayColumnIds]: Partial<MRT_ColumnDef>;\n }>;\n columnFilterModeOptions?: (MRT_FilterOption | string)[] | null;\n columns: MRT_ColumnDef<TData>[];\n data: TData[];\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnDragging?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableDensityToggle?: boolean;\n enableEditing?: boolean;\n enableExpandAll?: boolean;\n enableFullScreenToggle?: boolean;\n enableGlobalFilterChangeMode?: boolean;\n enableGlobalFilterRankedResults?: boolean;\n enablePagination?: boolean;\n enableRowActions?: boolean;\n enableRowDragging?: boolean;\n enableRowNumbers?: boolean;\n enableRowOrdering?: boolean;\n enableRowVirtualization?: boolean;\n enableSelectAll?: boolean;\n enableStickyHeader?: boolean;\n enableTableFooter?: boolean;\n enableTableHead?: boolean;\n enableToolbarBottom?: boolean;\n enableToolbarInternalActions?: boolean;\n enableToolbarTop?: boolean;\n enabledGlobalFilterOptions?: (MRT_FilterOption | string)[] | null;\n expandRowsFn?: (dataRow: TData) => TData[];\n icons?: Partial<MRT_Icons>;\n initialState?: Partial<MRT_TableState<TData>>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n isTopToolbar,\n table,\n }: {\n isTopToolbar: boolean;\n table: MRT_TableInstance<TData>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<TData>;\n cell: MRT_Cell<TData>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableBodyProps);\n muiTableBodyRowDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => IconButtonProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<TData>;\n row: MRT_Row<TData>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n footerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellDragHandleProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<TData>;\n column: MRT_Column<TData>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<TData>;\n headerGroup: MRT_HeaderGroup<TData>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<TData> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<TData>;\n table: MRT_TableInstance<TData>;\n }) => void;\n onColumnDrop?: ({\n event,\n draggedColumn,\n targetColumn,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedColumn: MRT_Column<TData>;\n targetColumn: MRT_Column<TData> | null;\n }) => void;\n onCurrentDraggingColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentDraggingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell<TData> | null>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onCurrentHoveredColumnChange?: OnChangeFn<MRT_Column<TData> | null>;\n onCurrentHoveredRowChange?: OnChangeFn<MRT_Row<TData> | null>;\n onDensityChange?: OnChangeFn<boolean>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => Promise<void> | void;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onRowDrop?: ({\n event,\n draggedRow,\n targetRow,\n }: {\n event: DragEvent<HTMLButtonElement>;\n draggedRow: MRT_Row<TData>;\n targetRow: MRT_Row<TData> | null;\n }) => void;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n onTableInstanceChange?: (table: MRT_TableInstance<TData>) => void;\n positionActionsColumn?: 'first' | 'last';\n positionExpandColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<TData>;\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n table,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n table: MRT_TableInstance<TData>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<TData> }\n >;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<TData>;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n state?: Partial<MRT_TableState<TData>>;\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <TData extends Record<string, any> = {}>({\n autoResetExpanded = false,\n columnResizeMode = 'onEnd',\n defaultColumn = { minSize: 40, maxSize: 1000, size: 180 },\n editingMode = 'row',\n enableColumnActions = true,\n enableColumnFilterChangeMode = false,\n enableColumnFilters = true,\n enableColumnOrdering = false,\n enableColumnResizing = false,\n enableDensityToggle = true,\n enableExpandAll = true,\n enableFilters = true,\n enableFullScreenToggle = true,\n enableGlobalFilter = true,\n enableGlobalFilterChangeMode = false,\n enableGlobalFilterRankedResults = true,\n enableGrouping = false,\n enableHiding = true,\n enableMultiRowSelection = true,\n enableMultiSort = true,\n enablePagination = true,\n enablePinning = false,\n enableRowSelection = false,\n enableSelectAll = true,\n enableSorting = true,\n enableStickyHeader = false,\n enableTableFooter = true,\n enableTableHead = true,\n enableToolbarBottom = true,\n enableToolbarInternalActions = true,\n enableToolbarTop = true,\n icons,\n localization,\n positionActionsColumn = 'first',\n positionExpandColumn = 'first',\n positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<TData>) => (\n <MRT_TableRoot\n autoResetExpanded={autoResetExpanded}\n columnResizeMode={columnResizeMode}\n defaultColumn={defaultColumn}\n editingMode={editingMode}\n enableColumnActions={enableColumnActions}\n enableColumnFilterChangeMode={enableColumnFilterChangeMode}\n enableColumnFilters={enableColumnFilters}\n enableColumnOrdering={enableColumnOrdering}\n enableColumnResizing={enableColumnResizing}\n enableDensityToggle={enableDensityToggle}\n enableExpandAll={enableExpandAll}\n enableFilters={enableFilters}\n enableFullScreenToggle={enableFullScreenToggle}\n enableGlobalFilter={enableGlobalFilter}\n enableGlobalFilterChangeMode={enableGlobalFilterChangeMode}\n enableGlobalFilterRankedResults={enableGlobalFilterRankedResults}\n enableGrouping={enableGrouping}\n enableHiding={enableHiding}\n enableMultiRowSelection={enableMultiRowSelection}\n enableMultiSort={enableMultiSort}\n enablePagination={enablePagination}\n enablePinning={enablePinning}\n enableRowSelection={enableRowSelection}\n enableSelectAll={enableSelectAll}\n enableSorting={enableSorting}\n enableStickyHeader={enableStickyHeader}\n enableTableFooter={enableTableFooter}\n enableTableHead={enableTableHead}\n enableToolbarBottom={enableToolbarBottom}\n enableToolbarInternalActions={enableToolbarInternalActions}\n enableToolbarTop={enableToolbarTop}\n icons={{ ...MRT_Default_Icons, ...icons }}\n localization={{ ...MRT_DefaultLocalization_EN, ...localization }}\n positionActionsColumn={positionActionsColumn}\n positionExpandColumn={positionExpandColumn}\n positionGlobalFilter={positionGlobalFilter}\n positionPagination={positionPagination}\n positionToolbarAlertBanner={positionToolbarAlertBanner}\n rowNumberMode={rowNumberMode}\n selectAllMode={selectAllMode}\n {...rest}\n />\n);\n"],"names":["MRT_DefaultLocalization_EN","actions","and","cancel","changeFilterMode","changeSearchMode","clearFilter","clearSearch","clearSort","clickToCopy","columnActions","copiedToClipboard","edit","expand","expandAll","filterBetween","filterBetweenInclusive","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterGreaterThanOrEqualTo","filterLessThan","filterLessThanOrEqualTo","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","move","pinToLeft","pinToRight","resetColumnSize","resetOrder","rowActions","rowNumber","rowNumbers","save","search","selectedCountOfRowCountRowsSelected","select","showAll","showAllColumns","showHideColumns","showHideFilters","showHideSearch","sortByColumnAsc","sortByColumnDesc","sortedByColumnAsc","sortedByColumnDesc","thenBy","toggleDensity","toggleFullScreen","toggleSelectAll","toggleSelectRow","toggleVisibility","ungroupByColumn","unpin","unpinAll","unsorted","MRT_Default_Icons","ArrowRightIcon","ArrowRight","CancelIcon","Cancel","CheckBoxIcon","CheckBox","ClearAllIcon","ClearAll","CloseIcon","Close","DensityLargeIcon","DensityLarge","DensityMediumIcon","DensityMedium","DensitySmallIcon","DensitySmall","DragHandleIcon","DragHandle","DynamicFeedIcon","DynamicFeed","EditIcon","Edit","ExpandLessIcon","ExpandLess","ExpandMoreIcon","ExpandMore","FilterAltIcon","FilterAlt","FilterAltOffIcon","FilterAltOff","FilterListIcon","FilterList","FilterListOffIcon","FilterListOff","FullscreenExitIcon","FullscreenExit","FullscreenIcon","Fullscreen","KeyboardDoubleArrowDownIcon","KeyboardDoubleArrowDown","MoreHorizIcon","MoreHoriz","MoreVertIcon","MoreVert","PushPinIcon","PushPin","RestartAltIcon","RestartAlt","SaveIcon","Save","SearchIcon","Search","SearchOffIcon","SearchOff","SortIcon","Sort","ViewColumnIcon","ViewColumn","VisibilityOffIcon","VisibilityOff","MRT_ExpandAllButton","table","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","getState","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","mt","undefined","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","getCanExpand","toggleExpanded","theme","getIsExpanded","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","columnFilterModeOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","symbol","label","divider","filter","filterType","includes","filterOption","id","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","prev","setFilterValue","handleSelectFilterType","selected","py","my","alignItems","display","gap","value","Box","fontSize","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","placement","disableRipple","draggable","onDragStart","onDragEnd","cursor","m","opacity","p","&:hover","backgroundColor","&:active","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toString","toLowerCase","trim","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","greaterThanOrEqualTo","lessThan","lessThanOrEqualTo","between","filterValues","betweenInclusive","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","MRT_SortingFns","sortingFns","rowA","rowB","dir","columnFiltersMeta","compareItems","alphanumeric","getColumnId","accessorKey","_columnDef$accessorKe","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","_currentCols","length","some","col","nextCols","flat","every","reorderColumn","draggedColumn","targetColumn","columnOrder","getCanPin","splice","indexOf","getDefaultColumnOrderIds","props","enableRowDragging","enableRowOrdering","positionActionsColumn","enableRowActions","enableEditing","editingMode","positionExpandColumn","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","Boolean","getLeadingDisplayColumnIds","getTrailingDisplayColumnIds","MRT_ShowHideColumnsMenuItems","allColumns","currentHoveredColumn","setCurrentHoveredColumn","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","switchChecked","getIsVisible","getLeafColumns","menuItemRef","useRef","useState","isDragging","setIsDragging","ref","onDragEnter","_e","justifyContent","outline","palette","primary","main","pl","depth","flexWrap","e","dataTransfer","setDragImage","current","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","forEach","childColumn","handleToggleColumnHidden","Typography","alignSelf","_column$columns2","c","i","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","Array","from","Set","colId","find","columnPinning","pt","Button","resetColumnPinning","Divider","commonMenuItemStyles","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleFilterByColumn","setTimeout","document","getElementById","muiTableHeadCellFilterTextFieldProps","_header$muiTableHeadC2","_document$getElementB","focus","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","showFilterModeSubMenu","filterSelectOptions","getCanSort","getIsSorted","clearSorting","ListItemIcon","toggleSorting","_localization$sortByC","replace","String","_localization$sortByC2","getCanFilter","getFilterValue","_localization$filterB","onMouseEnter","getCanGroup","toggleGrouping","old","_localization","getCanResize","resetSize","_localization$hideCol","Object","values","visible","_localization$showAll","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","_valuesCache","original","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleStartEditMode","preventDefault","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","aria-label","getToggleSelectedHandler","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","muiSearchTextFieldProps","globalFilter","showGlobalFilter","searchValue","setSearchValue","handleChangeDebounced","useCallback","debounce","target","textFieldProps","Collapse","in","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_LinearProgressBar","isTopToolbar","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","top","LinearProgress","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","TablePagination","SelectProps","MenuProps","disablePadding","component","count","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","zIndex","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","_localization$selecte","_localization$selecte2","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","left","right","AlertTitle","children","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","MRT_ShowHideColumnsButton","MRT_ToggleDensePaddingButton","setDensity","MRT_ToggleFiltersButton","showColumnFilters","MRT_ToggleGlobalFilterButton","setShowGlobalFilter","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","commonToolbarStyles","lighten","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","common","black","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","MRT_FilterTextField","inputIndex","_column$getFilterValu2","type","Date","newFilterValues","Filter","filterId","currentFilterOption","isSelectFilter","filterChipLabel","charAt","toUpperCase","slice","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","&\t.MuiSelect-icon","mr","_columnDef$filterSele","text","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","isArray","join","Grow","_column$getFilterValu","MRT_TableHeadCellGrabHandle","tableHeadCellRef","muiTableHeadCellDragHandleProps","onColumnDrop","setCurrentDraggingColumn","currentDraggingColumn","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCell","useTheme","enableColumnActions","enableColumnDragging","enableMultiSort","muiTableHeadCellProps","tableCellProps","draggingBorder","draggingBorders","borderLeft","borderRight","borderTop","headerElement","Header","TableCell","align","colSpan","getLeftLeafHeaders","getPinnedIndex","fontWeight","getStart","pb","getRightLeafHeaders","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","_columnDef$header","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","buttonProps","navigator","clipboard","writeText","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyRowGrabHandle","rowRef","muiTableBodyRowDragHandleProps","onRowDrop","setCurrentDraggingRow","draggedRow","currentDraggingRow","targetRow","currentHoveredRow","setCurrentHoveredRow","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","skeletonWidth","Math","random","isEditable","isEditing","borderBottom","getRowModel","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","_row$subRows","_row$subRows2","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","getTotalSize","MRT_TableBodyRow","hover","&:hover td","getVisibleCells","_row$getVisibleCells","MRT_TableBody","tableContainerRef","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","rankedRows","sort","a","b","v","rank","rowVirtualizer","useVirtual","overscan","parentRef","virtualRows","virtualItems","paddingTop","paddingBottom","start","totalSize","end","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","_footerGroup$headers","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","useIsomorphicLayoutEffect","window","useLayoutEffect","useEffect","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","_document","_document$getElementB2","offsetHeight","bottomToolbarHeight","_document2","_document2$getElement","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","body","tablePaperProps","Paper","elevation","padding","defaultDisplayColumnDefOptions","enableColumnFilter","enableResizing","MRT_TableRoot","setIdPrefix","substring","initialState","initState","_props$initialState2","setShowAlertBanner","assign","_col$id","_col$accessorKey","filterFn","name","_initialState$current7","_col$id2","_col$accessorKey2","_col$filterSelectOpti","globalFilterFn","displayColumns","_props$localization","displayColumnDefOptions","_props$displayColumnD","_props$localization2","_props$displayColumnD2","enableExpandAll","_props$localization3","_props$displayColumnD3","enableSelectAll","_props$localization4","_props$displayColumnD4","_props$localization5","_props$localization6","_props$displayColumnD5","columnDefs","prepareColumns","_columnDef$columns","keys","sortingFn","data","state","_props$state2","fill","_props$state3","_props$state4","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentDraggingColumnChange","onCurrentDraggingRowChange","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onCurrentHoveredColumnChange","onCurrentHoveredRowChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","onTableInstanceChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"+pBAwEO,IAAMA,EAA+C,CAC1DC,QAAS,UACTC,IAAK,MACLC,OAAQ,SACRC,iBAAkB,qBAClBC,iBAAkB,qBAClBC,YAAa,eACbC,YAAa,eACbC,UAAW,aACXC,YAAa,gBACbC,cAAe,iBACfC,kBAAmB,sBACnBC,KAAM,OACNC,OAAQ,SACRC,UAAW,aACXC,cAAe,UACfC,uBAAwB,oBACxBC,eAAgB,qBAChBC,eAAgB,WAChBC,YAAa,QACbC,eAAgB,YAChBC,aAAc,SACdC,YAAa,QACbC,kBAAmB,eACnBC,2BAA4B,2BAC5BC,eAAgB,YAChBC,wBAAyB,wBACzBC,WAAY,4BACZC,eAAgB,YAChBC,gBAAiB,aACjBC,iBAAkB,cAClBC,kBAAmB,qDACnBC,KAAM,OACNC,cAAe,oBACfC,UAAW,cACXC,QAAS,WACTC,WAAY,uBACZC,IAAK,MACLC,IAAK,MACLC,KAAM,OACNC,UAAW,cACXC,WAAY,eACZC,gBAAiB,oBACjBC,WAAY,cACZC,WAAY,cACZC,UAAW,IACXC,WAAY,cACZC,KAAM,OACNC,OAAQ,SACRC,oCACE,gDACFC,OAAQ,SACRC,QAAS,WACTC,eAAgB,mBAChBC,gBAAiB,oBACjBC,gBAAiB,oBACjBC,eAAgB,mBAChBC,gBAAiB,6BACjBC,iBAAkB,8BAClBC,kBAAmB,+BACnBC,mBAAoB,gCACpBC,OAAQ,aACRC,cAAe,iBACfC,iBAAkB,qBAClBC,gBAAiB,oBACjBC,gBAAiB,oBACjBC,iBAAkB,oBAClBC,gBAAiB,sBACjBC,MAAO,QACPC,SAAU,YACVC,SAAU,YC5ECC,EAA+B,CAC1CC,eAAgBC,aAChBC,WAAYC,SACZC,aAAcC,WACdC,aAAcC,WACdC,UAAWC,QACXC,iBAAkBC,eAClBC,kBAAmBC,gBACnBC,iBAAkBC,eAClBC,eAAgBC,aAChBC,gBAAiBC,cACjBC,SAAUC,OACVC,eAAgBC,aAChBC,eAAgBC,aAChBC,cAAeC,YACfC,iBAAkBC,eAClBC,eAAgBC,aAChBC,kBAAmBC,gBACnBC,mBAAoBC,iBACpBC,eAAgBC,aAChBC,4BAA6BC,0BAC7BC,cAAeC,YACfC,aAAcC,WACdC,YAAaC,UACbC,eAAgBC,aAChBC,SAAUC,OACVC,WAAYC,SACZC,cAAeC,YACfC,SAAUC,OACVC,eAAgBC,aAChBC,kBAAmBC,iBCxFRC,EAAiC,gBAAGC,IAAAA,MAE7CC,EAWED,EAXFC,qBACAC,EAUEF,EAVFE,sBACAC,EASEH,EATFG,uBASEH,EAPFI,QACW3B,IAAT4B,MAAS5B,4BACT6B,IAAAA,aACAC,IAAAA,wBACAC,IAAAA,kBAEFC,EACET,EADFS,sBAEMC,GAAYC,EADhBX,EARFW,YASMD,QAEFE,EACJL,aAAmCM,SAC/BN,EAAwB,CAAEP,MAAAA,IAC1BO,EAEN,OACEO,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChBC,MAAOb,EAAa5H,WAEpBoI,4BACEA,gBAACM,yCACad,EAAa5H,UACzB2I,UAAWlB,MAA2BK,EACtCc,QAAS,WAAA,OAAMb,GAAuBR,OAClCW,GACJW,MACEC,OAAoB,YAAZd,EAAwB,UAAY,UAC5Ce,MAAmB,YAAZf,EAAwB,UAAY,UAC3CgB,GAAgB,YAAZhB,EAAwB,gBAAaiB,SACtCf,SAAAA,EAAiBW,MAGtBT,gBAACrC,GACCmD,MAAO,CACLC,qBACE5B,KACK,IACDC,KACC,GACD,UAEN4B,WAAY,wBCjDbC,EAA8B,gBAAGC,IAAAA,IAAKhC,IAAAA,QAS7CA,EANFI,QACWzC,IAAT0C,MAAS1C,eACT2C,IAAAA,aACA2B,IAAAA,qBACAzB,IAAAA,kBAGIE,GAAYC,EADhBX,EAPFW,YAQMD,QAEFE,EACJqB,aAAgCpB,SAC5BoB,EAAqB,CAAEjC,MAAAA,EAAOgC,IAAAA,IAC9BC,EAMN,OACEnB,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChBC,MAAOb,EAAa7H,QAEpBqI,4BACEA,gBAACM,yCACad,EAAa7H,OACzB4I,UAAWW,EAAIE,iBAAmB1B,EAClCc,QAfmB,WACzBU,EAAIG,mBAeMvB,GACJW,GAAI,SAACa,GAAD,UACFZ,OAAoB,YAAZd,EAAwB,UAAY,UAC5Ce,MAAmB,YAAZf,EAAwB,UAAY,kBACvCE,SAAAA,EAAiBW,cAAcV,SAC/BD,EAAgBW,GAAGa,SAClBxB,SAAAA,EAAiBW,OAGxBT,gBAACnD,GACCiE,MAAO,CACLC,qBACGG,EAAIE,gBAAmB1B,EAEpBwB,EAAIK,iBACH,IACD,GAHC,WAKPP,WAAY,wBChDbQ,EAAkC,kBAC7CC,IAAAA,SACAC,IAAAA,OACAC,IAAAA,SACAC,IAAAA,YACA1C,IAAAA,QAWIA,EAPFI,QACEuC,IAAAA,2BACAC,IAAAA,wBACAtC,IAAAA,aAEFuC,EAEE7C,EAFF6C,oBACAC,EACE9C,EADF8C,4BAE2DnC,EADzDX,EARFW,YASMoC,IAAAA,iBAAkBC,IAAAA,sBAAuBtC,IAAAA,QACzCuC,SAAWT,EAAAA,EAAU,IAArBS,OACAC,SAAcD,EAAAA,EAAU,IAAxBC,UAEFC,iBACJD,SAAAA,EAAWN,2BAA2BA,EAElCQ,EAAgBC,WACpB,WAAA,MAEI,CACE,CACEC,OAAQ,QACRC,OAAQ,IACRC,MAAOlD,EAAapH,YACpBuK,SAAS,GAEX,CACEH,OAAQ,WACRC,OAAQ,IACRC,MAAOlD,EAAaxH,eACpB2K,SAAS,GAEX,CACEH,OAAQ,aACRC,OAAQ,IACRC,MAAOlD,EAAa5G,iBACpB+J,SAAS,GAEX,CACEH,OAAQ,WACRC,OAAQ,IACRC,MAAOlD,EAAatH,eACpByK,SAAS,GAEX,CACEH,OAAQ,SACRC,OAAQ,IACRC,MAAOlD,EAAarH,aACpBwK,SAAS,GAEX,CACEH,OAAQ,YACRC,OAAQ,IACRC,MAAOlD,EAAa7G,gBACpBgK,SAAS,GAEX,CACEH,OAAQ,UACRC,OAAQ,IACRC,MAAOlD,EAAa3H,cACpB8K,SAAS,GAEX,CACEH,OAAQ,mBACRC,OAAQ,IACRC,MAAOlD,EAAa1H,uBACpB6K,SAAS,GAEX,CACEH,OAAQ,cACRC,OAAQ,IACRC,MAAOlD,EAAanH,kBACpBsK,SAAS,GAEX,CACEH,OAAQ,uBACRC,OAAQ,IACRC,MAAOlD,EAAalH,2BACpBqK,SAAS,GAEX,CACEH,OAAQ,WACRC,OAAQ,IACRC,MAAOlD,EAAajH,eACpBoK,SAAS,GAEX,CACEH,OAAQ,oBACRC,OAAQ,IACRC,MAAOlD,EAAahH,wBACpBmK,SAAS,GAEX,CACEH,OAAQ,QACRC,OAAQ,IACRC,MAAOlD,EAAavH,YACpB0K,SAAS,GAEX,CACEH,OAAQ,WACRC,OAAQ,KACRC,MAAOlD,EAAa9G,eACpBiK,SAAS,IASbC,QAAO,SAACC,GAAD,OACPT,OACmCvB,IAA/BwB,UACAA,SAAAA,EAA4BS,SAASD,EAAWL,WAC9CX,GACAA,EAA2BiB,SAASD,EAAWL,UACjD,CAAC,QAAS,YAAYM,SAASD,EAAWL,aAElD,IAuBIO,EAAiBrB,EACnBO,EAAiBP,EAAOsB,IACxBd,EAEJ,OACElC,gBAACiD,QACCxB,SAAUA,EACVyB,aAAc,CAAEC,SAAU,SAAUC,WAAY,SAChDC,QAAS,WAAA,OAAMzB,EAAY,OAC3B0B,OAAQ7B,EACR8B,cAAe,CACbC,MAAmB,YAAZ5D,IAGR0C,EAAcmB,KAAI,WAAqCC,GAArC,IAAGlB,IAAAA,OAAQE,IAAAA,MAAX,OACjB1C,gBAAC2D,YACChB,UAFiCA,QAGjCiB,IAAKF,EACLlD,QAAS,WAAA,OAtCc,SAACgC,GAC1Bd,GAAUS,GACZJ,GAAoB,SAAC8B,GAAD,MAAA,YACfA,UACFnC,EAAOsB,IAAKR,SAEX,CAAC,QAAS,YAAYM,SAASN,GACjCL,EAAO2B,eAAe,KAEtB3B,EAAO2B,eADa,YAAXtB,EACa,CAAC,GAAI,IAEL,KAGxBR,EAAyBQ,GAE3BZ,EAAY,YACZD,GAAAA,IAqBqBoC,CAAuBvB,IACtCwB,SAAUxB,IAAWO,EACrBtC,GAAI,CACFwD,GAAI,MACJC,GAAI,EACJC,WAAY,SACZC,QAAS,OACTC,IAAK,OAEPC,MAAO9B,GAEPxC,gBAACuE,OAAI9D,GAAI,CAAE+D,SAAU,UAAW7D,MAAO,UAfG8B,QAgBzCC,QCvLE+B,EAAsC,gBAAGtC,IAAAA,WAAQjD,MAE1DI,QACWrB,IAATsB,MAAStB,YACTuB,IAAAA,aAIEkF,EAAkB,SAACC,GACvBxC,EAAOyC,IAAID,IAGb,OACE3E,gBAACuE,OAAI9D,GAAI,CAAEoE,SAAU,OAAQC,UAAW,WACrC3C,EAAO4C,cACN/E,gBAACC,WAAQC,SAAMG,MAAOb,EAAavE,OACjC+E,gBAACM,cAAWE,QAAS,WAAA,OAAMkE,GAAgB,IAAQM,KAAK,SACtDhF,gBAAC/B,UAIL+B,gCACEA,gBAACC,WAAQC,SAAMG,MAAOb,EAAalG,WACjC0G,gBAACM,cAAWE,QAAS,WAAA,OAAMkE,EAAgB,SAASM,KAAK,SACvDhF,gBAAC/B,GACC6C,MAAO,CACLC,UAAW,qBAKnBf,gBAACC,WAAQC,SAAMG,MAAOb,EAAajG,YACjCyG,gBAACM,cAAWE,QAAS,WAAA,OAAMkE,EAAgB,UAAUM,KAAK,SACxDhF,gBAAC/B,GACC6C,MAAO,CACLC,UAAW,yBCjChBkE,EAAkC,gBAC7CnF,IAAAA,oBAGAZ,MAGEI,QACWjD,IAATkD,MAASlD,eAKb,OACE2D,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChB8E,UAAU,MACV7E,QAVAb,aAUoBnG,MAEpB2G,gBAACM,4BACC6E,iBACAC,UAAU,OACVC,cArBNA,YAsBMC,YAvBNA,UAwBMN,KAAK,SACDlF,GACJW,MACE8E,OAAQ,OACRC,EAAG,EACHC,QAAS,GACTC,EAAG,MACH1E,WAAY,uBACZ2E,UAAW,CACTC,gBAAiB,cACjBH,QAAS,GAEXI,WAAY,CACVN,OAAQ,mBAEPzF,SAAAA,EAAiBW,MAGtBT,gBAAC3D,WCpDHyJ,EAAQ,SACZ5E,EACA6E,EACAC,EACAC,GAEA,IAAMC,EAAWC,WAASjF,EAAIkF,SAASL,GAAWC,EAAuB,CACvEK,UAAWC,WAASC,UAGtB,OADAN,EAAQC,GACDA,EAASM,QAGlBV,EAAMW,WAAa,SAACC,GAAD,OAAeA,GAElC,IAAMC,EAAW,SACfzF,EACA8B,EACAgD,GAHe,OAKf9E,EACGkF,SAA0BpD,GAC1B4D,WACAC,cACAC,OACAhE,SAASkD,EAAYY,WAAWC,cAAcC,SAEnDH,EAASF,WAAa,SAACC,GAAD,OAAeA,GAErC,IAAMK,EAAa,SACjB7F,EACA8B,EACAgD,GAHiB,OAKjB9E,EACGkF,SAA0BpD,GAC1B4D,WACAC,cACAC,OACAC,WAAWf,EAAYY,WAAWC,cAAcC,SAErDC,EAAWN,WAAa,SAACC,GAAD,OAAeA,GAEvC,IAAMM,EAAW,SACf9F,EACA8B,EACAgD,GAHe,OAKf9E,EACGkF,SAA0BpD,GAC1B4D,WACAC,cACAC,OACAE,SAAShB,EAAYY,WAAWC,cAAcC,SAEnDE,EAASP,WAAa,SAACC,GAAD,OAAeA,GAErC,IAAMO,EAAS,SACb/F,EACA8B,EACAgD,GAHa,OAKb9E,EAAIkF,SAA0BpD,GAAI4D,WAAWC,cAAcC,SAC3Dd,EAAYY,WAAWC,cAAcC,QAEvCG,EAAOR,WAAa,SAACC,GAAD,OAAeA,GAEnC,IAAMQ,EAAY,SAChBhG,EACA8B,EACAgD,GAHgB,OAKhB9E,EAAIkF,SAA0BpD,GAAI4D,WAAWC,cAAcC,SAC3Dd,EAAYY,WAAWC,cAAcC,QAEvCI,EAAUT,WAAa,SAACC,GAAD,OAAeA,GAEtC,IAAMS,EAAc,SAClBjG,EACA8B,EACAgD,GAHkB,OAKjBoB,OAAOpB,IAAiBoB,OAAOlG,EAAIkF,SAA0BpD,IAE1D9B,EAAIkF,SAA0BpD,GAAI4D,WAAWC,cAAcC,OAC3Dd,EAAYY,WAAWC,cAAcC,QAFpC5F,EAAIkF,SAA0BpD,IAAOgD,GAI5CmB,EAAYV,WAAa,SAACC,GAAD,OAAeA,GAExC,IAAMW,EAAuB,SAC3BnG,EACA8B,EACAgD,GAH2B,OAIxBiB,EAAO/F,EAAK8B,EAAIgD,IAAgBmB,EAAYjG,EAAK8B,EAAIgD,IAE1DqB,EAAqBZ,WAAa,SAACC,GAAD,OAAeA,GAEjD,IAAMY,EAAW,SACfpG,EACA8B,EACAgD,GAHe,OAKdoB,OAAOpB,IAAiBoB,OAAOlG,EAAIkF,SAA0BpD,IAE1D9B,EAAIkF,SAA0BpD,GAAI4D,WAAWC,cAAcC,OAC3Dd,EAAYY,WAAWC,cAAcC,QAFpC5F,EAAIkF,SAA0BpD,IAAOgD,GAI5CsB,EAASb,WAAa,SAACC,GAAD,OAAeA,GAErC,IAAMa,EAAoB,SACxBrG,EACA8B,EACAgD,GAHwB,OAIrBiB,EAAO/F,EAAK8B,EAAIgD,IAAgBsB,EAASpG,EAAK8B,EAAIgD,IAEvDuB,EAAkBd,WAAa,SAACC,GAAD,OAAeA,GAE9C,IAAMc,EAAU,SACdtG,EACA8B,EACAyE,GAHc,OAKZ,CAAC,QAAI5G,GAAqBiC,SAAS2E,EAAa,KAChDN,EAAYjG,EAAK8B,EAAIyE,EAAa,QACjCL,OAAOK,EAAa,MACpBL,OAAOK,EAAa,MACpBA,EAAa,IAAMA,EAAa,IAChC,CAAC,QAAI5G,GAAqBiC,SAAS2E,EAAa,KACjDH,EAASpG,EAAK8B,EAAIyE,EAAa,MAEnCD,EAAQf,WAAa,SAACC,GAAD,OAAeA,GAEpC,IAAMgB,EAAmB,SACvBxG,EACA8B,EACAyE,GAHuB,OAKrB,CAAC,QAAI5G,GAAqBiC,SAAS2E,EAAa,KAChDJ,EAAqBnG,EAAK8B,EAAIyE,EAAa,QAC1CL,OAAOK,EAAa,MACpBL,OAAOK,EAAa,MACpBA,EAAa,IAAMA,EAAa,IAChC,CAAC,QAAI5G,GAAqBiC,SAAS2E,EAAa,KACjDF,EAAkBrG,EAAK8B,EAAIyE,EAAa,MAE5CC,EAAiBjB,WAAa,SAACC,GAAD,OAAeA,GAE7C,IAAMiB,EAAQ,SACZzG,EACA8B,EACA4E,GAHY,OAIR1G,EAAIkF,SAA0BpD,GAAI4D,WAAWE,QAEnDa,EAAMlB,WAAa,SAACC,GAAD,OAAeA,GAElC,IAAMmB,EAAW,SACf3G,EACA8B,EACA4E,GAHe,QAIV1G,EAAIkF,SAA0BpD,GAAI4D,WAAWE,QAEpDe,EAASpB,WAAa,SAACC,GAAD,OAAeA,GAErC,IAAaoB,OACRC,aACHP,QAAAA,EACAE,iBAAAA,EACAf,SAAAA,EACAgB,MAAAA,EACAX,SAAAA,EACAC,OAAAA,EACAnB,MAAAA,EACAqB,YAAAA,EACAE,qBAAAA,EACAC,SAAAA,EACAC,kBAAAA,EACAM,SAAAA,EACAX,UAAAA,EACAH,WAAAA,IC/JWiB,OACRC,cACHnC,MApBY,SACZoC,EACAC,EACApC,GAEA,IAAIqC,EAAM,EAQV,OAPIF,EAAKG,kBAAkBtC,KACzBqC,EAAME,eACJJ,EAAKG,kBAAkBtC,GACvBoC,EAAKE,kBAAkBtC,KAIZ,IAARqC,EACHH,aAAWM,aAAaL,EAAkBC,EAAkBpC,GAC5DqC,KCPAI,EAAc,SAClBpG,GADkB,UAAA,yBAGlBA,EAAUY,eAAMZ,EAAUqG,oBAAVC,EAAuB9B,gBAAvB8B,EAAuB9B,cAAgBxE,EAAUV,QAEtDiH,EAAuB,SAClCC,GAIA,IAFA,IAAIC,EAA6CD,EAC7CE,EAAkDF,WAC7CE,IAAAC,EAAaC,QAAUF,EAAYG,MAAK,SAACC,GAAD,OAASA,EAAIN,YAAU,CAAA,MAChEO,EAAmCL,EACtClG,QAAO,SAACsG,GAAD,QAAWA,EAAIN,WACtBnF,KAAI,SAACyF,GAAD,OAASA,EAAIN,WACjBQ,OACCD,EAASE,OAAM,SAACH,GAAD,cAAUA,GAAAA,EAAKN,cAChCC,YAAyBA,EAAuBM,IAElDL,EAAcK,EAEhB,OAAON,EAAmBjG,QAAO,SAACsG,GAAD,OAAUA,EAAIN,YA+BpCU,EAAgB,SAC3BC,EACAC,EACAC,GAUA,OARIF,EAAcG,aAChBH,EAAc3E,IAAI4E,EAAazE,eAEjC0E,EAAYE,OACVF,EAAYG,QAAQJ,EAAaxG,IACjC,EACAyG,EAAYE,OAAOF,EAAYG,QAAQL,EAAcvG,IAAK,GAAG,cAEpDyG,IAqCAI,EAA2B,SAGtCC,GAHsC,MAKtC,UAvCwC,SAGxCA,GAHwC,MAKxC,EACGA,EAAMC,mBAAqBD,EAAME,oBAAsB,gBACtB,UAAhCF,EAAMG,uBAAqCH,EAAMI,kBAChDJ,EAAMK,eAAuC,QAAtBL,EAAMM,cAC9B,kBAC6B,UAA/BN,EAAMO,uBACHP,EAAMQ,iBACLR,EAAMS,gBACNT,EAAMpK,oBACR,iBACFoK,EAAMU,oBAAsB,iBAC5BV,EAAMW,kBAAoB,mBAC1B7H,OAAO8H,SAuBJC,CAA2Bb,GAC3BnB,EAAqBmB,EAAMlB,SAASnF,KAAI,SAACrB,GAAD,OACzCoG,EAAYpG,MAvByB,SAGzC0H,GAHyC,MAItC,EAC+B,SAAhCA,EAAMG,uBAAoCH,EAAMI,kBAC/CJ,EAAMK,eAAuC,QAAtBL,EAAMM,cAC9B,kBAC6B,SAA/BN,EAAMO,uBACHP,EAAMQ,iBACLR,EAAMS,gBACNT,EAAMpK,oBACR,kBAaGkL,CAA4Bd,IAC/BlH,OAAO8H,UC/FEG,EAA0C,SAA1CA,WACXC,IAAAA,WACAC,IAAAA,qBACAC,IAAAA,wBACA7I,IAAAA,OACA8I,IAAAA,UACA/L,IAAAA,QAWIA,EAPFI,QACE4L,IAAAA,qBACAC,IAAAA,aACAC,IAAAA,cACA5L,IAAAA,aAEF6L,EACEnM,EADFmM,eAEM5B,GAAgB5J,EADpBX,EARFW,YASM4J,YACArH,EAAcD,EAAdC,UACAkJ,EAAkBlJ,EAAlBkJ,cAEFC,EACe,UAAlBD,GAA6BnJ,EAAOqJ,gBAClB,UAAlBF,GACCnJ,EAAOsJ,iBAAiBxC,MAAK,SAACC,GAAD,OAASA,EAAIsC,kBAYxCE,EAAc1L,EAAM2L,OAAoB,QAEVC,YAAS,GAAtCC,OAAYC,OAqBnB,OACE9L,gCACEA,gBAAC2D,YACCwB,iBACA4G,IAAKL,EACLM,YAXkB,SAACC,GAClBJ,GACHb,EAAwB7I,IAUtB1B,GAAI,SAACa,GAAD,MAAY,CACd6C,WAAY,SACZ+H,eAAgB,aAChBhI,GAAI,EACJuB,QAASoG,EAAa,GAAM,EAC5BM,QAASN,gBACSvK,EAAM8K,QAAQzJ,eAC5BoI,SAAAA,EAAsB/H,MAAOb,EAAOa,iBACtB1B,EAAM8K,QAAQC,QAAQC,KACpC,OACJC,GAA8B,GAAtBpK,EAAOqK,MAAQ,UACvBvI,GAAI,SAGNjE,gBAACuE,OACC9D,GAAI,CACF2D,QAAS,OACTqI,SAAU,SACVpI,IAAK,SAGL4G,GACkB,UAAlBK,GACAJ,IACCJ,EAAW7B,MACV,SAACC,GAAD,MAAyC,UAAhCA,EAAI9G,UAAUkJ,oBAEW,IAAnClJ,EAAU8I,qBACTlL,gBAACiF,GACCK,UAjDQ,SAAC2G,GACrBH,GAAc,GACdd,EAAwB,MACpBD,GACFM,EAAe/B,EAAcnH,EAAQ4I,EAAsBtB,KA8CjDpE,YAvDU,SAACqH,GACvBZ,GAAc,GACdY,EAAEC,aAAaC,aAAalB,EAAYmB,QAAwB,EAAG,IAsDvD3N,MAAOA,IAGTc,gBAACuE,OAAI9D,GAAI,CAAEE,MAAO,YAEpBsK,GACAG,IACCjJ,EAAOuH,YACN1J,gBAACyE,GAAyBtC,OAAQA,EAAQjD,MAAOA,IAEjDc,gBAACuE,OAAI9D,GAAI,CAAEE,MAAO,WAErBwK,EACCnL,gBAAC8M,oBACCC,gBAAiB,CACfC,WAAY,CACVvM,GAAI,CACFwM,GAAI,EACJxH,QAA2B,YAAlB6F,EAA8B,EAAI,MAIjD4B,QAAS3B,EACT4B,QACEnN,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChBC,MAAOb,EAAazE,kBAEpBiF,gBAACoN,gBAGL7M,SACG0K,GAAaM,IACbpJ,EAAOkL,cACRlL,EAAOmL,eAET5K,MAAON,EAAUV,OACjB6L,SAAU,WAAA,OA7GW,SAACpL,GACD,MAAT,UAAlBmJ,QACFnJ,YAAAA,EAAQyG,kBAAS4E,WAAAA,SAAU,SAACC,GAC1BA,EAAY1S,kBAAkBwQ,MAGhCpJ,EAAOpH,mBAuGiB2S,CAAyBvL,MAG3CnC,gBAAC2N,cAAWlN,GAAI,CAAEmN,UAAW,WAC1BxL,EAAUV,mBAKlBS,EAAOyG,gBAAPiF,EAAgBpK,KAAI,SAACqK,EAAeC,GAAhB,OACnB/N,gBAAC6K,GACCC,WAAYA,EACZ3I,OAAQ2L,EACR/C,qBAAsBA,EACtBE,UAAWA,EACXrH,IAAQmK,MAAKD,EAAE9K,GACfgI,wBAAyBA,EACzB9L,MAAOA,SCzKJ8O,EAAqC,gBAChDvM,IAAAA,SACAwJ,IAAAA,UACArJ,IAAAA,YACA1C,IAAAA,MAGE+O,EAWE/O,EAXF+O,cACAC,EAUEhP,EAVFgP,kBACAC,EASEjP,EATFiP,qBACAC,EAQElP,EARFkP,uBACAC,EAOEnP,EAPFmP,uBACAC,EAMEpP,EANFoP,wBACAC,EAKErP,EALFqP,mBACAC,EAIEtP,EAJFsP,oBAEAC,EAEEvP,EAFFuP,0BAEEvP,EADFI,QAAWE,IAAAA,aAAc4L,IAAAA,cAAeF,IAAAA,wBAEMrL,EAD5CX,EAHFW,YAIMD,IAAAA,QAAS6J,IAAAA,YAQXqB,EAAavI,WAAQ,WACzB,IAAMqG,EAAUqF,IAChB,OACExE,EAAYT,OAAS,IACpBJ,EAAQK,MAAK,SAACC,GAAD,MAAyC,UAAhCA,EAAI9G,UAAUkJ,iBAE9B,UACFiD,IACAG,MAAMC,KAAK,IAAIC,IAAInF,IAAchG,KAAI,SAACoL,GAAD,OACtCV,IAAuBW,MAAK,SAAC5F,GAAD,aAASA,SAAAA,EAAKlG,MAAO6L,QAEhDL,KACH5L,OAAO8H,SAEJ9B,IACN,CACDa,IAxB4BsF,cA0B5Bd,IACAE,IACAI,IACAC,QAIA5C,WAA4B,MADvBb,OAAsBC,OAG7B,OACEhL,gBAACiD,QACCxB,SAAUA,EACV6B,OAAQ7B,EACR4B,QAAS,WAAA,OAAMzB,EAAY,OAC3B2B,cAAe,CACbC,MAAmB,YAAZ5D,IAGTI,gBAACuE,OACC9D,GAAI,CACF2D,QAAS,OACT8H,eAAgBjB,EAAY,SAAW,gBACvCvF,EAAG,SACHsJ,GAAI,KAGJ/D,GACAjL,gBAACiP,UACC1O,UAAW+N,IACX9N,QArDa,WACrB0N,IACGtL,QAAO,SAACsG,GAAD,OAAwC,IAA/BA,EAAI9G,UAAU+I,gBAC9BqC,SAAQ,SAACtE,GAAD,OAASA,EAAInO,kBAAiB,QAoDhCyE,EAAavG,UAGhBgS,GAAaC,GACblL,gBAACiP,UACCzO,QAAS,WAAA,OACPtB,EAAMmM,eACJxB,EAAyB3K,EAAMI,YAIlCE,EAAa/F,aAGhBwR,GAAaG,GACbpL,gBAACiP,UACC1O,UAAW8N,IACX7N,QAAS,WAAA,OAAMtB,EAAMgQ,oBAAmB,KAEvC1P,EAAatE,UAGlB8E,gBAACiP,UACC1O,SAAU6N,IACV5N,QAAS,WAAA,OAAMiO,GAAwB,KAEtCjP,EAAavF,UAGlB+F,gBAACmP,gBACArE,EAAWrH,KAAI,SAACtB,EAAQuB,GAAT,OACd1D,gBAAC6K,GACCC,WAAYA,EACZ3I,OAAQA,EACR4I,qBAAsBA,EACtBE,UAAWA,EACXrH,IAAQF,MAASvB,EAAOa,GACxBgI,wBAAyBA,EACzB9L,MAAOA,SCzHJkQ,EAAuB,CAClCnL,GAAI,MACJC,GAAI,EACJgI,eAAgB,gBAChB/H,WAAY,UAGDkL,EAAuB,CAClCjL,QAAS,OACTD,WAAY,UAUDmL,EAAkC,8BAC7C7N,IAAAA,SACAC,IAAAA,OACAE,IAAAA,YACA1C,IAAAA,MAIEuP,EA2BEvP,EA3BFuP,wBACApD,EA0BEnM,EA1BFmM,iBA0BEnM,EAzBFI,QACEiQ,IAAAA,6BACAC,IAAAA,oBACAC,IAAAA,qBACAlF,IAAAA,eACAY,IAAAA,aACAC,IAAAA,cACAsE,IAAAA,cACA5N,IAAAA,4BACAvC,MACElE,IAAAA,eACAM,IAAAA,aACAkD,IAAAA,eACAtC,IAAAA,gBACAY,IAAAA,eACAE,IAAAA,kBACAY,IAAAA,YACAU,IAAAA,SACAR,IAAAA,eACAY,IAAAA,kBAEF4Q,IAAAA,QACAnQ,IAAAA,aAEFoQ,EACE1Q,EADF0Q,eAEMzN,EAAWT,EAAXS,OACAC,EAAcD,EAAdC,aAC4CvC,EAHhDX,EA5BFW,YA+BMgQ,IAAAA,aAAcC,IAAAA,iBAAkBlQ,IAAAA,UAGtCgM,WAA6B,MADxBmE,OAAoBC,SAGzBpE,WAA6B,MADxBqE,QAA6BC,QA4B9BxL,GAAkB,SAACC,GACvBxC,EAAOyC,IAAID,GACX/C,EAAY,OAcRuO,GAAuB,WAC3BP,GAAe,GACfQ,YACE,WAAA,UAAA,gBACEC,SACGC,iCAEC5O,EAAO6O,6CAAPC,EAA6CxN,aACpC2M,MAAWjO,EAAOsB,iCAJ/ByN,EAMIC,UACN,KAEF9O,EAAY,OAQR+O,GAA2B,SAACC,GAChCA,EAAMC,kBACNb,EAAsBY,EAAME,gBAGxBC,GAAgC,SACpCH,GAEAA,EAAMC,kBACNX,GAA+BU,EAAME,gBAKjCzO,kBACJD,SAAAA,EAAWN,2BAA2BA,EAElCkP,GACJzB,IAC2C,IAA3CnN,EAAUmN,+BAPanN,EAAU6O,2BASDpQ,IAA/BwB,YACGA,KAAAA,GAA4B2G,SAElC,OACEhJ,gBAACiD,QACCxB,SAAUA,EACV6B,OAAQ7B,EACR4B,QAAS,WAAA,OAAMzB,EAAY,OAC3B2B,cAAe,CACbC,MAAmB,YAAZ5D,IAGR8P,GACCvN,EAAO+O,cAAgB,CACrBlR,gBAAC2D,YACCpD,UAAW4B,EAAOgP,cAClBvN,IAAK,EACLpD,QApGc,WACtB2B,EAAOiP,eACPxP,EAAY,OAmGJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACrE,SAEF6D,EAAalI,YAGlB0I,gBAAC2D,YACCpD,SAAmC,QAAzB4B,EAAOgP,cACjBvN,IAAK,EACLpD,QA5GY,WACpB2B,EAAOmP,eAAc,GACrB1P,EAAY,OA2GJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACrB,kBAEFa,EAAalF,wBAAbiX,EAA8BC,QAC7B,WACAC,OAAOrP,EAAUV,WAIvB1B,gBAAC2D,YACChB,QAAS6M,GAAuBjF,GAAkBY,EAClDvH,IAAK,EACLrD,SAAmC,SAAzB4B,EAAOgP,cACjB3Q,QAxHa,WACrB2B,EAAOmP,eAAc,GACrB1P,EAAY,OAuHJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACrB,GAASmC,MAAO,CAAEC,UAAW,yCAE/BvB,EAAajF,yBAAbmX,EAA+BF,QAC9B,WACAC,OAAOrP,EAAUV,YAK1B8N,GACCrN,EAAOwP,gBACP,CACE3R,gBAAC2D,YACCpD,UAAW4B,EAAOyP,iBAClBhO,IAAK,EACLpD,QAlHgB,WACxB2B,EAAO2B,eAAe,IACtBlC,EAAY,OAiHJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC3C,SAEFmC,EAAapI,cAGlB4I,gBAAC2D,YACChB,QAAS4H,GAAkBY,EAC3BvH,IAAK,EACLpD,QAAS2P,GACT1P,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC7C,kBAEFqC,EAAazH,uBAAb8Z,EAA6BL,QAC5B,WACAC,OAAOrP,EAAUV,UAGpBsP,IACChR,gBAACM,cACCE,QAASmQ,GACTmB,aAAcnB,GACd3L,KAAK,QACLvE,GAAI,CAAEiF,EAAG,IAET1F,gBAAC3E,UAIP2V,IACEhR,gBAACwB,GACCC,SAAUsO,EACVrO,OAAQA,EACRkC,IAAK,EACLjC,SAAUwO,GACVvO,YAAaoO,EACb9Q,MAAOA,KAGX0D,OAAO8H,SACVH,GACCpI,EAAO4P,eAAiB,CACtB/R,gBAAC2D,YACChB,QAASyI,EACTxH,IAAK,EACLpD,QA5KkB,WAC1B2B,EAAO6P,iBACP3G,GAAe,SAAC4G,GAAD,OAAU,yBAAqBA,MAC9CrQ,EAAY,OA0KJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACzD,kBAEFiD,EACC2C,EAAOmL,eAAiB,kBAAoB,yBAD7C4E,EAEEV,QAAQ,WAAYC,OAAOrP,EAAUV,YAI/C0J,GACCjJ,EAAOuH,aAAe,CACpB1J,gBAAC2D,YACCpD,SAAmC,SAAzB4B,EAAO4C,gBAA6B5C,EAAOuH,YACrD9F,IAAK,EACLpD,QAAS,WAAA,OAAMkE,GAAgB,SAC/BjE,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC/B,GAAY6C,MAAO,CAAEC,UAAW,oBAElCvB,EAAalG,YAGlB0G,gBAAC2D,YACCpD,SAAmC,UAAzB4B,EAAO4C,gBAA8B5C,EAAOuH,YACtD9F,IAAK,EACLpD,QAAS,WAAA,OAAMkE,GAAgB,UAC/BjE,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC/B,GAAY6C,MAAO,CAAEC,UAAW,qBAElCvB,EAAajG,aAGlByG,gBAAC2D,YACCpD,UAAW4B,EAAO4C,cAClBpC,QAASwI,EACTvH,IAAK,EACLpD,QAAS,WAAA,OAAMkE,IAAgB,IAC/BjE,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC/B,SAEFuB,EAAavE,SAIrBwU,GACCtN,EAAOgQ,gBAAkB,CACvBnS,gBAAC2D,YACCpD,UAAWsP,EAAa1N,EAAOa,IAC/BY,IAAK,EACLpD,QAxPoB,WAC5B2B,EAAOiQ,YACPxQ,EAAY,OAuPJnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAAC7B,SAEFqB,EAAahG,mBAIrB2R,GAAgB,CACfnL,gBAAC2D,YACCpD,UAAqC,IAA3B6B,EAAU+I,aACpBvH,IAAK,EACLpD,QAlQiB,WACvB2B,EAAOpH,kBAAiB,GACxB6G,EAAY,OAiQNnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACjB,kBAEFS,EAAatG,mBAAbmZ,EAAyBb,QACxB,WACAC,OAAOrP,EAAUV,WAIvB1B,gBAAC2D,YACCpD,UACG+R,OAAOC,OAAOzC,GAAkBlN,QAAO,SAAC4P,GAAD,OAAcA,KACnDxJ,OAELpF,IAAK,EACLpD,QAhPqB,WAC3BiO,GAAwB,GACxB7M,EAAY,OA+ONnB,GAAI2O,GAEJpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACnB,kBAEFW,EAAatF,uBAAbuY,EAA6BjB,QAC5B,WACAC,OAAOrP,EAAUV,UAGrB1B,gBAACM,cACCE,QAASuQ,GACTe,aAAcf,GACd/L,KAAK,QACLvE,GAAI,CAAEiF,EAAG,IAET1F,gBAAC3E,UAGL2E,gBAACgO,GACCvM,SAAUwO,GACVhF,aACArH,IAAK,EACLhC,YAAasO,GACbhR,MAAOA,OCzXJwT,EAA+B,gBAC1CjR,IAAAA,SACAkR,IAAAA,WACAzR,IAAAA,IACAU,IAAAA,YACA1C,IAAAA,QAUIA,EANFI,QACW7C,IAAT8C,MAAS9C,SACT0N,IAAAA,cACA3K,IAAAA,aACAoT,IAAAA,4BAGgB/S,EADhBX,EAPFW,YAUF,OACEG,gBAACiD,QACCxB,SAAUA,EACV6B,OAAQ7B,EACR4B,QAAS,WAAA,OAAMzB,EAAY,OAC3B2B,cAAe,CACbC,MAAmB,cARjB5D,UAWHuK,GACCnK,gBAAC2D,YAASnD,QAASmS,EAAYlS,GAAI2O,GACjCpP,gBAACuE,OAAI9D,GAAI4O,GACPrP,gBAACqR,oBACCrR,gBAACvD,SAEF+C,EAAa9H,aAInBkb,SAAAA,EAA2B,CAC1B1R,IAAAA,EACAhC,MAAAA,EACA2T,UAAW,WAAA,OAAMjR,EAAY,WC/CxBkR,EAAmC,gBAAG5R,IAAAA,IAAKhC,IAAAA,QASlDA,EANFI,YACEC,MAAShE,IAAAA,WAAY8C,IAAAA,SACrBmB,IAAAA,aACAuT,IAAAA,gBAEFC,EACE9T,EADF8T,qBAEMC,GAAsBpT,EAD1BX,EAPFW,YAQMoT,kBAYR,OACEjT,gBAACuE,OAAI9D,GAAI,CAAE2D,QAAS,OAAQC,IAAK,YAC/BrE,gBAACC,WAAQC,SAAMG,MAAOb,EAAavI,QACjC+I,gBAACM,2BAAuBd,EAAavI,OAAQuJ,QAb9B,iBACnBU,EAAIgS,sBAAehS,EAAIiS,YAAY,GACnCH,EAAqB,QAYfhT,gBAACzE,UAGLyE,gBAACC,WAAQC,SAAMG,MAAOb,EAAa3F,MACjCmG,gBAACM,2BACad,EAAa3F,KACzBuZ,MAAM,OACN5S,QAhBW,iBACjBuS,GAAAA,EAAkB,CAAE7R,UAAK+R,EAAAA,EAAqB/R,EAAKhC,MAAAA,IACnD8T,EAAqB,QAgBfhT,gBAAC3B,YCtCLgV,EAAyB,CAC7B3S,OAAQ,OACR4S,GAAI,OACJ7N,QAAS,GACTzE,WAAY,eACZL,MAAO,OACPgF,UAAW,CACTF,QAAS,IASA8N,EAA2C,gBAAGrS,IAAAA,IAAKhC,IAAAA,QAW1DA,EARFI,QACE6K,IAAAA,kBACA5K,MAAS9C,IAAAA,SAAUoB,IAAAA,cACnB2B,IAAAA,aACAoT,IAAAA,yBACAY,IAAAA,iBAEFR,EACE9T,EADF8T,qBAGMC,GAAsBpT,EAF1BX,EATFW,YAWMoT,oBAEwBrH,WAA6B,MAAtDnK,OAAUG,OAQX6R,EAAsB,WAC1BT,OAA0B9R,IAC1BU,EAAY,OAGd,OACE5B,gCACGwT,EACCxT,gCAAGwT,EAAiB,CAAEtS,IAAAA,EAAKhC,MAAAA,KACzBgC,EAAI8B,YAAOiQ,SAAAA,EAAmBjQ,IAChChD,gBAAC8S,GAAsB5R,IAAKA,EAAKhC,MAAOA,KACrC0T,GAA4BzI,EAC/BnK,gBAACC,WAAQiF,UAAU,QAAQhF,SAAMG,MAAOb,EAAa9H,MACnDsI,gBAACM,cAAWG,GAAI4S,EAAwB7S,QAASiT,GAC/CzT,gBAACvD,UAGHmW,EACF5S,gCACEA,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChBC,MAAOb,EAAa9F,YAEpBsG,gBAACM,2BACad,EAAa9F,WACzB8G,QAjCoB,SAACoQ,GAC/BA,EAAMC,kBACND,EAAM8C,iBACN9R,EAAYgP,EAAME,gBA+BR9L,KAAK,QACLvE,GAAI4S,GAEJrT,gBAACnC,UAGLmC,gBAAC0S,GACCjR,SAAUA,EACVkR,WAAYc,EACZvS,IAAKA,EACLU,YAAaA,EACb1C,MAAOA,KAGT,OC7EGyU,EAAgC,gBAAGzS,IAAAA,IAAK0S,IAAAA,UAAW1U,IAAAA,QAS1DA,EANFI,QACEE,IAAAA,aACAqU,IAAAA,uBACAC,IAAAA,0BACAC,IAAAA,cAGInU,GAAYC,EADhBX,EAPFW,YAQMD,QAEFoU,EAAiB9S,EAInB2S,aAAkC9T,SAClC8T,EAAuB,CAAE3S,IAAAA,EAAKhC,MAAAA,IAC9B2U,EALAC,aAAqC/T,SACnC+T,EAA0B,CAAE5U,MAAAA,IAC5B4U,EAKN,OACE9T,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChBC,MACEuT,EAAYpU,EAAa3E,gBAAkB2E,EAAa1E,iBAG1DkF,gBAACiU,0BACC/G,QACE0G,EAAY1U,EAAMgV,6BAAyBhT,SAAAA,EAAKiT,gBAElDC,cACER,EAAY1U,EAAMmV,8BAA0BnT,SAAAA,EAAKoT,oBAEnDC,WAAY,CACVC,aAAcZ,EACVpU,EAAa3E,gBACb2E,EAAa1E,iBAEnByS,SACGrM,EAIGA,EAAIuT,2BAHc,QAAlBV,EACE7U,EAAMwV,kCACNxV,EAAMyV,sCAGd3P,KAAkB,YAAZpF,EAAwB,QAAU,UACpCoU,GACJvT,GAAI,SAACa,GAAD,UACFZ,OAAoB,YAAZd,EAAwB,UAAY,SAC5Ce,MAAmB,YAAZf,EAAwB,UAAY,SAC3C4F,EAAe,YAAZ5F,EAAwB,eAAYiB,UACnCmT,SAAAA,EAAevT,cAAcV,SAC7BiU,EAAcvT,GAAGa,SAChB0S,SAAAA,EAAevT,UC5CjBmU,EAAuC,kBAAG1V,IAAAA,MAGnD2V,EAQE3V,EARF2V,kBAQE3V,EAPFI,QACEwV,IAAAA,iCACAvV,MAAShB,IAAAA,WAAY1C,IAAAA,UACrB2D,IAAAA,aACAuV,IAAAA,wBACApF,IAAAA,WAGuC9P,EADvCX,EATFW,YAUMmV,IAAAA,aAAcC,IAAAA,mBAEUrJ,WAA6B,MAAtDnK,OAAUG,SACqBgK,iBAASoJ,EAAAA,EAAgB,IAAxDE,OAAaC,OAEdC,EAAwBC,cAC5BC,YAAS,SAAC1E,SACRiE,WAAgBjE,EAAM2E,OAAOjR,cAASzD,KACrC,KACH,IAiBI2U,EACJT,aAAmChV,SAC/BgV,EAAwB,CAAE7V,MAAAA,IAC1B6V,EAEN,OACE/U,gBAACyV,YAASC,GAAIT,EAAkBU,YAAY,cAC1C3V,gBAAC4V,2BACC5S,UAAW2M,uBACXkG,YAAarW,EAAa1F,OAC1ByT,SAxBe,SAACqD,GACpBuE,EAAevE,EAAM2E,OAAOjR,OAC5B8Q,EAAsBxE,IAuBlBtM,YAAO4Q,EAAAA,EAAe,GACtBY,QAAQ,WACRC,WAAY,CACVC,eAAgBlB,EACd9U,gBAACiW,kBAAeC,SAAS,SACvBlW,gBAACC,WAAQC,SAAMG,MAAOb,EAAarI,kBACjC6I,gBAACM,2BACad,EAAarI,iBACzBqJ,QA5BmB,SAACoQ,GAClChP,EAAYgP,EAAME,gBA4BJ9L,KAAK,QACLvE,GAAI,CAAEC,OAAQ,UAAWC,MAAO,YAEhCX,gBAACzB,WAKPyB,gBAACzB,QAEH4X,aACEnW,gBAACiW,kBAAeC,SAAS,OACvBlW,gBAACC,WAAQC,SAAMG,eAAOb,EAAanI,eAAe,IAChD2I,4BACEA,gBAACM,2BACad,EAAanI,YACzBkJ,iBAAW2U,GAAAA,EAAalM,QACxBxI,QA1CE,WAClB2U,EAAe,IACfN,OAAgBhU,IAyCAmE,KAAK,SAELhF,gBAACnE,cAOT2Z,IAENxV,gBAACwB,GACCC,SAAUA,EACVG,YAAaA,EACb1C,MAAOA,MCvGFkX,EAAmC,gBAAGC,IAAAA,aAAcnX,IAAAA,MAElDoX,EAETpX,EAFFI,QAAWgX,0BAG2BzW,EADpCX,EADFW,YAEM0W,IAAAA,UAAWC,IAAAA,iBAEbC,EACJH,aAAkCvW,SAC9BuW,EAAuB,CAAED,aAAAA,EAAcnX,MAAAA,IACvCoX,EAEN,OACEtW,gBAACyV,YACCC,GAAIa,GAAaC,EACjBE,gBACAC,iBACAlW,GAAI,CACFmW,OAAQP,EAAe,OAAIxV,EAC3BqV,SAAU,WACVW,IAAMR,OAAmBxV,EAAJ,EACrBF,MAAO,SAGTX,gBAAC8W,6CACY,sBACD,OACVrW,GAAI,CAAEyV,SAAU,aACZO,MC5BCM,EAAiC,gBAAG7X,IAAAA,MAAOgX,IAAAA,SAEpDc,EASE9X,EATF8X,yBAEAC,EAOE/X,EAPF+X,aACAC,EAMEhY,EANFgY,cAMEhY,EALFI,QACE6X,IAAAA,wBACAC,IAAAA,6BACAC,IAAAA,YAMAxX,EAJAX,EARFW,gBAUAyX,eAAcC,SAAAA,aAAW,SAAIC,UAAAA,aAAY,IACzCvC,IAAAA,iBAGIwC,QAAgBJ,EAAAA,EAAYL,IAA2BU,KAAK1O,OAC5D2O,EAA2BF,EAAgBF,EAAW,EAEtDK,EACJT,aAAmCpX,SAC/BoX,EAAwB,CAAEjY,MAAAA,IAC1BiY,EAMN,OACEnX,gBAAC6X,iCACCC,YAAa,CACXrX,GAAI,CAAE+E,EAAG,gBACTuS,UAAW,CAAExU,cAAe,CAAEyU,gBAAgB,KAEhDC,UAAU,MACVC,MAAOT,EACPU,aAAc,SAACC,EAAQC,GAAT,OAA6BpB,EAAaoB,IACxDC,oBAb4B,SAAC1H,GAC/BsG,GAAatG,EAAM2E,OAAOjR,QAaxBiU,KAAMf,EACNgB,YAAajB,EACbkB,mBAAoB,CAAC,EAAG,GAAI,GAAI,GAAI,GAAI,GAAI,GAAI,KAChDC,gBAAiBf,EACjBgB,eAAgBhB,GACZC,GACJnX,GAAI,SAACa,GAAD,UACFkE,EAAG,WACH5E,GACe,QAAbsV,GACAkB,IACCnC,EACG,cACApU,EACNqV,SAAU,WACV0C,OAAQ,UACJhB,SAAAA,EAAsBnX,cAAcV,SACpC6X,EAAqBnX,GAAGa,SACvBsW,SAAAA,EAAsBnX,SCzDtBoY,EAAoC,oBAC/CC,IAAAA,iBACA5Z,IAAAA,MAGE8X,EAIE9X,EAJF8X,yBACA+B,EAGE7Z,EAHF6Z,sBAGE7Z,EADFI,QAAWE,IAAAA,aAAcwZ,IAAAA,mCAEWnZ,EADlCX,EAFFW,YAGMoZ,IAAAA,SAAUC,IAAAA,gBAEZC,EACJH,aAA2CjZ,SACvCiZ,EAAgC,CAAE9Z,MAAAA,IAClC8Z,EAEAI,EACJL,IAAsBrB,KAAK1O,OAAS,WAChCxJ,EAAazF,+CAAbsf,EACI7H,QACA,kBACAuH,IAAsBrB,KAAK1O,OAAOpC,oBAHtC0S,EAKI9H,QACA,aACAwF,IAA2BU,KAAK1O,OAAOpC,YAE3C,KAEA2S,EACJN,EAASjQ,OAAS,EAChBhJ,4BACGR,EAAaxG,UAAW,IACxBigB,EAASxV,KAAI,SAACsC,EAAUrC,GAAX,OACZ1D,gBAACwZ,YAAS5V,IAAQF,MAASqC,GACxBrC,EAAQ,EAAIlE,EAAa9E,OAAS,GACnCsF,gBAACyZ,QACCrG,MAAM,YACN1Q,MAAOxD,EAAMwa,UAAU3T,GAAU3D,UAAUV,OAC3CiY,SAAU,WAAA,OAAMza,EAAMwa,UAAU3T,GAAUiM,yBAKhD,KAEN,OACEhS,gBAACyV,YACCC,GAAIwD,KAAqBE,KAAmBG,EAC5CK,QAASd,EAAmB,IAAM,GAElC9Y,gBAAC6Z,uBACCzG,MAAM,OACN0G,MAAM,GACFX,GACJ1Y,GAAI,SAACa,GAAD,UACFyY,aAAc,EACdvV,SAAU,OACVwV,KAAM,EACNtU,EAAG,EACHwQ,SAAU,WACV+D,MAAO,EACPpD,IAAK,EACLlW,MAAO,OACPiY,OAAQ,UACJO,SAAAA,EAAY1Y,cAAcV,SAC1BoZ,EAAW1Y,GAAGa,SACb6X,SAAAA,EAAY1Y,cAGlB0Y,SAAAA,EAAY9Y,QAASL,gBAACka,kBAAYf,EAAW9Y,OAC9CL,gBAACuE,OAAI9D,GAAI,CAAEiF,EAAG,sBACXyT,SAAAA,EAAYgB,gBACZhB,SAAAA,EAAYgB,YAAaf,GAAiBG,IACzCvZ,2BAEDoZ,EACAA,GAAiBG,GAAoBvZ,2BACrCuZ,kBChFEa,EAAwC,gBAAGlb,IAAAA,MAAUmb,WAQ5Dnb,EALFI,YACEC,MAAShC,IAAAA,mBAAoBE,IAAAA,eAC7B+B,IAAAA,aAEF8a,EACEpb,EADFob,gBAEMC,GAAiB1a,EADrBX,EANFW,YAOM0a,aAMR,OACEva,gBAACC,WAAQC,SAAMG,MAAOb,EAAa5E,kBACjCoF,gBAACM,yCACad,EAAapF,gBACzBoG,QARyB,WAC7B8Z,GAAiBC,KAQTF,GAEYra,gBAAfua,EAAgBhd,EAAyBE,uBCrBrC+c,GAAuC,gBAAGtb,IAAAA,MAAUmb,WAM3Dnb,EAJFI,QACWT,IAATU,MAASV,eACTW,IAAAA,eAI4BoM,WAA6B,MAAtDnK,OAAUG,OAMjB,OACE5B,gCACEA,gBAACC,WAAQC,SAAMG,MAAOb,EAAarF,iBACjC6F,gBAACM,yCACad,EAAarF,gBACzBqG,QATY,SAACoQ,GACnBhP,EAAYgP,EAAME,iBASRuJ,GAEJra,gBAACnB,UAGLmB,gBAACgO,GACCvM,SAAUA,EACVG,YAAaA,EACb1C,MAAOA,mBC7BFub,GAA0C,gBAAGvb,IAAAA,MAAUmb,YAQ9Dnb,EALFI,YACEC,MAASxD,IAAAA,iBAAkBE,IAAAA,kBAAmBE,IAAAA,iBAC9CqD,IAAAA,aAEFkb,EACExb,EADFwb,WAEM9a,GAAYC,EADhBX,EANFW,YAOMD,QAYR,OACEI,gBAACC,WAAQC,SAAMG,MAAOb,EAAa7E,eACjCqF,gBAACM,yCACad,EAAa7E,cACzB6F,QAd2B,WAO/Bka,EALc,gBAAZ9a,EACI,UACY,YAAZA,EACA,WACA,iBASEya,GAGFra,gBADW,YAAZJ,EACEzD,EACa,gBAAZyD,EACD3D,EAEAF,wBCjCE4e,GAAqC,gBAAGzb,IAAAA,MAAUmb,YAQzDnb,EALFI,YACEC,MAASpC,IAAAA,eAAgBE,IAAAA,kBACzBmC,IAAAA,aAEFoQ,EACE1Q,EADF0Q,eAEMgL,GAAsB/a,EAD1BX,EANFW,YAOM+a,kBAMR,OACE5a,gBAACC,WAAQC,SAAMG,MAAOb,EAAapF,iBACjC4F,gBAACM,yCACad,EAAapF,gBACzBoG,QAR0B,WAC9BoP,GAAgBgL,KAQRP,GAEiBra,gBAApB4a,EAAqBvd,EAAwBF,wBCtBzC0d,GAA0C,gBAAG3b,IAAAA,MAAUmb,YAU9Dnb,EAPFI,YACEC,MAAShB,IAAAA,WAAYE,IAAAA,cACrBkR,IAAAA,QACAnQ,IAAAA,aACAuV,IAAAA,wBAEF+F,EACE5b,EADF4b,oBAEM7F,GAAqBpV,EADzBX,EARFW,YASMoV,iBAEFO,EACJT,aAAmChV,SAC/BgV,EAAwB,CAAE7V,MAAAA,IAC1B6V,EAeN,OACE/U,gBAACC,WAAQC,SAAMG,MAAOb,EAAanF,gBACjC2F,gBAACM,4BAAWE,QAfW,WACzBsa,GAAqB7F,GACrB7E,YACE,WAAA,QAAA,gBACEC,SACGC,8BACCkF,SAAAA,EAAgBxS,aAAa2M,gCAFjCc,EAIIC,UACN,OAM6C2J,GACvBra,gBAAnBiV,EAAoBxW,EAAoBF,WC5BpCwc,GAAwC,kBAAG7b,IAAAA,QAclDA,EAZFI,QACEkQ,IAAAA,oBACAtE,IAAAA,qBACA8P,IAAAA,oBACAC,IAAAA,cACAC,IAAAA,uBACAC,IAAAA,mBACAhQ,IAAAA,aACAC,IAAAA,cACAgQ,IAAAA,qBACAC,IAAAA,6BAIJ,OACErb,gBAACuE,OACC9D,GAAI,CACF0D,WAAY,SACZC,QAAS,OACTwU,OAAQ,mBAGTyC,SAAAA,EAA+B,CAC9BjB,2BAAAA,EACAI,0BAAAA,GACAC,6BAAAA,GACAE,wBAAAA,GACAE,6BAAAA,GACA3b,MAAAA,OAEAc,gCACGmb,GAA+C,UAAzBC,GACrBpb,gBAAC4U,GAA0B1V,MAAOA,IAEnC+b,GAAiBE,GAChBnb,gBAAC6a,IAA6B3b,MAAOA,IAEtC+b,GAAiBzL,GAChBxP,gBAAC2a,IAAwBzb,MAAOA,KAEhCiM,GAAgBD,GAAwBE,IACxCpL,gBAACwa,IAA0Btb,MAAOA,IAEnC8b,GACChb,gBAACya,IAA6Bvb,MAAOA,IAEtCgc,GACClb,gBAACoa,GAA2Blb,MAAOA,OCtDlCoc,GAAsB,YAAA,MAAkC,CACnEnX,WAAY,aACZyB,gBAAiB2V,YAFmBja,MAEL8K,QAAQoP,mBAAoB,KAC3DC,gBAAiB,OACjBrX,QAAS,OACTsX,UAAW,SACXC,SAAU,SACVjW,EAAG,eACH1E,WAAY,uBACZ4X,OAAQ,IAOGgD,GAA4B,kBAAG1c,IAAAA,QActCA,EAXFI,QACE6b,IAAAA,mBACAU,IAAAA,iBACAzE,IAAAA,6BACA0E,IAAAA,wBACAV,IAAAA,qBACAW,IAAAA,mBACAC,IAAAA,2BACAC,IAAAA,8BACAtM,IAAAA,WAIuC9P,EAFvCX,EAZFW,YAcM0a,IAAAA,aAActF,IAAAA,iBAEhBiH,EAAWC,gBAAc,qBAEzBC,EACJN,aAAmC/b,SAC/B+b,EAAwB,CAAE5c,MAAAA,IAC1B4c,EAEAhD,EACJoD,KAAcD,GAAiChH,EAEjD,OACEjV,gBAACqc,yBACCrZ,UAAW2M,iBACXmG,QAAQ,SACJsG,GACJ3b,GAAI,SAACa,GAAD,UAEA4U,SAAUqE,EAAe,cAAW1Z,EACpCgW,IAAK0D,EAAe,SAAM1Z,GACvBya,GAAoB,CAAEha,MAAAA,WACrB8a,SAAAA,EAAc3b,cAAcV,SAC5Bqc,EAAa3b,GAAGa,SACf8a,SAAAA,EAAc3b,OAIS,QAA/Bub,GACChc,gBAAC6Y,GACCC,iBAAkBA,EAClB5Z,MAAOA,IAGXc,gBAACuE,OACC9D,GAAI,CACF0D,WAAY,aACZmY,UAAW,aACXlY,QAAS,OACT8H,eAAgB,gBAChBxG,EAAG,SACHwQ,SAAU4C,EAAmB,WAAa,WAC1CmB,MAAO,EACPpD,IAAK,EACLlW,MAAO,SAGRwa,GAA+C,SAAzBC,GACrBpb,gBAAC4U,GAA0B1V,MAAOA,mBAGnC+c,SAAAA,EAAgC,CAAE/c,MAAAA,OAAYc,6BAC9CoX,EACCpX,gBAAC+a,IAA2B7b,MAAOA,IAEnCic,GACyB,UAAzBC,GACEpb,gBAAC4U,GAA0B1V,MAAOA,KAIvC2c,GACC,CAAC,MAAO,QAAQ/Y,eAASiZ,EAAAA,EAAsB,KAC7C/b,gBAAC+W,GAAoB7X,MAAOA,EAAOgX,SAAS,QAEhDlW,gBAACoW,GAAsBC,gBAAanX,MAAOA,MC9FpCqd,GAA+B,gBAAGrd,IAAAA,QAWzCA,EARFI,QACEuc,IAAAA,iBACAW,IAAAA,2BACAT,IAAAA,mBACAC,IAAAA,2BACAS,IAAAA,iCACA9M,IAAAA,QAGI4K,GAAiB1a,EADrBX,EATFW,YAUM0a,aAEF2B,EAAWC,gBAAc,qBAEzBC,EACJI,aAAsCzc,SAClCyc,EAA2B,CAAEtd,MAAAA,IAC7Bsd,EAEA1D,EAAmBoD,KAAcO,EAEvC,OACEzc,gBAACqc,yBACCrZ,UAAW2M,oBACXmG,QAAQ,SACJsG,GACJ3b,GAAI,SAACa,GAAD,YAEGga,GAAoB,CAAEha,MAAAA,KACzBsV,OAAQ2D,EAAe,SAAM1Z,EAC7B6b,wBAAyBC,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,IAC3D7C,KAAM,EACN9D,SAAUqE,EAAe,QAAU,WACnCN,MAAO,UACHmC,SAAAA,EAAc3b,cAAcV,SAC5Bqc,EAAa3b,GAAGa,SACf8a,SAAAA,EAAc3b,OAIvBT,gBAACoW,GAAsBC,cAAc,EAAOnX,MAAOA,IACnB,WAA/B8c,GACChc,gBAAC6Y,GAAuB3Z,MAAOA,IAEjCc,gBAACuE,OACC9D,GAAI,CACF2D,QAAS,OACT8H,eAAgB,gBAChBvL,MAAO,SAGR8b,EACCzc,gBAACuE,OAAI9D,GAAI,CAAEiF,EAAG,WACX+W,EAAiC,CAAEvd,MAAAA,KAGtCc,6BAEFA,gBAACuE,OACC9D,GAAI,CACF2D,QAAS,OACT8H,eAAgB,WAChBgK,SAAU4C,EAAmB,WAAa,WAC1CmB,MAAO,EACPpD,IAAK,IAGNgF,GACC,CAAC,SAAU,QAAQ/Y,eAASiZ,EAAAA,EAAsB,KAChD/b,gBAAC+W,GAAoB7X,MAAOA,EAAOgX,SAAS,eCzE7C4G,GAAkD,gBAC7Dpb,IAAAA,OACAxC,IAAAA,QAQIA,EALFI,QACWvB,IAATwB,MAASxB,aACTyB,IAAAA,aACAud,IAAAA,yCAGI5a,EAAWT,EAAXS,OACAC,EAAcD,EAAdC,YAEwBwJ,WAA6B,MAAtDnK,OAAUG,OAqBX9B,OAZJid,aAAoDhd,SAChDgd,EAAyC,CAAE5a,OAAAA,EAAQjD,MAAAA,IACnD6d,EAGJ3a,EAAU2a,oDAAoDhd,SAC1DqC,EAAU2a,yCAAyC,CACjD5a,OAAAA,EACAjD,MAAAA,IAEFkD,EAAU2a,0CAOhB,OACE/c,gCACEA,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChB8E,UAAU,MACV7E,MAAOb,EAAahI,eAEpBwI,gBAACM,yCACad,EAAahI,cACzBgJ,QAnCY,SAACoQ,GACnBA,EAAMC,kBACND,EAAM8C,iBACN9R,EAAYgP,EAAME,gBAiCZ9L,KAAK,SACDlF,GACJW,GAAI,SAACa,GAAD,UACFZ,OAAQ,OACRE,GAAI,UACJ6E,QAAS,GACTzE,WAAY,eACZL,MAAO,OACPgF,UAAW,CACTF,QAAS,WAEP3F,SAAAA,EAAiBW,cAAcV,SAC/BD,EAAgBW,GAAGa,SAClBxB,SAAAA,EAAiBW,OAGxBT,gBAACjC,UAGLiC,gBAACsP,GACC7N,SAAUA,EACVC,OAAQA,EACRE,YAAaA,EACb1C,MAAOA,MC3DF8d,GAAiC,4BAC5Ctb,IAAAA,OACAub,IAAAA,WACA/d,IAAAA,QAaIA,EATFI,QACEiQ,IAAAA,6BACAzN,IAAAA,4BACAvC,MAASpC,IAAAA,eAAgBtB,IAAAA,UACzB2D,IAAAA,aACA+Q,IAAAA,qCACAZ,IAAAA,QAEF5N,EACE7C,EADF6C,oBAEMI,EAAWT,EAAXS,OACAC,EAAcD,EAAdC,UACAH,GAAqBpC,EAHzBX,EAVFW,YAaMoC,mBAEwB2J,WAA6B,MAAtDnK,OAAUG,OAeX4T,OAZJjF,aAAgDxQ,SAC5CwQ,EAAqC,CAAEpO,OAAAA,EAAQjD,MAAAA,IAC/CqR,EAGJnO,EAAUmO,gDAAgDxQ,SACtDqC,EAAUmO,qCAAqC,CAC7CpO,OAAAA,EACAjD,MAAAA,IAEFkD,EAAUmO,wCAOsB3E,YAAiB,WAAA,UAAA,YACtC/K,IAAfoc,oBACK9a,EAAOyP,yBAAPsL,EAA+CD,MAAe,YAC9D9a,EAAOyP,oBAA+B,MAHtC5L,OAAalC,OAMdsR,EAAwBC,cAC5BC,YAAS,SAAC1E,GACR,IAAItM,EACsB,SAAxBkR,EAAe2H,KACX,IAAIC,KAAKxM,EAAM2E,OAAOjR,OACtBsM,EAAM2E,OAAOjR,MAEjBnC,EAAO2B,oBADUjD,IAAfoc,EACoB,SAAChL,GACrB,IAAMoL,QAAkBpL,EAAAA,EAAO,CAAC,GAAI,IAEpC,OADAoL,EAAgBJ,GAAc3Y,EACvB+Y,SAGa/Y,EAAAA,OAASzD,KAEhC,KACH,IAkCF,GAAIuB,EAAUkb,OACZ,OAAOtd,sCAAGoC,EAAUkb,cAAVlb,EAAUkb,OAAS,CAAE5b,OAAAA,EAAQxC,MAAAA,KAGzC,IAAMqe,SAAkB5N,MAAWjO,EAAOsB,+BACxCia,EAAAA,EAAc,IAEVO,QAAsBvb,SAAAA,EAAmBP,EAAOsB,IAChDya,IAAmBrb,EAAU6O,oBAC7ByM,EAAkB,CAAC,QAAS,YAAY5a,SAAS0a,GAEnDhe,mBAEIge,YAAAA,EAAqBG,OAAO,aAAIC,sBAChCJ,SAAAA,EAAqBK,MAAM,MAG/B,GACEC,OACWjd,IAAfoc,WACIzd,EAAazH,uBAAb8Z,EAA6BL,QAC3B,WACAC,OAAOrP,EAAUV,SAEJ,IAAfub,EACAzd,EAAapG,IACE,IAAf6jB,EACAzd,EAAarG,IACb,GAEAkJ,iBACJD,SAAAA,EAAWN,2BAA2BA,EAElCic,EACJxO,IAC2C,IAA3CnN,EAAUmN,+BACTkO,IACAR,SAC+Bpc,IAA/BwB,WACGA,IAAAA,EAA4B2G,SAElC,OACEhJ,gCACEA,gBAAC4V,2BACCoI,aACAhb,GAAIua,EACJhJ,WAAY,CACVhU,WAAYmd,EACZjd,GAAI,CACFwd,aAAc,WACdtd,MAAO+c,EAAkB,OAAI7c,GAE/BR,MAAOyd,GAETI,WACEH,EACE/d,yBAAOme,QAASZ,GACb/d,EAAa/G,WAAW+Y,QACvB,eAEAhS,mBAEIge,YAAAA,EAAqBG,OAAO,aAAIC,sBAChCJ,SAAAA,EAAqBK,MAAM,QAKjC,KAENO,oBAAqB,CACnB3d,GAAI,CACF+D,SAAU,SACV6Z,WAAY,SACZC,WAAY,WAGhBC,OAAO,OACP1I,YACE6H,GAAmBD,OAAiB5c,EAAYid,EAElDvQ,SAhHe,SAACqD,GACpB9M,EAAe8M,EAAM2E,OAAOjR,OAC5B8Q,EAAsBxE,IA+GlBpQ,QAAS,SAACkM,GAAD,OAAqCA,EAAEmE,mBAChD7W,OAAQyjB,EACRnZ,YAAO0B,EAAAA,EAAe,GACtB8P,QAAQ,WACRC,WAAY,CACVC,eAAgB+H,EACd/d,gBAACiW,kBAAeC,SAAS,SACvBlW,gBAACC,WAAQC,SAAMG,MAAOb,EAAatI,kBACjC8I,4BACEA,gBAACM,2BACad,EAAatI,iBACzBsJ,QAvHW,SAACoQ,GAC5BhP,EAAYgP,EAAME,gBAuHF9L,KAAK,QACLvE,GAAI,CAAEC,OAAQ,UAAWC,MAAO,YAEhCX,gBAAC7C,WAINugB,GACC1d,gBAACyZ,QACCE,SAhHc,WAC5B7V,EAAe,IACf3B,EAAO2B,oBAAejD,GACtBkB,GAAoB,SAAC8B,GAAD,MAAA,YACfA,UACFnC,EAAOsB,IAAK,gBA4GDN,MAAOgb,KAKb1d,gBAAC7C,QAEHgZ,cAAeuH,GACb1d,gBAACiW,kBAAeC,SAAS,OACvBlW,gBAACC,WACCC,SACAse,qBAAsBf,EACtBvY,UAAU,QACV7E,eAAOb,EAAapI,eAAe,IAEnC4I,4BACEA,gBAACM,2BACad,EAAapI,YACzBmJ,iBAAWyF,GAAAA,EAAagD,QACxBxI,QAjJE,WAClBsD,EAAe,IAEb3B,EAAO2B,oBADUjD,IAAfoc,EACoB,SAAChL,GACrB,IAAMoL,QAAkBpL,EAAAA,EAAO,CAAC,GAAI,IAEpC,OADAoL,EAAgBJ,QAAcpc,EACvBwc,QAGaxc,IAyIRmE,KAAK,QACLvE,GAAI,CACFC,OAAQ,UACRC,MAAO,YAGTX,gBAACnE,cAOT2Z,GACJ/U,GAAI,SAACa,GAAD,UACFoE,EAAG,EACHb,SAAW6Y,EAA2B,OAAT,OAC7B/c,MAAO,sBACP8d,qBAAqB,CACnBC,GAAI,kBAEFlJ,SAAAA,EAAgB/U,cAAcV,SAC9ByV,EAAe/U,GAAGa,SACjBkU,SAAAA,EAAgB/U,OAGtBgd,GACCzd,gBAAC2D,YAAShB,WAAQpC,UAAWyF,EAAa1B,MAAM,IAC7C9E,EAAapI,mBAGjBgL,YAAAA,EAAW6O,4BAAX0N,EAAgClb,KAAI,SAACjB,GACpC,IAAI8B,EACAsa,EAQJ,MAPsB,iBAAXpc,GACT8B,EAAQ9B,EACRoc,EAAOpc,GACoB,iBAAXA,IAChB8B,EAAQ9B,EAAO8B,MACfsa,EAAOpc,EAAOoc,MAGd5e,gBAAC2D,YAASC,IAAKU,EAAOA,MAAOA,GAC1Bsa,OAKT5e,gBAACwB,GACCC,SAAUA,EACVC,OAAQA,EACRE,YAAaA,EACb1C,MAAOA,MCjSF2f,GAAmC,gBAAGnd,IAAAA,OAAQxC,IAAAA,MACzD,OACEc,gBAACuE,OAAI9D,GAAI,CAAE2D,QAAS,OAAQ0a,oBAAqB,UAAWza,IAAK,SAC/DrE,gBAACgd,IAAoBtb,OAAQA,EAAQub,WAAY,EAAG/d,MAAOA,IAC3Dc,gBAACgd,IAAoBtb,OAAQA,EAAQub,WAAY,EAAG/d,MAAOA,MCHpD6f,GAA8C,gBACzDrd,IAAAA,OACAxC,IAAAA,SAGgDW,EAD3BX,EAAbW,YAIR,OACEG,gBAACyV,YAASC,KAJckF,kBAISlE,gBAAaC,kBAE1C3W,gBAD+B,cAL7BiC,iBACWP,EAAXS,OAIqBa,IACtB6b,GAEA7B,IAFsBtb,OAAQA,EAAQxC,MAAOA,MCbzC8f,GAA0C,sBAAGtd,IAAAA,OAAQxC,IAAAA,QAO5DA,EAJFI,QACWvC,IAATwC,MAASxC,cACTyC,IAAAA,aAGIyC,GAAqBpC,EADzBX,EALFW,YAMMoC,iBACAE,EAAWT,EAAXS,OAGFqb,QAAsBvb,SAAAA,EAAmBP,EAAOsB,IAChDic,EAAgBzf,EAAa3G,kBAChC2Y,QAAQ,WAAYC,OAJDtP,EAAdC,UAIgCV,SACrC8P,QACC,eAEAhS,mBAEIge,YAAAA,EAAqBG,OAAO,aAAIC,sBAChCJ,SAAAA,EAAqBK,MAAM,OAIhCrM,QACC,qBAEE9C,MAAMwQ,QAAQ/c,EAAOyP,kBAChBzP,EAAOyP,iBAAsCuN,UACvC3f,EAAaxI,UAEnBmL,EAAOyP,uBAGfJ,QAAQ,MAAO,IAElB,OACExR,gBAACof,QACCzI,iBACAjB,KACKvT,EAAOyP,kBAA4C,YAAxB4L,GACL,YAAxBA,eACIrb,EAAOyP,oBAAPyN,EAA0B,gBAAQld,EAAOyP,oBAAPsL,EAA0B,MAGnEld,4BACEA,gBAACC,WAAQC,SAAMgF,UAAU,MAAM7E,MAAO4e,GACpCjf,gBAACM,cACC6E,iBACA3E,QAAS,SAACoQ,GACRA,EAAMC,mBAER7L,KAAK,QACLvE,GAAI,CACF+E,EAAG,EACHC,QAAS,GACTC,EAAG,MACH3E,UAAW,cACXJ,MAAO,UAGTX,gBAACjD,aC5DAuiB,GAAyC,gBACpDnd,IAAAA,OACAjD,IAAAA,MACAqgB,IAAAA,mBAYIrgB,EARFI,QACE4L,IAAAA,qBACAsU,IAAAA,gCACAC,IAAAA,aAEFpU,EAGEnM,EAHFmM,eACAqU,EAEExgB,EAFFwgB,yBACA1U,EACE9L,EADF8L,wBAEM5I,EAAcD,EAAdC,aAENvC,EAHEX,EATFW,YAWMkL,IAAAA,qBAAsB4U,IAAAA,sBAAuBlW,IAAAA,YAa/C3J,OATJ0f,aAA2Czf,SACvCyf,EAAgC,CAAErd,OAAAA,EAAQjD,MAAAA,IAC1CsgB,EAGJpd,EAAUod,2CAA2Czf,SACjDqC,EAAUod,gCAAgC,CAAErd,OAAAA,EAAQjD,MAAAA,IACpDkD,EAAUod,iCA6BhB,OACExf,gBAACiF,GACCnF,gBAAiBA,EACjBuF,YAzBoB,SAACqH,GACvBgT,EAAyBvd,GACzBuK,EAAEC,aAAaC,aAAa2S,EAAiB1S,QAAwB,EAAG,IAwBtEvH,UArBkB,SAACsL,SACrB6O,GAAAA,EAAe,CACb7O,MAAAA,EACArH,cAAepH,EACfqH,aAAcuB,IAGdG,GACAH,UACAA,SAAAA,EAAsB/H,aAAO2c,SAAAA,EAAuB3c,KAEpDqI,EAAe/B,EAAcnH,EAAQ4I,EAAsBtB,IAE7DiW,EAAyB,MACzB1U,EAAwB,OAQtB9L,MAAOA,KChEA0gB,GAA2C,kBAAGle,IAAAA,OAAQxC,IAAAA,MAE/DW,EAEEX,EAFFW,SACWggB,EACT3gB,EADFI,QAAWugB,mBAE0BhgB,IAA/BD,IAAAA,QAASgb,IAAAA,kBACTzY,EAAWT,EAAXS,OAEAmJ,EADcnJ,EAAdC,UACAkJ,cAER,OACEtL,gBAACmP,WACC2Q,YACAnK,YAAY,WACZoK,cAAe,WAAA,OAAM5d,EAAOiQ,aAC5B3R,GAAI,SAACa,GAAD,MAAmB,CACrByY,aAAc,MACdiG,iBAAkB,MAClBza,OAAQ,aACR7E,OAAQka,GAAuC,SAAlBtP,EAA2B,OAAS,OACjEoT,GAAgB,YAAZ9e,EAAwB,UAAY,QACxC6F,QAAS,GACTyQ,SAAU,WACV+D,MAAO,MACPgG,YAAa,OACbjf,WAAYmB,EAAO+d,qBAAkBrf,EAAY,uBACjDsf,WAAY,OACZvH,OAAQ,EACR/S,WAAY,CACVD,gBAAiBtE,EAAM8K,QAAQgU,KAAK9T,KACpC7G,QAAS,KAGb4a,YAAa3e,EAAO4e,mBACpBC,aAAc7e,EAAO4e,mBACrBxf,MAAO,CACLC,UAAWoB,EAAO+d,wCAEXrgB,IAAW2gB,iBAAiBC,eAAe,IACtB,aAArBZ,EAAkC,GAAK,SAE1C,WCzCCa,GAAwC,gBAEtClhB,IAFiDN,MAE5DI,QAAWE,aAEL2C,IAJ8CT,OAI9CS,OACAC,EAAcD,EAAdC,UAEFue,EAAgBxe,EAAOgP,cACA,SAAzBhP,EAAOgP,cACL3R,EAAa/E,mBAAmB+W,QAAQ,WAAYpP,EAAUV,QAC9DlC,EAAahF,kBAAkBgX,QAAQ,WAAYpP,EAAUV,QAC/DlC,EAAarE,SAEjB,OACE6E,gBAACC,WAAQC,SAAMgF,UAAU,MAAM7E,MAAOsgB,GACpC3gB,gBAAC4gB,+BACaD,EACZE,SAAU1e,EAAOgP,cACjB2P,UACE3e,EAAOgP,cACFhP,EAAOgP,mBACRtQ,EAENJ,GAAI,CACFE,MAAO,MACPI,UAAW,0BCnBRggB,GAA+B,sBAAGrf,IAAAA,OAAQxC,IAAAA,MAC/CoC,EAAQ0f,eAaV9hB,EAVFI,QACE2hB,IAAAA,oBACAC,IAAAA,qBACAhW,IAAAA,qBACAuE,IAAAA,qBACAlF,IAAAA,eACA4W,IAAAA,gBACAC,IAAAA,sBAEFpW,EACE9L,EADF8L,2BAE+DnL,EAD7DX,EAXFW,YAYMD,IAAAA,QAAS+f,IAAAA,sBAAuB5U,IAAAA,qBAChC5I,EAAWT,EAAXS,OACAC,EAAcD,EAAdC,UACAkJ,EAAkBlJ,EAAlBkJ,cAYF+V,OATJD,aAAiCrhB,SAC7BqhB,EAAsB,CAAEjf,OAAAA,EAAQjD,MAAAA,IAChCkiB,EAGJhf,EAAUgf,iCAAiCrhB,SACvCqC,EAAUgf,sBAAsB,CAAEjf,OAAAA,EAAQjD,MAAAA,IAC1CkD,EAAUgf,uBAgCVE,SACJ3B,SAAAA,EAAuB3c,MAAOb,EAAOa,iBACnB1B,EAAM8K,QAAQzJ,eAC5BoI,SAAAA,EAAsB/H,MAAOb,EAAOa,iBACtB1B,EAAM8K,QAAQC,QAAQC,UACpCzL,EAEA0gB,EAAkBD,EACpB,CACEE,WAAYF,EACZG,YAAaH,EACbI,UAAWJ,QAEbzgB,EAEE8gB,kBAAkBvf,SAAAA,EAAWwf,kBAAkB7hB,eACjDqC,SAAAA,EAAWwf,cAAXxf,EAAWwf,OAAS,CAClBlgB,OAAAA,EACAxC,MAAAA,UAEFkD,SAAAA,EAAWwf,UAAWxf,EAAUV,OAE9B6d,EAAmBvf,EAAM2L,OAA6B,MAE5D,OACE3L,gBAAC6hB,2BACCC,MAAyB,UAAlBxW,EAA4B,SAAW,OAC9CyW,QAASrgB,EAAOqgB,QAChB/V,YApCoB,SAACC,GACnBf,GAAwByU,GAC1B3U,GACqC,IAAnC5I,EAAU8I,qBAAiC/I,EAAS,OAkCtD4J,IAAKwT,GACD8B,GACJ5gB,GAAI,SAACa,GAAD,MAAA,UACFsE,gBACEzD,EAAO4C,eAAmC,UAAlBuG,EACpBqR,QAAMpB,UAAQja,EAAM8K,QAAQoP,mBAAoB,KAAO,KACvD,UACNC,gBAAiB,UACjBiB,UA5DuB,SAAzBva,EAAO4C,eACP7F,EAAM8iB,qBAAqBhZ,OAAS,IAAM7G,EAAO8f,mCA4DzBtF,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,IAvD5B,UAAzB1a,EAAO4C,eAAyD,IAA5B5C,EAAO8f,oCAyDvBtF,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,SACrDhc,EACJqhB,WAAY,OACZlI,KAC2B,SAAzB7X,EAAO4C,cACA5C,EAAOggB,SAAS,kBACnBthB,EACN8a,SAAU,UACVlW,eACEka,SAAAA,EAAuB3c,MAAOb,EAAOa,WACrC+H,SAAAA,EAAsB/H,MAAOb,EAAOa,GAChC,GACA,EACN0C,EACc,YAAZ9F,EACI,SACY,gBAAZA,EACkB,YAAlB0L,EACE,UACA,OACgB,YAAlBA,EACA,eACA,SACN8W,GAAsB,YAAlB9W,EAA8B,OAAIzK,EACtCqV,SACE/T,EAAO4C,eAAmC,UAAlBuG,EACpB,cACAzK,EACNmO,GACoB,UAAlB1D,EACI,EACY,YAAZ1L,EACA,OACY,gBAAZA,EACA,SACA,UACNqa,MAC2B,UAAzB9X,EAAO4C,cAzF0D,KAApE7F,EAAMmjB,sBAAsBrZ,OAAS,EAAI7G,EAAO8f,4BAyFephB,EAC9DG,mBAAmByO,EAAuB,EAAI,uBAC9C0Q,WAAYgB,GAAmBhf,EAAO+O,aAAe,YAASrQ,EAC9DyhB,cAAe,MACf1J,OACEzW,EAAO+d,wBAAmBP,SAAAA,EAAuB3c,MAAOb,EAAOa,GAC3D,EACAb,EAAO4C,eAAmC,UAAlBuG,EACxB,EACA,UACF+V,SAAAA,EAAgB5gB,cAAcV,SAC9BshB,EAAe5gB,GAAGa,SACjB+f,SAAAA,EAAgB5gB,GAClB8gB,GACHgB,gBAAiBpgB,EAAOqgB,6BACxB3d,gBAAiB1C,EAAOqgB,2BAAgBpgB,EAAUqgB,WAAW,UAC7D9hB,MAAOe,EAAO8gB,eAGf9gB,EAAOghB,cAAgB,KACtB1iB,gBAACuE,OACC9D,GAAI,CACF0D,WAAY,aACZC,QAAS,OACT8H,eAC4B,iBAA1BmV,SAAAA,EAAgBS,OACZ,WACkB,UAAlBxW,GAC0B,kBAA1B+V,SAAAA,EAAgBS,OAChB,SACA,gBACN5L,SAAU,WACVvV,MAAO,SAGTX,gBAACuE,OACC/D,QAAS2B,EAAOwgB,0BAChBliB,GAAI,CACF0D,WAAY,SACZoB,OACEpD,EAAO+O,cAAkC,UAAlB5F,EACnB,eACAzK,EACNuD,QAAS,OACTqI,SAAU,SACVjH,EAA6B,kBAA1B6b,SAAAA,EAAgBS,OAAqB,YAASjhB,EACjD0L,GAC4B,kBAA1B8U,SAAAA,EAAgBS,QAAsB3f,EAAO+O,aACzC,YACArQ,EACNyd,8BACGlc,EAAUV,eAAVkhB,EAAkB5Z,UAAU,GAAK,GAAK,SAAW,WAGrD2Y,EACAxf,EAAO+O,cACNlR,gBAAC0gB,IAA2Bhf,OAAQA,EAAQxC,MAAOA,IAEpDiD,EAAOwP,gBACN3R,gBAACgf,IAA6Btd,OAAQA,EAAQxC,MAAOA,KAGtC,UAAlBoM,GACCtL,gBAACuE,OAAI9D,GAAI,CAAE6d,WAAY,YAClB4C,IACkC,IAAnC9e,EAAU8e,sBACThW,IACoC,IAAnC9I,EAAU8I,sBACXX,IAA+C,IAA7BnI,EAAUmI,iBAC7BvK,gBAACsf,IACCnd,OAAQA,EACRjD,MAAOA,EACPqgB,iBAAkBA,KAGpB0B,GAAuB7e,EAAU6e,uBACC,IAAlC7e,EAAU6e,qBACRjhB,gBAAC8c,IACCpb,OAAQA,EACRxC,MAAOA,KAKhBiD,EAAOgQ,gBACNnS,gBAAC4f,IAA8Ble,OAAQA,EAAQxC,MAAOA,KAI3DiD,EAAOwP,gBACN3R,gBAAC+e,IAAiCrd,OAAQA,EAAQxC,MAAOA,MCxOpD2jB,GAA8B,gBAAGC,IAAAA,YAAa5jB,IAAAA,MAE5C6jB,EACT7jB,EADFI,QAAWyjB,qBAGPC,EACJD,aAAgChjB,SAC5BgjB,EAAqB,CAAED,YAAAA,EAAa5jB,MAAAA,IACpC6jB,EAEN,OACE/iB,gBAACijB,4BACKD,GACJviB,GAAI,SAACa,GAAD,UACFob,uBAAwBC,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,IAC1DjX,gBAAiB2V,UAAQja,EAAM8K,QAAQoP,mBAAoB,YACvDwH,SAAAA,EAAeviB,OAGpBqiB,EAAYI,QAAQzf,KAAI,SAAC/B,EAAoBgC,GAArB,OACvB1D,gBAAC+gB,IACCrf,OAAQA,EACRkC,IAAKlC,EAAOsB,IAAMU,EAClBxE,MAAOA,SCxBJikB,GAA2B,gBAAGjkB,IAAAA,MAEvCkkB,EAEElkB,EAFFkkB,gBACWC,EACTnkB,EADFI,QAAW+jB,kBAGPC,EACJD,aAA6BtjB,SACzBsjB,EAAkB,CAAEnkB,MAAAA,IACpBmkB,EAEN,OACErjB,gBAACujB,6BAAcD,GACZF,IAAkB3f,KAAI,SAACqf,GAAD,OACrB9iB,gBAAC6iB,IACCC,YAAaA,EACblf,IAAKkf,EAAY9f,GACjB9D,MAAOA,SCXJskB,GAAmC,gBAAGC,IAAAA,KAAMvkB,IAAAA,MAErDW,EAUEX,EAVFW,WAUEX,EATFI,QACEqQ,IAAAA,QACAxF,IAAAA,cACAuZ,IAAAA,mCACAC,IAAAA,eACAC,IAAAA,iBAEFC,EAEE3kB,EAFF2kB,sBACA7Q,EACE9T,EADF8T,qBAEM7Q,EAAgBshB,EAAhBthB,OAAQjB,EAAQuiB,EAARviB,IACRkB,EAAcD,EAAdC,YAEkBwJ,WAAS6X,EAAKrd,YAAjC9B,OAAOwf,OAgCRtO,OAZJkO,aAA8C3jB,SAC1C2jB,EAAmC,CAAED,KAAAA,EAAMvkB,MAAAA,IAC3CwkB,EAGJthB,EAAUshB,8CAA8C3jB,SACpDqC,EAAUshB,mCAAmC,CAC3CD,KAAAA,EACAvkB,MAAAA,IAEFkD,EAAUshB,oCAOhB,OAAIvZ,IAA6C,IAA5B/H,EAAU+H,eAA2B/H,EAAU1F,KAC3DsD,sCAAGoC,EAAU1F,YAAV0F,EAAU1F,KAAO,CAAE+mB,KAAAA,EAAMvkB,MAAAA,KAInCc,gBAAC4V,2BACC5S,UAAW2M,2BAAgC8T,EAAKzgB,GAChDub,OAAO,QACPwF,OArCe,SAACnT,GACd/Q,IAAWoT,oBACR/R,EAAIgS,eAAchS,EAAIgS,aAAe,IACzChS,EAAIgS,aAAqC/Q,EAAOa,IAAMsB,EACvD0O,OAA0BnT,IAAWoT,qBAEvC4Q,EAAsB,YACtBzhB,EAAUuhB,gBAAVvhB,EAAUuhB,eAAiB,CAAE/S,MAAAA,EAAO6S,KAAAA,EAAMvkB,MAAAA,UAC1CykB,GAAAA,EAAiB,CAAE/S,MAAAA,EAAO6S,KAAAA,EAAMvkB,MAAAA,KA8B9BqO,SA5CiB,SAACqD,GACpBkT,EAASlT,EAAM2E,OAAOjR,aACtBlC,EAAUwhB,kBAAVxhB,EAAUwhB,iBAAmB,CAAEhT,MAAAA,EAAO6S,KAAAA,EAAMvkB,MAAAA,UAC5C0kB,GAAAA,EAAmB,CAAEhT,MAAAA,EAAO6S,KAAAA,EAAMvkB,MAAAA,KA0ChCsB,QAAS,SAACkM,GAAD,OAAqCA,EAAEmE,mBAChDgF,YAAazT,EAAUV,OACvB4C,MAAOA,EACPwR,QAAQ,YACJN,KCxEGwO,GAA4B,gBAAGP,IAAAA,KAAMtJ,IAAAA,SAAUjb,IAAAA,QAGtDA,EADFI,QAAWE,IAAAA,aAAcykB,IAAAA,gCAGnB7hB,EADWqhB,EAAXthB,OACAC,YAEoBwJ,YAAS,GAA9BsY,OAAQC,OAqBTC,OAZJH,aAA2ClkB,SACvCkkB,EAAgC,CAAER,KAAAA,EAAMvkB,MAAAA,IACxC+kB,EAGJ7hB,EAAU6hB,2CAA2ClkB,SACjDqC,EAAU6hB,gCAAgC,CACxCR,KAAAA,EACAvkB,MAAAA,IAEFkD,EAAU6hB,iCAOhB,OACEjkB,gBAACC,WACCC,SACAC,WAAY,IACZC,eAAgB,IAChB8E,UAAU,MACV7E,MAAO6jB,EAAS1kB,EAAa/H,kBAAoB+H,EAAajI,aAE9DyI,gBAACiP,wBACCzO,QAAS,WAAA,OAjCKoe,EAiCY6E,EAAKrd,WAhCnCie,UAAUC,UAAUC,UAAU3F,GAC9BuF,GAAU,QACV/T,YAAW,WAAA,OAAM+T,GAAU,KAAQ,KAHlB,IAACvF,GAkCd5Z,KAAK,QACLmY,KAAK,SACLrH,QAAQ,QACJsO,GACJ3jB,GAAI,SAACa,GAAD,UACFsE,gBAAiB,cACjB4e,OAAQ,OACRpR,MAAO,UACP7N,OAAQ,OACRkf,WAAY,UACZjgB,SAAU,UACVkgB,cAAe,UACflf,EAAG,WACHX,SAAU,QACVC,UAAW,UACX6f,cAAe,kBACXP,SAAAA,EAAa3jB,cAAcV,SAC3BqkB,EAAY3jB,GAAGa,SACd8iB,SAAAA,EAAa3jB,OAGnB0Z,KChEIyK,GAAwC,gBACnDnB,IAAAA,KACAoB,IAAAA,OACA3lB,IAAAA,QAIIA,EADFI,QAAWwlB,IAAAA,+BAAgCC,IAAAA,UAGvCjlB,EACJglB,aAA0C/kB,SACtC+kB,EAA+B,CAAE5jB,IAAKuiB,EAAKviB,IAAKhC,MAAAA,IAChD4lB,EAiBN,OACE9kB,gBAACiF,GACCnF,gBAAiBA,EACjBuF,YAlBoB,SAACqH,GACvBA,EAAEC,aAAaC,aAAaiY,EAAOhY,QAAwB,EAAG,GAC9D3N,EAAM8lB,sBAAsBvB,EAAKviB,MAiB/BoE,UAdkB,SAACsL,SACrBmU,GAAAA,EAAY,CACVnU,MAAAA,EACAqU,WAAY/lB,EAAMW,WAAWqlB,mBAC7BC,UAAWjmB,EAAMW,WAAWulB,oBAE9BlmB,EAAM8lB,sBAAsB,MAC5B9lB,EAAMmmB,qBAAqB,OAQzBnmB,MAAOA,KCtBAomB,GAA+B,0BAC1C7B,IAAAA,KACA8B,IAAAA,YACAC,IAAAA,SACAX,IAAAA,OACA3lB,IAAAA,MAEMoC,EAAQ0f,eAiBV9hB,EAdFI,QACE8K,IAAAA,YACAqb,IAAAA,kBACAva,IAAAA,qBACAf,IAAAA,cACA0R,IAAAA,iBACApR,IAAAA,iBACAib,IAAAA,sBACAC,IAAAA,8BACAC,IAAAA,cACAjW,IAAAA,QAEFkU,EAEE3kB,EAFF2kB,sBACA7Y,EACE9L,EADF8L,2BAUEnL,EATAX,EAfFW,YAiBA8f,IAAAA,sBACAkG,IAAAA,mBACA5S,IAAAA,kBACAlI,IAAAA,qBACAnL,IAAAA,QACA2W,IAAAA,UACAuP,IAAAA,cAEM3jB,EAAgBshB,EAAhBthB,OAAQjB,EAAQuiB,EAARviB,IACRkB,EAAcD,EAAdC,UACAkJ,EAAkBlJ,EAAlBkJ,cAYF+V,OATJqE,aAAiC3lB,SAC7B2lB,EAAsB,CAAEjC,KAAAA,EAAMvkB,MAAAA,IAC9BwmB,EAGJtjB,EAAUsjB,iCAAiC3lB,SACvCqC,EAAUsjB,sBAAsB,CAAEjC,KAAAA,EAAMvkB,MAAAA,IACxCkD,EAAUsjB,uBAOVK,EAAgBxjB,WACpB,WAAA,MACoB,YAAlB+I,EACInJ,EAAOqgB,UAAY,EACnBwD,KAAKC,UAAY9jB,EAAOqgB,UAAYrgB,EAAOqgB,UAAY,GACvDrgB,EAAOqgB,UAAY,IACzB,IAGI0D,GACH/b,GAAiB/H,EAAU+H,iBACA,IAA5B/H,EAAU+H,cAENgc,EACJD,IACiB,UAAhB9b,UACC6I,SAAAA,EAAmBjQ,MAAO9B,EAAI8B,WAC9B6iB,SAAAA,EAAoB7iB,MAAOygB,EAAKzgB,IA8C9Bse,SACJ3B,SAAAA,EAAuB3c,MAAOb,EAAOa,iBACnB1B,EAAM8K,QAAQzJ,eAC5BoI,SAAAA,EAAsB/H,MAAOb,EAAOa,iBACtB1B,EAAM8K,QAAQC,QAAQC,UACpCzL,EAEA0gB,EAAkBD,EACpB,CACEE,WAAYF,EACZG,YAAaH,EACb8E,aACEllB,EAAIwC,SACHmY,EACG3c,EAAMmnB,cACNnnB,EAAM8X,4BACRU,KAAK1O,OACL,EACEsY,OACAzgB,QAERA,EAEJ,OACEb,gBAAC6hB,2BACC9B,cArEsB,SAACuG,IAEtBnc,GAAiB/H,EAAU+H,iBACA,IAA5B/H,EAAU+H,eACM,SAAhBC,IAEAyZ,EAAsBJ,GACtBrT,YAAW,WACT,IAAMmW,EAAYlW,SAASC,sBAClBX,2BAAgC8T,EAAKzgB,IAE1CujB,IACFA,EAAU7V,QACV6V,EAAUvsB,YAEX,OAuDHgS,YAlCoB,SAACC,GACnBf,GAAwByU,GAC1B3U,GACqC,IAAnC5I,EAAU8I,qBAAiC/I,EAAS,QAgClDkf,GACJ5gB,GAAI,SAACa,GAAD,MAAA,UACFsE,gBAAiBzD,EAAO4C,cACpB4X,QAAMpB,UAAQja,EAAM8K,QAAQoP,mBAAoB,KAAO,UACvD3a,EACJ6b,UAvDuB,SAAzBva,EAAO4C,eACP7F,EAAM8iB,qBAAqBhZ,OAAS,IAAM7G,EAAO8f,mCAuDzBtF,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,IAlD5B,UAAzB1a,EAAO4C,eAAyD,IAA5B5C,EAAO8f,oCAoDvBtF,QAAMrb,EAAM8K,QAAQwQ,OAAOC,MAAO,SACrDhc,EACJ0E,OAAQ2gB,GAA8B,SAAhB9b,EAAyB,UAAY,OAC3D4P,KAC2B,SAAzB7X,EAAO4C,cACA5C,EAAOggB,SAAS,kBACnBthB,EACN4E,eACEka,SAAAA,EAAuB3c,MAAOb,EAAOa,WACrC+H,SAAAA,EAAsB/H,MAAOb,EAAOa,GAChC,GACA,EACN2Y,SAAU,SACVjW,EACc,YAAZ9F,EACsB,YAAlB0L,EACE,WACA,SACU,gBAAZ1L,EACkB,YAAlB0L,EACE,iBACA,OACgB,YAAlBA,EACA,eACA,SACNiB,GACgB,mBAAdpK,EAAOa,GAED9B,EAAIsL,OACS,YAAZ5M,EACG,GACY,gBAAZA,EACA,IACA,iBAENiB,EACNqV,SAAU/T,EAAO4C,cAAgB,SAAW,WAC5CkV,MAC2B,UAAzB9X,EAAO4C,cArF0D,KAApE7F,EAAMmjB,sBAAsBrZ,OAAS,EAAI7G,EAAO8f,4BAqFephB,EAC9Dod,aAAgC,YAAlB3S,EAA8B,gBAAazK,EACzDG,WAAY,uBACZsd,WAAwB,YAAZ1e,EAAwB,SAAW,SAC/CgZ,cACE+G,SAAAA,EAAuB3c,MAAOb,EAAOa,GACjC,EACAb,EAAO4C,cACP,OACAlE,EACN8E,UAAW,CACTC,gBACE2f,GAAepb,GAAiC,QAAhBC,EACL,SAAvB9I,EAAM8K,QAAQoa,KACTjL,UACDja,EAAM8K,QAAQoP,mBACd,mBAECiL,SAAOnlB,EAAM8K,QAAQoP,mBAAoB,wBAC9C3a,WAEJwgB,SAAAA,EAAgB5gB,cAAcV,SAC9BshB,EAAe5gB,GAAGa,SACjB+f,SAAAA,EAAgB5gB,GAClB8gB,GACHgB,gBAAiBpgB,EAAOqgB,6BACxB3d,gBAAiB1C,EAAOqgB,2BAAgBpgB,EAAUqgB,WAAW,UAC7D9hB,MAAOwB,EAAOqgB,eAGhBxiB,gCACGyjB,EAAKiD,mBAAqB,KAAOnQ,GAAauP,EAC7C9lB,gBAAC2mB,0BACCC,UAAU,OACVlmB,OAAQ,GACRC,MAAOolB,GACHJ,IAEJlb,GACgB,WAAlBmb,GACc,oBAAdzjB,EAAOa,GACPwiB,EAAW,EACK,iBAAdrjB,EAAOa,GACThD,gBAAC4kB,IACCnB,KAAMA,EACNoB,OAAQA,EACR3lB,MAAOA,IAEW,YAAlBoM,QACFlJ,EAAUykB,YAAVzkB,EAAUykB,KAAO,CAAEpD,KAAAA,EAAMvkB,MAAAA,IACvBinB,EACFnmB,gBAACwjB,IAAsBC,KAAMA,EAAMvkB,MAAOA,KACvCumB,GAAqBrjB,EAAUqjB,qBACF,IAAhCrjB,EAAUqjB,kBACVzlB,gCACEA,gBAACgkB,IAAeP,KAAMA,EAAMvkB,MAAOA,GACjCc,+CAAGoC,SAAAA,EAAWykB,YAAXzkB,EAAWykB,KAAO,CAAEpD,KAAAA,EAAMvkB,MAAAA,OAAYukB,EAAKqD,gBAE/CrD,EAAKnW,gBAAkBtN,8CAAKkB,EAAI6lB,gBAAJC,EAAahe,aAG5ChJ,+CACGoC,SAAAA,EAAWykB,YAAXzkB,EAAWykB,KAAO,CAAEpD,KAAAA,EAAMvkB,MAAAA,OAAYukB,EAAKqD,cAC3CrD,EAAKnW,gBAAkBtN,uDAAKkB,EAAI6lB,gBAAJE,EAAaje,UAAU,YCzQnDke,GAAkC,gBAAGhmB,IAAAA,IAAKhC,IAAAA,MAEnDioB,EAMEjoB,EANFioB,wBAMEjoB,EALFI,QACE8nB,IAAAA,qBACAC,IAAAA,yBACA3nB,IAAAA,kBAIEsjB,EACJoE,aAAgCrnB,SAC5BqnB,EAAqB,CAAElmB,IAAAA,EAAKhC,MAAAA,IAC5BkoB,EAEA/F,EACJgG,aAAoCtnB,SAChCsnB,EAAyB,CAAEnmB,IAAAA,EAAKhC,MAAAA,IAChCmoB,EAEN,OACErnB,gBAACijB,4BAAaD,GACZhjB,gBAAC6hB,2BACCE,QAASoF,IAAwBne,QAC7BqY,GACJ5gB,GAAI,SAACa,GAAD,UACF8kB,aAAellB,EAAIK,qBAA2BV,EAAT,OACrCuhB,GAAIlhB,EAAIK,gBAAkB,OAAS,EACnCyN,GAAI9N,EAAIK,gBAAkB,OAAS,EACnCP,WAAY,uBACZL,MAAUzB,EAAMooB,4BACZjG,SAAAA,EAAgB5gB,cAAcV,SAC9BshB,EAAe5gB,GAAGa,SACjB+f,SAAAA,EAAgB5gB,OAGtBf,GACCM,gBAACyV,YAASC,GAAIxU,EAAIK,iBACf7B,EAAkB,CAAEwB,IAAAA,EAAKhC,MAAAA,QCnCzBqoB,GAA8B,kBAAGrmB,IAAAA,IAAKskB,IAAAA,SAAUtmB,IAAAA,MACrDoC,EAAQ0f,aAEZ3S,EAIEnP,EAJFmP,yBAIEnP,EAFFI,QAAW0K,IAAAA,kBAAmBod,IAAAA,qBAAsB1nB,IAAAA,kBACpD2lB,EACEnmB,EADFmmB,wBAEgDxlB,EAD9CX,EAHFW,YAIMqlB,IAAAA,mBAAoBE,IAAAA,kBAEtBpC,EACJoE,aAAgCrnB,SAC5BqnB,EAAqB,CAAElmB,IAAAA,EAAKhC,MAAAA,IAC5BkoB,EAQAvC,EAASlZ,SAA4B,MAErC2V,SACJ4D,SAAAA,EAAoBliB,MAAO9B,EAAI8B,iBACb1B,EAAM8K,QAAQzJ,eAC5ByiB,SAAAA,EAAmBpiB,MAAO9B,EAAI8B,iBAChB1B,EAAM8K,QAAQC,QAAQC,UACpCzL,EAEA0gB,EAAkBD,EACpB,CACEkD,OAAQlD,QAEVzgB,EAEJ,OACEb,gCACEA,gBAACijB,0BACCjX,YAxBkB,SAACC,GACnBjC,GAAqBkb,GACvBG,EAAqBnkB,IAuBnBsmB,SACAxjB,SAAU9C,EAAIiT,gBACdpI,IAAK8Y,GACD7B,GACJviB,GAAI,SAACa,GAAD,UACFsE,gBAAiB2V,UAAQja,EAAM8K,QAAQoP,mBAAoB,KAC3D/V,eACEyf,SAAAA,EAAoBliB,MAAO9B,EAAI8B,WAC/BoiB,SAAAA,EAAmBpiB,MAAO9B,EAAI8B,GAC1B,GACA,EACNhC,WAAY,uBACZymB,aAAc,CACZ7hB,iBAC2B,WAAzBod,SAAAA,EAAewE,QAAmBnZ,IACP,SAAvB/M,EAAM8K,QAAQoa,QACTjL,UAAQja,EAAM8K,QAAQoP,mBAAoB,QAC1CiL,SAAOnlB,EAAM8K,QAAQoP,mBAAoB,UAC9C3a,WAEJmiB,SAAAA,EAAeviB,cAAcV,SAC7BijB,EAAcviB,GAAGa,SAChB0hB,SAAAA,EAAeviB,GACjB8gB,YAGJrgB,YAAAA,EAAKwmB,0BAALC,EAAwBlkB,WAAxBkkB,EAAwBlkB,KAAM,SAACggB,GAAD,OAC7BzjB,gBAACslB,IACC7B,KAAMA,EACN7f,IAAK6f,EAAKzgB,GACVuiB,aAAsC,WAAzBvC,SAAAA,EAAewE,OAC5BhC,SAAUA,EACVX,OAAQA,EACR3lB,MAAOA,QAIZQ,IAAsBwB,EAAIoM,gBACzBtN,gBAACknB,IAAqBhmB,IAAKA,EAAKhC,MAAOA,MC9ElC0oB,GAA2B,gBAAG1oB,IAAAA,MAAO2oB,IAAAA,kBAE9CxB,EAUEnnB,EAVFmnB,YACArP,EASE9X,EATF8X,2BASE9X,EAPFI,QACEwoB,IAAAA,gCACAjM,IAAAA,iBACAkM,IAAAA,wBACAC,IAAAA,kBACAC,IAAAA,oBAGmDpoB,EADnDX,EARFW,YASMD,IAAAA,QAASoV,IAAAA,aAAcsC,IAAAA,WAAY4Q,IAAAA,QAErCC,EACJH,aAA6BjoB,SACzBioB,EAAkB,CAAE9oB,MAAAA,IACpB8oB,EAMAtQ,EAAOnV,WAAQ,WACnB,GACEulB,GACA9S,IANK1C,OAAOC,OAAO2V,GAASjf,KAAKyB,SAQjC,CACA,IAAM0d,EAAapR,IAA2BU,KAAK2Q,MAAK,SAACC,EAAGC,GAAJ,OtCd5DrgB,EsCesBogB,EtCZtBtC,KAAK7sB,UAAL6sB,KAAY1T,OAAOC,OsCYMgW,EtCZMlgB,mBAAmB5E,KAAI,SAAC+kB,GAAD,OAAYA,EAAEC,SACpEzC,KAAK7sB,UAAL6sB,KAAY1T,OAAOC,OAAOrK,EAAKG,mBAAmB5E,KAAI,SAAC+kB,GAAD,OAAYA,EAAEC,SALvC,IAC7BvgB,KsCiBI,OAAI2T,EACKuM,EAAWvK,MAAM,EAAGvG,EAAWC,UAEjC6Q,EAGT,OAAOvM,EACHwK,IAAc3O,KACdV,IAA2BU,OAC9B,CACDoQ,EACCA,GAAmC9S,IAAkB6G,EAClD7E,IAA2BU,KAC3B2O,IAAc3O,KAClB1C,IAGI0T,EAAiBX,EACnBY,gBAEEC,SAAsB,YAAZhpB,EAAwB,GAAK,GACvCipB,UAAWhB,EACX7iB,KAAM0S,EAAK1O,QACRif,IAEJ,GAECa,EAAcf,EAChBW,EAAeK,aACf,GAEAC,EAAa,EACbC,EAAgB,EASpB,OARIlB,IACFiB,EAAaF,EAAY9f,OAAS,EAAI8f,EAAY,GAAGI,MAAQ,EAC7DD,EACEH,EAAY9f,OAAS,EACjB0f,EAAeS,UAAYL,EAAYA,EAAY9f,OAAS,GAAGogB,IAC/D,GAINppB,gBAACqpB,6BAAclB,GACZJ,GAA2BiB,EAAa,GACvChpB,0BACEA,sBAAIc,MAAO,CAAEJ,OAAWsoB,YAG1BjB,EAA0Be,EAAcpR,GAAMjU,KAC9C,SAAC6lB,EAAsB9D,GACrB,IAAMtkB,EAAM6mB,EACPrQ,EAAK4R,EAAgB5lB,OACrB4lB,EACL,OACEtpB,gBAACunB,IACC3jB,IAAK1C,EAAI8B,GACT9B,IAAKA,EACLskB,SACEuC,EAA0BuB,EAAgB5lB,MAAQ8hB,EAEpDtmB,MAAOA,OAKd6oB,GAA2BkB,EAAgB,GAC1CjpB,0BACEA,sBAAIc,MAAO,CAAEJ,OAAWuoB,aCvGrBM,GAAiC,oBAAGC,IAAAA,OAAQtqB,IAAAA,QAInDA,EADFI,QAAWmqB,IAAAA,wBAAyBha,IAAAA,qBAE9B7P,GAAYC,EADhBX,EAFFW,YAGMD,QACAuC,EAAWqnB,EAAXrnB,OACAC,EAAcD,EAAdC,UACAkJ,EAAkBlJ,EAAlBkJ,cAYF+V,OATJoI,aAAmC1pB,SAC/B0pB,EAAwB,CAAEtnB,OAAAA,EAAQjD,MAAAA,IAClCuqB,EAGJrnB,EAAUqnB,mCAAmC1pB,SACzCqC,EAAUqnB,wBAAwB,CAAEtnB,OAAAA,EAAQjD,MAAAA,IAC5CkD,EAAUqnB,yBAOhB,OACEzpB,gBAAC6hB,2BACCC,MAAyB,UAAlBxW,EAA4B,SAAW,OAC9CyW,QAASyH,EAAOzH,QAChBjM,QAAQ,QACJuL,GACJ5gB,GAAI,SAACa,GAAD,UACFsE,gBAAiBtE,EAAM8K,QAAQoP,mBAC/BC,mCAAoCkB,QAClCrb,EAAM8K,QAAQwQ,OAAO8M,MACrB,SACG/M,QAAMrb,EAAM8K,QAAQwQ,OAAO8M,MAAO,SACvCxH,WAAY,OACZK,SAAapgB,EAAOqgB,eACpB3d,SAAa1C,EAAOqgB,eACpB9c,EACc,YAAZ9F,EACI,SACY,gBAAZA,EACA,OACA,SACNoB,mBAAmByO,EAAuB,OAAS,uBACnD9O,MAAOwB,EAAOqgB,UACdF,cAAe,mBACXjB,SAAAA,EAAgB5gB,cAAcV,SAC9BshB,EAAe5gB,GAAGa,SACjB+f,SAAAA,EAAgB5gB,OAGvBT,gCACGwpB,EAAO9G,cACJ,uBACCtgB,EAAUunB,kBAAkB5pB,eACzBqC,EAAUunB,cAAVvnB,EAAUunB,OAAS,CACjBH,OAAAA,EACAtqB,MAAAA,IAEFkD,EAAUunB,UACdvnB,EAAUonB,UACV,QC/DCI,GAAgC,kBAAGC,IAAAA,YAAa3qB,IAAAA,MAE9C4qB,EACT5qB,EADFI,QAAWwqB,uBAIb,YACGD,EAAY3G,WAAZ6G,EAAqB9gB,MACpB,SAACvH,GAAD,MAC6C,iBAAnCA,EAAOS,OAAOC,UAAUonB,UAC5B9nB,EAAOS,OAAOC,UAAUonB,QAC5B9nB,EAAOS,OAAOC,UAAUunB,UAG5B,OAAO,KAET,IAAM3G,EACJ8G,aAAkC/pB,SAC9B+pB,EAAuB,CAAED,YAAAA,EAAa3qB,MAAAA,IACtC4qB,EAEN,OACE9pB,gBAACijB,4BAAaD,GACX6G,EAAY3G,QAAQzf,KAAI,SAAC+lB,GAAD,OACvBxpB,gBAACupB,IAAoBC,OAAQA,EAAQ5lB,IAAK4lB,EAAOxmB,GAAI9D,MAAOA,SCzBvD8qB,GAA6B,gBAAG9qB,IAAAA,MAEzC+qB,EAEE/qB,EAFF+qB,gBACWC,EACThrB,EADFI,QAAW4qB,oBAGPC,EACJD,aAA+BnqB,SAC3BmqB,EAAoB,CAAEhrB,MAAAA,IACtBgrB,EAEN,OACElqB,gBAACoqB,+BAAgBD,GACdF,IAAkBxmB,KAAI,SAAComB,GAAD,OACrB7pB,gBAAC4pB,IACCC,YAAaA,EACbjmB,IAAKimB,EAAY7mB,GACjB9D,MAAOA,SCdJmrB,GAAuB,gBAAGxC,IAAAA,kBAAmB3oB,IAAAA,QAWpDA,EARFI,QACEmQ,IAAAA,qBACAsY,IAAAA,wBACAuC,IAAAA,mBACAC,IAAAA,kBACAC,IAAAA,gBACAC,IAAAA,cAGIlQ,GAAiB1a,EADrBX,EATFW,YAUM0a,aAEFmQ,EACJD,aAAyB1qB,SACrB0qB,EAAc,CAAEvrB,MAAAA,IAChBurB,EAEN,OACEzqB,gBAAC2qB,uBACCC,aACEN,GAAsBvC,GAA2BxN,GAE/CmQ,GACJjqB,GAAI,SAACa,GAAD,UACFupB,YACEpb,GAAwBsY,EAA0B,QAAU,eAC1D2C,SAAAA,EAAYjqB,cAAcV,SAC1B2qB,EAAWjqB,GAAGa,SACbopB,SAAAA,EAAYjqB,OAGlB+pB,GAAmBxqB,gBAACmjB,IAAcjkB,MAAOA,IAC1Cc,gBAAC4nB,IAAcC,kBAAmBA,EAAmB3oB,MAAOA,IAC3DqrB,GAAqBvqB,gBAACgqB,IAAgB9qB,MAAOA,MC1C9C4rB,GACc,oBAAXC,OAAyBC,kBAAkBC,YAMvCC,GAAgC,gBAAGhsB,IAAAA,QAS1CA,EANFI,QACEgrB,IAAAA,mBACAvC,IAAAA,wBACAoD,IAAAA,uBACAxb,IAAAA,QAGI4K,GAAiB1a,EADrBX,EAPFW,YAQM0a,eAE4C3O,WAAS,GAAtDwf,OAAoBC,OAErBC,EACJH,aAAkCprB,SAC9BorB,EAAuB,CAAEjsB,MAAAA,IACzBisB,EAENL,IAA0B,2BAClBS,EACgB,oBAAblb,4BACHA,oBAAAmb,EAAUlb,sBAAsBX,0BAAhC8b,EACIC,gBACJ,EAEAC,EACgB,oBAAbtb,4BACHA,oBAAAub,EAAUtb,sBAAsBX,6BAAhCkc,EACIH,gBACJ,EAENL,EAAsBE,EAAmBI,MAG3C,IAAM9D,EAAoB7nB,EAAM2L,OAAuB,MAEvD,OACE3L,gBAAC8rB,gCACC/f,IAAK8b,GACDyD,GACJ7qB,GAAI,SAACa,GAAD,UACFihB,SAAU,OACVwJ,UACEzB,GAAsBvC,+BACWqD,sBAC7BvqB,EACN8a,SAAU,eACN2P,SAAAA,EAAqB7qB,cAAcV,SACnCurB,EAAoB7qB,GAAGa,SACtBgqB,SAAAA,EAAqB7qB,KAE5BK,SACEirB,UAAWxR,kBACS6Q,aAChBvqB,SACDyqB,SAAAA,EAAqBxqB,SAG1Bd,gBAACqqB,IAAUxC,kBAAmBA,EAAmB3oB,MAAOA,MC5DjD8sB,GAA4B,gBAAG9sB,IAAAA,QAItCA,EADFI,QAAW2sB,IAAAA,oBAAqBC,IAAAA,iBAAkBC,IAAAA,mBAE5C5R,GAAiB1a,EADrBX,EAFFW,YAGM0a,aAER0Q,aAAU,WACc,oBAAXF,SAEP1a,SAAS+b,KAAKtrB,MAAMJ,OADlB6Z,EAC2B,QAEA,UAGhC,CAACA,IAEJ,IAAM8R,EACJF,aAA8BpsB,SAC1BosB,EAAmB,CAAEjtB,MAAAA,IACrBitB,EAEN,OACEnsB,gBAACssB,uBACCC,UAAW,GACPF,GACJ5rB,MACEO,WAAY,8BACTqrB,SAAAA,EAAiB5rB,IAEtBK,iBACKurB,SAAAA,EAAiBvrB,OACpBJ,OAAQ6Z,EAAe,aAAU1Z,EACjC0d,OAAQhE,EAAe,SAAM1Z,EAC7BkrB,UAAWxR,EAAe,aAAU1Z,EACpC0hB,SAAUhI,EAAe,aAAU1Z,EACnC2rB,QAASjS,EAAe,SAAM1Z,EAC9BF,MAAO4Z,EAAe,aAAU1Z,MAGjCqrB,GAAoBlsB,gBAAC4b,IAAe1c,MAAOA,IAC5Cc,gBAACkrB,IAAmBhsB,MAAOA,IAC1B+sB,GAAuBjsB,gBAACuc,IAAkBrd,MAAOA,MClBlDutB,GAAiC,CACrCnhB,cAAe,UACfma,mBAAmB,EACnBxE,qBAAqB,EACrBC,sBAAsB,EACtBwL,oBAAoB,EACpBxhB,sBAAsB,EACtBf,eAAe,EACfgR,oBAAoB,EACpB5Q,gBAAgB,EAChBY,cAAc,EACdC,eAAe,EACfuhB,gBAAgB,EAChBjd,eAAe,GAGJkd,GAAgB,SAC3B9iB,mEAE+B8B,WAAS9B,EAAM6F,SAAvCA,OAASkd,OAChB5B,aACE,WAAA,MAAA,OACE4B,WAAY/iB,EAAM6F,WAAWqW,KAAKC,SAASrf,SAAS,IAAIkmB,UAAU,EAAG,MACvE,CAAChjB,EAAM6F,UAGT,IAAMod,EAA+CxqB,WAAQ,mBACrDyqB,WAAYljB,EAAMijB,gBAAgB,GAGxC,OAFAC,EAAUvjB,qBACRujB,EAAUvjB,eAAeI,EAAyBC,GAC7CkjB,IACN,MAEmCphB,oBACpCmhB,EAAatjB,eAAe,IADvBA,OAAa4B,SAIlBO,oBACEmhB,EAAapN,yBAAyB,MAFnCA,OAAuBD,UAK5B9T,oBAAgCmhB,EAAa7H,sBAAsB,MAD9DA,SAAoBF,YAGzBpZ,oBAAiCmhB,EAAalH,sBAAsB,MAD/DA,SAAoBhC,YAGzBjY,oBAAgCmhB,EAAa9Z,qBAAqB,MAD7DA,SAAmBD,YAGxBpH,oBACEmhB,EAAahiB,wBAAwB,MAFlCA,SAAsBC,YAK3BY,oBAAgCmhB,EAAa3H,qBAAqB,MAD7DA,SAAmBC,YAEIzZ,0BAC5BmhB,SAAAA,EAAcntB,WAAW,eADpBA,SAAS8a,YAGwB9O,0BACtCmhB,SAAAA,EAAcxS,kBADTA,SAAcD,YAGyB1O,6BAC5C9B,EAAMijB,qBAANE,EAAoB/T,qBADfA,SAAiBgU,YAGoBthB,0BAC1CmhB,SAAAA,EAAcnS,uBADTA,SAAmBhL,YAGsBhE,0BAC9CmhB,SAAAA,EAAc9X,sBADTA,SAAkB6F,YAGuBlP,YAE7C,WAAA,OACD0G,OAAO6a,aAAP7a,QACE,WACG3J,EAAqBmB,EAAMlB,SAAmCnF,KAC/D,SAACyF,GAAD,gCAAA,wCACGA,EAAIlG,WAAJoqB,EAAQxmB,uBAAcsC,EAAIT,oBAAJ4kB,EAAiBzmB,cAAc,IACpDsC,EAAIokB,oBAAoBvtB,kBACpBmJ,EAAIokB,SAASC,QAAQ,2BACrBrkB,EAAIokB,kBACJP,YAAAA,EAAc9qB,yBAAdurB,6BACEtkB,EAAIlG,WAAJyqB,EAAQ7mB,uBAAcsC,EAAIT,oBAAJilB,EAAiB9mB,cAAc,gBAEpDsC,EAAI+H,sBAAJ0c,EAAyB3kB,OAAS,SAAW,kBAdvD/G,SAAkBF,YAoBvB6J,WACE9B,EAAM8jB,0BAA0Bnc,OAC3B3H,EAAM8jB,eACP,SAJD1rB,SAAuBF,SAOxB6rB,GAAiBtrB,WACrB,WAAA,wBAAA,MAEI,CACEkH,EAAY3G,SAAS,oBACnBpB,gBAAQoI,EAAMtK,qBAANsuB,EAAoBz0B,KAC5B2L,KAAM,IACHynB,YACA3iB,EAAMikB,gCAANC,EAAgC,iBACnChrB,GAAI,iBAENyG,EAAY3G,SAAS,uBACnB+jB,KAAM,YAAA,OACJ7mB,gBAACuT,GACCrS,MAFKuiB,KAEKviB,IACVhC,MAAOA,MAGXwC,gBAAQoI,EAAMtK,qBAANyuB,EAAoBl3B,QAC5BiO,KAAM,IACHynB,YACA3iB,EAAMikB,gCAANG,EAAgC,oBACnClrB,GAAI,oBAENyG,EAAY3G,SAAS,sBACnB+jB,KAAM,YAAA,OACJ7mB,gBAACiB,GAAiBC,MADXuiB,KACqBviB,IAAYhC,MAAOA,MAEjD0iB,OAAQ,WAAA,OACN9X,EAAMqkB,gBACJnuB,gBAACf,GAAoBC,MAAOA,KAC1B,MACNwC,gBAAQoI,EAAMtK,qBAAN4uB,EAAoBz2B,OAC5BqN,KAAM,IACHynB,YACA3iB,EAAMikB,gCAANM,EAAgC,mBACnCrrB,GAAI,mBAENyG,EAAY3G,SAAS,sBACnB+jB,KAAM,YAAA,OACJ7mB,gBAAC2T,GAAmBzS,MADbuiB,KACuBviB,IAAYhC,MAAOA,MAEnD0iB,OAAQ,WAAA,OACN9X,EAAMwkB,gBACJtuB,gBAAC2T,GAAmBC,aAAU1U,MAAOA,KACnC,MACNwC,gBAAQoI,EAAMtK,qBAAN+uB,EAAoBv0B,OAC5BgL,KAAM,IACHynB,YACA3iB,EAAMikB,gCAANS,EAAgC,mBACnCxrB,GAAI,mBAENyG,EAAY3G,SAAS,uBACnB+jB,KAAM,YAAA,SAAGpD,KAAgBviB,IAAIwC,MAAQ,GACrCke,OAAQ,WAAA,MAAA,gBAAM9X,EAAMtK,qBAANivB,EAAoB90B,WAClC+H,gBAAQoI,EAAMtK,qBAANkvB,EAAoB90B,WAC5BoL,KAAM,IACHynB,YACA3iB,EAAMikB,gCAANY,EAAgC,oBACnC3rB,GAAI,qBAGRJ,OAAO8H,WACX,CACEjB,EACAK,EAAMikB,wBACNjkB,EAAMM,YACNN,EAAMoX,qBACNpX,EAAMoB,qBACNpB,EAAMK,cACNL,EAAMqkB,gBACNrkB,EAAMQ,gBACNR,EAAMS,eACNT,EAAMI,iBACNJ,EAAMC,kBACND,EAAMW,iBACNX,EAAME,kBACNF,EAAMU,mBACNV,EAAMwkB,gBACNxkB,EAAMtK,aACNsK,EAAM4b,sBACN5b,EAAMsX,sBACNtX,EAAMG,wBAIJ2kB,GAAarsB,WACjB,WAAA,O5CpL0B,SAAjBssB,EACXD,EACA3sB,GAF4B,OAI5B2sB,EAAWnrB,KAAI,SAACrB,SAQd,GAPKA,EAAUY,KAAIZ,EAAUY,GAAKwF,EAAYpG,IAMzCA,EAAUkJ,gBAAelJ,EAAUkJ,cAAgB,iBAClDlJ,EAAUwG,UAAVkmB,EAAmB9lB,OACvB5G,EAAUkJ,cAAgB,QAC1BlJ,EAAUwG,QAAUimB,EAAezsB,EAAUwG,QAAS3G,QACjD,GAAgC,SAA5BG,EAAUkJ,cAA0B,CAC4B,MAArEgH,OAAOyc,KAAKjnB,GAAehF,SAASb,EAAiBG,EAAUY,OACjEZ,EAAUkrB,kBACRxlB,EAAc7F,EAAiBG,EAAUY,QAAQ8E,EAAchC,OAE/DwM,OAAOyc,KAAK/mB,GAAgBlF,SAASV,EAAU4sB,aAEjD5sB,EAAU4sB,UAAYhnB,EAAe5F,EAAU4sB,YAGnD,OAAO5sB,K4C4JLysB,WAAmBhB,GAAmB/jB,EAAMlB,SAAU3G,MACxD,CAACA,GAAkB4rB,GAAgB/jB,EAAMlB,UAGrCqmB,GAAgB1sB,WACpB,WAAA,QAAA,gBACGuH,EAAMolB,UAAO3Y,oBAAazM,EAAMolB,QAANC,EAAarJ,iBACvChc,EAAMmlB,KAAKjmB,OACR,UAAI0F,MAAM,IAAI0gB,KAAK,OAAO3rB,KAAI,WAAA,OAC5B6O,OAAO6a,aAAP7a,QACE,WACG3J,EAAqBmB,EAAMlB,SAA4BnF,KACxD,SAACyF,GAAD,UAAA,+BACGA,EAAIlG,MAAMkG,EAAIT,eAAe,IAAK,eAK3CqB,EAAMmlB,OACZ,CAACnlB,EAAMmlB,cAAMnlB,EAAMolB,cAANG,EAAa9Y,mBAAWzM,EAAMolB,cAANI,EAAaxJ,gBAI9C5mB,QACDqwB,mBACDC,gBAAiBA,oBACjBC,oBAAqBA,wBACrBC,mBAAoBA,uBACpBC,oBAAqBA,wBACrBC,mBAAoBA,uBACpBC,sBAAuBA,0BACvBC,kBAAmBA,sBACnBC,oBAAqB1kB,GAClBvB,GAEHlB,QAASgmB,GACTK,KAAAA,GACAe,WAAY,SAAC9uB,GAAD,aAASA,SAAAA,EAAK6lB,SAC1B6G,wBACE9lB,EAAc5F,OAA0B4F,EAAchC,MACxDinB,aAAAA,EACAmC,SACEzlB,YAAAA,EACAkW,sBAAAA,EACAuF,mBAAAA,GACAW,mBAAAA,GACA5S,kBAAAA,GACAhR,iBAAAA,GACAC,sBAAAA,GACA6I,qBAAAA,GACAqa,kBAAAA,GACAxlB,QAAAA,GACA2a,aAAAA,GACArB,gBAAAA,GACA0B,kBAAAA,GACA3F,iBAAAA,IACGnL,EAAMolB,OAEXvf,QAAAA,MAEF+P,kCACE5V,EAAMmmB,iCAAiCvQ,EACzCsF,+BACElb,EAAMomB,8BAA8BlL,GACtCnB,+BACE/Z,EAAMqmB,8BAA8BtM,GACtC7Q,8BACElJ,EAAMsmB,6BAA6Bpd,GACrCjR,6BAAqB+H,EAAMumB,4BAA4BtuB,GACvDC,kCACE8H,EAAMwmB,iCAAiCtuB,GACzCgJ,iCACElB,EAAMymB,gCAAgCvlB,GACxCqa,8BACEvb,EAAM0mB,6BAA6BnL,GACrC3K,oBAAY5Q,EAAM2mB,mBAAmB/V,GACrCJ,yBAAiBxQ,EAAM4mB,wBAAwBpW,GAC/C4S,4BAAoBpjB,EAAM6mB,2BAA2BzD,GACrDtd,wBAAgB9F,EAAM8mB,uBAAuBhhB,GAC7CkL,6BAAqBhR,EAAM+mB,4BAA4B/V,KAKzD,OAFAmQ,aAAU,WAAA,aAAMnhB,SAAAA,EAAOgnB,6BAAPhnB,EAAOgnB,sBAAwB5xB,MAAe,CAACA,KAG7Dc,gCACEA,gBAAC+wB,UACCC,eAAgBzsB,MAChB0sB,oBAAqB7R,OACrB8R,iBACAC,cACAC,aAAa,EACb/tB,QAAS,WAAA,OAAMiX,IAAgB,IAC/BhX,KAAMiX,GACN8W,mBAAoB,KAEpBrxB,gBAACgsB,IAAe9sB,MAAOA,OAEvBqb,IAAgBva,gBAACgsB,IAAe9sB,MAAOA,q2BCsdhC,QACboyB,kBAAAA,oBACAzR,iBAAAA,aAAmB,cACnB0R,cAAAA,aAAgB,CAAE9O,QAAS,GAAI+O,QAAS,IAAMxsB,KAAM,WACpDoF,YAAAA,aAAc,YACd6W,oBAAAA,oBACA1R,6BAAAA,oBACAC,oBAAAA,oBACAtE,qBAAAA,oBACAuE,qBAAAA,oBACAuL,oBAAAA,oBACAmT,gBAAAA,oBACAlT,cAAAA,oBACAC,uBAAAA,oBACAC,mBAAAA,oBACArG,6BAAAA,oBACAgT,gCAAAA,oBACAvd,eAAAA,oBACAY,aAAAA,oBACAsmB,wBAAAA,oBACAtQ,gBAAAA,oBACAtF,iBAAAA,oBACAzQ,cAAAA,oBACAZ,mBAAAA,oBACA8jB,gBAAAA,qBACA5e,cAAAA,wBACA4a,mBAAAA,wBACAC,kBAAAA,wBACAC,gBAAAA,wBACAyB,oBAAAA,wBACA7U,6BAAAA,wBACA8U,iBAAAA,mBACA3sB,KAAAA,MACAC,KAAAA,kBACAyK,sBAAAA,eAAwB,gBACxBI,qBAAAA,eAAuB,gBACvB+Q,qBAAAA,eAAuB,gBACvBW,mBAAAA,eAAqB,iBACrBC,2BAAAA,eAA6B,cAC7B4J,cAAAA,eAAgB,mBAChB7R,cAAAA,eAAgB,SACbsG,WAzCU,OA2Cbra,gBAAC4sB,kBACC0E,kBAAmBA,EACnBzR,iBAAkBA,EAClB0R,cAAeA,EACfnnB,YAAaA,EACb6W,oBAAqBA,EACrB1R,6BAA8BA,EAC9BC,oBAAqBA,EACrBtE,qBAAsBA,EACtBuE,qBAAsBA,EACtBuL,oBAAqBA,EACrBmT,gBAAiBA,EACjBlT,cAAeA,EACfC,uBAAwBA,EACxBC,mBAAoBA,EACpBrG,6BAA8BA,EAC9BgT,gCAAiCA,EACjCvd,eAAgBA,EAChBY,aAAcA,EACdsmB,wBAAyBA,EACzBtQ,gBAAiBA,EACjBtF,iBAAkBA,EAClBzQ,cAAeA,EACfZ,mBAAoBA,EACpB8jB,gBAAiBA,EACjB5e,cAAeA,GACf4a,mBAAoBA,GACpBC,kBAAmBA,GACnBC,gBAAiBA,GACjByB,oBAAqBA,GACrB7U,6BAA8BA,GAC9B8U,iBAAkBA,GAClB3sB,WAAYnE,EAAsBmE,IAClCC,kBAAmB1I,EAA+B0I,IAClDyK,sBAAuBA,GACvBI,qBAAsBA,GACtB+Q,qBAAsBA,GACtBW,mBAAoBA,GACpBC,2BAA4BA,GAC5B4J,cAAeA,GACf7R,cAAeA,IACXsG"}