UNPKG

devexpress-reporting

Version:

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

47 lines (46 loc) 1.79 kB
/** * DevExpress HTML/JS Reporting (chart\internal\data\_dataMemberBase.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 { Disposable } from '@devexpress/analytics-core/analytics-utils'; import * as ko from 'knockout'; export class DataMemberBase extends Disposable { _assignValueDataMembers(valueDataMember, value) { const values = (value || '').split(this._separator); valueDataMember.arrayValueDataMemberNames.forEach((name, index) => { if (valueDataMember[name]) valueDataMember[name](values[index] || ''); else valueDataMember[name] = ko.observable(values[index] || ''); }); } _valueDataMembersToString(valueDataMember) { const result = []; valueDataMember.arrayValueDataMemberNames.forEach(name => { result.push(valueDataMember[name]() || ''); }); return result.join(this._separator); } toString() { let shouldSerialize = false; this.arrayValueDataMemberNames.forEach(name => { shouldSerialize = shouldSerialize || this[name](); }); return shouldSerialize ? this._valueDataMembersToString(this) : null; } constructor(value, valueScaleType) { super(); this._separator = ';'; this._assignValueDataMembers(this, value); if (valueScaleType) { this.valueScaleType = valueScaleType; this._disposables.push(this.valueScaleType.subscribe((newVal) => { this._assignValueDataMembers(this, ''); })); } } get arrayValueDataMemberNames() { return []; } }