devexpress-reporting
Version:
DevExpress Reporting provides the capability to develop a reporting application to create and customize reports.
39 lines (38 loc) • 5.38 kB
JavaScript
/**
* DevExpress HTML/JS Reporting (designer\controls\metadata\crosstab\fields.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 { extend } from '@devexpress/analytics-core/analytics-internal';
import { editorTemplates } from '@devexpress/analytics-core/analytics-widgets';
import { valuesArrayAsEnumWithLocalizationId } from '../../utils/_metaUtils';
import { groupInterval, summaryDisplayType } from '../pivotgrid/pivotgridfield';
import { summaryType } from '../pivotgrid/sortBySummary';
import { sortOrder } from '../properties/metadata';
export const crossTabFieldName = { propertyName: 'fieldName', modelName: '@FieldName', displayName: 'Field Name', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabFieldBase.FieldName', editor: editorTemplates.getEditor('field'), defaultVal: '' };
const valuesGroupInterval = valuesArrayAsEnumWithLocalizationId(groupInterval, 'DevExpress.XtraReports.UI.CrossTab.GroupInterval.').filter(item => item.value !== 'Custom');
export const crossTabGroupInterval = { propertyName: 'crossTabGroupInterval', modelName: '@GroupInterval', displayName: 'Group Interval', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabGroupFieldBase.GroupInterval', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Default', valuesArray: valuesGroupInterval };
export const crossTabGroupIntervalNumericRange = { propertyName: 'crossTabGroupIntervalNumericRange', modelName: '@GroupIntervalNumericRange', displayName: 'Group Interval Numeric Range', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabGroupFieldBase.GroupIntervalNumericRange', editor: editorTemplates.getEditor('numeric'), defaultVal: 10 };
let valuesArraySummaryType = valuesArrayAsEnumWithLocalizationId(summaryType, 'DevExpress.XtraReports.UI.CrossTab.SummaryType.');
const summaryExtended = [
{ value: 'CountDistinct', displayValue: 'Count Distinct', localizationId: 'DevExpress.XtraReports.UI.CrossTab.SummaryType.CountDistinct' },
{ value: 'Median', displayValue: 'Median', localizationId: 'DevExpress.XtraReports.UI.CrossTab.SummaryType.Median' },
{ value: 'Mode', displayValue: 'Mode', localizationId: 'DevExpress.XtraReports.UI.CrossTab.SummaryType.Mode' }
];
valuesArraySummaryType.push(...summaryExtended);
valuesArraySummaryType = valuesArraySummaryType.filter(item => item.value !== 'Custom');
export const crossTabSummaryType = extend({}, summaryType, { localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabDataField.SummaryType', valuesArray: valuesArraySummaryType });
export const crossTabSortBySummaryInfo = { propertyName: 'crossTabSortBySummaryInfo', modelName: 'SortBySummaryInfo', displayName: 'Sort By Summary Info', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabGroupFieldBase.SortBySummaryInfo', editor: editorTemplates.getEditor('objecteditor'), info: [extend({}, crossTabFieldName, { localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabFieldSortBySummaryInfo.FieldName' }), crossTabSummaryType] };
const summaryDisplayTypeValuesArray = valuesArrayAsEnumWithLocalizationId(summaryDisplayType, 'DevExpress.XtraReports.UI.CrossTab.SummaryDisplayType.');
const crossTabSummaryDisplayType = { propertyName: 'summaryDisplayType', modelName: '@SummaryDisplayType', displayName: 'Summary Display Type', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabDataField.SummaryDisplayType', editor: editorTemplates.getEditor('combobox'), defaultVal: 'Default', valuesArray: summaryDisplayTypeValuesArray };
const crossTabFieldExpression = { propertyName: 'fieldExpression', modelName: '@FieldExpression', displayName: 'Field Expression', localizationId: 'DevExpress.XtraReports.UI.CrossTab.CrossTabDataField.FieldExpression', editor: editorTemplates.getEditor('text') };
export const crossTabDataFieldInfoBase = [crossTabSummaryType, crossTabSummaryDisplayType, crossTabFieldExpression];
export const crossTabDataFieldInfo = crossTabDataFieldInfoBase.concat([crossTabFieldName]);
export const sortOrderdefaultValAscending = extend({}, sortOrder, { defaultVal: 'Ascending' });
export const crossTabGroupFieldInfoBase = [sortOrderdefaultValAscending, crossTabGroupInterval, crossTabGroupIntervalNumericRange, crossTabSortBySummaryInfo];
export const crossTabGroupFieldInfo = crossTabGroupFieldInfoBase.concat([crossTabFieldName]);
export const rowFields = { propertyName: 'rowFields', modelName: 'RowFields', localizationId: 'DevExpress.XtraReports.UI.XRCrossTab.RowFields', displayName: 'Row Fields', array: true, editor: { custom: 'dx-commonCollection' }, template: '#dxrd-collectionItemWithAccordion', alwaysSerialize: true };
export const columnFields = { propertyName: 'columnFields', modelName: 'ColumnFields', localizationId: 'DevExpress.XtraReports.UI.XRCrossTab.ColumnFields', displayName: 'Column Fields', array: true, editor: { custom: 'dx-commonCollection' }, template: '#dxrd-collectionItemWithAccordion', alwaysSerialize: true };
export const dataFields = { propertyName: 'dataFields', modelName: 'DataFields', localizationId: 'DevExpress.XtraReports.UI.XRCrossTab.DataFields', displayName: 'Data Fields', array: true, editor: { custom: 'dx-commonCollection' }, template: '#dxrd-collectionItemWithAccordion', alwaysSerialize: true };