UNPKG

devexpress-reporting

Version:

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

349 lines (348 loc) 16.5 kB
/** * DevExpress HTML/JS Reporting (designer\dataObjects\parameters\parameter.js) * Version: 20.2.13 * Build date: Apr 10, 2023 * Copyright (c) 2012 - 2023 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ "use strict"; var __extends = (this && this.__extends) || (function () { var extendStatics = function (d, b) { extendStatics = Object.setPrototypeOf || ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) || function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; }; return extendStatics(d, b); }; return function (d, b) { extendStatics(d, b); function __() { this.constructor = d; } d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __()); }; })(); Object.defineProperty(exports, "__esModule", { value: true }); var _localizationUtils_1 = require("../../controls/utils/_localizationUtils"); var parameterTypesHelper_1 = require("./parameterTypesHelper"); var analytics_widgets_1 = require("@devexpress/analytics-core/analytics-widgets"); var parameterExpressionBinding_1 = require("./parameterExpressionBinding"); var analytics_utils_1 = require("@devexpress/analytics-core/analytics-utils"); var ko = require("knockout"); var $ = require("jquery"); var analytics_widgets_internal_1 = require("@devexpress/analytics-core/analytics-widgets-internal"); var EditableParameterMode = { _ignoreEditors: ['valueSourceSettings', 'valueSourceSettingsType'], _displayNamePatcher: { 'isMultiValue': function (info) { return info.displayName = 'Allow Multiple Value'; }, 'allowNull': function (info) { return info.displayName = 'Allow Null Value'; }, 'visible': function (info) { return info.displayName = 'Show In Parameters Panel'; }, 'valueSourceSettingsType': function (info) { return info.displayName = 'Value Source'; } } }; var Parameter = (function (_super) { __extends(Parameter, _super); function Parameter(model, _report, serializer) { var _this = _super.call(this) || this; _this._report = _report; _this.templateName = 'dx-treelist-item'; _this._isEditing = ko.observable(false); _this.collapsed = ko.observable(false); _this.valueSourceSettingsType = ko.observable('None'); _this.valueInfo = ko.observable(); _this.multiValueInfo = ko.observable(); _this.parameterTypesHelper = new parameterTypesHelper_1.ParameterTypesHelper(); _this._disposables.push(_this._localizationProvider); var objectsStorage = _report.objectsStorageHelper; var parameterHelper = _report.parameterHelper; _this._preDeserialize(model); serializer = serializer || new analytics_utils_1.ModelSerializer(); serializer.deserialize(_this, model); _this.valueSourceSettingsHelper = new valueSourceSettingsHelper_1.ValueSourceSettingsHelper(_this); _this.objectsStorage = objectsStorage; _this._parameterHelper = parameterHelper; _this['_name'] = ko.observable(_this.parameterName()); _this['change'] = function (e, parameters) { if (parameters.filter(function (x) { return x.parameterName() === e.value; }).length === 1) { _this['_name'](e.value); } else { _this.parameterName(_this['_name']()); } }; if (!_this._type()) { _this._type(objectsStorage.getType('System.String')); } _this._processObsoleteProperties(); _this.type = ko.pureComputed({ read: function () { return _this._type().content(); }, write: function (val) { var oldVal = _this._type().content(); if (val !== oldVal) { var editorValue = _this.value(); if (_this.isMultiValue()) _this.value([]); else _this.value(null); _this.valueSourceSettingsHelper.updateSettingValues(undefined, null); setTimeout(function () { _this._type(objectsStorage.getType(val)); if (_this.isMultiValue()) return; if (val === 'System.DateTime') { _this.value(_this.defaultValue); } else { _this.value(_this.parameterTypesHelper.convertSingleValue(editorValue, _this.type())); } _this.valueSourceSettingsHelper.updateSettingValues(_this._type().content(), _this.defaultValue); }, 1); } } }); parameterExpressionBinding_1.createExpressionProperty(_this, 'Value'); _this._initializeValue(); _this._disposables.push(_this.isMultiValue.subscribe(function (newMultiValue) { if (newMultiValue) { _this.value = ko.observableArray([_this._parameterHelper.createMultiValue(_this, _this.value())]); } else { _this.value = ko.observable(_this.defaultValue); _this.selectAllValues(false); } })); _this._disposables.push(_this.selectAllValues.subscribe(function (newValue) { if (newValue) { _this.value = ko.observableArray([]); } else if (_this.isMultiValue()) { _this.value = ko.observableArray([_this._parameterHelper.createMultiValue(_this, _this.value())]); } else { _this.value = ko.observable(_this.defaultValue); } _this[parameter_1.parameterExpressionSerializationInfo.propertyName].value(''); })); _this._disposables.push(_this.valueSourceSettingsType.subscribe(function (newVal) { if (newVal === 'None') { _this.selectAllValues(false); } })); _this._disposables.push(_this._isEditing.subscribe(function (newVal) { var settigns = _this.valueSourceSettings(); if (settigns instanceof rangeSettings_1.RangeParametersSettings || settigns instanceof lookupSettings_1.StaticListLookUpSettings) { settigns._isEditing(newVal); } })); _this.valueInfo = ko.pureComputed(function () { var result = $.extend(true, {}, parameter_1.parameterValueSerializationInfo, parameterHelper.getParameterInfo(_this)); result.propertyName = 'value'; if (_this.type() === 'System.String' || _this.isMultiValue()) { result.defaultVal = ''; } return result; }); _this.valueSourceSettingsHelper.initializeParameterSettingsType(); _this.valueSourceSettingsHelper.initializeLookupValueSubscribe(_report); _this.viewmodel = new analytics_widgets_1.ObjectProperties(ko.observable(_this)); return _this; } Object.defineProperty(Parameter.prototype, "_localizationProvider", { get: function () { if (!this.__localizationProvider) { this.__localizationProvider = new _localizationUtils_1.DefaultLocalizationProvider(this); } return this.__localizationProvider; }, enumerable: true, configurable: true }); Parameter.prototype.getLocalizationProperty = function (propertyName) { return this._localizationProvider.getLocalizationProperty(propertyName); }; Parameter.prototype.getLocalizationProperties = function () { return this._localizationProvider.getLocalizationProperties(); }; Parameter.prototype.applyLocalization = function (propertyName, propertyValue) { this._localizationProvider.applyLocalization(propertyName, propertyValue); }; Parameter.prototype._initializeValue = function () { var _this = this; var value = this.value(); if (this.isMultiValue()) { typeof value === 'string' ? this.value = this._parameterHelper.createMultiValueArray(value.split(parameterSettings_1.parameterSeparator), this, function (part) { return _this.parameterTypesHelper.convertSingleValue(part, _this.type()); }) : this.value = ko.observableArray(); } else if (this.allowNull() && !value) { this.value(null); } else { this.value(this.parameterTypesHelper.convertSingleValue(value, this.type())); } }; Parameter.prototype._preDeserialize = function (model) { if (model['@LookUpSettings']) { model['@ValueSourceSettings'] = model['@LookUpSettings']; delete model['@LookUpSettings']; } }; Parameter.prototype._processObsoleteProperties = function () { if (this._obsoleteValue()) { this.value(this._obsoleteValue().content()); this._obsoleteValue(null); } delete this._obsoleteValue; }; Parameter.prototype.preprocessInfo = function (info) { if (this._isEditing()) { info.forEach(function (x) { if (EditableParameterMode._ignoreEditors.indexOf(x.propertyName) !== -1) { x.editor = undefined; } else if (x.editor && x.editor.header === analytics_widgets_1.editorTemplates.getEditor('bool').header) { x.editor = editorTemplates_1.designerEditorTemplates.getEditor('parametersCheckbox'); } else if (x.editor && x.editor.custom === editorTemplates_2.viewerEditorTemplates.multiValueEditable.custom) { x.editor = { custom: 'dxrd-multivalue-editing' }; } EditableParameterMode._displayNamePatcher[x.propertyName] && EditableParameterMode._displayNamePatcher[x.propertyName](x); }); } }; Parameter.prototype.getInfo = function () { var info = parameter_1.parameterSerializationInfo; if (this.type) { var newInfo = $.extend(true, [], parameter_1.parameterSerializationInfo); newInfo.splice(newInfo.indexOf(newInfo.filter(function (prop) { return prop.propertyName === 'value'; })[0]), 1, this.valueInfo()); if (Parameter.availableRangeSettingTypes.indexOf(this.type()) !== -1) { var parameterSettingsTypeInfo = newInfo.filter(function (prop) { return prop.propertyName === 'valueSourceSettingsType'; })[0]; if (parameterSettingsTypeInfo) parameterSettingsTypeInfo.valuesArray = parameter_1.extendValueSourceSettingsTypes; } if (this.valueSourceSettings() && this.valueSourceSettings() instanceof rangeSettings_1.RangeParametersSettings) { var typeInfo = newInfo.filter(function (prop) { return prop.propertyName === 'type'; })[0]; if (typeInfo) { typeInfo.valuesArray = parameterTypesHelper_1.ParameterTypesHelper.typeValues.filter(function (typeValue) { return Parameter.availableRangeSettingTypes.indexOf(typeValue.value) !== -1; }); } } info = newInfo; } this.preprocessInfo(info); return info; }; Parameter.prototype.isPropertyVisible = function (name) { if (name === 'valueSourceSettings') { return !!this.valueSourceSettings(); } else if (name === parameter_1.parameterValueSerializationInfo.propertyName || name === parameter_1.parameterExpressionSerializationInfo.propertyName) { return !(this.valueSourceSettings() instanceof rangeSettings_1.RangeParametersSettings); } return true; }; Parameter.prototype.getParameterDescriptor = function () { return { description: this.description.peek(), displayName: 'Value', localizationId: 'DevExpress.XtraReports.Parameters.Parameter.Value', name: this.parameterName.peek(), type: this.type.peek(), value: this.value.peek(), visible: this.visible.peek(), multiValue: this.isMultiValue.peek(), allowNull: this.allowNull.peek(), selectAllValues: this.selectAllValues.peek(), tag: this.tag.peek() }; }; Parameter.prototype.assign = function (parameter) { var _this = this; this.getInfo().forEach(function (info) { if (_this[info.propertyName] && ko.isWritableObservable(_this[info.propertyName])) _this[info.propertyName](parameter[info.propertyName]()); }); }; Parameter.prototype.getRangeParameters = function () { var result = []; if (this.isList) { var settings = (this.valueSourceSettings()); result = [ settings.startParameter(), settings.endParameter() ]; } return result; }; Object.defineProperty(Parameter.prototype, "name", { get: function () { return this.parameterName(); }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "specifics", { get: function () { return this.isList ? analytics_widgets_internal_1.RangeSpecific : this.parameterTypesHelper.getSpecifics(this.type()); }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "icon", { get: function () { return this.parameterTypesHelper.getIcon(this.type()); }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "defaultValue", { get: function () { return this.parameterTypesHelper.getDefaultValue(this.type()); }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "displayName", { get: function () { return this.parameterName(); }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "isList", { get: function () { return this.valueSourceSettings() instanceof rangeSettings_1.RangeParametersSettings; }, enumerable: true, configurable: true }); Object.defineProperty(Parameter.prototype, "dragData", { get: function () { return { noDragable: this.isList }; }, enumerable: true, configurable: true }); Parameter.prototype.isPropertyDisabled = function (propertyName) { if (propertyName === 'allowNull' || propertyName === 'isMultiValue') { return this.valueSourceSettings() instanceof rangeSettings_1.RangeParametersSettings; } if (propertyName === 'selectAllValues') { return !(this.isMultiValue() && (this.valueSourceSettings() instanceof lookupSettings_1.StaticListLookUpSettings || this.valueSourceSettings() instanceof lookupSettings_1.DynamicListLookUpSettings)); } if (propertyName === parameter_1.parameterValueSerializationInfo.propertyName || propertyName === parameter_1.parameterExpressionSerializationInfo.propertyName) return this.selectAllValues() && !this.isPropertyDisabled('selectAllValues'); return false; }; Parameter.ParametersRefString = 'Parameters'; Parameter.defaultGuidValue = parameterTypesHelper_1.ParameterTypesHelper.defaultGuidValue; Parameter.availableRangeSettingTypes = ['System.DateTime']; return Parameter; }(analytics_utils_1.Disposable)); exports.Parameter = Parameter; var parameter_1 = require("../metadata/parameters/parameter"); var valueSourceSettingsHelper_1 = require("./valueSourceSettingsHelper"); var rangeSettings_1 = require("./rangeSettings"); var lookupSettings_1 = require("./lookupSettings"); var editorTemplates_1 = require("../../widgets/editorTemplates"); var editorTemplates_2 = require("../../../viewer/widgets/editorTemplates"); var parameterSettings_1 = require("./parameterSettings");