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