devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
68 lines (67 loc) • 3 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\wizard\pages\legacy\chooseSummaryOptionsPage.js)
* Version: 24.2.6
* Build date: Mar 18, 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 { WizardPageBase } from '@devexpress/analytics-core/analytics-wizard';
import * as ko from 'knockout';
import { SummaryOptionsWrapper } from '../../internal/_summaryOptionsPageUtils';
import { LegacyReportWizardPageId } from '../../pageId';
import { createDeferred } from '@devexpress/analytics-core/analytics-internal-native';
export class LegacyChooseSummaryOptionsPage extends WizardPageBase {
constructor() {
super(...arguments);
this._columns = [];
this.summaryOptions = ko.observableArray([]);
this.ignoreNullValues = ko.observable(false);
this.toggleIgnoreNullValues = () => {
this.ignoreNullValues(!this.ignoreNullValues());
};
}
canFinish() {
return true;
}
initialize(state) {
this.ignoreNullValues(state.ignoreNullValuesForSummary);
const changes = ko.utils.compareArrays(state.summaryOptionsColumns || [], this._columns);
const isColumnsChanged = changes.some((change, index, array) => { return change.status != 'retained'; });
if (isColumnsChanged) {
this._columns = state.summaryOptionsColumns || [];
this.summaryOptions.removeAll();
this._columns.forEach((column) => {
this.summaryOptions.push(new SummaryOptionsWrapper(column.name, column.displayName));
});
}
this.summaryOptions.notifySubscribers();
return createDeferred().resolve().promise();
}
commit() {
return createDeferred().resolve({
ignoreNullValuesForSummary: this.ignoreNullValues(),
summaryOptions: this.summaryOptions().map((value) => { return value.getOptions(); })
}).promise();
}
}
export function _registerLegacyChooseSummaryOptionsPage(factory) {
factory.registerMetadata(LegacyReportWizardPageId.ChooseSummaryOptionsPage, {
setState: (data, state) => {
state.summaryOptions = data.summaryOptions;
state.ignoreNullValuesForSummary = data.ignoreNullValuesForSummary;
},
getState: (state) => {
return state;
},
resetState: (state, defaultState) => {
state.summaryOptions = defaultState.summaryOptions;
state.ignoreNullValuesForSummary = defaultState.ignoreNullValuesForSummary;
},
create: () => {
return new LegacyChooseSummaryOptionsPage();
},
template: 'dxrd-page-summaryOptions',
description: getLocalization('What summary function would you like to calculate?', 'ASPxReportsStringId.ReportDesigner_Wizard_SummaryOptions')
});
}