devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
51 lines (50 loc) • 3.12 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (chart\components\series\_fillStyle.js)
* Version: 24.2.7
* Build date: Apr 29, 2025
* Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED
* License: https://www.devexpress.com/Support/EULAs/universal.xml
*/
import { SerializableModel } from '@devexpress/analytics-core/analytics-elements';
import { extend } from '@devexpress/analytics-core/analytics-internal-native';
import { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';
import { tag } from '../../internal/meta/_common';
import { fillModeMapper, fillStyleOptionsSerialize } from '../../internal/meta/_series';
export class FillStyle extends SerializableModel {
static from(info, gradientTypeName) {
return (model, serializer) => {
return new FillStyle(model || {}, info, gradientTypeName, serializer);
};
}
static toJson(model, serializer, refs) {
return serializer.serialize(model, undefined, refs);
}
_optionsTypeMap(unitType) {
switch (unitType) {
case 'Gradient': return this.gradientTypeName;
case 'Hatch': return 'HatchFillOptions';
default: return undefined;
}
}
constructor(model, info, gradientTypeName, serializer) {
super(model, serializer, info);
this.gradientTypeName = gradientTypeName;
this.updateOptions(this.fillMode(), serializer, model['Options']);
this._disposables.push(this.fillMode.subscribe((newValue) => {
this.updateOptions(newValue, serializer, {});
}));
}
isPropertyVisible(propertyName) {
return propertyName !== 'options' || (propertyName === 'options' && this[propertyName]());
}
updateOptions(fillMode, serializer, optionsObject) {
const newObject = extend({ '@TypeNameSerializable': this._optionsTypeMap(fillMode) }, optionsObject);
const optionsInfo = fillModeMapper[fillMode];
this.options(new SerializableModel(newObject, serializer, optionsInfo));
}
}
export const viewFillMode = {
propertyName: 'fillMode', modelName: '@FillMode', displayName: 'Fill Mode', localizationId: 'DevExpress.XtraCharts.FillStyle2D.FillMode', editor: editorTemplates.getEditor('combobox'), valuesArray: [{ value: 'Empty', displayValue: 'Empty', localizationId: 'DevExpress.XtraPivotGrid.PivotGridAppearances.Empty' }, { value: 'Solid', displayValue: 'Solid', localizationId: 'DevExpress.XtraCharts.FillMode3D.Solid' }, { value: 'Gradient', displayValue: 'Gradient', localizationId: 'DevExpress.XtraCharts.FillMode3D.Gradient' }, { value: 'Hatch', displayValue: 'Hatch', localizationId: 'DevExpress.XtraCharts.FillMode.Hatch' }], defaultVal: 'Empty'
};
export const fillStyleInfo = [viewFillMode, fillStyleOptionsSerialize, tag];
export const stripFillStyle = { propertyName: 'fillStyle', modelName: 'FillStyle', displayName: 'Fill Style', localizationId: 'DevExpress.XtraCharts.Strip.FillStyle', editor: editorTemplates.getEditor('objecteditor'), from: FillStyle.from(fillStyleInfo, 'RectangleGradientFillOptions'), toJsonObject: FillStyle.toJson };