UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

55 lines (54 loc) 2.15 kB
/** * DevExtreme (esm/__internal/scheduler/appointments/resizing/get_delta_time.js) * Version: 25.2.8 * Build date: Mon Jun 08 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ import dateUtils from "../../../../core/utils/date"; import { VERTICAL_VIEW_TYPES } from "../../constants"; const toMs = dateUtils.dateToMilliseconds; const MIN_RESIZABLE_STEP = 2; const getAllDayDeltaWidth = (args, initialSize, resizableStep) => { const intervalWidth = resizableStep || 2; const initialWidth = initialSize.width; return Math.round((args.width - initialWidth) / intervalWidth) }; const getHorizontalDeltaTime = (args, initialSize, _ref) => { let { cellSize: cellSize, cellDurationInMinutes: cellDurationInMinutes } = _ref; const deltaWidth = args.width - initialSize.width; const deltaTime = toMs("minute") * Math.round(deltaWidth * cellDurationInMinutes / cellSize.width); return deltaTime }; const getVerticalDeltaTime = (args, initialSize, _ref2) => { let { cellSize: cellSize, cellDurationInMinutes: cellDurationInMinutes } = _ref2; const deltaHeight = args.height - initialSize.height; const deltaTime = toMs("minute") * Math.round(deltaHeight * cellDurationInMinutes / cellSize.height); return deltaTime }; export const getDeltaTime = (args, initialSize, options) => { const { viewType: viewType, resizableStep: resizableStep, isAllDayPanel: isAllDayPanel } = options; switch (true) { case ["timelineMonth", "month"].includes(viewType) || Boolean(isAllDayPanel): return getAllDayDeltaWidth(args, initialSize, resizableStep) * toMs("day"); case "agenda" === viewType: return 0; case VERTICAL_VIEW_TYPES.includes(viewType) && !isAllDayPanel: return getVerticalDeltaTime(args, initialSize, options); default: return getHorizontalDeltaTime(args, initialSize, options) } };