UNPKG

devexpress-reporting

Version:

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

83 lines (82 loc) 3.73 kB
/** * DevExpress HTML/JS Reporting (designer\wizard\pages\configureReportPageSettingsAndColorSchemeSection.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 { DxDeferred, createDeferred } from '@devexpress/analytics-core/analytics-internal-native'; import { getLocalization } from '@devexpress/analytics-core/analytics-utils'; import { WizardPageBase } from '@devexpress/analytics-core/analytics-wizard'; import { ReportWizardPageId } from '../pageId'; import { ChooseReportColorSchemePage, _applyColorSchemeState } from './colorSchemePage'; import { ConfigureReportPageSettingsPage, _applyPageSetting } from './configureReportPageSettingsPage'; export class ConfigurePageSettingsPage extends WizardPageBase { constructor() { super(...arguments); this._configureReportPageSettingsPage = new ConfigureReportPageSettingsPage(); this._colorSchemePage = new ChooseReportColorSchemePage(); this._colorSchemePageVisible = true; } dispose() { this._configureReportPageSettingsPage.dispose(); this._colorSchemePage.dispose(); } addColorScheme(name, color, position) { this._colorSchemePage.addColorScheme(name, color, position); } removeColorScheme(...names) { this._colorSchemePage.removeColorScheme(...names); } removeAllColorSchemes() { this._colorSchemePage.removeAllColorSchemes(); } setCustomColor(color) { this._colorSchemePage.setCustomColor(color); } onChange(callback) { this._colorSchemePage.onChange(callback); this._configureReportPageSettingsPage.onChange(callback); } canNext() { return this._colorSchemePage.canNext() && this._configureReportPageSettingsPage.canNext(); } canFinish() { return this._colorSchemePage.canFinish() && this._configureReportPageSettingsPage.canFinish(); } initialize(state) { this._colorSchemePageVisible = this._colorSchemePage._lookupData.scheme.length > 0 && !!(state.dataSource || state.newDataSource); return DxDeferred.when([ this._configureReportPageSettingsPage.initialize(state.pageSetup), this._colorSchemePage.initialize(state.colorScheme) ]).promise(); } commit() { const deferred = createDeferred(); this._colorSchemePage.commit().done((colorResult) => { this._configureReportPageSettingsPage.commit().done((configureReportPageSettingsPageResult) => { deferred.resolve({ pageSetup: configureReportPageSettingsPageResult, colorScheme: colorResult }); }); }); return deferred.promise(); } } export function _registerConfigureReportPageSettingsSection(factory) { factory.registerMetadata(ReportWizardPageId.ConfigureReportPageSettingsPage, { create: () => new ConfigurePageSettingsPage(), getState: (state) => state, setState: (data, state) => { _applyPageSetting(data.pageSetup, state.pageSetup); _applyColorSchemeState(data.colorScheme, state.colorScheme); }, resetState: (state, defaultState) => { _applyPageSetting(defaultState.pageSetup, state.pageSetup); _applyColorSchemeState(defaultState.colorScheme, state.colorScheme); }, template: 'dxrd-page-pageSetupAndColorScheme', description: getLocalization('Specify page settings and a report color scheme.', 'ASPxReportsStringId.ReportDesigner_Wizard_SpecifyPageSettingsColorScheme') }); }