devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
132 lines (131 loc) • 5.84 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (viewer\widgets\dateRange\dateRangeEditor.ranges.js)
* Version: 24.2.6
* Build date: Mar 18, 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) {
const item = {
displayName: getLocalization(displayName, localizationId),
range: range
};
Object.defineProperty(item, 'displayName', {
get: () => getLocalization(displayName, localizationId),
configurable: true
});
return item;
}
const defaultRanges = [
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),
])
];
class PredefinedDateRangeModel extends BaseModel {
onPropertyChanged(args) { }
}
__decorate([
mutableArray(() => defaultRanges)
], PredefinedDateRangeModel.prototype, "ranges", void 0);
export const predefinedDateRangesModel = new PredefinedDateRangeModel();
export const predefinedDateRanges = predefinedDateRangesModel.ranges;