@syncfusion/ej2-pivotview
Version:
The pivot grid, or pivot table, is used to visualize large sets of relational data in a cross-tabular format, similar to an Excel pivot table.
1,282 lines (1,280 loc) • 2.39 MB
JavaScript
import { isNullOrUndefined, select, Internationalization, extend, SanitizeHtmlHelper, createElement, getInstance, remove, closest, setStyleAttribute, addClass, selectAll, removeClass, append, getElement, EventHandler, KeyboardEvents, Browser, ChildProperty, Property, Collection, Complex, Event, Ajax, Component, setValue, L10n, Fetch, compile, formatUnit, initializeCSPTemplate, NotifyPropertyChanges, Droppable, Draggable, detach, prepend, Touch } from '@syncfusion/ej2-base';
import { DataManager, Query, Predicate, Deferred } from '@syncfusion/ej2-data';
import { SizeF, PointF, RectangleF, PdfPageTemplateElement, PdfPen, PdfColor, PdfSolidBrush, PdfStringFormat, PdfPageNumberField, PdfPageCountField, PdfCompositeField, PdfBitmap, PdfFontFamily, PdfFontStyle, PdfStandardFont, PdfTextAlignment, PdfVerticalAlignment, PdfDocument, PdfPageOrientation, PdfBorders, PdfGrid } from '@syncfusion/ej2-pdf-export';
import { Dialog, hideSpinner, Tooltip as Tooltip$1, createSpinner, showSpinner } from '@syncfusion/ej2-popups';
import { headerRefreshed, Grid, Freeze, ExcelExport as ExcelExport$1, PdfExport, Selection, Reorder, Resize, ContextMenu as ContextMenu$1, getScrollBarWidth, setStyleAndAttributes, Toolbar as Toolbar$1, ColumnChooser, Edit, Page, CommandColumn, VirtualScroll as VirtualScroll$1, getObject, Pager as Pager$1 } from '@syncfusion/ej2-grids';
import { ContextMenu, TreeView, Tab, Accordion, Toolbar as Toolbar$2, Menu } from '@syncfusion/ej2-navigations';
import { MaskedTextBox, NumericTextBox, TextBox, ColorPicker } from '@syncfusion/ej2-inputs';
import { DropDownList, MultiSelect, CheckBoxSelection } from '@syncfusion/ej2-dropdowns';
import { DateTimePicker } from '@syncfusion/ej2-calendars';
import { DropDownButton } from '@syncfusion/ej2-splitbuttons';
import { Button, CheckBox, RadioButton } from '@syncfusion/ej2-buttons';
import { getSeriesColor, Chart, ColumnSeries, StackingColumnSeries, RangeColumnSeries, BarSeries, StackingBarSeries, ScatterSeries, BubbleSeries, LineSeries, StepLineSeries, SplineSeries, SplineAreaSeries, MultiColoredLineSeries, PolarSeries, RadarSeries, AreaSeries, RangeAreaSeries, StackingAreaSeries, StepAreaSeries, StackingLineSeries, MultiColoredAreaSeries, ParetoSeries, Legend, Tooltip, Category, MultiLevelLabel, ScrollBar, Zoom, Export, Crosshair, Selection as Selection$1, StripLine, DataLabel, AccumulationChart, PieSeries, FunnelSeries, PyramidSeries, AccumulationDataLabel, AccumulationLegend, AccumulationTooltip, titleSettings } from '@syncfusion/ej2-charts';
import { SvgRenderer } from '@syncfusion/ej2-svg-base';
import { Save } from '@syncfusion/ej2-file-utils';
import { Workbook } from '@syncfusion/ej2-excel-export';
/**
* CSS Constants
*
* @hidden
*/
/** @hidden */
const ROOT = 'e-pivotfieldlist';
/** @hidden */
const RTL = 'e-rtl';
/** @hidden */
const PIVOTCHART_LTR = 'e-ltr';
/** @hidden */
const DEVICE = 'e-device';
/** @hidden */
const ICON = 'e-icons';
/** @hidden */
const ICON_DISABLE = 'e-disable';
/** @hidden */
const ICON_HIDDEN = 'e-hide';
/** @hidden */
const FIRST_PAGER_ICON = 'e-icon-first';
/** @hidden */
const LAST_PAGER_ICON = 'e-icon-last';
/** @hidden */
const PREV_PAGER_ICON = 'e-icon-prev';
/** @hidden */
const NEXT_PAGER_ICON = 'e-icon-next';
/** @hidden */
const AXISFIELD_ICON_CLASS = 'e-dropdown-icon';
/** @hidden */
const WRAPPER_CLASS = 'e-pivotfieldlist-container';
/** @hidden */
const OLAP_WRAPPER_CLASS = 'e-olapfieldlist-container';
/** @hidden */
const CONTAINER_CLASS = 'e-field-list-container';
/** @hidden */
const TOGGLE_FIELD_LIST_CLASS = 'e-toggle-field-list';
/** @hidden */
const STATIC_FIELD_LIST_CLASS = 'e-static';
/** @hidden */
const TOGGLE_SELECT_CLASS = 'e-select-table';
/** @hidden */
const FIELD_TABLE_CLASS = 'e-field-table';
/** @hidden */
const BUTTON_DRAGGABLE = 'e-draggable';
/** @hidden */
const OLAP_FIELD_TABLE_CLASS = 'e-olap-field-table';
/** @hidden */
const FIELD_LIST_CLASS = 'e-field-list';
/** @hidden */
const OLAP_FIELD_LIST_CLASS = 'e-olap-field-list-tree';
/** @hidden */
const FIELD_LIST_TREE_CLASS = 'e-field-list-tree';
/** @hidden */
const FIELD_LIST_TREE_OUTER_DIV_CLASS = 'e-field-list-tree-outer-div';
/** @hidden */
const FIELD_LIST_TREE_OUTER_DIV_SEARCH_CLASS = 'e-field-list-tree-outer-div-searchMode';
/** @hidden */
const FIELD_LIST_SEARCH_MODE_CLASS = 'e-search-mode';
/** @hidden */
const FIELD_HEADER_CLASS = 'e-field-header';
/** @hidden */
const FIELD_TREE_PARENT = 'e-pivot-parent';
/** @hidden */
const FIELD_TREE_CHILD = 'e-pivot-child';
/** @hidden */
const FIELD_HEADER_CONTAINER_CLASS = 'e-field-header-container';
/** @hidden */
const FIELD_LIST_TITLE_CLASS = 'e-field-list-title';
/** @hidden */
const FIELD_LIST_TITLE_CONTENT_CLASS = 'e-title-content';
/** @hidden */
const FIELD_LIST_SEARCH_CLASS = 'e-field-list-search';
/** @hidden */
const FIELD_LIST_SEARCH_INPUT_CLASS = 'e-field-list-search-input';
/** @hidden */
const FIELD_LIST_SEARCH_ICON_CLASS = 'e-field-list-search-icon';
/** @hidden */
const FIELD_LIST_FOOTER_CLASS = 'e-field-list-footer';
/** @hidden */
const CALCULATED_FIELD_CLASS = 'e-calculated-field';
/** @hidden */
const AXIS_TABLE_CLASS = 'e-axis-table';
/** @hidden */
const OLAP_AXIS_TABLE_CLASS = 'e-olap-axis-table';
/** @hidden */
const LEFT_AXIS_PANEL_CLASS = 'e-left-axis-fields';
/** @hidden */
const RIGHT_AXIS_PANEL_CLASS = 'e-right-axis-fields';
/** @hidden */
const ALL_FIELDS_PANEL_CLASS = 'e-all-fields-axis';
/** @hidden */
const AXIS_HEADER_CLASS = 'e-axis-header';
/** @hidden */
const AXIS_CONTENT_CLASS = 'e-axis-content';
/** @hidden */
const AXIS_PROMPT_CLASS = 'e-draggable-prompt';
/** @hidden */
const PIVOT_BUTTON_WRAPPER_CLASS = 'e-pvt-btn-div';
/** @hidden */
const PIVOT_BUTTON_CLASS = 'e-pivot-button';
/** @hidden */
const CONTENT_CLASS = 'e-content';
/** @hidden */
const PIVOT_BUTTON_CONTENT_CLASS = 'e-pvt-btn-content';
/** @hidden */
const DRAG_CLONE_CLASS = 'e-button-drag-clone';
/** @hidden */
const SORT_CLASS = 'e-sort';
/** @hidden */
const MEMBER_SORT_CLASS = 'e-member-sort';
/** @hidden */
const SORT_DESCEND_CLASS = 'e-descend';
/** @hidden */
const FILTER_COMMON_CLASS = 'e-btn-filter';
/** @hidden */
const FILTER_CLASS = 'e-pv-filter';
/** @hidden */
const FILTERED_CLASS = 'e-pv-filtered';
/** @hidden */
const REMOVE_CLASS = 'e-remove';
/** @hidden */
const DRAG_CLASS = 'e-drag';
/** @hidden */
const DRAG_DISABLE_CLASS = 'e-disable-drag';
/** @hidden */
const DROP_INDICATOR_CLASS = 'e-drop-indicator';
/** @hidden */
const INDICATOR_HOVER_CLASS = 'e-drop-hover';
/** @hidden */
const MEMBER_EDITOR_DIALOG_CLASS = 'e-member-editor-dialog';
/** @hidden */
const EDITOR_TREE_WRAPPER_CLASS = 'e-member-editor-outer-container';
/** @hidden */
const EDITOR_TREE_CONTAINER_CLASS = 'e-member-editor-container';
/** @hidden */
const DRILLTHROUGH_GRID_CLASS = 'e-drillthrough-grid';
/** @hidden */
const DRILLTHROUGH_BODY_CLASS = 'e-drillthrough-body';
/** @hidden */
const DRILLTHROUGH_BODY_HEADER_CONTAINER_CLASS = 'e-drillthrough-body-header-container';
/** @hidden */
const DRILLTHROUGH_BODY_HEADER_CLASS = 'e-drillthrough-body-header';
/** @hidden */
const DRILLTHROUGH_BODY_HEADER_COMMON_CLASS = 'e-drillthrough-body-header-common';
/** @hidden */
const DRILLTHROUGH_BODY_HEADER_VALUE_CLASS = 'e-drillthrough-body-header-value';
/** @hidden */
const DRILLTHROUGH_DIALOG = 'e-drillthrough-dialog';
/** @hidden */
const EDITOR_LABEL_WRAPPER_CLASS = 'e-editor-label-container';
/** @hidden */
const EDITOR_LABEL_CLASS = 'e-editor-label';
/** @hidden */
const CHECK_BOX_FRAME_CLASS = 'e-frame';
/** @hidden */
const NODE_CHECK_CLASS = 'e-check';
/** @hidden */
const NODE_STOP_CLASS = 'e-stop';
/** @hidden */
const OK_BUTTON_CLASS = 'e-ok-btn';
/** @hidden */
const CANCEL_BUTTON_CLASS = 'e-cancel-btn';
/** @hidden */
const ERROR_DIALOG_CLASS = 'e-pivot-error-dialog';
/** @hidden */
const DROPPABLE_CLASS = 'e-droppable';
/** @hidden */
const ROW_AXIS_CLASS = 'e-rows';
/** @hidden */
const COLUMN_AXIS_CLASS = 'e-columns';
/** @hidden */
const VALUE_AXIS_CLASS = 'e-values';
/** @hidden */
const FILTER_AXIS_CLASS = 'e-filters';
/** @hidden */
const GROUPING_BAR_CLASS = 'e-grouping-bar';
/** @hidden */
const GROUP_ALL_FIELDS_CLASS = 'e-group-all-fields';
/** @hidden */
const GROUP_ROW_CLASS = 'e-group-rows';
/** @hidden */
const GROUP_COLUMN_CLASS = 'e-group-columns';
/** @hidden */
const GROUP_VALUE_CLASS = 'e-group-values';
/** @hidden */
const GROUP_FILTER_CLASS = 'e-group-filters';
/** @hidden */
const NO_DRAG_CLASS = 'e-drag-restrict';
/** @hidden */
const SELECTED_NODE_CLASS = 'e-list-selected';
/** @hidden */
const TITLE_HEADER_CLASS = 'e-title-header';
/** @hidden */
const TITLE_CONTENT_CLASS = 'e-title-content';
/** @hidden */
const TEXT_CONTENT_CLASS = 'e-text-content';
/** @hidden */
const FOOTER_CONTENT_CLASS = 'e-footer-content';
/** @hidden */
const ADAPTIVE_CONTAINER_CLASS = 'e-adaptive-container';
/** @hidden */
const ADAPTIVE_FIELD_LIST_BUTTON_CLASS = 'e-field-list-btn';
/** @hidden */
const ADAPTIVE_CALCULATED_FIELD_BUTTON_CLASS = 'e-calculated-field-btn';
/** @hidden */
const BUTTON_SMALL_CLASS = 'e-small';
/** @hidden */
const BUTTON_ROUND_CLASS = 'e-round';
/** @hidden */
const ADD_ICON_CLASS = 'e-add-icon';
/** @hidden */
const BUTTON_FLAT_CLASS = 'e-flat';
/** @hidden */
const STATIC_CENTER_DIV_CLASS = 'e-center-div';
/** @hidden */
const STATIC_CENTER_HEADER_CLASS = 'e-center-title';
/** @hidden */
const ADAPTIVE_FIELD_LIST_DIALOG_CLASS = 'e-adaptive-field-list-dialog';
/** @hidden */
const LIST_TEXT_CLASS = 'e-list-text';
/** @hidden */
const LIST_SELECT_CLASS = 'e-selected-node';
/** @hidden */
const FOCUSED_CLASS = 'e-focused';
/** @hidden */
const SELECT_CLASS = 'e-select';
/** @hidden */
const SELECTED_OPTION_ICON_CLASS = 'e-selected-option-icon';
/** @hidden */
const SELECTED_LEVEL_ICON_CLASS = 'e-selected-level-icon';
/** @hidden */
const FILTER_DIV_CONTENT_CLASS = 'e-filter-div-content';
/** @hidden */
const FILTER_TEXT_DIV_CLASS = 'e-filter-text-div';
/** @hidden */
const BETWEEN_TEXT_DIV_CLASS = 'e-between-text-div';
/** @hidden */
const SEPARATOR_DIV_CLASS = 'e-separator-div';
/** @hidden */
const FILTER_OPTION_WRAPPER_1_CLASS = 'e-filter-option-container-1';
/** @hidden */
const FILTER_OPTION_WRAPPER_2_CLASS = 'e-filter-option-container-2';
/** @hidden */
const FILTER_INPUT_DIV_1_CLASS = 'e-filter-input-div-1';
/** @hidden */
const FILTER_INPUT_DIV_2_CLASS = 'e-filter-input-div-2';
/** @hidden */
const VALUE_OPTIONS_CLASS = 'e-value-options';
/** @hidden */
const LEVEL_OPTIONS_CLASS = 'e-level-options';
/** @hidden */
const FILTER_OPERATOR_CLASS = 'e-filter-operator';
/** @hidden */
const FILTER_SORT_CLASS = 'e-filter-sort';
/** @hidden */
const SORT_ASCEND_ICON_CLASS = 'e-sort-ascend-icon';
/** @hidden */
const SORT_DESCEND_ICON_CLASS = 'e-sort-descend-icon';
/** @hidden */
const SORT_SELECTED_CLASS = 'e-active';
/** @hidden */
const COLLAPSE = 'e-collapse';
/** @hidden */
const EXPAND = 'e-expand';
/** @hidden */
const TABLE = 'e-table';
/** @hidden */
const COLUMNSHEADER = 'e-columnsheader';
/** @hidden */
const ROWSHEADER = 'e-rowsheader';
/** @hidden */
const VALUESCONTENT = 'e-valuescontent';
/** @hidden */
const HEADERCELL = 'e-headercell';
/** @hidden */
const SUMMARY = 'e-summary';
/** @hidden */
const CELLVALUE = 'e-cellvalue';
/** @hidden */
const PIVOTTOOLTIP = 'e-pivottooltip';
/** @hidden */
const TOOLTIP_HEADER = 'e-tooltipheader';
/** @hidden */
const TOOLTIP_CONTENT = 'e-tooltipcontent';
/** @hidden */
const NEXTSPAN = 'e-nextspan';
/** @hidden */
const LASTSPAN = 'e-lastspan';
/** @hidden */
const EDITOR_SEARCH_WRAPPER_CLASS = 'e-editor-search-container';
/** @hidden */
const EDITOR_SEARCH_CLASS = 'e-editor-search';
/** @hidden */
const EDITOR_SEARCH__INPUT_CLASS = 'e-editor-search-input';
/** @hidden */
const SELECT_ALL_WRAPPER_CLASS = 'e-select-all-container';
/** @hidden */
const SELECT_ALL_CLASS = 'e-select-all';
/** @hidden */
const PIVOTCALC = 'e-pivot-calc';
/** @hidden */
const CALCDIALOG = 'e-pivot-calc-dialog-div';
/** @hidden */
const OLAP_CALCDIALOG = 'e-olap-calc-dialog-div';
/** @hidden */
const CALCRADIO = 'e-pivot-calc-radio';
/** @hidden */
const CALCCHECK = 'e-pivot-calc-check';
/** @hidden */
const CALCINPUT = 'e-pivot-calc-input';
/** @hidden */
const CALC_FORMAT_INPUT = 'e-custom-format-input';
/** @hidden */
const CALCINPUTDIV = 'e-pivot-calc-input-div';
/** @hidden */
const PIVOT_CALC_CUSTOM_FORMAT_INPUTDIV = 'e-pivot-calc-custom-format-div';
/** @hidden */
const CALC_HIERARCHY_LIST_DIV = 'e-olap-calc-hierarchy-list-div';
/** @hidden */
const CALC_FORMAT_TYPE_DIV = 'e-pivot-calc-format-type-div';
/** @hidden */
const CALC_MEMBER_TYPE_DIV = 'e-olap-calc-member-type-div';
/** @hidden */
const MEMBER_OPTIONS_CLASS = 'e-member-options';
/** @hidden */
const CALCOUTERDIV = 'e-pivot-calc-outer-div';
/** @hidden */
const OLAP_CALCOUTERDIV = 'e-olap-calc-outer-div';
/** @hidden */
const FLAT = 'e-flat';
/** @hidden */
const FORMAT = 'e-format';
/** @hidden */
const FORMULA = 'e-pivot-formula';
/** @hidden */
const TREEVIEW = 'e-pivot-treeview';
/** @hidden */
const TREEVIEWOUTER = 'e-pivot-treeview-outer';
/** @hidden */
const TREE_CONTAINER = 'e-treeContainer';
/** @hidden */
const CALCCANCELBTN = 'e-pivot-cancel-button';
/** @hidden */
const CALCADDBTN = 'e-pivot-add-button';
/** @hidden */
const CALCOKBTN = 'e-pivot-ok-button';
/** @hidden */
const CALCACCORD = 'e-pivot-accord';
/** @hidden */
const CALCBUTTONDIV = 'e-pivot-button-div';
/** @hidden */
const AXIS_ICON_CLASS = 'e-axis';
/** @hidden */
const AXIS_ROW_CLASS = 'e-axis-row';
/** @hidden */
const AXIS_COLUMN_CLASS = 'e-axis-column';
/** @hidden */
const AXIS_VALUE_CLASS = 'e-axis-value';
/** @hidden */
const AXIS_FILTER_CLASS = 'e-axis-filter';
/** @hidden */
const GRID_CLASS = 'e-grid';
/** @hidden */
const PIVOT_VIEW_CLASS = 'e-pivotview';
/** @hidden */
const PIVOT_ALL_FIELD_TITLE_CLASS = 'e-pivot-all-field-title';
/** @hidden */
const PIVOT_FIELD_TITLE_CLASS = 'e-pivot-field-name-title';
/** @hidden */
const PIVOT_FORMULA_TITLE_CLASS = 'e-pivot-formula-title';
/** @hidden */
const OLAP_HIERARCHY_TITLE_CLASS = 'e-olap-hierarchy-title';
/** @hidden */
const PIVOT_FORMAT_TITLE_CLASS = 'e-pivot-format-title';
/** @hidden */
const OLAP_MEMBER_TITLE_CLASS = 'e-olap-member-title';
/** @hidden */
const PIVOT_CONTEXT_MENU_CLASS = 'e-pivot-context-menu';
/** @hidden */
const MENU_DISABLE = 'e-disabled';
/** @hidden */
const MENU_HIDE = 'e-menu-hide';
/** @hidden */
const EMPTY_MEMBER_CLASS = 'e-member-prompt';
/** @hidden */
const CALC_EDIT = 'e-edit';
/** @hidden */
const CALC_EDITED = 'e-edited';
/** @hidden */
const CALC_INFO = 'e-info';
/** @hidden */
const EMPTY_FIELD = 'e-empty-field';
/** @hidden */
const FORMAT_DIALOG = 'e-pivot-formatting-dialog';
/** @hidden */
const FORMAT_CONDITION_BUTTON = 'e-format-condition-button';
/** @hidden */
const FORMAT_NEW = 'e-new-format';
/** @hidden */
const FORMAT_OUTER = 'e-format-outer-div';
/** @hidden */
const FORMAT_INNER = 'e-format-inner-div';
/** @hidden */
const FORMAT_TABLE = 'e-format-table';
/** @hidden */
const FORMAT_VALUE_LABEL = 'e-format-value-label';
/** @hidden */
const FORMAT_LABEL = 'e-format-label';
/** @hidden */
const INPUT = 'e-input';
/** @hidden */
const FORMAT_VALUE1 = 'e-format-value1';
/** @hidden */
const FORMAT_VALUE2 = 'e-format-value2';
/** @hidden */
const HIDDEN = 'e-visible-hide';
/** @hidden */
const FORMAT_INPUT_VALUE = 'e-format-input-value';
/** @hidden */
const FORMAT_VALUE_SPAN = 'e-format-value-span';
/** @hidden */
const FORMAT_FONT_COLOR = 'e-format-font-color';
/** @hidden */
const FORMAT_BACK_COLOR = 'e-format-back-color';
/** @hidden */
const FORMAT_VALUE_PREVIEW = 'e-format-value-preview';
/** @hidden */
const FORMAT_COLOR_PICKER = 'e-format-color-picker';
/** @hidden */
const GRANDTOTAL_CHECKBOX_TABLE = 'e-grandtotal-checkbox-table';
/** @hidden */
const FORMAT_DELETE_ICON = 'e-format-delete-icon';
/** @hidden */
const FORMAT_DELETE_BUTTON = 'e-format-delete-button';
/** @hidden */
const SELECTED_COLOR = 'e-selected-color';
/** @hidden */
const DIALOG_HEADER = 'e-dlg-header';
/** @hidden */
const FORMAT_APPLY_BUTTON = 'e-format-apply-button';
/** @hidden */
const FORMAT_CANCEL_BUTTON = 'e-format-cancel-button';
/** @hidden */
const FORMAT_ROUND_BUTTON = 'e-small e-round';
/** @hidden */
const VIRTUALTRACK_DIV = 'e-virtualtrack';
/** @hidden */
const VIRTUALTABLE_DIV = 'e-movablescrolldiv';
/** @hidden */
const CONTENT_VIRTUALTABLE_DIV = 'e-content-virtualtable';
/** @hidden */
const VIRTUALSCROLL_DIV = 'e-movablescroll';
/** @hidden */
const MOVABLEHEADER_DIV = 'e-headercontent';
/** @hidden */
const DEFER_APPLY_BUTTON = 'e-defer-apply-button';
/** @hidden */
const DEFER_CANCEL_BUTTON = 'e-defer-cancel-button';
/** @hidden */
const LAYOUT_FOOTER = 'e-layout-footer';
/** @hidden */
const CELL_SELECTED_BGCOLOR = 'e-cellselectionbackground';
/** @hidden */
const SELECTED_BGCOLOR = 'e-selectionbackground';
/** @hidden */
const BUTTON_LAYOUT = 'e-button-layout';
/** @hidden */
const CHECKBOX_LAYOUT = 'e-checkbox-layout';
/** @hidden */
const CHECKBOX_CONTAINER = 'e-checkbox-wrapper';
/** @hidden */
const DEFER_UPDATE_BUTTON = 'e-defer-update-btn';
/** @hidden */
const HEADERCONTENT = 'e-headercontent';
/** @hidden */
const BACK_ICON = 'e-field-list-back-icon';
/** @hidden */
const TITLE_MOBILE_HEADER = 'e-title-mobile-header';
/** @hidden */
const TITLE_MOBILE_CONTENT = 'e-title-mobile-content';
/** @hidden */
const ROW_CELL_CLASS = 'e-rowcell';
/** @hidden */
const CELL_ACTIVE_BGCOLOR = 'e-active';
/** @hidden */
const SPAN_CLICKED = 'e-spanclicked';
/** @hidden */
const ROW_SELECT = 'e-rowselect';
/** @hidden */
const GRID_HEADER = 'e-gridheader';
/** @hidden */
const GRID_CONTENT = 'e-gridcontent';
/** @hidden */
const GRID_EXPORT = 'e-export';
/** @hidden */
const PIVOTVIEW_EXPORT = 'e-pivotview-export';
/** @hidden */
const PIVOTVIEW_GRID = 'e-pivotview-grid';
/** @hidden */
const PIVOTVIEW_EXPAND = 'e-pivotview-expand';
/** @hidden */
const PIVOTVIEW_COLLAPSE = 'e-pivotview-collapse';
/** @hidden */
const PIVOTVIEW_GROUP = 'e-pivotview-group';
/** @hidden */
const PIVOTVIEW_UN_GROUP = 'e-pivotview-ungroup';
/** @hidden */
const GRID_PDF_EXPORT = 'e-pivotview-pdf-export';
/** @hidden */
const GRID_EXCEL_EXPORT = 'e-pivotview-excel-export';
/** @hidden */
const GRID_CSV_EXPORT = 'e-pivotview-csv-export';
/** @hidden */
const GRID_PNG_EXPORT = 'e-pivotview-png-export';
/** @hidden */
const GRID_JPEG_EXPORT = 'e-pivotview-jpeg-export';
/** @hidden */
const GRID_SVG_EXPORT = 'e-pivotview-svg-export';
/** @hidden */
const GRID_LOAD = 'e-load-report';
/** @hidden */
const GRID_NEW = 'e-new-report';
/** @hidden */
const GRID_RENAME = 'e-rename-report';
/** @hidden */
const GRID_REMOVE = 'e-remove-report';
/** @hidden */
const GRID_SAVEAS = 'e-saveas-report';
/** @hidden */
const GRID_SAVE = 'e-save-report';
/** @hidden */
const GRID_SUB_TOTAL = 'e-sub-total';
/** @hidden */
const GRID_GRAND_TOTAL = 'e-grand-total';
/** @hidden */
const GRID_FORMATTING = 'e-toolbar-formatting';
/** @hidden */
const GRID_TOOLBAR = 'e-pivot-toolbar';
/** @hidden */
const GRID_REPORT_LABEL = 'e-pivotview-report-label';
/** @hidden */
const GRID_REPORT_INPUT = 'e-pivotview-report-input';
/** @hidden */
const GRID_REPORT_OUTER = 'e-report-outer';
/** @hidden */
const GRID_REPORT_DIALOG = 'e-pivotview-report-dialog';
/** @hidden */
const TOOLBAR_FIELDLIST = 'e-toolbar-fieldlist';
/** @hidden */
const TOOLBAR_GRID = 'e-toolbar-grid';
/** @hidden */
const TOOLBAR_CHART = 'e-toolbar-chart';
/** @hidden */
const REPORT_LIST_DROP = 'e-reportlist-drop';
/** @hidden */
const PIVOTCHART = 'e-pivotchart';
/** @hidden */
const GROUP_CHART_ROW = 'e-group-chart-rows';
/** @hidden */
const GROUP_CHART_COLUMN = 'e-group-chart-columns';
/** @hidden */
const GROUP_CHART_VALUE = 'e-group-chart-values';
/** @hidden */
const GROUP_CHART_MULTI_VALUE = 'e-group-chart-multi-values';
/** @hidden */
const GROUP_CHART_ACCUMULATION_COLUMN = 'e-group-chart-accumulation-column';
/** @hidden */
const GROUP_CHART_FILTER = 'e-group-chart-filters';
/** @hidden */
const GROUP_CHART_VALUE_DROPDOWN_DIV = 'e-group-chart-values-drodown-div';
/** @hidden */
const GROUP_CHART_VALUE_DROPDOWN = 'e-group-chart-values-drodown';
/** @hidden */
const GROUP_CHART_COLUMN_DROPDOWN_DIV = 'e-group-chart-columns-dropdown-div';
/** @hidden */
const GROUP_CHART_COLUMN_DROPDOWN = 'e-group-chart-columns-dropdown';
/** @hidden */
const CHART_GROUPING_BAR_CLASS = 'e-chart-grouping-bar';
/** @hidden */
const PIVOT_DISABLE_ICON = 'e-pivotview-disable-icon';
/** @hidden */
const PIVOT_SELECT_ICON = 'e-pivotview-select-icon';
/** @hidden */
const VALUESHEADER = 'e-valuesheader';
/** @hidden */
const ICON_ASC = 'e-icon-ascending';
/** @hidden */
const ICON_DESC = 'e-icon-descending';
/** @hidden */
const GRID_GROUPING_BAR_CLASS = 'e-pivot-grouping-bar';
/** @hidden */
const MDX_QUERY = 'e-mdx-query';
/** @hidden */
const MDX_QUERY_CONTENT = 'e-mdx-query-content';
/** @hidden */
const GRID_MDX_DIALOG = 'e-pivotview-mdx-dialog';
/** @hidden */
const GRID_MDX = 'e-mdx';
/** @hidden */
const FORMATTING_DIALOG = 'e-pivot-format-dialog';
/** @hidden */
const FORMATTING_DIALOG_OUTER = 'e-pivot-format-dialog-outer';
/** @hidden */
const FORMATTING_VALUE_LABLE = 'e-pivot-format-value-lable';
/** @hidden */
const FORMATTING_VALUE_DROP = 'e-pivot-format-value-drop';
/** @hidden */
const FORMATTING_FORMAT_LABLE = 'e-pivot-format-lable';
/** @hidden */
const FORMATTING_FORMAT_DROP = 'e-pivot-format-drop';
/** @hidden */
const FORMATTING_CUSTOM_LABLE = 'e-pivot-format-custom-lable';
/** @hidden */
const FORMATTING_CUSTOM_TEXT = 'e-pivot-format-custom-text';
/** @hidden */
const FORMATTING_GROUPING_LABLE = 'e-pivot-format-grouping-lable';
/** @hidden */
const FORMATTING_GROUPING_DROP = 'e-pivot-format-grouping-drop';
/** @hidden */
const FORMATTING_DECIMAL_LABLE = 'e-pivot-format-decimal-lable';
/** @hidden */
const FORMATTING_DECIMAL_DROP = 'e-pivot-format-decimal-drop';
/** @hidden */
const FORMATTING_TOOLBAR = 'e-pivot-format-toolbar';
/** @hidden */
const FORMATTING_TABLE = 'e-pivot-format-table';
/** @hidden */
const FORMATTING_MENU = 'e-pivot-format-menu';
/** @hidden */
const NUMBER_FORMATTING_MENU = 'e-pivot-number-format-menu';
/** @hidden */
const EMPTY_FORMAT = 'e-pivot-conditional-empty-format';
/** @hidden */
const CONDITIONAL_FORMATTING_MENU = 'e-pivot-conditional-format-menu';
/** @hidden */
const PIVOTCHART_INNER = 'e-pivotchart-inner';
/** @hidden */
const PIVOTCHART_TYPE_DIALOG = 'e-pivotchart-type-dialog';
/** @hidden */
const FORMAT_FONT_COLOR_PICKER = 'e-format-font-color-picker';
/** @hidden */
const GROUP_PIVOT_ROW = 'e-group-pivot-rows';
/** @hidden */
const TOOLBAR_MENU = 'e-pivot-toolbar-menu';
/** @hidden */
const DISABLE_FIRST_PAGE = 'e-firstpagedisabled';
/** @hidden */
const DISABLE_PREV_PAGE = 'e-prevpagedisabled';
/** @hidden */
const DISABLE_NEXT_PAGE = 'e-nextpagedisabled';
/** @hidden */
const DISABLE_LAST_PAGE = 'e-lastpagedisabled';
/** @hidden */
const GRID_PAGER = 'e-pivot-pager';
/** @hidden */
const GRID_PAGER_DIV = 'e-pivot-pager-maindiv';
/** @hidden */
const PIVOT_ROW_PAGER_DIV = 'e-pivot-pager-row-maindiv';
/** @hidden */
const PIVOT_COLUMN_PAGER_DIV = 'e-pivot-pager-column-maindiv';
/** @hidden */
const PIVOT_ROW_PAGER_SETTINGS = 'e-pivot-row-pager-settings';
/** @hidden */
const PIVOT_COLUMN_PAGER_SETTINGS = 'e-pivot-column-pager-settings';
/** @hidden */
const PIVOT_BOTH_PAGER_SETTINGS = 'e-pivot-both-pager-settings';
/** @hidden */
const PIVOT_PAGER_CONTAINER = 'e-pagercontainer';
/** @hidden */
const PIVOT_V_SEPARATOR = 'e-pivotview-vseparator';
/** @hidden */
const PIVOT_H_SEPARATOR = 'e-pivotview-hseparator';
/** @hidden */
const PIVOT_TEXT_DIV = 'e-pivotview-text-div';
/** @hidden */
const PIVOT_TEXT_DIV_1 = 'e-pivotview-text-div-1';
/** @hidden */
const PIVOT_ROW_SIZE = 'e-pivotview-row-size';
/** @hidden */
const PIVOT_ROW_PAGER_NUMBER = 'e-pivotview-row-pagerNumber';
/** @hidden */
const PIVOT_COLUMN_SIZE = 'e-pivotview-column-size';
/** @hidden */
const PIVOT_COLUMN_PAGER_NUMBER = 'e-pivotview-column-pagerNumber';
/** @hidden */
const PIVOT_ROW_PAGER_STRING = 'e-pivotview-row-pagerString';
/** @hidden */
const PIVOT_COLUMN_PAGER_STRING = 'e-pivotview-column-pagerString';
/** @hidden */
const PIVOT_ROW_OF_STRING = 'e-pivot-row-of-string';
/** @hidden */
const PIVOT_COLUMN_OF_STRING = 'e-pivot-column-of-string';
/** @hidden */
const PIVOT_ROW_DROPDOWN = 'e-pivot-pager-row-dropdown';
/** @hidden */
const PIVOT_COLUMN_DROPDOWN = 'e-pivot-pager-column-dropdown';
/** @hidden */
const PIVOT_ROW_SIZE_LIST = 'e-pivot-row-size-list';
/** @hidden */
const PIVOT_COLUMN_SIZE_LIST = 'e-pivot-column-size-list';
/** @hidden */
const INVERSE = 'e-inverse-view';
/** @hidden */
const COMPACT_VIEW = 'e-compact-view';
/** @hidden */
const PAGE_SIZE_DISABLE = 'e-page-size-disable';
/** @hidden */
const PIVOT_ROW_OF_STRING_MAINDIV = 'e-pivot-row-of-string-maindiv';
/** @hidden */
const PIVOT_COLUMN_OF_STRING_MAINDIV = 'e-pivot-column-of-string-maindiv';
/** @hidden */
const PIVOT_PAGE_SIZE_LIST_MAINDIV = 'e-pager-dropdown';
/** @hidden */
const PIVOT_FIRST_ICON_DEFAULT = 'e-first e-icons e-icon-first';
/** @hidden */
const PIVOT_PREV_ICON_DEFAULT = 'e-prev e-icons e-icon-prev';
/** @hidden */
const PIVOT_NEXT_ICON_DEFAULT = 'e-next e-icons e-icon-next';
/** @hidden */
const PIVOT_LAST_ICON_DEFAULT = 'e-last e-icons e-icon-last';
/** @hidden */
const PIVOT_FIRST_ICON_ENABLE = 'e-firstpage e-pager-default';
/** @hidden */
const PIVOT_PREV_ICON_ENABLE = 'e-prevpage e-pager-default';
/** @hidden */
const PIVOT_NEXT_ICON_ENABLE = 'e-nextpage e-pager-default';
/** @hidden */
const PIVOT_LAST_ICON_ENABLE = 'e-lastpage e-pager-default';
/** @hidden */
const GRID_PAGER_TOP = 'e-pivot-pager-top';
/** @hidden */
const GRID_PAGER_BOTTOM = 'e-pivot-pager-bottom';
/** @hidden */
const GRID_PAGER_SINGLE_DIV = 'e-pivot-pager-single-maindiv';
/** @hidden */
const PIVOT_PAGER_NAV_CONTAINER = 'e-pivot-pager-nav-container';
/** @hidden */
const PIVOT_PAGER_INFO_CONTAINER = 'e-pivot-pager-info-container';
/** @hidden */
const PIVOT_CELL_CONTAINER = 'e-pivotcell-container';
/** @hidden */
const PIVOT_ROW_CONTAINER = 'e-pivotrow-container';
/** @hidden */
const PIVOT_FILTER_TAB_CONTAINER = 'e-filter-tab-container';
/** @hidden */
const PIVOT_FILTER_MEMBER_LIMIT = 'e-node-limit';
/** @hidden */
const FREEZED_CELL = 'e-leftfreeze';
/** @hidden */
const PIVOT_CONTENT_LOADER = 'e-pivot-content-loader';
/** @hidden */
const PIVOT_HIDE_LOADER = 'e-hide-loader';
/** @hidden */
const COLLAPSIBLE = 'e-icon-collapsible';
/** @hidden */
const EXPANDABLE = 'e-icon-expandable';
/** @hidden */
const PIVOT_VIEW_AUTOFIT = 'e-pivotview-autofit';
/** @hidden */
const RHANDLER = 'e-rhandler';
/** @hidden */
const RCURSOR = 'e-rcursor';
/** @hidden */
const RESIZED = 'e-resized';
/** @hidden */
const TABULAR_ROW_BUTTON = 'e-tabular-row-btn';
/** @hidden */
const TABULAR_PIVOT_BUTTON = 'e-tabular-pvt-btn';
/** @hidden */
const GROUP_ROW = 'e-group-row';
/** @hidden */
const FREEZE_LEFT_BORDER = 'e-freezeleftborder';
/** @hidden */
const ROWCELL = 'e-rowcell';
/** @hidden */
const ROW_CLASS = 'e-row';
/** @hidden */
const TABULAR_GROUP_ROWS = 'e-tabular-group-rows';
/** @hidden */
const TABULAR_LAYOUT_HEADER = 'e-tabular-layout-header';
/**
* This is a file to perform common utility for OLAP and Relational datasource
*
* @hidden
*/
class PivotUtil {
static getType(value) {
let val;
const dateValue = new Date(value);
if (typeof value === 'boolean') {
val = 'boolean';
}
else if (!isNaN(Number(value))) {
val = 'number';
}
else if (dateValue instanceof Date && !isNaN(dateValue.valueOf())) {
val = (dateValue && dateValue.getDay() && (dateValue.getHours() > 0 || dateValue.getMinutes() > 0 ||
dateValue.getSeconds() > 0 || dateValue.getMilliseconds() > 0) ? 'datetime' : 'date');
}
else {
val = typeof (value);
}
return val;
}
static resetTime(date) {
date.setHours(0, 0, 0, 0);
return date;
}
static getClonedData(data) {
const clonedData = [];
if (data) {
for (const item of data) {
const fields = Object.keys(item);
let keyPos = 0;
const framedSet = {};
while (keyPos < fields.length) {
framedSet[fields[keyPos]] = item[fields[keyPos]];
keyPos++;
}
clonedData.push(framedSet);
}
}
return clonedData;
}
static getClonedCSVData(data) {
const clonedData = data.map((row) => [...row]);
return clonedData;
}
static getDefinedObj(data) {
let keyPos = 0;
let framedSet = {};
if (!(data === null || data === undefined)) {
const fields = Object.keys(data);
while (keyPos < fields.length) {
if (!(data[fields[keyPos]] === null
|| data[fields[keyPos]] === undefined)) {
framedSet[fields[keyPos]] = data[fields[keyPos]];
}
keyPos++;
}
}
else {
framedSet = data;
}
return framedSet;
}
static inArray(value, collection) {
if (collection) {
for (let i = 0, cnt = collection.length; i < cnt; i++) {
if (collection[i] === value) {
return i;
}
}
}
return -1;
}
static setPivotProperties(control, properties) {
control.allowServerDataBinding = false;
if (control.pivotGridModule) {
control.pivotGridModule.allowServerDataBinding = false;
}
control.setProperties(properties, true);
control.allowServerDataBinding = true;
if (control.pivotGridModule) {
control.pivotGridModule.allowServerDataBinding = true;
}
}
static getClonedDataSourceSettings(dataSourceSettings) {
const clonesDataSource = this.getDefinedObj({
type: dataSourceSettings.type,
catalog: dataSourceSettings.catalog,
cube: dataSourceSettings.cube,
providerType: dataSourceSettings.providerType,
url: dataSourceSettings.url,
localeIdentifier: dataSourceSettings.localeIdentifier,
excludeFields: isNullOrUndefined(dataSourceSettings.excludeFields) ? [] : [...dataSourceSettings.excludeFields],
expandAll: dataSourceSettings.expandAll,
allowLabelFilter: dataSourceSettings.allowLabelFilter,
allowValueFilter: dataSourceSettings.allowValueFilter,
allowMemberFilter: dataSourceSettings.allowMemberFilter,
enableSorting: dataSourceSettings.enableSorting ? true : false,
rows: this.cloneFieldSettings(dataSourceSettings.rows),
columns: this.cloneFieldSettings(dataSourceSettings.columns),
filters: this.cloneFieldSettings(dataSourceSettings.filters),
values: this.cloneFieldSettings(dataSourceSettings.values),
filterSettings: this.cloneFilterSettings(dataSourceSettings.filterSettings),
sortSettings: this.cloneSortSettings(dataSourceSettings.sortSettings),
drilledMembers: this.cloneDrillMemberSettings(dataSourceSettings.drilledMembers),
valueSortSettings: this.CloneValueSortObject(dataSourceSettings.valueSortSettings),
valueAxis: dataSourceSettings.valueAxis,
valueIndex: dataSourceSettings.valueIndex,
grandTotalsPosition: dataSourceSettings.grandTotalsPosition,
formatSettings: this.cloneFormatSettings(dataSourceSettings.formatSettings),
calculatedFieldSettings: this.cloneCalculatedFieldSettings(dataSourceSettings.calculatedFieldSettings),
fieldMapping: this.cloneFieldSettings(dataSourceSettings.fieldMapping),
showSubTotals: dataSourceSettings.showSubTotals,
showRowSubTotals: dataSourceSettings.showRowSubTotals,
showColumnSubTotals: dataSourceSettings.showColumnSubTotals,
subTotalsPosition: dataSourceSettings.subTotalsPosition,
showGrandTotals: dataSourceSettings.showGrandTotals,
showRowGrandTotals: dataSourceSettings.showRowGrandTotals,
showColumnGrandTotals: dataSourceSettings.showColumnGrandTotals,
showHeaderWhenEmpty: dataSourceSettings.showHeaderWhenEmpty,
alwaysShowValueHeader: dataSourceSettings.alwaysShowValueHeader,
conditionalFormatSettings: this.cloneConditionalFormattingSettings(dataSourceSettings.conditionalFormatSettings),
emptyCellsTextContent: dataSourceSettings.emptyCellsTextContent,
groupSettings: this.cloneGroupSettings(dataSourceSettings.groupSettings),
showAggregationOnValueField: dataSourceSettings.showAggregationOnValueField,
authentication: this.CloneAuthenticationObject(dataSourceSettings.authentication)
});
return clonesDataSource;
}
static getClonedFieldList(fieldListObj, isMemberIncluded) {
const keys = Object.keys(fieldListObj);
const clonedfieldlistObj = {};
for (let i = 0, keysLength = keys.length; i < keysLength; i++) {
const fieldlistObj = fieldListObj[keys[i]];
if (fieldListObj[keys[i]]) {
clonedfieldlistObj[keys[i]] = {
type: fieldlistObj.type,
caption: fieldlistObj.caption,
id: fieldlistObj.id,
isSelected: fieldlistObj.isSelected,
sort: fieldlistObj.sort,
filterType: fieldlistObj.filterType,
index: fieldlistObj.index,
filter: isMemberIncluded ? [] : fieldlistObj.filter,
isCustomField: fieldlistObj.isCustomField,
showRemoveIcon: fieldlistObj.showRemoveIcon,
showFilterIcon: fieldlistObj.showFilterIcon,
showSortIcon: fieldlistObj.showSortIcon,
showNoDataItems: fieldlistObj.showNoDataItems,
isCalculatedField: fieldlistObj.isCalculatedField,
showEditIcon: fieldlistObj.showEditIcon,
showValueTypeIcon: fieldlistObj.showValueTypeIcon,
allowDragAndDrop: fieldlistObj.allowDragAndDrop,
showSubTotals: fieldlistObj.showSubTotals,
expandAll: fieldlistObj.expandAll,
pid: fieldlistObj.pid,
aggregateType: fieldlistObj.aggregateType,
baseField: fieldlistObj.baseField,
baseItem: fieldlistObj.baseItem,
dateMember: isMemberIncluded ? [] : this.cloneDateMembers(fieldlistObj.dateMember),
members: isMemberIncluded ? {} : this.cloneFormatMembers(fieldlistObj.members),
formatString: fieldlistObj.formatString,
format: fieldlistObj.format,
formula: fieldlistObj.formula,
isExcelFilter: fieldlistObj.isExcelFilter,
membersOrder: (fieldlistObj.membersOrder ? [...fieldlistObj.membersOrder] :
fieldlistObj.membersOrder),
isAlphanumeric: fieldlistObj.isAlphanumeric,
tag: fieldlistObj.tag,
expanded: fieldlistObj.expanded,
spriteCssClass: fieldlistObj.spriteCssClass,
name: fieldlistObj.name,
defaultHierarchy: fieldlistObj.defaultHierarchy,
hasAllMember: fieldlistObj.hasAllMember,
allMember: fieldlistObj.allMember,
isChecked: fieldlistObj.isChecked,
filterMembers: this.cloneFieldMembers(fieldlistObj.filterMembers),
childMembers: isMemberIncluded ? [] : this.cloneFieldMembers(fieldlistObj.childMembers),
searchMembers: isMemberIncluded ? [] : this.cloneFieldMembers(fieldlistObj.searchMembers),
htmlAttributes: this.getDefinedObj(fieldlistObj.htmlAttributes),
currrentMembers: isMemberIncluded ? {} : this.cloneFormatMembers(fieldlistObj.currrentMembers),
isHierarchy: fieldlistObj.isHierarchy,
isNamedSets: fieldlistObj.isNamedSets,
actualFilter: fieldlistObj.actualFilter ? [...fieldlistObj.actualFilter] : fieldlistObj.actualFilter,
levels: isMemberIncluded ? [] : this.cloneFieldMembers(fieldlistObj.levels),
levelCount: fieldlistObj.levelCount,
fieldType: fieldlistObj.fieldType,
memberType: fieldlistObj.memberType,
parentHierarchy: fieldlistObj.parentHierarchy
};
}
}
return clonedfieldlistObj;
}
static cloneDateMembers(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push({
formattedText: set.formattedText,
actualText: set.actualText
});
}
return clonedCollection;
}
else {
return collection;
}
}
static cloneFormatMembers(collection) {
if (collection) {
const keys = Object.keys(collection);
const clonedFormatMembers = {};
for (let i = 0, keysLength = keys.length; i < keysLength; i++) {
const cloneFormatMembersObj = collection[keys[i]];
clonedFormatMembers[keys[i]] = {
index: cloneFormatMembersObj.index ? [...cloneFormatMembersObj.index] : cloneFormatMembersObj.index,
isDrilled: cloneFormatMembersObj.isDrilled,
ordinal: cloneFormatMembersObj.ordinal
};
}
return clonedFormatMembers;
}
else {
return collection;
}
}
static cloneFieldMembers(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push({
caption: set.caption,
hasChildren: set.hasChildren,
id: set.id,
isSelected: set.isSelected,
name: set.name,
tag: set.tag,
htmlAttributes: this.getDefinedObj(set.htmlAttributes),
type: set.type,
spriteCssClass: set.spriteCssClass,
pid: set.pid,
isChecked: set.isChecked
});
}
return clonedCollection;
}
else {
return collection;
}
}
static updateDataSourceSettings(control, dataSourceSettings) {
if (control) {
this.setPivotProperties(control, {
dataSourceSettings: this.getDefinedObj({
type: dataSourceSettings.type,
catalog: dataSourceSettings.catalog,
cube: dataSourceSettings.cube,
providerType: dataSourceSettings.providerType,
url: dataSourceSettings.url,
localeIdentifier: dataSourceSettings.localeIdentifier,
excludeFields: isNullOrUndefined(dataSourceSettings.excludeFields) ? [] : dataSourceSettings.excludeFields,
expandAll: dataSourceSettings.expandAll,
allowLabelFilter: dataSourceSettings.allowLabelFilter,
allowValueFilter: dataSourceSettings.allowValueFilter,
allowMemberFilter: dataSourceSettings.allowMemberFilter,
enableSorting: dataSourceSettings.enableSorting ? true : false,
rows: dataSourceSettings.rows,
columns: dataSourceSettings.columns,
filters: dataSourceSettings.filters,
values: dataSourceSettings.values,
filterSettings: dataSourceSettings.filterSettings,
sortSettings: dataSourceSettings.sortSettings,
drilledMembers: dataSourceSettings.drilledMembers,
valueSortSettings: dataSourceSettings.valueSortSettings,
valueAxis: dataSourceSettings.valueAxis,
grandTotalsPosition: dataSourceSettings.grandTotalsPosition,
formatSettings: dataSourceSettings.formatSettings,
calculatedFieldSettings: dataSourceSettings.calculatedFieldSettings,
fieldMapping: dataSourceSettings.fieldMapping,
showSubTotals: dataSourceSettings.showSubTotals,
showRowSubTotals: dataSourceSettings.showRowSubTotals,
showColumnSubTotals: dataSourceSettings.showColumnSubTotals,
subTotalsPosition: dataSourceSettings.subTotalsPosition,
showGrandTotals: dataSourceSettings.showGrandTotals,
showRowGrandTotals: dataSourceSettings.showRowGrandTotals,
showColumnGrandTotals: dataSourceSettings.showColumnGrandTotals,
showHeaderWhenEmpty: dataSourceSettings.showHeaderWhenEmpty,
alwaysShowValueHeader: dataSourceSettings.alwaysShowValueHeader,
conditionalFormatSettings: dataSourceSettings.conditionalFormatSettings,
emptyCellsTextContent: dataSourceSettings.emptyCellsTextContent,
groupSettings: dataSourceSettings.groupSettings,
showAggregationOnValueField: dataSourceSettings.showAggregationOnValueField,
authentication: this.CloneAuthenticationObject(dataSourceSettings.authentication)
})
});
}
}
static cloneFieldSettings(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push(this.getDefinedObj({
name: set.name,
caption: set.caption,
axis: set.axis,
baseField: set.baseField,
baseItem: set.baseItem,
isCalculatedField: set.isCalculatedField,
isNamedSet: set.isNamedSet,
showNoDataItems: set.showNoDataItems,
showSubTotals: set.showSubTotals,
type: set.type,
dataType: set.dataType,
showFilterIcon: set.showFilterIcon,
showSortIcon: set.showSortIcon,
showRemoveIcon: set.showRemoveIcon,
showValueTypeIcon: set.showValueTypeIcon,
showEditIcon: set.showEditIcon,
allowDragAndDrop: set.allowDragAndDrop,
expandAll: set.expandAll,
groupName: set.groupName
}));
}
return clonedCollection;
}
else {
return collection;
}
}
static cloneOlapFieldSettings(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push(this.getDefinedObj({
caption: set.caption,
hasChildren: set.hasChildren,
id: set.id,
isSelected: set.isSelected,
name: set.name,
spriteCssClass: set.spriteCssClass,
tag: set.tag,
type: set.type,
pid: set.pid,
expanded: set.expanded,
defaultHierarchy: set.defaultHierarchy,
hasAllMember: set.hasAllMember,
allMember: set.allMember,
isChecked: set.isChecked,
filterMembers: set.filterMembers,
formula: set.formula,
childMembers: set.childMembers,
searchMembers: set.searchMembers,
htmlAttributes: this.getDefinedObj(set.htmlAttributes),
currrentMembers: set.currrentMembers,
isHierarchy: set.isHierarchy,
isNamedSets: set.isNamedSets,
formatString: set.formatString,
actualFilter: set.actualFilter,
levels: set.levels,
levelCount: set.levelCount,
memberType: set.memberType,
fieldType: set.fieldType,
parentHierarchy: set.parentHierarchy
}));
}
return clonedCollection;
}
else {
return collection;
}
}
static cloneFilterSettings(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push(this.getDefinedObj({
name: set.name,
type: set.type,
condition: set.condition,
items: set.items ? [...set.items] : set.items,
levelCount: set.levelCount,
measure: set.measure,
selectedField: set.selectedField,
showDateFilter: set.showDateFilter,
showLabelFilter: set.showLabelFilter,
showNumberFilter: set.showNumberFilter,
value1: set.value1,
value2: set.value2
}));
}
return clonedCollection;
}
else {
return collection;
}
}
static cloneSortSettings(collection) {
if (collection) {
const clonedCollection = [];
for (const set of collection) {
clonedCollection.push(this.getDefinedObj({
name: set.name,
order: set.order,
membersOrder: set.membersOrder ? [...set.membersOrder] : set.membersOrder
}));
}
return clonedCollection;
}
else {
return collection;
}
}
/**
* It format the headers of pivot table.
*
* @param {IAxisSet} headerCell - It contains the header cell.
* @param {PivotEngine} engine - It contains the instance of pivot engine.
* @returns {IAxisSet} - It returns the formatted header data as IAxisSet.
* @hidden
*/
static getFormattedHeader(headerCell, engine) {
const clonedHeader = PivotUtil.frameHeaderWithKeys(headerCell);
if (clonedHeader.valueSort && clonedHeader.valueSort['axis']) {
const fieldName = clonedHeader.valueSort['axis'];
const isDateType = this.isDateField(fieldName, engine);
clonedHeader.formattedText = isDateType || !engine.formatFields[fieldName] || headerCell.isSum === true ?
clonedHeader.formattedText : engine.getFormattedValue(clonedHeader.actualText, fieldName).formattedText;
}
return clonedHeader;
}
/**
* It format the members of field.
*
* @param {IMembers} members - It contains the members.
* @param {string} fieldName - It contains the field Name.
* @param {PivotEngine} engine - It contains the instance of pivot engine.
* @returns {IMembers} - It returns the formatted members as IMembers.
* @hidden
*/
static getFormattedMembers(members, fieldName, engine) {
const isDateField = this.isDateField(fieldName, engine);
if (isDateField || engine.groupingFields[fieldName]) {
const fieldMembers = {};
const keys = Object.keys(members);
const dateMember = engine.fieldList[fieldName].dateMember;
for (let i = 0, j = keys.length; i < j; i++) {
const values = members[keys[i]];
if (isDateField) {
fieldMembers[values.caption] = values;
}
else {
const commonValue = dateMember[values.ordinal - 1].actualText;
fieldMembers[commonValue] = values;
}
}
return fieldMembers;
}
return members;
}
/**
* It determines whether the specified field is of date type.
*
* @param {string} fieldName - It contains the field Name.
* @param {PivotEngine} engineModule - It contains the instance of pivot engine.
* @returns {boolean} - It returns whether the field is of date type or not.
* @hidden
*/
static isDateField(fieldName, engineModule) {
return (engineModule.formatFields[fieldName] &&
(['date', 'dateTime', 'time'].indexOf(engineModule.formatFields[fieldName].type) > -1));
}
/**
* It format the headers of pivot chart.
*
* @param {string[]} values - It contains the headers.
* @param {PivotChart} chartModule - It contains the instance of pivot chart.
* @param {boolean} isColumnHeader - It determines whether the specified header is column or row.
* @param {IAxisSet} cell - It contains the cell information.
* @returns {string} - It returns the formatted header.
* @hidd