UNPKG

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
/** * 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]; } }