material-react-table 0.18.0 → 0.19.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (110) hide show
  1. package/dist/MaterialReactTable.d.ts +169 -133
  2. package/dist/body/MRT_TableBody.d.ts +1 -1
  3. package/dist/body/MRT_TableBodyCell.d.ts +1 -1
  4. package/dist/body/MRT_TableBodyRow.d.ts +1 -1
  5. package/dist/body/MRT_TableDetailPanel.d.ts +1 -1
  6. package/dist/buttons/MRT_ColumnPinningButtons.d.ts +1 -1
  7. package/dist/buttons/MRT_CopyButton.d.ts +1 -1
  8. package/dist/buttons/MRT_EditActionButtons.d.ts +1 -1
  9. package/dist/buttons/MRT_ExpandAllButton.d.ts +1 -1
  10. package/dist/buttons/MRT_ExpandButton.d.ts +1 -1
  11. package/dist/buttons/MRT_FullScreenToggleButton.d.ts +1 -1
  12. package/dist/buttons/MRT_GrabHandleButton.d.ts +1 -1
  13. package/dist/buttons/MRT_ShowHideColumnsButton.d.ts +1 -1
  14. package/dist/buttons/MRT_ToggleDensePaddingButton.d.ts +1 -1
  15. package/dist/buttons/MRT_ToggleFiltersButton.d.ts +1 -1
  16. package/dist/buttons/MRT_ToggleGlobalFilterButton.d.ts +1 -1
  17. package/dist/buttons/MRT_ToggleRowActionMenuButton.d.ts +1 -1
  18. package/dist/filtersFns.d.ts +31 -23
  19. package/dist/footer/MRT_TableFooter.d.ts +1 -1
  20. package/dist/footer/MRT_TableFooterCell.d.ts +1 -1
  21. package/dist/footer/MRT_TableFooterRow.d.ts +1 -1
  22. package/dist/head/MRT_DraggableTableHeadCell.d.ts +1 -1
  23. package/dist/head/MRT_TableHead.d.ts +1 -1
  24. package/dist/head/MRT_TableHeadCell.d.ts +1 -1
  25. package/dist/head/MRT_TableHeadCellColumnActionsButton.d.ts +1 -1
  26. package/dist/head/MRT_TableHeadCellFilterContainer.d.ts +1 -1
  27. package/dist/head/MRT_TableHeadCellFilterLabel.d.ts +1 -1
  28. package/dist/head/MRT_TableHeadCellResizeHandle.d.ts +1 -1
  29. package/dist/head/MRT_TableHeadCellSortLabel.d.ts +1 -1
  30. package/dist/head/MRT_TableHeadRow.d.ts +1 -1
  31. package/dist/inputs/MRT_EditCellTextField.d.ts +1 -1
  32. package/dist/inputs/MRT_FilterRangeFields.d.ts +1 -1
  33. package/dist/inputs/MRT_FilterTextField.d.ts +1 -1
  34. package/dist/inputs/MRT_GlobalFilterTextField.d.ts +1 -1
  35. package/dist/inputs/MRT_SelectCheckbox.d.ts +1 -1
  36. package/dist/material-react-table.cjs.development.js +760 -759
  37. package/dist/material-react-table.cjs.development.js.map +1 -1
  38. package/dist/material-react-table.cjs.production.min.js +1 -1
  39. package/dist/material-react-table.cjs.production.min.js.map +1 -1
  40. package/dist/material-react-table.esm.js +762 -761
  41. package/dist/material-react-table.esm.js.map +1 -1
  42. package/dist/menus/MRT_ColumnActionMenu.d.ts +1 -1
  43. package/dist/menus/MRT_FilterOptionMenu.d.ts +1 -1
  44. package/dist/menus/MRT_RowActionMenu.d.ts +1 -1
  45. package/dist/menus/MRT_ShowHideColumnsMenu.d.ts +1 -1
  46. package/dist/menus/MRT_ShowHideColumnsMenuItems.d.ts +1 -1
  47. package/dist/sortingFns.d.ts +10 -3
  48. package/dist/table/MRT_Table.d.ts +1 -1
  49. package/dist/table/MRT_TableContainer.d.ts +1 -1
  50. package/dist/table/MRT_TablePaper.d.ts +1 -1
  51. package/dist/toolbar/MRT_LinearProgressBar.d.ts +1 -1
  52. package/dist/toolbar/MRT_TablePagination.d.ts +1 -1
  53. package/dist/toolbar/MRT_ToolbarAlertBanner.d.ts +1 -1
  54. package/dist/toolbar/MRT_ToolbarBottom.d.ts +1 -1
  55. package/dist/toolbar/MRT_ToolbarInternalButtons.d.ts +1 -1
  56. package/dist/toolbar/MRT_ToolbarTop.d.ts +1 -1
  57. package/dist/utils.d.ts +10 -16
  58. package/package.json +4 -4
  59. package/src/MaterialReactTable.tsx +167 -156
  60. package/src/body/MRT_TableBody.tsx +5 -6
  61. package/src/body/MRT_TableBodyCell.tsx +18 -27
  62. package/src/body/MRT_TableBodyRow.tsx +7 -7
  63. package/src/body/MRT_TableDetailPanel.tsx +7 -7
  64. package/src/buttons/MRT_ColumnPinningButtons.tsx +3 -3
  65. package/src/buttons/MRT_CopyButton.tsx +5 -7
  66. package/src/buttons/MRT_EditActionButtons.tsx +4 -5
  67. package/src/buttons/MRT_ExpandAllButton.tsx +4 -5
  68. package/src/buttons/MRT_ExpandButton.tsx +4 -5
  69. package/src/buttons/MRT_FullScreenToggleButton.tsx +3 -7
  70. package/src/buttons/MRT_GrabHandleButton.tsx +39 -41
  71. package/src/buttons/MRT_ShowHideColumnsButton.tsx +4 -4
  72. package/src/buttons/MRT_ToggleDensePaddingButton.tsx +3 -7
  73. package/src/buttons/MRT_ToggleFiltersButton.tsx +3 -4
  74. package/src/buttons/MRT_ToggleGlobalFilterButton.tsx +4 -8
  75. package/src/buttons/MRT_ToggleRowActionMenuButton.tsx +6 -6
  76. package/src/filtersFns.ts +24 -23
  77. package/src/footer/MRT_TableFooter.tsx +5 -6
  78. package/src/footer/MRT_TableFooterCell.tsx +8 -11
  79. package/src/footer/MRT_TableFooterRow.tsx +5 -9
  80. package/src/head/MRT_DraggableTableHeadCell.tsx +4 -6
  81. package/src/head/MRT_TableHead.tsx +5 -5
  82. package/src/head/MRT_TableHeadCell.tsx +18 -29
  83. package/src/head/MRT_TableHeadCellColumnActionsButton.tsx +6 -8
  84. package/src/head/MRT_TableHeadCellFilterContainer.tsx +5 -7
  85. package/src/head/MRT_TableHeadCellFilterLabel.tsx +13 -19
  86. package/src/head/MRT_TableHeadCellResizeHandle.tsx +12 -11
  87. package/src/head/MRT_TableHeadCellSortLabel.tsx +3 -5
  88. package/src/head/MRT_TableHeadRow.tsx +6 -6
  89. package/src/inputs/MRT_EditCellTextField.tsx +12 -14
  90. package/src/inputs/MRT_FilterRangeFields.tsx +4 -4
  91. package/src/inputs/MRT_FilterTextField.tsx +27 -38
  92. package/src/inputs/MRT_GlobalFilterTextField.tsx +5 -6
  93. package/src/inputs/MRT_SelectCheckbox.tsx +9 -12
  94. package/src/menus/MRT_ColumnActionMenu.tsx +5 -9
  95. package/src/menus/MRT_FilterOptionMenu.tsx +16 -48
  96. package/src/menus/MRT_RowActionMenu.tsx +4 -5
  97. package/src/menus/MRT_ShowHideColumnsMenu.tsx +8 -9
  98. package/src/menus/MRT_ShowHideColumnsMenuItems.tsx +11 -10
  99. package/src/sortingFns.ts +11 -3
  100. package/src/table/MRT_Table.tsx +7 -11
  101. package/src/table/MRT_TableContainer.tsx +5 -6
  102. package/src/table/MRT_TablePaper.tsx +7 -8
  103. package/src/table/MRT_TableRoot.tsx +118 -132
  104. package/src/toolbar/MRT_LinearProgressBar.tsx +4 -5
  105. package/src/toolbar/MRT_TablePagination.tsx +7 -9
  106. package/src/toolbar/MRT_ToolbarAlertBanner.tsx +13 -9
  107. package/src/toolbar/MRT_ToolbarBottom.tsx +8 -9
  108. package/src/toolbar/MRT_ToolbarInternalButtons.tsx +10 -10
  109. package/src/toolbar/MRT_ToolbarTop.tsx +11 -11
  110. package/src/utils.ts +56 -50
@@ -1 +1 @@
1
- {"version":3,"file":"material-react-table.cjs.development.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/filtersFns.ts","../src/menus/MRT_FilterOptionMenu.tsx","../node_modules/react-dnd/src/core/DndContext.ts","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/src/index.ts","../node_modules/dnd-core/src/utils/js_utils.ts","../node_modules/dnd-core/src/actions/dragDrop/types.ts","../node_modules/dnd-core/src/actions/dragDrop/local/setClientOffset.ts","../node_modules/dnd-core/src/actions/dragDrop/beginDrag.ts","../node_modules/dnd-core/src/actions/dragDrop/drop.ts","../node_modules/dnd-core/src/actions/dragDrop/endDrag.ts","../node_modules/dnd-core/src/utils/matchesType.ts","../node_modules/dnd-core/src/actions/dragDrop/hover.ts","../node_modules/dnd-core/src/actions/dragDrop/publishDragSource.ts","../node_modules/dnd-core/src/actions/dragDrop/index.ts","../node_modules/dnd-core/src/classes/DragDropManagerImpl.ts","../node_modules/dnd-core/src/utils/coords.ts","../node_modules/dnd-core/src/utils/dirtiness.ts","../node_modules/dnd-core/src/classes/DragDropMonitorImpl.ts","../node_modules/@react-dnd/asap/src/makeRequestCall.ts","../node_modules/@react-dnd/asap/src/AsapQueue.ts","../node_modules/@react-dnd/asap/src/RawTask.ts","../node_modules/@react-dnd/asap/src/TaskFactory.ts","../node_modules/@react-dnd/asap/src/asap.ts","../node_modules/dnd-core/src/actions/registry.ts","../node_modules/dnd-core/src/contracts.ts","../node_modules/dnd-core/src/interfaces.ts","../node_modules/dnd-core/src/utils/getNextUniqueId.ts","../node_modules/dnd-core/src/classes/HandlerRegistryImpl.ts","../node_modules/dnd-core/src/utils/equality.ts","../node_modules/dnd-core/src/reducers/dirtyHandlerIds.ts","../node_modules/dnd-core/src/reducers/dragOffset.ts","../node_modules/dnd-core/src/reducers/dragOperation.ts","../node_modules/dnd-core/src/reducers/refCount.ts","../node_modules/dnd-core/src/reducers/stateId.ts","../node_modules/dnd-core/src/reducers/index.ts","../node_modules/dnd-core/src/createDragDropManager.ts","../node_modules/react-dnd/src/core/DndProvider.tsx","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-dnd/src/hooks/useCollector.ts","../node_modules/react-dnd/src/hooks/useMonitorOutput.ts","../node_modules/react-dnd/src/hooks/useCollectedProps.ts","../node_modules/react-dnd/src/hooks/useOptionalFactory.ts","../node_modules/react-dnd/src/hooks/useDrag/connectors.ts","../node_modules/react-dnd/src/internals/DragSourceMonitorImpl.ts","../node_modules/react-dnd/src/internals/DropTargetMonitorImpl.ts","../node_modules/react-dnd/src/internals/registration.ts","../node_modules/@react-dnd/shallowequal/src/index.ts","../node_modules/react-dnd/src/internals/isRef.ts","../node_modules/react-dnd/src/internals/wrapConnectorHooks.ts","../node_modules/react-dnd/src/internals/SourceConnector.ts","../node_modules/react-dnd/src/internals/TargetConnector.ts","../node_modules/react-dnd/src/hooks/useDragDropManager.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceConnector.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceMonitor.ts","../node_modules/react-dnd/src/hooks/useDrag/DragSourceImpl.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragType.ts","../node_modules/react-dnd/src/hooks/useDrag/useRegisteredDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDrag.ts","../node_modules/react-dnd/src/hooks/useDrop/connectors.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetConnector.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetMonitor.ts","../node_modules/react-dnd/src/hooks/useDrop/useAccept.ts","../node_modules/react-dnd/src/hooks/useDrop/DropTargetImpl.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useRegisteredDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useDrop.ts","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/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","../node_modules/react-dnd-html5-backend/src/utils/js_utils.ts","../node_modules/react-dnd-html5-backend/src/EnterLeaveCounter.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/NativeDragSource.ts","../node_modules/react-dnd-html5-backend/src/NativeTypes.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/getDataFromDataTransfer.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/nativeTypesConfig.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/index.ts","../node_modules/react-dnd-html5-backend/src/BrowserDetector.ts","../node_modules/react-dnd-html5-backend/src/MonotonicInterpolant.ts","../node_modules/react-dnd-html5-backend/src/OffsetUtils.ts","../node_modules/react-dnd-html5-backend/src/OptionsReader.ts","../node_modules/react-dnd-html5-backend/src/HTML5BackendImpl.ts","../node_modules/react-dnd-html5-backend/src/index.ts","../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/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_DraggableTableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../node_modules/react-virtual/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../node_modules/react-virtual/src/useIsomorphicLayoutEffect.js","../node_modules/react-virtual/src/useRect.js","../node_modules/react-virtual/src/index.js","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.tsx","../src/body/MRT_TableBodyCell.tsx","../src/body/MRT_TableDetailPanel.tsx","../src/body/MRT_TableBodyRow.tsx","../src/sortingFns.ts","../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 filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: 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 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 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 filterLessThan: 'Less Than',\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 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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandAllButton: FC<Props> = ({ instance }) => {\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 } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandAllButtonProps instanceof Function\n ? muiExpandAllButtonProps({ instance })\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ExpandButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { ExpandMoreIcon },\n localization,\n muiExpandButtonProps,\n renderDetailPanel,\n },\n } = instance;\n\n const { density } = getState();\n\n const iconButtonProps =\n muiExpandButtonProps instanceof Function\n ? muiExpandButtonProps({ instance, 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={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\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 { rankItem, rankings, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { MRT_Row } from '.';\n\nexport const fuzzy = (\n row: MRT_Row,\n columnId: string,\n filterValue: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = (\n row: MRT_Row,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = (\n row: MRT_Row,\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\nexport const empty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = (\n row: MRT_Row,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n};\n","import React, { FC, useMemo } from 'react';\nimport { Menu, MenuItem } from '@mui/material';\nimport type {\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Header,\n MRT_TableInstance,\n} from '..';\nimport {\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\n notEmpty,\n notEquals,\n startsWith,\n} from '../filtersFns';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\n\ninterface Props {\n anchorEl: HTMLElement | null;\n header?: MRT_Header;\n onSelect?: () => void;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterOptionMenu: FC<Props> = ({\n anchorEl,\n header,\n onSelect,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n enabledGlobalFilterOptions,\n enabledColumnFilterOptions,\n localization,\n },\n setCurrentFilterFns,\n setCurrentGlobalFilterFn,\n } = instance;\n\n const { density, currentFilterFns, currentGlobalFilterFn } = getState();\n\n const { column } = header ?? {};\n\n const { columnDef } = column ?? {};\n\n const allowedColumnFilterOptions =\n columnDef?.enabledColumnFilterOptions ?? enabledColumnFilterOptions;\n\n const filterOptions = useMemo(\n () =>\n [\n {\n option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n fn: fuzzy,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n fn: contains,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n fn: startsWith,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n fn: endsWith,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n fn: equals,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n fn: notEquals,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n fn: between,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n fn: greaterThan,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n fn: lessThan,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n fn: empty,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\n fn: notEmpty,\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 ) as Array<{\n option: MRT_FILTER_OPTION;\n label: string;\n divider: boolean;\n fn: Function;\n }>,\n [],\n );\n\n const handleSelectFilterType = (value: string) => {\n if (header && column) {\n setCurrentFilterFns((prev: { [key: string]: MRT_FilterFn }) => ({\n ...prev,\n [header.id]: value,\n }));\n if (['empty', 'notEmpty'].includes(value)) {\n column.setFilterValue(' ');\n } else if (value === 'between') {\n column.setFilterValue(['', '']);\n } else {\n column.setFilterValue('');\n }\n } else {\n setCurrentGlobalFilterFn(value);\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, fn }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option as string)}\n selected={option === filterOption || fn === filterOption}\n sx={commonMenuItemStyles}\n value={option as string}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import type { DragDropManager } from 'dnd-core'\nimport { createContext } from 'react'\n\n/**\n * The React context type\n */\nexport interface DndContextType {\n\tdragDropManager: DragDropManager | undefined\n}\n\n/**\n * Create the React Context\n */\nexport const DndContext = createContext<DndContextType>({\n\tdragDropManager: undefined,\n})\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n\tif (isProduction()) {\n\t\tif (format === undefined) {\n\t\t\tthrow new Error('invariant requires an error message argument')\n\t\t}\n\t}\n\n\tif (!condition) {\n\t\tlet error\n\t\tif (format === undefined) {\n\t\t\terror = new Error(\n\t\t\t\t'Minified exception occurred; use the non-minified dev environment ' +\n\t\t\t\t\t'for the full error message and additional helpful warnings.',\n\t\t\t)\n\t\t} else {\n\t\t\tlet argIndex = 0\n\t\t\terror = new Error(\n\t\t\t\tformat.replace(/%s/g, function () {\n\t\t\t\t\treturn args[argIndex++]\n\t\t\t\t}),\n\t\t\t)\n\t\t\terror.name = 'Invariant Violation'\n\t\t}\n\n\t\t;(error as any).framesToPop = 1 // we don't care about invariant's own frame\n\t\tthrow error\n\t}\n}\n\nfunction isProduction() {\n\treturn (\n\t\ttypeof process !== 'undefined' && process.env['NODE_ENV'] === 'production'\n\t)\n}\n","// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get<T>(obj: any, path: string, defaultValue: T): T {\n\treturn path\n\t\t.split('.')\n\t\t.reduce((a, c) => (a && a[c] ? a[c] : defaultValue || null), obj) as T\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T): T[] {\n\treturn items.filter((i) => i !== item)\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isString(input: any): boolean {\n\treturn typeof input === 'string'\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isObject(input: any): boolean {\n\treturn typeof input === 'object'\n}\n\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */\nexport function xor<T extends string | number>(itemsA: T[], itemsB: T[]): T[] {\n\tconst map = new Map<T, number>()\n\tconst insertItem = (item: T) => {\n\t\tmap.set(item, map.has(item) ? (map.get(item) as number) + 1 : 1)\n\t}\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tmap.forEach((count, key) => {\n\t\tif (count === 1) {\n\t\t\tresult.push(key)\n\t\t}\n\t})\n\treturn result\n}\n\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nexport function intersection<T>(itemsA: T[], itemsB: T[]): T[] {\n\treturn itemsA.filter((t) => itemsB.indexOf(t) > -1)\n}\n","export const INIT_COORDS = 'dnd-core/INIT_COORDS'\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG'\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE'\nexport const HOVER = 'dnd-core/HOVER'\nexport const DROP = 'dnd-core/DROP'\nexport const END_DRAG = 'dnd-core/END_DRAG'\n","import type { AnyAction } from 'redux'\n\nimport type { XYCoord } from '../../../interfaces.js'\nimport { INIT_COORDS } from '../types.js'\n\nexport function setClientOffset(\n\tclientOffset: XYCoord | null | undefined,\n\tsourceClientOffset?: XYCoord | null | undefined,\n): AnyAction {\n\treturn {\n\t\ttype: INIT_COORDS,\n\t\tpayload: {\n\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\tclientOffset: clientOffset || null,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tBeginDragOptions,\n\tBeginDragPayload,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tXYCoord,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { setClientOffset } from './local/setClientOffset.js'\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js'\n\nconst ResetCoordinatesAction = {\n\ttype: INIT_COORDS,\n\tpayload: {\n\t\tclientOffset: null,\n\t\tsourceClientOffset: null,\n\t},\n}\n\nexport function createBeginDrag(manager: DragDropManager) {\n\treturn function beginDrag(\n\t\tsourceIds: Identifier[] = [],\n\t\toptions: BeginDragOptions = {\n\t\t\tpublishSource: true,\n\t\t},\n\t): Action<BeginDragPayload> | undefined {\n\t\tconst {\n\t\t\tpublishSource = true,\n\t\t\tclientOffset,\n\t\t\tgetSourceClientOffset,\n\t\t}: BeginDragOptions = options\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\n\t\t// Initialize the coordinates using the client offset\n\t\tmanager.dispatch(setClientOffset(clientOffset))\n\n\t\tverifyInvariants(sourceIds, monitor, registry)\n\n\t\t// Get the draggable source\n\t\tconst sourceId = getDraggableSource(sourceIds, monitor)\n\t\tif (sourceId == null) {\n\t\t\tmanager.dispatch(ResetCoordinatesAction)\n\t\t\treturn\n\t\t}\n\n\t\t// Get the source client offset\n\t\tlet sourceClientOffset: XYCoord | null = null\n\t\tif (clientOffset) {\n\t\t\tif (!getSourceClientOffset) {\n\t\t\t\tthrow new Error('getSourceClientOffset must be defined')\n\t\t\t}\n\t\t\tverifyGetSourceClientOffsetIsFunction(getSourceClientOffset)\n\t\t\tsourceClientOffset = getSourceClientOffset(sourceId)\n\t\t}\n\n\t\t// Initialize the full coordinates\n\t\tmanager.dispatch(setClientOffset(clientOffset, sourceClientOffset))\n\n\t\tconst source = registry.getSource(sourceId)\n\t\tconst item = source.beginDrag(monitor, sourceId)\n\t\t// If source.beginDrag returns null, this is an indicator to cancel the drag\n\t\tif (item == null) {\n\t\t\treturn undefined\n\t\t}\n\t\tverifyItemIsObject(item)\n\t\tregistry.pinSource(sourceId)\n\n\t\tconst itemType = registry.getSourceType(sourceId)\n\t\treturn {\n\t\t\ttype: BEGIN_DRAG,\n\t\t\tpayload: {\n\t\t\t\titemType,\n\t\t\t\titem,\n\t\t\t\tsourceId,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\t\tisSourcePublic: !!publishSource,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyInvariants(\n\tsourceIds: Identifier[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.')\n\tsourceIds.forEach(function (sourceId) {\n\t\tinvariant(\n\t\t\tregistry.getSource(sourceId),\n\t\t\t'Expected sourceIds to be registered.',\n\t\t)\n\t})\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset: any) {\n\tinvariant(\n\t\ttypeof getSourceClientOffset === 'function',\n\t\t'When clientOffset is provided, getSourceClientOffset must be a function.',\n\t)\n}\n\nfunction verifyItemIsObject(item: any) {\n\tinvariant(isObject(item), 'Item must be an object.')\n}\n\nfunction getDraggableSource(sourceIds: Identifier[], monitor: DragDropMonitor) {\n\tlet sourceId = null\n\tfor (let i = sourceIds.length - 1; i >= 0; i--) {\n\t\tif (monitor.canDragSource(sourceIds[i])) {\n\t\t\tsourceId = sourceIds[i]\n\t\t\tbreak\n\t\t}\n\t}\n\treturn sourceId\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tDropPayload,\n\tHandlerRegistry,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { DROP } from './types.js'\n\nexport function createDrop(manager: DragDropManager) {\n\treturn function drop(options = {}): void {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyInvariants(monitor)\n\t\tconst targetIds = getDroppableTargets(monitor)\n\n\t\t// Multiple actions are dispatched here, which is why this doesn't return an action\n\t\ttargetIds.forEach((targetId, index) => {\n\t\t\tconst dropResult = determineDropResult(targetId, index, registry, monitor)\n\t\t\tconst action: Action<DropPayload> = {\n\t\t\t\ttype: DROP,\n\t\t\t\tpayload: {\n\t\t\t\t\tdropResult: {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t...dropResult,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tmanager.dispatch(action)\n\t\t})\n\t}\n}\n\nfunction verifyInvariants(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call drop while not dragging.')\n\tinvariant(\n\t\t!monitor.didDrop(),\n\t\t'Cannot call drop twice during one drag operation.',\n\t)\n}\n\nfunction determineDropResult(\n\ttargetId: Identifier,\n\tindex: number,\n\tregistry: HandlerRegistry,\n\tmonitor: DragDropMonitor,\n) {\n\tconst target = registry.getTarget(targetId)\n\tlet dropResult = target ? target.drop(monitor, targetId) : undefined\n\tverifyDropResultType(dropResult)\n\tif (typeof dropResult === 'undefined') {\n\t\tdropResult = index === 0 ? {} : monitor.getDropResult()\n\t}\n\treturn dropResult\n}\n\nfunction verifyDropResultType(dropResult: any) {\n\tinvariant(\n\t\ttypeof dropResult === 'undefined' || isObject(dropResult),\n\t\t'Drop result must either be an object or undefined.',\n\t)\n}\n\nfunction getDroppableTargets(monitor: DragDropMonitor) {\n\tconst targetIds = monitor\n\t\t.getTargetIds()\n\t\t.filter(monitor.canDropOnTarget, monitor)\n\ttargetIds.reverse()\n\treturn targetIds\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tSentinelAction,\n} from '../../interfaces.js'\nimport { END_DRAG } from './types.js'\n\nexport function createEndDrag(manager: DragDropManager) {\n\treturn function endDrag(): SentinelAction {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyIsDragging(monitor)\n\n\t\tconst sourceId = monitor.getSourceId()\n\t\tif (sourceId != null) {\n\t\t\tconst source = registry.getSource(sourceId, true)\n\t\t\tsource.endDrag(monitor, sourceId)\n\t\t\tregistry.unpinSource()\n\t\t}\n\t\treturn { type: END_DRAG }\n\t}\n}\n\nfunction verifyIsDragging(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.')\n}\n","import type { Identifier } from '../interfaces.js'\n\nexport function matchesType(\n\ttargetType: Identifier | Identifier[] | null,\n\tdraggedItemType: Identifier | null,\n): boolean {\n\tif (draggedItemType === null) {\n\t\treturn targetType === null\n\t}\n\treturn Array.isArray(targetType)\n\t\t? (targetType as Identifier[]).some((t) => t === draggedItemType)\n\t\t: targetType === draggedItemType\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tHoverOptions,\n\tHoverPayload,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { matchesType } from '../../utils/matchesType.js'\nimport { HOVER } from './types.js'\n\nexport function createHover(manager: DragDropManager) {\n\treturn function hover(\n\t\ttargetIdsArg: string[],\n\t\t{ clientOffset }: HoverOptions = {},\n\t): Action<HoverPayload> {\n\t\tverifyTargetIdsIsArray(targetIdsArg)\n\t\tconst targetIds = targetIdsArg.slice(0)\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tconst draggedItemType = monitor.getItemType()\n\t\tremoveNonMatchingTargetIds(targetIds, registry, draggedItemType)\n\t\tcheckInvariants(targetIds, monitor, registry)\n\t\thoverAllTargets(targetIds, monitor, registry)\n\n\t\treturn {\n\t\t\ttype: HOVER,\n\t\t\tpayload: {\n\t\t\t\ttargetIds,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg: string[]) {\n\tinvariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.')\n}\n\nfunction checkInvariants(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(monitor.isDragging(), 'Cannot call hover while not dragging.')\n\tinvariant(!monitor.didDrop(), 'Cannot call hover after drop.')\n\tfor (let i = 0; i < targetIds.length; i++) {\n\t\tconst targetId = targetIds[i] as string\n\t\tinvariant(\n\t\t\ttargetIds.lastIndexOf(targetId) === i,\n\t\t\t'Expected targetIds to be unique in the passed array.',\n\t\t)\n\n\t\tconst target = registry.getTarget(targetId)\n\t\tinvariant(target, 'Expected targetIds to be registered.')\n\t}\n}\n\nfunction removeNonMatchingTargetIds(\n\ttargetIds: string[],\n\tregistry: HandlerRegistry,\n\tdraggedItemType: Identifier | null,\n) {\n\t// Remove those targetIds that don't match the targetType. This\n\t// fixes shallow isOver which would only be non-shallow because of\n\t// non-matching targets.\n\tfor (let i = targetIds.length - 1; i >= 0; i--) {\n\t\tconst targetId = targetIds[i] as string\n\t\tconst targetType = registry.getTargetType(targetId)\n\t\tif (!matchesType(targetType, draggedItemType)) {\n\t\t\ttargetIds.splice(i, 1)\n\t\t}\n\t}\n}\n\nfunction hoverAllTargets(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\t// Finally call hover on all matching targets.\n\ttargetIds.forEach(function (targetId) {\n\t\tconst target = registry.getTarget(targetId)\n\t\ttarget.hover(monitor, targetId)\n\t})\n}\n","import type { DragDropManager, SentinelAction } from '../../interfaces.js'\nimport { PUBLISH_DRAG_SOURCE } from './types.js'\n\nexport function createPublishDragSource(manager: DragDropManager) {\n\treturn function publishDragSource(): SentinelAction | undefined {\n\t\tconst monitor = manager.getMonitor()\n\t\tif (monitor.isDragging()) {\n\t\t\treturn { type: PUBLISH_DRAG_SOURCE }\n\t\t}\n\t\treturn\n\t}\n}\n","import type { DragDropActions, DragDropManager } from '../../interfaces.js'\nimport { createBeginDrag } from './beginDrag.js'\nimport { createDrop } from './drop.js'\nimport { createEndDrag } from './endDrag.js'\nimport { createHover } from './hover.js'\nimport { createPublishDragSource } from './publishDragSource.js'\n\nexport * from './types.js'\n\nexport function createDragDropActions(\n\tmanager: DragDropManager,\n): DragDropActions {\n\treturn {\n\t\tbeginDrag: createBeginDrag(manager),\n\t\tpublishDragSource: createPublishDragSource(manager),\n\t\thover: createHover(manager),\n\t\tdrop: createDrop(manager),\n\t\tendDrag: createEndDrag(manager),\n\t}\n}\n","import type { Action, Store } from 'redux'\n\nimport { createDragDropActions } from '../actions/dragDrop/index.js'\nimport type {\n\tActionCreator,\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport type { DragDropMonitorImpl } from './DragDropMonitorImpl.js'\n\nexport class DragDropManagerImpl implements DragDropManager {\n\tprivate store: Store<State>\n\tprivate monitor: DragDropMonitor\n\tprivate backend: Backend | undefined\n\tprivate isSetUp = false\n\n\tpublic constructor(store: Store<State>, monitor: DragDropMonitor) {\n\t\tthis.store = store\n\t\tthis.monitor = monitor\n\t\tstore.subscribe(this.handleRefCountChange)\n\t}\n\n\tpublic receiveBackend(backend: Backend): void {\n\t\tthis.backend = backend\n\t}\n\n\tpublic getMonitor(): DragDropMonitor {\n\t\treturn this.monitor\n\t}\n\n\tpublic getBackend(): Backend {\n\t\treturn this.backend as Backend\n\t}\n\n\tpublic getRegistry(): HandlerRegistry {\n\t\treturn (this.monitor as DragDropMonitorImpl).registry\n\t}\n\n\tpublic getActions(): DragDropActions {\n\t\t/* eslint-disable-next-line @typescript-eslint/no-this-alias */\n\t\tconst manager = this\n\t\tconst { dispatch } = this.store\n\n\t\tfunction bindActionCreator(actionCreator: ActionCreator<any>) {\n\t\t\treturn (...args: any[]) => {\n\t\t\t\tconst action = actionCreator.apply(manager, args as any)\n\t\t\t\tif (typeof action !== 'undefined') {\n\t\t\t\t\tdispatch(action)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst actions = createDragDropActions(this)\n\n\t\treturn Object.keys(actions).reduce(\n\t\t\t(boundActions: DragDropActions, key: string) => {\n\t\t\t\tconst action: ActionCreator<any> = (actions as any)[\n\t\t\t\t\tkey\n\t\t\t\t] as ActionCreator<any>\n\t\t\t\t;(boundActions as any)[key] = bindActionCreator(action)\n\t\t\t\treturn boundActions\n\t\t\t},\n\t\t\t{} as DragDropActions,\n\t\t)\n\t}\n\n\tpublic dispatch(action: Action<any>): void {\n\t\tthis.store.dispatch(action)\n\t}\n\n\tprivate handleRefCountChange = (): void => {\n\t\tconst shouldSetUp = this.store.getState().refCount > 0\n\t\tif (this.backend) {\n\t\t\tif (shouldSetUp && !this.isSetUp) {\n\t\t\t\tthis.backend.setup()\n\t\t\t\tthis.isSetUp = true\n\t\t\t} else if (!shouldSetUp && this.isSetUp) {\n\t\t\t\tthis.backend.teardown()\n\t\t\t\tthis.isSetUp = false\n\t\t\t}\n\t\t}\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\nimport type { State } from '../reducers/dragOffset.js'\n\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x + b.x,\n\t\ty: a.y + b.y,\n\t}\n}\n\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function subtract(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x - b.x,\n\t\ty: a.y - b.y,\n\t}\n}\n\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\nexport function getSourceClientOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset, initialSourceClientOffset } = state\n\tif (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(\n\t\tadd(clientOffset, initialSourceClientOffset),\n\t\tinitialClientOffset,\n\t)\n}\n\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\nexport function getDifferenceFromInitialOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset } = state\n\tif (!clientOffset || !initialClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(clientOffset, initialClientOffset)\n}\n","import { intersection } from './js_utils.js'\n\nexport const NONE: string[] = []\nexport const ALL: string[] = []\n// Add these flags for debug\n;(NONE as any).__IS_NONE__ = true\n;(ALL as any).__IS_ALL__ = true\n\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\nexport function areDirty(\n\tdirtyIds: string[],\n\thandlerIds: string[] | undefined,\n): boolean {\n\tif (dirtyIds === NONE) {\n\t\treturn false\n\t}\n\n\tif (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n\t\treturn true\n\t}\n\n\tconst commonIds = intersection(handlerIds, dirtyIds)\n\treturn commonIds.length > 0\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport type {\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport {\n\tgetDifferenceFromInitialOffset,\n\tgetSourceClientOffset,\n} from '../utils/coords.js'\nimport { areDirty } from '../utils/dirtiness.js'\nimport { matchesType } from '../utils/matchesType.js'\n\nexport class DragDropMonitorImpl implements DragDropMonitor {\n\tprivate store: Store<State>\n\tpublic readonly registry: HandlerRegistry\n\n\tpublic constructor(store: Store<State>, registry: HandlerRegistry) {\n\t\tthis.store = store\n\t\tthis.registry = registry\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions: { handlerIds?: string[] } = {},\n\t): Unsubscribe {\n\t\tconst { handlerIds } = options\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\t\tinvariant(\n\t\t\ttypeof handlerIds === 'undefined' || Array.isArray(handlerIds),\n\t\t\t'handlerIds, when specified, must be an array of strings.',\n\t\t)\n\n\t\tlet prevStateId = this.store.getState().stateId\n\t\tconst handleChange = () => {\n\t\t\tconst state = this.store.getState()\n\t\t\tconst currentStateId = state.stateId\n\t\t\ttry {\n\t\t\t\tconst canSkipListener =\n\t\t\t\t\tcurrentStateId === prevStateId ||\n\t\t\t\t\t(currentStateId === prevStateId + 1 &&\n\t\t\t\t\t\t!areDirty(state.dirtyHandlerIds, handlerIds))\n\n\t\t\t\tif (!canSkipListener) {\n\t\t\t\t\tlistener()\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tprevStateId = currentStateId\n\t\t\t}\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\n\t\tlet previousState = this.store.getState().dragOffset\n\t\tconst handleChange = () => {\n\t\t\tconst nextState = this.store.getState().dragOffset\n\t\t\tif (nextState === previousState) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tpreviousState = nextState\n\t\t\tlistener()\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic canDragSource(sourceId: string | undefined): boolean {\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.canDrag(this, sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\t\tconst target = this.registry.getTarget(targetId)\n\t\tinvariant(target, `Expected to find a valid target. targetId=${targetId}`)\n\n\t\tif (!this.isDragging() || this.didDrop()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\treturn (\n\t\t\tmatchesType(targetType, draggedItemType) && target.canDrop(this, targetId)\n\t\t)\n\t}\n\n\tpublic isDragging(): boolean {\n\t\treturn Boolean(this.getItemType())\n\t}\n\n\tpublic isDraggingSource(sourceId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId, true)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (!this.isDragging() || !this.isSourcePublic()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst sourceType = this.registry.getSourceType(sourceId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (sourceType !== draggedItemType) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.isDragging(this, sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: string | undefined,\n\t\toptions = { shallow: false },\n\t): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst { shallow } = options\n\t\tif (!this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (draggedItemType && !matchesType(targetType, draggedItemType)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetIds = this.getTargetIds()\n\t\tif (!targetIds.length) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst index = targetIds.indexOf(targetId)\n\t\tif (shallow) {\n\t\t\treturn index === targetIds.length - 1\n\t\t} else {\n\t\t\treturn index > -1\n\t\t}\n\t}\n\n\tpublic getItemType(): Identifier {\n\t\treturn this.store.getState().dragOperation.itemType as Identifier\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.store.getState().dragOperation.item\n\t}\n\n\tpublic getSourceId(): string | null {\n\t\treturn this.store.getState().dragOperation.sourceId\n\t}\n\n\tpublic getTargetIds(): string[] {\n\t\treturn this.store.getState().dragOperation.targetIds\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.store.getState().dragOperation.dropResult\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.store.getState().dragOperation.didDrop\n\t}\n\n\tpublic isSourcePublic(): boolean {\n\t\treturn Boolean(this.store.getState().dragOperation.isSourcePublic)\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialClientOffset\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialSourceClientOffset\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.clientOffset\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn getSourceClientOffset(this.store.getState().dragOffset)\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn getDifferenceFromInitialOffset(this.store.getState().dragOffset)\n\t}\n}\n","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t // reliably everywhere they are implemented.\n\t\t // They are implemented in all modern browsers.\n\t\t //\n\t\t // - Android 4-4.3\n\t\t // - Chrome 26-34\n\t\t // - Firefox 14-29\n\t\t // - Internet Explorer 11\n\t\t // - iPad Safari 6-7.1\n\t\t // - iPhone Safari 7-7.1\n\t\t // - Safari 6-7\n\t\t makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t // 11-12, and in web workers in many engines.\n\t\t // Although message channels yield to any queued rendering and IO tasks, they\n\t\t // would be better than imposing the 4ms delay of timers.\n\t\t // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t // not have MutationObservers.\n\t\t // Although setImmediate yields to the browser's renderer, it would be\n\t\t // preferrable to falling back to setTimeout since it does not have\n\t\t // the minimum 4ms penalty.\n\t\t // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t // Desktop to a lesser extent) that renders both setImmediate and\n\t\t // MessageChannel useless for the purposes of ASAP.\n\t\t // https://github.com/kriskowal/q/issues/396\n\n\t\t // Timers are implemented universally.\n\t\t // We fall back to timers in workers in most engines, and in foreground\n\t\t // contexts in the following browsers.\n\t\t // However, note that even this simple case requires nuances to operate in a\n\t\t // broad spectrum of browsers.\n\t\t //\n\t\t // - Firefox 3-13\n\t\t // - Internet Explorer 6-9\n\t\t // - iPad Safari 4.3\n\t\t // - Lynx 2.8.7\n\t\t makeRequestCallFromTimer\n","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\nimport type { Task } from './types.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","// We wrap tasks with recyclable task objects. A task object implements\n\nimport type { Task, TaskFn } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n","import { RawTask } from './RawTask.js'\nimport type { Task } from './types.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n","import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n","import type { Action, SourceIdPayload, TargetIdPayload } from '../interfaces.js'\n\nexport const ADD_SOURCE = 'dnd-core/ADD_SOURCE'\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET'\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE'\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET'\n\nexport function addSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: ADD_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function addTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: ADD_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n\nexport function removeSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: REMOVE_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function removeTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: REMOVE_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type { DragSource, DropTarget, Identifier } from './interfaces.js'\n\nexport function validateSourceContract(source: DragSource): void {\n\tinvariant(\n\t\ttypeof source.canDrag === 'function',\n\t\t'Expected canDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.beginDrag === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.endDrag === 'function',\n\t\t'Expected endDrag to be a function.',\n\t)\n}\n\nexport function validateTargetContract(target: DropTarget): void {\n\tinvariant(\n\t\ttypeof target.canDrop === 'function',\n\t\t'Expected canDrop to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.hover === 'function',\n\t\t'Expected hover to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.drop === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n}\n\nexport function validateType(\n\ttype: Identifier | Identifier[],\n\tallowArray?: boolean,\n): void {\n\tif (allowArray && Array.isArray(type)) {\n\t\ttype.forEach((t) => validateType(t, false))\n\t\treturn\n\t}\n\n\tinvariant(\n\t\ttypeof type === 'string' || typeof type === 'symbol',\n\t\tallowArray\n\t\t\t? 'Type can only be a string, a symbol, or an array of either.'\n\t\t\t: 'Type can only be a string or a symbol.',\n\t)\n}\n","export type Identifier = string | symbol\nexport type SourceType = Identifier\nexport type TargetType = Identifier | Identifier[]\nexport type Unsubscribe = () => void\nexport type Listener = () => void\n\nexport interface XYCoord {\n\tx: number\n\ty: number\n}\n\nexport enum HandlerRole {\n\tSOURCE = 'SOURCE',\n\tTARGET = 'TARGET',\n}\n\nexport interface Backend {\n\tsetup(): void\n\tteardown(): void\n\tconnectDragSource(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDragPreview(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDropTarget(targetId: any, node?: any, options?: any): Unsubscribe\n\tprofile(): Record<string, number>\n}\n\nexport interface DragDropMonitor {\n\tsubscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: {\n\t\t\thandlerIds?: Identifier[]\n\t\t},\n\t): Unsubscribe\n\tsubscribeToOffsetChange(listener: Listener): Unsubscribe\n\tcanDragSource(sourceId: Identifier | undefined): boolean\n\tcanDropOnTarget(targetId: Identifier | undefined): boolean\n\n\t/**\n\t * Returns true if a drag operation is in progress, and either the owner initiated the drag, or its isDragging()\n\t * is defined and returns true.\n\t */\n\tisDragging(): boolean\n\tisDraggingSource(sourceId: Identifier | undefined): boolean\n\tisOverTarget(\n\t\ttargetId: Identifier | undefined,\n\t\toptions?: {\n\t\t\tshallow?: boolean\n\t\t},\n\t): boolean\n\n\t/**\n\t * Returns a string or a symbol identifying the type of the current dragged item. Returns null if no item is being dragged.\n\t */\n\tgetItemType(): Identifier | null\n\n\t/**\n\t * Returns a plain object representing the currently dragged item. Every drag source must specify it by returning an object\n\t * from its beginDrag() method. Returns null if no item is being dragged.\n\t */\n\tgetItem(): any\n\tgetSourceId(): Identifier | null\n\tgetTargetIds(): Identifier[]\n\t/**\n\t * Returns a plain object representing the last recorded drop result. The drop targets may optionally specify it by returning an\n\t * object from their drop() methods. When a chain of drop() is dispatched for the nested targets, bottom up, any parent that\n\t * explicitly returns its own result from drop() overrides the child drop result previously set by the child. Returns null if\n\t * called outside endDrag().\n\t */\n\tgetDropResult(): any\n\t/**\n\t * Returns true if some drop target has handled the drop event, false otherwise. Even if a target did not return a drop result,\n\t * didDrop() returns true. Use it inside endDrag() to test whether any drop target has handled the drop. Returns false if called\n\t * outside endDrag().\n\t */\n\tdidDrop(): boolean\n\tisSourcePublic(): boolean | null\n\t/**\n\t * Returns the { x, y } client offset of the pointer at the time when the current drag operation has started.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetInitialClientOffset(): XYCoord | null\n\t/**\n\t * Returns the { x, y } client offset of the drag source component's root DOM node at the time when the current drag\n\t * operation has started. Returns null if no item is being dragged.\n\t */\n\tgetInitialSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the last recorded { x, y } client offset of the pointer while a drag operation is in progress.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the projected { x, y } client offset of the drag source component's root DOM node, based on its position at the time\n\t * when the current drag operation has started, and the movement difference. Returns null if no item is being dragged.\n\t */\n\tgetSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the { x, y } difference between the last recorded client offset of the pointer and the client offset when the current\n\t * drag operation has started. Returns null if no item is being dragged.\n\t */\n\tgetDifferenceFromInitialOffset(): XYCoord | null\n}\n\nexport interface HandlerRegistry {\n\taddSource(type: SourceType, source: DragSource): Identifier\n\taddTarget(type: TargetType, target: DropTarget): Identifier\n\tcontainsHandler(handler: DragSource | DropTarget): boolean\n\tgetSource(sourceId: Identifier, includePinned?: boolean): DragSource\n\tgetSourceType(sourceId: Identifier): SourceType\n\tgetTargetType(targetId: Identifier): TargetType\n\tgetTarget(targetId: Identifier): DropTarget\n\tisSourceId(handlerId: Identifier): boolean\n\tisTargetId(handlerId: Identifier): boolean\n\tremoveSource(sourceId: Identifier): void\n\tremoveTarget(targetId: Identifier): void\n\tpinSource(sourceId: Identifier): void\n\tunpinSource(): void\n}\n\nexport interface Action<Payload> {\n\ttype: Identifier\n\tpayload: Payload\n}\nexport interface SentinelAction {\n\ttype: Identifier\n}\n\nexport type ActionCreator<Payload> = (args: any[]) => Action<Payload>\n\nexport interface BeginDragOptions {\n\tpublishSource?: boolean\n\tclientOffset?: XYCoord\n\tgetSourceClientOffset?: (sourceId: Identifier | undefined) => XYCoord\n}\n\nexport interface InitCoordsPayload {\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n}\n\nexport interface BeginDragPayload {\n\titemType: Identifier\n\titem: any\n\tsourceId: Identifier\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n\tisSourcePublic: boolean\n}\n\nexport interface HoverPayload {\n\ttargetIds: Identifier[]\n\tclientOffset: XYCoord | null\n}\n\nexport interface HoverOptions {\n\tclientOffset?: XYCoord\n}\n\nexport interface DropPayload {\n\tdropResult: any\n}\n\nexport interface TargetIdPayload {\n\ttargetId: Identifier\n}\n\nexport interface SourceIdPayload {\n\tsourceId: Identifier\n}\n\nexport interface DragDropActions {\n\tbeginDrag(\n\t\tsourceIds?: Identifier[],\n\t\toptions?: any,\n\t): Action<BeginDragPayload> | undefined\n\tpublishDragSource(): SentinelAction | undefined\n\thover(targetIds: Identifier[], options?: any): Action<HoverPayload>\n\tdrop(options?: any): void\n\tendDrag(): SentinelAction\n}\n\nexport interface DragDropManager {\n\tgetMonitor(): DragDropMonitor\n\tgetBackend(): Backend\n\tgetRegistry(): HandlerRegistry\n\tgetActions(): DragDropActions\n\tdispatch(action: any): void\n}\n\nexport type BackendFactory = (\n\tmanager: DragDropManager,\n\tglobalContext?: any,\n\tconfiguration?: any,\n) => Backend\n\nexport interface DragSource {\n\tbeginDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tendDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tcanDrag(monitor: DragDropMonitor, targetId: Identifier): boolean\n\tisDragging(monitor: DragDropMonitor, targetId: Identifier): boolean\n}\n\nexport interface DropTarget {\n\tcanDrop(monitor: DragDropMonitor, targetId: Identifier): boolean\n\thover(monitor: DragDropMonitor, targetId: Identifier): void\n\tdrop(monitor: DragDropMonitor, targetId: Identifier): any\n}\n","let nextUniqueId = 0\n\nexport function getNextUniqueId(): number {\n\treturn nextUniqueId++\n}\n","import { asap } from '@react-dnd/asap'\nimport { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport {\n\taddSource,\n\taddTarget,\n\tremoveSource,\n\tremoveTarget,\n} from '../actions/registry.js'\nimport {\n\tvalidateSourceContract,\n\tvalidateTargetContract,\n\tvalidateType,\n} from '../contracts.js'\nimport type {\n\tDragSource,\n\tDropTarget,\n\tHandlerRegistry,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n} from '../interfaces.js'\nimport { HandlerRole } from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js'\n\nfunction getNextHandlerId(role: HandlerRole): string {\n\tconst id = getNextUniqueId().toString()\n\tswitch (role) {\n\t\tcase HandlerRole.SOURCE:\n\t\t\treturn `S${id}`\n\t\tcase HandlerRole.TARGET:\n\t\t\treturn `T${id}`\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Handler Role: ${role}`)\n\t}\n}\n\nfunction parseRoleFromHandlerId(handlerId: string) {\n\tswitch (handlerId[0]) {\n\t\tcase 'S':\n\t\t\treturn HandlerRole.SOURCE\n\t\tcase 'T':\n\t\t\treturn HandlerRole.TARGET\n\t\tdefault:\n\t\t\tthrow new Error(`Cannot parse handler ID: ${handlerId}`)\n\t}\n}\n\nfunction mapContainsValue<T>(map: Map<string, T>, searchValue: T) {\n\tconst entries = map.entries()\n\tlet isDone = false\n\tdo {\n\t\tconst {\n\t\t\tdone,\n\t\t\tvalue: [, value],\n\t\t} = entries.next()\n\t\tif (value === searchValue) {\n\t\t\treturn true\n\t\t}\n\t\tisDone = !!done\n\t} while (!isDone)\n\treturn false\n}\n\nexport class HandlerRegistryImpl implements HandlerRegistry {\n\tprivate types: Map<string, SourceType | TargetType> = new Map()\n\tprivate dragSources: Map<string, DragSource> = new Map()\n\tprivate dropTargets: Map<string, DropTarget> = new Map()\n\tprivate pinnedSourceId: string | null = null\n\tprivate pinnedSource: any = null\n\tprivate store: Store<State>\n\n\tpublic constructor(store: Store<State>) {\n\t\tthis.store = store\n\t}\n\n\tpublic addSource(type: SourceType, source: DragSource): string {\n\t\tvalidateType(type)\n\t\tvalidateSourceContract(source)\n\n\t\tconst sourceId = this.addHandler(HandlerRole.SOURCE, type, source)\n\t\tthis.store.dispatch(addSource(sourceId))\n\t\treturn sourceId\n\t}\n\n\tpublic addTarget(type: TargetType, target: DropTarget): string {\n\t\tvalidateType(type, true)\n\t\tvalidateTargetContract(target)\n\n\t\tconst targetId = this.addHandler(HandlerRole.TARGET, type, target)\n\t\tthis.store.dispatch(addTarget(targetId))\n\t\treturn targetId\n\t}\n\n\tpublic containsHandler(handler: DragSource | DropTarget): boolean {\n\t\treturn (\n\t\t\tmapContainsValue(this.dragSources, handler) ||\n\t\t\tmapContainsValue(this.dropTargets, handler)\n\t\t)\n\t}\n\n\tpublic getSource(sourceId: string, includePinned = false): DragSource {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\tconst isPinned = includePinned && sourceId === this.pinnedSourceId\n\t\tconst source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId)\n\t\treturn source\n\t}\n\n\tpublic getTarget(targetId: string): DropTarget {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.dropTargets.get(targetId) as DropTarget\n\t}\n\n\tpublic getSourceType(sourceId: string): Identifier {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\treturn this.types.get(sourceId) as Identifier\n\t}\n\n\tpublic getTargetType(targetId: string): Identifier | Identifier[] {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.types.get(targetId) as Identifier | Identifier[]\n\t}\n\n\tpublic isSourceId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.SOURCE\n\t}\n\n\tpublic isTargetId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.TARGET\n\t}\n\n\tpublic removeSource(sourceId: string): void {\n\t\tinvariant(this.getSource(sourceId), 'Expected an existing source.')\n\t\tthis.store.dispatch(removeSource(sourceId))\n\t\tasap(() => {\n\t\t\tthis.dragSources.delete(sourceId)\n\t\t\tthis.types.delete(sourceId)\n\t\t})\n\t}\n\n\tpublic removeTarget(targetId: string): void {\n\t\tinvariant(this.getTarget(targetId), 'Expected an existing target.')\n\t\tthis.store.dispatch(removeTarget(targetId))\n\t\tthis.dropTargets.delete(targetId)\n\t\tthis.types.delete(targetId)\n\t}\n\n\tpublic pinSource(sourceId: string): void {\n\t\tconst source = this.getSource(sourceId)\n\t\tinvariant(source, 'Expected an existing source.')\n\n\t\tthis.pinnedSourceId = sourceId\n\t\tthis.pinnedSource = source\n\t}\n\n\tpublic unpinSource(): void {\n\t\tinvariant(this.pinnedSource, 'No source is pinned at the time.')\n\n\t\tthis.pinnedSourceId = null\n\t\tthis.pinnedSource = null\n\t}\n\n\tprivate addHandler(\n\t\trole: HandlerRole,\n\t\ttype: SourceType | TargetType,\n\t\thandler: DragSource | DropTarget,\n\t): string {\n\t\tconst id = getNextHandlerId(role)\n\t\tthis.types.set(id, type)\n\t\tif (role === HandlerRole.SOURCE) {\n\t\t\tthis.dragSources.set(id, handler as DragSource)\n\t\t} else if (role === HandlerRole.TARGET) {\n\t\t\tthis.dropTargets.set(id, handler as DropTarget)\n\t\t}\n\t\treturn id\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\n\nexport type EqualityCheck<T> = (a: T, b: T) => boolean\nexport const strictEquality = <T>(a: T, b: T): boolean => a === b\n\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nexport function areCoordsEqual(\n\toffsetA: XYCoord | null | undefined,\n\toffsetB: XYCoord | null | undefined,\n): boolean {\n\tif (!offsetA && !offsetB) {\n\t\treturn true\n\t} else if (!offsetA || !offsetB) {\n\t\treturn false\n\t} else {\n\t\treturn offsetA.x === offsetB.x && offsetA.y === offsetB.y\n\t}\n}\n\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\nexport function areArraysEqual<T>(\n\ta: T[],\n\tb: T[],\n\tisEqual: EqualityCheck<T> = strictEquality,\n): boolean {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; ++i) {\n\t\tif (!isEqual(a[i] as T, b[i] as T)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\nimport { ALL, NONE } from '../utils/dirtiness.js'\nimport { areArraysEqual } from '../utils/equality.js'\nimport { xor } from '../utils/js_utils.js'\n\nexport type State = string[]\n\nexport interface DirtyHandlerIdPayload {\n\ttargetIds: string[]\n\tprevTargetIds: string[]\n}\n\nexport function reduce(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t_state: State = NONE,\n\taction: Action<DirtyHandlerIdPayload>,\n): State {\n\tswitch (action.type) {\n\t\tcase HOVER:\n\t\t\tbreak\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\tcase REMOVE_TARGET:\n\t\tcase REMOVE_SOURCE:\n\t\t\treturn NONE\n\t\tcase BEGIN_DRAG:\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\tdefault:\n\t\t\treturn ALL\n\t}\n\n\tconst { targetIds = [], prevTargetIds = [] } = action.payload\n\tconst result = xor(targetIds, prevTargetIds)\n\tconst didChange =\n\t\tresult.length > 0 || !areArraysEqual(targetIds, prevTargetIds)\n\n\tif (!didChange) {\n\t\treturn NONE\n\t}\n\n\t// Check the target ids at the innermost position. If they are valid, add them\n\t// to the result\n\tconst prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1]\n\tconst innermostTargetId = targetIds[targetIds.length - 1]\n\tif (prevInnermostTargetId !== innermostTargetId) {\n\t\tif (prevInnermostTargetId) {\n\t\t\tresult.push(prevInnermostTargetId)\n\t\t}\n\t\tif (innermostTargetId) {\n\t\t\tresult.push(innermostTargetId)\n\t\t}\n\t}\n\n\treturn result\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tINIT_COORDS,\n} from '../actions/dragDrop/index.js'\nimport type { Action, XYCoord } from '../interfaces.js'\nimport { areCoordsEqual } from '../utils/equality.js'\n\nexport interface State {\n\tinitialSourceClientOffset: XYCoord | null\n\tinitialClientOffset: XYCoord | null\n\tclientOffset: XYCoord | null\n}\n\nconst initialState: State = {\n\tinitialSourceClientOffset: null,\n\tinitialClientOffset: null,\n\tclientOffset: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\tsourceClientOffset: XYCoord\n\t\tclientOffset: XYCoord\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase INIT_COORDS:\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\tinitialSourceClientOffset: payload.sourceClientOffset,\n\t\t\t\tinitialClientOffset: payload.clientOffset,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\tif (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\t\treturn initialState\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport { REMOVE_TARGET } from '../actions/registry.js'\nimport type { Action, Identifier } from '../interfaces.js'\nimport { without } from '../utils/js_utils.js'\n\nexport interface State {\n\titemType: Identifier | Identifier[] | null\n\titem: any\n\tsourceId: string | null\n\ttargetIds: string[]\n\tdropResult: any\n\tdidDrop: boolean\n\tisSourcePublic: boolean | null\n}\n\nconst initialState: State = {\n\titemType: null,\n\titem: null,\n\tsourceId: null,\n\ttargetIds: [],\n\tdropResult: null,\n\tdidDrop: false,\n\tisSourcePublic: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\titemType: Identifier | Identifier[]\n\t\titem: any\n\t\tsourceId: string\n\t\ttargetId: string\n\t\ttargetIds: string[]\n\t\tisSourcePublic: boolean\n\t\tdropResult: any\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: payload.itemType,\n\t\t\t\titem: payload.item,\n\t\t\t\tsourceId: payload.sourceId,\n\t\t\t\tisSourcePublic: payload.isSourcePublic,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t}\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisSourcePublic: true,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: payload.targetIds,\n\t\t\t}\n\t\tcase REMOVE_TARGET:\n\t\t\tif (state.targetIds.indexOf(payload.targetId) === -1) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: without(state.targetIds, payload.targetId),\n\t\t\t}\n\t\tcase DROP:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdropResult: payload.dropResult,\n\t\t\t\tdidDrop: true,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tcase END_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: null,\n\t\t\t\titem: null,\n\t\t\t\tsourceId: null,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t\tisSourcePublic: null,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\n\nexport type State = number\n\nexport function reduce(state: State = 0, action: Action<any>): State {\n\tswitch (action.type) {\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\t\treturn state + 1\n\t\tcase REMOVE_SOURCE:\n\t\tcase REMOVE_TARGET:\n\t\t\treturn state - 1\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","export type State = number\n\nexport function reduce(state: State = 0): State {\n\treturn state + 1\n}\n","import type { Action } from '../interfaces.js'\nimport { get } from '../utils/js_utils.js'\nimport type { State as DirtyHandlerIdsState } from './dirtyHandlerIds.js'\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js'\nimport type { State as DragOffsetState } from './dragOffset.js'\nimport { reduce as dragOffset } from './dragOffset.js'\nimport type { State as DragOperationState } from './dragOperation.js'\nimport { reduce as dragOperation } from './dragOperation.js'\nimport type { State as RefCountState } from './refCount.js'\nimport { reduce as refCount } from './refCount.js'\nimport type { State as StateIdState } from './stateId.js'\nimport { reduce as stateId } from './stateId.js'\n\nexport interface State {\n\tdirtyHandlerIds: DirtyHandlerIdsState\n\tdragOffset: DragOffsetState\n\trefCount: RefCountState\n\tdragOperation: DragOperationState\n\tstateId: StateIdState\n}\n\nexport function reduce(state: State = {} as State, action: Action<any>): State {\n\treturn {\n\t\tdirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n\t\t\ttype: action.type,\n\t\t\tpayload: {\n\t\t\t\t...action.payload,\n\t\t\t\tprevTargetIds: get<string[]>(state, 'dragOperation.targetIds', []),\n\t\t\t},\n\t\t}),\n\t\tdragOffset: dragOffset(state.dragOffset, action),\n\t\trefCount: refCount(state.refCount, action),\n\t\tdragOperation: dragOperation(state.dragOperation, action),\n\t\tstateId: stateId(state.stateId),\n\t}\n}\n","import type { Store } from 'redux'\nimport { createStore } from 'redux'\n\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js'\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js'\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js'\nimport type { BackendFactory, DragDropManager } from './interfaces.js'\nimport type { State } from './reducers/index.js'\nimport { reduce } from './reducers/index.js'\n\nexport function createDragDropManager(\n\tbackendFactory: BackendFactory,\n\tglobalContext: unknown = undefined,\n\tbackendOptions: unknown = {},\n\tdebugMode = false,\n): DragDropManager {\n\tconst store = makeStoreInstance(debugMode)\n\tconst monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store))\n\tconst manager = new DragDropManagerImpl(store, monitor)\n\tconst backend = backendFactory(manager, globalContext, backendOptions)\n\tmanager.receiveBackend(backend)\n\treturn manager\n}\n\nfunction makeStoreInstance(debugMode: boolean): Store<State> {\n\t// TODO: if we ever make a react-native version of this,\n\t// we'll need to consider how to pull off dev-tooling\n\tconst reduxDevTools =\n\t\ttypeof window !== 'undefined' &&\n\t\t(window as any).__REDUX_DEVTOOLS_EXTENSION__\n\treturn createStore(\n\t\treduce,\n\t\tdebugMode &&\n\t\t\treduxDevTools &&\n\t\t\treduxDevTools({\n\t\t\t\tname: 'dnd-core',\n\t\t\t\tinstanceId: 'dnd-core',\n\t\t\t}),\n\t)\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\nimport { createDragDropManager } from 'dnd-core'\nimport type { FC, ReactNode } from 'react'\nimport { memo, useEffect } from 'react'\n\nimport { DndContext } from './DndContext.js'\n\nexport type DndProviderProps<BackendContext, BackendOptions> =\n\t| {\n\t\t\tchildren?: ReactNode\n\t\t\tmanager: DragDropManager\n\t }\n\t| {\n\t\t\tbackend: BackendFactory\n\t\t\tchildren?: ReactNode\n\t\t\tcontext?: BackendContext\n\t\t\toptions?: BackendOptions\n\t\t\tdebugMode?: boolean\n\t }\n\nlet refCount = 0\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__')\n\n/**\n * A React component that provides the React-DnD context\n */\nexport const DndProvider: FC<DndProviderProps<unknown, unknown>> = memo(\n\tfunction DndProvider({ children, ...props }) {\n\t\tconst [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n\t\t/**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */\n\t\tuseEffect(() => {\n\t\t\tif (isGlobalInstance) {\n\t\t\t\tconst context = getGlobalContext()\n\t\t\t\t++refCount\n\n\t\t\t\treturn () => {\n\t\t\t\t\tif (--refCount === 0) {\n\t\t\t\t\t\tcontext[INSTANCE_SYM] = null\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}, [])\n\n\t\treturn <DndContext.Provider value={manager}>{children}</DndContext.Provider>\n\t},\n)\n\nfunction getDndContextValue(props: DndProviderProps<unknown, unknown>) {\n\tif ('manager' in props) {\n\t\tconst manager = { dragDropManager: props.manager }\n\t\treturn [manager, false]\n\t}\n\n\tconst manager = createSingletonDndContext(\n\t\tprops.backend,\n\t\tprops.context,\n\t\tprops.options,\n\t\tprops.debugMode,\n\t)\n\tconst isGlobalInstance = !props.context\n\n\treturn [manager, isGlobalInstance]\n}\n\nfunction createSingletonDndContext<BackendContext, BackendOptions>(\n\tbackend: BackendFactory,\n\tcontext: BackendContext = getGlobalContext(),\n\toptions: BackendOptions,\n\tdebugMode?: boolean,\n) {\n\tconst ctx = context as any\n\tif (!ctx[INSTANCE_SYM]) {\n\t\tctx[INSTANCE_SYM] = {\n\t\t\tdragDropManager: createDragDropManager(\n\t\t\t\tbackend,\n\t\t\t\tcontext,\n\t\t\t\toptions,\n\t\t\t\tdebugMode,\n\t\t\t),\n\t\t}\n\t}\n\treturn ctx[INSTANCE_SYM]\n}\n\ndeclare const global: any\nfunction getGlobalContext() {\n\treturn typeof global !== 'undefined' ? global : (window as any)\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react'\n\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect =\n\ttypeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import equal from 'fast-deep-equal'\nimport { useCallback, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nexport function useCollector<T, S>(\n\tmonitor: T,\n\tcollect: (monitor: T) => S,\n\tonUpdate?: () => void,\n): [S, () => void] {\n\tconst [collected, setCollected] = useState(() => collect(monitor))\n\n\tconst updateCollected = useCallback(() => {\n\t\tconst nextValue = collect(monitor)\n\t\t// This needs to be a deep-equality check because some monitor-collected values\n\t\t// include XYCoord objects that may be equivalent, but do not have instance equality.\n\t\tif (!equal(collected, nextValue)) {\n\t\t\tsetCollected(nextValue)\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate()\n\t\t\t}\n\t\t}\n\t}, [collected, monitor, onUpdate])\n\n\t// update the collected properties after react renders.\n\t// Note that the \"Dustbin Stress Test\" fails if this is not\n\t// done when the component updates\n\tuseIsomorphicLayoutEffect(updateCollected)\n\n\treturn [collected, updateCollected]\n}\n","import type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useCollector } from './useCollector.js'\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\nexport function useMonitorOutput<Monitor extends HandlerManager, Collected>(\n\tmonitor: Monitor & MonitorEventEmitter,\n\tcollect: (monitor: Monitor) => Collected,\n\tonCollect?: () => void,\n): Collected {\n\tconst [collected, updateCollected] = useCollector(monitor, collect, onCollect)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction subscribeToMonitorStateChange() {\n\t\t\tconst handlerId = monitor.getHandlerId()\n\t\t\tif (handlerId == null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn monitor.subscribeToStateChange(updateCollected, {\n\t\t\t\thandlerIds: [handlerId],\n\t\t\t})\n\t\t},\n\t\t[monitor, updateCollected],\n\t)\n\n\treturn collected\n}\n","import type { Connector } from '../internals/index.js'\nimport type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useMonitorOutput } from './useMonitorOutput.js'\n\nexport function useCollectedProps<Collected, Monitor extends HandlerManager>(\n\tcollector: ((monitor: Monitor) => Collected) | undefined,\n\tmonitor: Monitor & MonitorEventEmitter,\n\tconnector: Connector,\n) {\n\treturn useMonitorOutput(monitor, collector || (() => ({} as Collected)), () =>\n\t\tconnector.reconnect(),\n\t)\n}\n","import { useMemo } from 'react'\n\nimport type { FactoryOrInstance } from './types.js'\n\nexport function useOptionalFactory<T>(\n\targ: FactoryOrInstance<T>,\n\tdeps?: unknown[],\n): T {\n\tconst memoDeps = [...(deps || [])]\n\tif (deps == null && typeof arg !== 'function') {\n\t\tmemoDeps.push(arg)\n\t}\n\treturn useMemo<T>(() => {\n\t\treturn typeof arg === 'function' ? (arg as () => T)() : (arg as T)\n\t}, memoDeps)\n}\n","import { useMemo } from 'react'\n\nimport type { SourceConnector } from '../../internals/index.js'\n\nexport function useConnectDragSource(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragSource(), [connector])\n}\n\nexport function useConnectDragPreview(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragPreview(), [connector])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DragSourceMonitor } from '../types/index.js'\n\nlet isCallingCanDrag = false\nlet isCallingIsDragging = false\n\nexport class DragSourceMonitorImpl implements DragSourceMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate sourceId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(sourceId: Identifier | null): void {\n\t\tthis.sourceId = sourceId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.sourceId\n\t}\n\n\tpublic canDrag(): boolean {\n\t\tinvariant(\n\t\t\t!isCallingCanDrag,\n\t\t\t'You may not call monitor.canDrag() inside your canDrag() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrag = true\n\t\t\treturn this.internalMonitor.canDragSource(this.sourceId as Identifier)\n\t\t} finally {\n\t\t\tisCallingCanDrag = false\n\t\t}\n\t}\n\n\tpublic isDragging(): boolean {\n\t\tif (!this.sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingIsDragging,\n\t\t\t'You may not call monitor.isDragging() inside your isDragging() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingIsDragging = true\n\t\t\treturn this.internalMonitor.isDraggingSource(this.sourceId)\n\t\t} finally {\n\t\t\tisCallingIsDragging = false\n\t\t}\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic isDraggingSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.isDraggingSource(sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: Identifier,\n\t\toptions?: { shallow: boolean },\n\t): boolean {\n\t\treturn this.internalMonitor.isOverTarget(targetId, options)\n\t}\n\n\tpublic getTargetIds(): Identifier[] {\n\t\treturn this.internalMonitor.getTargetIds()\n\t}\n\n\tpublic isSourcePublic(): boolean | null {\n\t\treturn this.internalMonitor.isSourcePublic()\n\t}\n\n\tpublic getSourceId(): Identifier | null {\n\t\treturn this.internalMonitor.getSourceId()\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToOffsetChange(listener)\n\t}\n\n\tpublic canDragSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDragSource(sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDropOnTarget(targetId)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../types/index.js'\n\nlet isCallingCanDrop = false\n\nexport class DropTargetMonitorImpl implements DropTargetMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate targetId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(targetId: Identifier | null): void {\n\t\tthis.targetId = targetId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.targetId\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic canDrop(): boolean {\n\t\t// Cut out early if the target id has not been set. This should prevent errors\n\t\t// where the user has an older version of dnd-core like in\n\t\t// https://github.com/react-dnd/react-dnd/issues/1310\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingCanDrop,\n\t\t\t'You may not call monitor.canDrop() inside your canDrop() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrop = true\n\t\t\treturn this.internalMonitor.canDropOnTarget(this.targetId)\n\t\t} finally {\n\t\t\tisCallingCanDrop = false\n\t\t}\n\t}\n\n\tpublic isOver(options?: { shallow?: boolean }): boolean {\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\treturn this.internalMonitor.isOverTarget(this.targetId, options)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import type {\n\tDragDropManager,\n\tDragSource,\n\tDropTarget,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n\tUnsubscribe,\n} from 'dnd-core'\n\nexport function registerTarget(\n\ttype: TargetType,\n\ttarget: DropTarget,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst targetId = registry.addTarget(type, target)\n\n\treturn [targetId, () => registry.removeTarget(targetId)]\n}\n\nexport function registerSource(\n\ttype: SourceType,\n\tsource: DragSource,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst sourceId = registry.addSource(type, source)\n\n\treturn [sourceId, () => registry.removeSource(sourceId)]\n}\n","export function shallowEqual<T>(\n\tobjA: T,\n\tobjB: T,\n\tcompare?: (a: T, b: T, key?: string) => boolean | void,\n\tcompareContext?: any,\n) {\n\tlet compareResult = compare\n\t\t? compare.call(compareContext, objA, objB)\n\t\t: void 0\n\tif (compareResult !== void 0) {\n\t\treturn !!compareResult\n\t}\n\n\tif (objA === objB) {\n\t\treturn true\n\t}\n\n\tif (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n\t\treturn false\n\t}\n\n\tconst keysA = Object.keys(objA)\n\tconst keysB = Object.keys(objB)\n\n\tif (keysA.length !== keysB.length) {\n\t\treturn false\n\t}\n\n\tconst bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB)\n\n\t// Test for A's keys different from B.\n\tfor (let idx = 0; idx < keysA.length; idx++) {\n\t\tconst key = keysA[idx] as string\n\n\t\tif (!bHasOwnProperty(key)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst valueA = (objA as any)[key]\n\t\tconst valueB = (objB as any)[key]\n\n\t\tcompareResult = compare\n\t\t\t? compare.call(compareContext, valueA, valueB, key)\n\t\t\t: void 0\n\n\t\tif (\n\t\t\tcompareResult === false ||\n\t\t\t(compareResult === void 0 && valueA !== valueB)\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n","export interface Ref<T> {\n\tcurrent: T\n}\n\nexport function isRef(obj: unknown): boolean {\n\treturn (\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tobj !== null &&\n\t\ttypeof obj === 'object' &&\n\t\tObject.prototype.hasOwnProperty.call(obj, 'current')\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { ReactElement } from 'react'\nimport { cloneElement, isValidElement } from 'react'\n\nfunction throwIfCompositeComponentElement(element: ReactElement<any>) {\n\t// Custom components can no longer be wrapped directly in React DnD 2.0\n\t// so that we don't need to depend on findDOMNode() from react-dom.\n\tif (typeof element.type === 'string') {\n\t\treturn\n\t}\n\n\tconst displayName =\n\t\t(element.type as any).displayName || element.type.name || 'the component'\n\n\tthrow new Error(\n\t\t'Only native element nodes can now be passed to React DnD connectors.' +\n\t\t\t`You can either wrap ${displayName} into a <div>, or turn it into a ` +\n\t\t\t'drag source or a drop target itself.',\n\t)\n}\n\nfunction wrapHookToRecognizeElement(hook: (node: any, options: any) => void) {\n\treturn (elementOrNode = null, options = null) => {\n\t\t// When passed a node, call the hook straight away.\n\t\tif (!isValidElement(elementOrNode)) {\n\t\t\tconst node = elementOrNode\n\t\t\thook(node, options)\n\t\t\t// return the node so it can be chained (e.g. when within callback refs\n\t\t\t// <div ref={node => connectDragSource(connectDropTarget(node))}/>\n\t\t\treturn node\n\t\t}\n\n\t\t// If passed a ReactElement, clone it and attach this function as a ref.\n\t\t// This helps us achieve a neat API where user doesn't even know that refs\n\t\t// are being used under the hood.\n\t\tconst element: ReactElement | null = elementOrNode\n\t\tthrowIfCompositeComponentElement(element as any)\n\n\t\t// When no options are passed, use the hook directly\n\t\tconst ref = options ? (node: Element) => hook(node, options) : hook\n\t\treturn cloneWithRef(element, ref)\n\t}\n}\n\nexport function wrapConnectorHooks(hooks: any) {\n\tconst wrappedHooks: any = {}\n\n\tObject.keys(hooks).forEach((key) => {\n\t\tconst hook = hooks[key]\n\n\t\t// ref objects should be passed straight through without wrapping\n\t\tif (key.endsWith('Ref')) {\n\t\t\twrappedHooks[key] = hooks[key]\n\t\t} else {\n\t\t\tconst wrappedHook = wrapHookToRecognizeElement(hook)\n\t\t\twrappedHooks[key] = () => wrappedHook\n\t\t}\n\t})\n\n\treturn wrappedHooks\n}\n\nfunction setRef(ref: any, node: any) {\n\tif (typeof ref === 'function') {\n\t\tref(node)\n\t} else {\n\t\tref.current = node\n\t}\n}\n\nfunction cloneWithRef(element: any, newRef: any): ReactElement<any> {\n\tconst previousRef = element.ref\n\tinvariant(\n\t\ttypeof previousRef !== 'string',\n\t\t'Cannot connect React DnD to an element with an existing string ref. ' +\n\t\t\t'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' +\n\t\t\t'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs',\n\t)\n\n\tif (!previousRef) {\n\t\t// When there is no ref on the element, use the new ref directly\n\t\treturn cloneElement(element, {\n\t\t\tref: newRef,\n\t\t})\n\t} else {\n\t\treturn cloneElement(element, {\n\t\t\tref: (node: any) => {\n\t\t\t\tsetRef(previousRef, node)\n\t\t\t\tsetRef(newRef, node)\n\t\t\t},\n\t\t})\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { ReactElement, Ref, RefObject } from 'react'\n\nimport type { DragPreviewOptions, DragSourceOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport interface Connector {\n\thooks: any\n\tconnectTarget: any\n\treceiveHandlerId(handlerId: Identifier | null): void\n\treconnect(): void\n}\n\nexport class SourceConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdragSource: (\n\t\t\tnode: Element | ReactElement | Ref<any>,\n\t\t\toptions?: DragSourceOptions,\n\t\t) => {\n\t\t\tthis.clearDragSource()\n\t\t\tthis.dragSourceOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragSourceRef = node as RefObject<any>\n\t\t\t} else {\n\t\t\t\tthis.dragSourceNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragSource()\n\t\t},\n\t\tdragPreview: (node: any, options?: DragPreviewOptions) => {\n\t\t\tthis.clearDragPreview()\n\t\t\tthis.dragPreviewOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragPreviewRef = node\n\t\t\t} else {\n\t\t\t\tthis.dragPreviewNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragPreview()\n\t\t},\n\t})\n\tprivate handlerId: Identifier | null = null\n\n\t// The drop target may either be attached via ref or connect function\n\tprivate dragSourceRef: RefObject<any> | null = null\n\tprivate dragSourceNode: any\n\tprivate dragSourceOptionsInternal: DragSourceOptions | null = null\n\tprivate dragSourceUnsubscribe: Unsubscribe | undefined\n\n\t// The drag preview may either be attached via ref or connect function\n\tprivate dragPreviewRef: RefObject<any> | null = null\n\tprivate dragPreviewNode: any\n\tprivate dragPreviewOptionsInternal: DragPreviewOptions | null = null\n\tprivate dragPreviewUnsubscribe: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDragSource: any = null\n\tprivate lastConnectedDragSourceOptions: any = null\n\tprivate lastConnectedDragPreview: any = null\n\tprivate lastConnectedDragPreviewOptions: any = null\n\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (this.handlerId === newHandlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dragSource\n\t}\n\n\tpublic get dragSourceOptions(): DragSourceOptions | null {\n\t\treturn this.dragSourceOptionsInternal\n\t}\n\tpublic set dragSourceOptions(options: DragSourceOptions | null) {\n\t\tthis.dragSourceOptionsInternal = options\n\t}\n\n\tpublic get dragPreviewOptions(): DragPreviewOptions | null {\n\t\treturn this.dragPreviewOptionsInternal\n\t}\n\n\tpublic set dragPreviewOptions(options: DragPreviewOptions | null) {\n\t\tthis.dragPreviewOptionsInternal = options\n\t}\n\n\tpublic reconnect(): void {\n\t\tconst didChange = this.reconnectDragSource()\n\t\tthis.reconnectDragPreview(didChange)\n\t}\n\n\tprivate reconnectDragSource(): boolean {\n\t\tconst dragSource = this.dragSource\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragSourceChange() ||\n\t\t\tthis.didDragSourceOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragSource()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn didChange\n\t\t}\n\t\tif (!dragSource) {\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\treturn didChange\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\tthis.lastConnectedDragSourceOptions = this.dragSourceOptions\n\t\t\tthis.dragSourceUnsubscribe = this.backend.connectDragSource(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragSource,\n\t\t\t\tthis.dragSourceOptions,\n\t\t\t)\n\t\t}\n\t\treturn didChange\n\t}\n\n\tprivate reconnectDragPreview(forceDidChange = false): void {\n\t\tconst dragPreview = this.dragPreview\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tforceDidChange ||\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragPreviewChange() ||\n\t\t\tthis.didDragPreviewOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragPreview()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dragPreview) {\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\tthis.lastConnectedDragPreviewOptions = this.dragPreviewOptions\n\t\t\tthis.dragPreviewUnsubscribe = this.backend.connectDragPreview(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragPreview,\n\t\t\t\tthis.dragPreviewOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didConnectedDragSourceChange(): boolean {\n\t\treturn this.lastConnectedDragSource !== this.dragSource\n\t}\n\n\tprivate didConnectedDragPreviewChange(): boolean {\n\t\treturn this.lastConnectedDragPreview !== this.dragPreview\n\t}\n\n\tprivate didDragSourceOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragSourceOptions,\n\t\t\tthis.dragSourceOptions,\n\t\t)\n\t}\n\n\tprivate didDragPreviewOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragPreviewOptions,\n\t\t\tthis.dragPreviewOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDragSource() {\n\t\tif (this.dragSourceUnsubscribe) {\n\t\t\tthis.dragSourceUnsubscribe()\n\t\t\tthis.dragSourceUnsubscribe = undefined\n\t\t}\n\t}\n\n\tpublic disconnectDragPreview() {\n\t\tif (this.dragPreviewUnsubscribe) {\n\t\t\tthis.dragPreviewUnsubscribe()\n\t\t\tthis.dragPreviewUnsubscribe = undefined\n\t\t\tthis.dragPreviewNode = null\n\t\t\tthis.dragPreviewRef = null\n\t\t}\n\t}\n\n\tprivate get dragSource() {\n\t\treturn (\n\t\t\tthis.dragSourceNode || (this.dragSourceRef && this.dragSourceRef.current)\n\t\t)\n\t}\n\n\tprivate get dragPreview() {\n\t\treturn (\n\t\t\tthis.dragPreviewNode ||\n\t\t\t(this.dragPreviewRef && this.dragPreviewRef.current)\n\t\t)\n\t}\n\n\tprivate clearDragSource() {\n\t\tthis.dragSourceNode = null\n\t\tthis.dragSourceRef = null\n\t}\n\n\tprivate clearDragPreview() {\n\t\tthis.dragPreviewNode = null\n\t\tthis.dragPreviewRef = null\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { RefObject } from 'react'\n\nimport type { DropTargetOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport type { Connector } from './SourceConnector.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport class TargetConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdropTarget: (node: any, options: DropTargetOptions) => {\n\t\t\tthis.clearDropTarget()\n\t\t\tthis.dropTargetOptions = options\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dropTargetRef = node\n\t\t\t} else {\n\t\t\t\tthis.dropTargetNode = node\n\t\t\t}\n\t\t\tthis.reconnect()\n\t\t},\n\t})\n\n\tprivate handlerId: Identifier | null = null\n\t// The drop target may either be attached via ref or connect function\n\tprivate dropTargetRef: RefObject<any> | null = null\n\tprivate dropTargetNode: any\n\tprivate dropTargetOptionsInternal: DropTargetOptions | null = null\n\tprivate unsubscribeDropTarget: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDropTarget: any = null\n\tprivate lastConnectedDropTargetOptions: DropTargetOptions | null = null\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dropTarget\n\t}\n\n\tpublic reconnect(): void {\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didDropTargetChange() ||\n\t\t\tthis.didOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDropTarget()\n\t\t}\n\n\t\tconst dropTarget = this.dropTarget\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dropTarget) {\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\tthis.lastConnectedDropTargetOptions = this.dropTargetOptions\n\n\t\t\tthis.unsubscribeDropTarget = this.backend.connectDropTarget(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdropTarget,\n\t\t\t\tthis.dropTargetOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (newHandlerId === this.handlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get dropTargetOptions(): DropTargetOptions {\n\t\treturn this.dropTargetOptionsInternal\n\t}\n\tpublic set dropTargetOptions(options: DropTargetOptions) {\n\t\tthis.dropTargetOptionsInternal = options\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didDropTargetChange(): boolean {\n\t\treturn this.lastConnectedDropTarget !== this.dropTarget\n\t}\n\n\tprivate didOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDropTargetOptions,\n\t\t\tthis.dropTargetOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDropTarget() {\n\t\tif (this.unsubscribeDropTarget) {\n\t\t\tthis.unsubscribeDropTarget()\n\t\t\tthis.unsubscribeDropTarget = undefined\n\t\t}\n\t}\n\n\tprivate get dropTarget() {\n\t\treturn (\n\t\t\tthis.dropTargetNode || (this.dropTargetRef && this.dropTargetRef.current)\n\t\t)\n\t}\n\n\tprivate clearDropTarget() {\n\t\tthis.dropTargetRef = null\n\t\tthis.dropTargetNode = null\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { DragDropManager } from 'dnd-core'\nimport { useContext } from 'react'\n\nimport { DndContext } from '../core/index.js'\n\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nexport function useDragDropManager(): DragDropManager {\n\tconst { dragDropManager } = useContext(DndContext)\n\tinvariant(dragDropManager != null, 'Expected drag drop context')\n\treturn dragDropManager as DragDropManager\n}\n","import { useMemo } from 'react'\n\nimport { SourceConnector } from '../../internals/index.js'\nimport type {\n\tDragPreviewOptions,\n\tDragSourceOptions,\n} from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDragSourceConnector(\n\tdragSourceOptions: DragSourceOptions | undefined,\n\tdragPreviewOptions: DragPreviewOptions | undefined,\n): SourceConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new SourceConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragSourceOptions = dragSourceOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragSource()\n\t}, [connector, dragSourceOptions])\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragPreviewOptions = dragPreviewOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragPreview()\n\t}, [connector, dragPreviewOptions])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DragSourceMonitorImpl } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDragSourceMonitor<O, R>(): DragSourceMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo<DragSourceMonitor<O, R>>(\n\t\t() => new DragSourceMonitorImpl(manager),\n\t\t[manager],\n\t)\n}\n","import type { DragDropMonitor, DragSource, Identifier } from 'dnd-core'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragObjectFactory, DragSourceHookSpec } from '../types.js'\n\nexport class DragSourceImpl<O, R, P> implements DragSource {\n\tpublic constructor(\n\t\tpublic spec: DragSourceHookSpec<O, R, P>,\n\t\tprivate monitor: DragSourceMonitor<O, R>,\n\t\tprivate connector: Connector,\n\t) {}\n\n\tpublic beginDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\n\t\tlet result: O | null = null\n\t\tif (typeof spec.item === 'object') {\n\t\t\tresult = spec.item as O\n\t\t} else if (typeof spec.item === 'function') {\n\t\t\tresult = (spec.item as DragObjectFactory<O>)(monitor)\n\t\t} else {\n\t\t\tresult = {} as O\n\t\t}\n\t\treturn result ?? null\n\t}\n\n\tpublic canDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (typeof spec.canDrag === 'boolean') {\n\t\t\treturn spec.canDrag\n\t\t} else if (typeof spec.canDrag === 'function') {\n\t\t\treturn spec.canDrag(monitor)\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tpublic isDragging(globalMonitor: DragDropMonitor, target: Identifier) {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst { isDragging } = spec\n\t\treturn isDragging\n\t\t\t? isDragging(monitor)\n\t\t\t: target === globalMonitor.getSourceId()\n\t}\n\n\tpublic endDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst connector = this.connector\n\t\tconst { end } = spec\n\t\tif (end) {\n\t\t\tend(monitor.getItem(), monitor)\n\t\t}\n\t\tconnector.reconnect()\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { DragSourceImpl } from './DragSourceImpl.js'\n\nexport function useDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: Connector,\n) {\n\tconst handler = useMemo(\n\t\t() => new DragSourceImpl(spec, monitor, connector),\n\t\t[monitor, connector],\n\t)\n\tuseEffect(() => {\n\t\thandler.spec = spec\n\t}, [spec])\n\treturn handler\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DragSourceHookSpec } from '../types.js'\n\nexport function useDragType(\n\tspec: DragSourceHookSpec<any, any, any>,\n): Identifier {\n\treturn useMemo(() => {\n\t\tconst result: Identifier = spec.type\n\t\tinvariant(result != null, 'spec.type must be defined')\n\t\treturn result\n\t}, [spec])\n}\n","import type { SourceConnector } from '../../internals/index.js'\nimport { registerSource } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useDragSource } from './useDragSource.js'\nimport { useDragType } from './useDragType.js'\n\nexport function useRegisteredDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: SourceConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst handler = useDragSource(spec, monitor, connector)\n\tconst itemType = useDragType(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDragSource() {\n\t\t\tif (itemType != null) {\n\t\t\t\tconst [handlerId, unregister] = registerSource(\n\t\t\t\t\titemType,\n\t\t\t\t\thandler,\n\t\t\t\t\tmanager,\n\t\t\t\t)\n\t\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\t\treturn unregister\n\t\t\t}\n\t\t\treturn\n\t\t},\n\t\t[manager, monitor, connector, handler, itemType],\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tConnectDragPreview,\n\tConnectDragSource,\n} from '../../types/index.js'\nimport type { DragSourceHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js'\nimport { useDragSourceConnector } from './useDragSourceConnector.js'\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js'\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js'\n\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrag<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDragSourceHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDragSource, ConnectDragPreview] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tinvariant(\n\t\t!(spec as any).begin,\n\t\t`useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`,\n\t)\n\n\tconst monitor = useDragSourceMonitor<DragObject, DropResult>()\n\tconst connector = useDragSourceConnector(spec.options, spec.previewOptions)\n\tuseRegisteredDragSource(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDragSource(connector),\n\t\tuseConnectDragPreview(connector),\n\t]\n}\n","import { useMemo } from 'react'\n\nimport type { TargetConnector } from '../../internals/index.js'\n\nexport function useConnectDropTarget(connector: TargetConnector) {\n\treturn useMemo(() => connector.hooks.dropTarget(), [connector])\n}\n","import { useMemo } from 'react'\n\nimport { TargetConnector } from '../../internals/index.js'\nimport type { DropTargetOptions } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDropTargetConnector(\n\toptions: DropTargetOptions,\n): TargetConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new TargetConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dropTargetOptions = options || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDropTarget()\n\t}, [options])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DropTargetMonitorImpl } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDropTargetMonitor<O, R>(): DropTargetMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo(() => new DropTargetMonitorImpl(manager), [manager])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DropTargetHookSpec } from '../types.js'\n\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\nexport function useAccept<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n): Identifier[] {\n\tconst { accept } = spec\n\treturn useMemo(() => {\n\t\tinvariant(spec.accept != null, 'accept must be defined')\n\t\treturn Array.isArray(accept) ? accept : [accept]\n\t}, [accept])\n}\n","import type { DropTarget } from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\n\nexport class DropTargetImpl<O, R, P> implements DropTarget {\n\tpublic constructor(\n\t\tpublic spec: DropTargetHookSpec<O, R, P>,\n\t\tprivate monitor: DropTargetMonitor<O, R>,\n\t) {}\n\n\tpublic canDrop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\treturn spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true\n\t}\n\n\tpublic hover() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.hover) {\n\t\t\tspec.hover(monitor.getItem(), monitor)\n\t\t}\n\t}\n\n\tpublic drop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.drop) {\n\t\t\treturn spec.drop(monitor.getItem(), monitor)\n\t\t}\n\t\treturn\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { DropTargetImpl } from './DropTargetImpl.js'\n\nexport function useDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n) {\n\tconst dropTarget = useMemo(() => new DropTargetImpl(spec, monitor), [monitor])\n\tuseEffect(() => {\n\t\tdropTarget.spec = spec\n\t}, [spec])\n\treturn dropTarget\n}\n","import type { TargetConnector } from '../../internals/index.js'\nimport { registerTarget } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useAccept } from './useAccept.js'\nimport { useDropTarget } from './useDropTarget.js'\n\nexport function useRegisteredDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n\tconnector: TargetConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst dropTarget = useDropTarget(spec, monitor)\n\tconst accept = useAccept(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDropTarget() {\n\t\t\tconst [handlerId, unregister] = registerTarget(\n\t\t\t\taccept,\n\t\t\t\tdropTarget,\n\t\t\t\tmanager,\n\t\t\t)\n\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\treturn unregister\n\t\t},\n\t\t[\n\t\t\tmanager,\n\t\t\tmonitor,\n\t\t\tdropTarget,\n\t\t\tconnector,\n\t\t\taccept.map((a) => a.toString()).join('|'),\n\t\t],\n\t)\n}\n","import type { ConnectDropTarget } from '../../types/index.js'\nimport type { DropTargetHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDropTarget } from './connectors.js'\nimport { useDropTargetConnector } from './useDropTargetConnector.js'\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js'\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js'\n\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrop<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDropTargetHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDropTarget] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tconst monitor = useDropTargetMonitor<DragObject, DropResult>()\n\tconst connector = useDropTargetConnector(spec.options)\n\tuseRegisteredDropTarget(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDropTarget(connector),\n\t]\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnPinningButtons: FC<Props> = ({ column, instance }) => {\n const {\n options: {\n icons: { PushPinIcon },\n localization,\n },\n } = instance;\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, Tooltip } from '@mui/material';\nimport React, { FC, forwardRef, Ref } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n ref: Ref<HTMLButtonElement>;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = forwardRef(\n ({ instance }, ref) => {\n const {\n options: {\n icons: { DragHandleIcon },\n localization,\n },\n } = instance;\n\n return (\n <Tooltip\n arrow\n enterDelay={1000}\n enterNextDelay={1000}\n placement=\"top\"\n title={localization.grab}\n >\n <IconButton\n disableRipple\n ref={ref}\n size=\"small\"\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 }}\n >\n <DragHandleIcon />\n </IconButton>\n </Tooltip>\n );\n },\n);\n","import { ColumnDef, ColumnOrderState, Table } from '@tanstack/react-table';\nimport {\n MaterialReactTableProps,\n MRT_Column,\n MRT_ColumnDef,\n MRT_FilterFn,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\n\nexport const getAllLeafColumnDefs = (\n columns: MRT_ColumnDef[],\n): MRT_ColumnDef[] => {\n let lowestLevelColumns: MRT_ColumnDef[] = columns;\n let currentCols: MRT_ColumnDef[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef[];\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 createGroup = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> =>\n table.createGroup({\n ...column,\n columns: column?.columns?.map?.((col) =>\n col.columns\n ? createGroup<D>(table, col, currentFilterFns)\n : createDataColumn(table, col, currentFilterFns),\n ),\n } as any);\n\nexport const createDataColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: MRT_ColumnDef<D>,\n currentFilterFns: { [key: string]: MRT_FilterFn },\n): ColumnDef<D> => // @ts-ignore\n table.createDataColumn(column.id, {\n filterFn:\n currentFilterFns[column.id] instanceof Function\n ? currentFilterFns[column.id]\n : // @ts-ignore\n MRT_FilterFns[currentFilterFns[column.id]],\n ...column,\n }) as any;\n\nexport const createDisplayColumn = <D extends Record<string, any> = {}>(\n table: Table<D>,\n column: Omit<MRT_ColumnDef<D>, 'header'> & { header?: string },\n): ColumnDef<D> => table.createDisplayColumn(column as ColumnDef<D>);\n\nexport const reorderColumn = (\n movingColumn: MRT_Column,\n receivingColumn: MRT_Column,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (movingColumn.getCanPin()) {\n movingColumn.pin(receivingColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(receivingColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) =>\n [\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding || props.enableGrouping) && 'mrt-expand',\n props.enableRowSelection && 'mrt-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = (\n props: MaterialReactTableProps<any>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = (props: MaterialReactTableProps<any>) =>\n [\n ...getLeadingDisplayColumnIds(props),\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => c.id),\n ...getTrailingDisplayColumnIds(props),\n ].filter(Boolean) as string[];\n","import React, { FC, Ref } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\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 '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n isSubMenu?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\n column,\n isSubMenu,\n instance,\n}) => {\n const {\n getState,\n options: {\n enableColumnOrdering,\n enableHiding,\n enablePinning,\n localization,\n },\n setColumnOrder,\n } = instance;\n\n const { columnOrder } = getState();\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\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 return (\n <>\n <MenuItem\n ref={columnDefType === 'data' ? dropRef : undefined}\n sx={{\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n }}\n >\n <Box\n ref={previewRef}\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some((col) => col.columnDefType === 'group') &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {enablePinning &&\n !isSubMenu &&\n (column.getCanPin() ? (\n <MRT_ColumnPinningButtons column={column} instance={instance} />\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 key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n instance={instance}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } 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 '../utils';\n\ninterface Props {\n anchorEl: HTMLElement | null;\n isSubMenu?: boolean;\n setAnchorEl: (anchorEl: HTMLElement | null) => void;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenu: FC<Props> = ({\n anchorEl,\n isSubMenu,\n setAnchorEl,\n instance,\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 } = instance;\n\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.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 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 instance.setColumnOrder(\n getDefaultColumnOrderIds(instance.options as any),\n )\n }\n >\n {localization.resetOrder}\n </Button>\n )}\n {!isSubMenu && enablePinning && (\n <Button\n disabled={!getIsSomeColumnsPinned()}\n onClick={() => instance.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 isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\n instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ColumnActionMenu: FC<Props> = ({\n anchorEl,\n header,\n setAnchorEl,\n instance,\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 } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { columnSizing, columnVisibility, density } = getState();\n\n const [filterMenuAnchorEl, setFilterMenuAnchorEl] =\n useState<null | HTMLElement>(null);\n\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-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 instance={instance}\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 <MenuItem\n disabled={!column.getCanResize() || !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 instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_RowActionMenu: FC<Props> = ({\n anchorEl,\n handleEdit,\n row,\n setAnchorEl,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { EditIcon },\n enableEditing,\n localization,\n renderRowActionMenuItems,\n },\n } = instance;\n\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 instance,\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_EditActionButtons: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n icons: { CancelIcon, SaveIcon },\n localization,\n onEditRowSubmit,\n },\n setCurrentEditingRow,\n } = instance;\n\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, instance });\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleRowActionMenuButton: FC<Props> = ({ row, instance }) => {\n const {\n getState,\n options: {\n enableEditing,\n icons: { EditIcon, MoreHorizIcon },\n localization,\n renderRowActionMenuItems,\n renderRowActions,\n },\n setCurrentEditingRow,\n } = instance;\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, instance })}</>\n ) : row.id === currentEditingRow?.id ? (\n <MRT_EditActionButtons row={row} instance={instance} />\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 instance={instance}\n />\n </>\n ) : null}\n </>\n );\n};\n","import React, { ChangeEvent, 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 instance: MRT_TableInstance;\n}\n\nexport const MRT_SelectCheckbox: FC<Props> = ({ row, selectAll, instance }) => {\n const {\n getState,\n options: {\n localization,\n muiSelectCheckboxProps,\n muiSelectAllCheckboxProps,\n selectAllMode,\n },\n } = instance;\n\n const { density } = getState();\n\n const handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n instance.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n instance.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ instance })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_Row, instance })\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 ? instance.getIsAllRowsSelected() : row?.getIsSelected()\n }\n indeterminate={\n selectAll\n ? instance.getIsSomeRowsSelected()\n : row?.getIsSomeSelected()\n }\n inputProps={{\n 'aria-label': selectAll\n ? localization.toggleSelectAll\n : localization.toggleSelectRow,\n }}\n onChange={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","// cheap lodash replacements\n\nexport function memoize<T>(fn: () => T): () => T {\n\tlet result: T | null = null\n\tconst memoized = () => {\n\t\tif (result == null) {\n\t\t\tresult = fn()\n\t\t}\n\t\treturn result\n\t}\n\treturn memoized\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T) {\n\treturn items.filter((i) => i !== item)\n}\n\nexport function union<T extends string | number>(itemsA: T[], itemsB: T[]) {\n\tconst set = new Set<T>()\n\tconst insertItem = (item: T) => set.add(item)\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tset.forEach((key) => result.push(key))\n\treturn result\n}\n","import { union, without } from './utils/js_utils.js'\n\ntype NodePredicate = (node: Node | null | undefined) => boolean\n\nexport class EnterLeaveCounter {\n\tprivate entered: any[] = []\n\tprivate isNodeInDocument: NodePredicate\n\n\tpublic constructor(isNodeInDocument: NodePredicate) {\n\t\tthis.isNodeInDocument = isNodeInDocument\n\t}\n\n\tpublic enter(enteringNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tconst isNodeEntered = (node: Node): boolean =>\n\t\t\tthis.isNodeInDocument(node) &&\n\t\t\t(!node.contains || node.contains(enteringNode as Node))\n\n\t\tthis.entered = union(this.entered.filter(isNodeEntered), [enteringNode])\n\n\t\treturn previousLength === 0 && this.entered.length > 0\n\t}\n\n\tpublic leave(leavingNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tthis.entered = without(\n\t\t\tthis.entered.filter(this.isNodeInDocument),\n\t\t\tleavingNode,\n\t\t)\n\n\t\treturn previousLength > 0 && this.entered.length === 0\n\t}\n\n\tpublic reset(): void {\n\t\tthis.entered = []\n\t}\n}\n","import type { DragDropMonitor } from 'dnd-core'\n\nimport type { NativeItemConfig } from './nativeTypesConfig.js'\n\nexport class NativeDragSource {\n\tpublic item: any\n\tprivate config: NativeItemConfig\n\n\tpublic constructor(config: NativeItemConfig) {\n\t\tthis.config = config\n\t\tthis.item = {}\n\t\tthis.initializeExposedProperties()\n\t}\n\n\tprivate initializeExposedProperties() {\n\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\tObject.defineProperty(this.item, property, {\n\t\t\t\tconfigurable: true, // This is needed to allow redefining it later\n\t\t\t\tenumerable: true,\n\t\t\t\tget() {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Browser doesn't allow reading \"${property}\" until the drop event.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn null\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic loadDataTransfer(dataTransfer: DataTransfer | null | undefined): void {\n\t\tif (dataTransfer) {\n\t\t\tconst newProperties: PropertyDescriptorMap = {}\n\t\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\t\tconst propertyFn = this.config.exposeProperties[property]\n\t\t\t\tif (propertyFn != null) {\n\t\t\t\t\tnewProperties[property] = {\n\t\t\t\t\t\tvalue: propertyFn(dataTransfer, this.config.matchesTypes),\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tObject.defineProperties(this.item, newProperties)\n\t\t}\n\t}\n\n\tpublic canDrag(): boolean {\n\t\treturn true\n\t}\n\n\tpublic beginDrag(): any {\n\t\treturn this.item\n\t}\n\n\tpublic isDragging(monitor: DragDropMonitor, handle: string): boolean {\n\t\treturn handle === monitor.getSourceId()\n\t}\n\n\tpublic endDrag(): void {\n\t\t// empty\n\t}\n}\n","export const FILE = '__NATIVE_FILE__'\nexport const URL = '__NATIVE_URL__'\nexport const TEXT = '__NATIVE_TEXT__'\nexport const HTML = '__NATIVE_HTML__'\n","export function getDataFromDataTransfer(\n\tdataTransfer: DataTransfer,\n\ttypesToTry: string[],\n\tdefaultValue: string,\n): string {\n\tconst result = typesToTry.reduce(\n\t\t(resultSoFar, typeToTry) => resultSoFar || dataTransfer.getData(typeToTry),\n\t\t'',\n\t)\n\n\treturn result != null ? result : defaultValue\n}\n","import * as NativeTypes from '../NativeTypes.js'\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js'\n\nexport interface NativeItemConfigExposePropreties {\n\t[property: string]: (\n\t\tdataTransfer: DataTransfer,\n\t\tmatchesTypes: string[],\n\t) => any\n}\n\nexport interface NativeItemConfig {\n\texposeProperties: NativeItemConfigExposePropreties\n\tmatchesTypes: string[]\n}\n\nexport const nativeTypesConfig: {\n\t[key: string]: NativeItemConfig\n} = {\n\t[NativeTypes.FILE]: {\n\t\texposeProperties: {\n\t\t\tfiles: (dataTransfer: DataTransfer): File[] =>\n\t\t\t\tArray.prototype.slice.call(dataTransfer.files),\n\t\t\titems: (dataTransfer: DataTransfer): DataTransferItemList =>\n\t\t\t\tdataTransfer.items,\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Files'],\n\t},\n\t[NativeTypes.HTML]: {\n\t\texposeProperties: {\n\t\t\thtml: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Html', 'text/html'],\n\t},\n\t[NativeTypes.URL]: {\n\t\texposeProperties: {\n\t\t\turls: (dataTransfer: DataTransfer, matchesTypes: string[]): string[] =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n'),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Url', 'text/uri-list'],\n\t},\n\t[NativeTypes.TEXT]: {\n\t\texposeProperties: {\n\t\t\ttext: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Text', 'text/plain'],\n\t},\n}\n","import { NativeDragSource } from './NativeDragSource.js'\nimport { nativeTypesConfig } from './nativeTypesConfig.js'\n\nexport function createNativeDragSource(\n\ttype: string,\n\tdataTransfer?: DataTransfer,\n): NativeDragSource {\n\tconst config = nativeTypesConfig[type]\n\tif (!config) {\n\t\tthrow new Error(`native type ${type} has no configuration`)\n\t}\n\tconst result = new NativeDragSource(config)\n\tresult.loadDataTransfer(dataTransfer)\n\treturn result\n}\n\nexport function matchNativeItemType(\n\tdataTransfer: DataTransfer | null,\n): string | null {\n\tif (!dataTransfer) {\n\t\treturn null\n\t}\n\n\tconst dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || [])\n\treturn (\n\t\tObject.keys(nativeTypesConfig).filter((nativeItemType) => {\n\t\t\tconst typeConfig = nativeTypesConfig[nativeItemType]\n\t\t\tif (!typeConfig?.matchesTypes) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn typeConfig.matchesTypes.some(\n\t\t\t\t(t) => dataTransferTypes.indexOf(t) > -1,\n\t\t\t)\n\t\t})[0] || null\n\t)\n}\n","import { memoize } from './utils/js_utils.js'\n\ndeclare global {\n\tinterface Window extends HTMLElement {\n\t\tsafari: any\n\t}\n}\n\nexport type Predicate = () => boolean\nexport const isFirefox: Predicate = memoize(() =>\n\t/firefox/i.test(navigator.userAgent),\n)\nexport const isSafari: Predicate = memoize(() => Boolean(window.safari))\n","export class MonotonicInterpolant {\n\tprivate xs: any\n\tprivate ys: any\n\tprivate c1s: any\n\tprivate c2s: any\n\tprivate c3s: any\n\n\tpublic constructor(xs: number[], ys: number[]) {\n\t\tconst { length } = xs\n\n\t\t// Rearrange xs and ys so that xs is sorted\n\t\tconst indexes = []\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tindexes.push(i)\n\t\t}\n\t\tindexes.sort((a, b) => ((xs[a] as number) < (xs[b] as number) ? -1 : 1))\n\n\t\t// Get consecutive differences and slopes\n\t\tconst dys = []\n\t\tconst dxs = []\n\t\tconst ms = []\n\t\tlet dx\n\t\tlet dy\n\t\tfor (let i = 0; i < length - 1; i++) {\n\t\t\tdx = (xs[i + 1] as number) - (xs[i] as number)\n\t\t\tdy = (ys[i + 1] as number) - (ys[i] as number)\n\t\t\tdxs.push(dx)\n\t\t\tdys.push(dy)\n\t\t\tms.push(dy / dx)\n\t\t}\n\n\t\t// Get degree-1 coefficients\n\t\tconst c1s = [ms[0]]\n\t\tfor (let i = 0; i < dxs.length - 1; i++) {\n\t\t\tconst m2 = ms[i] as number\n\t\t\tconst mNext = ms[i + 1] as number\n\t\t\tif (m2 * mNext <= 0) {\n\t\t\t\tc1s.push(0)\n\t\t\t} else {\n\t\t\t\tdx = dxs[i] as number\n\t\t\t\tconst dxNext = dxs[i + 1] as number\n\t\t\t\tconst common = dx + dxNext\n\t\t\t\tc1s.push(\n\t\t\t\t\t(3 * common) / ((common + dxNext) / m2 + (common + dx) / mNext),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tc1s.push(ms[ms.length - 1])\n\n\t\t// Get degree-2 and degree-3 coefficients\n\t\tconst c2s = []\n\t\tconst c3s = []\n\t\tlet m\n\t\tfor (let i = 0; i < c1s.length - 1; i++) {\n\t\t\tm = ms[i] as number\n\t\t\tconst c1 = c1s[i] as number\n\t\t\tconst invDx = 1 / (dxs[i] as number)\n\t\t\tconst common = c1 + (c1s[i + 1] as number) - m - m\n\t\t\tc2s.push((m - c1 - common) * invDx)\n\t\t\tc3s.push(common * invDx * invDx)\n\t\t}\n\n\t\tthis.xs = xs\n\t\tthis.ys = ys\n\t\tthis.c1s = c1s\n\t\tthis.c2s = c2s\n\t\tthis.c3s = c3s\n\t}\n\n\tpublic interpolate(x: number): number {\n\t\tconst { xs, ys, c1s, c2s, c3s } = this\n\n\t\t// The rightmost point in the dataset should give an exact result\n\t\tlet i = xs.length - 1\n\t\tif (x === xs[i]) {\n\t\t\treturn ys[i]\n\t\t}\n\n\t\t// Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\t\tlet low = 0\n\t\tlet high = c3s.length - 1\n\t\tlet mid\n\t\twhile (low <= high) {\n\t\t\tmid = Math.floor(0.5 * (low + high))\n\t\t\tconst xHere = xs[mid]\n\t\t\tif (xHere < x) {\n\t\t\t\tlow = mid + 1\n\t\t\t} else if (xHere > x) {\n\t\t\t\thigh = mid - 1\n\t\t\t} else {\n\t\t\t\treturn ys[mid]\n\t\t\t}\n\t\t}\n\t\ti = Math.max(0, high)\n\n\t\t// Interpolate\n\t\tconst diff = x - xs[i]\n\t\tconst diffSq = diff * diff\n\t\treturn ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq\n\t}\n}\n","import type { XYCoord } from 'dnd-core'\n\nimport { isFirefox, isSafari } from './BrowserDetector.js'\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js'\n\nconst ELEMENT_NODE = 1\n\nexport function getNodeClientOffset(node: Node): XYCoord | null {\n\tconst el = node.nodeType === ELEMENT_NODE ? node : node.parentElement\n\n\tif (!el) {\n\t\treturn null\n\t}\n\n\tconst { top, left } = (el as HTMLElement).getBoundingClientRect()\n\treturn { x: left, y: top }\n}\n\nexport function getEventClientOffset(e: MouseEvent): XYCoord {\n\treturn {\n\t\tx: e.clientX,\n\t\ty: e.clientY,\n\t}\n}\n\nfunction isImageNode(node: any) {\n\treturn (\n\t\tnode.nodeName === 'IMG' &&\n\t\t(isFirefox() || !document.documentElement?.contains(node))\n\t)\n}\n\nfunction getDragPreviewSize(\n\tisImage: boolean,\n\tdragPreview: any,\n\tsourceWidth: number,\n\tsourceHeight: number,\n) {\n\tlet dragPreviewWidth = isImage ? dragPreview.width : sourceWidth\n\tlet dragPreviewHeight = isImage ? dragPreview.height : sourceHeight\n\n\t// Work around @2x coordinate discrepancies in browsers\n\tif (isSafari() && isImage) {\n\t\tdragPreviewHeight /= window.devicePixelRatio\n\t\tdragPreviewWidth /= window.devicePixelRatio\n\t}\n\treturn { dragPreviewWidth, dragPreviewHeight }\n}\n\nexport function getDragPreviewOffset(\n\tsourceNode: HTMLElement,\n\tdragPreview: HTMLElement,\n\tclientOffset: XYCoord,\n\tanchorPoint: { anchorX: number; anchorY: number },\n\toffsetPoint: { offsetX: number; offsetY: number },\n): XYCoord {\n\t// The browsers will use the image intrinsic size under different conditions.\n\t// Firefox only cares if it's an image, but WebKit also wants it to be detached.\n\tconst isImage = isImageNode(dragPreview)\n\tconst dragPreviewNode = isImage ? sourceNode : dragPreview\n\tconst dragPreviewNodeOffsetFromClient = getNodeClientOffset(\n\t\tdragPreviewNode,\n\t) as XYCoord\n\tconst offsetFromDragPreview = {\n\t\tx: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n\t\ty: clientOffset.y - dragPreviewNodeOffsetFromClient.y,\n\t}\n\tconst { offsetWidth: sourceWidth, offsetHeight: sourceHeight } = sourceNode\n\tconst { anchorX, anchorY } = anchorPoint\n\tconst { dragPreviewWidth, dragPreviewHeight } = getDragPreviewSize(\n\t\tisImage,\n\t\tdragPreview,\n\t\tsourceWidth,\n\t\tsourceHeight,\n\t)\n\n\tconst calculateYOffset = () => {\n\t\tconst interpolantY = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the top\n\t\t\t\toffsetFromDragPreview.y,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n\t\t\t\t// Dock to the bottom\n\t\t\t\toffsetFromDragPreview.y + dragPreviewHeight - sourceHeight,\n\t\t\t],\n\t\t)\n\t\tlet y = interpolantY.interpolate(anchorY)\n\t\t// Work around Safari 8 positioning bug\n\t\tif (isSafari() && isImage) {\n\t\t\t// We'll have to wait for @3x to see if this is entirely correct\n\t\t\ty += (window.devicePixelRatio - 1) * dragPreviewHeight\n\t\t}\n\t\treturn y\n\t}\n\n\tconst calculateXOffset = () => {\n\t\t// Interpolate coordinates depending on anchor point\n\t\t// If you know a simpler way to do this, let me know\n\t\tconst interpolantX = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the left\n\t\t\t\toffsetFromDragPreview.x,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n\t\t\t\t// Dock to the right\n\t\t\t\toffsetFromDragPreview.x + dragPreviewWidth - sourceWidth,\n\t\t\t],\n\t\t)\n\t\treturn interpolantX.interpolate(anchorX)\n\t}\n\n\t// Force offsets if specified in the options.\n\tconst { offsetX, offsetY } = offsetPoint\n\tconst isManualOffsetX = offsetX === 0 || offsetX\n\tconst isManualOffsetY = offsetY === 0 || offsetY\n\treturn {\n\t\tx: isManualOffsetX ? offsetX : calculateXOffset(),\n\t\ty: isManualOffsetY ? offsetY : calculateYOffset(),\n\t}\n}\n","import type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport class OptionsReader {\n\tpublic ownerDocument: Document | null = null\n\tprivate globalContext: HTML5BackendContext\n\tprivate optionsArgs: HTML5BackendOptions | undefined\n\n\tpublic constructor(\n\t\tglobalContext: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.globalContext = globalContext\n\t\tthis.optionsArgs = options\n\t}\n\n\tpublic get window(): Window | undefined {\n\t\tif (this.globalContext) {\n\t\t\treturn this.globalContext\n\t\t} else if (typeof window !== 'undefined') {\n\t\t\treturn window\n\t\t}\n\t\treturn undefined\n\t}\n\n\tpublic get document(): Document | undefined {\n\t\tif (this.globalContext?.document) {\n\t\t\treturn this.globalContext.document\n\t\t} else if (this.window) {\n\t\t\treturn this.window.document\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t}\n\n\tpublic get rootElement(): Node | undefined {\n\t\treturn this.optionsArgs?.rootElement || this.window\n\t}\n}\n","import type {\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js'\nimport {\n\tcreateNativeDragSource,\n\tmatchNativeItemType,\n} from './NativeDragSources/index.js'\nimport type { NativeDragSource } from './NativeDragSources/NativeDragSource.js'\nimport * as NativeTypes from './NativeTypes.js'\nimport {\n\tgetDragPreviewOffset,\n\tgetEventClientOffset,\n\tgetNodeClientOffset,\n} from './OffsetUtils.js'\nimport { OptionsReader } from './OptionsReader.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\ntype RootNode = Node & { __isReactDndBackendSetUp: boolean | undefined }\n\nexport class HTML5BackendImpl implements Backend {\n\tprivate options: OptionsReader\n\n\t// React-Dnd Components\n\tprivate actions: DragDropActions\n\tprivate monitor: DragDropMonitor\n\tprivate registry: HandlerRegistry\n\n\t// Internal State\n\tprivate enterLeaveCounter: EnterLeaveCounter\n\n\tprivate sourcePreviewNodes: Map<string, Element> = new Map()\n\tprivate sourcePreviewNodeOptions: Map<string, any> = new Map()\n\tprivate sourceNodes: Map<string, Element> = new Map()\n\tprivate sourceNodeOptions: Map<string, any> = new Map()\n\n\tprivate dragStartSourceIds: string[] | null = null\n\tprivate dropTargetIds: string[] = []\n\tprivate dragEnterTargetIds: string[] = []\n\tprivate currentNativeSource: NativeDragSource | null = null\n\tprivate currentNativeHandle: Identifier | null = null\n\tprivate currentDragSourceNode: Element | null = null\n\tprivate altKeyPressed = false\n\tprivate mouseMoveTimeoutTimer: number | null = null\n\tprivate asyncEndDragFrameId: number | null = null\n\tprivate dragOverTargetIds: string[] | null = null\n\n\tprivate lastClientOffset: XYCoord | null = null\n\tprivate hoverRafId: number | null = null\n\n\tpublic constructor(\n\t\tmanager: DragDropManager,\n\t\tglobalContext?: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.options = new OptionsReader(globalContext, options)\n\t\tthis.actions = manager.getActions()\n\t\tthis.monitor = manager.getMonitor()\n\t\tthis.registry = manager.getRegistry()\n\t\tthis.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument)\n\t}\n\n\t/**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */\n\tpublic profile(): Record<string, number> {\n\t\treturn {\n\t\t\tsourcePreviewNodes: this.sourcePreviewNodes.size,\n\t\t\tsourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n\t\t\tsourceNodeOptions: this.sourceNodeOptions.size,\n\t\t\tsourceNodes: this.sourceNodes.size,\n\t\t\tdragStartSourceIds: this.dragStartSourceIds?.length || 0,\n\t\t\tdropTargetIds: this.dropTargetIds.length,\n\t\t\tdragEnterTargetIds: this.dragEnterTargetIds.length,\n\t\t\tdragOverTargetIds: this.dragOverTargetIds?.length || 0,\n\t\t}\n\t}\n\n\t// public for test\n\tpublic get window(): Window | undefined {\n\t\treturn this.options.window\n\t}\n\tpublic get document(): Document | undefined {\n\t\treturn this.options.document\n\t}\n\t/**\n\t * Get the root element to use for event subscriptions\n\t */\n\tprivate get rootElement(): Node | undefined {\n\t\treturn this.options.rootElement as Node\n\t}\n\n\tpublic setup(): void {\n\t\tconst root = this.rootElement as RootNode | undefined\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\tif (root.__isReactDndBackendSetUp) {\n\t\t\tthrow new Error('Cannot have two HTML5 backends at the same time.')\n\t\t}\n\t\troot.__isReactDndBackendSetUp = true\n\t\tthis.addEventListeners(root)\n\t}\n\n\tpublic teardown(): void {\n\t\tconst root = this.rootElement as RootNode\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\troot.__isReactDndBackendSetUp = false\n\t\tthis.removeEventListeners(this.rootElement as Element)\n\t\tthis.clearCurrentDragSourceNode()\n\t\tif (this.asyncEndDragFrameId) {\n\t\t\tthis.window?.cancelAnimationFrame(this.asyncEndDragFrameId)\n\t\t}\n\t}\n\n\tpublic connectDragPreview(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourcePreviewNodeOptions.set(sourceId, options)\n\t\tthis.sourcePreviewNodes.set(sourceId, node)\n\n\t\treturn (): void => {\n\t\t\tthis.sourcePreviewNodes.delete(sourceId)\n\t\t\tthis.sourcePreviewNodeOptions.delete(sourceId)\n\t\t}\n\t}\n\n\tpublic connectDragSource(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourceNodes.set(sourceId, node)\n\t\tthis.sourceNodeOptions.set(sourceId, options)\n\n\t\tconst handleDragStart = (e: any) => this.handleDragStart(e, sourceId)\n\t\tconst handleSelectStart = (e: any) => this.handleSelectStart(e)\n\n\t\tnode.setAttribute('draggable', 'true')\n\t\tnode.addEventListener('dragstart', handleDragStart)\n\t\tnode.addEventListener('selectstart', handleSelectStart)\n\n\t\treturn (): void => {\n\t\t\tthis.sourceNodes.delete(sourceId)\n\t\t\tthis.sourceNodeOptions.delete(sourceId)\n\n\t\t\tnode.removeEventListener('dragstart', handleDragStart)\n\t\t\tnode.removeEventListener('selectstart', handleSelectStart)\n\t\t\tnode.setAttribute('draggable', 'false')\n\t\t}\n\t}\n\n\tpublic connectDropTarget(targetId: string, node: HTMLElement): Unsubscribe {\n\t\tconst handleDragEnter = (e: DragEvent) => this.handleDragEnter(e, targetId)\n\t\tconst handleDragOver = (e: DragEvent) => this.handleDragOver(e, targetId)\n\t\tconst handleDrop = (e: DragEvent) => this.handleDrop(e, targetId)\n\n\t\tnode.addEventListener('dragenter', handleDragEnter)\n\t\tnode.addEventListener('dragover', handleDragOver)\n\t\tnode.addEventListener('drop', handleDrop)\n\n\t\treturn (): void => {\n\t\t\tnode.removeEventListener('dragenter', handleDragEnter)\n\t\t\tnode.removeEventListener('dragover', handleDragOver)\n\t\t\tnode.removeEventListener('drop', handleDrop)\n\t\t}\n\t}\n\n\tprivate addEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.addEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.addEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStart as EventListener,\n\t\t)\n\t\ttarget.addEventListener('dragstart', this.handleTopDragStartCapture, true)\n\t\ttarget.addEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('dragover', this.handleTopDragOver as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate removeEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.removeEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.removeEventListener('dragstart', this.handleTopDragStart as any)\n\t\ttarget.removeEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStartCapture,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOver as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.removeEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate getCurrentSourceNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourceNodeOptions = this.sourceNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tdropEffect: this.altKeyPressed ? 'copy' : 'move',\n\t\t\t...(sourceNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getCurrentDropEffect() {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\t// It makes more sense to default to 'copy' for native resources\n\t\t\treturn 'copy'\n\t\t}\n\n\t\treturn this.getCurrentSourceNodeOptions().dropEffect\n\t}\n\n\tprivate getCurrentSourcePreviewNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tanchorX: 0.5,\n\t\t\tanchorY: 0.5,\n\t\t\tcaptureDraggingState: false,\n\t\t\t...(sourcePreviewNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getSourceClientOffset = (sourceId: string): XYCoord | null => {\n\t\tconst source = this.sourceNodes.get(sourceId)\n\t\treturn (source && getNodeClientOffset(source as HTMLElement)) || null\n\t}\n\n\tprivate isDraggingNativeItem() {\n\t\tconst itemType = this.monitor.getItemType()\n\t\treturn Object.keys(NativeTypes).some(\n\t\t\t(key: string) => (NativeTypes as any)[key] === itemType,\n\t\t)\n\t}\n\n\tprivate beginDragNativeItem(type: string, dataTransfer?: DataTransfer) {\n\t\tthis.clearCurrentDragSourceNode()\n\n\t\tthis.currentNativeSource = createNativeDragSource(type, dataTransfer)\n\t\tthis.currentNativeHandle = this.registry.addSource(\n\t\t\ttype,\n\t\t\tthis.currentNativeSource,\n\t\t)\n\t\tthis.actions.beginDrag([this.currentNativeHandle])\n\t}\n\n\tprivate endDragNativeItem = (): void => {\n\t\tif (!this.isDraggingNativeItem()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.actions.endDrag()\n\t\tif (this.currentNativeHandle) {\n\t\t\tthis.registry.removeSource(this.currentNativeHandle)\n\t\t}\n\t\tthis.currentNativeHandle = null\n\t\tthis.currentNativeSource = null\n\t}\n\n\tprivate isNodeInDocument = (node: Node | null | undefined): boolean => {\n\t\t// Check the node either in the main document or in the current context\n\t\treturn Boolean(\n\t\t\tnode &&\n\t\t\t\tthis.document &&\n\t\t\t\tthis.document.body &&\n\t\t\t\tthis.document.body.contains(node),\n\t\t)\n\t}\n\n\tprivate endDragIfSourceWasRemovedFromDOM = (): void => {\n\t\tconst node = this.currentDragSourceNode\n\t\tif (node == null || this.isNodeInDocument(node)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tprivate setCurrentDragSourceNode(node: Element | null) {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.currentDragSourceNode = node\n\n\t\t// A timeout of > 0 is necessary to resolve Firefox issue referenced\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\tconst MOUSE_MOVE_TIMEOUT = 1000\n\n\t\t// Receiving a mouse event in the middle of a dragging operation\n\t\t// means it has ended and the drag source node disappeared from DOM,\n\t\t// so the browser didn't dispatch the dragend event.\n\t\t//\n\t\t// We need to wait before we start listening for mousemove events.\n\t\t// This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n\t\t// immediately in some browsers.\n\t\t//\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\t//\n\t\tthis.mouseMoveTimeoutTimer = setTimeout(() => {\n\t\t\treturn this.rootElement?.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t}, MOUSE_MOVE_TIMEOUT) as any as number\n\t}\n\n\tprivate clearCurrentDragSourceNode() {\n\t\tif (this.currentDragSourceNode) {\n\t\t\tthis.currentDragSourceNode = null\n\n\t\t\tif (this.rootElement) {\n\t\t\t\tthis.window?.clearTimeout(this.mouseMoveTimeoutTimer || undefined)\n\t\t\t\tthis.rootElement.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\t\ttrue,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.mouseMoveTimeoutTimer = null\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate scheduleHover = (dragOverTargetIds: string[] | null) => {\n\t\tif (\n\t\t\tthis.hoverRafId === null &&\n\t\t\ttypeof requestAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tthis.hoverRafId = requestAnimationFrame(() => {\n\t\t\t\tif (this.monitor.isDragging()) {\n\t\t\t\t\tthis.actions.hover(dragOverTargetIds || [], {\n\t\t\t\t\t\tclientOffset: this.lastClientOffset,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hoverRafId = null\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate cancelHover = () => {\n\t\tif (\n\t\t\tthis.hoverRafId !== null &&\n\t\t\ttypeof cancelAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tcancelAnimationFrame(this.hoverRafId)\n\t\t\tthis.hoverRafId = null\n\t\t}\n\t}\n\n\tpublic handleTopDragStartCapture = (): void => {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.dragStartSourceIds = []\n\t}\n\n\tpublic handleDragStart(e: DragEvent, sourceId: string): void {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.dragStartSourceIds) {\n\t\t\tthis.dragStartSourceIds = []\n\t\t}\n\t\tthis.dragStartSourceIds.unshift(sourceId)\n\t}\n\n\tpublic handleTopDragStart = (e: DragEvent): void => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dragStartSourceIds } = this\n\t\tthis.dragStartSourceIds = null\n\n\t\tconst clientOffset = getEventClientOffset(e)\n\n\t\t// Avoid crashing if we missed a drop event or our previous drag died\n\t\tif (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t\tthis.cancelHover()\n\t\t}\n\n\t\t// Don't publish the source just yet (see why below)\n\t\tthis.actions.beginDrag(dragStartSourceIds || [], {\n\t\t\tpublishSource: false,\n\t\t\tgetSourceClientOffset: this.getSourceClientOffset,\n\t\t\tclientOffset,\n\t\t})\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (this.monitor.isDragging()) {\n\t\t\tif (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n\t\t\t\t// Use custom drag image if user specifies it.\n\t\t\t\t// If child drag source refuses drag but parent agrees,\n\t\t\t\t// use parent's node as drag image. Neither works in IE though.\n\t\t\t\tconst sourceId: string = this.monitor.getSourceId() as string\n\t\t\t\tconst sourceNode = this.sourceNodes.get(sourceId)\n\t\t\t\tconst dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode\n\n\t\t\t\tif (dragPreview) {\n\t\t\t\t\tconst { anchorX, anchorY, offsetX, offsetY } =\n\t\t\t\t\t\tthis.getCurrentSourcePreviewNodeOptions()\n\t\t\t\t\tconst anchorPoint = { anchorX, anchorY }\n\t\t\t\t\tconst offsetPoint = { offsetX, offsetY }\n\t\t\t\t\tconst dragPreviewOffset = getDragPreviewOffset(\n\t\t\t\t\t\tsourceNode as HTMLElement,\n\t\t\t\t\t\tdragPreview as HTMLElement,\n\t\t\t\t\t\tclientOffset,\n\t\t\t\t\t\tanchorPoint,\n\t\t\t\t\t\toffsetPoint,\n\t\t\t\t\t)\n\n\t\t\t\t\tdataTransfer.setDragImage(\n\t\t\t\t\t\tdragPreview,\n\t\t\t\t\t\tdragPreviewOffset.x,\n\t\t\t\t\t\tdragPreviewOffset.y,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Firefox won't drag without setting data\n\t\t\t\tdataTransfer?.setData('application/json', {} as any)\n\t\t\t} catch (err) {\n\t\t\t\t// IE doesn't support MIME types in setData\n\t\t\t}\n\n\t\t\t// Store drag source node so we can check whether\n\t\t\t// it is removed from DOM and trigger endDrag manually.\n\t\t\tthis.setCurrentDragSourceNode(e.target as Element)\n\n\t\t\t// Now we are ready to publish the drag source.. or are we not?\n\t\t\tconst { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions()\n\t\t\tif (!captureDraggingState) {\n\t\t\t\t// Usually we want to publish it in the next tick so that browser\n\t\t\t\t// is able to screenshot the current (not yet dragging) state.\n\t\t\t\t//\n\t\t\t\t// It also neatly avoids a situation where render() returns null\n\t\t\t\t// in the same tick for the source element, and browser freaks out.\n\t\t\t\tsetTimeout(() => this.actions.publishDragSource(), 0)\n\t\t\t} else {\n\t\t\t\t// In some cases the user may want to override this behavior, e.g.\n\t\t\t\t// to work around IE not supporting custom drag previews.\n\t\t\t\t//\n\t\t\t\t// When using a custom drag layer, the only way to prevent\n\t\t\t\t// the default drag preview from drawing in IE is to screenshot\n\t\t\t\t// the dragging state in which the node itself has zero opacity\n\t\t\t\t// and height. In this case, though, returning null from render()\n\t\t\t\t// will abruptly end the dragging, which is not obvious.\n\t\t\t\t//\n\t\t\t\t// This is the reason such behavior is strictly opt-in.\n\t\t\t\tthis.actions.publishDragSource()\n\t\t\t}\n\t\t} else if (nativeType) {\n\t\t\t// A native item (such as URL) dragged from inside the document\n\t\t\tthis.beginDragNativeItem(nativeType)\n\t\t} else if (\n\t\t\tdataTransfer &&\n\t\t\t!dataTransfer.types &&\n\t\t\t((e.target && !(e.target as Element).hasAttribute) ||\n\t\t\t\t!(e.target as Element).hasAttribute('draggable'))\n\t\t) {\n\t\t\t// Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n\t\t\t// Just let it drag. It's a native type (URL or text) and will be picked up in\n\t\t\t// dragenter handler.\n\t\t\treturn\n\t\t} else {\n\t\t\t// If by this time no drag source reacted, tell browser not to drag.\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\tpublic handleTopDragEndCapture = (): void => {\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\t// Firefox can dispatch this event in an infinite loop\n\t\t\t// if dragend handler does something like showing an alert.\n\t\t\t// Only proceed if we have not handled it already.\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDragEnterCapture = (e: DragEvent): void => {\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\n\t\tconst isFirstEnter = this.enterLeaveCounter.enter(e.target)\n\t\tif (!isFirstEnter || this.monitor.isDragging()) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (nativeType) {\n\t\t\t// A native item (such as file or URL) dragged from outside the document\n\t\t\tthis.beginDragNativeItem(nativeType, dataTransfer as DataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragEnter(_e: DragEvent, targetId: string): void {\n\t\tthis.dragEnterTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragEnter = (e: DragEvent): void => {\n\t\tconst { dragEnterTargetIds } = this\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\n\t\t// If the target changes position as the result of `dragenter`, `dragover` might still\n\t\t// get dispatched despite target being no longer there. The easy solution is to check\n\t\t// whether there actually is a target before firing `hover`.\n\t\tif (dragEnterTargetIds.length > 0) {\n\t\t\tthis.actions.hover(dragEnterTargetIds, {\n\t\t\t\tclientOffset: getEventClientOffset(e),\n\t\t\t})\n\t\t}\n\n\t\tconst canDrop = dragEnterTargetIds.some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// IE requires this to fire dragover events\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragOverCapture = (e: DragEvent): void => {\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragOver(_e: DragEvent, targetId: string): void {\n\t\tif (this.dragOverTargetIds === null) {\n\t\t\tthis.dragOverTargetIds = []\n\t\t}\n\t\tthis.dragOverTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragOver = (e: DragEvent): void => {\n\t\tconst { dragOverTargetIds } = this\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\t// Prevent default \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\t\tthis.lastClientOffset = getEventClientOffset(e)\n\n\t\tthis.scheduleHover(dragOverTargetIds)\n\n\t\tconst canDrop = (dragOverTargetIds || []).some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// Show user-specified drop effect.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t} else if (this.isDraggingNativeItem()) {\n\t\t\t// Don't show a nice cursor but still prevent default\n\t\t\t// \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t} else {\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragLeaveCapture = (e: DragEvent): void => {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tconst isLastLeave = this.enterLeaveCounter.leave(e.target)\n\t\tif (!isLastLeave) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tsetTimeout(() => this.endDragNativeItem(), 0)\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDropCapture = (e: DragEvent): void => {\n\t\tthis.dropTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t} else if (matchNativeItemType(e.dataTransfer)) {\n\t\t\t// Dragging some elements, like <a> and <img> may still behave like a native drag event,\n\t\t\t// even if the current drag event matches a user-defined type.\n\t\t\t// Stop the default behavior when we're not expecting a native item to be dropped.\n\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tthis.enterLeaveCounter.reset()\n\t}\n\n\tpublic handleDrop(_e: DragEvent, targetId: string): void {\n\t\tthis.dropTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDrop = (e: DragEvent): void => {\n\t\tconst { dropTargetIds } = this\n\t\tthis.dropTargetIds = []\n\n\t\tthis.actions.hover(dropTargetIds, {\n\t\t\tclientOffset: getEventClientOffset(e),\n\t\t})\n\t\tthis.actions.drop({ dropEffect: this.getCurrentDropEffect() })\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.endDragNativeItem()\n\t\t} else if (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleSelectStart = (e: DragEvent): void => {\n\t\tconst target = e.target as HTMLElement & { dragDrop: () => void }\n\n\t\t// Only IE requires us to explicitly say\n\t\t// we want drag drop operation to start\n\t\tif (typeof target.dragDrop !== 'function') {\n\t\t\treturn\n\t\t}\n\n\t\t// Inputs and textareas should be selectable\n\t\tif (\n\t\t\ttarget.tagName === 'INPUT' ||\n\t\t\ttarget.tagName === 'SELECT' ||\n\t\t\ttarget.tagName === 'TEXTAREA' ||\n\t\t\ttarget.isContentEditable\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\t// For other targets, ask IE\n\t\t// to enable drag and drop\n\t\te.preventDefault()\n\t\ttarget.dragDrop()\n\t}\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\n\nimport { HTML5BackendImpl } from './HTML5BackendImpl.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\nexport { getEmptyImage } from './getEmptyImage.js'\nexport * as NativeTypes from './NativeTypes.js'\nexport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport const HTML5Backend: BackendFactory = function createBackend(\n\tmanager: DragDropManager,\n\tcontext?: HTML5BackendContext,\n\toptions?: HTML5BackendOptions,\n): HTML5BackendImpl {\n\treturn new HTML5BackendImpl(manager, context, options)\n}\n","import React, { FC } from 'react';\nimport { IconButton, IconButtonProps, Tooltip } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props extends IconButtonProps {\n instance: MRT_TableInstance;\n}\n\nexport const MRT_FullScreenToggleButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { FullscreenExitIcon, FullscreenIcon },\n localization,\n },\n setIsFullScreen,\n } = instance;\n\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n options: {\n icons: { ViewColumnIcon },\n localization,\n },\n } = instance;\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 instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleDensePaddingButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { DensityLargeIcon, DensityMediumIcon, DensitySmallIcon },\n localization,\n },\n setDensity,\n } = instance;\n\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleFiltersButton: FC<Props> = ({ instance, ...rest }) => {\n const {\n getState,\n options: {\n icons: { FilterListIcon, FilterListOffIcon },\n localization,\n },\n setShowFilters,\n } = instance;\n\n const { showFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToggleGlobalFilterButton: FC<Props> = ({\n instance,\n ...rest\n}) => {\n const {\n getState,\n options: {\n icons: { SearchIcon, SearchOffIcon },\n tableId,\n localization,\n muiSearchTextFieldProps,\n },\n setShowGlobalFilter,\n } = instance;\n\n const { showGlobalFilter } = getState();\n\n const textFieldProps =\n muiSearchTextFieldProps instanceof Function\n ? muiSearchTextFieldProps({ instance })\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, {\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_GlobalFilterTextField: FC<Props> = ({ instance }) => {\n const {\n getState,\n setGlobalFilter,\n options: {\n enableGlobalFilterChangeMode,\n icons: { SearchIcon, CloseIcon },\n localization,\n muiSearchTextFieldProps,\n tableId,\n },\n } = instance;\n\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({ instance })\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 instance={instance}\n />\n </Collapse>\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarInternalButtons: FC<Props> = ({ instance }) => {\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 } = instance;\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 instance,\n }) ?? (\n <>\n {enableGlobalFilter && positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )}\n {enableFilters && enableGlobalFilter && (\n <MRT_ToggleGlobalFilterButton instance={instance} />\n )}\n {enableFilters && enableColumnFilters && (\n <MRT_ToggleFiltersButton instance={instance} />\n )}\n {(enableHiding || enableColumnOrdering || enablePinning) && (\n <MRT_ShowHideColumnsButton instance={instance} />\n )}\n {enableDensityToggle && (\n <MRT_ToggleDensePaddingButton instance={instance} />\n )}\n {enableFullScreenToggle && (\n <MRT_FullScreenToggleButton instance={instance} />\n )}\n </>\n )}\n </Box>\n );\n};\n","import React, { ChangeEvent, FC } from 'react';\nimport { TablePagination } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n instance: MRT_TableInstance;\n position: 'top' | 'bottom';\n}\n\nexport const MRT_TablePagination: FC<Props> = ({ instance, position }) => {\n const {\n getPrePaginationRowModel,\n getState,\n setPageIndex,\n setPageSize,\n options: {\n muiTablePaginationProps,\n enableToolbarInternalActions,\n rowCount,\n },\n } = instance;\n\n const {\n pagination: { pageSize = 10, pageIndex = 0 },\n showGlobalFilter,\n } = getState();\n\n const tablePaginationProps =\n muiTablePaginationProps instanceof Function\n ? muiTablePaginationProps({ instance })\n : muiTablePaginationProps;\n\n const handleChangeRowsPerPage = (event: ChangeEvent<HTMLInputElement>) => {\n setPageSize(+event.target.value);\n };\n\n const totalRowCount = rowCount ?? getPrePaginationRowModel().rows.length;\n\n const showFirstLastPageButtons = totalRowCount / pageSize > 2;\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={{\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,\n }}\n />\n );\n};\n","import React, { FC, Fragment } from 'react';\nimport { Alert, Box, Chip, Collapse } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n stackAlertBanner?: boolean;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarAlertBanner: FC<Props> = ({\n stackAlertBanner,\n instance,\n}) => {\n const {\n getPrePaginationRowModel,\n getSelectedRowModel,\n getState,\n options: { localization, muiTableToolbarAlertBannerProps },\n } = instance;\n\n const { grouping, showAlertBanner } = getState();\n\n const alertProps =\n muiTableToolbarAlertBannerProps instanceof Function\n ? muiTableToolbarAlertBannerProps({ instance })\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={instance.getColumn(columnId).columnDef.header}\n onDelete={() => instance.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 sx={{\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,\n }}\n {...alertProps}\n >\n <Box sx={{ p: '0.5rem 1rem' }}>\n {selectMessage}\n {selectMessage && groupedByMessage && <br />}\n {groupedByMessage}\n </Box>\n </Alert>\n </Collapse>\n );\n};\n","import React, { FC } from 'react';\nimport { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n alignTo: 'bottom' | 'top';\n instance: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ alignTo, instance }) => {\n const {\n options: { muiLinearProgressProps },\n getState,\n } = instance;\n\n const { isLoading, showProgressBars } = getState();\n\n const linearProgressProps =\n muiLinearProgressProps instanceof Function\n ? muiLinearProgressProps({ instance })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: alignTo === 'bottom' ? 0 : undefined,\n position: 'absolute',\n top: alignTo === 'top' ? 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, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarTop: FC<Props> = ({ instance }) => {\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 } = instance;\n\n const { isFullScreen, showGlobalFilter } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarTopProps instanceof Function\n ? muiTableToolbarTopProps({ instance })\n : muiTableToolbarTopProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'top' &&\n (!!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,\n } as any)\n }\n >\n {positionToolbarAlertBanner === 'top' && (\n <MRT_ToolbarAlertBanner\n stackAlertBanner={stackAlertBanner}\n instance={instance}\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 instance={instance} />\n )}\n\n {renderToolbarTopCustomActions?.({ instance }) ?? <span />}\n {enableToolbarInternalActions ? (\n <MRT_ToolbarInternalButtons instance={instance} />\n ) : (\n enableGlobalFilter &&\n positionGlobalFilter === 'right' && (\n <MRT_GlobalFilterTextField instance={instance} />\n )\n )}\n </Box>\n {enablePagination &&\n ['top', 'both'].includes(positionPagination ?? '') && (\n <MRT_TablePagination instance={instance} position=\"top\" />\n )}\n <MRT_LinearProgressBar alignTo=\"bottom\" instance={instance} />\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_ToolbarBottom: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enablePagination,\n muiTableToolbarBottomProps,\n positionPagination,\n positionToolbarAlertBanner,\n renderToolbarBottomCustomActions,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const isMobile = useMediaQuery('(max-width:720px)');\n\n const toolbarProps =\n muiTableToolbarBottomProps instanceof Function\n ? muiTableToolbarBottomProps({ instance })\n : muiTableToolbarBottomProps;\n\n const stackAlertBanner =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!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,\n } as any)\n }\n >\n <MRT_LinearProgressBar alignTo=\"top\" instance={instance} />\n {positionToolbarAlertBanner === 'bottom' && (\n <MRT_ToolbarAlertBanner instance={instance} />\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({ instance })}\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 instance={instance} position=\"bottom\" />\n )}\n </Box>\n </Box>\n </Toolbar>\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterTextField: FC<Props> = ({\n header,\n inputIndex,\n instance,\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 } = instance;\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const { currentFilterFns } = getState();\n\n const [anchorEl, setAnchorEl] = useState<null | HTMLElement>(null);\n\n const mTableHeadCellFilterTextFieldProps =\n muiTableHeadCellFilterTextFieldProps instanceof Function\n ? muiTableHeadCellFilterTextFieldProps({ column, instance })\n : muiTableHeadCellFilterTextFieldProps;\n\n const mcTableHeadCellFilterTextFieldProps =\n columnDef.muiTableHeadCellFilterTextFieldProps instanceof Function\n ? columnDef.muiTableHeadCellFilterTextFieldProps({\n column,\n instance,\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 if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.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, instance })}</>;\n }\n\n const filterId = `mrt-${tableId}-${header.id}-filter-text-field${\n inputIndex ?? ''\n }`;\n const filterFn = currentFilterFns?.[header.id];\n const isSelectFilter = !!columnDef.filterSelectOptions;\n const filterChipLabel =\n !(filterFn instanceof Function) && ['empty', 'notEmpty'].includes(filterFn)\n ? //@ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\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 {filterFn instanceof Function\n ? localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.name.charAt(0).toUpperCase() +\n filterFn.name.slice(1)\n }`\n ] ?? '',\n ) ?? ''\n : localization.filterMode.replace(\n '{filterType}',\n // @ts-ignore\n localization[\n `filter${\n filterFn.charAt(0).toUpperCase() + filterFn.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={{\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,\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 instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_FilterRangeFields: FC<Props> = ({ header, instance }) => {\n return (\n <Box sx={{ display: 'grid', gridTemplateColumns: '6fr 6fr', gap: '1rem' }}>\n <MRT_FilterTextField header={header} inputIndex={0} instance={instance} />\n <MRT_FilterTextField header={header} inputIndex={1} instance={instance} />\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterContainer: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { currentFilterFns, showFilters } = getState();\n\n const { column } = header;\n\n return (\n <Collapse in={showFilters} mountOnEnter unmountOnExit>\n {currentFilterFns[column.id] === 'between' ? (\n <MRT_FilterRangeFields header={header} instance={instance} />\n ) : (\n <MRT_FilterTextField header={header} instance={instance} />\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellFilterLabel: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n getState,\n options: {\n icons: { FilterAltIcon },\n localization,\n },\n } = instance;\n\n const { currentFilterFns } = getState();\n\n const { column } = header;\n\n const { columnDef } = column;\n\n const filterFn = currentFilterFns?.[header.id];\n\n const filterTooltip = localization.filteringByColumn\n .replace('{column}', String(columnDef.header))\n .replace(\n '{filterType}',\n filterFn instanceof Function\n ? ''\n : // @ts-ignore\n localization[\n `filter${filterFn.charAt(0).toUpperCase() + filterFn.slice(1)}`\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() && filterFn !== 'between') ||\n (filterFn === '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, { FC } from 'react';\nimport { Divider, Theme } from '@mui/material';\nimport { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellResizeHandle: FC<Props> = ({\n header,\n instance,\n}) => {\n const { getState } = instance;\n\n const { density, showFilters } = getState();\n\n const { column } = header;\n\n const { columnDefType } = column;\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: showFilters && 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(${getState().columnSizingInfo.deltaOffset}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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellSortLabel: FC<Props> = ({ header, instance }) => {\n const {\n options: { localization },\n } = instance;\n\n const { column } = header;\n\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, { 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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadCellColumnActionsButton: FC<Props> = ({\n header,\n instance,\n}) => {\n const {\n options: {\n icons: { MoreVertIcon },\n localization,\n muiTableHeadCellColumnActionsButtonProps,\n },\n } = instance;\n\n const { column } = header;\n\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, instance })\n : muiTableHeadCellColumnActionsButtonProps;\n\n const mcTableHeadCellColumnActionsButtonProps =\n columnDef.muiTableHeadCellColumnActionsButtonProps instanceof Function\n ? columnDef.muiTableHeadCellColumnActionsButtonProps({\n column,\n instance,\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={{\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,\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </Tooltip>\n <MRT_ColumnActionMenu\n anchorEl={anchorEl}\n header={header}\n setAnchorEl={setAnchorEl}\n instance={instance}\n />\n </>\n );\n};\n","import React, { FC, ReactNode, Ref } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n dragRef?: Ref<HTMLButtonElement>;\n dropRef?: Ref<HTMLDivElement>;\n header: MRT_Header;\n instance: MRT_TableInstance;\n isDragging?: boolean;\n previewRef?: Ref<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({\n dragRef,\n dropRef,\n header,\n instance,\n isDragging,\n previewRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n } = instance;\n\n const { density, showFilters } = getState();\n\n const { column } = header;\n\n const { columnDef, columnDefType } = column;\n\n const mTableHeadCellProps =\n muiTableHeadCellProps instanceof Function\n ? muiTableHeadCellProps({ column, instance })\n : muiTableHeadCellProps;\n\n const mcTableHeadCellProps =\n columnDef.muiTableHeadCellProps instanceof Function\n ? columnDef.muiTableHeadCellProps({ column, instance })\n : columnDef.muiTableHeadCellProps;\n\n const tableCellProps = {\n ...mTableHeadCellProps,\n ...mcTableHeadCellProps,\n };\n\n const headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n instance,\n })\n : columnDef?.Header) ??\n header.renderHeader() ??\n columnDef.header) as ReactNode;\n\n const getIsLastLeftPinnedColumn = () => {\n return (\n column.getIsPinned() === 'left' &&\n instance.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 (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\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 height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\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 !== 'data'\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 ? 'none' : undefined,\n verticalAlign:\n columnDefType === 'display' && showFilters ? 'center' : 'text-top',\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\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 : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n ref={previewRef}\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n opacity: isDragging ? 0.5 : 1,\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 whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} instance={instance} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel\n header={header}\n instance={instance}\n />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n instance={instance}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n instance={instance}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle\n header={header}\n instance={instance}\n />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} instance={instance} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Column, MRT_Header, MRT_TableInstance } from '..';\nimport { reorderColumn } from '../utils';\n\ninterface Props {\n header: MRT_Header;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_DraggableTableHeadCell: FC<Props> = ({ header, instance }) => {\n const { getState, setColumnOrder } = instance;\n\n const { columnOrder } = getState();\n\n const { column } = header;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [{ isDragging }, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n return (\n <MRT_TableHeadCell\n dragRef={dragRef}\n dropRef={dropRef}\n header={header}\n isDragging={isDragging}\n previewRef={previewRef}\n instance={instance}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { MRT_DraggableTableHeadCell } from './MRT_DraggableTableHeadCell';\nimport type { MRT_Header, MRT_HeaderGroup, MRT_TableInstance } from '..';\n\ninterface Props {\n headerGroup: MRT_HeaderGroup;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHeadRow: FC<Props> = ({ headerGroup, instance }) => {\n const {\n options: { enableColumnOrdering, enableGrouping, muiTableHeadRowProps },\n } = instance;\n\n const tableRowProps =\n muiTableHeadRowProps instanceof Function\n ? muiTableHeadRowProps({ headerGroup, instance })\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 enableColumnOrdering || enableGrouping ? (\n <MRT_DraggableTableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\n ) : (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n instance={instance}\n />\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableHead: FC<Props> = ({ instance }) => {\n const {\n getHeaderGroups,\n options: { muiTableHeadProps },\n } = instance;\n\n const tableHeadProps =\n muiTableHeadProps instanceof Function\n ? muiTableHeadProps({ instance })\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 instance={instance}\n />\n ))}\n </TableHead>\n );\n};\n","var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes =\n/*#__PURE__*/\nnew Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","import React from 'react'\n\nexport default typeof window !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect\n","import React from 'react'\nimport observeRect from '@reach/observe-rect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nexport default function useRect(\n nodeRef,\n initialRect = { width: 0, height: 0 }\n) {\n const [element, setElement] = React.useState(nodeRef.current)\n const [rect, dispatch] = React.useReducer(rectReducer, initialRect)\n const initialRectSet = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (nodeRef.current !== element) {\n setElement(nodeRef.current)\n }\n })\n\n useIsomorphicLayoutEffect(() => {\n if (element && !initialRectSet.current) {\n initialRectSet.current = true\n const rect = element.getBoundingClientRect()\n dispatch({ rect })\n }\n }, [element])\n\n React.useEffect(() => {\n if (!element) {\n return\n }\n\n const observer = observeRect(element, rect => {\n dispatch({ rect })\n })\n\n observer.observe()\n\n return () => {\n observer.unobserve()\n }\n }, [element])\n\n return rect\n}\n\nfunction rectReducer(state, action) {\n const rect = action.rect\n if (state.height !== rect.height || state.width !== rect.width) {\n return rect\n }\n return state\n}\n","import React from 'react'\nimport useRect from './useRect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nconst defaultEstimateSize = () => 50\n\nconst defaultKeyExtractor = index => index\n\nconst defaultMeasureSize = (el, horizontal) => {\n const key = horizontal ? 'offsetWidth' : 'offsetHeight'\n\n return el[key]\n}\n\nexport const defaultRangeExtractor = range => {\n const start = Math.max(range.start - range.overscan, 0)\n const end = Math.min(range.end + range.overscan, range.size - 1)\n\n const arr = []\n\n for (let i = start; i <= end; i++) {\n arr.push(i)\n }\n\n return arr\n}\n\nexport function useVirtual({\n size = 0,\n estimateSize = defaultEstimateSize,\n overscan = 1,\n paddingStart = 0,\n paddingEnd = 0,\n parentRef,\n horizontal,\n scrollToFn,\n useObserver,\n initialRect,\n onScrollElement,\n scrollOffsetFn,\n keyExtractor = defaultKeyExtractor,\n measureSize = defaultMeasureSize,\n rangeExtractor = defaultRangeExtractor,\n}) {\n const sizeKey = horizontal ? 'width' : 'height'\n const scrollKey = horizontal ? 'scrollLeft' : 'scrollTop'\n\n const latestRef = React.useRef({\n scrollOffset: 0,\n measurements: [],\n })\n\n const [scrollOffset, setScrollOffset] = React.useState(0)\n latestRef.current.scrollOffset = scrollOffset\n\n const useMeasureParent = useObserver || useRect\n\n const { [sizeKey]: outerSize } = useMeasureParent(parentRef, initialRect)\n\n latestRef.current.outerSize = outerSize\n\n const defaultScrollToFn = React.useCallback(\n offset => {\n if (parentRef.current) {\n parentRef.current[scrollKey] = offset\n }\n },\n [parentRef, scrollKey]\n )\n\n const resolvedScrollToFn = scrollToFn || defaultScrollToFn\n\n scrollToFn = React.useCallback(\n offset => {\n resolvedScrollToFn(offset, defaultScrollToFn)\n },\n [defaultScrollToFn, resolvedScrollToFn]\n )\n\n const [measuredCache, setMeasuredCache] = React.useState({})\n\n const measure = React.useCallback(() => setMeasuredCache({}), [])\n\n const pendingMeasuredCacheIndexesRef = React.useRef([])\n\n const measurements = React.useMemo(() => {\n const min =\n pendingMeasuredCacheIndexesRef.current.length > 0\n ? Math.min(...pendingMeasuredCacheIndexesRef.current)\n : 0\n pendingMeasuredCacheIndexesRef.current = []\n\n const measurements = latestRef.current.measurements.slice(0, min)\n\n for (let i = min; i < size; i++) {\n const key = keyExtractor(i)\n const measuredSize = measuredCache[key]\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart\n const size =\n typeof measuredSize === 'number' ? measuredSize : estimateSize(i)\n const end = start + size\n measurements[i] = { index: i, start, size, end, key }\n }\n return measurements\n }, [estimateSize, measuredCache, paddingStart, size, keyExtractor])\n\n const totalSize = (measurements[size - 1]?.end || paddingStart) + paddingEnd\n\n latestRef.current.measurements = measurements\n latestRef.current.totalSize = totalSize\n\n const element = onScrollElement ? onScrollElement.current : parentRef.current\n\n const scrollOffsetFnRef = React.useRef(scrollOffsetFn)\n scrollOffsetFnRef.current = scrollOffsetFn\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n setScrollOffset(0)\n\n return\n }\n\n const onScroll = event => {\n const offset = scrollOffsetFnRef.current\n ? scrollOffsetFnRef.current(event)\n : element[scrollKey]\n\n setScrollOffset(offset)\n }\n\n onScroll()\n\n element.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true,\n })\n\n return () => {\n element.removeEventListener('scroll', onScroll)\n }\n }, [element, scrollKey])\n\n const { start, end } = calculateRange(latestRef.current)\n\n const indexes = React.useMemo(\n () =>\n rangeExtractor({\n start,\n end,\n overscan,\n size: measurements.length,\n }),\n [start, end, overscan, measurements.length, rangeExtractor]\n )\n\n const measureSizeRef = React.useRef(measureSize)\n measureSizeRef.current = measureSize\n\n const virtualItems = React.useMemo(() => {\n const virtualItems = []\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k]\n const measurement = measurements[i]\n\n const item = {\n ...measurement,\n measureRef: el => {\n if (el) {\n const measuredSize = measureSizeRef.current(el, horizontal)\n\n if (measuredSize !== item.size) {\n const { scrollOffset } = latestRef.current\n\n if (item.start < scrollOffset) {\n defaultScrollToFn(scrollOffset + (measuredSize - item.size))\n }\n\n pendingMeasuredCacheIndexesRef.current.push(i)\n\n setMeasuredCache(old => ({\n ...old,\n [item.key]: measuredSize,\n }))\n }\n }\n },\n }\n\n virtualItems.push(item)\n }\n\n return virtualItems\n }, [indexes, defaultScrollToFn, horizontal, measurements])\n\n const mountedRef = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n setMeasuredCache({})\n }\n mountedRef.current = true\n }, [estimateSize])\n\n const scrollToOffset = React.useCallback(\n (toOffset, { align = 'start' } = {}) => {\n const { scrollOffset, outerSize } = latestRef.current\n\n if (align === 'auto') {\n if (toOffset <= scrollOffset) {\n align = 'start'\n } else if (toOffset >= scrollOffset + outerSize) {\n align = 'end'\n } else {\n align = 'start'\n }\n }\n\n if (align === 'start') {\n scrollToFn(toOffset)\n } else if (align === 'end') {\n scrollToFn(toOffset - outerSize)\n } else if (align === 'center') {\n scrollToFn(toOffset - outerSize / 2)\n }\n },\n [scrollToFn]\n )\n\n const tryScrollToIndex = React.useCallback(\n (index, { align = 'auto', ...rest } = {}) => {\n const { measurements, scrollOffset, outerSize } = latestRef.current\n\n const measurement = measurements[Math.max(0, Math.min(index, size - 1))]\n\n if (!measurement) {\n return\n }\n\n if (align === 'auto') {\n if (measurement.end >= scrollOffset + outerSize) {\n align = 'end'\n } else if (measurement.start <= scrollOffset) {\n align = 'start'\n } else {\n return\n }\n }\n\n const toOffset =\n align === 'center'\n ? measurement.start + measurement.size / 2\n : align === 'end'\n ? measurement.end\n : measurement.start\n\n scrollToOffset(toOffset, { align, ...rest })\n },\n [scrollToOffset, size]\n )\n\n const scrollToIndex = React.useCallback(\n (...args) => {\n // We do a double request here because of\n // dynamic sizes which can cause offset shift\n // and end up in the wrong spot. Unfortunately,\n // we can't know about those dynamic sizes until\n // we try and render them. So double down!\n tryScrollToIndex(...args)\n requestAnimationFrame(() => {\n tryScrollToIndex(...args)\n })\n },\n [tryScrollToIndex]\n )\n\n return {\n virtualItems,\n totalSize,\n scrollToOffset,\n scrollToIndex,\n measure,\n }\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n let middle = ((low + high) / 2) | 0\n let currentValue = getCurrentValue(middle)\n\n if (currentValue < value) {\n low = middle + 1\n } else if (currentValue > value) {\n high = middle - 1\n } else {\n return middle\n }\n }\n\n if (low > 0) {\n return low - 1\n } else {\n return 0\n }\n}\n\nfunction calculateRange({ measurements, outerSize, scrollOffset }) {\n const size = measurements.length - 1\n const getOffset = index => measurements[index].start\n\n let start = findNearestBinarySearch(0, size, getOffset, scrollOffset)\n let end = start\n\n while (end < size && measurements[end].end < scrollOffset + outerSize) {\n end++\n }\n\n return { start, end }\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_EditCellTextField: FC<Props> = ({ cell, instance }) => {\n const {\n getState,\n options: {\n tableId,\n enableEditing,\n muiTableBodyCellEditTextFieldProps,\n onCellEditBlur,\n onCellEditChange,\n },\n setCurrentEditingCell,\n setCurrentEditingRow,\n } = instance;\n\n const [value, setValue] = useState(cell.getValue());\n\n const { column, row } = cell;\n\n const { columnDef } = column;\n\n const handleChange = (event: ChangeEvent<HTMLInputElement>) => {\n setValue(event.target.value);\n columnDef.onCellEditChange?.({ event, cell, instance });\n onCellEditChange?.({ event, cell, instance });\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, instance });\n onCellEditBlur?.({ event, cell, instance });\n };\n\n const mTableBodyCellEditTextFieldProps =\n muiTableBodyCellEditTextFieldProps instanceof Function\n ? muiTableBodyCellEditTextFieldProps({ cell, instance })\n : muiTableBodyCellEditTextFieldProps;\n\n const mcTableBodyCellEditTextFieldProps =\n columnDef.muiTableBodyCellEditTextFieldProps instanceof Function\n ? columnDef.muiTableBodyCellEditTextFieldProps({\n cell,\n instance,\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, instance })}</>;\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_CopyButton: FC<Props> = ({ cell, children, instance }) => {\n const {\n options: { localization, muiTableBodyCellCopyButtonProps },\n } = instance;\n\n const { column } = cell;\n\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, instance })\n : muiTableBodyCellCopyButtonProps;\n\n const mcTableBodyCellCopyButtonProps =\n columnDef.muiTableBodyCellCopyButtonProps instanceof Function\n ? columnDef.muiTableBodyCellCopyButtonProps({\n cell,\n instance,\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 aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\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,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { useDrop } from 'react-dnd';\nimport { alpha, darken, lighten, Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Cell, MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n instance,\n}) => {\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 setColumnOrder,\n setCurrentEditingCell,\n } = instance;\n\n const {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n\n const { column, row } = cell;\n\n const { columnDef, columnDefType } = column;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const mTableCellBodyProps =\n muiTableBodyCellProps instanceof Function\n ? muiTableBodyCellProps({ cell, instance })\n : muiTableBodyCellProps;\n\n const mcTableCellBodyProps =\n columnDef.muiTableBodyCellProps instanceof Function\n ? columnDef.muiTableBodyCellProps({ cell, instance })\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 [columnDefType, column.getSize()],\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 instance.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 (instance.getRightLeafHeaders().length - 1 - column.getPinnedIndex()) *\n 150\n );\n };\n\n return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\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 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-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: column.getIsPinned() ? 1 : 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 as any),\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 {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 ) : columnDefType === 'display' ? (\n columnDef.Cell?.({ cell, instance })\n ) : cell.getIsPlaceholder() ||\n (row.getIsGrouped() &&\n column.id !==\n row.groupingColumnId) ? null : cell.getIsAggregated() ? (\n columnDef.AggregatedCell?.({ cell, instance }) ??\n cell.renderAggregatedCell()\n ) : isEditing ? (\n <MRT_EditCellTextField cell={cell} instance={instance} />\n ) : (enableClickToCopy || columnDef.enableClickToCopy) &&\n columnDef.enableClickToCopy !== false ? (\n <>\n <MRT_CopyButton cell={cell} instance={instance}>\n <>{columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}</>\n </MRT_CopyButton>\n {row.getIsGrouped() && <> ({row.subRows?.length})</>}\n </>\n ) : (\n <>\n {columnDef?.Cell?.({ cell, instance }) ?? cell.renderCell()}\n {row.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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableDetailPanel: FC<Props> = ({ row, instance }) => {\n const {\n getVisibleLeafColumns,\n options: {\n muiTableBodyRowProps,\n muiTableDetailPanelProps,\n renderDetailPanel,\n },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n const tableCellProps =\n muiTableDetailPanelProps instanceof Function\n ? muiTableDetailPanelProps({ row, instance })\n : muiTableDetailPanelProps;\n\n return (\n <TableRow {...tableRowProps}>\n <TableCell\n colSpan={getVisibleLeafColumns().length}\n {...tableCellProps}\n sx={{\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: `${instance.getTotalSize()}px`,\n ...tableCellProps?.sx,\n }}\n >\n {renderDetailPanel && (\n <Collapse in={row.getIsExpanded()}>\n {renderDetailPanel({ row, instance })}\n </Collapse>\n )}\n </TableCell>\n </TableRow>\n );\n};\n","import React, { FC } from 'react';\nimport { darken, lighten, TableRow } 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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyRow: FC<Props> = ({ row, rowIndex, instance }) => {\n const {\n getIsSomeColumnsPinned,\n options: { muiTableBodyRowProps, renderDetailPanel },\n } = instance;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, instance })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\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 as any),\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 instance={instance}\n />\n ))}\n </TableRow>\n {renderDetailPanel && !row.getIsGrouped() && (\n <MRT_TableDetailPanel row={row} instance={instance} />\n )}\n </>\n );\n};\n","import { compareItems, RankingInfo } from '@tanstack/match-sorter-utils';\nimport { Row, sortingFns } from '@tanstack/react-table';\nimport type { MRT_Row } from '.';\n\nconst fuzzy = (rowA: MRT_Row, rowB: MRT_Row, columnId: string) => {\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 fuzzy,\n};\n\nexport const rankGlobalFuzzy = (rowA: MRT_Row, rowB: MRT_Row) =>\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 React, { FC, RefObject, useMemo } from 'react';\nimport { useVirtual } from 'react-virtual';\nimport { TableBody } from '@mui/material';\nimport { MRT_TableBodyRow } from './MRT_TableBodyRow';\nimport type { MRT_Row, MRT_TableInstance } from '..';\nimport { rankGlobalFuzzy } from '../sortingFns';\n\ninterface Props {\n instance: MRT_TableInstance;\n tableContainerRef: RefObject<HTMLDivElement>;\n}\n\nexport const MRT_TableBody: FC<Props> = ({ instance, tableContainerRef }) => {\n const {\n getRowModel,\n getPrePaginationRowModel,\n getState,\n options: {\n enableGlobalFilterRankedResults,\n enablePagination,\n enableRowVirtualization,\n muiTableBodyProps,\n virtualizerProps,\n },\n } = instance;\n\n const { density, globalFilter, pagination, sorting } = getState();\n\n const tableBodyProps =\n muiTableBodyProps instanceof Function\n ? muiTableBodyProps({ instance })\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 overscan: density === 'compact' ? 20 : 10,\n size: rows.length,\n parentRef: tableContainerRef,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const { virtualItems: virtualRows } = rowVirtualizer;\n const paddingTop = virtualRows?.length > 0 ? virtualRows[0].start : 0;\n const paddingBottom =\n virtualRows?.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {/* @ts-ignore */}\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 instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterCell: FC<Props> = ({ footer, instance }) => {\n const {\n getState,\n options: { muiTableFooterCellProps, enableColumnResizing },\n } = instance;\n\n const { density } = getState();\n\n const { column } = footer;\n\n const { columnDef, columnDefType } = column;\n\n const mTableFooterCellProps =\n muiTableFooterCellProps instanceof Function\n ? muiTableFooterCellProps({ column, instance })\n : muiTableFooterCellProps;\n\n const mcTableFooterCellProps =\n columnDef.muiTableFooterCellProps instanceof Function\n ? columnDef.muiTableFooterCellProps({ column, instance })\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 as any),\n })}\n >\n <>\n {footer.isPlaceholder\n ? null\n : (columnDef.Footer instanceof Function\n ? columnDef.Footer?.({\n footer,\n instance,\n })\n : columnDef.Footer) ??\n columnDef.footer ??\n footer.renderFooter() ??\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooterRow: FC<Props> = ({ footerGroup, instance }) => {\n const {\n options: { muiTableFooterRowProps },\n } = instance;\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, instance })\n : muiTableFooterRowProps;\n\n return (\n <TableRow {...tableRowProps}>\n {footerGroup.headers.map((footer: MRT_Header) => (\n <MRT_TableFooterCell\n footer={footer}\n key={footer.id}\n instance={instance}\n />\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableFooter: FC<Props> = ({ instance }) => {\n const {\n getFooterGroups,\n\n options: { muiTableFooterProps },\n } = instance;\n\n const tableFooterProps =\n muiTableFooterProps instanceof Function\n ? muiTableFooterProps({ instance })\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 instance={instance}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_Table: FC<Props> = ({ tableContainerRef, instance }) => {\n const {\n getState,\n options: {\n enableColumnResizing,\n enableRowVirtualization,\n enableStickyHeader,\n enableTableFooter,\n enableTableHead,\n muiTableProps,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const tableProps =\n muiTableProps instanceof Function\n ? muiTableProps({ instance })\n : muiTableProps;\n\n return (\n <Table\n stickyHeader={\n enableStickyHeader || enableRowVirtualization || isFullScreen\n }\n {...tableProps}\n sx={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\n }}\n >\n {enableTableHead && <MRT_TableHead instance={instance} />}\n <MRT_TableBody\n tableContainerRef={tableContainerRef}\n instance={instance}\n />\n {enableTableFooter && <MRT_TableFooter instance={instance} />}\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TableContainer: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: {\n enableStickyHeader,\n enableRowVirtualization,\n muiTableContainerProps,\n tableId,\n },\n } = instance;\n\n const { isFullScreen } = getState();\n\n const [totalToolbarHeight, setTotalToolbarHeight] = useState(0);\n\n const tableContainerProps =\n muiTableContainerProps instanceof Function\n ? muiTableContainerProps({ instance })\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 {...tableContainerProps}\n ref={tableContainerRef}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\n }}\n style={{\n maxHeight: isFullScreen\n ? `calc(100vh - ${totalToolbarHeight}px)`\n : undefined,\n ...tableContainerProps?.style,\n }}\n >\n <MRT_Table tableContainerRef={tableContainerRef} instance={instance} />\n </TableContainer>\n );\n};\n","import React, { FC, useEffect } from 'react';\nimport { Paper } from '@mui/material';\nimport { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\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 instance: MRT_TableInstance;\n}\n\nexport const MRT_TablePaper: FC<Props> = ({ instance }) => {\n const {\n getState,\n options: { enableToolbarBottom, enableToolbarTop, muiTablePaperProps },\n } = instance;\n\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({ instance })\n : muiTablePaperProps;\n\n return (\n <DndProvider backend={HTML5Backend}>\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 instance={instance} />}\n <MRT_TableContainer instance={instance} />\n {enableToolbarBottom && <MRT_ToolbarBottom instance={instance} />}\n </Paper>\n </DndProvider>\n );\n};\n","import React, { useEffect, useMemo, useState } from 'react';\nimport {\n FilterFn,\n ReactTableGenerics,\n Table,\n TableState,\n createTable,\n filterFns,\n getCoreRowModel,\n getExpandedRowModel,\n getFacetedRowModel,\n getFilteredRowModel,\n getGroupedRowModel,\n getPaginationRowModel,\n getSortedRowModel,\n useTableInstance,\n sortingFns,\n} from '@tanstack/react-table';\nimport {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterFn,\n MRT_FILTER_OPTION,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\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 { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n createDataColumn,\n createDisplayColumn,\n createGroup,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\nimport { MRT_SortingFns } from '../sortingFns';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\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<D>> = 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 [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n initialState?.currentEditingRow ?? null,\n );\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 [showFilters, setShowFilters] = useState(\n initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterFn;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef[]).map((c) => ({\n [c.id as string]:\n c.filterFn ??\n initialState?.currentFilterFns?.[c.id] ??\n (!!c.filterSelectOptions?.length ? 'equals' : 'fuzzy'),\n })),\n ),\n );\n\n const [currentGlobalFilterFn, setCurrentGlobalFilterFn] = useState<\n MRT_FILTER_OPTION | FilterFn<ReactTableGenerics> | string | number | symbol\n >(props.globalFilterFn ?? 'fuzzy');\n\n const table = useMemo(\n () =>\n // @ts-ignore\n createTable().setOptions({\n filterFns: { ...filterFns, ...MRT_FilterFns, ...props.filterFns },\n getCoreRowModel: getCoreRowModel(),\n getExpandedRowModel: getExpandedRowModel(),\n getFacetedRowModel: getFacetedRowModel(),\n getFilteredRowModel: getFilteredRowModel(),\n getGroupedRowModel: getGroupedRowModel(),\n getPaginationRowModel: getPaginationRowModel(),\n getSortedRowModel: getSortedRowModel(),\n sortingFns: { ...sortingFns, ...MRT_SortingFns, ...props.sortingFns },\n }) as Table<D>,\n [],\n );\n\n const displayColumns = useMemo(() => {\n return [\n columnOrder.includes('mrt-row-actions') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n instance={instance}\n />\n ),\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n }),\n columnOrder.includes('mrt-expand') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_ExpandButton row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableExpandAll ? (\n <MRT_ExpandAllButton instance={instance} />\n ) : null,\n header: props.localization?.expand,\n id: 'mrt-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-select') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => (\n <MRT_SelectCheckbox row={cell.row as any} instance={instance} />\n ),\n Header: () =>\n props.enableSelectAll ? (\n <MRT_SelectCheckbox selectAll instance={instance} />\n ) : null,\n header: props.localization?.select,\n id: 'mrt-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n columnOrder.includes('mrt-row-numbers') &&\n createDisplayColumn(table, {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n }),\n ].filter(Boolean) as MRT_ColumnDef<D>[];\n }, [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\n props.enableRowSelection,\n props.enableSelectAll,\n props.localization,\n props.muiTableBodyCellProps,\n props.muiTableHeadCellProps,\n props.positionActionsColumn,\n table,\n ]);\n\n const columns = useMemo(\n () => [\n ...displayColumns,\n ...props.columns.map((column) =>\n column.columns\n ? createGroup(table, column as any, currentFilterFns)\n : createDataColumn(table, column as any, currentFilterFns),\n ),\n ],\n [table, props.columns, currentFilterFns],\n );\n\n const data: D[] = 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 (c) => ({\n [c.id]: null,\n }),\n ),\n ),\n )\n : props.data,\n [props.data, props.state?.isLoading, props.state?.showSkeletons],\n );\n\n //@ts-ignore\n const instance = {\n //@ts-ignore\n ...useTableInstance(table, {\n onColumnOrderChange: setColumnOrder,\n ...props,\n //@ts-ignore\n columns,\n data,\n getSubRows: (row) => (row as MRT_Row)?.subRows,\n //@ts-ignore\n globalFilterFn: currentGlobalFilterFn,\n initialState,\n state: {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n density,\n isFullScreen,\n showAlertBanner,\n showFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\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 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 instance={instance} />\n </Dialog>\n {!isFullScreen && <MRT_TablePaper instance={instance} />}\n </>\n );\n};\n","import React, {\n ChangeEvent,\n Dispatch,\n FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport {\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 {\n Cell,\n Column,\n ColumnDef,\n FilterFn,\n FilterFnOption,\n Header,\n HeaderGroup,\n OnChangeFn,\n Overwrite,\n ReactTableGenerics,\n Row,\n SortingFn,\n SortingFnOption,\n TableGenerics,\n TableInstance,\n TableState,\n UseTableInstanceOptions,\n} from '@tanstack/react-table';\nimport { 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';\n\nexport type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n UseTableInstanceOptions<ReactTableGenerics>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n expandRowsFn?: (dataRow: D) => D[];\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n TableInstance<\n Overwrite<\n Partial<TableGenerics>,\n {\n Row: D;\n }\n >\n >,\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<D>[];\n getAllFlatColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getCenterLeafColumns: () => MRT_Column<D>[];\n getColumn: (columnId: string) => MRT_Column<D>;\n getExpandedRowModel: () => MRT_RowModel<D>;\n getFlatHeaders: () => MRT_Header<D>[];\n getLeftLeafColumns: () => MRT_Column<D>[];\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPreFilteredRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRightLeafColumns: () => MRT_Column<D>[];\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\n setCurrentEditingCell: Dispatch<SetStateAction<MRT_Cell | null>>;\n setCurrentEditingRow: Dispatch<SetStateAction<MRT_Row | null>>;\n setCurrentFilterFns: Dispatch<\n SetStateAction<{\n [key: string]: MRT_FilterFn;\n }>\n >;\n setCurrentGlobalFilterFn: Dispatch<SetStateAction<MRT_FilterFn>>;\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<D extends Record<string, any> = {}> = TableState & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterFns: Record<string, string | Function>;\n currentGlobalFilterFn: Record<string, string | Function>;\n density: 'comfortable' | 'compact' | 'spacious';\n isLoading: boolean;\n isFullScreen: boolean;\n showAlertBanner: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\n | 'accessorFn'\n | 'aggregatedCell'\n | 'cell'\n | 'columns'\n | 'filterFn'\n | 'footer'\n | 'header'\n | 'sortingFn'\n> & {\n AggregatedCell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Edit?: ({\n cell,\n instance,\n }: {\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Filter?: ({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n instance,\n }: {\n footer: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n instance,\n }: {\n header: MRT_Header<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode);\n accessorFn?: (row: D) => any;\n columns?: MRT_ColumnDef<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n filterFn?: MRT_FilterFn;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\n header: string;\n id: keyof D | string;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns' | 'columnDef'\n> & {\n columns?: MRT_Column<D>[];\n columnDef: MRT_ColumnDef<D>;\n header: string;\n footer: string;\n};\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n _valuesCache?: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_SortingOption = SortingFnOption<TableGenerics> | 'fuzzy';\n\nexport type MRT_SortingFn = SortingFn<TableGenerics> | MRT_SortingOption;\n\nexport type MRT_FILTER_OPTION =\n | 'between'\n | 'contains'\n | 'empty'\n | 'endsWith'\n | 'equals'\n | 'fuzzy'\n | 'greaterThan'\n | 'greaterThanOrEqual'\n | 'lessThan'\n | 'lessThanOrEqual'\n | 'notEmpty'\n | 'notEquals'\n | 'startsWith'\n | FilterFnOption<TableGenerics>;\n\nexport type MRT_FilterFn = FilterFn<TableGenerics> | MRT_FILTER_OPTION;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: 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 enableRowNumbers?: 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_FILTER_OPTION | string)[] | null;\n enabledGlobalFilterOptions?: (MRT_FILTER_OPTION | string)[] | null;\n icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n instance,\n cell,\n }: {\n instance: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n instance,\n row,\n }: {\n instance: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n instance,\n footerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n instance,\n column,\n }: {\n instance: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n instance,\n headerGroup,\n }: {\n instance: MRT_TableInstance<D>;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ instance }: { instance: MRT_TableInstance<D> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n instance,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n instance,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n instance: MRT_TableInstance<D>;\n }) => void;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterFn }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterFn>;\n onEditRowSubmit?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: 'first' | 'last';\n positionGlobalFilter?: 'left' | 'right';\n positionPagination?: 'bottom' | 'top' | 'both';\n positionToolbarAlertBanner?: 'bottom' | 'top';\n renderDetailPanel?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n instance,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n instance,\n }: {\n row: MRT_Row<D>;\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n instance,\n }: {\n instance: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarInternalActions?: ({\n instance,\n MRT_ToggleGlobalFilterButton,\n MRT_ToggleFiltersButton,\n MRT_ShowHideColumnsButton,\n MRT_ToggleDensePaddingButton,\n MRT_FullScreenToggleButton,\n }: {\n instance: MRT_TableInstance<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { instance: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <D 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 positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<D>) => (\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 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","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","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","instance","getIsAllRowsExpanded","getIsSomeRowsExpanded","getCanSomeRowsExpand","getState","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","handleToggleExpand","toggleExpanded","getCanExpand","getIsExpanded","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","id","toString","toLowerCase","trim","includes","startsWith","endsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","undefined","empty","_filterValue","notEmpty","MRT_FilterFns","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","fn","filter","filterType","handleSelectFilterType","value","prev","setFilterValue","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","selected","DndContext","createContext","dragDropManager","invariant","condition","format","args","isProduction","Error","error","argIndex","replace","name","framesToPop","process","env","get","obj","path","defaultValue","split","reduce","a","c","without","items","item","i","isObject","input","xor","itemsA","itemsB","Map","insertItem","set","has","forEach","result","count","push","intersection","t","indexOf","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","clientOffset","sourceClientOffset","type","payload","ResetCoordinatesAction","createBeginDrag","manager","beginDrag","sourceIds","publishSource","getSourceClientOffset","monitor","getMonitor","registry","getRegistry","dispatch","verifyInvariants","sourceId","getDraggableSource","verifyGetSourceClientOffsetIsFunction","source","getSource","verifyItemIsObject","pinSource","itemType","getSourceType","isSourcePublic","isDragging","length","canDragSource","createDrop","drop","targetIds","getDroppableTargets","targetId","dropResult","determineDropResult","action","didDrop","target","getTarget","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","reverse","createEndDrag","endDrag","verifyIsDragging","getSourceId","unpinSource","matchesType","targetType","draggedItemType","Array","isArray","some","createHover","hover","targetIdsArg","verifyTargetIdsIsArray","slice","getItemType","removeNonMatchingTargetIds","checkInvariants","hoverAllTargets","lastIndexOf","getTargetType","splice","createPublishDragSource","publishDragSource","createDragDropActions","DragDropManagerImpl","backend","getBackend","getActions","store","bindActionCreator","actionCreator","apply","Object","keys","boundActions","isSetUp","handleRefCountChange","shouldSetUp","refCount","setup","teardown","subscribe","add","b","x","y","subtract","state","initialClientOffset","initialSourceClientOffset","getDifferenceFromInitialOffset","NONE","ALL","__IS_NONE__","__IS_ALL__","areDirty","dirtyIds","handlerIds","commonIds","DragDropMonitorImpl","subscribeToStateChange","listener","prevStateId","stateId","handleChange","currentStateId","canSkipListener","dirtyHandlerIds","previousState","dragOffset","nextState","canDrag","canDrop","Boolean","sourceType","isOverTarget","shallow","dragOperation","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","makeRequestCallFromMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall","AsapQueue","task","queue","q","requestFlush","flushing","pendingErrors","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","requestErrorThrow","shift","RawTask","onError","release","TaskFactory","tasks","freeTasks","pop","asapQueue","taskFactory","asap","enqueueTask","create","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","addTarget","removeSource","removeTarget","validateSourceContract","validateTargetContract","validateType","allowArray","HandlerRole","SOURCE","TARGET","nextUniqueId","getNextUniqueId","getNextHandlerId","role","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","entries","isDone","done","next","HandlerRegistryImpl","addHandler","handler","dragSources","dropTargets","includePinned","isSourceId","isPinned","pinnedSourceId","pinnedSource","isTargetId","types","delete","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","isEqual","_state","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","initialState","_objectSpread","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","receiveBackend","reduxDevTools","window","__REDUX_DEVTOOLS_EXTENSION__","createStore","instanceId","INSTANCE_SYM","Symbol","for","DndProvider","memo","children","props","isGlobalInstance","getDndContextValue","useEffect","context","getGlobalContext","_jsx","Provider","createSingletonDndContext","ctx","useIsomorphicLayoutEffect","useLayoutEffect","useCollector","collect","onUpdate","collected","setCollected","useState","updateCollected","useCallback","nextValue","equal","useMonitorOutput","onCollect","subscribeToMonitorStateChange","getHandlerId","useCollectedProps","collector","connector","reconnect","useOptionalFactory","arg","deps","memoDeps","useConnectDragSource","hooks","dragSource","useConnectDragPreview","dragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","subscribeToOffsetChange","isCallingCanDrop","DropTargetMonitorImpl","registerTarget","registerSource","shallowEqual","objA","objB","compare","compareContext","compareResult","keysA","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","valueA","valueB","isRef","throwIfCompositeComponentElement","element","displayName","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","ref","cloneWithRef","wrapConnectorHooks","wrappedHooks","wrappedHook","setRef","current","newRef","previousRef","cloneElement","SourceConnector","newHandlerId","connectTarget","dragSourceOptions","dragSourceOptionsInternal","dragPreviewOptions","dragPreviewOptionsInternal","reconnectDragSource","reconnectDragPreview","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedDragSource","lastConnectedHandlerId","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","forceDidChange","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","dragPreviewNode","dragPreviewRef","dragSourceNode","dragSourceRef","clearDragSource","clearDragPreview","TargetConnector","dropTarget","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","dropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","dropTargetNode","dropTargetRef","clearDropTarget","useDragDropManager","useContext","useDragSourceConnector","useDragSourceMonitor","DragSourceImpl","spec","globalMonitor","end","useDragSource","useDragType","useRegisteredDragSource","registerDragSource","unregister","receiveHandlerId","useDrag","specArg","begin","previewOptions","useConnectDropTarget","useDropTargetConnector","useDropTargetMonitor","useAccept","accept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","registerDropTarget","join","useDrop","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","forwardRef","placement","disableRipple","cursor","m","opacity","p","backgroundColor","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","col","nextCols","flat","every","createGroup","table","createDataColumn","filterFn","createDisplayColumn","reorderColumn","movingColumn","receivingColumn","columnOrder","getCanPin","getLeadingDisplayColumnIds","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","getTrailingDisplayColumnIds","getDefaultColumnOrderIds","MRT_ShowHideColumnsMenuItems","allColumns","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","columnDefType","newColumnOrder","dropRef","dragRef","previewRef","switchChecked","getIsVisible","getLeafColumns","handleToggleColumnHidden","childColumn","justifyContent","pl","depth","display","flexWrap","gap","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","Typography","alignSelf","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","columnPinning","hideAllColumns","from","Set","colId","find","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleClearSort","clearSorting","handleSortAsc","toggleSorting","handleSortDesc","handleResetColumnSize","resetSize","handleHideColumn","handleGroupByColumn","toggleGrouping","old","handleClearFilter","handleFilterByColumn","getElementById","muiTableHeadCellFilterTextFieldProps","focus","handleShowAllColumns","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","isSelectFilter","filterSelectOptions","showFilterModeSubMenu","getCanSort","getIsSorted","ListItemIcon","String","getCanFilter","getFilterValue","onMouseEnter","getCanGroup","getCanResize","values","visible","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","handleCancel","_valuesCache","original","handleSave","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleOpenRowActionMenu","preventDefault","handleStartEditMode","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","handleSelectChange","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","memoize","memoized","union","EnterLeaveCounter","enteringNode","previousLength","entered","isNodeEntered","isNodeInDocument","leavingNode","reset","NativeDragSource","initializeExposedProperties","config","exposeProperties","property","defineProperty","configurable","enumerable","console","warn","dataTransfer","newProperties","propertyFn","matchesTypes","defineProperties","handle","FILE","URL","TEXT","HTML","getDataFromDataTransfer","typesToTry","resultSoFar","typeToTry","getData","nativeTypesConfig","NativeTypes","files","html","urls","text","createNativeDragSource","loadDataTransfer","matchNativeItemType","dataTransferTypes","nativeItemType","typeConfig","isFirefox","test","navigator","userAgent","isSafari","safari","MonotonicInterpolant","xs","ys","c1s","c2s","c3s","low","high","mid","Math","floor","xHere","diff","diffSq","dxs","ms","dx","dy","m2","mNext","dxNext","common","c1","invDx","ELEMENT_NODE","getNodeClientOffset","el","nodeType","parentElement","top","left","getBoundingClientRect","getEventClientOffset","e","clientX","clientY","isImageNode","nodeName","documentElement","getDragPreviewSize","isImage","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewOffset","sourceNode","anchorPoint","offsetPoint","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","offsetWidth","offsetHeight","anchorX","anchorY","calculateYOffset","interpolantY","interpolate","calculateXOffset","interpolantX","offsetX","offsetY","isManualOffsetX","isManualOffsetY","OptionsReader","rootElement","optionsArgs","ownerDocument","HTML5BackendImpl","profile","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodeOptions","sourceNodes","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","dragOverTargetIds","root","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","clearCurrentDragSourceNode","asyncEndDragFrameId","cancelAnimationFrame","handleDragStart","handleSelectStart","setAttribute","addEventListener","removeEventListener","handleDragEnter","handleDragOver","handleDrop","handleTopDragStart","handleTopDragStartCapture","handleTopDragEndCapture","handleTopDragEnter","handleTopDragEnterCapture","handleTopDragLeaveCapture","handleTopDragOver","handleTopDragOverCapture","handleTopDrop","handleTopDropCapture","getCurrentSourceNodeOptions","dropEffect","altKeyPressed","getCurrentDropEffect","isDraggingNativeItem","getCurrentSourcePreviewNodeOptions","captureDraggingState","beginDragNativeItem","currentNativeSource","currentNativeHandle","currentDragSourceNode","MOUSE_MOVE_TIMEOUT","mouseMoveTimeoutTimer","endDragIfSourceWasRemovedFromDOM","defaultPrevented","unshift","_e","lastClientOffset","hoverRafId","endDragNativeItem","body","cancelHover","scheduleHover","requestAnimationFrame","nativeType","setDragImage","dragPreviewOffset","setData","setCurrentDragSourceNode","hasAttribute","isFirstEnter","enterLeaveCounter","enter","altKey","isLastLeave","leave","dragDrop","tagName","isContentEditable","HTML5Backend","createBackend","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","handleToggleFullScreen","MRT_ShowHideColumnsButton","handleClick","MRT_ToggleDensePaddingButton","setDensity","handleToggleDensePadding","nextDensity","MRT_ToggleFiltersButton","showFilters","handleToggleShowFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","handleToggleSearch","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","setSearchValue","handleChangeDebounced","debounce","handleGlobalFilterMenuOpen","handleClear","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","tablePaginationProps","handleChangeRowsPerPage","totalRowCount","rows","showFirstLastPageButtons","TablePagination","SelectProps","MenuProps","disablePadding","component","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","right","MRT_LinearProgressBar","alignTo","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","theme","lighten","palette","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","black","MRT_FilterTextField","inputIndex","mTableHeadCellFilterTextFieldProps","mcTableHeadCellFilterTextFieldProps","newFilterValues","handleFilterMenuOpen","handleClearFilterChip","Filter","filterId","filterChipLabel","charAt","toUpperCase","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","mr","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","Grow","MRT_TableHeadCellResizeHandle","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","mTableHeadCellColumnActionsButtonProps","mcTableHeadCellColumnActionsButtonProps","MRT_TableHeadCell","enableColumnActions","enableMultiSort","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","headerElement","Header","renderHeader","getIsLastLeftPinnedColumn","getLeftLeafHeaders","getPinnedIndex","getIsFirstRightPinnedColumn","getTotalRight","getRightLeafHeaders","TableCell","align","colSpan","fontWeight","getStart","pb","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","MRT_DraggableTableHeadCell","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","rectChanged","observedNodes","run","changedStates","newRect","rafId","observeRect","cb","wasEmpty","rect","hasRectChanged","callbacks","unobserve","useRect","nodeRef","initialRect","setElement","useReducer","rectReducer","initialRectSet","useRef","defaultEstimateSize","defaultKeyExtractor","defaultMeasureSize","defaultRangeExtractor","range","start","overscan","arr","useVirtual","estimateSize","paddingStart","paddingEnd","parentRef","scrollToFn","useObserver","onScrollElement","scrollOffsetFn","keyExtractor","measureSize","rangeExtractor","sizeKey","scrollKey","latestRef","scrollOffset","measurements","setScrollOffset","useMeasureParent","outerSize","defaultScrollToFn","offset","resolvedScrollToFn","measuredCache","setMeasuredCache","measure","pendingMeasuredCacheIndexesRef","measuredSize","totalSize","scrollOffsetFnRef","onScroll","capture","passive","calculateRange","indexes","measureSizeRef","virtualItems","k","len","measurement","measureRef","mountedRef","scrollToOffset","toOffset","tryScrollToIndex","scrollToIndex","findNearestBinarySearch","getCurrentValue","middle","currentValue","getOffset","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","handleBlur","mTableBodyCellEditTextFieldProps","mcTableBodyCellEditTextFieldProps","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","handleCopy","clipboard","writeText","mTableBodyCellCopyButtonProps","mcTableBodyCellCopyButtonProps","buttonProps","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","mTableCellBodyProps","mcTableCellBodyProps","skeletonWidth","random","isEditable","isEditing","handleDoubleClick","_event","textField","mode","darken","Skeleton","animation","Cell","getIsPlaceholder","groupingColumnId","getIsAggregated","AggregatedCell","renderAggregatedCell","renderCell","subRows","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","borderBottom","getTotalSize","MRT_TableBodyRow","getVisibleCells","rowA","rowB","dir","columnFiltersMeta","compareItems","sortingFns","alphanumeric","MRT_SortingFns","rankGlobalFuzzy","v","rank","MRT_TableBody","tableContainerRef","getRowModel","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","getIsSomeColumnsSorted","rankedRows","sort","rowVirtualizer","virtualRows","paddingTop","paddingBottom","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","white","Footer","renderFooter","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","bottomToolbarHeight","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initState","setShowAlertBanner","assign","globalFilterFn","createTable","setOptions","filterFns","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","displayColumns","enableExpandAll","enableSelectAll","fill","useTableInstance","onColumnOrderChange","getSubRows","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","columnResizeMode","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}
1
+ {"version":3,"file":"material-react-table.cjs.development.js","sources":["../src/localization.ts","../src/icons.ts","../src/buttons/MRT_ExpandAllButton.tsx","../src/buttons/MRT_ExpandButton.tsx","../src/menus/MRT_FilterOptionMenu.tsx","../node_modules/react-dnd/src/core/DndContext.ts","../node_modules/redux/es/redux.js","../node_modules/@react-dnd/invariant/src/index.ts","../node_modules/dnd-core/src/utils/js_utils.ts","../node_modules/dnd-core/src/actions/dragDrop/types.ts","../node_modules/dnd-core/src/actions/dragDrop/local/setClientOffset.ts","../node_modules/dnd-core/src/actions/dragDrop/beginDrag.ts","../node_modules/dnd-core/src/actions/dragDrop/drop.ts","../node_modules/dnd-core/src/actions/dragDrop/endDrag.ts","../node_modules/dnd-core/src/utils/matchesType.ts","../node_modules/dnd-core/src/actions/dragDrop/hover.ts","../node_modules/dnd-core/src/actions/dragDrop/publishDragSource.ts","../node_modules/dnd-core/src/actions/dragDrop/index.ts","../node_modules/dnd-core/src/classes/DragDropManagerImpl.ts","../node_modules/dnd-core/src/utils/coords.ts","../node_modules/dnd-core/src/utils/dirtiness.ts","../node_modules/dnd-core/src/classes/DragDropMonitorImpl.ts","../node_modules/@react-dnd/asap/src/makeRequestCall.ts","../node_modules/@react-dnd/asap/src/AsapQueue.ts","../node_modules/@react-dnd/asap/src/RawTask.ts","../node_modules/@react-dnd/asap/src/TaskFactory.ts","../node_modules/@react-dnd/asap/src/asap.ts","../node_modules/dnd-core/src/actions/registry.ts","../node_modules/dnd-core/src/contracts.ts","../node_modules/dnd-core/src/interfaces.ts","../node_modules/dnd-core/src/utils/getNextUniqueId.ts","../node_modules/dnd-core/src/classes/HandlerRegistryImpl.ts","../node_modules/dnd-core/src/utils/equality.ts","../node_modules/dnd-core/src/reducers/dirtyHandlerIds.ts","../node_modules/dnd-core/src/reducers/dragOffset.ts","../node_modules/dnd-core/src/reducers/dragOperation.ts","../node_modules/dnd-core/src/reducers/refCount.ts","../node_modules/dnd-core/src/reducers/stateId.ts","../node_modules/dnd-core/src/reducers/index.ts","../node_modules/dnd-core/src/createDragDropManager.ts","../node_modules/react-dnd/src/core/DndProvider.tsx","../node_modules/fast-deep-equal/index.js","../node_modules/react-dnd/src/hooks/useIsomorphicLayoutEffect.ts","../node_modules/react-dnd/src/hooks/useCollector.ts","../node_modules/react-dnd/src/hooks/useMonitorOutput.ts","../node_modules/react-dnd/src/hooks/useCollectedProps.ts","../node_modules/react-dnd/src/hooks/useOptionalFactory.ts","../node_modules/react-dnd/src/hooks/useDrag/connectors.ts","../node_modules/react-dnd/src/internals/DragSourceMonitorImpl.ts","../node_modules/react-dnd/src/internals/DropTargetMonitorImpl.ts","../node_modules/react-dnd/src/internals/registration.ts","../node_modules/@react-dnd/shallowequal/src/index.ts","../node_modules/react-dnd/src/internals/isRef.ts","../node_modules/react-dnd/src/internals/wrapConnectorHooks.ts","../node_modules/react-dnd/src/internals/SourceConnector.ts","../node_modules/react-dnd/src/internals/TargetConnector.ts","../node_modules/react-dnd/src/hooks/useDragDropManager.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceConnector.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSourceMonitor.ts","../node_modules/react-dnd/src/hooks/useDrag/DragSourceImpl.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDragType.ts","../node_modules/react-dnd/src/hooks/useDrag/useRegisteredDragSource.ts","../node_modules/react-dnd/src/hooks/useDrag/useDrag.ts","../node_modules/react-dnd/src/hooks/useDrop/connectors.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetConnector.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTargetMonitor.ts","../node_modules/react-dnd/src/hooks/useDrop/useAccept.ts","../node_modules/react-dnd/src/hooks/useDrop/DropTargetImpl.ts","../node_modules/react-dnd/src/hooks/useDrop/useDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useRegisteredDropTarget.ts","../node_modules/react-dnd/src/hooks/useDrop/useDrop.ts","../src/buttons/MRT_ColumnPinningButtons.tsx","../src/buttons/MRT_GrabHandleButton.tsx","../src/filtersFns.ts","../src/sortingFns.ts","../src/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","../node_modules/react-dnd-html5-backend/src/utils/js_utils.ts","../node_modules/react-dnd-html5-backend/src/EnterLeaveCounter.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/NativeDragSource.ts","../node_modules/react-dnd-html5-backend/src/NativeTypes.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/getDataFromDataTransfer.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/nativeTypesConfig.ts","../node_modules/react-dnd-html5-backend/src/NativeDragSources/index.ts","../node_modules/react-dnd-html5-backend/src/BrowserDetector.ts","../node_modules/react-dnd-html5-backend/src/MonotonicInterpolant.ts","../node_modules/react-dnd-html5-backend/src/OffsetUtils.ts","../node_modules/react-dnd-html5-backend/src/OptionsReader.ts","../node_modules/react-dnd-html5-backend/src/HTML5BackendImpl.ts","../node_modules/react-dnd-html5-backend/src/index.ts","../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/inputs/MRT_GlobalFilterTextField.tsx","../src/toolbar/MRT_ToolbarInternalButtons.tsx","../src/toolbar/MRT_TablePagination.tsx","../src/toolbar/MRT_ToolbarAlertBanner.tsx","../src/toolbar/MRT_LinearProgressBar.tsx","../src/toolbar/MRT_ToolbarTop.tsx","../src/toolbar/MRT_ToolbarBottom.tsx","../src/inputs/MRT_FilterTextField.tsx","../src/inputs/MRT_FilterRangeFields.tsx","../src/head/MRT_TableHeadCellFilterContainer.tsx","../src/head/MRT_TableHeadCellFilterLabel.tsx","../src/head/MRT_TableHeadCellResizeHandle.tsx","../src/head/MRT_TableHeadCellSortLabel.tsx","../src/head/MRT_TableHeadCellColumnActionsButton.tsx","../src/head/MRT_TableHeadCell.tsx","../src/head/MRT_DraggableTableHeadCell.tsx","../src/head/MRT_TableHeadRow.tsx","../src/head/MRT_TableHead.tsx","../node_modules/react-virtual/node_modules/@reach/observe-rect/dist/observe-rect.esm.js","../node_modules/react-virtual/src/useIsomorphicLayoutEffect.js","../node_modules/react-virtual/src/useRect.js","../node_modules/react-virtual/src/index.js","../src/inputs/MRT_EditCellTextField.tsx","../src/buttons/MRT_CopyButton.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 filterByColumn: string;\n filterContains: string;\n filterEmpty: string;\n filterEndsWith: string;\n filterEquals: string;\n filterFuzzy: string;\n filterGreaterThan: string;\n filterLessThan: 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 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 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 filterLessThan: 'Less Than',\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 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={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...iconButtonProps?.sx,\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 { Menu, MenuItem } from '@mui/material';\nimport type { MRT_FilterOption, MRT_Header, MRT_TableInstance } from '..';\n\nconst commonMenuItemStyles = {\n py: '6px',\n my: 0,\n alignItems: 'center',\n};\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 option: 'fuzzy',\n label: localization.filterFuzzy,\n divider: false,\n },\n {\n option: 'contains',\n label: localization.filterContains,\n divider: false,\n },\n {\n option: 'startsWith',\n label: localization.filterStartsWith,\n divider: false,\n },\n {\n option: 'endsWith',\n label: localization.filterEndsWith,\n divider: true,\n },\n {\n option: 'equals',\n label: localization.filterEquals,\n divider: false,\n },\n {\n option: 'notEquals',\n label: localization.filterNotEquals,\n divider: true,\n },\n {\n option: 'between',\n label: localization.filterBetween,\n divider: false,\n },\n {\n option: 'greaterThan',\n label: localization.filterGreaterThan,\n divider: false,\n },\n {\n option: 'lessThan',\n label: localization.filterLessThan,\n divider: true,\n },\n {\n option: 'empty',\n label: localization.filterEmpty,\n divider: false,\n },\n {\n option: 'notEmpty',\n label: localization.filterNotEmpty,\n divider: false,\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 ) as Array<{\n option: MRT_FilterOption;\n label: string;\n divider: boolean;\n fn: Function;\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 }, index) => (\n <MenuItem\n divider={divider}\n key={index}\n onClick={() => handleSelectFilterType(option)}\n selected={option === filterOption}\n sx={commonMenuItemStyles}\n value={option}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n );\n};\n","import type { DragDropManager } from 'dnd-core'\nimport { createContext } from 'react'\n\n/**\n * The React context type\n */\nexport interface DndContextType {\n\tdragDropManager: DragDropManager | undefined\n}\n\n/**\n * Create the React Context\n */\nexport const DndContext = createContext<DndContextType>({\n\tdragDropManager: undefined,\n})\n","import _objectSpread from '@babel/runtime/helpers/esm/objectSpread2';\n\n/**\n * Adapted from React: https://github.com/facebook/react/blob/master/packages/shared/formatProdErrorMessage.js\n *\n * Do not require this module directly! Use normal throw error calls. These messages will be replaced with error codes\n * during build.\n * @param {number} code\n */\nfunction formatProdErrorMessage(code) {\n return \"Minified Redux error #\" + code + \"; visit https://redux.js.org/Errors?code=\" + code + \" for the full message or \" + 'use the non-minified dev environment for full errors. ';\n}\n\n// Inlined version of the `symbol-observable` polyfill\nvar $$observable = (function () {\n return typeof Symbol === 'function' && Symbol.observable || '@@observable';\n})();\n\n/**\n * These are private action types reserved by Redux.\n * For any unknown actions, you must return the current state.\n * If the current state is undefined, you must return the initial state.\n * Do not reference these action types directly in your code.\n */\nvar randomString = function randomString() {\n return Math.random().toString(36).substring(7).split('').join('.');\n};\n\nvar ActionTypes = {\n INIT: \"@@redux/INIT\" + randomString(),\n REPLACE: \"@@redux/REPLACE\" + randomString(),\n PROBE_UNKNOWN_ACTION: function PROBE_UNKNOWN_ACTION() {\n return \"@@redux/PROBE_UNKNOWN_ACTION\" + randomString();\n }\n};\n\n/**\n * @param {any} obj The object to inspect.\n * @returns {boolean} True if the argument appears to be a plain object.\n */\nfunction isPlainObject(obj) {\n if (typeof obj !== 'object' || obj === null) return false;\n var proto = obj;\n\n while (Object.getPrototypeOf(proto) !== null) {\n proto = Object.getPrototypeOf(proto);\n }\n\n return Object.getPrototypeOf(obj) === proto;\n}\n\n// Inlined / shortened version of `kindOf` from https://github.com/jonschlinkert/kind-of\nfunction miniKindOf(val) {\n if (val === void 0) return 'undefined';\n if (val === null) return 'null';\n var type = typeof val;\n\n switch (type) {\n case 'boolean':\n case 'string':\n case 'number':\n case 'symbol':\n case 'function':\n {\n return type;\n }\n }\n\n if (Array.isArray(val)) return 'array';\n if (isDate(val)) return 'date';\n if (isError(val)) return 'error';\n var constructorName = ctorName(val);\n\n switch (constructorName) {\n case 'Symbol':\n case 'Promise':\n case 'WeakMap':\n case 'WeakSet':\n case 'Map':\n case 'Set':\n return constructorName;\n } // other\n\n\n return type.slice(8, -1).toLowerCase().replace(/\\s/g, '');\n}\n\nfunction ctorName(val) {\n return typeof val.constructor === 'function' ? val.constructor.name : null;\n}\n\nfunction isError(val) {\n return val instanceof Error || typeof val.message === 'string' && val.constructor && typeof val.constructor.stackTraceLimit === 'number';\n}\n\nfunction isDate(val) {\n if (val instanceof Date) return true;\n return typeof val.toDateString === 'function' && typeof val.getDate === 'function' && typeof val.setDate === 'function';\n}\n\nfunction kindOf(val) {\n var typeOfVal = typeof val;\n\n if (process.env.NODE_ENV !== 'production') {\n typeOfVal = miniKindOf(val);\n }\n\n return typeOfVal;\n}\n\n/**\n * @deprecated\n *\n * **We recommend using the `configureStore` method\n * of the `@reduxjs/toolkit` package**, which replaces `createStore`.\n *\n * Redux Toolkit is our recommended approach for writing Redux logic today,\n * including store setup, reducers, data fetching, and more.\n *\n * **For more details, please read this Redux docs page:**\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * `configureStore` from Redux Toolkit is an improved version of `createStore` that\n * simplifies setup and helps avoid common bugs.\n *\n * You should not be using the `redux` core package by itself today, except for learning purposes.\n * The `createStore` method from the core `redux` package will not be removed, but we encourage\n * all users to migrate to using Redux Toolkit for all Redux code.\n *\n * If you want to use `createStore` without this visual deprecation warning, use\n * the `legacy_createStore` import instead:\n *\n * `import { legacy_createStore as createStore} from 'redux'`\n *\n */\n\nfunction createStore(reducer, preloadedState, enhancer) {\n var _ref2;\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'function' || typeof enhancer === 'function' && typeof arguments[3] === 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(0) : 'It looks like you are passing several store enhancers to ' + 'createStore(). This is not supported. Instead, compose them ' + 'together to a single function. See https://redux.js.org/tutorials/fundamentals/part-4-store#creating-a-store-with-enhancers for an example.');\n }\n\n if (typeof preloadedState === 'function' && typeof enhancer === 'undefined') {\n enhancer = preloadedState;\n preloadedState = undefined;\n }\n\n if (typeof enhancer !== 'undefined') {\n if (typeof enhancer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(1) : \"Expected the enhancer to be a function. Instead, received: '\" + kindOf(enhancer) + \"'\");\n }\n\n return enhancer(createStore)(reducer, preloadedState);\n }\n\n if (typeof reducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(2) : \"Expected the root reducer to be a function. Instead, received: '\" + kindOf(reducer) + \"'\");\n }\n\n var currentReducer = reducer;\n var currentState = preloadedState;\n var currentListeners = [];\n var nextListeners = currentListeners;\n var isDispatching = false;\n /**\n * This makes a shallow copy of currentListeners so we can use\n * nextListeners as a temporary list while dispatching.\n *\n * This prevents any bugs around consumers calling\n * subscribe/unsubscribe in the middle of a dispatch.\n */\n\n function ensureCanMutateNextListeners() {\n if (nextListeners === currentListeners) {\n nextListeners = currentListeners.slice();\n }\n }\n /**\n * Reads the state tree managed by the store.\n *\n * @returns {any} The current state tree of your application.\n */\n\n\n function getState() {\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(3) : 'You may not call store.getState() while the reducer is executing. ' + 'The reducer has already received the state as an argument. ' + 'Pass it down from the top reducer instead of reading it from the store.');\n }\n\n return currentState;\n }\n /**\n * Adds a change listener. It will be called any time an action is dispatched,\n * and some part of the state tree may potentially have changed. You may then\n * call `getState()` to read the current state tree inside the callback.\n *\n * You may call `dispatch()` from a change listener, with the following\n * caveats:\n *\n * 1. The subscriptions are snapshotted just before every `dispatch()` call.\n * If you subscribe or unsubscribe while the listeners are being invoked, this\n * will not have any effect on the `dispatch()` that is currently in progress.\n * However, the next `dispatch()` call, whether nested or not, will use a more\n * recent snapshot of the subscription list.\n *\n * 2. The listener should not expect to see all state changes, as the state\n * might have been updated multiple times during a nested `dispatch()` before\n * the listener is called. It is, however, guaranteed that all subscribers\n * registered before the `dispatch()` started will be called with the latest\n * state by the time it exits.\n *\n * @param {Function} listener A callback to be invoked on every dispatch.\n * @returns {Function} A function to remove this change listener.\n */\n\n\n function subscribe(listener) {\n if (typeof listener !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(4) : \"Expected the listener to be a function. Instead, received: '\" + kindOf(listener) + \"'\");\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(5) : 'You may not call store.subscribe() while the reducer is executing. ' + 'If you would like to be notified after the store has been updated, subscribe from a ' + 'component and invoke store.getState() in the callback to access the latest state. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n var isSubscribed = true;\n ensureCanMutateNextListeners();\n nextListeners.push(listener);\n return function unsubscribe() {\n if (!isSubscribed) {\n return;\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(6) : 'You may not unsubscribe from a store listener while the reducer is executing. ' + 'See https://redux.js.org/api/store#subscribelistener for more details.');\n }\n\n isSubscribed = false;\n ensureCanMutateNextListeners();\n var index = nextListeners.indexOf(listener);\n nextListeners.splice(index, 1);\n currentListeners = null;\n };\n }\n /**\n * Dispatches an action. It is the only way to trigger a state change.\n *\n * The `reducer` function, used to create the store, will be called with the\n * current state tree and the given `action`. Its return value will\n * be considered the **next** state of the tree, and the change listeners\n * will be notified.\n *\n * The base implementation only supports plain object actions. If you want to\n * dispatch a Promise, an Observable, a thunk, or something else, you need to\n * wrap your store creating function into the corresponding middleware. For\n * example, see the documentation for the `redux-thunk` package. Even the\n * middleware will eventually dispatch plain object actions using this method.\n *\n * @param {Object} action A plain object representing “what changed”. It is\n * a good idea to keep actions serializable so you can record and replay user\n * sessions, or use the time travelling `redux-devtools`. An action must have\n * a `type` property which may not be `undefined`. It is a good idea to use\n * string constants for action types.\n *\n * @returns {Object} For convenience, the same action object you dispatched.\n *\n * Note that, if you use a custom middleware, it may wrap `dispatch()` to\n * return something else (for example, a Promise you can await).\n */\n\n\n function dispatch(action) {\n if (!isPlainObject(action)) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(7) : \"Actions must be plain objects. Instead, the actual type was: '\" + kindOf(action) + \"'. You may need to add middleware to your store setup to handle dispatching other values, such as 'redux-thunk' to handle dispatching functions. See https://redux.js.org/tutorials/fundamentals/part-4-store#middleware and https://redux.js.org/tutorials/fundamentals/part-6-async-logic#using-the-redux-thunk-middleware for examples.\");\n }\n\n if (typeof action.type === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(8) : 'Actions may not have an undefined \"type\" property. You may have misspelled an action type string constant.');\n }\n\n if (isDispatching) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(9) : 'Reducers may not dispatch actions.');\n }\n\n try {\n isDispatching = true;\n currentState = currentReducer(currentState, action);\n } finally {\n isDispatching = false;\n }\n\n var listeners = currentListeners = nextListeners;\n\n for (var i = 0; i < listeners.length; i++) {\n var listener = listeners[i];\n listener();\n }\n\n return action;\n }\n /**\n * Replaces the reducer currently used by the store to calculate the state.\n *\n * You might need this if your app implements code splitting and you want to\n * load some of the reducers dynamically. You might also need this if you\n * implement a hot reloading mechanism for Redux.\n *\n * @param {Function} nextReducer The reducer for the store to use instead.\n * @returns {void}\n */\n\n\n function replaceReducer(nextReducer) {\n if (typeof nextReducer !== 'function') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(10) : \"Expected the nextReducer to be a function. Instead, received: '\" + kindOf(nextReducer));\n }\n\n currentReducer = nextReducer; // This action has a similiar effect to ActionTypes.INIT.\n // Any reducers that existed in both the new and old rootReducer\n // will receive the previous state. This effectively populates\n // the new state tree with any relevant data from the old one.\n\n dispatch({\n type: ActionTypes.REPLACE\n });\n }\n /**\n * Interoperability point for observable/reactive libraries.\n * @returns {observable} A minimal observable of state changes.\n * For more information, see the observable proposal:\n * https://github.com/tc39/proposal-observable\n */\n\n\n function observable() {\n var _ref;\n\n var outerSubscribe = subscribe;\n return _ref = {\n /**\n * The minimal observable subscription method.\n * @param {Object} observer Any object that can be used as an observer.\n * The observer object should have a `next` method.\n * @returns {subscription} An object with an `unsubscribe` method that can\n * be used to unsubscribe the observable from the store, and prevent further\n * emission of values from the observable.\n */\n subscribe: function subscribe(observer) {\n if (typeof observer !== 'object' || observer === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(11) : \"Expected the observer to be an object. Instead, received: '\" + kindOf(observer) + \"'\");\n }\n\n function observeState() {\n if (observer.next) {\n observer.next(getState());\n }\n }\n\n observeState();\n var unsubscribe = outerSubscribe(observeState);\n return {\n unsubscribe: unsubscribe\n };\n }\n }, _ref[$$observable] = function () {\n return this;\n }, _ref;\n } // When a store is created, an \"INIT\" action is dispatched so that every\n // reducer returns their initial state. This effectively populates\n // the initial state tree.\n\n\n dispatch({\n type: ActionTypes.INIT\n });\n return _ref2 = {\n dispatch: dispatch,\n subscribe: subscribe,\n getState: getState,\n replaceReducer: replaceReducer\n }, _ref2[$$observable] = observable, _ref2;\n}\n/**\n * Creates a Redux store that holds the state tree.\n *\n * **We recommend using `configureStore` from the\n * `@reduxjs/toolkit` package**, which replaces `createStore`:\n * **https://redux.js.org/introduction/why-rtk-is-redux-today**\n *\n * The only way to change the data in the store is to call `dispatch()` on it.\n *\n * There should only be a single store in your app. To specify how different\n * parts of the state tree respond to actions, you may combine several reducers\n * into a single reducer function by using `combineReducers`.\n *\n * @param {Function} reducer A function that returns the next state tree, given\n * the current state tree and the action to handle.\n *\n * @param {any} [preloadedState] The initial state. You may optionally specify it\n * to hydrate the state from the server in universal apps, or to restore a\n * previously serialized user session.\n * If you use `combineReducers` to produce the root reducer function, this must be\n * an object with the same shape as `combineReducers` keys.\n *\n * @param {Function} [enhancer] The store enhancer. You may optionally specify it\n * to enhance the store with third-party capabilities such as middleware,\n * time travel, persistence, etc. The only store enhancer that ships with Redux\n * is `applyMiddleware()`.\n *\n * @returns {Store} A Redux store that lets you read the state, dispatch actions\n * and subscribe to changes.\n */\n\nvar legacy_createStore = createStore;\n\n/**\n * Prints a warning in the console if it exists.\n *\n * @param {String} message The warning message.\n * @returns {void}\n */\nfunction warning(message) {\n /* eslint-disable no-console */\n if (typeof console !== 'undefined' && typeof console.error === 'function') {\n console.error(message);\n }\n /* eslint-enable no-console */\n\n\n try {\n // This error was thrown as a convenience so that if you enable\n // \"break on all exceptions\" in your console,\n // it would pause the execution at this line.\n throw new Error(message);\n } catch (e) {} // eslint-disable-line no-empty\n\n}\n\nfunction getUnexpectedStateShapeWarningMessage(inputState, reducers, action, unexpectedKeyCache) {\n var reducerKeys = Object.keys(reducers);\n var argumentName = action && action.type === ActionTypes.INIT ? 'preloadedState argument passed to createStore' : 'previous state received by the reducer';\n\n if (reducerKeys.length === 0) {\n return 'Store does not have a valid reducer. Make sure the argument passed ' + 'to combineReducers is an object whose values are reducers.';\n }\n\n if (!isPlainObject(inputState)) {\n return \"The \" + argumentName + \" has unexpected type of \\\"\" + kindOf(inputState) + \"\\\". Expected argument to be an object with the following \" + (\"keys: \\\"\" + reducerKeys.join('\", \"') + \"\\\"\");\n }\n\n var unexpectedKeys = Object.keys(inputState).filter(function (key) {\n return !reducers.hasOwnProperty(key) && !unexpectedKeyCache[key];\n });\n unexpectedKeys.forEach(function (key) {\n unexpectedKeyCache[key] = true;\n });\n if (action && action.type === ActionTypes.REPLACE) return;\n\n if (unexpectedKeys.length > 0) {\n return \"Unexpected \" + (unexpectedKeys.length > 1 ? 'keys' : 'key') + \" \" + (\"\\\"\" + unexpectedKeys.join('\", \"') + \"\\\" found in \" + argumentName + \". \") + \"Expected to find one of the known reducer keys instead: \" + (\"\\\"\" + reducerKeys.join('\", \"') + \"\\\". Unexpected keys will be ignored.\");\n }\n}\n\nfunction assertReducerShape(reducers) {\n Object.keys(reducers).forEach(function (key) {\n var reducer = reducers[key];\n var initialState = reducer(undefined, {\n type: ActionTypes.INIT\n });\n\n if (typeof initialState === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(12) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined during initialization. \" + \"If the state passed to the reducer is undefined, you must \" + \"explicitly return the initial state. The initial state may \" + \"not be undefined. If you don't want to set a value for this reducer, \" + \"you can use null instead of undefined.\");\n }\n\n if (typeof reducer(undefined, {\n type: ActionTypes.PROBE_UNKNOWN_ACTION()\n }) === 'undefined') {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(13) : \"The slice reducer for key \\\"\" + key + \"\\\" returned undefined when probed with a random type. \" + (\"Don't try to handle '\" + ActionTypes.INIT + \"' or other actions in \\\"redux/*\\\" \") + \"namespace. They are considered private. Instead, you must return the \" + \"current state for any unknown actions, unless it is undefined, \" + \"in which case you must return the initial state, regardless of the \" + \"action type. The initial state may not be undefined, but can be null.\");\n }\n });\n}\n/**\n * Turns an object whose values are different reducer functions, into a single\n * reducer function. It will call every child reducer, and gather their results\n * into a single state object, whose keys correspond to the keys of the passed\n * reducer functions.\n *\n * @param {Object} reducers An object whose values correspond to different\n * reducer functions that need to be combined into one. One handy way to obtain\n * it is to use ES6 `import * as reducers` syntax. The reducers may never return\n * undefined for any action. Instead, they should return their initial state\n * if the state passed to them was undefined, and the current state for any\n * unrecognized action.\n *\n * @returns {Function} A reducer function that invokes every reducer inside the\n * passed object, and builds a state object with the same shape.\n */\n\n\nfunction combineReducers(reducers) {\n var reducerKeys = Object.keys(reducers);\n var finalReducers = {};\n\n for (var i = 0; i < reducerKeys.length; i++) {\n var key = reducerKeys[i];\n\n if (process.env.NODE_ENV !== 'production') {\n if (typeof reducers[key] === 'undefined') {\n warning(\"No reducer provided for key \\\"\" + key + \"\\\"\");\n }\n }\n\n if (typeof reducers[key] === 'function') {\n finalReducers[key] = reducers[key];\n }\n }\n\n var finalReducerKeys = Object.keys(finalReducers); // This is used to make sure we don't warn about the same\n // keys multiple times.\n\n var unexpectedKeyCache;\n\n if (process.env.NODE_ENV !== 'production') {\n unexpectedKeyCache = {};\n }\n\n var shapeAssertionError;\n\n try {\n assertReducerShape(finalReducers);\n } catch (e) {\n shapeAssertionError = e;\n }\n\n return function combination(state, action) {\n if (state === void 0) {\n state = {};\n }\n\n if (shapeAssertionError) {\n throw shapeAssertionError;\n }\n\n if (process.env.NODE_ENV !== 'production') {\n var warningMessage = getUnexpectedStateShapeWarningMessage(state, finalReducers, action, unexpectedKeyCache);\n\n if (warningMessage) {\n warning(warningMessage);\n }\n }\n\n var hasChanged = false;\n var nextState = {};\n\n for (var _i = 0; _i < finalReducerKeys.length; _i++) {\n var _key = finalReducerKeys[_i];\n var reducer = finalReducers[_key];\n var previousStateForKey = state[_key];\n var nextStateForKey = reducer(previousStateForKey, action);\n\n if (typeof nextStateForKey === 'undefined') {\n var actionType = action && action.type;\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(14) : \"When called with an action of type \" + (actionType ? \"\\\"\" + String(actionType) + \"\\\"\" : '(unknown type)') + \", the slice reducer for key \\\"\" + _key + \"\\\" returned undefined. \" + \"To ignore an action, you must explicitly return the previous state. \" + \"If you want this reducer to hold no value, you can return null instead of undefined.\");\n }\n\n nextState[_key] = nextStateForKey;\n hasChanged = hasChanged || nextStateForKey !== previousStateForKey;\n }\n\n hasChanged = hasChanged || finalReducerKeys.length !== Object.keys(state).length;\n return hasChanged ? nextState : state;\n };\n}\n\nfunction bindActionCreator(actionCreator, dispatch) {\n return function () {\n return dispatch(actionCreator.apply(this, arguments));\n };\n}\n/**\n * Turns an object whose values are action creators, into an object with the\n * same keys, but with every function wrapped into a `dispatch` call so they\n * may be invoked directly. This is just a convenience method, as you can call\n * `store.dispatch(MyActionCreators.doSomething())` yourself just fine.\n *\n * For convenience, you can also pass an action creator as the first argument,\n * and get a dispatch wrapped function in return.\n *\n * @param {Function|Object} actionCreators An object whose values are action\n * creator functions. One handy way to obtain it is to use ES6 `import * as`\n * syntax. You may also pass a single function.\n *\n * @param {Function} dispatch The `dispatch` function available on your Redux\n * store.\n *\n * @returns {Function|Object} The object mimicking the original object, but with\n * every action creator wrapped into the `dispatch` call. If you passed a\n * function as `actionCreators`, the return value will also be a single\n * function.\n */\n\n\nfunction bindActionCreators(actionCreators, dispatch) {\n if (typeof actionCreators === 'function') {\n return bindActionCreator(actionCreators, dispatch);\n }\n\n if (typeof actionCreators !== 'object' || actionCreators === null) {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(16) : \"bindActionCreators expected an object or a function, but instead received: '\" + kindOf(actionCreators) + \"'. \" + \"Did you write \\\"import ActionCreators from\\\" instead of \\\"import * as ActionCreators from\\\"?\");\n }\n\n var boundActionCreators = {};\n\n for (var key in actionCreators) {\n var actionCreator = actionCreators[key];\n\n if (typeof actionCreator === 'function') {\n boundActionCreators[key] = bindActionCreator(actionCreator, dispatch);\n }\n }\n\n return boundActionCreators;\n}\n\n/**\n * Composes single-argument functions from right to left. The rightmost\n * function can take multiple arguments as it provides the signature for\n * the resulting composite function.\n *\n * @param {...Function} funcs The functions to compose.\n * @returns {Function} A function obtained by composing the argument functions\n * from right to left. For example, compose(f, g, h) is identical to doing\n * (...args) => f(g(h(...args))).\n */\nfunction compose() {\n for (var _len = arguments.length, funcs = new Array(_len), _key = 0; _key < _len; _key++) {\n funcs[_key] = arguments[_key];\n }\n\n if (funcs.length === 0) {\n return function (arg) {\n return arg;\n };\n }\n\n if (funcs.length === 1) {\n return funcs[0];\n }\n\n return funcs.reduce(function (a, b) {\n return function () {\n return a(b.apply(void 0, arguments));\n };\n });\n}\n\n/**\n * Creates a store enhancer that applies middleware to the dispatch method\n * of the Redux store. This is handy for a variety of tasks, such as expressing\n * asynchronous actions in a concise manner, or logging every action payload.\n *\n * See `redux-thunk` package as an example of the Redux middleware.\n *\n * Because middleware is potentially asynchronous, this should be the first\n * store enhancer in the composition chain.\n *\n * Note that each middleware will be given the `dispatch` and `getState` functions\n * as named arguments.\n *\n * @param {...Function} middlewares The middleware chain to be applied.\n * @returns {Function} A store enhancer applying the middleware.\n */\n\nfunction applyMiddleware() {\n for (var _len = arguments.length, middlewares = new Array(_len), _key = 0; _key < _len; _key++) {\n middlewares[_key] = arguments[_key];\n }\n\n return function (createStore) {\n return function () {\n var store = createStore.apply(void 0, arguments);\n\n var _dispatch = function dispatch() {\n throw new Error(process.env.NODE_ENV === \"production\" ? formatProdErrorMessage(15) : 'Dispatching while constructing your middleware is not allowed. ' + 'Other middleware would not be applied to this dispatch.');\n };\n\n var middlewareAPI = {\n getState: store.getState,\n dispatch: function dispatch() {\n return _dispatch.apply(void 0, arguments);\n }\n };\n var chain = middlewares.map(function (middleware) {\n return middleware(middlewareAPI);\n });\n _dispatch = compose.apply(void 0, chain)(store.dispatch);\n return _objectSpread(_objectSpread({}, store), {}, {\n dispatch: _dispatch\n });\n };\n };\n}\n\n/*\n * This is a dummy function to check if the function name has been altered by minification.\n * If the function has been minified and NODE_ENV !== 'production', warn the user.\n */\n\nfunction isCrushed() {}\n\nif (process.env.NODE_ENV !== 'production' && typeof isCrushed.name === 'string' && isCrushed.name !== 'isCrushed') {\n warning('You are currently using minified code outside of NODE_ENV === \"production\". ' + 'This means that you are running a slower development build of Redux. ' + 'You can use loose-envify (https://github.com/zertosh/loose-envify) for browserify ' + 'or setting mode to production in webpack (https://webpack.js.org/concepts/mode/) ' + 'to ensure you have the correct code for your production build.');\n}\n\nexport { ActionTypes as __DO_NOT_USE__ActionTypes, applyMiddleware, bindActionCreators, combineReducers, compose, createStore, legacy_createStore };\n","/**\n * Use invariant() to assert state which your program assumes to be true.\n *\n * Provide sprintf-style format (only %s is supported) and arguments\n * to provide information about what broke and what you were\n * expecting.\n *\n * The invariant message will be stripped in production, but the invariant\n * will remain to ensure logic does not differ in production.\n */\n\nexport function invariant(condition: any, format: string, ...args: any[]) {\n\tif (isProduction()) {\n\t\tif (format === undefined) {\n\t\t\tthrow new Error('invariant requires an error message argument')\n\t\t}\n\t}\n\n\tif (!condition) {\n\t\tlet error\n\t\tif (format === undefined) {\n\t\t\terror = new Error(\n\t\t\t\t'Minified exception occurred; use the non-minified dev environment ' +\n\t\t\t\t\t'for the full error message and additional helpful warnings.',\n\t\t\t)\n\t\t} else {\n\t\t\tlet argIndex = 0\n\t\t\terror = new Error(\n\t\t\t\tformat.replace(/%s/g, function () {\n\t\t\t\t\treturn args[argIndex++]\n\t\t\t\t}),\n\t\t\t)\n\t\t\terror.name = 'Invariant Violation'\n\t\t}\n\n\t\t;(error as any).framesToPop = 1 // we don't care about invariant's own frame\n\t\tthrow error\n\t}\n}\n\nfunction isProduction() {\n\treturn (\n\t\ttypeof process !== 'undefined' && process.env['NODE_ENV'] === 'production'\n\t)\n}\n","// cheap lodash replacements\n\n/**\n * drop-in replacement for _.get\n * @param obj\n * @param path\n * @param defaultValue\n */\nexport function get<T>(obj: any, path: string, defaultValue: T): T {\n\treturn path\n\t\t.split('.')\n\t\t.reduce((a, c) => (a && a[c] ? a[c] : defaultValue || null), obj) as T\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T): T[] {\n\treturn items.filter((i) => i !== item)\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isString(input: any): boolean {\n\treturn typeof input === 'string'\n}\n\n/**\n * drop-in replacement for _.isString\n * @param input\n */\nexport function isObject(input: any): boolean {\n\treturn typeof input === 'object'\n}\n\n/**\n * replacement for _.xor\n * @param itemsA\n * @param itemsB\n */\nexport function xor<T extends string | number>(itemsA: T[], itemsB: T[]): T[] {\n\tconst map = new Map<T, number>()\n\tconst insertItem = (item: T) => {\n\t\tmap.set(item, map.has(item) ? (map.get(item) as number) + 1 : 1)\n\t}\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tmap.forEach((count, key) => {\n\t\tif (count === 1) {\n\t\t\tresult.push(key)\n\t\t}\n\t})\n\treturn result\n}\n\n/**\n * replacement for _.intersection\n * @param itemsA\n * @param itemsB\n */\nexport function intersection<T>(itemsA: T[], itemsB: T[]): T[] {\n\treturn itemsA.filter((t) => itemsB.indexOf(t) > -1)\n}\n","export const INIT_COORDS = 'dnd-core/INIT_COORDS'\nexport const BEGIN_DRAG = 'dnd-core/BEGIN_DRAG'\nexport const PUBLISH_DRAG_SOURCE = 'dnd-core/PUBLISH_DRAG_SOURCE'\nexport const HOVER = 'dnd-core/HOVER'\nexport const DROP = 'dnd-core/DROP'\nexport const END_DRAG = 'dnd-core/END_DRAG'\n","import type { AnyAction } from 'redux'\n\nimport type { XYCoord } from '../../../interfaces.js'\nimport { INIT_COORDS } from '../types.js'\n\nexport function setClientOffset(\n\tclientOffset: XYCoord | null | undefined,\n\tsourceClientOffset?: XYCoord | null | undefined,\n): AnyAction {\n\treturn {\n\t\ttype: INIT_COORDS,\n\t\tpayload: {\n\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\tclientOffset: clientOffset || null,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tBeginDragOptions,\n\tBeginDragPayload,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tXYCoord,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { setClientOffset } from './local/setClientOffset.js'\nimport { BEGIN_DRAG, INIT_COORDS } from './types.js'\n\nconst ResetCoordinatesAction = {\n\ttype: INIT_COORDS,\n\tpayload: {\n\t\tclientOffset: null,\n\t\tsourceClientOffset: null,\n\t},\n}\n\nexport function createBeginDrag(manager: DragDropManager) {\n\treturn function beginDrag(\n\t\tsourceIds: Identifier[] = [],\n\t\toptions: BeginDragOptions = {\n\t\t\tpublishSource: true,\n\t\t},\n\t): Action<BeginDragPayload> | undefined {\n\t\tconst {\n\t\t\tpublishSource = true,\n\t\t\tclientOffset,\n\t\t\tgetSourceClientOffset,\n\t\t}: BeginDragOptions = options\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\n\t\t// Initialize the coordinates using the client offset\n\t\tmanager.dispatch(setClientOffset(clientOffset))\n\n\t\tverifyInvariants(sourceIds, monitor, registry)\n\n\t\t// Get the draggable source\n\t\tconst sourceId = getDraggableSource(sourceIds, monitor)\n\t\tif (sourceId == null) {\n\t\t\tmanager.dispatch(ResetCoordinatesAction)\n\t\t\treturn\n\t\t}\n\n\t\t// Get the source client offset\n\t\tlet sourceClientOffset: XYCoord | null = null\n\t\tif (clientOffset) {\n\t\t\tif (!getSourceClientOffset) {\n\t\t\t\tthrow new Error('getSourceClientOffset must be defined')\n\t\t\t}\n\t\t\tverifyGetSourceClientOffsetIsFunction(getSourceClientOffset)\n\t\t\tsourceClientOffset = getSourceClientOffset(sourceId)\n\t\t}\n\n\t\t// Initialize the full coordinates\n\t\tmanager.dispatch(setClientOffset(clientOffset, sourceClientOffset))\n\n\t\tconst source = registry.getSource(sourceId)\n\t\tconst item = source.beginDrag(monitor, sourceId)\n\t\t// If source.beginDrag returns null, this is an indicator to cancel the drag\n\t\tif (item == null) {\n\t\t\treturn undefined\n\t\t}\n\t\tverifyItemIsObject(item)\n\t\tregistry.pinSource(sourceId)\n\n\t\tconst itemType = registry.getSourceType(sourceId)\n\t\treturn {\n\t\t\ttype: BEGIN_DRAG,\n\t\t\tpayload: {\n\t\t\t\titemType,\n\t\t\t\titem,\n\t\t\t\tsourceId,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t\tsourceClientOffset: sourceClientOffset || null,\n\t\t\t\tisSourcePublic: !!publishSource,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyInvariants(\n\tsourceIds: Identifier[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(!monitor.isDragging(), 'Cannot call beginDrag while dragging.')\n\tsourceIds.forEach(function (sourceId) {\n\t\tinvariant(\n\t\t\tregistry.getSource(sourceId),\n\t\t\t'Expected sourceIds to be registered.',\n\t\t)\n\t})\n}\n\nfunction verifyGetSourceClientOffsetIsFunction(getSourceClientOffset: any) {\n\tinvariant(\n\t\ttypeof getSourceClientOffset === 'function',\n\t\t'When clientOffset is provided, getSourceClientOffset must be a function.',\n\t)\n}\n\nfunction verifyItemIsObject(item: any) {\n\tinvariant(isObject(item), 'Item must be an object.')\n}\n\nfunction getDraggableSource(sourceIds: Identifier[], monitor: DragDropMonitor) {\n\tlet sourceId = null\n\tfor (let i = sourceIds.length - 1; i >= 0; i--) {\n\t\tif (monitor.canDragSource(sourceIds[i])) {\n\t\t\tsourceId = sourceIds[i]\n\t\t\tbreak\n\t\t}\n\t}\n\treturn sourceId\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tDropPayload,\n\tHandlerRegistry,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { isObject } from '../../utils/js_utils.js'\nimport { DROP } from './types.js'\n\nexport function createDrop(manager: DragDropManager) {\n\treturn function drop(options = {}): void {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyInvariants(monitor)\n\t\tconst targetIds = getDroppableTargets(monitor)\n\n\t\t// Multiple actions are dispatched here, which is why this doesn't return an action\n\t\ttargetIds.forEach((targetId, index) => {\n\t\t\tconst dropResult = determineDropResult(targetId, index, registry, monitor)\n\t\t\tconst action: Action<DropPayload> = {\n\t\t\t\ttype: DROP,\n\t\t\t\tpayload: {\n\t\t\t\t\tdropResult: {\n\t\t\t\t\t\t...options,\n\t\t\t\t\t\t...dropResult,\n\t\t\t\t\t},\n\t\t\t\t},\n\t\t\t}\n\t\t\tmanager.dispatch(action)\n\t\t})\n\t}\n}\n\nfunction verifyInvariants(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call drop while not dragging.')\n\tinvariant(\n\t\t!monitor.didDrop(),\n\t\t'Cannot call drop twice during one drag operation.',\n\t)\n}\n\nfunction determineDropResult(\n\ttargetId: Identifier,\n\tindex: number,\n\tregistry: HandlerRegistry,\n\tmonitor: DragDropMonitor,\n) {\n\tconst target = registry.getTarget(targetId)\n\tlet dropResult = target ? target.drop(monitor, targetId) : undefined\n\tverifyDropResultType(dropResult)\n\tif (typeof dropResult === 'undefined') {\n\t\tdropResult = index === 0 ? {} : monitor.getDropResult()\n\t}\n\treturn dropResult\n}\n\nfunction verifyDropResultType(dropResult: any) {\n\tinvariant(\n\t\ttypeof dropResult === 'undefined' || isObject(dropResult),\n\t\t'Drop result must either be an object or undefined.',\n\t)\n}\n\nfunction getDroppableTargets(monitor: DragDropMonitor) {\n\tconst targetIds = monitor\n\t\t.getTargetIds()\n\t\t.filter(monitor.canDropOnTarget, monitor)\n\ttargetIds.reverse()\n\treturn targetIds\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tSentinelAction,\n} from '../../interfaces.js'\nimport { END_DRAG } from './types.js'\n\nexport function createEndDrag(manager: DragDropManager) {\n\treturn function endDrag(): SentinelAction {\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tverifyIsDragging(monitor)\n\n\t\tconst sourceId = monitor.getSourceId()\n\t\tif (sourceId != null) {\n\t\t\tconst source = registry.getSource(sourceId, true)\n\t\t\tsource.endDrag(monitor, sourceId)\n\t\t\tregistry.unpinSource()\n\t\t}\n\t\treturn { type: END_DRAG }\n\t}\n}\n\nfunction verifyIsDragging(monitor: DragDropMonitor) {\n\tinvariant(monitor.isDragging(), 'Cannot call endDrag while not dragging.')\n}\n","import type { Identifier } from '../interfaces.js'\n\nexport function matchesType(\n\ttargetType: Identifier | Identifier[] | null,\n\tdraggedItemType: Identifier | null,\n): boolean {\n\tif (draggedItemType === null) {\n\t\treturn targetType === null\n\t}\n\treturn Array.isArray(targetType)\n\t\t? (targetType as Identifier[]).some((t) => t === draggedItemType)\n\t\t: targetType === draggedItemType\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tAction,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tHoverOptions,\n\tHoverPayload,\n\tIdentifier,\n} from '../../interfaces.js'\nimport { matchesType } from '../../utils/matchesType.js'\nimport { HOVER } from './types.js'\n\nexport function createHover(manager: DragDropManager) {\n\treturn function hover(\n\t\ttargetIdsArg: string[],\n\t\t{ clientOffset }: HoverOptions = {},\n\t): Action<HoverPayload> {\n\t\tverifyTargetIdsIsArray(targetIdsArg)\n\t\tconst targetIds = targetIdsArg.slice(0)\n\t\tconst monitor = manager.getMonitor()\n\t\tconst registry = manager.getRegistry()\n\t\tconst draggedItemType = monitor.getItemType()\n\t\tremoveNonMatchingTargetIds(targetIds, registry, draggedItemType)\n\t\tcheckInvariants(targetIds, monitor, registry)\n\t\thoverAllTargets(targetIds, monitor, registry)\n\n\t\treturn {\n\t\t\ttype: HOVER,\n\t\t\tpayload: {\n\t\t\t\ttargetIds,\n\t\t\t\tclientOffset: clientOffset || null,\n\t\t\t},\n\t\t}\n\t}\n}\n\nfunction verifyTargetIdsIsArray(targetIdsArg: string[]) {\n\tinvariant(Array.isArray(targetIdsArg), 'Expected targetIds to be an array.')\n}\n\nfunction checkInvariants(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\tinvariant(monitor.isDragging(), 'Cannot call hover while not dragging.')\n\tinvariant(!monitor.didDrop(), 'Cannot call hover after drop.')\n\tfor (let i = 0; i < targetIds.length; i++) {\n\t\tconst targetId = targetIds[i] as string\n\t\tinvariant(\n\t\t\ttargetIds.lastIndexOf(targetId) === i,\n\t\t\t'Expected targetIds to be unique in the passed array.',\n\t\t)\n\n\t\tconst target = registry.getTarget(targetId)\n\t\tinvariant(target, 'Expected targetIds to be registered.')\n\t}\n}\n\nfunction removeNonMatchingTargetIds(\n\ttargetIds: string[],\n\tregistry: HandlerRegistry,\n\tdraggedItemType: Identifier | null,\n) {\n\t// Remove those targetIds that don't match the targetType. This\n\t// fixes shallow isOver which would only be non-shallow because of\n\t// non-matching targets.\n\tfor (let i = targetIds.length - 1; i >= 0; i--) {\n\t\tconst targetId = targetIds[i] as string\n\t\tconst targetType = registry.getTargetType(targetId)\n\t\tif (!matchesType(targetType, draggedItemType)) {\n\t\t\ttargetIds.splice(i, 1)\n\t\t}\n\t}\n}\n\nfunction hoverAllTargets(\n\ttargetIds: string[],\n\tmonitor: DragDropMonitor,\n\tregistry: HandlerRegistry,\n) {\n\t// Finally call hover on all matching targets.\n\ttargetIds.forEach(function (targetId) {\n\t\tconst target = registry.getTarget(targetId)\n\t\ttarget.hover(monitor, targetId)\n\t})\n}\n","import type { DragDropManager, SentinelAction } from '../../interfaces.js'\nimport { PUBLISH_DRAG_SOURCE } from './types.js'\n\nexport function createPublishDragSource(manager: DragDropManager) {\n\treturn function publishDragSource(): SentinelAction | undefined {\n\t\tconst monitor = manager.getMonitor()\n\t\tif (monitor.isDragging()) {\n\t\t\treturn { type: PUBLISH_DRAG_SOURCE }\n\t\t}\n\t\treturn\n\t}\n}\n","import type { DragDropActions, DragDropManager } from '../../interfaces.js'\nimport { createBeginDrag } from './beginDrag.js'\nimport { createDrop } from './drop.js'\nimport { createEndDrag } from './endDrag.js'\nimport { createHover } from './hover.js'\nimport { createPublishDragSource } from './publishDragSource.js'\n\nexport * from './types.js'\n\nexport function createDragDropActions(\n\tmanager: DragDropManager,\n): DragDropActions {\n\treturn {\n\t\tbeginDrag: createBeginDrag(manager),\n\t\tpublishDragSource: createPublishDragSource(manager),\n\t\thover: createHover(manager),\n\t\tdrop: createDrop(manager),\n\t\tendDrag: createEndDrag(manager),\n\t}\n}\n","import type { Action, Store } from 'redux'\n\nimport { createDragDropActions } from '../actions/dragDrop/index.js'\nimport type {\n\tActionCreator,\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport type { DragDropMonitorImpl } from './DragDropMonitorImpl.js'\n\nexport class DragDropManagerImpl implements DragDropManager {\n\tprivate store: Store<State>\n\tprivate monitor: DragDropMonitor\n\tprivate backend: Backend | undefined\n\tprivate isSetUp = false\n\n\tpublic constructor(store: Store<State>, monitor: DragDropMonitor) {\n\t\tthis.store = store\n\t\tthis.monitor = monitor\n\t\tstore.subscribe(this.handleRefCountChange)\n\t}\n\n\tpublic receiveBackend(backend: Backend): void {\n\t\tthis.backend = backend\n\t}\n\n\tpublic getMonitor(): DragDropMonitor {\n\t\treturn this.monitor\n\t}\n\n\tpublic getBackend(): Backend {\n\t\treturn this.backend as Backend\n\t}\n\n\tpublic getRegistry(): HandlerRegistry {\n\t\treturn (this.monitor as DragDropMonitorImpl).registry\n\t}\n\n\tpublic getActions(): DragDropActions {\n\t\t/* eslint-disable-next-line @typescript-eslint/no-this-alias */\n\t\tconst manager = this\n\t\tconst { dispatch } = this.store\n\n\t\tfunction bindActionCreator(actionCreator: ActionCreator<any>) {\n\t\t\treturn (...args: any[]) => {\n\t\t\t\tconst action = actionCreator.apply(manager, args as any)\n\t\t\t\tif (typeof action !== 'undefined') {\n\t\t\t\t\tdispatch(action)\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\n\t\tconst actions = createDragDropActions(this)\n\n\t\treturn Object.keys(actions).reduce(\n\t\t\t(boundActions: DragDropActions, key: string) => {\n\t\t\t\tconst action: ActionCreator<any> = (actions as any)[\n\t\t\t\t\tkey\n\t\t\t\t] as ActionCreator<any>\n\t\t\t\t;(boundActions as any)[key] = bindActionCreator(action)\n\t\t\t\treturn boundActions\n\t\t\t},\n\t\t\t{} as DragDropActions,\n\t\t)\n\t}\n\n\tpublic dispatch(action: Action<any>): void {\n\t\tthis.store.dispatch(action)\n\t}\n\n\tprivate handleRefCountChange = (): void => {\n\t\tconst shouldSetUp = this.store.getState().refCount > 0\n\t\tif (this.backend) {\n\t\t\tif (shouldSetUp && !this.isSetUp) {\n\t\t\t\tthis.backend.setup()\n\t\t\t\tthis.isSetUp = true\n\t\t\t} else if (!shouldSetUp && this.isSetUp) {\n\t\t\t\tthis.backend.teardown()\n\t\t\t\tthis.isSetUp = false\n\t\t\t}\n\t\t}\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\nimport type { State } from '../reducers/dragOffset.js'\n\n/**\n * Coordinate addition\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function add(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x + b.x,\n\t\ty: a.y + b.y,\n\t}\n}\n\n/**\n * Coordinate subtraction\n * @param a The first coordinate\n * @param b The second coordinate\n */\nexport function subtract(a: XYCoord, b: XYCoord): XYCoord {\n\treturn {\n\t\tx: a.x - b.x,\n\t\ty: a.y - b.y,\n\t}\n}\n\n/**\n * Returns the cartesian distance of the drag source component's position, based on its position\n * at the time when the current drag operation has started, and the movement difference.\n *\n * Returns null if no item is being dragged.\n *\n * @param state The offset state to compute from\n */\nexport function getSourceClientOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset, initialSourceClientOffset } = state\n\tif (!clientOffset || !initialClientOffset || !initialSourceClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(\n\t\tadd(clientOffset, initialSourceClientOffset),\n\t\tinitialClientOffset,\n\t)\n}\n\n/**\n * Determines the x,y offset between the client offset and the initial client offset\n *\n * @param state The offset state to compute from\n */\nexport function getDifferenceFromInitialOffset(state: State): XYCoord | null {\n\tconst { clientOffset, initialClientOffset } = state\n\tif (!clientOffset || !initialClientOffset) {\n\t\treturn null\n\t}\n\treturn subtract(clientOffset, initialClientOffset)\n}\n","import { intersection } from './js_utils.js'\n\nexport const NONE: string[] = []\nexport const ALL: string[] = []\n// Add these flags for debug\n;(NONE as any).__IS_NONE__ = true\n;(ALL as any).__IS_ALL__ = true\n\n/**\n * Determines if the given handler IDs are dirty or not.\n *\n * @param dirtyIds The set of dirty handler ids\n * @param handlerIds The set of handler ids to check\n */\nexport function areDirty(\n\tdirtyIds: string[],\n\thandlerIds: string[] | undefined,\n): boolean {\n\tif (dirtyIds === NONE) {\n\t\treturn false\n\t}\n\n\tif (dirtyIds === ALL || typeof handlerIds === 'undefined') {\n\t\treturn true\n\t}\n\n\tconst commonIds = intersection(handlerIds, dirtyIds)\n\treturn commonIds.length > 0\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport type {\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport {\n\tgetDifferenceFromInitialOffset,\n\tgetSourceClientOffset,\n} from '../utils/coords.js'\nimport { areDirty } from '../utils/dirtiness.js'\nimport { matchesType } from '../utils/matchesType.js'\n\nexport class DragDropMonitorImpl implements DragDropMonitor {\n\tprivate store: Store<State>\n\tpublic readonly registry: HandlerRegistry\n\n\tpublic constructor(store: Store<State>, registry: HandlerRegistry) {\n\t\tthis.store = store\n\t\tthis.registry = registry\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions: { handlerIds?: string[] } = {},\n\t): Unsubscribe {\n\t\tconst { handlerIds } = options\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\t\tinvariant(\n\t\t\ttypeof handlerIds === 'undefined' || Array.isArray(handlerIds),\n\t\t\t'handlerIds, when specified, must be an array of strings.',\n\t\t)\n\n\t\tlet prevStateId = this.store.getState().stateId\n\t\tconst handleChange = () => {\n\t\t\tconst state = this.store.getState()\n\t\t\tconst currentStateId = state.stateId\n\t\t\ttry {\n\t\t\t\tconst canSkipListener =\n\t\t\t\t\tcurrentStateId === prevStateId ||\n\t\t\t\t\t(currentStateId === prevStateId + 1 &&\n\t\t\t\t\t\t!areDirty(state.dirtyHandlerIds, handlerIds))\n\n\t\t\t\tif (!canSkipListener) {\n\t\t\t\t\tlistener()\n\t\t\t\t}\n\t\t\t} finally {\n\t\t\t\tprevStateId = currentStateId\n\t\t\t}\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\tinvariant(typeof listener === 'function', 'listener must be a function.')\n\n\t\tlet previousState = this.store.getState().dragOffset\n\t\tconst handleChange = () => {\n\t\t\tconst nextState = this.store.getState().dragOffset\n\t\t\tif (nextState === previousState) {\n\t\t\t\treturn\n\t\t\t}\n\n\t\t\tpreviousState = nextState\n\t\t\tlistener()\n\t\t}\n\n\t\treturn this.store.subscribe(handleChange)\n\t}\n\n\tpublic canDragSource(sourceId: string | undefined): boolean {\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.canDrag(this, sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\t\tconst target = this.registry.getTarget(targetId)\n\t\tinvariant(target, `Expected to find a valid target. targetId=${targetId}`)\n\n\t\tif (!this.isDragging() || this.didDrop()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\treturn (\n\t\t\tmatchesType(targetType, draggedItemType) && target.canDrop(this, targetId)\n\t\t)\n\t}\n\n\tpublic isDragging(): boolean {\n\t\treturn Boolean(this.getItemType())\n\t}\n\n\tpublic isDraggingSource(sourceId: string | undefined): boolean {\n\t\t// undefined on initial render\n\t\tif (!sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tconst source = this.registry.getSource(sourceId, true)\n\t\tinvariant(source, `Expected to find a valid source. sourceId=${sourceId}`)\n\n\t\tif (!this.isDragging() || !this.isSourcePublic()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst sourceType = this.registry.getSourceType(sourceId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (sourceType !== draggedItemType) {\n\t\t\treturn false\n\t\t}\n\n\t\treturn source.isDragging(this, sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: string | undefined,\n\t\toptions = { shallow: false },\n\t): boolean {\n\t\t// undefined on initial render\n\t\tif (!targetId) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst { shallow } = options\n\t\tif (!this.isDragging()) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetType = this.registry.getTargetType(targetId)\n\t\tconst draggedItemType = this.getItemType()\n\t\tif (draggedItemType && !matchesType(targetType, draggedItemType)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst targetIds = this.getTargetIds()\n\t\tif (!targetIds.length) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst index = targetIds.indexOf(targetId)\n\t\tif (shallow) {\n\t\t\treturn index === targetIds.length - 1\n\t\t} else {\n\t\t\treturn index > -1\n\t\t}\n\t}\n\n\tpublic getItemType(): Identifier {\n\t\treturn this.store.getState().dragOperation.itemType as Identifier\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.store.getState().dragOperation.item\n\t}\n\n\tpublic getSourceId(): string | null {\n\t\treturn this.store.getState().dragOperation.sourceId\n\t}\n\n\tpublic getTargetIds(): string[] {\n\t\treturn this.store.getState().dragOperation.targetIds\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.store.getState().dragOperation.dropResult\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.store.getState().dragOperation.didDrop\n\t}\n\n\tpublic isSourcePublic(): boolean {\n\t\treturn Boolean(this.store.getState().dragOperation.isSourcePublic)\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialClientOffset\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.initialSourceClientOffset\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.store.getState().dragOffset.clientOffset\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn getSourceClientOffset(this.store.getState().dragOffset)\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn getDifferenceFromInitialOffset(this.store.getState().dragOffset)\n\t}\n}\n","// Safari 6 and 6.1 for desktop, iPad, and iPhone are the only browsers that\n// have WebKitMutationObserver but not un-prefixed MutationObserver.\n// Must use `global` or `self` instead of `window` to work in both frames and web\n// workers. `global` is a provision of Browserify, Mr, Mrs, or Mop.\n\n/* globals self */\nconst scope = typeof global !== 'undefined' ? global : self\nconst BrowserMutationObserver =\n\t(scope as any).MutationObserver || (scope as any).WebKitMutationObserver\n\nexport function makeRequestCallFromTimer(callback: () => void) {\n\treturn function requestCall() {\n\t\t// We dispatch a timeout with a specified delay of 0 for engines that\n\t\t// can reliably accommodate that request. This will usually be snapped\n\t\t// to a 4 milisecond delay, but once we're flushing, there's no delay\n\t\t// between events.\n\t\tconst timeoutHandle = setTimeout(handleTimer, 0)\n\t\t// However, since this timer gets frequently dropped in Firefox\n\t\t// workers, we enlist an interval handle that will try to fire\n\t\t// an event 20 times per second until it succeeds.\n\t\tconst intervalHandle = setInterval(handleTimer, 50)\n\n\t\tfunction handleTimer() {\n\t\t\t// Whichever timer succeeds will cancel both timers and\n\t\t\t// execute the callback.\n\t\t\tclearTimeout(timeoutHandle)\n\t\t\tclearInterval(intervalHandle)\n\t\t\tcallback()\n\t\t}\n\t}\n}\n\n// To request a high priority event, we induce a mutation observer by toggling\n// the text of a text node between \"1\" and \"-1\".\nexport function makeRequestCallFromMutationObserver(callback: () => void) {\n\tlet toggle = 1\n\tconst observer = new BrowserMutationObserver(callback)\n\tconst node = document.createTextNode('')\n\tobserver.observe(node, { characterData: true })\n\treturn function requestCall() {\n\t\ttoggle = -toggle\n\t\t;(node as any).data = toggle\n\t}\n}\n\nexport const makeRequestCall =\n\ttypeof BrowserMutationObserver === 'function'\n\t\t? // MutationObservers are desirable because they have high priority and work\n\t\t // reliably everywhere they are implemented.\n\t\t // They are implemented in all modern browsers.\n\t\t //\n\t\t // - Android 4-4.3\n\t\t // - Chrome 26-34\n\t\t // - Firefox 14-29\n\t\t // - Internet Explorer 11\n\t\t // - iPad Safari 6-7.1\n\t\t // - iPhone Safari 7-7.1\n\t\t // - Safari 6-7\n\t\t makeRequestCallFromMutationObserver\n\t\t: // MessageChannels are desirable because they give direct access to the HTML\n\t\t // task queue, are implemented in Internet Explorer 10, Safari 5.0-1, and Opera\n\t\t // 11-12, and in web workers in many engines.\n\t\t // Although message channels yield to any queued rendering and IO tasks, they\n\t\t // would be better than imposing the 4ms delay of timers.\n\t\t // However, they do not work reliably in Internet Explorer or Safari.\n\n\t\t // Internet Explorer 10 is the only browser that has setImmediate but does\n\t\t // not have MutationObservers.\n\t\t // Although setImmediate yields to the browser's renderer, it would be\n\t\t // preferrable to falling back to setTimeout since it does not have\n\t\t // the minimum 4ms penalty.\n\t\t // Unfortunately there appears to be a bug in Internet Explorer 10 Mobile (and\n\t\t // Desktop to a lesser extent) that renders both setImmediate and\n\t\t // MessageChannel useless for the purposes of ASAP.\n\t\t // https://github.com/kriskowal/q/issues/396\n\n\t\t // Timers are implemented universally.\n\t\t // We fall back to timers in workers in most engines, and in foreground\n\t\t // contexts in the following browsers.\n\t\t // However, note that even this simple case requires nuances to operate in a\n\t\t // broad spectrum of browsers.\n\t\t //\n\t\t // - Firefox 3-13\n\t\t // - Internet Explorer 6-9\n\t\t // - iPad Safari 4.3\n\t\t // - Lynx 2.8.7\n\t\t makeRequestCallFromTimer\n","/* eslint-disable no-restricted-globals, @typescript-eslint/ban-ts-comment, @typescript-eslint/no-unused-vars, @typescript-eslint/no-non-null-assertion */\nimport { makeRequestCall, makeRequestCallFromTimer } from './makeRequestCall.js'\nimport type { Task } from './types.js'\n\nexport class AsapQueue {\n\tprivate queue: Task[] = []\n\t// We queue errors to ensure they are thrown in right order (FIFO).\n\t// Array-as-queue is good enough here, since we are just dealing with exceptions.\n\tprivate pendingErrors: any[] = []\n\t// Once a flush has been requested, no further calls to `requestFlush` are\n\t// necessary until the next `flush` completes.\n\t// @ts-ignore\n\tprivate flushing = false\n\t// `requestFlush` is an implementation-specific method that attempts to kick\n\t// off a `flush` event as quickly as possible. `flush` will attempt to exhaust\n\t// the event queue before yielding to the browser's own event loop.\n\tprivate requestFlush: () => void\n\n\tprivate requestErrorThrow: () => void\n\t// The position of the next task to execute in the task queue. This is\n\t// preserved between calls to `flush` so that it can be resumed if\n\t// a task throws an exception.\n\tprivate index = 0\n\t// If a task schedules additional tasks recursively, the task queue can grow\n\t// unbounded. To prevent memory exhaustion, the task queue will periodically\n\t// truncate already-completed tasks.\n\tprivate capacity = 1024\n\n\tpublic constructor() {\n\t\t// `requestFlush` requests that the high priority event queue be flushed as\n\t\t// soon as possible.\n\t\t// This is useful to prevent an error thrown in a task from stalling the event\n\t\t// queue if the exception handled by Node.js’s\n\t\t// `process.on(\"uncaughtException\")` or by a domain.\n\n\t\t// `requestFlush` is implemented using a strategy based on data collected from\n\t\t// every available SauceLabs Selenium web driver worker at time of writing.\n\t\t// https://docs.google.com/spreadsheets/d/1mG-5UYGup5qxGdEMWkhP6BWCz053NUb2E1QoUTU16uA/edit#gid=783724593\n\t\tthis.requestFlush = makeRequestCall(this.flush)\n\t\tthis.requestErrorThrow = makeRequestCallFromTimer(() => {\n\t\t\t// Throw first error\n\t\t\tif (this.pendingErrors.length) {\n\t\t\t\tthrow this.pendingErrors.shift()\n\t\t\t}\n\t\t})\n\t}\n\n\t// Use the fastest means possible to execute a task in its own turn, with\n\t// priority over other events including IO, animation, reflow, and redraw\n\t// events in browsers.\n\t//\n\t// An exception thrown by a task will permanently interrupt the processing of\n\t// subsequent tasks. The higher level `asap` function ensures that if an\n\t// exception is thrown by a task, that the task queue will continue flushing as\n\t// soon as possible, but if you use `rawAsap` directly, you are responsible to\n\t// either ensure that no exceptions are thrown from your task, or to manually\n\t// call `rawAsap.requestFlush` if an exception is thrown.\n\tpublic enqueueTask(task: Task): void {\n\t\tconst { queue: q, requestFlush } = this\n\t\tif (!q.length) {\n\t\t\trequestFlush()\n\t\t\tthis.flushing = true\n\t\t}\n\t\t// Equivalent to push, but avoids a function call.\n\t\tq[q.length] = task\n\t}\n\n\t// The flush function processes all tasks that have been scheduled with\n\t// `rawAsap` unless and until one of those tasks throws an exception.\n\t// If a task throws an exception, `flush` ensures that its state will remain\n\t// consistent and will resume where it left off when called again.\n\t// However, `flush` does not make any arrangements to be called again if an\n\t// exception is thrown.\n\tprivate flush = () => {\n\t\tconst { queue: q } = this\n\t\twhile (this.index < q.length) {\n\t\t\tconst currentIndex = this.index\n\t\t\t// Advance the index before calling the task. This ensures that we will\n\t\t\t// begin flushing on the next task the task throws an error.\n\t\t\tthis.index++\n\t\t\tq[currentIndex]!.call()\n\t\t\t// Prevent leaking memory for long chains of recursive calls to `asap`.\n\t\t\t// If we call `asap` within tasks scheduled by `asap`, the queue will\n\t\t\t// grow, but to avoid an O(n) walk for every task we execute, we don't\n\t\t\t// shift tasks off the queue after they have been executed.\n\t\t\t// Instead, we periodically shift 1024 tasks off the queue.\n\t\t\tif (this.index > this.capacity) {\n\t\t\t\t// Manually shift all values starting at the index back to the\n\t\t\t\t// beginning of the queue.\n\t\t\t\tfor (\n\t\t\t\t\tlet scan = 0, newLength = q.length - this.index;\n\t\t\t\t\tscan < newLength;\n\t\t\t\t\tscan++\n\t\t\t\t) {\n\t\t\t\t\tq[scan] = q[scan + this.index]!\n\t\t\t\t}\n\t\t\t\tq.length -= this.index\n\t\t\t\tthis.index = 0\n\t\t\t}\n\t\t}\n\t\tq.length = 0\n\t\tthis.index = 0\n\t\tthis.flushing = false\n\t}\n\n\t// In a web browser, exceptions are not fatal. However, to avoid\n\t// slowing down the queue of pending tasks, we rethrow the error in a\n\t// lower priority turn.\n\tpublic registerPendingError = (err: any) => {\n\t\tthis.pendingErrors.push(err)\n\t\tthis.requestErrorThrow()\n\t}\n}\n\n// The message channel technique was discovered by Malte Ubl and was the\n// original foundation for this library.\n// http://www.nonblocking.io/2011/06/windownexttick.html\n\n// Safari 6.0.5 (at least) intermittently fails to create message ports on a\n// page's first load. Thankfully, this version of Safari supports\n// MutationObservers, so we don't need to fall back in that case.\n\n// function makeRequestCallFromMessageChannel(callback) {\n// var channel = new MessageChannel();\n// channel.port1.onmessage = callback;\n// return function requestCall() {\n// channel.port2.postMessage(0);\n// };\n// }\n\n// For reasons explained above, we are also unable to use `setImmediate`\n// under any circumstances.\n// Even if we were, there is another bug in Internet Explorer 10.\n// It is not sufficient to assign `setImmediate` to `requestFlush` because\n// `setImmediate` must be called *by name* and therefore must be wrapped in a\n// closure.\n// Never forget.\n\n// function makeRequestCallFromSetImmediate(callback) {\n// return function requestCall() {\n// setImmediate(callback);\n// };\n// }\n\n// Safari 6.0 has a problem where timers will get lost while the user is\n// scrolling. This problem does not impact ASAP because Safari 6.0 supports\n// mutation observers, so that implementation is used instead.\n// However, if we ever elect to use timers in Safari, the prevalent work-around\n// is to add a scroll event listener that calls for a flush.\n\n// `setTimeout` does not call the passed callback if the delay is less than\n// approximately 7 in web workers in Firefox 8 through 18, and sometimes not\n// even then.\n\n// This is for `asap.js` only.\n// Its name will be periodically randomized to break any code that depends on\n// // its existence.\n// rawAsap.makeRequestCallFromTimer = makeRequestCallFromTimer\n\n// ASAP was originally a nextTick shim included in Q. This was factored out\n// into this ASAP package. It was later adapted to RSVP which made further\n// amendments. These decisions, particularly to marginalize MessageChannel and\n// to capture the MutationObserver implementation in a closure, were integrated\n// back into ASAP proper.\n// https://github.com/tildeio/rsvp.js/blob/cddf7232546a9cf858524b75cde6f9edf72620a7/lib/rsvp/asap.js\n","// We wrap tasks with recyclable task objects. A task object implements\n\nimport type { Task, TaskFn } from 'types'\n\n// `call`, just like a function.\nexport class RawTask implements Task {\n\tpublic task: TaskFn | null = null\n\n\tpublic constructor(\n\t\tprivate onError: (err: any) => void,\n\t\tprivate release: (t: RawTask) => void,\n\t) {}\n\n\tpublic call() {\n\t\ttry {\n\t\t\tthis.task && this.task()\n\t\t} catch (error) {\n\t\t\tthis.onError(error)\n\t\t} finally {\n\t\t\tthis.task = null\n\t\t\tthis.release(this)\n\t\t}\n\t}\n}\n","import { RawTask } from './RawTask.js'\nimport type { Task } from './types.js'\n\nexport class TaskFactory {\n\tprivate freeTasks: RawTask[] = []\n\n\tpublic constructor(private onError: (err: any) => void) {}\n\n\tpublic create(task: () => void): Task {\n\t\tconst tasks = this.freeTasks\n\t\tconst t = tasks.length\n\t\t\t? (tasks.pop() as RawTask)\n\t\t\t: new RawTask(this.onError, (t) => (tasks[tasks.length] = t))\n\t\tt.task = task\n\t\treturn t\n\t}\n}\n","import { AsapQueue } from './AsapQueue.js'\nimport { TaskFactory } from './TaskFactory.js'\nimport type { TaskFn } from './types.js'\n\nconst asapQueue = new AsapQueue()\nconst taskFactory = new TaskFactory(asapQueue.registerPendingError)\n\n/**\n * Calls a task as soon as possible after returning, in its own event, with priority\n * over other events like animation, reflow, and repaint. An error thrown from an\n * event will not interrupt, nor even substantially slow down the processing of\n * other events, but will be rather postponed to a lower priority event.\n * @param {{call}} task A callable object, typically a function that takes no\n * arguments.\n */\nexport function asap(task: TaskFn) {\n\tasapQueue.enqueueTask(taskFactory.create(task))\n}\n","import type { Action, SourceIdPayload, TargetIdPayload } from '../interfaces.js'\n\nexport const ADD_SOURCE = 'dnd-core/ADD_SOURCE'\nexport const ADD_TARGET = 'dnd-core/ADD_TARGET'\nexport const REMOVE_SOURCE = 'dnd-core/REMOVE_SOURCE'\nexport const REMOVE_TARGET = 'dnd-core/REMOVE_TARGET'\n\nexport function addSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: ADD_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function addTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: ADD_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n\nexport function removeSource(sourceId: string): Action<SourceIdPayload> {\n\treturn {\n\t\ttype: REMOVE_SOURCE,\n\t\tpayload: {\n\t\t\tsourceId,\n\t\t},\n\t}\n}\n\nexport function removeTarget(targetId: string): Action<TargetIdPayload> {\n\treturn {\n\t\ttype: REMOVE_TARGET,\n\t\tpayload: {\n\t\t\ttargetId,\n\t\t},\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type { DragSource, DropTarget, Identifier } from './interfaces.js'\n\nexport function validateSourceContract(source: DragSource): void {\n\tinvariant(\n\t\ttypeof source.canDrag === 'function',\n\t\t'Expected canDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.beginDrag === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof source.endDrag === 'function',\n\t\t'Expected endDrag to be a function.',\n\t)\n}\n\nexport function validateTargetContract(target: DropTarget): void {\n\tinvariant(\n\t\ttypeof target.canDrop === 'function',\n\t\t'Expected canDrop to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.hover === 'function',\n\t\t'Expected hover to be a function.',\n\t)\n\tinvariant(\n\t\ttypeof target.drop === 'function',\n\t\t'Expected beginDrag to be a function.',\n\t)\n}\n\nexport function validateType(\n\ttype: Identifier | Identifier[],\n\tallowArray?: boolean,\n): void {\n\tif (allowArray && Array.isArray(type)) {\n\t\ttype.forEach((t) => validateType(t, false))\n\t\treturn\n\t}\n\n\tinvariant(\n\t\ttypeof type === 'string' || typeof type === 'symbol',\n\t\tallowArray\n\t\t\t? 'Type can only be a string, a symbol, or an array of either.'\n\t\t\t: 'Type can only be a string or a symbol.',\n\t)\n}\n","export type Identifier = string | symbol\nexport type SourceType = Identifier\nexport type TargetType = Identifier | Identifier[]\nexport type Unsubscribe = () => void\nexport type Listener = () => void\n\nexport interface XYCoord {\n\tx: number\n\ty: number\n}\n\nexport enum HandlerRole {\n\tSOURCE = 'SOURCE',\n\tTARGET = 'TARGET',\n}\n\nexport interface Backend {\n\tsetup(): void\n\tteardown(): void\n\tconnectDragSource(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDragPreview(sourceId: any, node?: any, options?: any): Unsubscribe\n\tconnectDropTarget(targetId: any, node?: any, options?: any): Unsubscribe\n\tprofile(): Record<string, number>\n}\n\nexport interface DragDropMonitor {\n\tsubscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: {\n\t\t\thandlerIds?: Identifier[]\n\t\t},\n\t): Unsubscribe\n\tsubscribeToOffsetChange(listener: Listener): Unsubscribe\n\tcanDragSource(sourceId: Identifier | undefined): boolean\n\tcanDropOnTarget(targetId: Identifier | undefined): boolean\n\n\t/**\n\t * Returns true if a drag operation is in progress, and either the owner initiated the drag, or its isDragging()\n\t * is defined and returns true.\n\t */\n\tisDragging(): boolean\n\tisDraggingSource(sourceId: Identifier | undefined): boolean\n\tisOverTarget(\n\t\ttargetId: Identifier | undefined,\n\t\toptions?: {\n\t\t\tshallow?: boolean\n\t\t},\n\t): boolean\n\n\t/**\n\t * Returns a string or a symbol identifying the type of the current dragged item. Returns null if no item is being dragged.\n\t */\n\tgetItemType(): Identifier | null\n\n\t/**\n\t * Returns a plain object representing the currently dragged item. Every drag source must specify it by returning an object\n\t * from its beginDrag() method. Returns null if no item is being dragged.\n\t */\n\tgetItem(): any\n\tgetSourceId(): Identifier | null\n\tgetTargetIds(): Identifier[]\n\t/**\n\t * Returns a plain object representing the last recorded drop result. The drop targets may optionally specify it by returning an\n\t * object from their drop() methods. When a chain of drop() is dispatched for the nested targets, bottom up, any parent that\n\t * explicitly returns its own result from drop() overrides the child drop result previously set by the child. Returns null if\n\t * called outside endDrag().\n\t */\n\tgetDropResult(): any\n\t/**\n\t * Returns true if some drop target has handled the drop event, false otherwise. Even if a target did not return a drop result,\n\t * didDrop() returns true. Use it inside endDrag() to test whether any drop target has handled the drop. Returns false if called\n\t * outside endDrag().\n\t */\n\tdidDrop(): boolean\n\tisSourcePublic(): boolean | null\n\t/**\n\t * Returns the { x, y } client offset of the pointer at the time when the current drag operation has started.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetInitialClientOffset(): XYCoord | null\n\t/**\n\t * Returns the { x, y } client offset of the drag source component's root DOM node at the time when the current drag\n\t * operation has started. Returns null if no item is being dragged.\n\t */\n\tgetInitialSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the last recorded { x, y } client offset of the pointer while a drag operation is in progress.\n\t * Returns null if no item is being dragged.\n\t */\n\tgetClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the projected { x, y } client offset of the drag source component's root DOM node, based on its position at the time\n\t * when the current drag operation has started, and the movement difference. Returns null if no item is being dragged.\n\t */\n\tgetSourceClientOffset(): XYCoord | null\n\n\t/**\n\t * Returns the { x, y } difference between the last recorded client offset of the pointer and the client offset when the current\n\t * drag operation has started. Returns null if no item is being dragged.\n\t */\n\tgetDifferenceFromInitialOffset(): XYCoord | null\n}\n\nexport interface HandlerRegistry {\n\taddSource(type: SourceType, source: DragSource): Identifier\n\taddTarget(type: TargetType, target: DropTarget): Identifier\n\tcontainsHandler(handler: DragSource | DropTarget): boolean\n\tgetSource(sourceId: Identifier, includePinned?: boolean): DragSource\n\tgetSourceType(sourceId: Identifier): SourceType\n\tgetTargetType(targetId: Identifier): TargetType\n\tgetTarget(targetId: Identifier): DropTarget\n\tisSourceId(handlerId: Identifier): boolean\n\tisTargetId(handlerId: Identifier): boolean\n\tremoveSource(sourceId: Identifier): void\n\tremoveTarget(targetId: Identifier): void\n\tpinSource(sourceId: Identifier): void\n\tunpinSource(): void\n}\n\nexport interface Action<Payload> {\n\ttype: Identifier\n\tpayload: Payload\n}\nexport interface SentinelAction {\n\ttype: Identifier\n}\n\nexport type ActionCreator<Payload> = (args: any[]) => Action<Payload>\n\nexport interface BeginDragOptions {\n\tpublishSource?: boolean\n\tclientOffset?: XYCoord\n\tgetSourceClientOffset?: (sourceId: Identifier | undefined) => XYCoord\n}\n\nexport interface InitCoordsPayload {\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n}\n\nexport interface BeginDragPayload {\n\titemType: Identifier\n\titem: any\n\tsourceId: Identifier\n\tclientOffset: XYCoord | null\n\tsourceClientOffset: XYCoord | null\n\tisSourcePublic: boolean\n}\n\nexport interface HoverPayload {\n\ttargetIds: Identifier[]\n\tclientOffset: XYCoord | null\n}\n\nexport interface HoverOptions {\n\tclientOffset?: XYCoord\n}\n\nexport interface DropPayload {\n\tdropResult: any\n}\n\nexport interface TargetIdPayload {\n\ttargetId: Identifier\n}\n\nexport interface SourceIdPayload {\n\tsourceId: Identifier\n}\n\nexport interface DragDropActions {\n\tbeginDrag(\n\t\tsourceIds?: Identifier[],\n\t\toptions?: any,\n\t): Action<BeginDragPayload> | undefined\n\tpublishDragSource(): SentinelAction | undefined\n\thover(targetIds: Identifier[], options?: any): Action<HoverPayload>\n\tdrop(options?: any): void\n\tendDrag(): SentinelAction\n}\n\nexport interface DragDropManager {\n\tgetMonitor(): DragDropMonitor\n\tgetBackend(): Backend\n\tgetRegistry(): HandlerRegistry\n\tgetActions(): DragDropActions\n\tdispatch(action: any): void\n}\n\nexport type BackendFactory = (\n\tmanager: DragDropManager,\n\tglobalContext?: any,\n\tconfiguration?: any,\n) => Backend\n\nexport interface DragSource {\n\tbeginDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tendDrag(monitor: DragDropMonitor, targetId: Identifier): void\n\tcanDrag(monitor: DragDropMonitor, targetId: Identifier): boolean\n\tisDragging(monitor: DragDropMonitor, targetId: Identifier): boolean\n}\n\nexport interface DropTarget {\n\tcanDrop(monitor: DragDropMonitor, targetId: Identifier): boolean\n\thover(monitor: DragDropMonitor, targetId: Identifier): void\n\tdrop(monitor: DragDropMonitor, targetId: Identifier): any\n}\n","let nextUniqueId = 0\n\nexport function getNextUniqueId(): number {\n\treturn nextUniqueId++\n}\n","import { asap } from '@react-dnd/asap'\nimport { invariant } from '@react-dnd/invariant'\nimport type { Store } from 'redux'\n\nimport {\n\taddSource,\n\taddTarget,\n\tremoveSource,\n\tremoveTarget,\n} from '../actions/registry.js'\nimport {\n\tvalidateSourceContract,\n\tvalidateTargetContract,\n\tvalidateType,\n} from '../contracts.js'\nimport type {\n\tDragSource,\n\tDropTarget,\n\tHandlerRegistry,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n} from '../interfaces.js'\nimport { HandlerRole } from '../interfaces.js'\nimport type { State } from '../reducers/index.js'\nimport { getNextUniqueId } from '../utils/getNextUniqueId.js'\n\nfunction getNextHandlerId(role: HandlerRole): string {\n\tconst id = getNextUniqueId().toString()\n\tswitch (role) {\n\t\tcase HandlerRole.SOURCE:\n\t\t\treturn `S${id}`\n\t\tcase HandlerRole.TARGET:\n\t\t\treturn `T${id}`\n\t\tdefault:\n\t\t\tthrow new Error(`Unknown Handler Role: ${role}`)\n\t}\n}\n\nfunction parseRoleFromHandlerId(handlerId: string) {\n\tswitch (handlerId[0]) {\n\t\tcase 'S':\n\t\t\treturn HandlerRole.SOURCE\n\t\tcase 'T':\n\t\t\treturn HandlerRole.TARGET\n\t\tdefault:\n\t\t\tthrow new Error(`Cannot parse handler ID: ${handlerId}`)\n\t}\n}\n\nfunction mapContainsValue<T>(map: Map<string, T>, searchValue: T) {\n\tconst entries = map.entries()\n\tlet isDone = false\n\tdo {\n\t\tconst {\n\t\t\tdone,\n\t\t\tvalue: [, value],\n\t\t} = entries.next()\n\t\tif (value === searchValue) {\n\t\t\treturn true\n\t\t}\n\t\tisDone = !!done\n\t} while (!isDone)\n\treturn false\n}\n\nexport class HandlerRegistryImpl implements HandlerRegistry {\n\tprivate types: Map<string, SourceType | TargetType> = new Map()\n\tprivate dragSources: Map<string, DragSource> = new Map()\n\tprivate dropTargets: Map<string, DropTarget> = new Map()\n\tprivate pinnedSourceId: string | null = null\n\tprivate pinnedSource: any = null\n\tprivate store: Store<State>\n\n\tpublic constructor(store: Store<State>) {\n\t\tthis.store = store\n\t}\n\n\tpublic addSource(type: SourceType, source: DragSource): string {\n\t\tvalidateType(type)\n\t\tvalidateSourceContract(source)\n\n\t\tconst sourceId = this.addHandler(HandlerRole.SOURCE, type, source)\n\t\tthis.store.dispatch(addSource(sourceId))\n\t\treturn sourceId\n\t}\n\n\tpublic addTarget(type: TargetType, target: DropTarget): string {\n\t\tvalidateType(type, true)\n\t\tvalidateTargetContract(target)\n\n\t\tconst targetId = this.addHandler(HandlerRole.TARGET, type, target)\n\t\tthis.store.dispatch(addTarget(targetId))\n\t\treturn targetId\n\t}\n\n\tpublic containsHandler(handler: DragSource | DropTarget): boolean {\n\t\treturn (\n\t\t\tmapContainsValue(this.dragSources, handler) ||\n\t\t\tmapContainsValue(this.dropTargets, handler)\n\t\t)\n\t}\n\n\tpublic getSource(sourceId: string, includePinned = false): DragSource {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\tconst isPinned = includePinned && sourceId === this.pinnedSourceId\n\t\tconst source = isPinned ? this.pinnedSource : this.dragSources.get(sourceId)\n\t\treturn source\n\t}\n\n\tpublic getTarget(targetId: string): DropTarget {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.dropTargets.get(targetId) as DropTarget\n\t}\n\n\tpublic getSourceType(sourceId: string): Identifier {\n\t\tinvariant(this.isSourceId(sourceId), 'Expected a valid source ID.')\n\t\treturn this.types.get(sourceId) as Identifier\n\t}\n\n\tpublic getTargetType(targetId: string): Identifier | Identifier[] {\n\t\tinvariant(this.isTargetId(targetId), 'Expected a valid target ID.')\n\t\treturn this.types.get(targetId) as Identifier | Identifier[]\n\t}\n\n\tpublic isSourceId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.SOURCE\n\t}\n\n\tpublic isTargetId(handlerId: string): boolean {\n\t\tconst role = parseRoleFromHandlerId(handlerId)\n\t\treturn role === HandlerRole.TARGET\n\t}\n\n\tpublic removeSource(sourceId: string): void {\n\t\tinvariant(this.getSource(sourceId), 'Expected an existing source.')\n\t\tthis.store.dispatch(removeSource(sourceId))\n\t\tasap(() => {\n\t\t\tthis.dragSources.delete(sourceId)\n\t\t\tthis.types.delete(sourceId)\n\t\t})\n\t}\n\n\tpublic removeTarget(targetId: string): void {\n\t\tinvariant(this.getTarget(targetId), 'Expected an existing target.')\n\t\tthis.store.dispatch(removeTarget(targetId))\n\t\tthis.dropTargets.delete(targetId)\n\t\tthis.types.delete(targetId)\n\t}\n\n\tpublic pinSource(sourceId: string): void {\n\t\tconst source = this.getSource(sourceId)\n\t\tinvariant(source, 'Expected an existing source.')\n\n\t\tthis.pinnedSourceId = sourceId\n\t\tthis.pinnedSource = source\n\t}\n\n\tpublic unpinSource(): void {\n\t\tinvariant(this.pinnedSource, 'No source is pinned at the time.')\n\n\t\tthis.pinnedSourceId = null\n\t\tthis.pinnedSource = null\n\t}\n\n\tprivate addHandler(\n\t\trole: HandlerRole,\n\t\ttype: SourceType | TargetType,\n\t\thandler: DragSource | DropTarget,\n\t): string {\n\t\tconst id = getNextHandlerId(role)\n\t\tthis.types.set(id, type)\n\t\tif (role === HandlerRole.SOURCE) {\n\t\t\tthis.dragSources.set(id, handler as DragSource)\n\t\t} else if (role === HandlerRole.TARGET) {\n\t\t\tthis.dropTargets.set(id, handler as DropTarget)\n\t\t}\n\t\treturn id\n\t}\n}\n","import type { XYCoord } from '../interfaces.js'\n\nexport type EqualityCheck<T> = (a: T, b: T) => boolean\nexport const strictEquality = <T>(a: T, b: T): boolean => a === b\n\n/**\n * Determine if two cartesian coordinate offsets are equal\n * @param offsetA\n * @param offsetB\n */\nexport function areCoordsEqual(\n\toffsetA: XYCoord | null | undefined,\n\toffsetB: XYCoord | null | undefined,\n): boolean {\n\tif (!offsetA && !offsetB) {\n\t\treturn true\n\t} else if (!offsetA || !offsetB) {\n\t\treturn false\n\t} else {\n\t\treturn offsetA.x === offsetB.x && offsetA.y === offsetB.y\n\t}\n}\n\n/**\n * Determines if two arrays of items are equal\n * @param a The first array of items\n * @param b The second array of items\n */\nexport function areArraysEqual<T>(\n\ta: T[],\n\tb: T[],\n\tisEqual: EqualityCheck<T> = strictEquality,\n): boolean {\n\tif (a.length !== b.length) {\n\t\treturn false\n\t}\n\tfor (let i = 0; i < a.length; ++i) {\n\t\tif (!isEqual(a[i] as T, b[i] as T)) {\n\t\t\treturn false\n\t\t}\n\t}\n\treturn true\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\nimport { ALL, NONE } from '../utils/dirtiness.js'\nimport { areArraysEqual } from '../utils/equality.js'\nimport { xor } from '../utils/js_utils.js'\n\nexport type State = string[]\n\nexport interface DirtyHandlerIdPayload {\n\ttargetIds: string[]\n\tprevTargetIds: string[]\n}\n\nexport function reduce(\n\t// eslint-disable-next-line @typescript-eslint/no-unused-vars\n\t_state: State = NONE,\n\taction: Action<DirtyHandlerIdPayload>,\n): State {\n\tswitch (action.type) {\n\t\tcase HOVER:\n\t\t\tbreak\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\tcase REMOVE_TARGET:\n\t\tcase REMOVE_SOURCE:\n\t\t\treturn NONE\n\t\tcase BEGIN_DRAG:\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\tdefault:\n\t\t\treturn ALL\n\t}\n\n\tconst { targetIds = [], prevTargetIds = [] } = action.payload\n\tconst result = xor(targetIds, prevTargetIds)\n\tconst didChange =\n\t\tresult.length > 0 || !areArraysEqual(targetIds, prevTargetIds)\n\n\tif (!didChange) {\n\t\treturn NONE\n\t}\n\n\t// Check the target ids at the innermost position. If they are valid, add them\n\t// to the result\n\tconst prevInnermostTargetId = prevTargetIds[prevTargetIds.length - 1]\n\tconst innermostTargetId = targetIds[targetIds.length - 1]\n\tif (prevInnermostTargetId !== innermostTargetId) {\n\t\tif (prevInnermostTargetId) {\n\t\t\tresult.push(prevInnermostTargetId)\n\t\t}\n\t\tif (innermostTargetId) {\n\t\t\tresult.push(innermostTargetId)\n\t\t}\n\t}\n\n\treturn result\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tINIT_COORDS,\n} from '../actions/dragDrop/index.js'\nimport type { Action, XYCoord } from '../interfaces.js'\nimport { areCoordsEqual } from '../utils/equality.js'\n\nexport interface State {\n\tinitialSourceClientOffset: XYCoord | null\n\tinitialClientOffset: XYCoord | null\n\tclientOffset: XYCoord | null\n}\n\nconst initialState: State = {\n\tinitialSourceClientOffset: null,\n\tinitialClientOffset: null,\n\tclientOffset: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\tsourceClientOffset: XYCoord\n\t\tclientOffset: XYCoord\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase INIT_COORDS:\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\tinitialSourceClientOffset: payload.sourceClientOffset,\n\t\t\t\tinitialClientOffset: payload.clientOffset,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\tif (areCoordsEqual(state.clientOffset, payload.clientOffset)) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tclientOffset: payload.clientOffset,\n\t\t\t}\n\t\tcase END_DRAG:\n\t\tcase DROP:\n\t\t\treturn initialState\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tBEGIN_DRAG,\n\tDROP,\n\tEND_DRAG,\n\tHOVER,\n\tPUBLISH_DRAG_SOURCE,\n} from '../actions/dragDrop/index.js'\nimport { REMOVE_TARGET } from '../actions/registry.js'\nimport type { Action, Identifier } from '../interfaces.js'\nimport { without } from '../utils/js_utils.js'\n\nexport interface State {\n\titemType: Identifier | Identifier[] | null\n\titem: any\n\tsourceId: string | null\n\ttargetIds: string[]\n\tdropResult: any\n\tdidDrop: boolean\n\tisSourcePublic: boolean | null\n}\n\nconst initialState: State = {\n\titemType: null,\n\titem: null,\n\tsourceId: null,\n\ttargetIds: [],\n\tdropResult: null,\n\tdidDrop: false,\n\tisSourcePublic: null,\n}\n\nexport function reduce(\n\tstate: State = initialState,\n\taction: Action<{\n\t\titemType: Identifier | Identifier[]\n\t\titem: any\n\t\tsourceId: string\n\t\ttargetId: string\n\t\ttargetIds: string[]\n\t\tisSourcePublic: boolean\n\t\tdropResult: any\n\t}>,\n): State {\n\tconst { payload } = action\n\tswitch (action.type) {\n\t\tcase BEGIN_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: payload.itemType,\n\t\t\t\titem: payload.item,\n\t\t\t\tsourceId: payload.sourceId,\n\t\t\t\tisSourcePublic: payload.isSourcePublic,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t}\n\t\tcase PUBLISH_DRAG_SOURCE:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tisSourcePublic: true,\n\t\t\t}\n\t\tcase HOVER:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: payload.targetIds,\n\t\t\t}\n\t\tcase REMOVE_TARGET:\n\t\t\tif (state.targetIds.indexOf(payload.targetId) === -1) {\n\t\t\t\treturn state\n\t\t\t}\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\ttargetIds: without(state.targetIds, payload.targetId),\n\t\t\t}\n\t\tcase DROP:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\tdropResult: payload.dropResult,\n\t\t\t\tdidDrop: true,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tcase END_DRAG:\n\t\t\treturn {\n\t\t\t\t...state,\n\t\t\t\titemType: null,\n\t\t\t\titem: null,\n\t\t\t\tsourceId: null,\n\t\t\t\tdropResult: null,\n\t\t\t\tdidDrop: false,\n\t\t\t\tisSourcePublic: null,\n\t\t\t\ttargetIds: [],\n\t\t\t}\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","import {\n\tADD_SOURCE,\n\tADD_TARGET,\n\tREMOVE_SOURCE,\n\tREMOVE_TARGET,\n} from '../actions/registry.js'\nimport type { Action } from '../interfaces.js'\n\nexport type State = number\n\nexport function reduce(state: State = 0, action: Action<any>): State {\n\tswitch (action.type) {\n\t\tcase ADD_SOURCE:\n\t\tcase ADD_TARGET:\n\t\t\treturn state + 1\n\t\tcase REMOVE_SOURCE:\n\t\tcase REMOVE_TARGET:\n\t\t\treturn state - 1\n\t\tdefault:\n\t\t\treturn state\n\t}\n}\n","export type State = number\n\nexport function reduce(state: State = 0): State {\n\treturn state + 1\n}\n","import type { Action } from '../interfaces.js'\nimport { get } from '../utils/js_utils.js'\nimport type { State as DirtyHandlerIdsState } from './dirtyHandlerIds.js'\nimport { reduce as dirtyHandlerIds } from './dirtyHandlerIds.js'\nimport type { State as DragOffsetState } from './dragOffset.js'\nimport { reduce as dragOffset } from './dragOffset.js'\nimport type { State as DragOperationState } from './dragOperation.js'\nimport { reduce as dragOperation } from './dragOperation.js'\nimport type { State as RefCountState } from './refCount.js'\nimport { reduce as refCount } from './refCount.js'\nimport type { State as StateIdState } from './stateId.js'\nimport { reduce as stateId } from './stateId.js'\n\nexport interface State {\n\tdirtyHandlerIds: DirtyHandlerIdsState\n\tdragOffset: DragOffsetState\n\trefCount: RefCountState\n\tdragOperation: DragOperationState\n\tstateId: StateIdState\n}\n\nexport function reduce(state: State = {} as State, action: Action<any>): State {\n\treturn {\n\t\tdirtyHandlerIds: dirtyHandlerIds(state.dirtyHandlerIds, {\n\t\t\ttype: action.type,\n\t\t\tpayload: {\n\t\t\t\t...action.payload,\n\t\t\t\tprevTargetIds: get<string[]>(state, 'dragOperation.targetIds', []),\n\t\t\t},\n\t\t}),\n\t\tdragOffset: dragOffset(state.dragOffset, action),\n\t\trefCount: refCount(state.refCount, action),\n\t\tdragOperation: dragOperation(state.dragOperation, action),\n\t\tstateId: stateId(state.stateId),\n\t}\n}\n","import type { Store } from 'redux'\nimport { createStore } from 'redux'\n\nimport { DragDropManagerImpl } from './classes/DragDropManagerImpl.js'\nimport { DragDropMonitorImpl } from './classes/DragDropMonitorImpl.js'\nimport { HandlerRegistryImpl } from './classes/HandlerRegistryImpl.js'\nimport type { BackendFactory, DragDropManager } from './interfaces.js'\nimport type { State } from './reducers/index.js'\nimport { reduce } from './reducers/index.js'\n\nexport function createDragDropManager(\n\tbackendFactory: BackendFactory,\n\tglobalContext: unknown = undefined,\n\tbackendOptions: unknown = {},\n\tdebugMode = false,\n): DragDropManager {\n\tconst store = makeStoreInstance(debugMode)\n\tconst monitor = new DragDropMonitorImpl(store, new HandlerRegistryImpl(store))\n\tconst manager = new DragDropManagerImpl(store, monitor)\n\tconst backend = backendFactory(manager, globalContext, backendOptions)\n\tmanager.receiveBackend(backend)\n\treturn manager\n}\n\nfunction makeStoreInstance(debugMode: boolean): Store<State> {\n\t// TODO: if we ever make a react-native version of this,\n\t// we'll need to consider how to pull off dev-tooling\n\tconst reduxDevTools =\n\t\ttypeof window !== 'undefined' &&\n\t\t(window as any).__REDUX_DEVTOOLS_EXTENSION__\n\treturn createStore(\n\t\treduce,\n\t\tdebugMode &&\n\t\t\treduxDevTools &&\n\t\t\treduxDevTools({\n\t\t\t\tname: 'dnd-core',\n\t\t\t\tinstanceId: 'dnd-core',\n\t\t\t}),\n\t)\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\nimport { createDragDropManager } from 'dnd-core'\nimport type { FC, ReactNode } from 'react'\nimport { memo, useEffect } from 'react'\n\nimport { DndContext } from './DndContext.js'\n\nexport type DndProviderProps<BackendContext, BackendOptions> =\n\t| {\n\t\t\tchildren?: ReactNode\n\t\t\tmanager: DragDropManager\n\t }\n\t| {\n\t\t\tbackend: BackendFactory\n\t\t\tchildren?: ReactNode\n\t\t\tcontext?: BackendContext\n\t\t\toptions?: BackendOptions\n\t\t\tdebugMode?: boolean\n\t }\n\nlet refCount = 0\nconst INSTANCE_SYM = Symbol.for('__REACT_DND_CONTEXT_INSTANCE__')\n\n/**\n * A React component that provides the React-DnD context\n */\nexport const DndProvider: FC<DndProviderProps<unknown, unknown>> = memo(\n\tfunction DndProvider({ children, ...props }) {\n\t\tconst [manager, isGlobalInstance] = getDndContextValue(props) // memoized from props\n\t\t/**\n\t\t * If the global context was used to store the DND context\n\t\t * then where theres no more references to it we should\n\t\t * clean it up to avoid memory leaks\n\t\t */\n\t\tuseEffect(() => {\n\t\t\tif (isGlobalInstance) {\n\t\t\t\tconst context = getGlobalContext()\n\t\t\t\t++refCount\n\n\t\t\t\treturn () => {\n\t\t\t\t\tif (--refCount === 0) {\n\t\t\t\t\t\tcontext[INSTANCE_SYM] = null\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\treturn\n\t\t}, [])\n\n\t\treturn <DndContext.Provider value={manager}>{children}</DndContext.Provider>\n\t},\n)\n\nfunction getDndContextValue(props: DndProviderProps<unknown, unknown>) {\n\tif ('manager' in props) {\n\t\tconst manager = { dragDropManager: props.manager }\n\t\treturn [manager, false]\n\t}\n\n\tconst manager = createSingletonDndContext(\n\t\tprops.backend,\n\t\tprops.context,\n\t\tprops.options,\n\t\tprops.debugMode,\n\t)\n\tconst isGlobalInstance = !props.context\n\n\treturn [manager, isGlobalInstance]\n}\n\nfunction createSingletonDndContext<BackendContext, BackendOptions>(\n\tbackend: BackendFactory,\n\tcontext: BackendContext = getGlobalContext(),\n\toptions: BackendOptions,\n\tdebugMode?: boolean,\n) {\n\tconst ctx = context as any\n\tif (!ctx[INSTANCE_SYM]) {\n\t\tctx[INSTANCE_SYM] = {\n\t\t\tdragDropManager: createDragDropManager(\n\t\t\t\tbackend,\n\t\t\t\tcontext,\n\t\t\t\toptions,\n\t\t\t\tdebugMode,\n\t\t\t),\n\t\t}\n\t}\n\treturn ctx[INSTANCE_SYM]\n}\n\ndeclare const global: any\nfunction getGlobalContext() {\n\treturn typeof global !== 'undefined' ? global : (window as any)\n}\n","'use strict';\n\n// do not edit .js files directly - edit src/index.jst\n\n\n\nmodule.exports = function equal(a, b) {\n if (a === b) return true;\n\n if (a && b && typeof a == 'object' && typeof b == 'object') {\n if (a.constructor !== b.constructor) return false;\n\n var length, i, keys;\n if (Array.isArray(a)) {\n length = a.length;\n if (length != b.length) return false;\n for (i = length; i-- !== 0;)\n if (!equal(a[i], b[i])) return false;\n return true;\n }\n\n\n\n if (a.constructor === RegExp) return a.source === b.source && a.flags === b.flags;\n if (a.valueOf !== Object.prototype.valueOf) return a.valueOf() === b.valueOf();\n if (a.toString !== Object.prototype.toString) return a.toString() === b.toString();\n\n keys = Object.keys(a);\n length = keys.length;\n if (length !== Object.keys(b).length) return false;\n\n for (i = length; i-- !== 0;)\n if (!Object.prototype.hasOwnProperty.call(b, keys[i])) return false;\n\n for (i = length; i-- !== 0;) {\n var key = keys[i];\n\n if (!equal(a[key], b[key])) return false;\n }\n\n return true;\n }\n\n // true if both NaN, false otherwise\n return a!==a && b!==b;\n};\n","import { useEffect, useLayoutEffect } from 'react'\n\n// suppress the useLayoutEffect warning on server side.\nexport const useIsomorphicLayoutEffect =\n\ttypeof window !== 'undefined' ? useLayoutEffect : useEffect\n","import equal from 'fast-deep-equal'\nimport { useCallback, useState } from 'react'\n\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\n/**\n *\n * @param monitor The monitor to collect state from\n * @param collect The collecting function\n * @param onUpdate A method to invoke when updates occur\n */\nexport function useCollector<T, S>(\n\tmonitor: T,\n\tcollect: (monitor: T) => S,\n\tonUpdate?: () => void,\n): [S, () => void] {\n\tconst [collected, setCollected] = useState(() => collect(monitor))\n\n\tconst updateCollected = useCallback(() => {\n\t\tconst nextValue = collect(monitor)\n\t\t// This needs to be a deep-equality check because some monitor-collected values\n\t\t// include XYCoord objects that may be equivalent, but do not have instance equality.\n\t\tif (!equal(collected, nextValue)) {\n\t\t\tsetCollected(nextValue)\n\t\t\tif (onUpdate) {\n\t\t\t\tonUpdate()\n\t\t\t}\n\t\t}\n\t}, [collected, monitor, onUpdate])\n\n\t// update the collected properties after react renders.\n\t// Note that the \"Dustbin Stress Test\" fails if this is not\n\t// done when the component updates\n\tuseIsomorphicLayoutEffect(updateCollected)\n\n\treturn [collected, updateCollected]\n}\n","import type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useCollector } from './useCollector.js'\nimport { useIsomorphicLayoutEffect } from './useIsomorphicLayoutEffect.js'\n\nexport function useMonitorOutput<Monitor extends HandlerManager, Collected>(\n\tmonitor: Monitor & MonitorEventEmitter,\n\tcollect: (monitor: Monitor) => Collected,\n\tonCollect?: () => void,\n): Collected {\n\tconst [collected, updateCollected] = useCollector(monitor, collect, onCollect)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction subscribeToMonitorStateChange() {\n\t\t\tconst handlerId = monitor.getHandlerId()\n\t\t\tif (handlerId == null) {\n\t\t\t\treturn\n\t\t\t}\n\t\t\treturn monitor.subscribeToStateChange(updateCollected, {\n\t\t\t\thandlerIds: [handlerId],\n\t\t\t})\n\t\t},\n\t\t[monitor, updateCollected],\n\t)\n\n\treturn collected\n}\n","import type { Connector } from '../internals/index.js'\nimport type { HandlerManager, MonitorEventEmitter } from '../types/index.js'\nimport { useMonitorOutput } from './useMonitorOutput.js'\n\nexport function useCollectedProps<Collected, Monitor extends HandlerManager>(\n\tcollector: ((monitor: Monitor) => Collected) | undefined,\n\tmonitor: Monitor & MonitorEventEmitter,\n\tconnector: Connector,\n) {\n\treturn useMonitorOutput(monitor, collector || (() => ({} as Collected)), () =>\n\t\tconnector.reconnect(),\n\t)\n}\n","import { useMemo } from 'react'\n\nimport type { FactoryOrInstance } from './types.js'\n\nexport function useOptionalFactory<T>(\n\targ: FactoryOrInstance<T>,\n\tdeps?: unknown[],\n): T {\n\tconst memoDeps = [...(deps || [])]\n\tif (deps == null && typeof arg !== 'function') {\n\t\tmemoDeps.push(arg)\n\t}\n\treturn useMemo<T>(() => {\n\t\treturn typeof arg === 'function' ? (arg as () => T)() : (arg as T)\n\t}, memoDeps)\n}\n","import { useMemo } from 'react'\n\nimport type { SourceConnector } from '../../internals/index.js'\n\nexport function useConnectDragSource(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragSource(), [connector])\n}\n\nexport function useConnectDragPreview(connector: SourceConnector) {\n\treturn useMemo(() => connector.hooks.dragPreview(), [connector])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DragSourceMonitor } from '../types/index.js'\n\nlet isCallingCanDrag = false\nlet isCallingIsDragging = false\n\nexport class DragSourceMonitorImpl implements DragSourceMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate sourceId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(sourceId: Identifier | null): void {\n\t\tthis.sourceId = sourceId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.sourceId\n\t}\n\n\tpublic canDrag(): boolean {\n\t\tinvariant(\n\t\t\t!isCallingCanDrag,\n\t\t\t'You may not call monitor.canDrag() inside your canDrag() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrag = true\n\t\t\treturn this.internalMonitor.canDragSource(this.sourceId as Identifier)\n\t\t} finally {\n\t\t\tisCallingCanDrag = false\n\t\t}\n\t}\n\n\tpublic isDragging(): boolean {\n\t\tif (!this.sourceId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingIsDragging,\n\t\t\t'You may not call monitor.isDragging() inside your isDragging() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drag-source-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingIsDragging = true\n\t\t\treturn this.internalMonitor.isDraggingSource(this.sourceId)\n\t\t} finally {\n\t\t\tisCallingIsDragging = false\n\t\t}\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic isDraggingSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.isDraggingSource(sourceId)\n\t}\n\n\tpublic isOverTarget(\n\t\ttargetId: Identifier,\n\t\toptions?: { shallow: boolean },\n\t): boolean {\n\t\treturn this.internalMonitor.isOverTarget(targetId, options)\n\t}\n\n\tpublic getTargetIds(): Identifier[] {\n\t\treturn this.internalMonitor.getTargetIds()\n\t}\n\n\tpublic isSourcePublic(): boolean | null {\n\t\treturn this.internalMonitor.isSourcePublic()\n\t}\n\n\tpublic getSourceId(): Identifier | null {\n\t\treturn this.internalMonitor.getSourceId()\n\t}\n\n\tpublic subscribeToOffsetChange(listener: Listener): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToOffsetChange(listener)\n\t}\n\n\tpublic canDragSource(sourceId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDragSource(sourceId)\n\t}\n\n\tpublic canDropOnTarget(targetId: Identifier): boolean {\n\t\treturn this.internalMonitor.canDropOnTarget(targetId)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type {\n\tDragDropManager,\n\tDragDropMonitor,\n\tIdentifier,\n\tListener,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../types/index.js'\n\nlet isCallingCanDrop = false\n\nexport class DropTargetMonitorImpl implements DropTargetMonitor {\n\tprivate internalMonitor: DragDropMonitor\n\tprivate targetId: Identifier | null = null\n\n\tpublic constructor(manager: DragDropManager) {\n\t\tthis.internalMonitor = manager.getMonitor()\n\t}\n\n\tpublic receiveHandlerId(targetId: Identifier | null): void {\n\t\tthis.targetId = targetId\n\t}\n\n\tpublic getHandlerId(): Identifier | null {\n\t\treturn this.targetId\n\t}\n\n\tpublic subscribeToStateChange(\n\t\tlistener: Listener,\n\t\toptions?: { handlerIds?: Identifier[] },\n\t): Unsubscribe {\n\t\treturn this.internalMonitor.subscribeToStateChange(listener, options)\n\t}\n\n\tpublic canDrop(): boolean {\n\t\t// Cut out early if the target id has not been set. This should prevent errors\n\t\t// where the user has an older version of dnd-core like in\n\t\t// https://github.com/react-dnd/react-dnd/issues/1310\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\tinvariant(\n\t\t\t!isCallingCanDrop,\n\t\t\t'You may not call monitor.canDrop() inside your canDrop() implementation. ' +\n\t\t\t\t'Read more: http://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor',\n\t\t)\n\n\t\ttry {\n\t\t\tisCallingCanDrop = true\n\t\t\treturn this.internalMonitor.canDropOnTarget(this.targetId)\n\t\t} finally {\n\t\t\tisCallingCanDrop = false\n\t\t}\n\t}\n\n\tpublic isOver(options?: { shallow?: boolean }): boolean {\n\t\tif (!this.targetId) {\n\t\t\treturn false\n\t\t}\n\t\treturn this.internalMonitor.isOverTarget(this.targetId, options)\n\t}\n\n\tpublic getItemType(): Identifier | null {\n\t\treturn this.internalMonitor.getItemType()\n\t}\n\n\tpublic getItem(): any {\n\t\treturn this.internalMonitor.getItem()\n\t}\n\n\tpublic getDropResult(): any {\n\t\treturn this.internalMonitor.getDropResult()\n\t}\n\n\tpublic didDrop(): boolean {\n\t\treturn this.internalMonitor.didDrop()\n\t}\n\n\tpublic getInitialClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialClientOffset()\n\t}\n\n\tpublic getInitialSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getInitialSourceClientOffset()\n\t}\n\n\tpublic getSourceClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getSourceClientOffset()\n\t}\n\n\tpublic getClientOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getClientOffset()\n\t}\n\n\tpublic getDifferenceFromInitialOffset(): XYCoord | null {\n\t\treturn this.internalMonitor.getDifferenceFromInitialOffset()\n\t}\n}\n","import type {\n\tDragDropManager,\n\tDragSource,\n\tDropTarget,\n\tIdentifier,\n\tSourceType,\n\tTargetType,\n\tUnsubscribe,\n} from 'dnd-core'\n\nexport function registerTarget(\n\ttype: TargetType,\n\ttarget: DropTarget,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst targetId = registry.addTarget(type, target)\n\n\treturn [targetId, () => registry.removeTarget(targetId)]\n}\n\nexport function registerSource(\n\ttype: SourceType,\n\tsource: DragSource,\n\tmanager: DragDropManager,\n): [Identifier, Unsubscribe] {\n\tconst registry = manager.getRegistry()\n\tconst sourceId = registry.addSource(type, source)\n\n\treturn [sourceId, () => registry.removeSource(sourceId)]\n}\n","export function shallowEqual<T>(\n\tobjA: T,\n\tobjB: T,\n\tcompare?: (a: T, b: T, key?: string) => boolean | void,\n\tcompareContext?: any,\n) {\n\tlet compareResult = compare\n\t\t? compare.call(compareContext, objA, objB)\n\t\t: void 0\n\tif (compareResult !== void 0) {\n\t\treturn !!compareResult\n\t}\n\n\tif (objA === objB) {\n\t\treturn true\n\t}\n\n\tif (typeof objA !== 'object' || !objA || typeof objB !== 'object' || !objB) {\n\t\treturn false\n\t}\n\n\tconst keysA = Object.keys(objA)\n\tconst keysB = Object.keys(objB)\n\n\tif (keysA.length !== keysB.length) {\n\t\treturn false\n\t}\n\n\tconst bHasOwnProperty = Object.prototype.hasOwnProperty.bind(objB)\n\n\t// Test for A's keys different from B.\n\tfor (let idx = 0; idx < keysA.length; idx++) {\n\t\tconst key = keysA[idx] as string\n\n\t\tif (!bHasOwnProperty(key)) {\n\t\t\treturn false\n\t\t}\n\n\t\tconst valueA = (objA as any)[key]\n\t\tconst valueB = (objB as any)[key]\n\n\t\tcompareResult = compare\n\t\t\t? compare.call(compareContext, valueA, valueB, key)\n\t\t\t: void 0\n\n\t\tif (\n\t\t\tcompareResult === false ||\n\t\t\t(compareResult === void 0 && valueA !== valueB)\n\t\t) {\n\t\t\treturn false\n\t\t}\n\t}\n\n\treturn true\n}\n","export interface Ref<T> {\n\tcurrent: T\n}\n\nexport function isRef(obj: unknown): boolean {\n\treturn (\n\t\t// eslint-disable-next-line no-prototype-builtins\n\t\tobj !== null &&\n\t\ttypeof obj === 'object' &&\n\t\tObject.prototype.hasOwnProperty.call(obj, 'current')\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { ReactElement } from 'react'\nimport { cloneElement, isValidElement } from 'react'\n\nfunction throwIfCompositeComponentElement(element: ReactElement<any>) {\n\t// Custom components can no longer be wrapped directly in React DnD 2.0\n\t// so that we don't need to depend on findDOMNode() from react-dom.\n\tif (typeof element.type === 'string') {\n\t\treturn\n\t}\n\n\tconst displayName =\n\t\t(element.type as any).displayName || element.type.name || 'the component'\n\n\tthrow new Error(\n\t\t'Only native element nodes can now be passed to React DnD connectors.' +\n\t\t\t`You can either wrap ${displayName} into a <div>, or turn it into a ` +\n\t\t\t'drag source or a drop target itself.',\n\t)\n}\n\nfunction wrapHookToRecognizeElement(hook: (node: any, options: any) => void) {\n\treturn (elementOrNode = null, options = null) => {\n\t\t// When passed a node, call the hook straight away.\n\t\tif (!isValidElement(elementOrNode)) {\n\t\t\tconst node = elementOrNode\n\t\t\thook(node, options)\n\t\t\t// return the node so it can be chained (e.g. when within callback refs\n\t\t\t// <div ref={node => connectDragSource(connectDropTarget(node))}/>\n\t\t\treturn node\n\t\t}\n\n\t\t// If passed a ReactElement, clone it and attach this function as a ref.\n\t\t// This helps us achieve a neat API where user doesn't even know that refs\n\t\t// are being used under the hood.\n\t\tconst element: ReactElement | null = elementOrNode\n\t\tthrowIfCompositeComponentElement(element as any)\n\n\t\t// When no options are passed, use the hook directly\n\t\tconst ref = options ? (node: Element) => hook(node, options) : hook\n\t\treturn cloneWithRef(element, ref)\n\t}\n}\n\nexport function wrapConnectorHooks(hooks: any) {\n\tconst wrappedHooks: any = {}\n\n\tObject.keys(hooks).forEach((key) => {\n\t\tconst hook = hooks[key]\n\n\t\t// ref objects should be passed straight through without wrapping\n\t\tif (key.endsWith('Ref')) {\n\t\t\twrappedHooks[key] = hooks[key]\n\t\t} else {\n\t\t\tconst wrappedHook = wrapHookToRecognizeElement(hook)\n\t\t\twrappedHooks[key] = () => wrappedHook\n\t\t}\n\t})\n\n\treturn wrappedHooks\n}\n\nfunction setRef(ref: any, node: any) {\n\tif (typeof ref === 'function') {\n\t\tref(node)\n\t} else {\n\t\tref.current = node\n\t}\n}\n\nfunction cloneWithRef(element: any, newRef: any): ReactElement<any> {\n\tconst previousRef = element.ref\n\tinvariant(\n\t\ttypeof previousRef !== 'string',\n\t\t'Cannot connect React DnD to an element with an existing string ref. ' +\n\t\t\t'Please convert it to use a callback ref instead, or wrap it into a <span> or <div>. ' +\n\t\t\t'Read more: https://reactjs.org/docs/refs-and-the-dom.html#callback-refs',\n\t)\n\n\tif (!previousRef) {\n\t\t// When there is no ref on the element, use the new ref directly\n\t\treturn cloneElement(element, {\n\t\t\tref: newRef,\n\t\t})\n\t} else {\n\t\treturn cloneElement(element, {\n\t\t\tref: (node: any) => {\n\t\t\t\tsetRef(previousRef, node)\n\t\t\t\tsetRef(newRef, node)\n\t\t\t},\n\t\t})\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { ReactElement, Ref, RefObject } from 'react'\n\nimport type { DragPreviewOptions, DragSourceOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport interface Connector {\n\thooks: any\n\tconnectTarget: any\n\treceiveHandlerId(handlerId: Identifier | null): void\n\treconnect(): void\n}\n\nexport class SourceConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdragSource: (\n\t\t\tnode: Element | ReactElement | Ref<any>,\n\t\t\toptions?: DragSourceOptions,\n\t\t) => {\n\t\t\tthis.clearDragSource()\n\t\t\tthis.dragSourceOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragSourceRef = node as RefObject<any>\n\t\t\t} else {\n\t\t\t\tthis.dragSourceNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragSource()\n\t\t},\n\t\tdragPreview: (node: any, options?: DragPreviewOptions) => {\n\t\t\tthis.clearDragPreview()\n\t\t\tthis.dragPreviewOptions = options || null\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dragPreviewRef = node\n\t\t\t} else {\n\t\t\t\tthis.dragPreviewNode = node\n\t\t\t}\n\t\t\tthis.reconnectDragPreview()\n\t\t},\n\t})\n\tprivate handlerId: Identifier | null = null\n\n\t// The drop target may either be attached via ref or connect function\n\tprivate dragSourceRef: RefObject<any> | null = null\n\tprivate dragSourceNode: any\n\tprivate dragSourceOptionsInternal: DragSourceOptions | null = null\n\tprivate dragSourceUnsubscribe: Unsubscribe | undefined\n\n\t// The drag preview may either be attached via ref or connect function\n\tprivate dragPreviewRef: RefObject<any> | null = null\n\tprivate dragPreviewNode: any\n\tprivate dragPreviewOptionsInternal: DragPreviewOptions | null = null\n\tprivate dragPreviewUnsubscribe: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDragSource: any = null\n\tprivate lastConnectedDragSourceOptions: any = null\n\tprivate lastConnectedDragPreview: any = null\n\tprivate lastConnectedDragPreviewOptions: any = null\n\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (this.handlerId === newHandlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dragSource\n\t}\n\n\tpublic get dragSourceOptions(): DragSourceOptions | null {\n\t\treturn this.dragSourceOptionsInternal\n\t}\n\tpublic set dragSourceOptions(options: DragSourceOptions | null) {\n\t\tthis.dragSourceOptionsInternal = options\n\t}\n\n\tpublic get dragPreviewOptions(): DragPreviewOptions | null {\n\t\treturn this.dragPreviewOptionsInternal\n\t}\n\n\tpublic set dragPreviewOptions(options: DragPreviewOptions | null) {\n\t\tthis.dragPreviewOptionsInternal = options\n\t}\n\n\tpublic reconnect(): void {\n\t\tconst didChange = this.reconnectDragSource()\n\t\tthis.reconnectDragPreview(didChange)\n\t}\n\n\tprivate reconnectDragSource(): boolean {\n\t\tconst dragSource = this.dragSource\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragSourceChange() ||\n\t\t\tthis.didDragSourceOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragSource()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn didChange\n\t\t}\n\t\tif (!dragSource) {\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\treturn didChange\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragSource = dragSource\n\t\t\tthis.lastConnectedDragSourceOptions = this.dragSourceOptions\n\t\t\tthis.dragSourceUnsubscribe = this.backend.connectDragSource(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragSource,\n\t\t\t\tthis.dragSourceOptions,\n\t\t\t)\n\t\t}\n\t\treturn didChange\n\t}\n\n\tprivate reconnectDragPreview(forceDidChange = false): void {\n\t\tconst dragPreview = this.dragPreview\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tforceDidChange ||\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didConnectedDragPreviewChange() ||\n\t\t\tthis.didDragPreviewOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDragPreview()\n\t\t}\n\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dragPreview) {\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDragPreview = dragPreview\n\t\t\tthis.lastConnectedDragPreviewOptions = this.dragPreviewOptions\n\t\t\tthis.dragPreviewUnsubscribe = this.backend.connectDragPreview(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdragPreview,\n\t\t\t\tthis.dragPreviewOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didConnectedDragSourceChange(): boolean {\n\t\treturn this.lastConnectedDragSource !== this.dragSource\n\t}\n\n\tprivate didConnectedDragPreviewChange(): boolean {\n\t\treturn this.lastConnectedDragPreview !== this.dragPreview\n\t}\n\n\tprivate didDragSourceOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragSourceOptions,\n\t\t\tthis.dragSourceOptions,\n\t\t)\n\t}\n\n\tprivate didDragPreviewOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDragPreviewOptions,\n\t\t\tthis.dragPreviewOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDragSource() {\n\t\tif (this.dragSourceUnsubscribe) {\n\t\t\tthis.dragSourceUnsubscribe()\n\t\t\tthis.dragSourceUnsubscribe = undefined\n\t\t}\n\t}\n\n\tpublic disconnectDragPreview() {\n\t\tif (this.dragPreviewUnsubscribe) {\n\t\t\tthis.dragPreviewUnsubscribe()\n\t\t\tthis.dragPreviewUnsubscribe = undefined\n\t\t\tthis.dragPreviewNode = null\n\t\t\tthis.dragPreviewRef = null\n\t\t}\n\t}\n\n\tprivate get dragSource() {\n\t\treturn (\n\t\t\tthis.dragSourceNode || (this.dragSourceRef && this.dragSourceRef.current)\n\t\t)\n\t}\n\n\tprivate get dragPreview() {\n\t\treturn (\n\t\t\tthis.dragPreviewNode ||\n\t\t\t(this.dragPreviewRef && this.dragPreviewRef.current)\n\t\t)\n\t}\n\n\tprivate clearDragSource() {\n\t\tthis.dragSourceNode = null\n\t\tthis.dragSourceRef = null\n\t}\n\n\tprivate clearDragPreview() {\n\t\tthis.dragPreviewNode = null\n\t\tthis.dragPreviewRef = null\n\t}\n}\n","import { shallowEqual } from '@react-dnd/shallowequal'\nimport type { Backend, Identifier, Unsubscribe } from 'dnd-core'\nimport type { RefObject } from 'react'\n\nimport type { DropTargetOptions } from '../types/index.js'\nimport { isRef } from './isRef.js'\nimport type { Connector } from './SourceConnector.js'\nimport { wrapConnectorHooks } from './wrapConnectorHooks.js'\n\nexport class TargetConnector implements Connector {\n\tpublic hooks = wrapConnectorHooks({\n\t\tdropTarget: (node: any, options: DropTargetOptions) => {\n\t\t\tthis.clearDropTarget()\n\t\t\tthis.dropTargetOptions = options\n\t\t\tif (isRef(node)) {\n\t\t\t\tthis.dropTargetRef = node\n\t\t\t} else {\n\t\t\t\tthis.dropTargetNode = node\n\t\t\t}\n\t\t\tthis.reconnect()\n\t\t},\n\t})\n\n\tprivate handlerId: Identifier | null = null\n\t// The drop target may either be attached via ref or connect function\n\tprivate dropTargetRef: RefObject<any> | null = null\n\tprivate dropTargetNode: any\n\tprivate dropTargetOptionsInternal: DropTargetOptions | null = null\n\tprivate unsubscribeDropTarget: Unsubscribe | undefined\n\n\tprivate lastConnectedHandlerId: Identifier | null = null\n\tprivate lastConnectedDropTarget: any = null\n\tprivate lastConnectedDropTargetOptions: DropTargetOptions | null = null\n\tprivate readonly backend: Backend\n\n\tpublic constructor(backend: Backend) {\n\t\tthis.backend = backend\n\t}\n\n\tpublic get connectTarget(): any {\n\t\treturn this.dropTarget\n\t}\n\n\tpublic reconnect(): void {\n\t\t// if nothing has changed then don't resubscribe\n\t\tconst didChange =\n\t\t\tthis.didHandlerIdChange() ||\n\t\t\tthis.didDropTargetChange() ||\n\t\t\tthis.didOptionsChange()\n\n\t\tif (didChange) {\n\t\t\tthis.disconnectDropTarget()\n\t\t}\n\n\t\tconst dropTarget = this.dropTarget\n\t\tif (!this.handlerId) {\n\t\t\treturn\n\t\t}\n\t\tif (!dropTarget) {\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\treturn\n\t\t}\n\n\t\tif (didChange) {\n\t\t\tthis.lastConnectedHandlerId = this.handlerId\n\t\t\tthis.lastConnectedDropTarget = dropTarget\n\t\t\tthis.lastConnectedDropTargetOptions = this.dropTargetOptions\n\n\t\t\tthis.unsubscribeDropTarget = this.backend.connectDropTarget(\n\t\t\t\tthis.handlerId,\n\t\t\t\tdropTarget,\n\t\t\t\tthis.dropTargetOptions,\n\t\t\t)\n\t\t}\n\t}\n\n\tpublic receiveHandlerId(newHandlerId: Identifier | null): void {\n\t\tif (newHandlerId === this.handlerId) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.handlerId = newHandlerId\n\t\tthis.reconnect()\n\t}\n\n\tpublic get dropTargetOptions(): DropTargetOptions {\n\t\treturn this.dropTargetOptionsInternal\n\t}\n\tpublic set dropTargetOptions(options: DropTargetOptions) {\n\t\tthis.dropTargetOptionsInternal = options\n\t}\n\n\tprivate didHandlerIdChange(): boolean {\n\t\treturn this.lastConnectedHandlerId !== this.handlerId\n\t}\n\n\tprivate didDropTargetChange(): boolean {\n\t\treturn this.lastConnectedDropTarget !== this.dropTarget\n\t}\n\n\tprivate didOptionsChange(): boolean {\n\t\treturn !shallowEqual(\n\t\t\tthis.lastConnectedDropTargetOptions,\n\t\t\tthis.dropTargetOptions,\n\t\t)\n\t}\n\n\tpublic disconnectDropTarget() {\n\t\tif (this.unsubscribeDropTarget) {\n\t\t\tthis.unsubscribeDropTarget()\n\t\t\tthis.unsubscribeDropTarget = undefined\n\t\t}\n\t}\n\n\tprivate get dropTarget() {\n\t\treturn (\n\t\t\tthis.dropTargetNode || (this.dropTargetRef && this.dropTargetRef.current)\n\t\t)\n\t}\n\n\tprivate clearDropTarget() {\n\t\tthis.dropTargetRef = null\n\t\tthis.dropTargetNode = null\n\t}\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { DragDropManager } from 'dnd-core'\nimport { useContext } from 'react'\n\nimport { DndContext } from '../core/index.js'\n\n/**\n * A hook to retrieve the DragDropManager from Context\n */\nexport function useDragDropManager(): DragDropManager {\n\tconst { dragDropManager } = useContext(DndContext)\n\tinvariant(dragDropManager != null, 'Expected drag drop context')\n\treturn dragDropManager as DragDropManager\n}\n","import { useMemo } from 'react'\n\nimport { SourceConnector } from '../../internals/index.js'\nimport type {\n\tDragPreviewOptions,\n\tDragSourceOptions,\n} from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDragSourceConnector(\n\tdragSourceOptions: DragSourceOptions | undefined,\n\tdragPreviewOptions: DragPreviewOptions | undefined,\n): SourceConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new SourceConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragSourceOptions = dragSourceOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragSource()\n\t}, [connector, dragSourceOptions])\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dragPreviewOptions = dragPreviewOptions || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDragPreview()\n\t}, [connector, dragPreviewOptions])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DragSourceMonitorImpl } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDragSourceMonitor<O, R>(): DragSourceMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo<DragSourceMonitor<O, R>>(\n\t\t() => new DragSourceMonitorImpl(manager),\n\t\t[manager],\n\t)\n}\n","import type { DragDropMonitor, DragSource, Identifier } from 'dnd-core'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragObjectFactory, DragSourceHookSpec } from '../types.js'\n\nexport class DragSourceImpl<O, R, P> implements DragSource {\n\tpublic constructor(\n\t\tpublic spec: DragSourceHookSpec<O, R, P>,\n\t\tprivate monitor: DragSourceMonitor<O, R>,\n\t\tprivate connector: Connector,\n\t) {}\n\n\tpublic beginDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\n\t\tlet result: O | null = null\n\t\tif (typeof spec.item === 'object') {\n\t\t\tresult = spec.item as O\n\t\t} else if (typeof spec.item === 'function') {\n\t\t\tresult = (spec.item as DragObjectFactory<O>)(monitor)\n\t\t} else {\n\t\t\tresult = {} as O\n\t\t}\n\t\treturn result ?? null\n\t}\n\n\tpublic canDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (typeof spec.canDrag === 'boolean') {\n\t\t\treturn spec.canDrag\n\t\t} else if (typeof spec.canDrag === 'function') {\n\t\t\treturn spec.canDrag(monitor)\n\t\t} else {\n\t\t\treturn true\n\t\t}\n\t}\n\n\tpublic isDragging(globalMonitor: DragDropMonitor, target: Identifier) {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst { isDragging } = spec\n\t\treturn isDragging\n\t\t\t? isDragging(monitor)\n\t\t\t: target === globalMonitor.getSourceId()\n\t}\n\n\tpublic endDrag() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tconst connector = this.connector\n\t\tconst { end } = spec\n\t\tif (end) {\n\t\t\tend(monitor.getItem(), monitor)\n\t\t}\n\t\tconnector.reconnect()\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { Connector } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { DragSourceImpl } from './DragSourceImpl.js'\n\nexport function useDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: Connector,\n) {\n\tconst handler = useMemo(\n\t\t() => new DragSourceImpl(spec, monitor, connector),\n\t\t[monitor, connector],\n\t)\n\tuseEffect(() => {\n\t\thandler.spec = spec\n\t}, [spec])\n\treturn handler\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DragSourceHookSpec } from '../types.js'\n\nexport function useDragType(\n\tspec: DragSourceHookSpec<any, any, any>,\n): Identifier {\n\treturn useMemo(() => {\n\t\tconst result: Identifier = spec.type\n\t\tinvariant(result != null, 'spec.type must be defined')\n\t\treturn result\n\t}, [spec])\n}\n","import type { SourceConnector } from '../../internals/index.js'\nimport { registerSource } from '../../internals/index.js'\nimport type { DragSourceMonitor } from '../../types/index.js'\nimport type { DragSourceHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useDragSource } from './useDragSource.js'\nimport { useDragType } from './useDragType.js'\n\nexport function useRegisteredDragSource<O, R, P>(\n\tspec: DragSourceHookSpec<O, R, P>,\n\tmonitor: DragSourceMonitor<O, R>,\n\tconnector: SourceConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst handler = useDragSource(spec, monitor, connector)\n\tconst itemType = useDragType(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDragSource() {\n\t\t\tif (itemType != null) {\n\t\t\t\tconst [handlerId, unregister] = registerSource(\n\t\t\t\t\titemType,\n\t\t\t\t\thandler,\n\t\t\t\t\tmanager,\n\t\t\t\t)\n\t\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\t\treturn unregister\n\t\t\t}\n\t\t\treturn\n\t\t},\n\t\t[manager, monitor, connector, handler, itemType],\n\t)\n}\n","import { invariant } from '@react-dnd/invariant'\n\nimport type {\n\tConnectDragPreview,\n\tConnectDragSource,\n} from '../../types/index.js'\nimport type { DragSourceHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDragPreview, useConnectDragSource } from './connectors.js'\nimport { useDragSourceConnector } from './useDragSourceConnector.js'\nimport { useDragSourceMonitor } from './useDragSourceMonitor.js'\nimport { useRegisteredDragSource } from './useRegisteredDragSource.js'\n\n/**\n * useDragSource hook\n * @param sourceSpec The drag source specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrag<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDragSourceHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDragSource, ConnectDragPreview] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tinvariant(\n\t\t!(spec as any).begin,\n\t\t`useDrag::spec.begin was deprecated in v14. Replace spec.begin() with spec.item(). (see more here - https://react-dnd.github.io/react-dnd/docs/api/use-drag)`,\n\t)\n\n\tconst monitor = useDragSourceMonitor<DragObject, DropResult>()\n\tconst connector = useDragSourceConnector(spec.options, spec.previewOptions)\n\tuseRegisteredDragSource(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDragSource(connector),\n\t\tuseConnectDragPreview(connector),\n\t]\n}\n","import { useMemo } from 'react'\n\nimport type { TargetConnector } from '../../internals/index.js'\n\nexport function useConnectDropTarget(connector: TargetConnector) {\n\treturn useMemo(() => connector.hooks.dropTarget(), [connector])\n}\n","import { useMemo } from 'react'\n\nimport { TargetConnector } from '../../internals/index.js'\nimport type { DropTargetOptions } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\n\nexport function useDropTargetConnector(\n\toptions: DropTargetOptions,\n): TargetConnector {\n\tconst manager = useDragDropManager()\n\tconst connector = useMemo(\n\t\t() => new TargetConnector(manager.getBackend()),\n\t\t[manager],\n\t)\n\tuseIsomorphicLayoutEffect(() => {\n\t\tconnector.dropTargetOptions = options || null\n\t\tconnector.reconnect()\n\t\treturn () => connector.disconnectDropTarget()\n\t}, [options])\n\treturn connector\n}\n","import { useMemo } from 'react'\n\nimport { DropTargetMonitorImpl } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\n\nexport function useDropTargetMonitor<O, R>(): DropTargetMonitor<O, R> {\n\tconst manager = useDragDropManager()\n\treturn useMemo(() => new DropTargetMonitorImpl(manager), [manager])\n}\n","import { invariant } from '@react-dnd/invariant'\nimport type { Identifier } from 'dnd-core'\nimport { useMemo } from 'react'\n\nimport type { DropTargetHookSpec } from '../types.js'\n\n/**\n * Internal utility hook to get an array-version of spec.accept.\n * The main utility here is that we aren't creating a new array on every render if a non-array spec.accept is passed in.\n * @param spec\n */\nexport function useAccept<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n): Identifier[] {\n\tconst { accept } = spec\n\treturn useMemo(() => {\n\t\tinvariant(spec.accept != null, 'accept must be defined')\n\t\treturn Array.isArray(accept) ? accept : [accept]\n\t}, [accept])\n}\n","import type { DropTarget } from 'dnd-core'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\n\nexport class DropTargetImpl<O, R, P> implements DropTarget {\n\tpublic constructor(\n\t\tpublic spec: DropTargetHookSpec<O, R, P>,\n\t\tprivate monitor: DropTargetMonitor<O, R>,\n\t) {}\n\n\tpublic canDrop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\treturn spec.canDrop ? spec.canDrop(monitor.getItem(), monitor) : true\n\t}\n\n\tpublic hover() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.hover) {\n\t\t\tspec.hover(monitor.getItem(), monitor)\n\t\t}\n\t}\n\n\tpublic drop() {\n\t\tconst spec = this.spec\n\t\tconst monitor = this.monitor\n\t\tif (spec.drop) {\n\t\t\treturn spec.drop(monitor.getItem(), monitor)\n\t\t}\n\t\treturn\n\t}\n}\n","import { useEffect, useMemo } from 'react'\n\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { DropTargetImpl } from './DropTargetImpl.js'\n\nexport function useDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n) {\n\tconst dropTarget = useMemo(() => new DropTargetImpl(spec, monitor), [monitor])\n\tuseEffect(() => {\n\t\tdropTarget.spec = spec\n\t}, [spec])\n\treturn dropTarget\n}\n","import type { TargetConnector } from '../../internals/index.js'\nimport { registerTarget } from '../../internals/index.js'\nimport type { DropTargetMonitor } from '../../types/index.js'\nimport type { DropTargetHookSpec } from '../types.js'\nimport { useDragDropManager } from '../useDragDropManager.js'\nimport { useIsomorphicLayoutEffect } from '../useIsomorphicLayoutEffect.js'\nimport { useAccept } from './useAccept.js'\nimport { useDropTarget } from './useDropTarget.js'\n\nexport function useRegisteredDropTarget<O, R, P>(\n\tspec: DropTargetHookSpec<O, R, P>,\n\tmonitor: DropTargetMonitor<O, R>,\n\tconnector: TargetConnector,\n): void {\n\tconst manager = useDragDropManager()\n\tconst dropTarget = useDropTarget(spec, monitor)\n\tconst accept = useAccept(spec)\n\n\tuseIsomorphicLayoutEffect(\n\t\tfunction registerDropTarget() {\n\t\t\tconst [handlerId, unregister] = registerTarget(\n\t\t\t\taccept,\n\t\t\t\tdropTarget,\n\t\t\t\tmanager,\n\t\t\t)\n\t\t\tmonitor.receiveHandlerId(handlerId)\n\t\t\tconnector.receiveHandlerId(handlerId)\n\t\t\treturn unregister\n\t\t},\n\t\t[\n\t\t\tmanager,\n\t\t\tmonitor,\n\t\t\tdropTarget,\n\t\t\tconnector,\n\t\t\taccept.map((a) => a.toString()).join('|'),\n\t\t],\n\t)\n}\n","import type { ConnectDropTarget } from '../../types/index.js'\nimport type { DropTargetHookSpec, FactoryOrInstance } from '../types.js'\nimport { useCollectedProps } from '../useCollectedProps.js'\nimport { useOptionalFactory } from '../useOptionalFactory.js'\nimport { useConnectDropTarget } from './connectors.js'\nimport { useDropTargetConnector } from './useDropTargetConnector.js'\nimport { useDropTargetMonitor } from './useDropTargetMonitor.js'\nimport { useRegisteredDropTarget } from './useRegisteredDropTarget.js'\n\n/**\n * useDropTarget Hook\n * @param spec The drop target specification (object or function, function preferred)\n * @param deps The memoization deps array to use when evaluating spec changes\n */\nexport function useDrop<\n\tDragObject = unknown,\n\tDropResult = unknown,\n\tCollectedProps = unknown,\n>(\n\tspecArg: FactoryOrInstance<\n\t\tDropTargetHookSpec<DragObject, DropResult, CollectedProps>\n\t>,\n\tdeps?: unknown[],\n): [CollectedProps, ConnectDropTarget] {\n\tconst spec = useOptionalFactory(specArg, deps)\n\tconst monitor = useDropTargetMonitor<DragObject, DropResult>()\n\tconst connector = useDropTargetConnector(spec.options)\n\tuseRegisteredDropTarget(spec, monitor, connector)\n\n\treturn [\n\t\tuseCollectedProps(spec.collect, monitor, connector),\n\t\tuseConnectDropTarget(connector),\n\t]\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, Tooltip } from '@mui/material';\nimport React, { FC, forwardRef, Ref } from 'react';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n ref: Ref<HTMLButtonElement>;\n table: MRT_TableInstance;\n}\n\nexport const MRT_GrabHandleButton: FC<Props> = forwardRef(({ table }, ref) => {\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.grab}\n >\n <IconButton\n disableRipple\n ref={ref}\n size=\"small\"\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 }}\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\nexport const fuzzy = <D extends Record<string, any> = {}>(\n row: Row<D>,\n columnId: string,\n filterValue: string,\n addMeta: (item: RankingInfo) => void,\n) => {\n const itemRank = rankItem(row.getValue(columnId), filterValue, {\n threshold: rankings.MATCHES,\n });\n addMeta(itemRank);\n return itemRank.passed;\n};\n\nfuzzy.autoRemove = (val: any) => !val;\n\nexport const contains = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .includes(filterValue.toString().toLowerCase().trim());\n\ncontains.autoRemove = (val: any) => !val;\n\nexport const startsWith = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .startsWith(filterValue.toString().toLowerCase().trim());\n\nstartsWith.autoRemove = (val: any) => !val;\n\nexport const endsWith = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n row\n .getValue(id)\n .toString()\n .toLowerCase()\n .trim()\n .endsWith(filterValue.toString().toLowerCase().trim());\n\nendsWith.autoRemove = (val: any) => !val;\n\nexport const equals = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() ===\n filterValue.toString().toLowerCase().trim();\n\nequals.autoRemove = (val: any) => !val;\n\nexport const notEquals = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n row.getValue(id).toString().toLowerCase().trim() !==\n filterValue.toString().toLowerCase().trim();\n\nnotEquals.autoRemove = (val: any) => !val;\n\nexport const greaterThan = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) >= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() >\n filterValue.toString().toLowerCase().trim();\n\ngreaterThan.autoRemove = (val: any) => !val;\n\nexport const lessThan = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n filterValue: string | number,\n) =>\n !isNaN(+filterValue) && !isNaN(+row.getValue(id))\n ? +row.getValue(id) <= +filterValue\n : row.getValue(id).toString().toLowerCase().trim() <\n filterValue.toString().toLowerCase().trim();\n\nlessThan.autoRemove = (val: any) => !val;\n\nexport const between = <D extends Record<string, any> = {}>(\n row: Row<D>,\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\nexport const empty = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n _filterValue: string | number,\n) => !row.getValue(id).toString().trim();\n\nempty.autoRemove = (val: any) => !val;\n\nexport const notEmpty = <D extends Record<string, any> = {}>(\n row: Row<D>,\n id: string,\n _filterValue: string | number,\n) => !!row.getValue(id).toString().trim();\n\nnotEmpty.autoRemove = (val: any) => !val;\n\nexport const MRT_FilterFns = {\n ...filterFns,\n between,\n contains,\n empty,\n endsWith,\n equals,\n fuzzy,\n greaterThan,\n lessThan,\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 = <D extends Record<string, any> = {}>(\n rowA: Row<D>,\n rowB: Row<D>,\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 = <D extends Record<string, any> = {}>(\n rowA: MRT_Row<D>,\n rowB: MRT_Row<D>,\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_FilterOption,\n} from '.';\nimport { MRT_FilterFns } from './filtersFns';\nimport { MRT_SortingFns } from './sortingFns';\n\nconst getColumnId = <D extends Record<string, any> = {}>(\n columnDef: MRT_ColumnDef<D>,\n): string =>\n columnDef.id ?? columnDef.accessorKey?.toString?.() ?? columnDef.header;\n\nexport const getAllLeafColumnDefs = <D extends Record<string, any> = {}>(\n columns: MRT_ColumnDef<D>[],\n): MRT_ColumnDef<D>[] => {\n let lowestLevelColumns: MRT_ColumnDef<D>[] = columns;\n let currentCols: MRT_ColumnDef<D>[] | undefined = columns;\n while (!!currentCols?.length && currentCols.some((col) => col.columns)) {\n const nextCols: MRT_ColumnDef<D>[] = currentCols\n .filter((col) => !!col.columns)\n .map((col) => col.columns)\n .flat() as MRT_ColumnDef<D>[];\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 = <D extends Record<string, any> = {}>(\n columnDefs: MRT_ColumnDef<D>[],\n currentFilterFns: { [key: string]: MRT_FilterOption },\n): MRT_DefinedColumnDef<D>[] =>\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<D>[];\n\nexport const reorderColumn = <D extends Record<string, any> = {}>(\n movingColumn: MRT_Column<D>,\n receivingColumn: MRT_Column<D>,\n columnOrder: ColumnOrderState,\n): ColumnOrderState => {\n if (movingColumn.getCanPin()) {\n movingColumn.pin(receivingColumn.getIsPinned());\n }\n columnOrder.splice(\n columnOrder.indexOf(receivingColumn.id),\n 0,\n columnOrder.splice(columnOrder.indexOf(movingColumn.id), 1)[0],\n );\n return [...columnOrder];\n};\n\nexport const getLeadingDisplayColumnIds = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) =>\n [\n ((props.positionActionsColumn === 'first' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n (props.enableExpanding || props.enableGrouping) && 'mrt-expand',\n props.enableRowSelection && 'mrt-select',\n props.enableRowNumbers && 'mrt-row-numbers',\n ].filter(Boolean) as string[];\n\nexport const getTrailingDisplayColumnIds = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\n) => [\n ((props.positionActionsColumn === 'last' && props.enableRowActions) ||\n (props.enableEditing && props.editingMode === 'row')) &&\n 'mrt-row-actions',\n];\n\nexport const getDefaultColumnOrderIds = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\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, { FC, Ref } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\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 '../utils';\nimport type { MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n allColumns: MRT_Column[];\n column: MRT_Column;\n isSubMenu?: boolean;\n table: MRT_TableInstance;\n}\n\nexport const MRT_ShowHideColumnsMenuItems: FC<Props> = ({\n allColumns,\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 [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\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 return (\n <>\n <MenuItem\n ref={columnDefType === 'data' ? dropRef : undefined}\n sx={{\n alignItems: 'center',\n justifyContent: 'flex-start',\n my: 0,\n pl: `${(column.depth + 0.5) * 2}rem`,\n py: '6px',\n }}\n >\n <Box\n ref={previewRef}\n sx={{\n display: 'flex',\n flexWrap: 'nowrap',\n gap: '8px',\n }}\n >\n {columnDefType !== 'group' &&\n enableColumnOrdering &&\n !allColumns.some(\n (col) => col.columnDef.columnDefType === 'group',\n ) &&\n (columnDef.enableColumnOrdering !== false ? (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n table={table}\n />\n ) : (\n <Box sx={{ width: '28px' }} />\n ))}\n {enablePinning &&\n !isSubMenu &&\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 key={`${i}-${c.id}`}\n column={c}\n isSubMenu={isSubMenu}\n table={table}\n />\n ))}\n </>\n );\n};\n","import React, { FC, useMemo } 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 '../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 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 isSubMenu={isSubMenu}\n key={`${index}-${column.id}`}\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-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 <MenuItem\n disabled={!column.getCanResize() || !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, { ChangeEvent, 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 handleSelectChange = (event: ChangeEvent<HTMLInputElement>) => {\n if (selectAll) {\n if (selectAllMode === 'all') {\n table.getToggleAllRowsSelectedHandler()(event as any);\n } else if (selectAllMode === 'page') {\n table.getToggleAllPageRowsSelectedHandler()(event as any);\n }\n } else if (row) {\n row?.getToggleSelectedHandler()(event as any);\n }\n };\n\n const checkboxProps = selectAll\n ? muiSelectAllCheckboxProps instanceof Function\n ? muiSelectAllCheckboxProps({ table })\n : muiSelectAllCheckboxProps\n : muiSelectCheckboxProps instanceof Function\n ? muiSelectCheckboxProps({ row: row as MRT_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={handleSelectChange}\n size={density === 'compact' ? 'small' : 'medium'}\n {...checkboxProps}\n sx={{\n height: density === 'compact' ? '1.75rem' : '2.25rem',\n width: density === 'compact' ? '1.75rem' : '2.25rem',\n ...checkboxProps?.sx,\n }}\n />\n </Tooltip>\n );\n};\n","// cheap lodash replacements\n\nexport function memoize<T>(fn: () => T): () => T {\n\tlet result: T | null = null\n\tconst memoized = () => {\n\t\tif (result == null) {\n\t\t\tresult = fn()\n\t\t}\n\t\treturn result\n\t}\n\treturn memoized\n}\n\n/**\n * drop-in replacement for _.without\n */\nexport function without<T>(items: T[], item: T) {\n\treturn items.filter((i) => i !== item)\n}\n\nexport function union<T extends string | number>(itemsA: T[], itemsB: T[]) {\n\tconst set = new Set<T>()\n\tconst insertItem = (item: T) => set.add(item)\n\titemsA.forEach(insertItem)\n\titemsB.forEach(insertItem)\n\n\tconst result: T[] = []\n\tset.forEach((key) => result.push(key))\n\treturn result\n}\n","import { union, without } from './utils/js_utils.js'\n\ntype NodePredicate = (node: Node | null | undefined) => boolean\n\nexport class EnterLeaveCounter {\n\tprivate entered: any[] = []\n\tprivate isNodeInDocument: NodePredicate\n\n\tpublic constructor(isNodeInDocument: NodePredicate) {\n\t\tthis.isNodeInDocument = isNodeInDocument\n\t}\n\n\tpublic enter(enteringNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tconst isNodeEntered = (node: Node): boolean =>\n\t\t\tthis.isNodeInDocument(node) &&\n\t\t\t(!node.contains || node.contains(enteringNode as Node))\n\n\t\tthis.entered = union(this.entered.filter(isNodeEntered), [enteringNode])\n\n\t\treturn previousLength === 0 && this.entered.length > 0\n\t}\n\n\tpublic leave(leavingNode: EventTarget | null): boolean {\n\t\tconst previousLength = this.entered.length\n\n\t\tthis.entered = without(\n\t\t\tthis.entered.filter(this.isNodeInDocument),\n\t\t\tleavingNode,\n\t\t)\n\n\t\treturn previousLength > 0 && this.entered.length === 0\n\t}\n\n\tpublic reset(): void {\n\t\tthis.entered = []\n\t}\n}\n","import type { DragDropMonitor } from 'dnd-core'\n\nimport type { NativeItemConfig } from './nativeTypesConfig.js'\n\nexport class NativeDragSource {\n\tpublic item: any\n\tprivate config: NativeItemConfig\n\n\tpublic constructor(config: NativeItemConfig) {\n\t\tthis.config = config\n\t\tthis.item = {}\n\t\tthis.initializeExposedProperties()\n\t}\n\n\tprivate initializeExposedProperties() {\n\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\tObject.defineProperty(this.item, property, {\n\t\t\t\tconfigurable: true, // This is needed to allow redefining it later\n\t\t\t\tenumerable: true,\n\t\t\t\tget() {\n\t\t\t\t\t// eslint-disable-next-line no-console\n\t\t\t\t\tconsole.warn(\n\t\t\t\t\t\t`Browser doesn't allow reading \"${property}\" until the drop event.`,\n\t\t\t\t\t)\n\t\t\t\t\treturn null\n\t\t\t\t},\n\t\t\t})\n\t\t})\n\t}\n\n\tpublic loadDataTransfer(dataTransfer: DataTransfer | null | undefined): void {\n\t\tif (dataTransfer) {\n\t\t\tconst newProperties: PropertyDescriptorMap = {}\n\t\t\tObject.keys(this.config.exposeProperties).forEach((property) => {\n\t\t\t\tconst propertyFn = this.config.exposeProperties[property]\n\t\t\t\tif (propertyFn != null) {\n\t\t\t\t\tnewProperties[property] = {\n\t\t\t\t\t\tvalue: propertyFn(dataTransfer, this.config.matchesTypes),\n\t\t\t\t\t\tconfigurable: true,\n\t\t\t\t\t\tenumerable: true,\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t})\n\t\t\tObject.defineProperties(this.item, newProperties)\n\t\t}\n\t}\n\n\tpublic canDrag(): boolean {\n\t\treturn true\n\t}\n\n\tpublic beginDrag(): any {\n\t\treturn this.item\n\t}\n\n\tpublic isDragging(monitor: DragDropMonitor, handle: string): boolean {\n\t\treturn handle === monitor.getSourceId()\n\t}\n\n\tpublic endDrag(): void {\n\t\t// empty\n\t}\n}\n","export const FILE = '__NATIVE_FILE__'\nexport const URL = '__NATIVE_URL__'\nexport const TEXT = '__NATIVE_TEXT__'\nexport const HTML = '__NATIVE_HTML__'\n","export function getDataFromDataTransfer(\n\tdataTransfer: DataTransfer,\n\ttypesToTry: string[],\n\tdefaultValue: string,\n): string {\n\tconst result = typesToTry.reduce(\n\t\t(resultSoFar, typeToTry) => resultSoFar || dataTransfer.getData(typeToTry),\n\t\t'',\n\t)\n\n\treturn result != null ? result : defaultValue\n}\n","import * as NativeTypes from '../NativeTypes.js'\nimport { getDataFromDataTransfer } from './getDataFromDataTransfer.js'\n\nexport interface NativeItemConfigExposePropreties {\n\t[property: string]: (\n\t\tdataTransfer: DataTransfer,\n\t\tmatchesTypes: string[],\n\t) => any\n}\n\nexport interface NativeItemConfig {\n\texposeProperties: NativeItemConfigExposePropreties\n\tmatchesTypes: string[]\n}\n\nexport const nativeTypesConfig: {\n\t[key: string]: NativeItemConfig\n} = {\n\t[NativeTypes.FILE]: {\n\t\texposeProperties: {\n\t\t\tfiles: (dataTransfer: DataTransfer): File[] =>\n\t\t\t\tArray.prototype.slice.call(dataTransfer.files),\n\t\t\titems: (dataTransfer: DataTransfer): DataTransferItemList =>\n\t\t\t\tdataTransfer.items,\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Files'],\n\t},\n\t[NativeTypes.HTML]: {\n\t\texposeProperties: {\n\t\t\thtml: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Html', 'text/html'],\n\t},\n\t[NativeTypes.URL]: {\n\t\texposeProperties: {\n\t\t\turls: (dataTransfer: DataTransfer, matchesTypes: string[]): string[] =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, '').split('\\n'),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Url', 'text/uri-list'],\n\t},\n\t[NativeTypes.TEXT]: {\n\t\texposeProperties: {\n\t\t\ttext: (dataTransfer: DataTransfer, matchesTypes: string[]): string =>\n\t\t\t\tgetDataFromDataTransfer(dataTransfer, matchesTypes, ''),\n\t\t\tdataTransfer: (dataTransfer: DataTransfer): DataTransfer => dataTransfer,\n\t\t},\n\t\tmatchesTypes: ['Text', 'text/plain'],\n\t},\n}\n","import { NativeDragSource } from './NativeDragSource.js'\nimport { nativeTypesConfig } from './nativeTypesConfig.js'\n\nexport function createNativeDragSource(\n\ttype: string,\n\tdataTransfer?: DataTransfer,\n): NativeDragSource {\n\tconst config = nativeTypesConfig[type]\n\tif (!config) {\n\t\tthrow new Error(`native type ${type} has no configuration`)\n\t}\n\tconst result = new NativeDragSource(config)\n\tresult.loadDataTransfer(dataTransfer)\n\treturn result\n}\n\nexport function matchNativeItemType(\n\tdataTransfer: DataTransfer | null,\n): string | null {\n\tif (!dataTransfer) {\n\t\treturn null\n\t}\n\n\tconst dataTransferTypes = Array.prototype.slice.call(dataTransfer.types || [])\n\treturn (\n\t\tObject.keys(nativeTypesConfig).filter((nativeItemType) => {\n\t\t\tconst typeConfig = nativeTypesConfig[nativeItemType]\n\t\t\tif (!typeConfig?.matchesTypes) {\n\t\t\t\treturn false\n\t\t\t}\n\t\t\treturn typeConfig.matchesTypes.some(\n\t\t\t\t(t) => dataTransferTypes.indexOf(t) > -1,\n\t\t\t)\n\t\t})[0] || null\n\t)\n}\n","import { memoize } from './utils/js_utils.js'\n\ndeclare global {\n\tinterface Window extends HTMLElement {\n\t\tsafari: any\n\t}\n}\n\nexport type Predicate = () => boolean\nexport const isFirefox: Predicate = memoize(() =>\n\t/firefox/i.test(navigator.userAgent),\n)\nexport const isSafari: Predicate = memoize(() => Boolean(window.safari))\n","export class MonotonicInterpolant {\n\tprivate xs: any\n\tprivate ys: any\n\tprivate c1s: any\n\tprivate c2s: any\n\tprivate c3s: any\n\n\tpublic constructor(xs: number[], ys: number[]) {\n\t\tconst { length } = xs\n\n\t\t// Rearrange xs and ys so that xs is sorted\n\t\tconst indexes = []\n\t\tfor (let i = 0; i < length; i++) {\n\t\t\tindexes.push(i)\n\t\t}\n\t\tindexes.sort((a, b) => ((xs[a] as number) < (xs[b] as number) ? -1 : 1))\n\n\t\t// Get consecutive differences and slopes\n\t\tconst dys = []\n\t\tconst dxs = []\n\t\tconst ms = []\n\t\tlet dx\n\t\tlet dy\n\t\tfor (let i = 0; i < length - 1; i++) {\n\t\t\tdx = (xs[i + 1] as number) - (xs[i] as number)\n\t\t\tdy = (ys[i + 1] as number) - (ys[i] as number)\n\t\t\tdxs.push(dx)\n\t\t\tdys.push(dy)\n\t\t\tms.push(dy / dx)\n\t\t}\n\n\t\t// Get degree-1 coefficients\n\t\tconst c1s = [ms[0]]\n\t\tfor (let i = 0; i < dxs.length - 1; i++) {\n\t\t\tconst m2 = ms[i] as number\n\t\t\tconst mNext = ms[i + 1] as number\n\t\t\tif (m2 * mNext <= 0) {\n\t\t\t\tc1s.push(0)\n\t\t\t} else {\n\t\t\t\tdx = dxs[i] as number\n\t\t\t\tconst dxNext = dxs[i + 1] as number\n\t\t\t\tconst common = dx + dxNext\n\t\t\t\tc1s.push(\n\t\t\t\t\t(3 * common) / ((common + dxNext) / m2 + (common + dx) / mNext),\n\t\t\t\t)\n\t\t\t}\n\t\t}\n\t\tc1s.push(ms[ms.length - 1])\n\n\t\t// Get degree-2 and degree-3 coefficients\n\t\tconst c2s = []\n\t\tconst c3s = []\n\t\tlet m\n\t\tfor (let i = 0; i < c1s.length - 1; i++) {\n\t\t\tm = ms[i] as number\n\t\t\tconst c1 = c1s[i] as number\n\t\t\tconst invDx = 1 / (dxs[i] as number)\n\t\t\tconst common = c1 + (c1s[i + 1] as number) - m - m\n\t\t\tc2s.push((m - c1 - common) * invDx)\n\t\t\tc3s.push(common * invDx * invDx)\n\t\t}\n\n\t\tthis.xs = xs\n\t\tthis.ys = ys\n\t\tthis.c1s = c1s\n\t\tthis.c2s = c2s\n\t\tthis.c3s = c3s\n\t}\n\n\tpublic interpolate(x: number): number {\n\t\tconst { xs, ys, c1s, c2s, c3s } = this\n\n\t\t// The rightmost point in the dataset should give an exact result\n\t\tlet i = xs.length - 1\n\t\tif (x === xs[i]) {\n\t\t\treturn ys[i]\n\t\t}\n\n\t\t// Search for the interval x is in, returning the corresponding y if x is one of the original xs\n\t\tlet low = 0\n\t\tlet high = c3s.length - 1\n\t\tlet mid\n\t\twhile (low <= high) {\n\t\t\tmid = Math.floor(0.5 * (low + high))\n\t\t\tconst xHere = xs[mid]\n\t\t\tif (xHere < x) {\n\t\t\t\tlow = mid + 1\n\t\t\t} else if (xHere > x) {\n\t\t\t\thigh = mid - 1\n\t\t\t} else {\n\t\t\t\treturn ys[mid]\n\t\t\t}\n\t\t}\n\t\ti = Math.max(0, high)\n\n\t\t// Interpolate\n\t\tconst diff = x - xs[i]\n\t\tconst diffSq = diff * diff\n\t\treturn ys[i] + c1s[i] * diff + c2s[i] * diffSq + c3s[i] * diff * diffSq\n\t}\n}\n","import type { XYCoord } from 'dnd-core'\n\nimport { isFirefox, isSafari } from './BrowserDetector.js'\nimport { MonotonicInterpolant } from './MonotonicInterpolant.js'\n\nconst ELEMENT_NODE = 1\n\nexport function getNodeClientOffset(node: Node): XYCoord | null {\n\tconst el = node.nodeType === ELEMENT_NODE ? node : node.parentElement\n\n\tif (!el) {\n\t\treturn null\n\t}\n\n\tconst { top, left } = (el as HTMLElement).getBoundingClientRect()\n\treturn { x: left, y: top }\n}\n\nexport function getEventClientOffset(e: MouseEvent): XYCoord {\n\treturn {\n\t\tx: e.clientX,\n\t\ty: e.clientY,\n\t}\n}\n\nfunction isImageNode(node: any) {\n\treturn (\n\t\tnode.nodeName === 'IMG' &&\n\t\t(isFirefox() || !document.documentElement?.contains(node))\n\t)\n}\n\nfunction getDragPreviewSize(\n\tisImage: boolean,\n\tdragPreview: any,\n\tsourceWidth: number,\n\tsourceHeight: number,\n) {\n\tlet dragPreviewWidth = isImage ? dragPreview.width : sourceWidth\n\tlet dragPreviewHeight = isImage ? dragPreview.height : sourceHeight\n\n\t// Work around @2x coordinate discrepancies in browsers\n\tif (isSafari() && isImage) {\n\t\tdragPreviewHeight /= window.devicePixelRatio\n\t\tdragPreviewWidth /= window.devicePixelRatio\n\t}\n\treturn { dragPreviewWidth, dragPreviewHeight }\n}\n\nexport function getDragPreviewOffset(\n\tsourceNode: HTMLElement,\n\tdragPreview: HTMLElement,\n\tclientOffset: XYCoord,\n\tanchorPoint: { anchorX: number; anchorY: number },\n\toffsetPoint: { offsetX: number; offsetY: number },\n): XYCoord {\n\t// The browsers will use the image intrinsic size under different conditions.\n\t// Firefox only cares if it's an image, but WebKit also wants it to be detached.\n\tconst isImage = isImageNode(dragPreview)\n\tconst dragPreviewNode = isImage ? sourceNode : dragPreview\n\tconst dragPreviewNodeOffsetFromClient = getNodeClientOffset(\n\t\tdragPreviewNode,\n\t) as XYCoord\n\tconst offsetFromDragPreview = {\n\t\tx: clientOffset.x - dragPreviewNodeOffsetFromClient.x,\n\t\ty: clientOffset.y - dragPreviewNodeOffsetFromClient.y,\n\t}\n\tconst { offsetWidth: sourceWidth, offsetHeight: sourceHeight } = sourceNode\n\tconst { anchorX, anchorY } = anchorPoint\n\tconst { dragPreviewWidth, dragPreviewHeight } = getDragPreviewSize(\n\t\tisImage,\n\t\tdragPreview,\n\t\tsourceWidth,\n\t\tsourceHeight,\n\t)\n\n\tconst calculateYOffset = () => {\n\t\tconst interpolantY = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the top\n\t\t\t\toffsetFromDragPreview.y,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.y / sourceHeight) * dragPreviewHeight,\n\t\t\t\t// Dock to the bottom\n\t\t\t\toffsetFromDragPreview.y + dragPreviewHeight - sourceHeight,\n\t\t\t],\n\t\t)\n\t\tlet y = interpolantY.interpolate(anchorY)\n\t\t// Work around Safari 8 positioning bug\n\t\tif (isSafari() && isImage) {\n\t\t\t// We'll have to wait for @3x to see if this is entirely correct\n\t\t\ty += (window.devicePixelRatio - 1) * dragPreviewHeight\n\t\t}\n\t\treturn y\n\t}\n\n\tconst calculateXOffset = () => {\n\t\t// Interpolate coordinates depending on anchor point\n\t\t// If you know a simpler way to do this, let me know\n\t\tconst interpolantX = new MonotonicInterpolant(\n\t\t\t[0, 0.5, 1],\n\t\t\t[\n\t\t\t\t// Dock to the left\n\t\t\t\toffsetFromDragPreview.x,\n\t\t\t\t// Align at the center\n\t\t\t\t(offsetFromDragPreview.x / sourceWidth) * dragPreviewWidth,\n\t\t\t\t// Dock to the right\n\t\t\t\toffsetFromDragPreview.x + dragPreviewWidth - sourceWidth,\n\t\t\t],\n\t\t)\n\t\treturn interpolantX.interpolate(anchorX)\n\t}\n\n\t// Force offsets if specified in the options.\n\tconst { offsetX, offsetY } = offsetPoint\n\tconst isManualOffsetX = offsetX === 0 || offsetX\n\tconst isManualOffsetY = offsetY === 0 || offsetY\n\treturn {\n\t\tx: isManualOffsetX ? offsetX : calculateXOffset(),\n\t\ty: isManualOffsetY ? offsetY : calculateYOffset(),\n\t}\n}\n","import type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport class OptionsReader {\n\tpublic ownerDocument: Document | null = null\n\tprivate globalContext: HTML5BackendContext\n\tprivate optionsArgs: HTML5BackendOptions | undefined\n\n\tpublic constructor(\n\t\tglobalContext: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.globalContext = globalContext\n\t\tthis.optionsArgs = options\n\t}\n\n\tpublic get window(): Window | undefined {\n\t\tif (this.globalContext) {\n\t\t\treturn this.globalContext\n\t\t} else if (typeof window !== 'undefined') {\n\t\t\treturn window\n\t\t}\n\t\treturn undefined\n\t}\n\n\tpublic get document(): Document | undefined {\n\t\tif (this.globalContext?.document) {\n\t\t\treturn this.globalContext.document\n\t\t} else if (this.window) {\n\t\t\treturn this.window.document\n\t\t} else {\n\t\t\treturn undefined\n\t\t}\n\t}\n\n\tpublic get rootElement(): Node | undefined {\n\t\treturn this.optionsArgs?.rootElement || this.window\n\t}\n}\n","import type {\n\tBackend,\n\tDragDropActions,\n\tDragDropManager,\n\tDragDropMonitor,\n\tHandlerRegistry,\n\tIdentifier,\n\tUnsubscribe,\n\tXYCoord,\n} from 'dnd-core'\n\nimport { EnterLeaveCounter } from './EnterLeaveCounter.js'\nimport {\n\tcreateNativeDragSource,\n\tmatchNativeItemType,\n} from './NativeDragSources/index.js'\nimport type { NativeDragSource } from './NativeDragSources/NativeDragSource.js'\nimport * as NativeTypes from './NativeTypes.js'\nimport {\n\tgetDragPreviewOffset,\n\tgetEventClientOffset,\n\tgetNodeClientOffset,\n} from './OffsetUtils.js'\nimport { OptionsReader } from './OptionsReader.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\ntype RootNode = Node & { __isReactDndBackendSetUp: boolean | undefined }\n\nexport class HTML5BackendImpl implements Backend {\n\tprivate options: OptionsReader\n\n\t// React-Dnd Components\n\tprivate actions: DragDropActions\n\tprivate monitor: DragDropMonitor\n\tprivate registry: HandlerRegistry\n\n\t// Internal State\n\tprivate enterLeaveCounter: EnterLeaveCounter\n\n\tprivate sourcePreviewNodes: Map<string, Element> = new Map()\n\tprivate sourcePreviewNodeOptions: Map<string, any> = new Map()\n\tprivate sourceNodes: Map<string, Element> = new Map()\n\tprivate sourceNodeOptions: Map<string, any> = new Map()\n\n\tprivate dragStartSourceIds: string[] | null = null\n\tprivate dropTargetIds: string[] = []\n\tprivate dragEnterTargetIds: string[] = []\n\tprivate currentNativeSource: NativeDragSource | null = null\n\tprivate currentNativeHandle: Identifier | null = null\n\tprivate currentDragSourceNode: Element | null = null\n\tprivate altKeyPressed = false\n\tprivate mouseMoveTimeoutTimer: number | null = null\n\tprivate asyncEndDragFrameId: number | null = null\n\tprivate dragOverTargetIds: string[] | null = null\n\n\tprivate lastClientOffset: XYCoord | null = null\n\tprivate hoverRafId: number | null = null\n\n\tpublic constructor(\n\t\tmanager: DragDropManager,\n\t\tglobalContext?: HTML5BackendContext,\n\t\toptions?: HTML5BackendOptions,\n\t) {\n\t\tthis.options = new OptionsReader(globalContext, options)\n\t\tthis.actions = manager.getActions()\n\t\tthis.monitor = manager.getMonitor()\n\t\tthis.registry = manager.getRegistry()\n\t\tthis.enterLeaveCounter = new EnterLeaveCounter(this.isNodeInDocument)\n\t}\n\n\t/**\n\t * Generate profiling statistics for the HTML5Backend.\n\t */\n\tpublic profile(): Record<string, number> {\n\t\treturn {\n\t\t\tsourcePreviewNodes: this.sourcePreviewNodes.size,\n\t\t\tsourcePreviewNodeOptions: this.sourcePreviewNodeOptions.size,\n\t\t\tsourceNodeOptions: this.sourceNodeOptions.size,\n\t\t\tsourceNodes: this.sourceNodes.size,\n\t\t\tdragStartSourceIds: this.dragStartSourceIds?.length || 0,\n\t\t\tdropTargetIds: this.dropTargetIds.length,\n\t\t\tdragEnterTargetIds: this.dragEnterTargetIds.length,\n\t\t\tdragOverTargetIds: this.dragOverTargetIds?.length || 0,\n\t\t}\n\t}\n\n\t// public for test\n\tpublic get window(): Window | undefined {\n\t\treturn this.options.window\n\t}\n\tpublic get document(): Document | undefined {\n\t\treturn this.options.document\n\t}\n\t/**\n\t * Get the root element to use for event subscriptions\n\t */\n\tprivate get rootElement(): Node | undefined {\n\t\treturn this.options.rootElement as Node\n\t}\n\n\tpublic setup(): void {\n\t\tconst root = this.rootElement as RootNode | undefined\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\tif (root.__isReactDndBackendSetUp) {\n\t\t\tthrow new Error('Cannot have two HTML5 backends at the same time.')\n\t\t}\n\t\troot.__isReactDndBackendSetUp = true\n\t\tthis.addEventListeners(root)\n\t}\n\n\tpublic teardown(): void {\n\t\tconst root = this.rootElement as RootNode\n\t\tif (root === undefined) {\n\t\t\treturn\n\t\t}\n\n\t\troot.__isReactDndBackendSetUp = false\n\t\tthis.removeEventListeners(this.rootElement as Element)\n\t\tthis.clearCurrentDragSourceNode()\n\t\tif (this.asyncEndDragFrameId) {\n\t\t\tthis.window?.cancelAnimationFrame(this.asyncEndDragFrameId)\n\t\t}\n\t}\n\n\tpublic connectDragPreview(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourcePreviewNodeOptions.set(sourceId, options)\n\t\tthis.sourcePreviewNodes.set(sourceId, node)\n\n\t\treturn (): void => {\n\t\t\tthis.sourcePreviewNodes.delete(sourceId)\n\t\t\tthis.sourcePreviewNodeOptions.delete(sourceId)\n\t\t}\n\t}\n\n\tpublic connectDragSource(\n\t\tsourceId: string,\n\t\tnode: Element,\n\t\toptions: any,\n\t): Unsubscribe {\n\t\tthis.sourceNodes.set(sourceId, node)\n\t\tthis.sourceNodeOptions.set(sourceId, options)\n\n\t\tconst handleDragStart = (e: any) => this.handleDragStart(e, sourceId)\n\t\tconst handleSelectStart = (e: any) => this.handleSelectStart(e)\n\n\t\tnode.setAttribute('draggable', 'true')\n\t\tnode.addEventListener('dragstart', handleDragStart)\n\t\tnode.addEventListener('selectstart', handleSelectStart)\n\n\t\treturn (): void => {\n\t\t\tthis.sourceNodes.delete(sourceId)\n\t\t\tthis.sourceNodeOptions.delete(sourceId)\n\n\t\t\tnode.removeEventListener('dragstart', handleDragStart)\n\t\t\tnode.removeEventListener('selectstart', handleSelectStart)\n\t\t\tnode.setAttribute('draggable', 'false')\n\t\t}\n\t}\n\n\tpublic connectDropTarget(targetId: string, node: HTMLElement): Unsubscribe {\n\t\tconst handleDragEnter = (e: DragEvent) => this.handleDragEnter(e, targetId)\n\t\tconst handleDragOver = (e: DragEvent) => this.handleDragOver(e, targetId)\n\t\tconst handleDrop = (e: DragEvent) => this.handleDrop(e, targetId)\n\n\t\tnode.addEventListener('dragenter', handleDragEnter)\n\t\tnode.addEventListener('dragover', handleDragOver)\n\t\tnode.addEventListener('drop', handleDrop)\n\n\t\treturn (): void => {\n\t\t\tnode.removeEventListener('dragenter', handleDragEnter)\n\t\t\tnode.removeEventListener('dragover', handleDragOver)\n\t\t\tnode.removeEventListener('drop', handleDrop)\n\t\t}\n\t}\n\n\tprivate addEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.addEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.addEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStart as EventListener,\n\t\t)\n\t\ttarget.addEventListener('dragstart', this.handleTopDragStartCapture, true)\n\t\ttarget.addEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('dragover', this.handleTopDragOver as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.addEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.addEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate removeEventListeners(target: Node) {\n\t\t// SSR Fix (https://github.com/react-dnd/react-dnd/pull/813\n\t\tif (!target.removeEventListener) {\n\t\t\treturn\n\t\t}\n\t\ttarget.removeEventListener('dragstart', this.handleTopDragStart as any)\n\t\ttarget.removeEventListener(\n\t\t\t'dragstart',\n\t\t\tthis.handleTopDragStartCapture,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('dragend', this.handleTopDragEndCapture, true)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnter as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragenter',\n\t\t\tthis.handleTopDragEnterCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragleave',\n\t\t\tthis.handleTopDragLeaveCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOver as EventListener,\n\t\t)\n\t\ttarget.removeEventListener(\n\t\t\t'dragover',\n\t\t\tthis.handleTopDragOverCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t\ttarget.removeEventListener('drop', this.handleTopDrop as EventListener)\n\t\ttarget.removeEventListener(\n\t\t\t'drop',\n\t\t\tthis.handleTopDropCapture as EventListener,\n\t\t\ttrue,\n\t\t)\n\t}\n\n\tprivate getCurrentSourceNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourceNodeOptions = this.sourceNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tdropEffect: this.altKeyPressed ? 'copy' : 'move',\n\t\t\t...(sourceNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getCurrentDropEffect() {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\t// It makes more sense to default to 'copy' for native resources\n\t\t\treturn 'copy'\n\t\t}\n\n\t\treturn this.getCurrentSourceNodeOptions().dropEffect\n\t}\n\n\tprivate getCurrentSourcePreviewNodeOptions() {\n\t\tconst sourceId = this.monitor.getSourceId() as string\n\t\tconst sourcePreviewNodeOptions = this.sourcePreviewNodeOptions.get(sourceId)\n\n\t\treturn {\n\t\t\tanchorX: 0.5,\n\t\t\tanchorY: 0.5,\n\t\t\tcaptureDraggingState: false,\n\t\t\t...(sourcePreviewNodeOptions || {}),\n\t\t}\n\t}\n\n\tprivate getSourceClientOffset = (sourceId: string): XYCoord | null => {\n\t\tconst source = this.sourceNodes.get(sourceId)\n\t\treturn (source && getNodeClientOffset(source as HTMLElement)) || null\n\t}\n\n\tprivate isDraggingNativeItem() {\n\t\tconst itemType = this.monitor.getItemType()\n\t\treturn Object.keys(NativeTypes).some(\n\t\t\t(key: string) => (NativeTypes as any)[key] === itemType,\n\t\t)\n\t}\n\n\tprivate beginDragNativeItem(type: string, dataTransfer?: DataTransfer) {\n\t\tthis.clearCurrentDragSourceNode()\n\n\t\tthis.currentNativeSource = createNativeDragSource(type, dataTransfer)\n\t\tthis.currentNativeHandle = this.registry.addSource(\n\t\t\ttype,\n\t\t\tthis.currentNativeSource,\n\t\t)\n\t\tthis.actions.beginDrag([this.currentNativeHandle])\n\t}\n\n\tprivate endDragNativeItem = (): void => {\n\t\tif (!this.isDraggingNativeItem()) {\n\t\t\treturn\n\t\t}\n\n\t\tthis.actions.endDrag()\n\t\tif (this.currentNativeHandle) {\n\t\t\tthis.registry.removeSource(this.currentNativeHandle)\n\t\t}\n\t\tthis.currentNativeHandle = null\n\t\tthis.currentNativeSource = null\n\t}\n\n\tprivate isNodeInDocument = (node: Node | null | undefined): boolean => {\n\t\t// Check the node either in the main document or in the current context\n\t\treturn Boolean(\n\t\t\tnode &&\n\t\t\t\tthis.document &&\n\t\t\t\tthis.document.body &&\n\t\t\t\tthis.document.body.contains(node),\n\t\t)\n\t}\n\n\tprivate endDragIfSourceWasRemovedFromDOM = (): void => {\n\t\tconst node = this.currentDragSourceNode\n\t\tif (node == null || this.isNodeInDocument(node)) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tprivate setCurrentDragSourceNode(node: Element | null) {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.currentDragSourceNode = node\n\n\t\t// A timeout of > 0 is necessary to resolve Firefox issue referenced\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\tconst MOUSE_MOVE_TIMEOUT = 1000\n\n\t\t// Receiving a mouse event in the middle of a dragging operation\n\t\t// means it has ended and the drag source node disappeared from DOM,\n\t\t// so the browser didn't dispatch the dragend event.\n\t\t//\n\t\t// We need to wait before we start listening for mousemove events.\n\t\t// This is needed because the drag preview needs to be drawn or else it fires an 'mousemove' event\n\t\t// immediately in some browsers.\n\t\t//\n\t\t// See:\n\t\t// * https://github.com/react-dnd/react-dnd/pull/928\n\t\t// * https://github.com/react-dnd/react-dnd/issues/869\n\t\t//\n\t\tthis.mouseMoveTimeoutTimer = setTimeout(() => {\n\t\t\treturn this.rootElement?.addEventListener(\n\t\t\t\t'mousemove',\n\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\ttrue,\n\t\t\t)\n\t\t}, MOUSE_MOVE_TIMEOUT) as any as number\n\t}\n\n\tprivate clearCurrentDragSourceNode() {\n\t\tif (this.currentDragSourceNode) {\n\t\t\tthis.currentDragSourceNode = null\n\n\t\t\tif (this.rootElement) {\n\t\t\t\tthis.window?.clearTimeout(this.mouseMoveTimeoutTimer || undefined)\n\t\t\t\tthis.rootElement.removeEventListener(\n\t\t\t\t\t'mousemove',\n\t\t\t\t\tthis.endDragIfSourceWasRemovedFromDOM,\n\t\t\t\t\ttrue,\n\t\t\t\t)\n\t\t\t}\n\n\t\t\tthis.mouseMoveTimeoutTimer = null\n\t\t\treturn true\n\t\t}\n\n\t\treturn false\n\t}\n\n\tprivate scheduleHover = (dragOverTargetIds: string[] | null) => {\n\t\tif (\n\t\t\tthis.hoverRafId === null &&\n\t\t\ttypeof requestAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tthis.hoverRafId = requestAnimationFrame(() => {\n\t\t\t\tif (this.monitor.isDragging()) {\n\t\t\t\t\tthis.actions.hover(dragOverTargetIds || [], {\n\t\t\t\t\t\tclientOffset: this.lastClientOffset,\n\t\t\t\t\t})\n\t\t\t\t}\n\n\t\t\t\tthis.hoverRafId = null\n\t\t\t})\n\t\t}\n\t}\n\n\tprivate cancelHover = () => {\n\t\tif (\n\t\t\tthis.hoverRafId !== null &&\n\t\t\ttypeof cancelAnimationFrame !== 'undefined'\n\t\t) {\n\t\t\tcancelAnimationFrame(this.hoverRafId)\n\t\t\tthis.hoverRafId = null\n\t\t}\n\t}\n\n\tpublic handleTopDragStartCapture = (): void => {\n\t\tthis.clearCurrentDragSourceNode()\n\t\tthis.dragStartSourceIds = []\n\t}\n\n\tpublic handleDragStart(e: DragEvent, sourceId: string): void {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tif (!this.dragStartSourceIds) {\n\t\t\tthis.dragStartSourceIds = []\n\t\t}\n\t\tthis.dragStartSourceIds.unshift(sourceId)\n\t}\n\n\tpublic handleTopDragStart = (e: DragEvent): void => {\n\t\tif (e.defaultPrevented) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dragStartSourceIds } = this\n\t\tthis.dragStartSourceIds = null\n\n\t\tconst clientOffset = getEventClientOffset(e)\n\n\t\t// Avoid crashing if we missed a drop event or our previous drag died\n\t\tif (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t\tthis.cancelHover()\n\t\t}\n\n\t\t// Don't publish the source just yet (see why below)\n\t\tthis.actions.beginDrag(dragStartSourceIds || [], {\n\t\t\tpublishSource: false,\n\t\t\tgetSourceClientOffset: this.getSourceClientOffset,\n\t\t\tclientOffset,\n\t\t})\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (this.monitor.isDragging()) {\n\t\t\tif (dataTransfer && typeof dataTransfer.setDragImage === 'function') {\n\t\t\t\t// Use custom drag image if user specifies it.\n\t\t\t\t// If child drag source refuses drag but parent agrees,\n\t\t\t\t// use parent's node as drag image. Neither works in IE though.\n\t\t\t\tconst sourceId: string = this.monitor.getSourceId() as string\n\t\t\t\tconst sourceNode = this.sourceNodes.get(sourceId)\n\t\t\t\tconst dragPreview = this.sourcePreviewNodes.get(sourceId) || sourceNode\n\n\t\t\t\tif (dragPreview) {\n\t\t\t\t\tconst { anchorX, anchorY, offsetX, offsetY } =\n\t\t\t\t\t\tthis.getCurrentSourcePreviewNodeOptions()\n\t\t\t\t\tconst anchorPoint = { anchorX, anchorY }\n\t\t\t\t\tconst offsetPoint = { offsetX, offsetY }\n\t\t\t\t\tconst dragPreviewOffset = getDragPreviewOffset(\n\t\t\t\t\t\tsourceNode as HTMLElement,\n\t\t\t\t\t\tdragPreview as HTMLElement,\n\t\t\t\t\t\tclientOffset,\n\t\t\t\t\t\tanchorPoint,\n\t\t\t\t\t\toffsetPoint,\n\t\t\t\t\t)\n\n\t\t\t\t\tdataTransfer.setDragImage(\n\t\t\t\t\t\tdragPreview,\n\t\t\t\t\t\tdragPreviewOffset.x,\n\t\t\t\t\t\tdragPreviewOffset.y,\n\t\t\t\t\t)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\ttry {\n\t\t\t\t// Firefox won't drag without setting data\n\t\t\t\tdataTransfer?.setData('application/json', {} as any)\n\t\t\t} catch (err) {\n\t\t\t\t// IE doesn't support MIME types in setData\n\t\t\t}\n\n\t\t\t// Store drag source node so we can check whether\n\t\t\t// it is removed from DOM and trigger endDrag manually.\n\t\t\tthis.setCurrentDragSourceNode(e.target as Element)\n\n\t\t\t// Now we are ready to publish the drag source.. or are we not?\n\t\t\tconst { captureDraggingState } = this.getCurrentSourcePreviewNodeOptions()\n\t\t\tif (!captureDraggingState) {\n\t\t\t\t// Usually we want to publish it in the next tick so that browser\n\t\t\t\t// is able to screenshot the current (not yet dragging) state.\n\t\t\t\t//\n\t\t\t\t// It also neatly avoids a situation where render() returns null\n\t\t\t\t// in the same tick for the source element, and browser freaks out.\n\t\t\t\tsetTimeout(() => this.actions.publishDragSource(), 0)\n\t\t\t} else {\n\t\t\t\t// In some cases the user may want to override this behavior, e.g.\n\t\t\t\t// to work around IE not supporting custom drag previews.\n\t\t\t\t//\n\t\t\t\t// When using a custom drag layer, the only way to prevent\n\t\t\t\t// the default drag preview from drawing in IE is to screenshot\n\t\t\t\t// the dragging state in which the node itself has zero opacity\n\t\t\t\t// and height. In this case, though, returning null from render()\n\t\t\t\t// will abruptly end the dragging, which is not obvious.\n\t\t\t\t//\n\t\t\t\t// This is the reason such behavior is strictly opt-in.\n\t\t\t\tthis.actions.publishDragSource()\n\t\t\t}\n\t\t} else if (nativeType) {\n\t\t\t// A native item (such as URL) dragged from inside the document\n\t\t\tthis.beginDragNativeItem(nativeType)\n\t\t} else if (\n\t\t\tdataTransfer &&\n\t\t\t!dataTransfer.types &&\n\t\t\t((e.target && !(e.target as Element).hasAttribute) ||\n\t\t\t\t!(e.target as Element).hasAttribute('draggable'))\n\t\t) {\n\t\t\t// Looks like a Safari bug: dataTransfer.types is null, but there was no draggable.\n\t\t\t// Just let it drag. It's a native type (URL or text) and will be picked up in\n\t\t\t// dragenter handler.\n\t\t\treturn\n\t\t} else {\n\t\t\t// If by this time no drag source reacted, tell browser not to drag.\n\t\t\te.preventDefault()\n\t\t}\n\t}\n\n\tpublic handleTopDragEndCapture = (): void => {\n\t\tif (this.clearCurrentDragSourceNode() && this.monitor.isDragging()) {\n\t\t\t// Firefox can dispatch this event in an infinite loop\n\t\t\t// if dragend handler does something like showing an alert.\n\t\t\t// Only proceed if we have not handled it already.\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDragEnterCapture = (e: DragEvent): void => {\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\n\t\tconst isFirstEnter = this.enterLeaveCounter.enter(e.target)\n\t\tif (!isFirstEnter || this.monitor.isDragging()) {\n\t\t\treturn\n\t\t}\n\n\t\tconst { dataTransfer } = e\n\t\tconst nativeType = matchNativeItemType(dataTransfer)\n\n\t\tif (nativeType) {\n\t\t\t// A native item (such as file or URL) dragged from outside the document\n\t\t\tthis.beginDragNativeItem(nativeType, dataTransfer as DataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragEnter(_e: DragEvent, targetId: string): void {\n\t\tthis.dragEnterTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragEnter = (e: DragEvent): void => {\n\t\tconst { dragEnterTargetIds } = this\n\t\tthis.dragEnterTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\n\t\t// If the target changes position as the result of `dragenter`, `dragover` might still\n\t\t// get dispatched despite target being no longer there. The easy solution is to check\n\t\t// whether there actually is a target before firing `hover`.\n\t\tif (dragEnterTargetIds.length > 0) {\n\t\t\tthis.actions.hover(dragEnterTargetIds, {\n\t\t\t\tclientOffset: getEventClientOffset(e),\n\t\t\t})\n\t\t}\n\n\t\tconst canDrop = dragEnterTargetIds.some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// IE requires this to fire dragover events\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragOverCapture = (e: DragEvent): void => {\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t}\n\t}\n\n\tpublic handleDragOver(_e: DragEvent, targetId: string): void {\n\t\tif (this.dragOverTargetIds === null) {\n\t\t\tthis.dragOverTargetIds = []\n\t\t}\n\t\tthis.dragOverTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDragOver = (e: DragEvent): void => {\n\t\tconst { dragOverTargetIds } = this\n\t\tthis.dragOverTargetIds = []\n\n\t\tif (!this.monitor.isDragging()) {\n\t\t\t// This is probably a native item type we don't understand.\n\t\t\t// Prevent default \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t\treturn\n\t\t}\n\n\t\tthis.altKeyPressed = e.altKey\n\t\tthis.lastClientOffset = getEventClientOffset(e)\n\n\t\tthis.scheduleHover(dragOverTargetIds)\n\n\t\tconst canDrop = (dragOverTargetIds || []).some((targetId) =>\n\t\t\tthis.monitor.canDropOnTarget(targetId),\n\t\t)\n\n\t\tif (canDrop) {\n\t\t\t// Show user-specified drop effect.\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = this.getCurrentDropEffect()\n\t\t\t}\n\t\t} else if (this.isDraggingNativeItem()) {\n\t\t\t// Don't show a nice cursor but still prevent default\n\t\t\t// \"drop and blow away the whole document\" action.\n\t\t\te.preventDefault()\n\t\t} else {\n\t\t\te.preventDefault()\n\t\t\tif (e.dataTransfer) {\n\t\t\t\te.dataTransfer.dropEffect = 'none'\n\t\t\t}\n\t\t}\n\t}\n\n\tpublic handleTopDragLeaveCapture = (e: DragEvent): void => {\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tconst isLastLeave = this.enterLeaveCounter.leave(e.target)\n\t\tif (!isLastLeave) {\n\t\t\treturn\n\t\t}\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tsetTimeout(() => this.endDragNativeItem(), 0)\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleTopDropCapture = (e: DragEvent): void => {\n\t\tthis.dropTargetIds = []\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\te.preventDefault()\n\t\t\tthis.currentNativeSource?.loadDataTransfer(e.dataTransfer)\n\t\t} else if (matchNativeItemType(e.dataTransfer)) {\n\t\t\t// Dragging some elements, like <a> and <img> may still behave like a native drag event,\n\t\t\t// even if the current drag event matches a user-defined type.\n\t\t\t// Stop the default behavior when we're not expecting a native item to be dropped.\n\n\t\t\te.preventDefault()\n\t\t}\n\n\t\tthis.enterLeaveCounter.reset()\n\t}\n\n\tpublic handleDrop(_e: DragEvent, targetId: string): void {\n\t\tthis.dropTargetIds.unshift(targetId)\n\t}\n\n\tpublic handleTopDrop = (e: DragEvent): void => {\n\t\tconst { dropTargetIds } = this\n\t\tthis.dropTargetIds = []\n\n\t\tthis.actions.hover(dropTargetIds, {\n\t\t\tclientOffset: getEventClientOffset(e),\n\t\t})\n\t\tthis.actions.drop({ dropEffect: this.getCurrentDropEffect() })\n\n\t\tif (this.isDraggingNativeItem()) {\n\t\t\tthis.endDragNativeItem()\n\t\t} else if (this.monitor.isDragging()) {\n\t\t\tthis.actions.endDrag()\n\t\t}\n\t\tthis.cancelHover()\n\t}\n\n\tpublic handleSelectStart = (e: DragEvent): void => {\n\t\tconst target = e.target as HTMLElement & { dragDrop: () => void }\n\n\t\t// Only IE requires us to explicitly say\n\t\t// we want drag drop operation to start\n\t\tif (typeof target.dragDrop !== 'function') {\n\t\t\treturn\n\t\t}\n\n\t\t// Inputs and textareas should be selectable\n\t\tif (\n\t\t\ttarget.tagName === 'INPUT' ||\n\t\t\ttarget.tagName === 'SELECT' ||\n\t\t\ttarget.tagName === 'TEXTAREA' ||\n\t\t\ttarget.isContentEditable\n\t\t) {\n\t\t\treturn\n\t\t}\n\n\t\t// For other targets, ask IE\n\t\t// to enable drag and drop\n\t\te.preventDefault()\n\t\ttarget.dragDrop()\n\t}\n}\n","import type { BackendFactory, DragDropManager } from 'dnd-core'\n\nimport { HTML5BackendImpl } from './HTML5BackendImpl.js'\nimport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\nexport { getEmptyImage } from './getEmptyImage.js'\nexport * as NativeTypes from './NativeTypes.js'\nexport type { HTML5BackendContext, HTML5BackendOptions } from './types.js'\n\nexport const HTML5Backend: BackendFactory = function createBackend(\n\tmanager: DragDropManager,\n\tcontext?: HTML5BackendContext,\n\toptions?: HTML5BackendOptions,\n): HTML5BackendImpl {\n\treturn new HTML5BackendImpl(manager, context, options)\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 { showFilters } = getState();\n\n const handleToggleShowFilters = () => {\n setShowFilters(!showFilters);\n };\n\n return (\n <Tooltip arrow title={localization.showHideFilters}>\n <IconButton\n aria-label={localization.showHideFilters}\n onClick={handleToggleShowFilters}\n {...rest}\n >\n {showFilters ? <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, {\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 { 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, { 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={{\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,\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={{\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,\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 { Collapse, LinearProgress } from '@mui/material';\nimport { MRT_TableInstance } from '..';\n\ninterface Props {\n alignTo: 'bottom' | 'top';\n table: MRT_TableInstance;\n}\n\nexport const MRT_LinearProgressBar: FC<Props> = ({ alignTo, 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({ table })\n : muiLinearProgressProps;\n\n return (\n <Collapse\n in={isLoading || showProgressBars}\n mountOnEnter\n unmountOnExit\n sx={{\n bottom: alignTo === 'bottom' ? 0 : undefined,\n position: 'absolute',\n top: alignTo === 'top' ? 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, { FC } from 'react';\nimport { Box, lighten, Theme, Toolbar, useMediaQuery } from '@mui/material';\nimport { MRT_ToolbarInternalButtons } from './MRT_ToolbarInternalButtons';\nimport { MRT_TablePagination } from './MRT_TablePagination';\nimport { MRT_ToolbarAlertBanner } from './MRT_ToolbarAlertBanner';\nimport { MRT_LinearProgressBar } from './MRT_LinearProgressBar';\nimport { MRT_TableInstance } from '..';\nimport { MRT_GlobalFilterTextField } from '../inputs/MRT_GlobalFilterTextField';\n\nexport const commonToolbarStyles = ({ theme }: { theme: Theme }) => ({\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 ||\n (positionToolbarAlertBanner === 'top' &&\n (!!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,\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 alignTo=\"bottom\" 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 =\n isMobile ||\n (positionToolbarAlertBanner === 'bottom' &&\n !!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,\n } as any)\n }\n >\n <MRT_LinearProgressBar alignTo=\"top\" 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, {\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 if (inputIndex !== undefined) {\n column.setFilterValue((old: [string, string]) => {\n const newFilterValues = old ?? ['', ''];\n newFilterValues[inputIndex] = event.target.value;\n return newFilterValues;\n });\n } else {\n column.setFilterValue(event.target.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={{\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,\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, showFilters } = getState();\n const { column } = header;\n\n return (\n <Collapse in={showFilters} 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, { 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, showFilters } = 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: showFilters && 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, { 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={{\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,\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, { FC, ReactNode, Ref } from 'react';\nimport { Box, TableCell, Theme, alpha, lighten } from '@mui/material';\nimport { MRT_TableHeadCellFilterContainer } from './MRT_TableHeadCellFilterContainer';\nimport { MRT_TableHeadCellFilterLabel } from './MRT_TableHeadCellFilterLabel';\nimport { MRT_GrabHandleButton } from '../buttons/MRT_GrabHandleButton';\nimport { MRT_TableHeadCellResizeHandle } from './MRT_TableHeadCellResizeHandle';\nimport { MRT_TableHeadCellSortLabel } from './MRT_TableHeadCellSortLabel';\nimport { MRT_TableHeadCellColumnActionsButton } from './MRT_TableHeadCellColumnActionsButton';\nimport type { MRT_Header, MRT_TableInstance } from '..';\n\ninterface Props {\n dragRef?: Ref<HTMLButtonElement>;\n dropRef?: Ref<HTMLDivElement>;\n header: MRT_Header;\n table: MRT_TableInstance;\n isDragging?: boolean;\n previewRef?: Ref<HTMLTableCellElement>;\n}\n\nexport const MRT_TableHeadCell: FC<Props> = ({\n dragRef,\n dropRef,\n header,\n table,\n isDragging,\n previewRef,\n}) => {\n const {\n getState,\n options: {\n enableColumnActions,\n enableColumnOrdering,\n enableColumnResizing,\n enableGrouping,\n enableMultiSort,\n muiTableHeadCellProps,\n },\n } = table;\n const { density, showFilters } = 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 headerElement = ((columnDef?.Header instanceof Function\n ? columnDef?.Header?.({\n header,\n table,\n })\n : columnDef?.Header) ?? columnDef.header) as ReactNode;\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 return (\n <TableCell\n align={columnDefType === 'group' ? 'center' : 'left'}\n colSpan={header.colSpan}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\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 height: '100%',\n left:\n column.getIsPinned() === 'left'\n ? `${column.getStart('left')}px`\n : undefined,\n overflow: 'visible',\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 !== 'data'\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:\n columnDefType === 'display' && showFilters ? 'center' : 'text-top',\n zIndex: column.getIsResizing()\n ? 3\n : column.getIsPinned() && columnDefType !== 'group'\n ? 2\n : 1,\n ...(tableCellProps?.sx as any),\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 : columnDefType === 'display' ? (\n headerElement\n ) : (\n <Box\n ref={previewRef}\n sx={{\n alignItems: 'flex-start',\n display: 'flex',\n justifyContent:\n columnDefType === 'group' ? 'center' : 'space-between',\n opacity: isDragging ? 0.5 : 1,\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 whiteSpace:\n (columnDef.header?.length ?? 0) < 24 ? 'nowrap' : 'normal',\n }}\n >\n {headerElement}\n {columnDefType === 'data' && column.getCanSort() && (\n <MRT_TableHeadCellSortLabel header={header} table={table} />\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterLabel header={header} table={table} />\n )}\n </Box>\n <Box sx={{ whiteSpace: 'nowrap' }}>\n {columnDefType === 'data' &&\n ((enableColumnOrdering &&\n columnDef.enableColumnOrdering !== false) ||\n (enableGrouping && columnDef.enableGrouping !== false)) && (\n <MRT_GrabHandleButton\n ref={dragRef as Ref<HTMLButtonElement>}\n table={table}\n />\n )}\n {(enableColumnActions || columnDef.enableColumnActions) &&\n columnDef.enableColumnActions !== false &&\n columnDefType !== 'group' && (\n <MRT_TableHeadCellColumnActionsButton\n header={header}\n table={table}\n />\n )}\n </Box>\n {column.getCanResize() && (\n <MRT_TableHeadCellResizeHandle header={header} table={table} />\n )}\n </Box>\n )}\n {columnDefType === 'data' && column.getCanFilter() && (\n <MRT_TableHeadCellFilterContainer header={header} table={table} />\n )}\n </TableCell>\n );\n};\n","import React, { FC } from 'react';\nimport { useDrag, useDrop } from 'react-dnd';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport type { MRT_Column, MRT_Header, MRT_TableInstance } from '..';\nimport { reorderColumn } from '../utils';\n\ninterface Props {\n header: MRT_Header;\n table: MRT_TableInstance;\n}\n\nexport const MRT_DraggableTableHeadCell: FC<Props> = ({ header, table }) => {\n const { getState, setColumnOrder } = table;\n const { columnOrder } = getState();\n const { column } = header;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\n\n const [{ isDragging }, dragRef, previewRef] = useDrag({\n collect: (monitor) => ({\n isDragging: monitor.isDragging(),\n }),\n item: () => column,\n type: 'column',\n });\n\n return (\n <MRT_TableHeadCell\n dragRef={dragRef}\n dropRef={dropRef}\n header={header}\n isDragging={isDragging}\n previewRef={previewRef}\n table={table}\n />\n );\n};\n","import React, { FC } from 'react';\nimport { alpha, lighten, TableRow } from '@mui/material';\nimport { MRT_TableHeadCell } from './MRT_TableHeadCell';\nimport { MRT_DraggableTableHeadCell } from './MRT_DraggableTableHeadCell';\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: { enableColumnOrdering, enableGrouping, 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 enableColumnOrdering || enableGrouping ? (\n <MRT_DraggableTableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\n ) : (\n <MRT_TableHeadCell\n header={header}\n key={header.id || index}\n table={table}\n />\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","var props = ['bottom', 'height', 'left', 'right', 'top', 'width'];\n\nvar rectChanged = function rectChanged(a, b) {\n if (a === void 0) {\n a = {};\n }\n\n if (b === void 0) {\n b = {};\n }\n\n return props.some(function (prop) {\n return a[prop] !== b[prop];\n });\n};\n\nvar observedNodes =\n/*#__PURE__*/\nnew Map();\nvar rafId;\n\nvar run = function run() {\n var changedStates = [];\n observedNodes.forEach(function (state, node) {\n var newRect = node.getBoundingClientRect();\n\n if (rectChanged(newRect, state.rect)) {\n state.rect = newRect;\n changedStates.push(state);\n }\n });\n changedStates.forEach(function (state) {\n state.callbacks.forEach(function (cb) {\n return cb(state.rect);\n });\n });\n rafId = window.requestAnimationFrame(run);\n};\n\nfunction observeRect(node, cb) {\n return {\n observe: function observe() {\n var wasEmpty = observedNodes.size === 0;\n\n if (observedNodes.has(node)) {\n observedNodes.get(node).callbacks.push(cb);\n } else {\n observedNodes.set(node, {\n rect: undefined,\n hasRectChanged: false,\n callbacks: [cb]\n });\n }\n\n if (wasEmpty) run();\n },\n unobserve: function unobserve() {\n var state = observedNodes.get(node);\n\n if (state) {\n // Remove the callback\n var index = state.callbacks.indexOf(cb);\n if (index >= 0) state.callbacks.splice(index, 1); // Remove the node reference\n\n if (!state.callbacks.length) observedNodes[\"delete\"](node); // Stop the loop\n\n if (!observedNodes.size) cancelAnimationFrame(rafId);\n }\n }\n };\n}\n\nexport default observeRect;\n//# sourceMappingURL=observe-rect.esm.js.map\n","import React from 'react'\n\nexport default typeof window !== 'undefined'\n ? React.useLayoutEffect\n : React.useEffect\n","import React from 'react'\nimport observeRect from '@reach/observe-rect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nexport default function useRect(\n nodeRef,\n initialRect = { width: 0, height: 0 }\n) {\n const [element, setElement] = React.useState(nodeRef.current)\n const [rect, dispatch] = React.useReducer(rectReducer, initialRect)\n const initialRectSet = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (nodeRef.current !== element) {\n setElement(nodeRef.current)\n }\n })\n\n useIsomorphicLayoutEffect(() => {\n if (element && !initialRectSet.current) {\n initialRectSet.current = true\n const rect = element.getBoundingClientRect()\n dispatch({ rect })\n }\n }, [element])\n\n React.useEffect(() => {\n if (!element) {\n return\n }\n\n const observer = observeRect(element, rect => {\n dispatch({ rect })\n })\n\n observer.observe()\n\n return () => {\n observer.unobserve()\n }\n }, [element])\n\n return rect\n}\n\nfunction rectReducer(state, action) {\n const rect = action.rect\n if (state.height !== rect.height || state.width !== rect.width) {\n return rect\n }\n return state\n}\n","import React from 'react'\nimport useRect from './useRect'\nimport useIsomorphicLayoutEffect from './useIsomorphicLayoutEffect'\n\nconst defaultEstimateSize = () => 50\n\nconst defaultKeyExtractor = index => index\n\nconst defaultMeasureSize = (el, horizontal) => {\n const key = horizontal ? 'offsetWidth' : 'offsetHeight'\n\n return el[key]\n}\n\nexport const defaultRangeExtractor = range => {\n const start = Math.max(range.start - range.overscan, 0)\n const end = Math.min(range.end + range.overscan, range.size - 1)\n\n const arr = []\n\n for (let i = start; i <= end; i++) {\n arr.push(i)\n }\n\n return arr\n}\n\nexport function useVirtual({\n size = 0,\n estimateSize = defaultEstimateSize,\n overscan = 1,\n paddingStart = 0,\n paddingEnd = 0,\n parentRef,\n horizontal,\n scrollToFn,\n useObserver,\n initialRect,\n onScrollElement,\n scrollOffsetFn,\n keyExtractor = defaultKeyExtractor,\n measureSize = defaultMeasureSize,\n rangeExtractor = defaultRangeExtractor,\n}) {\n const sizeKey = horizontal ? 'width' : 'height'\n const scrollKey = horizontal ? 'scrollLeft' : 'scrollTop'\n\n const latestRef = React.useRef({\n scrollOffset: 0,\n measurements: [],\n })\n\n const [scrollOffset, setScrollOffset] = React.useState(0)\n latestRef.current.scrollOffset = scrollOffset\n\n const useMeasureParent = useObserver || useRect\n\n const { [sizeKey]: outerSize } = useMeasureParent(parentRef, initialRect)\n\n latestRef.current.outerSize = outerSize\n\n const defaultScrollToFn = React.useCallback(\n offset => {\n if (parentRef.current) {\n parentRef.current[scrollKey] = offset\n }\n },\n [parentRef, scrollKey]\n )\n\n const resolvedScrollToFn = scrollToFn || defaultScrollToFn\n\n scrollToFn = React.useCallback(\n offset => {\n resolvedScrollToFn(offset, defaultScrollToFn)\n },\n [defaultScrollToFn, resolvedScrollToFn]\n )\n\n const [measuredCache, setMeasuredCache] = React.useState({})\n\n const measure = React.useCallback(() => setMeasuredCache({}), [])\n\n const pendingMeasuredCacheIndexesRef = React.useRef([])\n\n const measurements = React.useMemo(() => {\n const min =\n pendingMeasuredCacheIndexesRef.current.length > 0\n ? Math.min(...pendingMeasuredCacheIndexesRef.current)\n : 0\n pendingMeasuredCacheIndexesRef.current = []\n\n const measurements = latestRef.current.measurements.slice(0, min)\n\n for (let i = min; i < size; i++) {\n const key = keyExtractor(i)\n const measuredSize = measuredCache[key]\n const start = measurements[i - 1] ? measurements[i - 1].end : paddingStart\n const size =\n typeof measuredSize === 'number' ? measuredSize : estimateSize(i)\n const end = start + size\n measurements[i] = { index: i, start, size, end, key }\n }\n return measurements\n }, [estimateSize, measuredCache, paddingStart, size, keyExtractor])\n\n const totalSize = (measurements[size - 1]?.end || paddingStart) + paddingEnd\n\n latestRef.current.measurements = measurements\n latestRef.current.totalSize = totalSize\n\n const element = onScrollElement ? onScrollElement.current : parentRef.current\n\n const scrollOffsetFnRef = React.useRef(scrollOffsetFn)\n scrollOffsetFnRef.current = scrollOffsetFn\n\n useIsomorphicLayoutEffect(() => {\n if (!element) {\n setScrollOffset(0)\n\n return\n }\n\n const onScroll = event => {\n const offset = scrollOffsetFnRef.current\n ? scrollOffsetFnRef.current(event)\n : element[scrollKey]\n\n setScrollOffset(offset)\n }\n\n onScroll()\n\n element.addEventListener('scroll', onScroll, {\n capture: false,\n passive: true,\n })\n\n return () => {\n element.removeEventListener('scroll', onScroll)\n }\n }, [element, scrollKey])\n\n const { start, end } = calculateRange(latestRef.current)\n\n const indexes = React.useMemo(\n () =>\n rangeExtractor({\n start,\n end,\n overscan,\n size: measurements.length,\n }),\n [start, end, overscan, measurements.length, rangeExtractor]\n )\n\n const measureSizeRef = React.useRef(measureSize)\n measureSizeRef.current = measureSize\n\n const virtualItems = React.useMemo(() => {\n const virtualItems = []\n\n for (let k = 0, len = indexes.length; k < len; k++) {\n const i = indexes[k]\n const measurement = measurements[i]\n\n const item = {\n ...measurement,\n measureRef: el => {\n if (el) {\n const measuredSize = measureSizeRef.current(el, horizontal)\n\n if (measuredSize !== item.size) {\n const { scrollOffset } = latestRef.current\n\n if (item.start < scrollOffset) {\n defaultScrollToFn(scrollOffset + (measuredSize - item.size))\n }\n\n pendingMeasuredCacheIndexesRef.current.push(i)\n\n setMeasuredCache(old => ({\n ...old,\n [item.key]: measuredSize,\n }))\n }\n }\n },\n }\n\n virtualItems.push(item)\n }\n\n return virtualItems\n }, [indexes, defaultScrollToFn, horizontal, measurements])\n\n const mountedRef = React.useRef(false)\n\n useIsomorphicLayoutEffect(() => {\n if (mountedRef.current) {\n setMeasuredCache({})\n }\n mountedRef.current = true\n }, [estimateSize])\n\n const scrollToOffset = React.useCallback(\n (toOffset, { align = 'start' } = {}) => {\n const { scrollOffset, outerSize } = latestRef.current\n\n if (align === 'auto') {\n if (toOffset <= scrollOffset) {\n align = 'start'\n } else if (toOffset >= scrollOffset + outerSize) {\n align = 'end'\n } else {\n align = 'start'\n }\n }\n\n if (align === 'start') {\n scrollToFn(toOffset)\n } else if (align === 'end') {\n scrollToFn(toOffset - outerSize)\n } else if (align === 'center') {\n scrollToFn(toOffset - outerSize / 2)\n }\n },\n [scrollToFn]\n )\n\n const tryScrollToIndex = React.useCallback(\n (index, { align = 'auto', ...rest } = {}) => {\n const { measurements, scrollOffset, outerSize } = latestRef.current\n\n const measurement = measurements[Math.max(0, Math.min(index, size - 1))]\n\n if (!measurement) {\n return\n }\n\n if (align === 'auto') {\n if (measurement.end >= scrollOffset + outerSize) {\n align = 'end'\n } else if (measurement.start <= scrollOffset) {\n align = 'start'\n } else {\n return\n }\n }\n\n const toOffset =\n align === 'center'\n ? measurement.start + measurement.size / 2\n : align === 'end'\n ? measurement.end\n : measurement.start\n\n scrollToOffset(toOffset, { align, ...rest })\n },\n [scrollToOffset, size]\n )\n\n const scrollToIndex = React.useCallback(\n (...args) => {\n // We do a double request here because of\n // dynamic sizes which can cause offset shift\n // and end up in the wrong spot. Unfortunately,\n // we can't know about those dynamic sizes until\n // we try and render them. So double down!\n tryScrollToIndex(...args)\n requestAnimationFrame(() => {\n tryScrollToIndex(...args)\n })\n },\n [tryScrollToIndex]\n )\n\n return {\n virtualItems,\n totalSize,\n scrollToOffset,\n scrollToIndex,\n measure,\n }\n}\n\nconst findNearestBinarySearch = (low, high, getCurrentValue, value) => {\n while (low <= high) {\n let middle = ((low + high) / 2) | 0\n let currentValue = getCurrentValue(middle)\n\n if (currentValue < value) {\n low = middle + 1\n } else if (currentValue > value) {\n high = middle - 1\n } else {\n return middle\n }\n }\n\n if (low > 0) {\n return low - 1\n } else {\n return 0\n }\n}\n\nfunction calculateRange({ measurements, outerSize, scrollOffset }) {\n const size = measurements.length - 1\n const getOffset = index => measurements[index].start\n\n let start = findNearestBinarySearch(0, size, getOffset, scrollOffset)\n let end = start\n\n while (end < size && measurements[end].end < scrollOffset + outerSize) {\n end++\n }\n\n return { start, end }\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());\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 aria-label={localization.clickToCopy}\n onClick={() => handleCopy(cell.getValue())}\n size=\"small\"\n type=\"button\"\n variant=\"text\"\n {...buttonProps}\n sx={{\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,\n }}\n >\n {children}\n </Button>\n </Tooltip>\n );\n};\n","import React, { FC, MouseEvent, useMemo } from 'react';\nimport { useDrop } from 'react-dnd';\nimport { alpha, darken, lighten, Skeleton, TableCell } from '@mui/material';\nimport { MRT_EditCellTextField } from '../inputs/MRT_EditCellTextField';\nimport { MRT_CopyButton } from '../buttons/MRT_CopyButton';\nimport { reorderColumn } from '../utils';\nimport type { MRT_Cell, MRT_Column, MRT_TableInstance } from '..';\n\ninterface Props {\n cell: MRT_Cell;\n enableHover?: boolean;\n rowIndex: number;\n table: MRT_TableInstance;\n}\n\nexport const MRT_TableBodyCell: FC<Props> = ({\n cell,\n enableHover,\n rowIndex,\n table,\n}) => {\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 setColumnOrder,\n setCurrentEditingCell,\n } = table;\n const {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n density,\n isLoading,\n showSkeletons,\n } = getState();\n const { column, row } = cell;\n const { columnDef } = column;\n const { columnDefType } = columnDef;\n\n const [, dropRef] = useDrop({\n accept: 'column',\n drop: (movingColumn: MRT_Column) => {\n const newColumnOrder = reorderColumn(movingColumn, column, columnOrder);\n setColumnOrder(newColumnOrder);\n },\n });\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 return (\n <TableCell\n onDoubleClick={handleDoubleClick}\n {...tableCellProps}\n ref={\n columnDefType === 'data' && enableColumnOrdering ? dropRef : undefined\n }\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 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-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: column.getIsPinned() ? 1 : 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 as any),\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 ) : 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={{\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,\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, { FC } from 'react';\nimport { darken, lighten, TableRow } 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 {\n getIsSomeColumnsPinned,\n options: { muiTableBodyRowProps, renderDetailPanel },\n } = table;\n\n const tableRowProps =\n muiTableBodyRowProps instanceof Function\n ? muiTableBodyRowProps({ row, table })\n : muiTableBodyRowProps;\n\n return (\n <>\n <TableRow\n hover\n selected={row.getIsSelected()}\n {...tableRowProps}\n sx={(theme) => ({\n backgroundColor: lighten(theme.palette.background.default, 0.06),\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 as any),\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 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 type { MRT_Row, MRT_TableInstance } from '..';\nimport { rankGlobalFuzzy } from '../sortingFns';\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 overscan: density === 'compact' ? 20 : 10,\n size: rows.length,\n parentRef: tableContainerRef,\n ...virtualizerProps,\n })\n : ({} as any);\n\n const { virtualItems: virtualRows } = rowVirtualizer;\n const paddingTop = virtualRows?.length > 0 ? virtualRows[0].start : 0;\n const paddingBottom =\n virtualRows?.length > 0\n ? rowVirtualizer.totalSize - virtualRows[virtualRows.length - 1].end\n : 0;\n\n return (\n <TableBody {...tableBodyProps}>\n {enableRowVirtualization && paddingTop > 0 && (\n <tr>\n <td style={{ height: `${paddingTop}px` }} />\n </tr>\n )}\n {/* @ts-ignore */}\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 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={{\n tableLayout:\n enableColumnResizing || enableRowVirtualization ? 'fixed' : 'auto',\n ...tableProps?.sx,\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 {...tableContainerProps}\n ref={tableContainerRef}\n sx={{\n maxWidth: '100%',\n maxHeight:\n enableStickyHeader || enableRowVirtualization\n ? `clamp(350px, calc(100vh - ${totalToolbarHeight}px), 9999px)`\n : undefined,\n overflow: 'auto',\n ...tableContainerProps?.sx,\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 { DndProvider } from 'react-dnd';\nimport { HTML5Backend } from 'react-dnd-html5-backend';\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 <DndProvider backend={HTML5Backend}>\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 </DndProvider>\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 {\n MRT_Cell,\n MRT_ColumnDef,\n MRT_FilterOption,\n MRT_Row,\n MRT_TableInstance,\n MRT_TableState,\n} from '..';\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 { MaterialReactTableProps } from '../MaterialReactTable';\nimport { MRT_TablePaper } from './MRT_TablePaper';\nimport { Box, Dialog, Grow } from '@mui/material';\nimport {\n prepareColumns,\n getAllLeafColumnDefs,\n getDefaultColumnOrderIds,\n} from '../utils';\nimport { MRT_FilterFns } from '../filtersFns';\n\nexport const MRT_TableRoot = <D extends Record<string, any> = {}>(\n props: MaterialReactTableProps<D>,\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<D>> = 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 [currentEditingCell, setCurrentEditingCell] =\n useState<MRT_Cell<D> | null>(initialState?.currentEditingCell ?? null);\n const [currentEditingRow, setCurrentEditingRow] = useState<MRT_Row<D> | null>(\n initialState?.currentEditingRow ?? null,\n );\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 [showFilters, setShowFilters] = useState(\n initialState?.showFilters ?? false,\n );\n const [showGlobalFilter, setShowGlobalFilter] = useState(\n initialState?.showGlobalFilter ?? false,\n );\n\n const [currentFilterFns, setCurrentFilterFns] = useState<{\n [key: string]: MRT_FilterOption;\n }>(() =>\n Object.assign(\n {},\n ...getAllLeafColumnDefs(props.columns as MRT_ColumnDef<D>[]).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\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-actions') && {\n Cell: ({ cell }) => (\n <MRT_ToggleRowActionMenuButton\n row={cell.row as any}\n table={table}\n />\n ),\n columnDefType: 'display',\n header: props.localization?.actions,\n id: 'mrt-row-actions',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 70,\n },\n columnOrder.includes('mrt-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 columnDefType: 'display',\n header: props.localization?.expand,\n id: 'mrt-expand',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-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 columnDefType: 'display',\n header: props.localization?.select,\n id: 'mrt-select',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n columnOrder.includes('mrt-row-numbers') && {\n Cell: ({ cell }) => cell.row.index + 1,\n Header: () => props.localization?.rowNumber,\n columnDefType: 'display',\n header: props.localization?.rowNumbers,\n id: 'mrt-row-numbers',\n muiTableBodyCellProps: props.muiTableBodyCellProps,\n muiTableHeadCellProps: props.muiTableHeadCellProps,\n size: 60,\n },\n ] as MRT_ColumnDef<D>[]\n ).filter(Boolean),\n [\n columnOrder,\n props.editingMode,\n props.enableEditing,\n props.enableExpandAll,\n props.enableExpanding,\n props.enableGrouping,\n props.enableRowActions,\n props.enableRowNumbers,\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: D[] = 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 //@ts-ignore\n globalFilterFn:\n MRT_FilterFns[currentGlobalFilterFn] ?? MRT_FilterFns.fuzzy,\n initialState,\n state: {\n columnOrder,\n currentEditingCell,\n currentEditingRow,\n currentFilterFns,\n currentGlobalFilterFn,\n density,\n isFullScreen,\n showAlertBanner,\n showFilters,\n showGlobalFilter,\n ...props.state,\n } as TableState,\n tableId,\n }),\n setCurrentEditingCell:\n props.onCurrentEditingCellChange ?? setCurrentEditingCell,\n setCurrentEditingRow:\n props.onCurrentEditingRowChange ?? setCurrentEditingRow,\n setCurrentFilterFns: props.onCurrentFilterFnsChange ?? setCurrentFilterFns,\n setCurrentGlobalFilterFn:\n props.onCurrentGlobalFilterFnChange ?? setCurrentGlobalFilterFn,\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 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 FC,\n FocusEvent,\n ReactNode,\n SetStateAction,\n} from 'react';\nimport {\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 {\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 { 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 type MRT_TableOptions<D extends Record<string, any> = {}> = Partial<\n Omit<\n TableOptions<D>,\n 'columns' | 'data' | 'initialState' | 'state' | 'expandRowsFn'\n >\n> & {\n columns: MRT_ColumnDef<D>[];\n data: D[];\n expandRowsFn?: (dataRow: D) => D[];\n initialState?: Partial<MRT_TableState<D>>;\n state?: Partial<MRT_TableState<D>>;\n};\n\nexport interface MRT_RowModel<D extends Record<string, any> = {}> {\n flatRows: MRT_Row<D>[];\n rows: MRT_Row<D>[];\n rowsById: { [key: string]: MRT_Row<D> };\n}\n\nexport type MRT_TableInstance<D extends Record<string, any> = {}> = Omit<\n Table<D>,\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<D>[];\n getAllFlatColumns: () => MRT_Column<D>[];\n getAllLeafColumns: () => MRT_Column<D>[];\n getCenterLeafColumns: () => MRT_Column<D>[];\n getColumn: (columnId: string) => MRT_Column<D>;\n getExpandedRowModel: () => MRT_RowModel<D>;\n getFlatHeaders: () => MRT_Header<D>[];\n getLeftLeafColumns: () => MRT_Column<D>[];\n getPaginationRowModel: () => MRT_RowModel<D>;\n getPreFilteredRowModel: () => MRT_RowModel<D>;\n getPrePaginationRowModel: () => MRT_RowModel<D>;\n getRightLeafColumns: () => MRT_Column<D>[];\n getRowModel: () => MRT_RowModel<D>;\n getSelectedRowModel: () => MRT_RowModel<D>;\n getState: () => MRT_TableState<D>;\n options: MaterialReactTableProps<D> & {\n icons: MRT_Icons;\n tableId: string;\n localization: MRT_Localization;\n };\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 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<D extends Record<string, any> = {}> = TableState & {\n currentEditingCell: MRT_Cell<D> | null;\n currentEditingRow: MRT_Row<D> | null;\n currentFilterFns: Record<string, MRT_FilterOption>;\n currentGlobalFilterFn: Record<string, MRT_FilterOption>;\n density: 'comfortable' | 'compact' | 'spacious';\n isLoading: boolean;\n isFullScreen: boolean;\n showAlertBanner: boolean;\n showFilters: boolean;\n showGlobalFilter: boolean;\n showProgressBars: boolean;\n showSkeletons: boolean;\n};\n\nexport type MRT_ColumnDef<D extends Record<string, any> = {}> = Omit<\n ColumnDef<D>,\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<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n Cell?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n Edit?: ({\n cell,\n table,\n }: {\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n Filter?: ({\n header,\n table,\n }: {\n header: MRT_Header<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n Footer?:\n | ReactNode\n | (({\n footer,\n table,\n }: {\n footer: MRT_Header<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode);\n Header?:\n | ReactNode\n | (({\n header,\n table,\n }: {\n header: MRT_Header<D>;\n table: MRT_TableInstance<D>;\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: D) => 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?: LiteralUnion<string & keyof D>;\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<D>[];\n enableClickToCopy?: boolean;\n enableColumnActions?: boolean;\n enableColumnFilterChangeMode?: boolean;\n enableColumnOrdering?: boolean;\n enableEditing?: boolean;\n enabledColumnFilterOptions?: MRT_FilterOption[] | null;\n filterFn?: MRT_FilterFn<D>;\n filterSelectOptions?: (string | { text: string; value: string })[];\n footer?: string;\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 D>;\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => void;\n sortingFn?: MRT_SortingFn;\n};\n\nexport type MRT_DefinedColumnDef<D extends Record<string, any> = {}> = Omit<\n MRT_ColumnDef<D>,\n 'id'\n> & {\n id: string;\n};\n\nexport type MRT_Column<D extends Record<string, any> = {}> = Omit<\n Column<D>,\n 'header' | 'footer' | 'columns' | 'columnDef' | 'filterFn'\n> & {\n columnDef: MRT_DefinedColumnDef<D>;\n columns?: MRT_Column<D>[];\n filterFn?: MRT_FilterFn<D>;\n footer: string;\n header: string;\n};\n\nexport type MRT_Header<D extends Record<string, any> = {}> = Omit<\n Header<D>,\n 'column'\n> & {\n column: MRT_Column<D>;\n};\n\nexport type MRT_HeaderGroup<D extends Record<string, any> = {}> = Omit<\n HeaderGroup<D>,\n 'headers'\n> & {\n headers: MRT_Header<D>[];\n};\n\nexport type MRT_Row<D extends Record<string, any> = {}> = Omit<\n Row<D>,\n 'getVisibleCells' | 'getAllCells' | 'subRows' | 'original' | '_valuesCache'\n> & {\n getAllCells: () => MRT_Cell<D>[];\n getVisibleCells: () => MRT_Cell<D>[];\n subRows?: MRT_Row<D>[];\n original: D;\n _valuesCache?: D;\n};\n\nexport type MRT_Cell<D extends Record<string, any> = {}> = Omit<\n Cell<D>,\n 'column' | 'row'\n> & {\n column: MRT_Column<D>;\n row: MRT_Row<D>;\n};\n\nexport type MRT_SortingOption = keyof typeof MRT_SortingFns;\n\nexport type MRT_SortingFn<D extends Record<string, any> = {}> =\n | SortingFn<D>\n | MRT_SortingOption;\n\nexport type MRT_FilterOption = keyof typeof MRT_FilterFns;\n\nexport type MRT_FilterFn<D extends Record<string, any> = {}> =\n | FilterFn<D>\n | MRT_FilterOption;\n\nexport type MaterialReactTableProps<D extends Record<string, any> = {}> =\n MRT_TableOptions<D> & {\n editingMode?: 'table' | 'row' | 'cell';\n enableClickToCopy?: boolean;\n enableColumnActions?: 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 enableRowNumbers?: 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 icons?: Partial<MRT_Icons>;\n localization?: Partial<MRT_Localization>;\n muiExpandAllButtonProps?:\n | IconButtonProps\n | (({ table }: { table: MRT_TableInstance<D> }) => IconButtonProps);\n muiExpandButtonProps?:\n | IconButtonProps\n | (({\n table,\n }: {\n table: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => IconButtonProps);\n muiLinearProgressProps?:\n | LinearProgressProps\n | (({ table }: { table: MRT_TableInstance<D> }) => LinearProgressProps);\n muiSearchTextFieldProps?:\n | TextFieldProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TextFieldProps);\n muiSelectAllCheckboxProps?:\n | CheckboxProps\n | (({ table }: { table: MRT_TableInstance<D> }) => CheckboxProps);\n muiSelectCheckboxProps?:\n | CheckboxProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => CheckboxProps);\n muiTableBodyCellCopyButtonProps?:\n | ButtonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => ButtonProps);\n muiTableBodyCellEditTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TextFieldProps);\n muiTableBodyCellProps?:\n | TableCellProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => TableCellProps);\n muiTableBodyCellSkeletonProps?:\n | SkeletonProps\n | (({\n table,\n cell,\n }: {\n table: MRT_TableInstance<D>;\n cell: MRT_Cell<D>;\n }) => SkeletonProps);\n muiTableBodyProps?:\n | TableBodyProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TableBodyProps);\n muiTableBodyRowProps?:\n | TableRowProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableRowProps);\n muiTableContainerProps?:\n | TableContainerProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TableContainerProps);\n muiTableDetailPanelProps?:\n | TableCellProps\n | (({\n table,\n row,\n }: {\n table: MRT_TableInstance<D>;\n row: MRT_Row<D>;\n }) => TableCellProps);\n muiTableFooterCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableFooterProps?:\n | TableFooterProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TableFooterProps);\n muiTableFooterRowProps?:\n | TableRowProps\n | (({\n table,\n footerGroup,\n }: {\n table: MRT_TableInstance<D>;\n footerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTableHeadCellColumnActionsButtonProps?:\n | IconButtonProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => IconButtonProps);\n muiTableHeadCellFilterTextFieldProps?:\n | TextFieldProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TextFieldProps);\n muiTableHeadCellProps?:\n | TableCellProps\n | (({\n table,\n column,\n }: {\n table: MRT_TableInstance<D>;\n column: MRT_Column<D>;\n }) => TableCellProps);\n muiTableHeadProps?:\n | TableHeadProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TableHeadProps);\n muiTableHeadRowProps?:\n | TableRowProps\n | (({\n table,\n headerGroup,\n }: {\n table: MRT_TableInstance<D>;\n headerGroup: MRT_HeaderGroup<D>;\n }) => TableRowProps);\n muiTablePaginationProps?:\n | Partial<TablePaginationProps>\n | (({\n table,\n }: {\n table: MRT_TableInstance<D>;\n }) => Partial<TablePaginationProps>);\n muiTablePaperProps?:\n | PaperProps\n | (({ table }: { table: MRT_TableInstance<D> }) => PaperProps);\n muiTableProps?:\n | TableProps\n | (({ table }: { table: MRT_TableInstance<D> }) => TableProps);\n muiTableToolbarAlertBannerProps?:\n | AlertProps\n | (({ table }: { table: MRT_TableInstance<D> }) => AlertProps);\n muiTableToolbarBottomProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<D> }) => ToolbarProps);\n muiTableToolbarTopProps?:\n | ToolbarProps\n | (({ table }: { table: MRT_TableInstance<D> }) => ToolbarProps);\n onCellEditBlur?: ({\n cell,\n event,\n table,\n }: {\n event: FocusEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => void;\n onCellEditChange?: ({\n cell,\n event,\n table,\n }: {\n event: ChangeEvent<HTMLInputElement>;\n cell: MRT_Cell<D>;\n table: MRT_TableInstance<D>;\n }) => void;\n onCurrentEditingCellChange?: OnChangeFn<MRT_Cell>;\n onCurrentEditingRowChange?: OnChangeFn<MRT_Row>;\n onCurrentFilterFnsChange?: OnChangeFn<{ [key: string]: MRT_FilterOption }>;\n onCurrentGlobalFilterFnChange?: OnChangeFn<MRT_FilterOption>;\n onEditRowSubmit?: ({\n row,\n table,\n }: {\n row: MRT_Row<D>;\n table: MRT_TableInstance<D>;\n }) => Promise<void> | void;\n onDensityChange?: OnChangeFn<boolean>;\n onIsFullScreenChange?: OnChangeFn<boolean>;\n onShowAlertBannerChange?: OnChangeFn<boolean>;\n onShowFiltersChange?: OnChangeFn<boolean>;\n onShowGlobalFilterChange?: OnChangeFn<boolean>;\n positionActionsColumn?: '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<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n renderRowActionMenuItems?: ({\n closeMenu,\n row,\n table,\n }: {\n closeMenu: () => void;\n row: MRT_Row<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode[];\n renderRowActions?: ({\n row,\n table,\n }: {\n row: MRT_Row<D>;\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarBottomCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<D>;\n }) => ReactNode;\n renderToolbarTopCustomActions?: ({\n table,\n }: {\n table: MRT_TableInstance<D>;\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<D>;\n MRT_ToggleGlobalFilterButton: FC<\n IconButtonProps & { table: MRT_TableInstance<D> }\n >;\n MRT_ToggleFiltersButton: FC<\n IconButtonProps & { table: MRT_TableInstance<D> }\n >;\n MRT_ShowHideColumnsButton: FC<\n IconButtonProps & { table: MRT_TableInstance<D> }\n >;\n MRT_ToggleDensePaddingButton: FC<\n IconButtonProps & { table: MRT_TableInstance<D> }\n >;\n MRT_FullScreenToggleButton: FC<\n IconButtonProps & { table: MRT_TableInstance<D> }\n >;\n }) => ReactNode;\n rowCount?: number;\n rowNumberMode?: 'original' | 'static';\n selectAllMode?: 'all' | 'page';\n tableId?: string;\n virtualizerProps?: Partial<VirtualizerOptions<HTMLDivElement>>;\n };\n\nexport default <D 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 positionGlobalFilter = 'right',\n positionPagination = 'bottom',\n positionToolbarAlertBanner = 'top',\n rowNumberMode = 'original',\n selectAllMode = 'all',\n ...rest\n}: MaterialReactTableProps<D>) => (\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 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","filterByColumn","filterContains","filterEmpty","filterEndsWith","filterEquals","filterFuzzy","filterGreaterThan","filterLessThan","filterMode","filterNotEmpty","filterNotEquals","filterStartsWith","filteringByColumn","grab","groupByColumn","groupedBy","hideAll","hideColumn","max","min","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","getState","options","icons","localization","muiExpandAllButtonProps","renderDetailPanel","toggleAllRowsExpanded","density","iconButtonProps","Function","React","Tooltip","arrow","enterDelay","enterNextDelay","title","IconButton","disabled","onClick","sx","height","width","style","transform","transition","MRT_ExpandButton","row","muiExpandButtonProps","handleToggleExpand","toggleExpanded","getCanExpand","getIsExpanded","commonMenuItemStyles","py","my","alignItems","MRT_FilterOptionMenu","anchorEl","header","onSelect","setAnchorEl","enabledGlobalFilterOptions","enabledColumnFilterOptions","setCurrentFilterFns","setCurrentGlobalFilterFn","currentFilterFns","currentGlobalFilterFn","column","columnDef","allowedColumnFilterOptions","filterOptions","useMemo","option","label","divider","filter","filterType","undefined","includes","handleSelectFilterType","prev","id","setFilterValue","filterOption","Menu","anchorOrigin","vertical","horizontal","onClose","open","MenuListProps","dense","map","index","MenuItem","key","selected","value","DndContext","createContext","dragDropManager","invariant","condition","format","args","isProduction","Error","error","argIndex","replace","name","framesToPop","process","env","get","obj","path","defaultValue","split","reduce","a","c","without","items","item","i","isObject","input","xor","itemsA","itemsB","Map","insertItem","set","has","forEach","result","count","push","intersection","t","indexOf","INIT_COORDS","BEGIN_DRAG","PUBLISH_DRAG_SOURCE","HOVER","DROP","END_DRAG","setClientOffset","clientOffset","sourceClientOffset","type","payload","ResetCoordinatesAction","createBeginDrag","manager","beginDrag","sourceIds","publishSource","getSourceClientOffset","monitor","getMonitor","registry","getRegistry","dispatch","verifyInvariants","sourceId","getDraggableSource","verifyGetSourceClientOffsetIsFunction","source","getSource","verifyItemIsObject","pinSource","itemType","getSourceType","isSourcePublic","isDragging","length","canDragSource","createDrop","drop","targetIds","getDroppableTargets","targetId","dropResult","determineDropResult","action","didDrop","target","getTarget","verifyDropResultType","getDropResult","getTargetIds","canDropOnTarget","reverse","createEndDrag","endDrag","verifyIsDragging","getSourceId","unpinSource","matchesType","targetType","draggedItemType","Array","isArray","some","createHover","hover","targetIdsArg","verifyTargetIdsIsArray","slice","getItemType","removeNonMatchingTargetIds","checkInvariants","hoverAllTargets","lastIndexOf","getTargetType","splice","createPublishDragSource","publishDragSource","createDragDropActions","DragDropManagerImpl","backend","getBackend","getActions","store","bindActionCreator","actionCreator","apply","Object","keys","boundActions","isSetUp","handleRefCountChange","shouldSetUp","refCount","setup","teardown","subscribe","add","b","x","y","subtract","state","initialClientOffset","initialSourceClientOffset","getDifferenceFromInitialOffset","NONE","ALL","__IS_NONE__","__IS_ALL__","areDirty","dirtyIds","handlerIds","commonIds","DragDropMonitorImpl","subscribeToStateChange","listener","prevStateId","stateId","handleChange","currentStateId","canSkipListener","dirtyHandlerIds","previousState","dragOffset","nextState","canDrag","canDrop","Boolean","sourceType","isOverTarget","shallow","dragOperation","getItem","getInitialClientOffset","getInitialSourceClientOffset","getClientOffset","scope","global","self","BrowserMutationObserver","MutationObserver","WebKitMutationObserver","makeRequestCallFromTimer","callback","requestCall","timeoutHandle","setTimeout","handleTimer","intervalHandle","setInterval","clearTimeout","clearInterval","makeRequestCallFromMutationObserver","toggle","observer","node","document","createTextNode","observe","characterData","data","makeRequestCall","AsapQueue","task","queue","q","requestFlush","flushing","pendingErrors","capacity","flush","currentIndex","call","scan","newLength","registerPendingError","err","requestErrorThrow","shift","RawTask","onError","release","TaskFactory","tasks","freeTasks","pop","asapQueue","taskFactory","asap","enqueueTask","create","ADD_SOURCE","ADD_TARGET","REMOVE_SOURCE","REMOVE_TARGET","addSource","addTarget","removeSource","removeTarget","validateSourceContract","validateTargetContract","validateType","allowArray","HandlerRole","SOURCE","TARGET","nextUniqueId","getNextUniqueId","getNextHandlerId","role","toString","parseRoleFromHandlerId","handlerId","mapContainsValue","searchValue","entries","isDone","done","next","HandlerRegistryImpl","addHandler","handler","dragSources","dropTargets","includePinned","isSourceId","isPinned","pinnedSourceId","pinnedSource","isTargetId","types","delete","strictEquality","areCoordsEqual","offsetA","offsetB","areArraysEqual","isEqual","_state","prevTargetIds","didChange","prevInnermostTargetId","innermostTargetId","initialState","_objectSpread","createDragDropManager","backendFactory","globalContext","backendOptions","debugMode","makeStoreInstance","receiveBackend","reduxDevTools","window","__REDUX_DEVTOOLS_EXTENSION__","createStore","instanceId","INSTANCE_SYM","Symbol","for","DndProvider","memo","children","props","isGlobalInstance","getDndContextValue","useEffect","context","getGlobalContext","_jsx","Provider","createSingletonDndContext","ctx","useIsomorphicLayoutEffect","useLayoutEffect","useCollector","collect","onUpdate","collected","setCollected","useState","updateCollected","useCallback","nextValue","equal","useMonitorOutput","onCollect","subscribeToMonitorStateChange","getHandlerId","useCollectedProps","collector","connector","reconnect","useOptionalFactory","arg","deps","memoDeps","useConnectDragSource","hooks","dragSource","useConnectDragPreview","dragPreview","isCallingCanDrag","isCallingIsDragging","DragSourceMonitorImpl","internalMonitor","isDraggingSource","subscribeToOffsetChange","isCallingCanDrop","DropTargetMonitorImpl","registerTarget","registerSource","shallowEqual","objA","objB","compare","compareContext","compareResult","keysA","keysB","bHasOwnProperty","prototype","hasOwnProperty","bind","idx","valueA","valueB","isRef","throwIfCompositeComponentElement","element","displayName","wrapHookToRecognizeElement","hook","elementOrNode","isValidElement","ref","cloneWithRef","wrapConnectorHooks","wrappedHooks","endsWith","wrappedHook","setRef","current","newRef","previousRef","cloneElement","SourceConnector","newHandlerId","connectTarget","dragSourceOptions","dragSourceOptionsInternal","dragPreviewOptions","dragPreviewOptionsInternal","reconnectDragSource","reconnectDragPreview","didHandlerIdChange","didConnectedDragSourceChange","didDragSourceOptionsChange","disconnectDragSource","lastConnectedDragSource","lastConnectedHandlerId","lastConnectedDragSourceOptions","dragSourceUnsubscribe","connectDragSource","forceDidChange","didConnectedDragPreviewChange","didDragPreviewOptionsChange","disconnectDragPreview","lastConnectedDragPreview","lastConnectedDragPreviewOptions","dragPreviewUnsubscribe","connectDragPreview","dragPreviewNode","dragPreviewRef","dragSourceNode","dragSourceRef","clearDragSource","clearDragPreview","TargetConnector","dropTarget","didDropTargetChange","didOptionsChange","disconnectDropTarget","lastConnectedDropTarget","lastConnectedDropTargetOptions","dropTargetOptions","unsubscribeDropTarget","connectDropTarget","dropTargetOptionsInternal","dropTargetNode","dropTargetRef","clearDropTarget","useDragDropManager","useContext","useDragSourceConnector","useDragSourceMonitor","DragSourceImpl","spec","globalMonitor","end","useDragSource","useDragType","useRegisteredDragSource","registerDragSource","unregister","receiveHandlerId","useDrag","specArg","begin","previewOptions","useConnectDropTarget","useDropTargetConnector","useDropTargetMonitor","useAccept","accept","DropTargetImpl","useDropTarget","useRegisteredDropTarget","registerDropTarget","join","useDrop","MRT_ColumnPinningButtons","handlePinColumn","pinDirection","pin","Box","minWidth","textAlign","getIsPinned","size","MRT_GrabHandleButton","forwardRef","placement","disableRipple","cursor","m","opacity","p","backgroundColor","fuzzy","columnId","filterValue","addMeta","itemRank","rankItem","getValue","threshold","rankings","MATCHES","passed","autoRemove","val","contains","toLowerCase","trim","startsWith","equals","notEquals","greaterThan","isNaN","lessThan","between","filterValues","empty","_filterValue","notEmpty","MRT_FilterFns","filterFns","rowA","rowB","dir","columnFiltersMeta","compareItems","sortingFns","alphanumeric","MRT_SortingFns","rankGlobalFuzzy","Math","values","v","rank","getColumnId","accessorKey","getAllLeafColumnDefs","columns","lowestLevelColumns","currentCols","col","nextCols","flat","every","prepareColumns","columnDefs","console","columnDefType","filterFn","sortingFn","reorderColumn","movingColumn","receivingColumn","columnOrder","getCanPin","getLeadingDisplayColumnIds","positionActionsColumn","enableRowActions","enableEditing","editingMode","enableExpanding","enableGrouping","enableRowSelection","enableRowNumbers","getTrailingDisplayColumnIds","getDefaultColumnOrderIds","MRT_ShowHideColumnsMenuItems","allColumns","isSubMenu","enableColumnOrdering","enableHiding","enablePinning","setColumnOrder","newColumnOrder","dropRef","dragRef","previewRef","switchChecked","getIsVisible","getLeafColumns","handleToggleColumnHidden","childColumn","justifyContent","pl","depth","display","flexWrap","gap","FormControlLabel","componentsProps","typography","mb","checked","control","Switch","getCanHide","getIsGrouped","onChange","Typography","alignSelf","MRT_ShowHideColumnsMenu","getAllColumns","getAllLeafColumns","getCenterLeafColumns","getIsAllColumnsVisible","getIsSomeColumnsPinned","getIsSomeColumnsVisible","getLeftLeafColumns","getRightLeafColumns","toggleAllColumnsVisible","columnPinning","hideAllColumns","from","Set","colId","find","pt","Button","resetColumnPinning","Divider","commonListItemStyles","MRT_ColumnActionMenu","enableColumnFilterChangeMode","enableColumnFilters","enableColumnResizing","enableSorting","tableId","setShowFilters","columnSizing","columnVisibility","filterMenuAnchorEl","setFilterMenuAnchorEl","showHideColumnsMenuAnchorEl","setShowHideColumnsMenuAnchorEl","handleClearSort","clearSorting","handleSortAsc","toggleSorting","handleSortDesc","handleResetColumnSize","resetSize","handleHideColumn","handleGroupByColumn","toggleGrouping","old","handleClearFilter","handleFilterByColumn","getElementById","muiTableHeadCellFilterTextFieldProps","focus","handleShowAllColumns","handleOpenFilterModeMenu","event","stopPropagation","currentTarget","handleOpenShowHideColumnsMenu","isSelectFilter","filterSelectOptions","showFilterModeSubMenu","getCanSort","getIsSorted","ListItemIcon","String","getCanFilter","getFilterValue","onMouseEnter","getCanGroup","getCanResize","visible","MRT_RowActionMenu","handleEdit","renderRowActionMenuItems","closeMenu","MRT_EditActionButtons","onEditRowSubmit","setCurrentEditingRow","currentEditingRow","handleCancel","_valuesCache","original","handleSave","color","commonIconButtonStyles","ml","MRT_ToggleRowActionMenuButton","renderRowActions","handleOpenRowActionMenu","preventDefault","handleStartEditMode","MRT_SelectCheckbox","selectAll","muiSelectCheckboxProps","muiSelectAllCheckboxProps","selectAllMode","handleSelectChange","getToggleAllRowsSelectedHandler","getToggleAllPageRowsSelectedHandler","getToggleSelectedHandler","checkboxProps","Checkbox","getIsAllRowsSelected","getIsSelected","indeterminate","getIsSomeRowsSelected","getIsSomeSelected","inputProps","memoize","fn","memoized","union","EnterLeaveCounter","enteringNode","previousLength","entered","isNodeEntered","isNodeInDocument","leavingNode","reset","NativeDragSource","initializeExposedProperties","config","exposeProperties","property","defineProperty","configurable","enumerable","warn","dataTransfer","newProperties","propertyFn","matchesTypes","defineProperties","handle","FILE","URL","TEXT","HTML","getDataFromDataTransfer","typesToTry","resultSoFar","typeToTry","getData","nativeTypesConfig","NativeTypes","files","html","urls","text","createNativeDragSource","loadDataTransfer","matchNativeItemType","dataTransferTypes","nativeItemType","typeConfig","isFirefox","test","navigator","userAgent","isSafari","safari","MonotonicInterpolant","xs","ys","c1s","c2s","c3s","low","high","mid","floor","xHere","diff","diffSq","dxs","ms","dx","dy","m2","mNext","dxNext","common","c1","invDx","ELEMENT_NODE","getNodeClientOffset","el","nodeType","parentElement","top","left","getBoundingClientRect","getEventClientOffset","e","clientX","clientY","isImageNode","nodeName","documentElement","getDragPreviewSize","isImage","sourceWidth","sourceHeight","dragPreviewWidth","dragPreviewHeight","devicePixelRatio","getDragPreviewOffset","sourceNode","anchorPoint","offsetPoint","dragPreviewNodeOffsetFromClient","offsetFromDragPreview","offsetWidth","offsetHeight","anchorX","anchorY","calculateYOffset","interpolantY","interpolate","calculateXOffset","interpolantX","offsetX","offsetY","isManualOffsetX","isManualOffsetY","OptionsReader","rootElement","optionsArgs","ownerDocument","HTML5BackendImpl","profile","sourcePreviewNodes","sourcePreviewNodeOptions","sourceNodeOptions","sourceNodes","dragStartSourceIds","dropTargetIds","dragEnterTargetIds","dragOverTargetIds","root","__isReactDndBackendSetUp","addEventListeners","removeEventListeners","clearCurrentDragSourceNode","asyncEndDragFrameId","cancelAnimationFrame","handleDragStart","handleSelectStart","setAttribute","addEventListener","removeEventListener","handleDragEnter","handleDragOver","handleDrop","handleTopDragStart","handleTopDragStartCapture","handleTopDragEndCapture","handleTopDragEnter","handleTopDragEnterCapture","handleTopDragLeaveCapture","handleTopDragOver","handleTopDragOverCapture","handleTopDrop","handleTopDropCapture","getCurrentSourceNodeOptions","dropEffect","altKeyPressed","getCurrentDropEffect","isDraggingNativeItem","getCurrentSourcePreviewNodeOptions","captureDraggingState","beginDragNativeItem","currentNativeSource","currentNativeHandle","currentDragSourceNode","MOUSE_MOVE_TIMEOUT","mouseMoveTimeoutTimer","endDragIfSourceWasRemovedFromDOM","defaultPrevented","unshift","_e","lastClientOffset","hoverRafId","endDragNativeItem","body","cancelHover","scheduleHover","requestAnimationFrame","nativeType","setDragImage","dragPreviewOffset","setData","setCurrentDragSourceNode","hasAttribute","isFirstEnter","enterLeaveCounter","enter","altKey","isLastLeave","leave","dragDrop","tagName","isContentEditable","HTML5Backend","createBackend","MRT_FullScreenToggleButton","rest","setIsFullScreen","isFullScreen","handleToggleFullScreen","MRT_ShowHideColumnsButton","handleClick","MRT_ToggleDensePaddingButton","setDensity","handleToggleDensePadding","nextDensity","MRT_ToggleFiltersButton","showFilters","handleToggleShowFilters","MRT_ToggleGlobalFilterButton","muiSearchTextFieldProps","setShowGlobalFilter","showGlobalFilter","textFieldProps","handleToggleSearch","MRT_GlobalFilterTextField","setGlobalFilter","enableGlobalFilterChangeMode","globalFilter","setSearchValue","handleChangeDebounced","debounce","handleGlobalFilterMenuOpen","handleClear","Collapse","orientation","TextField","placeholder","variant","InputProps","startAdornment","InputAdornment","position","endAdornment","MRT_ToolbarInternalButtons","enableDensityToggle","enableFilters","enableFullScreenToggle","enableGlobalFilter","positionGlobalFilter","renderToolbarInternalActions","zIndex","MRT_TablePagination","getPrePaginationRowModel","setPageIndex","setPageSize","muiTablePaginationProps","enableToolbarInternalActions","rowCount","pagination","pageSize","pageIndex","totalRowCount","rows","showFirstLastPageButtons","tablePaginationProps","handleChangeRowsPerPage","TablePagination","SelectProps","MenuProps","disablePadding","component","onPageChange","_","newPage","onRowsPerPageChange","page","rowsPerPage","rowsPerPageOptions","showFirstButton","showLastButton","mt","MRT_ToolbarAlertBanner","stackAlertBanner","getSelectedRowModel","muiTableToolbarAlertBannerProps","grouping","showAlertBanner","alertProps","selectMessage","groupedByMessage","Fragment","Chip","getColumn","onDelete","timeout","Alert","icon","borderRadius","fontSize","right","AlertTitle","MRT_LinearProgressBar","alignTo","muiLinearProgressProps","isLoading","showProgressBars","linearProgressProps","mountOnEnter","unmountOnExit","bottom","LinearProgress","commonToolbarStyles","theme","lighten","palette","background","backgroundImage","minHeight","overflow","MRT_ToolbarTop","enablePagination","muiTableToolbarTopProps","positionPagination","positionToolbarAlertBanner","renderToolbarTopCustomActions","isMobile","useMediaQuery","toolbarProps","Toolbar","boxSizing","MRT_ToolbarBottom","muiTableToolbarBottomProps","renderToolbarBottomCustomActions","boxShadow","alpha","black","MRT_FilterTextField","inputIndex","mTableHeadCellFilterTextFieldProps","mcTableHeadCellFilterTextFieldProps","newFilterValues","handleFilterMenuOpen","handleClearFilterChip","Filter","filterId","currentFilterOption","filterChipLabel","charAt","toUpperCase","filterPlaceholder","showChangeModeButton","fullWidth","textOverflow","helperText","htmlFor","FormHelperTextProps","lineHeight","whiteSpace","margin","disableHoverListener","mr","MRT_FilterRangeFields","gridTemplateColumns","MRT_TableHeadCellFilterContainer","MRT_TableHeadCellFilterLabel","filterTooltip","Grow","MRT_TableHeadCellResizeHandle","columnResizeMode","flexItem","onDoubleClick","borderRightWidth","touchAction","getIsResizing","userSelect","info","main","onMouseDown","getResizeHandler","onTouchStart","columnSizingInfo","deltaOffset","MRT_TableHeadCellSortLabel","sortTooltip","TableSortLabel","active","direction","MRT_TableHeadCellColumnActionsButton","muiTableHeadCellColumnActionsButtonProps","mTableHeadCellColumnActionsButtonProps","mcTableHeadCellColumnActionsButtonProps","MRT_TableHeadCell","enableColumnActions","enableMultiSort","muiTableHeadCellProps","mTableHeadCellProps","mcTableHeadCellProps","tableCellProps","headerElement","Header","getIsLastLeftPinnedColumn","getLeftLeafHeaders","getPinnedIndex","getIsFirstRightPinnedColumn","getTotalRight","getRightLeafHeaders","TableCell","align","colSpan","fontWeight","getStart","pb","verticalAlign","maxWidth","getSize","minSize","isPlaceholder","getToggleSortingHandler","MRT_DraggableTableHeadCell","MRT_TableHeadRow","headerGroup","muiTableHeadRowProps","tableRowProps","TableRow","headers","MRT_TableHead","getHeaderGroups","muiTableHeadProps","tableHeadProps","TableHead","rectChanged","observedNodes","run","changedStates","newRect","rafId","observeRect","cb","wasEmpty","rect","hasRectChanged","callbacks","unobserve","useRect","nodeRef","initialRect","setElement","useReducer","rectReducer","initialRectSet","useRef","defaultEstimateSize","defaultKeyExtractor","defaultMeasureSize","defaultRangeExtractor","range","start","overscan","arr","useVirtual","estimateSize","paddingStart","paddingEnd","parentRef","scrollToFn","useObserver","onScrollElement","scrollOffsetFn","keyExtractor","measureSize","rangeExtractor","sizeKey","scrollKey","latestRef","scrollOffset","measurements","setScrollOffset","useMeasureParent","outerSize","defaultScrollToFn","offset","resolvedScrollToFn","measuredCache","setMeasuredCache","measure","pendingMeasuredCacheIndexesRef","measuredSize","totalSize","scrollOffsetFnRef","onScroll","capture","passive","calculateRange","indexes","measureSizeRef","virtualItems","k","len","measurement","measureRef","mountedRef","scrollToOffset","toOffset","tryScrollToIndex","scrollToIndex","findNearestBinarySearch","getCurrentValue","middle","currentValue","getOffset","MRT_EditCellTextField","cell","muiTableBodyCellEditTextFieldProps","onCellEditBlur","onCellEditChange","setCurrentEditingCell","setValue","handleBlur","mTableBodyCellEditTextFieldProps","mcTableBodyCellEditTextFieldProps","onBlur","MRT_CopyButton","muiTableBodyCellCopyButtonProps","copied","setCopied","handleCopy","clipboard","writeText","mTableBodyCellCopyButtonProps","mcTableBodyCellCopyButtonProps","buttonProps","border","fontFamily","letterSpacing","textTransform","MRT_TableBodyCell","enableHover","rowIndex","enableClickToCopy","muiTableBodyCellProps","muiTableBodyCellSkeletonProps","rowNumberMode","currentEditingCell","showSkeletons","mTableCellBodyProps","mcTableCellBodyProps","skeletonWidth","random","isEditable","isEditing","handleDoubleClick","_event","textField","mode","darken","getIsPlaceholder","Skeleton","animation","Cell","renderValue","subRows","MRT_TableDetailPanel","getVisibleLeafColumns","muiTableBodyRowProps","muiTableDetailPanelProps","borderBottom","getTotalSize","MRT_TableBodyRow","getVisibleCells","MRT_TableBody","tableContainerRef","getRowModel","enableGlobalFilterRankedResults","enableRowVirtualization","muiTableBodyProps","virtualizerProps","sorting","tableBodyProps","getIsSomeColumnsSorted","rankedRows","sort","rowVirtualizer","virtualRows","paddingTop","paddingBottom","TableBody","rowOrVirtualRow","MRT_TableFooterCell","footer","muiTableFooterCellProps","mTableFooterCellProps","mcTableFooterCellProps","white","Footer","MRT_TableFooterRow","footerGroup","muiTableFooterRowProps","MRT_TableFooter","getFooterGroups","muiTableFooterProps","tableFooterProps","TableFooter","MRT_Table","enableStickyHeader","enableTableFooter","enableTableHead","muiTableProps","tableProps","Table","stickyHeader","tableLayout","MRT_TableContainer","muiTableContainerProps","totalToolbarHeight","setTotalToolbarHeight","tableContainerProps","topToolbarHeight","bottomToolbarHeight","TableContainer","maxHeight","MRT_TablePaper","enableToolbarBottom","enableToolbarTop","muiTablePaperProps","tablePaperProps","Paper","elevation","padding","MRT_TableRoot","setIdPrefix","substring","initState","setShowAlertBanner","assign","globalFilterFn","displayColumns","enableExpandAll","enableSelectAll","fill","useReactTable","getCoreRowModel","getExpandedRowModel","getFacetedRowModel","getFilteredRowModel","getGroupedRowModel","getPaginationRowModel","getSortedRowModel","onColumnOrderChange","getSubRows","onCurrentEditingCellChange","onCurrentEditingRowChange","onCurrentFilterFnsChange","onCurrentGlobalFilterFnChange","onDensityChange","onIsFullScreenChange","onShowAlertBannerChange","onShowFiltersChange","onShowGlobalFilterChange","Dialog","PaperComponent","TransitionComponent","disablePortal","fullScreen","keepMounted","transitionDuration","autoResetExpanded","defaultColumn","maxSize","enableMultiRowSelection"],"mappings":"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"}