devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
104 lines (103 loc) • 4.38 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\controls\properties\watermark.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
*/
import { getLocalization } from '@devexpress/analytics-core/analytics-utils';
import { ImageSource } from '../../../common/imageSource';
import { imageAccessibleRole, textAccessibleRole, watermarkSerializationsInfo, wmImageAccessibleDescription, wmTextAccessibleDescription } from '../metadata/properties/watermark';
import { BaseRenderingMultiplatformModel } from '@devexpress/analytics-core/analytics-serializer-native';
import { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';
export const textAccessibleOptions = {
propertyName: 'textAccessibleOptions',
modelName: 'TextAccessibleOptions',
localizationId: 'ASPxReportsStringId.ReportDesigner_Watermarks_TextAccessibleOptions',
displayName: 'Text Accessibility Options',
editor: editorTemplates.getEditor('objecteditor'),
info: [textAccessibleRole, wmTextAccessibleDescription],
from: (model, serializer) => TextAccessibleOptions.from(model, serializer),
toJsonObject: (value, serializer, refs, viewModel) => {
if (viewModel.text)
return serializer.serialize(value, textAccessibleOptions.info, refs);
}
};
export const imageAccessibleOptions = {
propertyName: 'imageAccessibleOptions',
modelName: 'ImageAccessibleOptions',
localizationId: 'ASPxReportsStringId.ReportDesigner_Watermarks_ImageAccessibleOptions',
displayName: 'Image Accessibility Options',
editor: editorTemplates.getEditor('objecteditor'),
info: [imageAccessibleRole, wmImageAccessibleDescription],
from: (model, serializer) => ImageAccessibleOptions.from(model, serializer),
toJsonObject: (value, serializer, refs, viewModel) => {
if (viewModel.imageSource)
return serializer.serialize(value, imageAccessibleOptions.info, refs);
}
};
export class AccessibleOptionsModel extends BaseRenderingMultiplatformModel {
constructor(model, serializer) {
super(model || {}, serializer);
}
isPropertyDisabled(propertyName) {
return false;
}
}
export class ImageAccessibleOptions extends AccessibleOptionsModel {
constructor(model, serializer) {
super(model || {}, serializer);
}
getInfo() {
return imageAccessibleOptions.info;
}
static from(model, serializer) {
return new ImageAccessibleOptions(model || {}, serializer);
}
isPropertyDisabled(propertyName) {
return !(this.watermarkModel?.imageSource?.());
}
}
export class TextAccessibleOptions extends AccessibleOptionsModel {
constructor(model, serializer) {
super(model || {}, serializer);
}
getInfo() {
return textAccessibleOptions.info;
}
static from(model, serializer) {
return new TextAccessibleOptions(model || {}, serializer);
}
isPropertyDisabled(propertyName) {
return !(this.watermarkModel?.text?.());
}
}
export class WatermarkModel extends BaseRenderingMultiplatformModel {
constructor(model, serializer) {
super(model || {}, serializer);
this.rtl = () => void (0);
if (!this.imageSource() && model && model['@Image']) {
this.imageSource(new ImageSource('img', model['@Image']));
delete this['_model']['@Image'];
}
!this.imageAccessibleOptions && (this.imageAccessibleOptions = new ImageAccessibleOptions({}, serializer));
!this.textAccessibleOptions && (this.textAccessibleOptions = new TextAccessibleOptions({}, serializer));
this.imageAccessibleOptions.watermarkModel = this;
this.textAccessibleOptions.watermarkModel = this;
}
get displayName() {
return this['displayNameObject']() || this.watermarkId();
}
get name() {
return this.watermarkId();
}
displayType() {
return getLocalization('Watermark', 'DevExpress.XtraReports.UI.XtraReport.Watermark');
}
shouldDrawWatermarkImage() {
return this.imageSource() && this.imageSource().sourceType !== 'svg';
}
getInfo() {
return [...watermarkSerializationsInfo, imageAccessibleOptions, textAccessibleOptions];
}
}