devextreme
Version:
JavaScript/TypeScript Component Suite for Responsive Web Development
27 lines (26 loc) • 1.12 kB
JavaScript
/**
* DevExtreme (esm/__internal/scheduler/view_model/generate_view_model/steps/add_position.js)
* Version: 25.2.5
* Build date: Fri Feb 20 2026
*
* Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED
* Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/
*/
import {
binarySearchCellIndex
} from "./binary_search_cell_index";
export const addPosition = (entities, cells) => entities.map((entity => {
const cellIndex = binarySearchCellIndex(cells, entity.startDateUTC);
let endCellIndex = cellIndex;
while (endCellIndex < cells.length - 1 && entity.endDateUTC > cells[endCellIndex].max && entity.endDateUTC >= cells[endCellIndex + 1].min) {
endCellIndex += 1
}
return Object.assign({}, entity, {
startDateUTC: Math.max(entity.startDateUTC, cells[cellIndex].min),
endDateUTC: Math.min(entity.endDateUTC, cells[endCellIndex].max),
cellIndex: cellIndex,
endCellIndex: endCellIndex,
rowIndex: cells[cellIndex].rowIndex,
columnIndex: cells[cellIndex].columnIndex
})
}));