UNPKG

devexpress-reporting

Version:

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

42 lines (41 loc) 1.95 kB
/** * DevExpress HTML/JS Reporting (designer\controls\utils\_paddingUtils.js) * Version: 25.1.3 * Build date: Jun 26, 2025 * Copyright (c) 2012 - 2025 Developer Express Inc. ALL RIGHTS RESERVED * License: https://www.devexpress.com/Support/EULAs/universal.xml */ import { PaddingModel } from '@devexpress/analytics-core/analytics-elements'; import { subscribableProperty } from '@devexpress/analytics-core/analytics-serializer-native'; import { Locker } from '../../../common/utils/_locker'; export function createPaddingProperty(model, parent) { model.addDisposable(model.paddingObj = new PaddingModel()); model.paddingObj.applyFromString(model['padding']()); const lock = new Locker().lock; model._disposables.push(model.padding.subscribe((newVal) => { lock(() => model.paddingObj.applyFromString(newVal)); })); ['left', 'right', 'top', 'bottom'].forEach(name => { model.addDisposable(model.paddingObj.subscribeProperty(name, (newVal) => { const root = parent?.root; if (root?.isModelReady && root.isModelReady() || !(root?.isModelReady)) lock(() => model.padding(model.paddingObj.toString())); })); }); if (parent) { model.dpi = parent.dpi; model.addDisposable(model.paddingObj.createComputedProperty('dpi', () => model.dpi && model.dpi(), [subscribableProperty(model, ['dpi'])])); model.addDisposable(model.paddingObj.subscribeProperty('dpi', newVal => lock(() => { const padding = model._padding || model.padding; if (padding()) padding(model.paddingObj.toString()); }))); } model.paddingObj.resetValue = () => { lock(() => { ['left', 'right', 'top', 'bottom'].forEach(name => model.paddingObj[name](null)); model.padding(model.paddingObj.toString()); model.paddingObj.applyFromString(model.padding()); }); }; }