@syncfusion/ej2-grids
Version:
Feature-rich JavaScript datagrid (datatable) control with built-in support for editing, filtering, grouping, paging, sorting, and exporting to Excel.
1,367 lines (1,362 loc) • 2.73 MB
JavaScript
import { isNullOrUndefined, setCulture, Internationalization, Property, merge, extend as extend$1, attributes, removeClass, addClass, setValue, getValue, remove, updateBlazorTemplate, setStyleAttribute, Droppable, Draggable, closest, classList, createElement, blazorTemplates, resetBlazorTemplate, getEnumValue, EventHandler, Browser, formatUnit, ChildProperty, isUndefined, select, compile, Collection, L10n, Component, updateCSSText, append, KeyboardEvents, SanitizeHtmlHelper, Complex, Event as Event$1, NotifyPropertyChanges, defaultCurrencyCode, detach, print, selectAll, isObject, debounce, matches, initializeCSPTemplate } from '@syncfusion/ej2-base';
import { Query, DataUtil, DataManager, RemoteSaveAdaptor, Predicate as Predicate$1, Deferred, UrlAdaptor } from '@syncfusion/ej2-data';
import { Dialog, createSpinner, showSpinner, hideSpinner, Tooltip, calculateRelativeBasedPosition, calculatePosition } from '@syncfusion/ej2-popups';
import { Button, createCheckBox, RadioButton, CheckBox, Switch } from '@syncfusion/ej2-buttons';
import { Input, NumericTextBox, TextBox, FormValidator, MaskedTextBox } from '@syncfusion/ej2-inputs';
import { DropDownList, AutoComplete, MultiSelect, CheckBoxSelection, ComboBox } from '@syncfusion/ej2-dropdowns';
import { DatePicker, DateTimePicker, MaskedDateTime, TimePicker } from '@syncfusion/ej2-calendars';
import { ContextMenu as ContextMenu$1, Toolbar as Toolbar$1 } from '@syncfusion/ej2-navigations';
import { Workbook } from '@syncfusion/ej2-excel-export';
import { PdfPageSettings, PdfDocument, PdfGridLayoutFormat, PdfLayoutType, PdfLayoutBreakType, RectangleF, PdfPageOrientation, PdfGrid, PdfFontFamily, PdfColor, PdfStandardFont, PdfSolidBrush, PdfFontStyle, PdfTrueTypeFont, PdfBorders, PdfPen, PdfPaddings, PointF, SizeF, PdfPageTemplateElement, PdfStringFormat, PdfPageNumberField, PdfPageCountField, PdfCompositeField, PdfBitmap, PdfTextWebLink, PdfTextAlignment, PdfVerticalAlignment } from '@syncfusion/ej2-pdf-export';
/**
* ValueFormatter class to globalize the value.
*
* @hidden
*/
var ValueFormatter = /** @__PURE__ @class */ (function () {
function ValueFormatter(cultureName) {
this.intl = new Internationalization();
if (!isNullOrUndefined(cultureName)) {
this.intl.culture = cultureName;
}
}
ValueFormatter.prototype.getFormatFunction = function (format) {
if (!isNullOrUndefined(format) && (format.type === 'dateTime' || format.type === 'datetime' || format.type === 'date' || format.type === 'time')) {
return this.intl.getDateFormat(format);
}
else {
return this.intl.getNumberFormat(format);
}
};
ValueFormatter.prototype.getParserFunction = function (format) {
if (format.type) {
return this.intl.getDateParser(format);
}
else {
return this.intl.getNumberParser(format);
}
};
ValueFormatter.prototype.fromView = function (value, format, type) {
if ((type === 'date' || type === 'datetime' || type === 'number') && (!isNullOrUndefined(format))) {
return format(value);
}
else {
return value;
}
};
ValueFormatter.prototype.toView = function (value, format) {
var result = value;
if (!isNullOrUndefined(format) && !isNullOrUndefined(value)) {
result = format(value);
}
return result;
};
ValueFormatter.prototype.setCulture = function (cultureName) {
if (!isNullOrUndefined(cultureName)) {
setCulture(cultureName);
}
};
return ValueFormatter;
}());
var __extends = (undefined && undefined.__extends) || (function () {
var extendStatics = function (d, b) {
extendStatics = Object.setPrototypeOf ||
({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };
return extendStatics(d, b);
};
return function (d, b) {
extendStatics(d, b);
function __() { this.constructor = d; }
d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
};
})();
var __decorate = (undefined && undefined.__decorate) || function (decorators, target, key, desc) {
var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
return c > 3 && r && Object.defineProperty(target, key, r), r;
};
/**
* Represents Grid `Column` model class.
*/
var Column = /** @__PURE__ @class */ (function () {
function Column(options, parent) {
var _this = this;
/**
* If `disableHtmlEncode` is set to true, it encodes the HTML of the header and content cells.
*
* @default true
*/
this.disableHtmlEncode = true;
/**
* If `allowSorting` set to false, then it disables sorting option of a particular column.
* By default all columns are sortable.
*
* @default true
*/
this.allowSorting = true;
/**
* If `allowResizing` is set to false, it disables resize option of a particular column.
* By default all the columns can be resized.
*
* @default true
*/
this.allowResizing = true;
/**
* If `allowFiltering` set to false, then it disables filtering option and filter bar element of a particular column.
* By default all columns are filterable.
*
* @default true
*/
this.allowFiltering = true;
/**
* If `allowGrouping` set to false, then it disables grouping of a particular column.
* By default all columns are groupable.
*
* @default true
*/
this.allowGrouping = true;
/**
* If `allowReordering` set to false, then it disables reorder of a particular column.
* By default all columns can be reorder.
*
* @default true
*/
this.allowReordering = true;
/**
* If `showColumnMenu` set to false, then it disable the column menu of a particular column.
* By default column menu will show for all columns
*
* @default true
*/
this.showColumnMenu = true;
/**
* If `enableGroupByFormat` set to true, then it groups the particular column by formatted values.
*
* @default true
*/
this.enableGroupByFormat = false;
/**
* If `allowEditing` set to false, then it disables editing of a particular column.
* By default all columns are editable.
*
* @default true
*/
this.allowEditing = true;
/**
* It is used to customize the default filter options for a specific columns.
* * type - Specifies the filter type as menu or checkbox.
* * ui - to render custom component for specific column it has following functions.
* * ui.create – It is used for creating custom components.
* * ui.read - It is used for read the value from the component.
* * ui.write - It is used to apply component model as dynamically.
* {% codeBlock src="grid/filter-menu-api/index.ts" %}{% endcodeBlock %}
*
* > Check the [`Filter UI`](../../grid/filtering/filter-menu/#custom-component-in-filter-menu) for its customization.
*
* @default {}
*/
this.filter = {};
/**
* If `showInColumnChooser` set to false, then hide the particular column in column chooser.
* By default all columns are displayed in column Chooser.
*
* @default true
*/
this.showInColumnChooser = true;
/**
* Defines the `IEditCell` object to customize default edit cell.
*
* @default {}
*/
this.edit = {};
/**
* If `allowSearching` set to false, then it disables Searching of a particular column.
* By default all columns allow Searching.
*
* @default true
*/
this.allowSearching = true;
/**
* If `autoFit` set to true, then the particular column content width will be
* adjusted based on its content in the initial rendering itself.
* Setting this property as true is equivalent to calling `autoFitColumns` method in the `dataBound` event.
*
* @default false
*/
this.autoFit = false;
this.sortDirection = 'Descending';
/**
* @returns {Function} returns the edit template
* @hidden */
this.getEditTemplate = function () { return _this.editTemplateFn; };
/**
* @returns {Function} returns the filter template
* @hidden */
this.getFilterTemplate = function () { return _this.filterTemplateFn; };
/**
* Determines the behavior of the `aria-label` attribute for cells in template columns.
* If enableAriaLabel is set to false, the aria-label attribute is not applied to template column cells, which affects screen reader accessibility.
*
* @default {}
*/
this.templateOptions = { enableAriaLabel: true };
merge(this, options);
this.parent = parent;
if (this.type === 'none') {
this.type = null;
}
else if (this.type) {
this.type = typeof (this.type) === 'string' ? this.type.toLowerCase() : undefined;
}
if (this.editType) {
this.editType = this.editType.toLowerCase();
}
if (isNullOrUndefined(this.uid)) {
this.uid = getUid('grid-column');
}
var valueFormatter = new ValueFormatter();
if (options.format && (options.format.skeleton || (options.format.format &&
typeof options.format.format === 'string'))) {
this.setFormatter(valueFormatter.getFormatFunction(extend$1({}, options.format)));
this.setParser(valueFormatter.getParserFunction(options.format));
}
this.toJSON = function () {
var col = {};
var skip = ['filter', 'dataSource', 'headerText', 'template', 'headerTemplate', 'edit',
'editTemplate', 'filterTemplate', 'commandsTemplate', 'parent'];
var keys = Object.keys(_this);
for (var i = 0; i < keys.length; i++) {
if (keys[parseInt(i.toString(), 10)] === 'columns') {
col[keys[parseInt(i.toString(), 10)]] = [];
for (var j = 0; j < _this[keys[parseInt(i.toString(), 10)]].length; j++) {
col[keys[parseInt(i.toString(), 10)]].push(_this[keys[parseInt(i.toString(), 10)]][parseInt(j.toString(), 10)].toJSON());
}
}
else if (skip.indexOf(keys[parseInt(i.toString(), 10)]) < 0) {
col[keys[parseInt(i.toString(), 10)]] = _this[keys[parseInt(i.toString(), 10)]];
}
}
return col;
};
if (!this.field) {
this.allowFiltering = false;
this.allowGrouping = false;
this.allowSorting = false;
if (this.columns) {
this.allowResizing = this.columns.some(function (col) {
return col.allowResizing;
});
}
}
if (this.commands && !this.textAlign) {
this.textAlign = 'Right';
}
if (this.template || this.commandsTemplate) {
this.templateFn = templateCompiler(this.template || this.commandsTemplate);
}
if (this.headerTemplate) {
this.headerTemplateFn = templateCompiler(this.headerTemplate);
}
if (!isNullOrUndefined(this.filter) && this.filter.itemTemplate) {
this.fltrTemplateFn = templateCompiler(this.filter.itemTemplate);
}
if (this.editTemplate) {
this.editTemplateFn = templateCompiler(this.editTemplate);
}
if (this.filterTemplate) {
this.filterTemplateFn = templateCompiler(this.filterTemplate);
}
if (this.isForeignColumn() &&
(isNullOrUndefined(this.editType) || this.editType === 'dropdownedit' || this.editType === 'defaultedit')) {
this.editType = 'dropdownedit';
if (this.edit.params && this.edit.params.dataSource) {
this.edit.params.ddEditedData = true;
}
this.edit.params = extend$1({
dataSource: this.dataSource,
query: new Query(), fields: { value: this.foreignKeyField || this.field, text: this.foreignKeyValue }
}, this.edit.params);
}
if (this.sortComparer) {
var a_1 = this.sortComparer;
this.sortComparer = function (x, y, xObj, yObj) {
if (typeof a_1 === 'string') {
a_1 = getObject(a_1, window);
}
if (_this.sortDirection === 'Descending') {
var z = x;
x = y;
y = z;
var obj = xObj;
xObj = yObj;
yObj = obj;
}
return a_1(x, y, xObj, yObj);
};
}
if (!this.sortComparer && this.isForeignColumn()) {
this.sortComparer = function (x, y) {
x = getObject(_this.foreignKeyValue, getForeignData(_this, {}, x)[0]);
y = getObject(_this.foreignKeyValue, getForeignData(_this, {}, y)[0]);
return _this.sortDirection === 'Descending' ? DataUtil.fnDescending(x, y) : DataUtil.fnAscending(x, y);
};
}
}
/**
* @returns {string} returns the sort direction
* @hidden */
Column.prototype.getSortDirection = function () {
return this.sortDirection;
};
/**
* @param {string} direction - specifies the direction
* @returns {void}
* @hidden
*/
Column.prototype.setSortDirection = function (direction) {
this.sortDirection = direction;
};
/**
* @returns {freezeTable} returns the FreezeTable
* @hidden */
Column.prototype.getFreezeTableName = function () {
return this.freezeTable;
};
/**
* @param {Column} column - specifies the column
* @returns {void}
* @hidden
*/
Column.prototype.setProperties = function (column) {
//Angular two way binding
var keys = Object.keys(column);
var _loop_1 = function (i) {
if (keys[parseInt(i.toString(), 10)] === 'columns') {
var cols_1 = column[keys[parseInt(i.toString(), 10)]];
var _loop_2 = function (j) {
this_1.columns.find(function (col) {
return col.field === cols_1[parseInt(j.toString(), 10)]
.field;
}).setProperties(cols_1[parseInt(j.toString(), 10)]);
};
for (var j = 0; j < cols_1.length; j++) {
_loop_2(j);
}
}
else {
this_1[keys[parseInt(i.toString(), 10)]] = column[keys[parseInt(i.toString(), 10)]];
}
//Refresh the react columnTemplates on state change
if (this_1.parent && this_1.parent.isReact) {
if (keys[parseInt(i.toString(), 10)] === 'template') {
this_1.templateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);
this_1.parent.refreshReactColumnTemplateByUid(this_1.uid, true);
}
else if (keys[parseInt(i.toString(), 10)] === 'headerTemplate') {
this_1.headerTemplateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);
this_1.parent.refreshReactHeaderTemplateByUid(this_1.uid);
}
else if (keys[parseInt(i.toString(), 10)] === 'editTemplate') {
this_1.editTemplateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);
}
else if (keys[parseInt(i.toString(), 10)] === 'filterTemplate') {
this_1.filterTemplateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);
}
else if (keys[parseInt(i.toString(), 10)] === 'commandsTemplate') {
this_1.templateFn = templateCompiler(column[keys[parseInt(i.toString(), 10)]]);
}
}
};
var this_1 = this;
for (var i = 0; i < keys.length; i++) {
_loop_1(i);
}
};
/**
* @returns {boolean} returns true for foreign column
* @hidden
* It defines the column is foreign key column or not.
*/
Column.prototype.isForeignColumn = function () {
return !!(this.dataSource && this.foreignKeyValue);
};
/**
* @returns {Function} returns the function
* @hidden
*/
Column.prototype.getFormatter = function () {
return this.formatFn;
};
/**
* @param {Function} value - specifies the value
* @returns {void}
* @hidden
*/
Column.prototype.setFormatter = function (value) {
this.formatFn = value;
};
/**
* @returns {Function} returns the function
* @hidden */
Column.prototype.getParser = function () {
return this.parserFn;
};
/**
* @param {Function} value - specifies the value
* @returns {void}
* @hidden
*/
Column.prototype.setParser = function (value) {
this.parserFn = value;
};
/**
* @returns {Function} returns the function
* @hidden */
Column.prototype.getColumnTemplate = function () {
return this.templateFn;
};
/**
* @returns {Function} returns the function
* @hidden */
Column.prototype.getHeaderTemplate = function () {
return this.headerTemplateFn;
};
/**
* @returns {Function} returns the function
* @hidden */
Column.prototype.getFilterItemTemplate = function () {
return this.fltrTemplateFn;
};
/**
* @returns {string} returns the string
* @hidden */
Column.prototype.getDomSetter = function () {
return this.disableHtmlEncode ? 'textContent' : 'innerHTML';
};
return Column;
}());
/**
* Define options for custom command buttons.
*/
var CommandColumnModel = /** @__PURE__ @class */ (function () {
function CommandColumnModel() {
}
__decorate([
Property()
], CommandColumnModel.prototype, "title", void 0);
__decorate([
Property()
], CommandColumnModel.prototype, "type", void 0);
__decorate([
Property()
], CommandColumnModel.prototype, "buttonOption", void 0);
return CommandColumnModel;
}());
/**
* Defines Grid column
*/
var GridColumn = /** @__PURE__ @class */ (function (_super) {
__extends(GridColumn, _super);
function GridColumn() {
return _super !== null && _super.apply(this, arguments) || this;
}
__decorate([
Property(null)
], GridColumn.prototype, "columns", void 0);
return GridColumn;
}(Column));
/**
* Defines stacked grid column
*/
var StackedColumn = /** @__PURE__ @class */ (function (_super) {
__extends(StackedColumn, _super);
function StackedColumn() {
return _super !== null && _super.apply(this, arguments) || this;
}
return StackedColumn;
}(GridColumn));
/** @hidden */
var created = 'create';
/** @hidden */
var destroyed = 'destroy';
/** @hidden */
var load = 'load';
/** @hidden */
var rowDataBound = 'rowDataBound';
/** @hidden */
var queryCellInfo = 'queryCellInfo';
/** @hidden */
var headerCellInfo = 'headerCellInfo';
/** @hidden */
var actionBegin = 'actionBegin';
/** @hidden */
var actionComplete = 'actionComplete';
/** @hidden */
var actionFailure = 'actionFailure';
/** @hidden */
var dataBound = 'dataBound';
/** @hidden */
var rowSelecting = 'rowSelecting';
/** @hidden */
var rowSelected = 'rowSelected';
/** @hidden */
var rowDeselecting = 'rowDeselecting';
/** @hidden */
var rowDeselected = 'rowDeselected';
/** @hidden */
var cellSelecting = 'cellSelecting';
/** @hidden */
var cellSelected = 'cellSelected';
/** @hidden */
var cellDeselecting = 'cellDeselecting';
/** @hidden */
var cellDeselected = 'cellDeselected';
/** @hidden */
var columnSelecting = 'columnSelecting';
/** @hidden */
var columnSelected = 'columnSelected';
/** @hidden */
var columnDeselecting = 'columnDeselecting';
/** @hidden */
var columnDeselected = 'columnDeselected';
/** @hidden */
var columnDragStart = 'columnDragStart';
/** @hidden */
var columnDrag = 'columnDrag';
/** @hidden */
var columnDrop = 'columnDrop';
/** @hidden */
var rowDragStartHelper = 'rowDragStartHelper';
/** @hidden */
var rowDragStart = 'rowDragStart';
/** @hidden */
var rowDrag = 'rowDrag';
/** @hidden */
var rowDrop = 'rowDrop';
/** @hidden */
var beforePrint = 'beforePrint';
/** @hidden */
var printComplete = 'printComplete';
/** @hidden */
var detailDataBound = 'detailDataBound';
/** @hidden */
var toolbarClick = 'toolbarClick';
/** @hidden */
var batchAdd = 'batchAdd';
/** @hidden */
var batchCancel = 'batchCancel';
/** @hidden */
var batchDelete = 'batchDelete';
/** @hidden */
var beforeBatchAdd = 'beforeBatchAdd';
/** @hidden */
var beforeBatchDelete = 'beforeBatchDelete';
/** @hidden */
var beforeBatchSave = 'beforeBatchSave';
/** @hidden */
var beginEdit = 'beginEdit';
/** @hidden */
var cellEdit = 'cellEdit';
/** @hidden */
var cellSave = 'cellSave';
/** @hidden */
var cellSaved = 'cellSaved';
/** @hidden */
var endAdd = 'endAdd';
/** @hidden */
var endDelete = 'endDelete';
/** @hidden */
var endEdit = 'endEdit';
/** @hidden */
var recordDoubleClick = 'recordDoubleClick';
/** @hidden */
var recordClick = 'recordClick';
/** @hidden */
var beforeDataBound = 'beforeDataBound';
/** @hidden */
var beforeOpenColumnChooser = 'beforeOpenColumnChooser';
/** @hidden */
var beforeOpenAdaptiveDialog = 'beforeOpenAdaptiveDialog';
/** @hidden */
var resizeStart = 'resizeStart';
/** @hidden */
var onResize = 'resizing';
/** @hidden */
var resizeStop = 'resizeStop';
/** @hidden */
var checkBoxChange = 'checkBoxChange';
/** @hidden */
var beforeCopy = 'beforeCopy';
/** @hidden */
var beforePaste = 'beforePaste';
/** @hidden */
var beforeAutoFill = 'beforeAutoFill';
/** @hidden */
var filterChoiceRequest = 'filterchoicerequest';
/** @hidden */
var filterAfterOpen = 'filterAfterOpen';
/** @hidden */
var filterBeforeOpen = 'filterBeforeOpen';
/** @hidden */
var filterSearchBegin = 'filterSearchBegin';
/** @hidden */
var commandClick = 'commandClick';
/** @hidden */
var exportGroupCaption = 'exportGroupCaption';
/** @hidden */
var lazyLoadGroupExpand = 'lazyLoadGroupExpand';
/** @hidden */
var lazyLoadGroupCollapse = 'lazyLoadGroupCollapse';
/**
* Specifies grid internal events
*/
/** @hidden */
var initialLoad = 'initial-load';
/** @hidden */
var initialEnd = 'initial-end';
/** @hidden */
var dataReady = 'data-ready';
/** @hidden */
var contentReady = 'content-ready';
/** @hidden */
var uiUpdate = 'ui-update';
/** @hidden */
var onEmpty = 'on-empty';
/** @hidden */
var inBoundModelChanged = 'inbound-model-changed';
/** @hidden */
var modelChanged = 'model-changed';
/** @hidden */
var colGroupRefresh = 'colgroup-refresh';
/** @hidden */
var headerRefreshed = 'header-refreshed';
/** @hidden */
var pageBegin = 'paging-begin';
/** @hidden */
var pageComplete = 'paging-complete';
/** @hidden */
var sortBegin = 'sorting-begin';
/** @hidden */
var sortComplete = 'sorting-complete';
/** @hidden */
var filterBegin = 'filtering-begin';
/** @hidden */
var filterComplete = 'filtering-complete';
/** @hidden */
var searchBegin = 'searching-begin';
/** @hidden */
var searchComplete = 'searching-complete';
/** @hidden */
var reorderBegin = 'reorder-begin';
/** @hidden */
var reorderComplete = 'reorder-complete';
/** @hidden */
var rowDragAndDropBegin = 'rowdraganddrop-begin';
/** @hidden */
var rowDragAndDropComplete = 'rowdraganddrop-complete';
/** @hidden */
var groupBegin = 'grouping-begin';
/** @hidden */
var groupComplete = 'grouping-complete';
/** @hidden */
var ungroupBegin = 'ungrouping-begin';
/** @hidden */
var ungroupComplete = 'ungrouping-complete';
/** @hidden */
var groupAggregates = 'group-aggregates';
/** @hidden */
var refreshFooterRenderer = 'refresh-footer-rendered';
/** @hidden */
var refreshAggregateCell = 'refresh-aggregate-cell';
/** @hidden */
var refreshAggregates = 'refresh-aggregates';
/** @hidden */
var rowSelectionBegin = 'rowselecting';
/** @hidden */
var rowSelectionComplete = 'rowselected';
/** @hidden */
var columnSelectionBegin = 'columnselecting';
/** @hidden */
var columnSelectionComplete = 'columnselected';
/** @hidden */
var cellSelectionBegin = 'cellselecting';
/** @hidden */
var cellSelectionComplete = 'cellselected';
/** @hidden */
var destroyAutoFillElements = 'destroy-autofill-elements';
/** @hidden */
var beforeCellFocused = 'beforecellfocused';
/** @hidden */
var cellFocused = 'cellfocused';
/** @hidden */
var keyPressed = 'key-pressed';
/** @hidden */
var click = 'click';
/** @hidden */
var destroy = 'destroy';
/** @hidden */
var columnVisibilityChanged = 'column-visible-changed';
/** @hidden */
var scroll = 'scroll';
/** @hidden */
var columnWidthChanged = 'column-width-changed';
/** @hidden */
var columnPositionChanged = 'column-position-changed';
/** @hidden */
var rowDragAndDrop = 'row-drag-and-drop';
/** @hidden */
var rowsAdded = 'rows-added';
/** @hidden */
var rowsRemoved = 'rows-removed';
/** @hidden */
var columnDragStop = 'column-drag-stop';
/** @hidden */
var headerDrop = 'header-drop';
/** @hidden */
var dataSourceModified = 'datasource-modified';
/** @hidden */
var refreshComplete = 'refresh-complete';
/** @hidden */
var refreshVirtualBlock = 'refresh-virtual-block';
/** @hidden */
var dblclick = 'dblclick';
/** @hidden */
var toolbarRefresh = 'toolbar-refresh';
/** @hidden */
var bulkSave = 'bulk-save';
/** @hidden */
var autoCol = 'auto-col';
/** @hidden */
var tooltipDestroy = 'tooltip-destroy';
/** @hidden */
var updateData = 'update-data';
/** @hidden */
var editBegin = 'edit-begin';
/** @hidden */
var editComplete = 'edit-complete';
/** @hidden */
var addBegin = 'add-begin';
/** @hidden */
var addComplete = 'add-complete';
/** @hidden */
var saveComplete = 'save-complete';
/** @hidden */
var deleteBegin = 'delete-begin';
/** @hidden */
var deleteComplete = 'delete-complete';
/** @hidden */
var preventBatch = 'prevent-batch';
/** @hidden */
var dialogDestroy = 'dialog-destroy';
/** @hidden */
var crudAction = 'crud-Action';
/** @hidden */
var addDeleteAction = 'add-delete-Action';
/** @hidden */
var destroyForm = 'destroy-form';
/** @hidden */
var doubleTap = 'double-tap';
/** @hidden */
var beforeExcelExport = 'beforeExcelExport';
/** @hidden */
var excelExportComplete = 'excelExportComplete';
/** @hidden */
var excelQueryCellInfo = 'excelQueryCellInfo';
/** @hidden */
var excelHeaderQueryCellInfo = 'excelHeaderQueryCellInfo';
/** @hidden */
var exportDetailDataBound = 'exportDetailDataBound';
/** @hidden */
var exportDetailTemplate = 'exportDetailTemplate';
/** @hidden */
var beforePdfExport = 'beforePdfExport';
/** @hidden */
var pdfExportComplete = 'pdfExportComplete';
/** @hidden */
var pdfQueryCellInfo = 'pdfQueryCellInfo';
/** @hidden */
var pdfHeaderQueryCellInfo = 'pdfHeaderQueryCellInfo';
/** @hidden */
var accessPredicate = 'access-predicate';
/** @hidden */
var contextMenuClick = 'contextMenuClick';
/** @hidden */
var freezeRender = 'freezerender';
/** @hidden */
var freezeRefresh = 'freezerefresh';
/** @hidden */
var contextMenuOpen = 'contextMenuOpen';
/** @hidden */
var columnMenuClick = 'columnMenuClick';
/** @hidden */
var columnMenuOpen = 'columnMenuOpen';
/** @hidden */
var filterOpen = 'filterOpen';
/** @hidden */
var filterDialogCreated = 'filterDialogCreated';
/** @hidden */
var filterMenuClose = 'filter-menu-close';
/** @hidden */
var initForeignKeyColumn = 'initForeignKeyColumn';
/** @hidden */
var getForeignKeyData = 'getForeignKeyData';
/** @hidden */
var generateQuery = 'generateQuery';
/** @hidden */
var showEmptyGrid = 'showEmptyGrid';
/** @hidden */
var foreignKeyData = 'foreignKeyData';
/** @hidden */
var columnDataStateChange = 'columnDataStateChange';
/** @hidden */
var dataStateChange = 'dataStateChange';
/** @hidden */
var dataSourceChanged = 'dataSourceChanged';
/** @hidden */
var rtlUpdated = 'rtl-updated';
/** @hidden */
var beforeFragAppend = 'beforeFragAppend';
/** @hidden */
var frozenHeight = 'frozenHeight';
/** @hidden */
var textWrapRefresh = 'textWrapRefresh';
/** @hidden */
var recordAdded = 'recordAdded';
/** @hidden */
var cancelBegin = 'cancel-Begin';
/** @hidden */
var editNextValCell = 'editNextValCell';
/** @hidden */
var hierarchyPrint = 'hierarchyprint';
/** @hidden */
var expandChildGrid = 'expandchildgrid';
/** @hidden */
var printGridInit = 'printGrid-Init';
/** @hidden */
var exportRowDataBound = 'export-RowDataBound';
/** @hidden */
var exportDataBound = 'export-DataBound';
/** @hidden */
var rowPositionChanged = 'row-position-changed';
/** @hidden */
var columnChooserOpened = 'columnChooserOpened';
/** @hidden */
var batchForm = 'batchedit-form';
/** @hidden */
var beforeStartEdit = 'edit-form';
/** @hidden */
var beforeBatchCancel = 'before-batch-cancel';
/** @hidden */
var batchEditFormRendered = 'batcheditform-rendered';
/** @hidden */
var partialRefresh = 'partial-refresh';
/** @hidden */
var beforeCustomFilterOpen = 'beforeCustomFilterOpen';
/** @hidden */
var selectVirtualRow = 'select-virtual-Row';
/** @hidden */
var columnsPrepared = 'columns-prepared';
/** @hidden */
var cBoxFltrBegin = 'cbox-filter-begin';
/** @hidden */
var cBoxFltrComplete = 'cbox-filter-complete';
/** @hidden */
var fltrPrevent = 'filter-Prevent';
/** @hidden */
var beforeFltrcMenuOpen = 'before-filter-cmenu-open';
/** @hidden */
var valCustomPlacement = 'validation-custom-placement';
/** @hidden */
var filterCboxValue = 'filter-cbox-value';
/** @hidden */
var componentRendered = 'component-rendered';
/** @hidden */
var restoreFocus = 'restore-Focus';
/** @hidden */
var detailStateChange = 'detail-state-change';
/** @hidden */
var detailIndentCellInfo = 'detail-indentcell-info';
/** @hidden */
var virtaulKeyHandler = 'virtaul-key-handler';
/** @hidden */
var virtaulCellFocus = 'virtaul-cell-focus';
/** @hidden */
var virtualScrollEditActionBegin = 'virtual-scroll-edit-action-begin';
/** @hidden */
var virtualScrollEditSuccess = 'virtual-scroll-edit-success';
/** @hidden */
var virtualScrollEditCancel = 'virtual-scroll-edit-cancel';
/** @hidden */
var virtualScrollEdit = 'virtual-scroll-edit';
/** @hidden */
var refreshVirtualCache = 'refresh-virtual-cache';
/** @hidden */
var editReset = 'edit-reset';
/** @hidden */
var virtualScrollAddActionBegin = 'virtual-scroll-add-action-begin';
/** @hidden */
var getVirtualData = 'get-virtual-data';
/** @hidden */
var refreshInfiniteModeBlocks = 'refresh-infinite-mode-blocks';
/** @hidden */
var resetInfiniteBlocks = 'reset-infinite-blocks';
/** @hidden */
var infiniteScrollHandler = 'infinite-scroll-handler';
/** @hidden */
var infinitePageQuery = 'infinite-page-query';
/** @hidden */
var infiniteShowHide = 'infinite-show-hide';
/** @hidden */
var appendInfiniteContent = 'append-infinite-content';
/** @hidden */
var removeInfiniteRows = 'remove-infinite-rows';
/** @hidden */
var setInfiniteCache = 'set-infinite-cache';
/** @hidden */
var infiniteEditHandler = 'infinite-edit-handler';
/** @hidden */
var initialCollapse = 'initial-collapse';
/** @hidden */
var getAggregateQuery = 'get-aggregate-query';
/** @hidden */
var closeFilterDialog = 'close-filter-dialog';
/** @hidden */
var columnChooserCancelBtnClick = 'columnChooserCancelBtnClick';
/** @hidden */
var getFilterBarOperator = 'get-filterbar-operator';
/** @hidden */
var resetColumns = 'reset-columns';
/** @hidden */
var pdfAggregateQueryCellInfo = 'pdfAggregateQueryCellInfo';
/** @hidden */
var excelAggregateQueryCellInfo = 'excelAggregateQueryCellInfo';
/** @hidden */
var setGroupCache = 'group-cache';
/** @hidden */
var lazyLoadScrollHandler = 'lazy-load-scroll-handler';
/** @hidden */
var groupCollapse = 'group-collapse';
/** @hidden */
var beforeCheckboxRenderer = 'beforeCheckboxRenderer';
/** @hidden */
var refreshHandlers = 'refreshResizeHandlers';
/** @hidden */
var refreshFrozenColumns = 'refresh-frozen-columns';
/** @hidden */
var setReorderDestinationElement = 'set-reorder-destination-element';
/** @hidden */
var refreshVirtualFrozenHeight = 'refresh-virtual-frozen-height';
/** @hidden */
var setFreezeSelection = 'set-freeze-selection';
/** @hidden */
var setInfiniteFrozenHeight = 'set-infinite-frozen-height';
/** @hidden */
var setInfiniteColFrozenHeight = 'set-infinite-col-frozen-height';
/** @hidden */
var beforeRefreshOnDataChange = 'before-refresh-on-data-change';
/** @hidden */
var immutableBatchCancel = 'immutable-batch-cancel';
/** @hidden */
var refreshVirtualFrozenRows = 'refresh-virtual-frozenrows';
/** @hidden */
var checkScrollReset = 'check-scroll-reset';
/** @hidden */
var refreshFrozenHeight = 'refresh-frozen-height';
/** @hidden */
var setHeightToFrozenElement = 'set-height-to-frozen-element';
/** @hidden */
var preventFrozenScrollRefresh = 'prevent-frozen-scroll-refresh';
/** @hidden */
var nextCellIndex = 'next-cell-index';
/** @hidden */
var refreshInfiniteCurrentViewData = 'refresh-infinite-current-view-data';
/** @hidden */
var infiniteCrudCancel = 'infinite-crud-cancel';
/** @hidden */
var filterDialogClose = 'filter-dialog-close';
/** @hidden */
var refreshCustomFilterOkBtn = 'refresh-cutsom-filter-ok-button';
/** @hidden */
var refreshCustomFilterClearBtn = 'refresh-cutsom-filter-clear-button';
/** @hidden */
var renderResponsiveCmenu = 'render-responsive-cmenu';
/** @hidden */
var filterCmenuSelect = 'filter-cmenu-select';
/** @hidden */
var customFilterClose = 'custom-filter-close';
/** @hidden */
var setFullScreenDialog = 'set-fullscreen-dialog';
/** @hidden */
var refreshExpandandCollapse = 'refresh-Expand-and-Collapse';
/** @hidden */
var rowModeChange = 'row-mode-change';
/** @hidden */
var enterKeyHandler = 'enter-key-handler';
/** @hidden */
var refreshVirtualMaxPage = 'refresh-virtual-max-page';
/** @hidden */
var setVirtualPageQuery = 'set-virtual-page-query';
/** @hidden */
var selectRowOnContextOpen = 'select-row-on-context-open';
/** @hidden */
var pagerRefresh = 'pager-refresh';
/** @hidden */
var closeInline = 'closeinline';
/** @hidden */
var closeBatch = 'closebatch';
/** @hidden */
var closeEdit = 'close-edit';
/** @hidden */
var resetVirtualFocus = 'reset-virtual-focus';
/** @hidden */
var afterContentRender = 'after-content-renderer';
/** @hidden */
var refreshVirtualEditFormCells = 'refresh-virtual-editform-cells';
/** @hidden */
var scrollToEdit = 'scroll-to-edit';
/** @hidden */
var beforeCheckboxRendererQuery = 'before-checkbox-renderer-query';
/** @hidden */
var createVirtualValidationForm = 'create-virtual-validation-form';
/** @hidden */
var validateVirtualForm = 'validate-virtual-form';
/** @hidden */
var destroyChildGrid = 'destroy-child-grid';
/** @hidden */
var stickyScrollComplete = 'sticky-scroll-complete';
/** @hidden */
var captionActionComplete = 'infinite-group-collapse';
/** @hidden */
var refreshInfinitePersistSelection = 'refresh-infinite-persist-selection';
/** @hidden */
var refreshInfiniteEditrowindex = 'refresh-infinite-editrowindex';
/** @hidden */
var afterFilterColumnMenuClose = 'after-filter-column-menu-close';
/** @hidden */
var beforeCheckboxfilterRenderer = 'beforeCheckboxfilterRenderer';
/** @hidden */
var commandColumnDestroy = 'commandColumnDestroy';
/** @hidden */
var batchCnfrmDlgCancel = 'cancelcnfrmDlg';
/** @hidden */
var refreshVirtualLazyLoadCache = 'refresh-Virtual-LazyLoad-Cache';
/** @hidden */
var refreshFrozenPosition = 'refresh-Frozen-Position';
/** @hidden */
var refreshResizePosition = 'refresh-Resize-Position';
/** @hidden */
var refreshSplitFrozenColumn = 'refresh-Split-Frozen-Column';
/** @hidden */
var renderResponsiveChangeAction = 'render-Responsive-Change-Action';
/** @hidden */
var renderResponsiveColumnChooserDiv = 'render-Responsive-Column-Chooser-Div';
/** @hidden */
var showAddNewRowFocus = 'show-Add-New-Row-Focus';
/** @hidden */
var infiniteScrollComplete = 'infinitescroll-complete';
/** @hidden */
var lastRowCellBorderUpdated = 'last-rowcell-border-updated';
/** @hidden */
var columnChooserSearch = 'columnChooserSearch';
/** @hidden */
var columnChooserClose = 'columnChooserClose';
/** @hidden */
var columnChooserUpdate = 'columnChooserUpdate';
/** @hidden */
var destroyEditForm = 'destroy-edit-form';
/** @hidden */
var beforeDetailTemplateDetach = 'beforeDetailTemplateDetach';
/** @hidden */
var detachDetailTemplate = 'detach-detail-template';
/**
* Defines types of Cell
*
* @hidden
*/
var CellType;
(function (CellType) {
/** Defines CellType as Data */
CellType[CellType["Data"] = 0] = "Data";
/** Defines CellType as Header */
CellType[CellType["Header"] = 1] = "Header";
/** Defines CellType as Summary */
CellType[CellType["Summary"] = 2] = "Summary";
/** Defines CellType as GroupSummary */
CellType[CellType["GroupSummary"] = 3] = "GroupSummary";
/** Defines CellType as CaptionSummary */
CellType[CellType["CaptionSummary"] = 4] = "CaptionSummary";
/** Defines CellType as Filter */
CellType[CellType["Filter"] = 5] = "Filter";
/** Defines CellType as Indent */
CellType[CellType["Indent"] = 6] = "Indent";
/** Defines CellType as GroupCaption */
CellType[CellType["GroupCaption"] = 7] = "GroupCaption";
/** Defines CellType as GroupCaptionEmpty */
CellType[CellType["GroupCaptionEmpty"] = 8] = "GroupCaptionEmpty";
/** Defines CellType as Expand */
CellType[CellType["Expand"] = 9] = "Expand";
/** Defines CellType as HeaderIndent */
CellType[CellType["HeaderIndent"] = 10] = "HeaderIndent";
/** Defines CellType as StackedHeader */
CellType[CellType["StackedHeader"] = 11] = "StackedHeader";
/** Defines CellType as DetailHeader */
CellType[CellType["DetailHeader"] = 12] = "DetailHeader";
/** Defines CellType as DetailExpand */
CellType[CellType["DetailExpand"] = 13] = "DetailExpand";
/** Defines CellType as CommandColumn */
CellType[CellType["CommandColumn"] = 14] = "CommandColumn";
/** Defines CellType as DetailFooterIntent */
CellType[CellType["DetailFooterIntent"] = 15] = "DetailFooterIntent";
/** Defines CellType as RowDrag */
CellType[CellType["RowDragIcon"] = 16] = "RowDragIcon";
/** Defines CellType as RowDragHeader */
CellType[CellType["RowDragHIcon"] = 17] = "RowDragHIcon";
})(CellType || (CellType = {}));
/**
* Defines types of Render
*
* @hidden
*/
var RenderType;
(function (RenderType) {
/** Defines RenderType as Header */
RenderType[RenderType["Header"] = 0] = "Header";
/** Defines RenderType as Content */
RenderType[RenderType["Content"] = 1] = "Content";
/** Defines RenderType as Summary */
RenderType[RenderType["Summary"] = 2] = "Summary";
})(RenderType || (RenderType = {}));
/**
* Defines Predefined toolbar items.
*
* @hidden
*/
var ToolbarItem;
(function (ToolbarItem) {
ToolbarItem[ToolbarItem["Add"] = 0] = "Add";
ToolbarItem[ToolbarItem["Edit"] = 1] = "Edit";
ToolbarItem[ToolbarItem["Update"] = 2] = "Update";
ToolbarItem[ToolbarItem["Delete"] = 3] = "Delete";
ToolbarItem[ToolbarItem["Cancel"] = 4] = "Cancel";
ToolbarItem[ToolbarItem["Print"] = 5] = "Print";
ToolbarItem[ToolbarItem["Search"] = 6] = "Search";
ToolbarItem[ToolbarItem["ColumnChooser"] = 7] = "ColumnChooser";
ToolbarItem[ToolbarItem["PdfExport"] = 8] = "PdfExport";
ToolbarItem[ToolbarItem["ExcelExport"] = 9] = "ExcelExport";
ToolbarItem[ToolbarItem["CsvExport"] = 10] = "CsvExport";
ToolbarItem[ToolbarItem["WordExport"] = 11] = "WordExport";
})(ToolbarItem || (ToolbarItem = {}));
/**
* Defines types of responsive dialogs
*
* @hidden
*/
var ResponsiveDialogAction;
(function (ResponsiveDialogAction) {
/** Defines dialog type as Edit */
ResponsiveDialogAction[ResponsiveDialogAction["isEdit"] = 0] = "isEdit";
/** Defines dialog type as Add */
ResponsiveDialogAction[ResponsiveDialogAction["isAdd"] = 1] = "isAdd";
/** Defines dialog type as Sort */
ResponsiveDialogAction[ResponsiveDialogAction["isSort"] = 2] = "isSort";
/** Defines dialog type as Filter */
ResponsiveDialogAction[ResponsiveDialogAction["isFilter"] = 3] = "isFilter";
/** Defines dialog type as ColMenu */
ResponsiveDialogAction[ResponsiveDialogAction["isColMenu"] = 4] = "isColMenu";
/** Defines dialog type as ColumChooser */
ResponsiveDialogAction[ResponsiveDialogAction["isColumnChooser"] = 5] = "isColumnChooser";
})(ResponsiveDialogAction || (ResponsiveDialogAction = {}));
/**
* Defines responsive toolbar actions
*
* @hidden
*/
var ResponsiveToolbarAction;
(function (ResponsiveToolbarAction) {
/** Defines initial responsive toolbar buttons */
ResponsiveToolbarAction[ResponsiveToolbarAction["isInitial"] = 0] = "isInitial";
/** Defines responsive toolbar search */
ResponsiveToolbarAction[ResponsiveToolbarAction["isSearch"] = 1] = "isSearch";
})(ResponsiveToolbarAction || (ResponsiveToolbarAction = {}));
/**
* Grid data module is used to generate query and data source.
*
* @hidden
*/
var Data = /** @__PURE__ @class */ (function () {
/**
* Constructor for data module.
*
* @param {IGrid} parent - specifies the IGrid
* @param {ServiceLocator} serviceLocator - specifies the service locator
* @hidden
*/
function Data(parent, serviceLocator) {
this.dataState = { isPending: false, resolver: null, group: [] };
this.foreignKeyDataState = { isPending: false, resolver: null };
this.parent = parent;
this.serviceLocator = serviceLocator;
this.initDataManager();
if (this.parent.isDestroyed || this.getModuleName() === 'foreignKey') {
return;
}
this.parent.on(rowsAdded, this.addRows, this);
this.parent.on(rowPositionChanged, this.reorderRows, this);
this.parent.on(rowsRemoved, this.removeRows, this);
this.parent.on(dataSourceModified, this.initDataManager, this);
this.parent.on(destroy, this.destroy, this);
this.parent.on(updateData, this.crudActions, this);
this.parent.on(addDeleteAction, this.getData, this);
this.parent.on(autoCol, this.refreshFilteredCols, this);
this.parent.on(columnsPrepared, this.refreshFilteredCols, this);
}
Data.prototype.reorderRows = function (e) {
if (this.parent.getDataModule().isRemote()) {
this.parent.getCurrentViewRecords().splice(e.toIndex, 0, this.parent.getCurrentViewRecords().splice(e.fromIndex, 1)[0]);
}
else {
this.dataManager.dataSource.json.splice(e.toIndex, 0, this.dataManager.dataSource.json.splice(e.fromIndex, 1)[0]);
}
};
Data.prototype.getModuleName = function () {
return 'data';
};
/**
* The function used to initialize dataManager and external query
*
* @returns {void}
*/
Data.prototype.initDataManager = function () {
var gObj = this.parent;
this.dataManager = gObj.dataSource instanceof DataManager ? gObj.dataSource :
(isNullOrUndefined(gObj.dataSource) ? new DataManager() : new DataManager(gObj.dataSource));
if (gObj.isAngular && !(gObj.query instanceof Query)) {
gObj.setProperties({ query: new Query() }, true);
}
else {
this.isQueryInvokedFromData = true;
if (!(gObj.query instanceof Query)) {
gObj.query = new Query();
}
}
};
/**
* The function is used to generate updated Query from Grid model.
*
* @param {boolean} skipPage - specifies the boolean to skip the page
* @param {boolean} isAutoCompleteCall - specifies for auto complete call
* @returns {Query} returns the Query
* @hidden
*/
Data.prototype.generateQuery = function (skipPage, isAutoCompleteCall) {
var gObj = this.parent;
var query = !isNullOrUndefined(gObj.getQuery()) ? gObj.getQuery().clone() : new Query();
if (this.parent.columnQueryMode === 'ExcludeHidden') {
query.select(this.parent.getColumns().filter(function (column) { return !(column.isPrimaryKey !== true && column.visible === false || column.field === undefined); }).map(function (column) { return column.field; }));
}
else if (this.parent.columnQueryMode === 'Schema') {
var selectQueryFields = [];
var columns = this.parent.columns;
for (var i = 0; i < columns.length; i++) {
selectQueryFields.push(columns[parseInt(i.toString(), 10)].field);
}
query.select(selectQueryFields);
}
this.filterQuery(query);
this.searchQuery(query);
this.aggregateQuery(query);
this.sortQuery(query);
if (isGroupAdaptive(this.parent)) {
this.virtualGroupPageQuery(query);
}
else {
this.pageQuery(query, skipPage);
}
if (isNullOrUndefined(isAutoCompleteCall) || !isAutoCompleteCall) {
this.groupQuery(query);
}
return query;
};
/**
* @param {Query} query - specifies the query
* @returns {Query} - returns the query
* @hidden
*/
Data.prototype.aggregateQuery = function (query) {
var rows = this.parent.aggregates;
for (var i = 0; i < rows.length; i++) {
var row = rows[parseInt(i.toString(), 10)];
for (var j = 0; j < row.columns.length; j++) {
var cols = row.columns[parseInt(j.toString(), 10)];
var types = cols.type instanceof Array ? cols.type : [cols.type];
for (var k = 0; k < types.length; k++) {
query.aggregate(types[parseInt(k.toString(), 10)].toLowerCase(), cols.field);
}
}
}
return query;
};
Data.prototype.virtualGroupPageQuery = function (query) {
var fName = 'fn';
if (query.queries.length) {
for (var i = 0; i < query.queries.length; i++) {
if (query.queries[parseInt(i.toString(), 10)]["" + fName] === 'onPage') {
query.queries.splice(i, 1);
}
}
}
return query;
};
Data.prototype.pageQuery = function (query, skipPage) {
var gObj = this.parent;
var fName = 'fn';
var args = { query: query, skipPage: false };
gObj.notify(setVirtualPageQuery, args);
if (args.skipPage) {
return query;
}
if ((gObj.allowPaging || gObj.enableVirtualization || gObj.enableInfiniteScrolling) && skipPage !== true) {
gObj.pageSettings.currentPage = Math.max(1, gObj.pageSettings.currentPage);
if (gObj.pageSettings.pageCount <= 0) {
gObj.pageSettings.pageCount = 8;
}
if (gObj.pageSettings.pageSize <= 0) {
gObj.pageSettings.pageSize = 12;
}
if (query.queries.length) {
for (var i = 0; i < query.queries.length; i++) {
if (query.queries[parseInt(i.toString(), 10)]["" + fName] === 'onPage') {
query.queries.splice(i, 1);
}
}
}
if (!isNullOrUndefined(gObj.infiniteScrollModule) && gObj.enableInfiniteScrolling) {
this.parent.notify(infinitePageQuery, query);
}
else {
query.page(gObj.pageSettings.currentPage, gObj.allowPaging && gObj.pagerModule &&
(gObj.pagerModule.pagerObj.isAllPage && !gObj.isManualRefresh) &&
(!this.dataManager.dataSource.offline && !(this.dataManager.adaptor instanceof RemoteSaveAdaptor)) ?
null : gObj.pageSettings.pageSize);
}
}
return query;
};
Data.prototype.groupQuery = function (query) {
var gObj = this.parent;
if (gObj.allowGrouping && gObj.groupSettings.columns.length) {
if (this.parent.groupSettings.enableLazyLoading) {
query.lazyLoad.push({ key: 'isLazyLoad', value: this.parent.groupSettings.enableLazyLoading });
}
var columns = gObj.groupSettings.columns;
for (var i = 0, len = columns.length; i < len; i++) {
var column = this.getColumnByField(columns[parseInt(i.toString(), 10)]);
if (!column) {
this.parent.log('initial_action', { moduleName: 'group', columnName: columns[parseInt(i.toString(), 10)] });
}
var isGrpFmt = column.enableGroupByFormat;
var format = column.format;
if (isGrpFmt) {
query.group(columns[p