devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
87 lines (86 loc) • 3.85 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\dataObjects\parameters\rangeSettings.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
*/
import { DotnetTypes, extend } from '@devexpress/analytics-core/analytics-internal';
import { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';
import * as ko from 'knockout';
import { rangeBoundaryParameterInfos, rangeEditor, rangeSettingsInfos } from '../metadata/parameters/rangeSettings';
import { ObjectItem } from '../objectStorageItem';
import { createExpressionProperty } from './parameterExpressionBinding';
export class RangeParametersSettings extends ObjectItem {
constructor(model, dsHelperProvider, serializer) {
super(extend({ '@ObjectType': 'DevExpress.XtraReports.Parameters.RangeParametersSettings' }, model), dsHelperProvider, serializer);
}
_updateInfo(info) {
if (this._isEditing())
info.forEach(x => {
if (x.editor && x.editor === editorTemplates.getEditor('objecteditor'))
x.editor = rangeEditor;
});
}
preInitProperties(model, helper, serializer) {
super.preInitProperties(model, helper, serializer);
this._isEditing = ko.observable(false);
}
getInfo() {
const info = super.getInfo().concat(rangeSettingsInfos);
this._updateInfo(info);
return info;
}
initalizeRangeParameter(rangeParameter, parameter, namePostfix = '_Start') {
rangeParameter.parameterName(parameter.name + namePostfix);
rangeParameter.value(parameter.defaultValue);
}
assingParameterInfo(parameter) {
[this.startParameter(), this.endParameter()].forEach((rangeParameter) => {
rangeParameter.valueInfo = parameter.valueInfo;
rangeParameter.type = parameter.type;
rangeParameter._specifics(parameter.parameterTypesHelper.getSpecifics(parameter.type()));
createExpressionProperty(rangeParameter, 'Value');
});
}
initializeParameters(parameter) {
this.assingParameterInfo(parameter);
this.initalizeRangeParameter(this.startParameter(), parameter);
this.initalizeRangeParameter(this.endParameter(), parameter, '_End');
}
}
export class RangeBoundaryParameter extends ObjectItem {
getInfo() {
if (this.valueInfo) {
const info = extend(true, [], rangeBoundaryParameterInfos);
const valueInfo = this.type() === DotnetTypes.SystemDateTime ? extend({}, this.valueInfo(), { editorOptions: { type: 'date' } }) : this.valueInfo();
info.splice(info.indexOf(info.filter((prop) => { return prop.propertyName === 'value'; })[0]), 1, valueInfo);
return info;
}
return rangeBoundaryParameterInfos;
}
constructor(model, dsHelperProvider, serializer) {
super(model, dsHelperProvider, serializer);
this._specifics = ko.observable('date');
this.templateName = 'dx-treelist-item';
}
get name() {
return this.parameterName();
}
get displayName() {
return this.parameterName();
}
get specifics() {
return this._specifics();
}
}
export class RangeStartParameter extends RangeBoundaryParameter {
constructor(model, dsHelperProvider, serializer) {
super(extend({ '@ObjectType': 'DevExpress.XtraReports.Parameters.RangeStartParameter' }, model), dsHelperProvider, serializer);
}
}
export class RangeEndParameter extends RangeBoundaryParameter {
constructor(model, dsHelperProvider, serializer) {
super(extend({ '@ObjectType': 'DevExpress.XtraReports.Parameters.RangeEndParameter' }, model), dsHelperProvider, serializer);
}
}