@mui/x-data-grid
Version:
The Community plan edition of the Data Grid components (MUI X).
49 lines (48 loc) • 2.41 kB
JavaScript
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault").default;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.gridFocusedVirtualCellSelector = void 0;
var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
var _reselect = require("reselect");
var _createSelector = require("../../../utils/createSelector");
var _gridColumnsSelector = require("../columns/gridColumnsSelector");
var _gridVirtualizationSelectors = require("./gridVirtualizationSelectors");
var _focus = require("../focus");
var _pagination = require("../pagination");
var _rows = require("../rows");
const gridIsFocusedCellOutOfContext = (0, _reselect.createSelector)(_focus.gridFocusCellSelector, _gridVirtualizationSelectors.gridRenderContextSelector, _pagination.gridVisibleRowsSelector, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, _rows.gridRowsLookupSelector, (focusedCell, renderContext, currentPage, visibleColumns, rows) => {
if (!focusedCell) {
return false;
}
const row = rows[focusedCell.id];
if (!row) {
return false;
}
const rowIndex = currentPage.rowToIndexMap.get(row);
const columnIndex = visibleColumns.slice(renderContext.firstColumnIndex, renderContext.lastColumnIndex).findIndex(column => column.field === focusedCell.field);
const isInRenderContext = rowIndex !== undefined && columnIndex !== -1 && rowIndex >= renderContext.firstRowIndex && rowIndex <= renderContext.lastRowIndex;
return !isInRenderContext;
});
const gridFocusedVirtualCellSelector = exports.gridFocusedVirtualCellSelector = (0, _createSelector.createSelectorMemoized)(gridIsFocusedCellOutOfContext, _gridColumnsSelector.gridVisibleColumnDefinitionsSelector, _pagination.gridVisibleRowsSelector, _rows.gridRowsLookupSelector, _focus.gridFocusCellSelector, (isFocusedCellOutOfRenderContext, visibleColumns, currentPage, rows, focusedCell) => {
if (!isFocusedCellOutOfRenderContext) {
return null;
}
const row = rows[focusedCell.id];
if (!row) {
return null;
}
const rowIndex = currentPage.rowToIndexMap.get(row);
if (rowIndex === undefined) {
return null;
}
const columnIndex = visibleColumns.findIndex(column => column.field === focusedCell.field);
if (columnIndex === -1) {
return null;
}
return (0, _extends2.default)({}, focusedCell, {
rowIndex,
columnIndex
});
});
;