UNPKG

devextreme

Version:

JavaScript/TypeScript Component Suite for Responsive Web Development

46 lines (45 loc) 1.54 kB
/** * DevExtreme (esm/__internal/scheduler/utils/skipped_days.js) * Version: 26.1.3 * Build date: Wed Jun 10 2026 * * Copyright (c) 2012 - 2026 Developer Express Inc. ALL RIGHTS RESERVED * Read about DevExtreme licensing here: https://js.devexpress.com/Licensing/ */ export const isValidWeekday = value => "number" === typeof value && Number.isInteger(value) && value >= 0 && value <= 6; export const isDateSkipped = (date, skippedDays) => skippedDays.includes(date.getDay()); export const getVisibleDaysOfWeek = (firstDayOfWeek, skippedDays) => { const result = []; for (let count = 0; count < 7; count += 1) { const raw = firstDayOfWeek + count; const dayOfWeek = (raw % 7 + 7) % 7; if (!skippedDays.includes(dayOfWeek)) { result.push(dayOfWeek) } } return result }; export const getFirstVisibleDate = (start, skippedDays, nextDate) => { if (skippedDays.length >= 7) { return new Date(start) } let date = new Date(start); while (isDateSkipped(date, skippedDays)) { date = nextDate(date) } return date }; export const getSkippedDaysCount = (start, dayCount, skippedDays) => { if (dayCount <= 0 || !skippedDays || 0 === skippedDays.length) { return 0 } const date = new Date(start); let skippedCount = 0; for (let i = 0; i < dayCount; i += 1) { if (isDateSkipped(date, skippedDays)) { skippedCount += 1 } date.setDate(date.getDate() + 1) } return skippedCount };