UNPKG

devexpress-reporting

Version:

DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.

203 lines (202 loc) 9.28 kB
/** * DevExpress HTML/JS Reporting (viewer\widgets\dateRange\dateRangeEditor.ranges.js) * Version: 25.2.3 * Build date: Dec 15, 2025 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; import { getLocalization, getWeekFirstDay } from '@devexpress/analytics-core/analytics-internal-native'; import { BaseModel, mutableArray } from '@devexpress/analytics-core/analytics-serializer-native'; class CSDateTime { static get today() { return new CSDateTime().now(); } get date() { return this._date; } get day() { return this._date.getDay(); } get month() { return this._date.getMonth(); } get year() { return this._date.getFullYear(); } constructor(_date = null) { this._date = _date; } addMonths(months) { return new CSDateTime(new Date(this._date.setMonth(CSDateTime.today.month + months))); } addDays(days) { const newDate = this.date.getDate() + days; return new CSDateTime(new Date(this._date.setDate(newDate))); } addHours(hours) { const newDate = this.date.getHours() + hours; return new CSDateTime(new Date(this._date.setHours(newDate))); } addYears(years) { return new CSDateTime(new Date(this._date.setFullYear(this._date.getFullYear() + years))); } now() { return new CSDateTime(new Date(new Date().setHours(0, 0, 0, 0))); } } function createRangeItem(displayName, localizationId, range, iconTemplate) { const item = { displayName: getLocalization(displayName, localizationId), range: range, iconTemplate: iconTemplate }; Object.defineProperty(item, 'displayName', { get: () => getLocalization(displayName, localizationId), configurable: true }); return item; } function getSpecificDateTime(hours, minutes, seconds = 0) { const now = new Date(); now.setHours(hours, minutes, seconds, 0); return now; } const TimeRangeConstants = { Midday: getSpecificDateTime(12, 0), Morning: getSpecificDateTime(6, 0), Evening: getSpecificDateTime(18, 0), Night: getSpecificDateTime(21, 0), WorkingHoursStart: getSpecificDateTime(9, 0), WorkingHoursEnd: getSpecificDateTime(17, 0), LunchStart: getSpecificDateTime(12, 0), LunchEnd: getSpecificDateTime(13, 0), EndDay: getSpecificDateTime(0, 0) }; const defaultDateRanges = [ createRangeItem('Today', 'PreviewStringId.DateRangeParameterEditor_Today', () => [ CSDateTime.today.date, CSDateTime.today.date ]), createRangeItem('Yesterday', 'PreviewStringId.DateRangeParameterEditor_Yesterday', () => [ CSDateTime.today.addDays(-1).date, CSDateTime.today.addDays(-1).date ]), createRangeItem('Current Week', 'PreviewStringId.DateRangeParameterEditor_CurrentWeek', () => { const firstDayOfWeek = getWeekFirstDay() % 7; return [ CSDateTime.today.addDays(-CSDateTime.today.day + firstDayOfWeek).date, CSDateTime.today.addDays(-CSDateTime.today.day + firstDayOfWeek).addDays(6).date ]; }), createRangeItem('Last Week', 'PreviewStringId.DateRangeParameterEditor_LastWeek', () => [ CSDateTime.today.addDays(-7).date, CSDateTime.today.date ]), createRangeItem('Previous Week', 'PreviewStringId.DateRangeParameterEditor_PreviousWeek', () => { const firstDayOfWeek = getWeekFirstDay() % 7; return [ CSDateTime.today.addDays(-CSDateTime.today.day + firstDayOfWeek - 7).date, CSDateTime.today.addDays(-CSDateTime.today.day + firstDayOfWeek - 1).date ]; }), createRangeItem('Current Month', 'PreviewStringId.DateRangeParameterEditor_CurrentMonth', () => [ new Date(CSDateTime.today.year, CSDateTime.today.month, 1), new Date(CSDateTime.today.year, CSDateTime.today.month + 1, 0), ]), createRangeItem('Last Month', 'PreviewStringId.DateRangeParameterEditor_LastMonth', () => [ CSDateTime.today.addMonths(-1).date, CSDateTime.today.date ]), createRangeItem('Previous Month', 'PreviewStringId.DateRangeParameterEditor_PreviousMonth', () => [ new Date(CSDateTime.today.year, CSDateTime.today.month - 1, 1), new Date(CSDateTime.today.year, CSDateTime.today.month, 0), ]), createRangeItem('Current Quarter', 'PreviewStringId.DateRangeParameterEditor_CurrentQuarter', () => [ CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date, CSDateTime.today.addMonths(-CSDateTime.today.month % 3 + 3).date, ]), createRangeItem('Previous Quarter', 'PreviewStringId.DateRangeParameterEditor_PreviousQuarter', () => [ CSDateTime.today.addMonths(-CSDateTime.today.month % 3 - 3).date, CSDateTime.today.addMonths(-CSDateTime.today.month % 3).date, ]), createRangeItem('Current Year', 'PreviewStringId.DateRangeParameterEditor_CurrentYear', () => [ new Date(CSDateTime.today.year, 0, 1), new Date(CSDateTime.today.year, 11, 31), ]), createRangeItem('Last Year', 'PreviewStringId.DateRangeParameterEditor_LastYear', () => [ CSDateTime.today.addYears(-1).date, CSDateTime.today.date ]), createRangeItem('Previous Year', 'PreviewStringId.DateRangeParameterEditor_PreviousYear', () => [ new Date(CSDateTime.today.year - 1, 0, 1), new Date(CSDateTime.today.year - 1, 11, 31), ]) ]; const defaultTimeRanges = [ createRangeItem('Before Midday', 'PreviewStringId.TimeRangeParameterEditor_BeforeMidday', () => [ getSpecificDateTime(0, 0, 0), TimeRangeConstants.Midday ], 'dxrd-svg-preview-BeforeMidday'), createRangeItem('After Midday', 'PreviewStringId.TimeRangeParameterEditor_AfterMidday', () => [ TimeRangeConstants.Midday, getSpecificDateTime(0, 0, 0), ], 'dxrd-svg-preview-AfterMidday'), createRangeItem('Afternoon', 'PreviewStringId.TimeRangeParameterEditor_Afternoon', () => [ TimeRangeConstants.Midday, TimeRangeConstants.Evening, ], 'dxrd-svg-preview-IsAfternoon'), createRangeItem('Morning', 'PreviewStringId.TimeRangeParameterEditor_Morning', () => [ CSDateTime.today.date, CSDateTime.today.date ], 'dxrd-svg-preview-IsMorning'), createRangeItem('Evening', 'PreviewStringId.TimeRangeParameterEditor_Evening', () => [ TimeRangeConstants.Morning, TimeRangeConstants.Midday, ], 'dxrd-svg-preview-IsEvening'), createRangeItem('Night', 'PreviewStringId.TimeRangeParameterEditor_Night', () => [ TimeRangeConstants.Night, TimeRangeConstants.Morning, ], 'dxrd-svg-preview-IsNight'), createRangeItem('Work Time', 'PreviewStringId.TimeRangeParameterEditor_WorkTime', () => [ TimeRangeConstants.WorkingHoursStart, TimeRangeConstants.WorkingHoursEnd ], 'dxrd-svg-preview-IsWorkTime'), createRangeItem('Free Time', 'PreviewStringId.TimeRangeParameterEditor_FreeTime', () => [ TimeRangeConstants.WorkingHoursEnd, TimeRangeConstants.EndDay ], 'dxrd-svg-preview-IsFreeTime'), createRangeItem('Lunch Time', 'PreviewStringId.TimeRangeParameterEditor_LunchTime', () => [ TimeRangeConstants.LunchStart, TimeRangeConstants.LunchEnd ], 'dxrd-svg-preview-IsLunchTime'), createRangeItem('Last Hour', 'PreviewStringId.TimeRangeParameterEditor_LastHour', () => [ getSpecificDateTime(new Date().getHours() - 1, 0), getSpecificDateTime(new Date().getHours(), 0), ], 'dxrd-svg-preview-IsLastHour'), createRangeItem('This Hour', 'PreviewStringId.TimeRangeParameterEditor_ThisHour', () => [ getSpecificDateTime(new Date().getHours(), 0), getSpecificDateTime(new Date().getHours() + 1, 0), ], 'dxrd-svg-preview-IsThisHour'), createRangeItem('Next Hour', 'PreviewStringId.TimeRangeParameterEditor_NextHour', () => [ getSpecificDateTime(new Date().getHours() + 1, 0), getSpecificDateTime(new Date().getHours() + 2, 0), ], 'dxrd-svg-preview-IsNextHour') ]; class PredefinedRangeModel extends BaseModel { onPropertyChanged(args) { } } __decorate([ mutableArray(() => defaultDateRanges) ], PredefinedRangeModel.prototype, "dateRanges", void 0); __decorate([ mutableArray(() => defaultTimeRanges) ], PredefinedRangeModel.prototype, "timeRanges", void 0); export const predefinedDateRangesModel = new PredefinedRangeModel(); export const predefinedDateRanges = predefinedDateRangesModel.dateRanges; export const predefinedTimeRanges = predefinedDateRangesModel.timeRanges;