UNPKG

devexpress-reporting

Version:

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

78 lines (77 loc) 4.54 kB
/** * DevExpress HTML/JS Reporting (designer\actions\pivotGridActions.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 { BaseActionsProvider } from '@devexpress/analytics-core/analytics-internal'; import { getLocalization } from '@devexpress/analytics-core/analytics-utils'; import * as ko from 'knockout'; import { XRPivotGridViewModel } from '../controls/xrPivotgrid'; import { CrossTabConverter } from '../internal/_crossTabConverter'; import { DefaultCrossTabControlEnum } from '../internal/_defaultCrossTabControl'; import { DefaultCrossTabControl } from '../utils/settings'; export class PivotGridActions extends BaseActionsProvider { get _converter() { return this._converters.filter(x => x instanceof CrossTabConverter)[0]; } constructor(_converters, isDisabled = () => false) { super(); this._converters = _converters; super.initActions([ { text: 'Insert Field in Filter Area', group: () => getLocalization('Pivot Grid', 'ReportStringId.RibbonXRDesign_PageGroup_PivotGrid'), displayText: () => getLocalization('Insert Field in Filter Area', 'ASPxReportsStringId.ReportDesigner_PivotActions_InsertFieldInTheFilterArea'), imageClassName: 'dxrd-image-actions-add_field_to_filter_area', imageTemplateName: 'dxrd-svg-actions-add_field_to_filter_area', disabled: ko.pureComputed(() => isDisabled()), clickAction: (model) => { model['addFieldToArea']('FilterArea'); } }, { text: 'Insert Field in Data Area', group: () => getLocalization('Pivot Grid', 'ReportStringId.RibbonXRDesign_PageGroup_PivotGrid'), displayText: () => getLocalization('Insert Field in Data Area', 'ASPxReportsStringId.ReportDesigner_PivotActions_InsertFieldInTheDataArea'), imageClassName: 'dxrd-image-actions-add_field_to_data_area', imageTemplateName: 'dxrd-svg-actions-add_field_to_data_area', disabled: ko.pureComputed(() => isDisabled()), clickAction: (model) => { model['addFieldToArea']('DataArea'); } }, { text: 'Insert Field in Column Area', group: () => getLocalization('Pivot Grid', 'ReportStringId.RibbonXRDesign_PageGroup_PivotGrid'), displayText: () => getLocalization('Insert Field in Column Area', 'ASPxReportsStringId.ReportDesigner_PivotActions_InsertFieldInTheColumnArea'), imageClassName: 'dxrd-image-actions-add_field_to_column_area', imageTemplateName: 'dxrd-svg-actions-add_field_to_column_area', disabled: ko.pureComputed(() => isDisabled()), clickAction: (model) => { model['addFieldToArea']('ColumnArea'); } }, { text: 'Insert Field in Row Area', group: () => getLocalization('Pivot Grid', 'ReportStringId.RibbonXRDesign_PageGroup_PivotGrid'), displayText: () => getLocalization('Insert Field in Row Area', 'ASPxReportsStringId.ReportDesigner_PivotActions_InsertFieldInTheRowArea'), imageClassName: 'dxrd-image-actions-add_field_to_row_area', imageTemplateName: 'dxrd-svg-actions-add_field_to_row_area', disabled: ko.pureComputed(() => isDisabled()), clickAction: (model) => { model['addFieldToArea']('RowArea'); } }, { text: 'Convert to Cross Tab', group: () => getLocalization('Pivot Grid', 'ReportStringId.RibbonXRDesign_PageGroup_PivotGrid'), displayText: () => getLocalization('Convert to Cross Tab', 'ReportStringId.Verb_ConvertPivotGridToCrossTab'), imageClassName: 'dxrd-image-actions-convertation', imageTemplateName: 'dxrd-svg-actions-convertation', disabled: ko.pureComputed(() => isDisabled()), visible: DefaultCrossTabControl() == DefaultCrossTabControlEnum.XRCrossTab, clickAction: (model) => { const converter = this._converter; converter && converter.convert(model); } } ]); } condition(context) { return context instanceof XRPivotGridViewModel; } }