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
JavaScript
/**
* 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;