@mui/x-data-grid-pro
Version:
The Pro plan edition of the MUI X Data Grid components.
41 lines (40 loc) • 1.83 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.treeDataReorderValidator = void 0;
var _xDataGrid = require("@mui/x-data-grid");
var _reorderValidator = require("../rowReorder/reorderValidator");
var _commonReorderConditions = require("../rowReorder/commonReorderConditions");
const validationRules = [{
name: 'same-position',
applies: ctx => ctx.sourceNode.id === ctx.targetNode.id,
isInvalid: () => true,
message: 'Source and target are the same'
}, {
name: 'adjacent-position',
applies: ctx => _commonReorderConditions.commonReorderConditions.isAdjacentPosition(ctx),
isInvalid: () => true,
message: 'Source and target are adjacent'
}, {
name: 'to-descendent',
applies: ctx => _commonReorderConditions.commonReorderConditions.isGroupToLeaf(ctx) || _commonReorderConditions.commonReorderConditions.isGroupToGroup(ctx),
isInvalid: ctx => {
let currentNode = ctx.targetNode;
const rowTree = (0, _xDataGrid.gridRowTreeSelector)(ctx.apiRef);
while (currentNode.parent) {
currentNode = rowTree[currentNode.parent];
if (currentNode.id === ctx.sourceNode.id) {
return true;
}
}
return false;
},
message: 'Cannot drop group on one of its descendents'
}, {
name: 'group-to-group-above-leaf-belongs-to-source',
applies: ctx => _commonReorderConditions.commonReorderConditions.isGroupToGroup(ctx) && _commonReorderConditions.commonReorderConditions.isDropAbove(ctx) && _commonReorderConditions.commonReorderConditions.prevIsLeaf(ctx),
isInvalid: _commonReorderConditions.commonReorderConditions.prevBelongsToSource,
message: 'Previous leaf belongs to source group or its descendants'
}];
const treeDataReorderValidator = exports.treeDataReorderValidator = new _reorderValidator.RowReorderValidator(validationRules);