all files / treegrid/base/ data.js

93.46% Statements 572/612
91.01% Branches 486/534
89.13% Functions 41/46
93.8% Lines 560/597
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284 285 286 287 288 289 290 291 292 293 294 295 296 297 298 299 300 301 302 303 304 305 306 307 308 309 310 311 312 313 314 315 316 317 318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352 353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375 376 377 378 379 380 381 382 383 384 385 386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404 405 406 407 408 409 410 411 412 413 414 415 416 417 418 419 420 421 422 423 424 425 426 427 428 429 430 431 432 433 434 435 436 437 438 439 440 441 442 443 444 445 446 447 448 449 450 451 452 453 454 455 456 457 458 459 460 461 462 463 464 465 466 467 468 469 470 471 472 473 474 475 476 477 478 479 480 481 482 483 484 485 486 487 488 489 490 491 492 493 494 495 496 497 498 499 500 501 502 503 504 505 506 507 508 509 510 511 512 513 514 515 516 517 518 519 520 521 522 523 524 525 526 527 528 529 530 531 532 533 534 535 536 537 538 539 540 541 542 543 544 545 546 547 548 549 550 551 552 553 554 555 556 557 558 559 560 561 562 563 564 565 566 567 568 569 570 571 572 573 574 575 576 577 578 579 580 581 582 583 584 585 586 587 588 589 590 591 592 593 594 595 596 597 598 599 600 601 602 603 604 605 606 607 608 609 610 611 612 613 614 615 616 617 618 619 620 621 622 623 624 625 626 627 628 629 630 631 632 633 634 635 636 637 638 639 640 641 642 643 644 645 646 647 648 649 650 651 652 653 654 655 656 657 658 659 660 661 662 663 664 665 666 667 668 669 670 671 672 673 674 675 676 677 678 679 680 681 682 683 684 685 686 687 688 689 690 691 692 693 694 695 696 697 698 699 700 701 702 703 704 705 706 707 708 709 710 711 712 713 714 715 716 717 718 719 720 721 722 723 724 725 726 727 728 729 730 731 732 733 734 735 736 737 738 739 740 741 742 743 744 745 746 747 748 749 750 751 752 753 754 755 756 757 758 759 760 761 762 763 764 765 766 767 768 769 770 771 772 773 774 775 776 777 778 779 780 781 782 783 784 785 786 787 788 789 790 791 792 793 794 795 796 797 798 799 800 801 802 803 804 805 806 807 808 809 810 811 812 813 814 815 816 817 818 819 820 821 822 823 824 825 826 827 828 829 830 831 832 833 834 835 836 837 838 839 840 841 842 843 844 845 846 847 848 849 850 851 852 853 854 855 856 857 858 859 860 861 862 863 864                       973× 973× 973× 973× 973× 973× 973× 973× 973× 973× 973× 973× 973×   973× 973× 973× 973× 973×   947×   946× 946× 946× 946× 946×   946× 946×       1031× 1031×     1031× 1031× 32× 32× 30×   30× 30× 29× 29×   30×                   999× 989×     991× 991× 991× 801×     190× 190× 190× 17168× 17168× 17168× 17158×       991× 189× 189× 189×   189× 3529× 3529× 3529× 3347× 3341× 3341× 3341×     188×   189×   991× 27× 27× 27×     964×   991×   189× 189× 16449× 16449× 2759× 2759×     189×   58× 58×   58× 58×   58×       57× 50× 50× 50× 50× 50× 50× 901×   16×   901× 319× 319× 12363×     319×   317×     901× 755× 755× 755× 755×                   752×   755× 755×   745×   755×     50× 50× 901×               58×   57× 12×     45×   58×       58×   10× 10× 10×   10× 10×                                       17× 17× 17× 17× 17× 17× 17× 17× 17×   17×   12×   17× 17×   17× 17× 16× 16× 16× 16× 16× 16× 16× 16× 16×         15×   16×       16×       16× 16× 16× 16×                     16×           11×   16× 57× 57×   55×       57× 57×       55× 12×                   10× 10× 10× 10×       43× 43× 43× 43× 43×   57× 57× 57×   57× 57×       57× 57×     14× 14×                                                 13×   12× 12×     673× 57× 57×     16× 57×   16× 16×       16× 16× 16× 16× 16×                     16×   16×   16× 16× 16×   16× 16×       16× 16×   16×               54× 54×         23560× 23560× 23560× 23560× 23560× 23560× 23560× 23560× 22591× 22591× 22591× 22591× 3341×   22591× 22591×   23560× 119597× 119597× 119597× 119591× 119591×       119597× 119597× 119597× 119597×   119597× 22604× 892×     21712×     119597× 2788×   119597× 119597× 119597× 89088× 89088× 89088×     30509×   119597× 119597×             119591× 119585×       119583×   119585×   119597× 27746×   119597× 22591×   119597×   23560×   969× 969× 969× 969× 969× 969× 969× 969× 969× 969× 969×   969× 969× 969× 969× 969× 969×   1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850× 1850×     1850× 1778× 1778× 1778× 1778× 193×   1776× 1775×     1846×     1840×       1846× 1846×   1846× 1846× 1846× 1846× 1618× 1618×   1846×     150×   150× 150× 150× 150×           1846×   46× 46× 10×   73× 46×   1846× 88× 88× 88× 88× 88× 88× 88×     1846×   1846× 24×   1846× 1845× 1845× 1845× 1845× 1845×   1847×   422× 422× 422×     1425×   338× 338× 337× 337×   1846× 1846× 1846× 72× 72× 72×       1846× 1846×   915×   1775× 222×   1773× 67×          
var __assign = (this && this.__assign) || function () {
    __assign = Object.assign || function(t) {
        for (var s, i = 1, n = arguments.length; i < n; i++) {
            s = arguments[i];
            for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
                t[p] = s[p];
        }
        return t;
    };
    return __assign.apply(this, arguments);
};
define(["require", "exports", "@syncfusion/ej2-base", "@syncfusion/ej2-data", "@syncfusion/ej2-popups", "@syncfusion/ej2-grids", "../utils", "./constant"], function (require, exports, ej2_base_1, ej2_data_1, ej2_popups_1, ej2_grids_1, utils_1, events) {
    "use strict";
    Object.defineProperty(exports, "__esModule", { value: true });
    var DataManipulation = (function () {
        function DataManipulation(grid) {
            this.addedRecords = 'addedRecords';
            this.parent = grid;
            this.parentItems = [];
            this.taskIds = [];
            this.hierarchyData = [];
            this.storedIndex = -1;
            this.sortedData = [];
            this.isSortAction = false;
            this.addEventListener();
            this.dataResults = {};
            this.isSelfReference = !ej2_base_1.isNullOrUndefined(this.parent.parentIdMapping);
            this.enableCollapseAll = this.parent.enableCollapseAll;
            this.uniqueIDCollection = this.parent.uniqueIDCollection;
        }
        DataManipulation.prototype.addEventListener = function () {
            this.parent.on('updateRemoteLevel', this.updateParentRemoteData, this);
            this.parent.grid.on('sorting-begin', this.beginSorting, this);
            this.parent.on('updateAction', this.updateData, this);
            this.parent.on(events.remoteExpand, this.collectExpandingRecs, this);
            this.parent.on('dataProcessor', this.dataProcessor, this);
        };
        DataManipulation.prototype.removeEventListener = function () {
            if (this.parent.isDestroyed) {
                return;
            }
            this.parent.off(events.remoteExpand, this.collectExpandingRecs);
            this.parent.off('updateRemoteLevel', this.updateParentRemoteData);
            this.parent.off('updateAction', this.updateData);
            this.parent.off('dataProcessor', this.dataProcessor);
            this.parent.grid.off('sorting-begin', this.beginSorting);
        };
        DataManipulation.prototype.destroy = function () {
            this.removeEventListener();
            this.hierarchyData = null;
        };
        DataManipulation.prototype.isRemote = function () {
            if (!(this.parent.dataSource instanceof ej2_data_1.DataManager)) {
                return false;
            }
            return true;
        };
        DataManipulation.prototype.convertToFlatData = function (data) {
            var _this = this;
            this.parent.flatData = (!ej2_base_1.isNullOrUndefined(data) && Object.keys(data).length === 0
                && !(this.parent.dataSource instanceof ej2_data_1.DataManager) ?
                this.parent.dataSource : []);
            this.parent.parentData = [];
            if ((utils_1.isRemoteData(this.parent) && !utils_1.isOffline(this.parent)) && data instanceof ej2_data_1.DataManager && !(data instanceof Array)) {
                var dm = this.parent.dataSource;
                if (this.parent.parentIdMapping) {
                    this.parent.query = ej2_base_1.isNullOrUndefined(this.parent.query) ?
                        new ej2_data_1.Query() : this.parent.query;
                    var filterKey = this.parent.query.params.filter(function (param) { return param.key === 'IdMapping'; });
                    if (this.parent.initialRender && !filterKey.length) {
                        this.parent.query.where(this.parent.parentIdMapping, 'equal', null);
                        this.parent.query.addParams('IdMapping', this.parent.idMapping);
                    }
                    if (!this.parent.hasChildMapping) {
                        var qry = this.parent.query.clone();
                        qry.queries = [];
                        qry = qry.select([this.parent.parentIdMapping]);
                        qry.isCountRequired = true;
                        dm.executeQuery(qry).then(function (e) {
                            _this.parentItems = ej2_data_1.DataUtil.distinct(e.result, _this.parent.parentIdMapping, false);
                            var req;
                            if (e.result) {
                                req = 0;
                            }
                            else {
                                req = 1;
                            }
                            if (req === 0) {
                                ej2_base_1.setValue('grid.contentModule.isLoaded', true, _this.parent);
                                if (!ej2_base_1.isNullOrUndefined(_this.zerothLevelData)) {
                                    ej2_base_1.setValue('cancel', false, _this.zerothLevelData);
                                    ej2_base_1.getValue('grid.renderModule', _this.parent).dataManagerSuccess(_this.zerothLevelData);
                                    _this.zerothLevelData = null;
                                }
                                _this.parent.grid.hideSpinner();
                            }
                        });
                    }
                }
            }
            else if (data instanceof Array) {
                this.convertJSONData(data);
            }
        };
        DataManipulation.prototype.convertJSONData = function (data) {
            this.hierarchyData = [];
            this.taskIds = [];
            if (!this.parent.idMapping) {
                this.hierarchyData = data;
            }
            else {
                var idMapping = this.parent.idMapping;
                var keys = Object.keys(data);
                for (var i = 0; i < keys.length; i++) {
                    var tempData = data[parseInt(i.toString(), 10)];
                    this.hierarchyData.push(ej2_base_1.extend({}, tempData));
                    if (!ej2_base_1.isNullOrUndefined(tempData["" + idMapping])) {
                        this.taskIds.push(tempData["" + idMapping]);
                    }
                }
            }
            if (this.isSelfReference) {
                var selfData = [];
                var childMapping = this.parent.childMapping;
                var mappingData = new ej2_data_1.DataManager(this.hierarchyData).executeLocal(new ej2_data_1.Query()
                    .group(this.parent.parentIdMapping));
                for (var i = 0; i < mappingData.length; i++) {
                    var groupData = mappingData[parseInt(i.toString(), 10)];
                    var index = this.taskIds.indexOf(groupData.key);
                    if (!ej2_base_1.isNullOrUndefined(groupData.key)) {
                        if (index > -1) {
                            var childData = (groupData.items);
                            this.hierarchyData[parseInt(index.toString(), 10)]["" + childMapping] = childData;
                            continue;
                        }
                    }
                    selfData.push.apply(selfData, groupData.items);
                }
                this.hierarchyData = this.selfReferenceUpdate(selfData);
            }
            if (!Object.keys(this.hierarchyData).length) {
                var isGantt = 'isGantt';
                var referenceData = !(this.parent.dataSource instanceof ej2_data_1.DataManager) && this.parent["" + isGantt];
                this.parent.flatData = referenceData ? (this.parent.dataSource) : [];
            }
            else {
                this.createRecords(this.hierarchyData);
            }
            this.storedIndex = -1;
        };
        DataManipulation.prototype.selfReferenceUpdate = function (selfData) {
            var result = [];
            for (var i = 0; i < this.hierarchyData.length && selfData.length > 0; i++) {
                var index = selfData.indexOf(this.hierarchyData[parseInt(i.toString(), 10)]);
                if (index !== -1) {
                    result.push(this.hierarchyData[parseInt(i.toString(), 10)]);
                    selfData.splice(index, 1);
                }
            }
            return result;
        };
        DataManipulation.prototype.updateParentRemoteData = function (args) {
            var actionArgs = 'actionArgs';
            if (utils_1.isRemoteData(this.parent) && this.parent.enableVirtualization && args["" + actionArgs].requestType === 'virtualscroll') {
                this.parent.hideSpinner();
            }
            var records = args.result;
            if (utils_1.isRemoteData(this.parent) && this.parent.enableVirtualization && (args["" + actionArgs].requestType === 'virtualscroll' || args["" + actionArgs].action === 'clearFilter' || args["" + actionArgs].searchString === '')) {
                this.parent.query.expands = [];
            }
            if (!this.parent.hasChildMapping && !this.parentItems.length &&
                (this.parent.loadChildOnDemand)) {
                this.zerothLevelData = args;
                ej2_base_1.setValue('cancel', true, args);
            }
            else {
                if (this.parent.loadChildOnDemand) {
                    var isRemote = utils_1.isRemoteData(this.parent);
                    var enableVirtualization = this.parent.enableVirtualization;
                    var getUidval = ej2_grids_1.getUid(this.parent.element.id + '_data_');
                    var parentIdMapping_1 = this.parent.parentIdMapping;
                    var idMapping_1 = this.parent.idMapping;
                    var _loop_1 = function (rec) {
                        if (utils_1.isCountRequired(this_1.parent) && records[parseInt(rec.toString(), 10)].hasChildRecords &&
                            this_1.parent.initialRender) {
                            records[parseInt(rec.toString(), 10)].expanded = false;
                        }
                        if (isRemote && enableVirtualization) {
                            var childRecords_1 = [];
                            records.filter(function (e) {
                                if (e["" + parentIdMapping_1] === records[parseInt(rec.toString(), 10)]["" + idMapping_1]) {
                                    childRecords_1.push(e);
                                }
                            });
                            if (childRecords_1.length) {
                                records[parseInt(rec.toString(), 10)].expanded = true;
                            }
                            else if (records[parseInt(rec.toString(), 10)].hasChildRecords) {
                                records[parseInt(rec.toString(), 10)].expanded = false;
                            }
                        }
                        if (ej2_base_1.isNullOrUndefined(records[parseInt(rec.toString(), 10)].index)) {
                            records[parseInt(rec.toString(), 10)].taskData = ej2_base_1.extend({}, records[parseInt(rec.toString(), 10)]);
                            records[parseInt(rec.toString(), 10)].uniqueID = getUidval;
                            ej2_base_1.setValue('uniqueIDCollection.' + records[parseInt(rec.toString(), 10)].uniqueID, records[parseInt(rec.toString(), 10)], this_1.parent);
                            if (isRemote && enableVirtualization && records[parseInt(rec.toString(), 10)]["" + parentIdMapping_1] && (ej2_base_1.isNullOrUndefined(records[parseInt(rec.toString(), 10)].level) || records[parseInt(rec.toString(), 10)].level === 0)) {
                                var parentID_1 = records[parseInt(rec.toString(), 10)]["" + parentIdMapping_1];
                                var parentRec = records.find(function (record) { return record["" + idMapping_1] === parentID_1; });
                                if (parentRec) {
                                    records[parseInt(rec.toString(), 10)].level = parentRec.level + 1;
                                }
                                else {
                                    var parentRec_1 = args.actual.flatData.find(function (record) { return record["" + idMapping_1] === parentID_1; });
                                    Eif (ej2_base_1.isNullOrUndefined(parentRec_1["" + parentIdMapping_1])) {
                                        records[parseInt(rec.toString(), 10)].level = 1;
                                    }
                                    else {
                                        records[parseInt(rec.toString(), 10)].level = parentRec_1.level + 1;
                                    }
                                }
                            }
                            else {
                                records[parseInt(rec.toString(), 10)].level = 0;
                            }
                            records[parseInt(rec.toString(), 10)].index = Math.ceil(Math.random() * 1000);
                            if ((records[parseInt(rec.toString(), 10)][this_1.parent.hasChildMapping] ||
                                this_1.parentItems.indexOf(records[parseInt(rec.toString(), 10)]["" + idMapping_1]) !== -1)) {
                                records[parseInt(rec.toString(), 10)].hasChildRecords = true;
                            }
                            records[parseInt(rec.toString(), 10)].checkboxState = 'uncheck';
                        }
                    };
                    var this_1 = this;
                    for (var rec = 0; rec < records.length; rec++) {
                        _loop_1(rec);
                    }
                }
                else {
                    var dataResults = 'dataResults';
                    var expandRecord = 'expandRecord';
                    if (!ej2_base_1.isNullOrUndefined(records) && !((!this.parent.loadChildOnDemand) && utils_1.isCountRequired(this.parent) && !ej2_base_1.isNullOrUndefined(this.parent["" + dataResults]["" + expandRecord])) &&
                        !(utils_1.isRemoteData(this.parent) && !this.parent.loadChildOnDemand && args["" + actionArgs].isExpandCollapse && this.parent.enableVirtualization)) {
                        this.convertToFlatData(records);
                    }
                }
            }
            if (utils_1.isRemoteData(this.parent) && !this.parent.loadChildOnDemand && args["" + actionArgs].isExpandCollapse && this.parent.enableVirtualization) {
                args.result = records;
            }
            else if (utils_1.isRemoteData(this.parent) && this.parent.enableVirtualization && this.parent.loadChildOnDemand) {
                args.result = records;
            }
            else {
                args.result = !this.parent.loadChildOnDemand ? this.parent.flatData : records;
            }
            if (utils_1.isRemoteData(this.parent) && this.parent.enableVirtualization && !this.parent.loadChildOnDemand
                && this.parent.grid.aggregates.length && this.parent.grid.sortSettings.columns.length === 0
                && this.parent.grid.filterSettings.columns.length === 0 && !this.parent.grid.searchSettings.key.length) {
                var query = 'query';
                var summaryQuery = args["" + query].queries.filter(function (q) { return q.fn === 'onAggregates'; });
                args.result = this.parent.summaryModule.calculateSummaryValue(summaryQuery, this.parent.flatData, true);
            }
            this.parent.notify('updateResults', args);
        };
        DataManipulation.prototype.collectExpandingRecs = function (rowDetails, isChild) {
            var gridRows = this.parent.getRows();
            var name = 'name';
            if (this.parent.rowTemplate) {
                var rows = this.parent.getContentTable().rows;
                gridRows = [].slice.call(rows);
            }
            var childRecord;
            if (rowDetails.rows.length > 0 || (this.parent.enableDomVirtualization &&
                this.parent.uniqueIDCollpaseCollection[rowDetails.record.uniqueID])) {
                Iif (this.parent.enableDomVirtualization) {
                    this.parent.notify(events.virtualExpandCollapse, { action: 'expand', row: rowDetails.parentRow, record: rowDetails.record });
                    this.parent.notify(events.localPagedExpandCollapse, { action: 'expand', row: rowDetails.parentRow, record: rowDetails.record });
                }
                else {
                    if (!isChild) {
                        rowDetails.record.expanded = true;
                    }
                    var rowTemplate = this.parent.rowTemplate;
                    var loadChildOnDemand = this.parent.loadChildOnDemand;
                    for (var i = 0; i < rowDetails.rows.length; i++) {
                        this.parent['toggleRowVisibility'](rowDetails.rows[parseInt(i.toString(), 10)], 'e-childrow-visible');
                        if (!loadChildOnDemand) {
                            var targetEle = rowDetails.rows[parseInt(i.toString(), 10)].getElementsByClassName('e-treegridcollapse')[0];
                            childRecord = rowTemplate ?
                                this.parent.grid.getCurrentViewRecords()[rowDetails.rows[parseInt(i.toString(), 10)].rowIndex] :
                                this.parent.grid.getRowObjectFromUID(rowDetails.rows[parseInt(i.toString(), 10)].getAttribute('data-uid')).data;
                            if (!ej2_base_1.isNullOrUndefined(targetEle) && childRecord.expanded) {
                                ej2_base_1.addClass([targetEle], 'e-treegridexpand');
                                ej2_base_1.removeClass([targetEle], 'e-treegridcollapse');
                            }
                            var childRows = [];
                            childRows = gridRows.filter(function (r) {
                                return r.querySelector('.e-gridrowindex' + childRecord.index + 'level' + (childRecord.level + 1));
                            });
                            if (childRows.length && childRecord.expanded) {
                                this.collectExpandingRecs({ record: childRecord, rows: childRows, parentRow: rowDetails.parentRow }, true);
                            }
                        }
                        var expandingTd = rowDetails.rows[parseInt(i.toString(), 10)].querySelector('.e-detailrowcollapse');
                        if (!ej2_base_1.isNullOrUndefined(expandingTd)) {
                            this.parent.grid.detailRowModule.expand(expandingTd);
                        }
                    }
                    this.parent.grid.pageSettings.totalRecordsCount += rowDetails.rows.length;
                }
            }
            else {
                this.fetchRemoteChildData({ action: rowDetails["" + name], record: rowDetails.record, rows: rowDetails.rows, parentRow: rowDetails.parentRow });
            }
        };
        DataManipulation.prototype.fetchRemoteChildData = function (rowDetails) {
            var _this = this;
            var args = { row: rowDetails.parentRow, data: rowDetails.record };
            var dm = this.parent.dataSource;
            var query = this.parent.grid.getDataModule().generateQuery();
            var clonequries = query.queries.filter(function (e) { return e.fn !== 'onPage' && e.fn !== 'onWhere'; });
            query.queries = clonequries;
            query.isCountRequired = true;
            var idMappingValue = parseInt(rowDetails.record[this.parent.idMapping], 10);
            if (isNaN(idMappingValue)) {
                idMappingValue = rowDetails.record[this.parent.idMapping].toString();
            }
            if (this.parent.enableVirtualization && rowDetails.action === 'remoteExpand') {
                query.take(this.parent.grid.pageSettings.pageSize);
                var expandDetail = [];
                expandDetail.push('ExpandingAction', idMappingValue.toString());
                query.expand(expandDetail);
            }
            else if (this.parent.enableVirtualization && rowDetails.action === 'collapse') {
                query.take(this.parent.grid.pageSettings.pageSize);
                var expandDetail = [];
                expandDetail.push('CollapsingAction', idMappingValue.toString());
                query.expand(expandDetail);
            }
            query.where(this.parent.parentIdMapping, 'equal', rowDetails.record[this.parent.idMapping]);
            if (rowDetails.action === 'remoteExpand' && this.parent.grid.filterSettings && this.parent.grid.filterSettings.columns.length) {
                var filterqry = this.parent.grid.getDataModule().generateQuery().queries.filter(function (e) { return e.fn !== 'onPage' && typeof e.e.predicates !== 'undefined'; });
                query.queries.push(filterqry[0]);
            }
            ej2_popups_1.showSpinner(this.parent.element);
            dm.executeQuery(query).then(function (e) {
                var remoteExpandedData = 'remoteExpandedData';
                var remoteCollapsedData = 'remoteCollapsedData';
                var level = 'level';
                var currentViewData = _this.parent.grid.currentViewData;
                var datas = currentViewData.slice();
                var inx;
                var idMapping = _this.parent.idMapping;
                var parentIdMapping = _this.parent.parentIdMapping;
                if (_this.parent['isGantt'] && _this.parent.loadChildOnDemand && _this.parent.hasChildMapping) {
                    for (var i = 0; i < currentViewData.length; i++) {
                        if (rowDetails.record[idMapping] === currentViewData[i][idMapping]) {
                            inx = i;
                            break;
                        }
                    }
                }
                else {
                    inx = datas.indexOf(rowDetails.record);
                }
                if (_this.parent.enableVirtualization && (rowDetails.action === 'collapse' || rowDetails.action === 'remoteExpand')) {
                    datas = [];
                    for (var i = 0; i < inx; i++) {
                        datas.push(currentViewData[parseInt(i.toString(), 10)]);
                    }
                }
                if (inx === -1) {
                    _this.parent.grid.getRowsObject().forEach(function (rows) {
                        if (rows.data.uniqueID === rowDetails.record.uniqueID) {
                            inx = rows.index;
                        }
                    });
                }
                var haveChild = ej2_grids_1.getObject('actual.nextLevel', e);
                var result = e.result;
                var resultChildData = [];
                if (rowDetails.action === 'remoteExpand' && _this.parent.grid.filterModule && _this.parent.grid.filterModule['value']) {
                    for (var i = 0; i < datas.length; i++) {
                        if (Object.prototype.hasOwnProperty.call(datas[parseInt(i.toString(), 10)], parentIdMapping) && datas[parseInt(i.toString(), 10)]['' + parentIdMapping] !== null && datas[parseInt(i.toString(), 10)].level === 0) {
                            datas.splice(i, 1);
                            i--;
                        }
                    }
                    for (var i = 0; i < result.length; i++) {
                        if (rowDetails.record['' + idMapping] !== result[parseInt(i.toString(), 10)]['' + idMapping] &&
                            rowDetails.record['' + idMapping] === result[parseInt(i.toString(), 10)]['' + parentIdMapping]) {
                            Eif (Object.prototype.hasOwnProperty.call(result, i)) {
                                resultChildData.push(result[parseInt(i.toString(), 10)]);
                            }
                        }
                    }
                    result = resultChildData;
                }
                if (_this.parent.enableVirtualization && rowDetails.action === 'remoteExpand') {
                    rowDetails.record.childRecords = [];
                    for (var i = 0; i < result.length; i++) {
                        if (rowDetails.record['' + idMapping] !== result[parseInt(i.toString(), 10)]['' + idMapping] &&
                            rowDetails.record['' + idMapping] === result[parseInt(i.toString(), 10)]['' + parentIdMapping] && Object.prototype.hasOwnProperty.call(result, i)) {
                            rowDetails.record.childRecords.push(result[parseInt(i.toString(), 10)]);
                        }
                    }
                }
                else {
                    rowDetails.record.childRecords = result;
                }
                var _loop_2 = function (r) {
                    var record = result[parseInt(r.toString(), 10)];
                    if (_this.parent.enableVirtualization && record["" + idMapping] === rowDetails.record["" + idMapping] && rowDetails.action === 'remoteExpand') {
                        _this.parent["" + remoteExpandedData].push(rowDetails.record);
                    }
                    else if (_this.parent.enableVirtualization && record["" + idMapping] === rowDetails.record["" + idMapping] && rowDetails.action === 'collapse') {
                        for (var i = 0; i < _this.parent["" + remoteExpandedData].length; i++) {
                            Eif (rowDetails.record["" + idMapping] === _this.parent["" + remoteExpandedData][parseInt(i.toString(), 10)]["" + idMapping]) {
                                _this.parent["" + remoteExpandedData].splice(i, 1);
                            }
                        }
                    }
                    record.taskData = ej2_base_1.extend({}, record);
                    if (record["" + parentIdMapping] && _this.parent.enableVirtualization && _this.parent["" + remoteExpandedData].length) {
                        for (var i = 0; i < _this.parent["" + remoteExpandedData].length; i++) {
                            Eif (record["" + parentIdMapping] === _this.parent["" + remoteExpandedData][parseInt(i.toString(), 10)]["" + idMapping]) {
                                record.level = _this.parent["" + remoteExpandedData][parseInt(i.toString(), 10)]["" + level] + 1;
                                var parentData = _this.parent["" + remoteExpandedData][parseInt(i.toString(), 10)];
                                delete parentData.childRecords;
                                record.parentItem = parentData;
                                record.parentUniqueID = parentData.uniqueID;
                            }
                        }
                    }
                    else if (_this.parent.enableVirtualization) {
                        if ((record["" + _this.parent.hasChildMapping] ||
                            _this.parentItems.indexOf(record["" + idMapping]) !== -1)
                            && !(haveChild && !haveChild[parseInt(r.toString(), 10)])) {
                            Eif (ej2_base_1.isNullOrUndefined(record["" + parentIdMapping])) {
                                record.level = 0;
                                if (rowDetails.action === 'remoteExpand') {
                                    record.childRecords = [];
                                    record.childRecords = rowDetails.record.childRecords;
                                }
                            }
                            else {
                                record.level = rowDetails.record.level;
                            }
                        }
                        else {
                            var parentData = ej2_base_1.extend({}, rowDetails.record);
                            delete parentData.childRecords;
                            record.parentItem = parentData;
                            record.parentUniqueID = rowDetails.record.uniqueID;
                        }
                    }
                    else {
                        record.level = rowDetails.record.level + 1;
                        var parentData = ej2_base_1.extend({}, rowDetails.record);
                        delete parentData.childRecords;
                        record.parentItem = parentData;
                        record.parentUniqueID = rowDetails.record.uniqueID;
                    }
                    record.index = Math.ceil(Math.random() * 1000);
                    record.uniqueID = ej2_grids_1.getUid(_this.parent.element.id + '_data_');
                    if (rowDetails.record["" + idMapping] === record["" + idMapping]) {
                        rowDetails.record.uniqueID = record.uniqueID;
                    }
                    record.checkboxState = 'uncheck';
                    if (_this.parent.enableVirtualization && ej2_base_1.isNullOrUndefined(record.level)) {
                        for (var p = 0; p < currentViewData.length; p++) {
                            Eif (currentViewData[parseInt(p.toString(), 10)]["" + idMapping] === record["" + parentIdMapping]) {
                                record.level = currentViewData[parseInt(p.toString(), 10)]['level'] + 1;
                            }
                        }
                    }
                    ej2_base_1.setValue('uniqueIDCollection.' + record.uniqueID, record, _this.parent);
                    if ((record["" + _this.parent.hasChildMapping] ||
                        _this.parentItems.indexOf(record["" + idMapping]) !== -1)
                        && !(haveChild && !haveChild[parseInt(r.toString(), 10)])) {
                        record.hasChildRecords = true;
                        if (_this.parent.enableVirtualization && !_this.parent.loadChildOnDemand) {
                            for (var i = 0; i < _this.parent["" + remoteCollapsedData].length; i++) {
                                Eif (record["" + idMapping] === _this.parent["" + remoteCollapsedData][parseInt(i.toString(), 10)]["" + idMapping]) {
                                    record.expanded = _this.parent["" + remoteCollapsedData][parseInt(i.toString(), 10)]['expanded'];
                                }
                            }
                            Iif (rowDetails.action === 'collapse' && record["" + idMapping] !== rowDetails.record["" + idMapping] && record.expanded !== false) {
                                record.expanded = true;
                            }
                            else Iif (rowDetails.action === 'collapse' && record["" + idMapping] === rowDetails.record["" + idMapping]) {
                                record.expanded = false;
                                _this.parent["" + remoteCollapsedData].push(rowDetails.record);
                            }
                            else Iif (rowDetails.action === 'remoteExpand') {
                                for (var i = 0; i < currentViewData.length; i++) {
                                    if (currentViewData[parseInt(i.toString(), 10)]["" + _this.parent.idMapping] === record["" + _this.parent.idMapping]) {
                                        result.splice(r, 1, currentViewData[parseInt(i.toString(), 10)]);
                                    }
                                }
                                if (record[_this.parent.idMapping] === rowDetails.record["" + _this.parent.idMapping]) {
                                    for (var i = 0; i < _this.parent["" + remoteCollapsedData].length; i++) {
                                        if (rowDetails.record["" + idMapping] === _this.parent["" + remoteCollapsedData][parseInt(i.toString(), 10)]["" + _this.parent.idMapping]) {
                                            _this.parent["" + remoteCollapsedData].splice(i, 1);
                                        }
                                    }
                                }
                                if (record.expanded !== false) {
                                    record.expanded = true;
                                }
                            }
                        }
                        else if (_this.parent.enableVirtualization && record["" + idMapping] === rowDetails.record["" + idMapping] && rowDetails.action !== 'collapse') {
                            record.expanded = true;
                        }
                        else Eif (!(_this.parent.enableVirtualization && !_this.parent.loadChildOnDemand)) {
                            record.expanded = false;
                        }
                    }
                    var exists = datas.some(function (data) { return data["" + idMapping] === record["" + idMapping]; });
                    Eif (!exists) {
                        datas.splice(inx + r + 1, 0, record);
                    }
                };
                for (var r = 0; r < result.length; r++) {
                    _loop_2(r);
                }
                var localIdMapping = idMapping;
                if (_this.parent.enableVirtualization && _this.parent.loadChildOnDemand) {
                    datas.sort(function (firstRecord, secondRecord) {
                        return firstRecord["" + localIdMapping] - secondRecord["" + localIdMapping];
                    });
                }
                ej2_base_1.setValue('result', datas, e);
                ej2_base_1.setValue('action', 'beforecontentrender', e);
                _this.parent.trigger(events.actionComplete, e);
                ej2_popups_1.hideSpinner(_this.parent.element);
                Iif (_this.parent.grid.aggregates.length > 0 && !_this.parent.enableVirtualization) {
                    var gridQuery = ej2_grids_1.getObject('query', e);
                    var result_1 = 'result';
                    if (ej2_base_1.isNullOrUndefined(gridQuery)) {
                        gridQuery = ej2_base_1.getValue('grid.renderModule.data', _this.parent).aggregateQuery(new ej2_data_1.Query());
                    }
                    if (!ej2_base_1.isNullOrUndefined(gridQuery)) {
                        var summaryQuery = gridQuery.queries.filter(function (q) { return q.fn === 'onAggregates'; });
                        e["" + result_1] = _this.parent.summaryModule.calculateSummaryValue(summaryQuery, e["" + result_1], true);
                    }
                }
                if (rowDetails.action === 'remoteExpand' && _this.parent.allowPaging && _this.parent.pageSettings.pageSizeMode === 'All') {
                    _this.parent.grid.pageSettings.totalRecordsCount = _this.parent.grid.pageSettings.totalRecordsCount + result.length;
                }
                if (_this.parent.enableVirtualization) {
                    _this.parent.grid.pageSettings.totalRecordsCount = e.count;
                }
                e.count = _this.parent.grid.pageSettings.totalRecordsCount;
                var virtualArgs = {};
                if (_this.parent.enableVirtualization) {
                    _this.remoteVirtualAction(virtualArgs);
                }
                var notifyArgs = { index: inx, childData: result };
                Iif (_this.parent.enableInfiniteScrolling) {
                    _this.parent.notify('infinite-remote-expand', notifyArgs);
                }
                else {
                    virtualArgs = _this.parent.enableDomVirtualization ? { requestType: 'refresh' } : virtualArgs;
                    ej2_base_1.getValue('grid.renderModule', _this.parent).dataManagerSuccess(e, virtualArgs);
                }
                _this.parent.trigger(events.expanded, args);
            })
                .catch(function (e) {
                _this.parent.trigger(events.actionFailure, e);
            });
        };
        DataManipulation.prototype.remoteVirtualAction = function (virtualArgs) {
            virtualArgs.requestType = 'refresh';
            ej2_base_1.setValue('isExpandCollapse', true, virtualArgs);
            var contentModule = ej2_base_1.getValue('grid.contentModule', this.parent);
            var currentInfo = ej2_base_1.getValue('currentInfo', contentModule);
            var prevInfo = ej2_base_1.getValue('prevInfo', contentModule);
            if (currentInfo.loadNext && this.parent.grid.pageSettings.currentPage === currentInfo.nextInfo.page
                && !this.parent.loadChildOnDemand) {
                this.parent.grid.pageSettings.currentPage = prevInfo.page;
            }
        };
        DataManipulation.prototype.beginSorting = function () {
            this.isSortAction = true;
            if (utils_1.isRemoteData(this.parent) && this.parent.enableVirtualization) {
                var index = this.parent.query.queries.indexOf(this.parent.query.queries.filter(function (q) { return q.fn === 'onSortBy'; })[0]);
                if (index !== -1) {
                    this.parent.query.queries.splice(index, 1);
                }
                if (this.parent.grid.sortSettings.columns.length === 0) {
                    this.parent.query.sortBy(null, null);
                }
            }
        };
        DataManipulation.prototype.createConvertRecords = function (data, parentRecords) {
            var treeGridData = [];
            var flatData = this.parent.flatData;
            var parentData = this.parent.parentData;
            var keys = Object.keys(data);
            var levelBase = 0;
            var parentItem = null;
            var parentUniqueID = null;
            if (!ej2_base_1.isNullOrUndefined(parentRecords)) {
                parentItem = __assign({}, parentRecords);
                delete parentItem.childRecords;
                delete parentItem[this.childMapping];
                if (this.isSelfReference) {
                    delete parentItem.taskData[this.childMapping];
                }
                levelBase = (parentItem.level || 0) + 1;
                parentUniqueID = parentItem.uniqueID;
            }
            for (var i = 0; i < keys.length; i++) {
                var currentData = __assign({}, data[parseInt(i.toString(), 10)]);
                currentData.taskData = data[parseInt(i.toString(), 10)];
                if (!currentData.index) {
                    this.storedIndex++;
                    currentData.index = this.storedIndex;
                }
                else {
                    this.storedIndex++;
                }
                var childMapping = currentData[this.childMapping];
                var hasChildren = childMapping && childMapping.length > 0;
                var hasChildMapping = currentData[this.hasChildMapping];
                currentData.hasChildRecords = ((hasChildren && !this.isCountRequired) ||
                    (hasChildMapping && this.isCountRequired)) ? true : false;
                if (currentData.hasChildRecords) {
                    if (this.enableCollapseAll || (!ej2_base_1.isNullOrUndefined(this.parent.dataStateChange) && !childMapping)) {
                        currentData.expanded = false;
                    }
                    else {
                        currentData.expanded = !ej2_base_1.isNullOrUndefined(currentData["" + this.expandStateMapping]) ? currentData["" + this.expandStateMapping] : true;
                    }
                }
                if (this.isSelfReference && !currentData["" + this.parentIdMapping]) {
                    parentData.push(currentData);
                }
                currentData.uniqueID = ej2_grids_1.getUid(this.cachedElementId);
                this.uniqueIDCollection[currentData.uniqueID] = currentData;
                if (parentItem) {
                    currentData.parentItem = parentItem;
                    currentData.parentUniqueID = parentUniqueID;
                    currentData.level = levelBase;
                }
                else {
                    currentData.level = 0;
                }
                currentData.checkboxState = 'uncheck';
                if (this.isVirtualRemote) {
                    if (!currentData.hasChildRecords && !currentData["" + this.parentIdMapping]) {
                        currentData.hasChildRecords = true;
                        var remoteCollapsedLen = this.remoteCollapsedList.length;
                        var currentId = currentData["" + this.idMapping];
                        for (var c = 0; c < remoteCollapsedLen; c++) {
                            Eif (this.remoteCollapsedList[parseInt(c.toString(), 10)]["" + this.idMapping] === currentId) {
                                currentData.expanded = false;
                                break;
                            }
                        }
                    }
                    else Eif (currentData.level === 0 && !parentRecords && !currentData.hasChildRecords) {
                        currentData.level++;
                    }
                    if (currentData["" + this.parent.hasChildMapping] && currentData["" + this.expandStateMapping] !== undefined) {
                        currentData.expanded = currentData["" + this.expandStateMapping];
                        currentData.hasChildRecords = true;
                    }
                    flatData.push(currentData);
                }
                else if (!currentData["" + this.parentIdMapping] || parentItem) {
                    if (!ej2_base_1.isNullOrUndefined(this.rowDragAndDropTargetID)) {
                        if (!this.parent.rowDragAndDropModule['isDuplicateData'](currentData)) {
                            flatData.push(currentData);
                        }
                    }
                    else {
                        flatData.push(currentData);
                    }
                    this.infiniteScrollData.push(currentData);
                }
                if (!this.isSelfReference && currentData.level === 0) {
                    parentData.push(currentData);
                }
                if (hasChildren) {
                    currentData.childRecords = this.createConvertRecords(childMapping, currentData);
                }
                treeGridData.push(currentData);
            }
            return treeGridData;
        };
        DataManipulation.prototype.createRecords = function (data) {
            this.childMapping = this.parent.childMapping;
            this.hasChildMapping = this.parent.hasChildMapping;
            this.expandStateMapping = this.parent.expandStateMapping;
            this.parentIdMapping = this.parent.parentIdMapping;
            this.idMapping = this.parent.idMapping;
            this.cachedElementId = this.parent.element.id + '_data_';
            this.loadChildOnDemand = this.parent.loadChildOnDemand;
            this.initialRender = this.parent.initialRender;
            this.isCountRequired = utils_1.isCountRequired(this.parent);
            this.rowDragAndDropTargetID = this.parent.rowDropSettings.targetID;
            this.isVirtualRemote = this.parent.enableVirtualization && !this.loadChildOnDemand &&
                utils_1.isRemoteData(this.parent) && !this.initialRender;
            this.isRemoteData = utils_1.isRemoteData(this.parent);
            var remoteCollapsedData = 'remoteCollapsedData';
            this.remoteCollapsedList = this.isVirtualRemote ? this.parent["" + remoteCollapsedData] : [];
            this.infiniteScrollData = this.parent['infiniteScrollData'];
            this.uniqueIDCollection = this.parent.uniqueIDCollection;
            return this.createConvertRecords(data);
        };
        DataManipulation.prototype.dataProcessor = function (args) {
            var isExport = ej2_grids_1.getObject('isExport', args);
            var expresults = ej2_grids_1.getObject('expresults', args);
            var exportType = ej2_grids_1.getObject('exportType', args);
            var isPrinting = ej2_grids_1.getObject('isPrinting', args);
            var dataObj;
            var actionArgs = ej2_grids_1.getObject('actionArgs', args);
            var requestType = ej2_grids_1.getObject('requestType', args);
            var actionData = ej2_grids_1.getObject('data', args);
            var action = ej2_grids_1.getObject('action', args);
            var actionAddArgs = actionArgs;
            var primaryKeyColumnName = this.parent.getPrimaryKeyFieldNames()[0];
            var dataValue = ej2_grids_1.getObject('data', actionAddArgs);
            if ((!ej2_base_1.isNullOrUndefined(actionAddArgs)) && (!ej2_base_1.isNullOrUndefined(actionAddArgs.action)) && (actionAddArgs.action === 'add')
                && (!ej2_base_1.isNullOrUndefined(actionAddArgs.data)) && ej2_base_1.isNullOrUndefined(actionAddArgs.data["" + primaryKeyColumnName])) {
                actionAddArgs.data["" + primaryKeyColumnName] = args.result[actionAddArgs.index]["" + primaryKeyColumnName];
                dataValue.taskData["" + primaryKeyColumnName] = args.result[actionAddArgs.index]["" + primaryKeyColumnName];
            }
            if ((!ej2_base_1.isNullOrUndefined(actionArgs) && Object.keys(actionArgs).length) || requestType === 'save') {
                requestType = requestType ? requestType : actionArgs.requestType;
                actionData = actionData ? actionData : ej2_grids_1.getObject('data', actionArgs);
                action = action ? action : ej2_grids_1.getObject('action', actionArgs);
                if (this.parent.editSettings.mode === 'Batch') {
                    this.batchChanges = this.parent.grid.editModule.getBatchChanges();
                }
                if (this.parent.isLocalData) {
                    this.updateAction(actionData, action, requestType);
                }
            }
            if (isExport && !ej2_base_1.isNullOrUndefined(expresults)) {
                dataObj = expresults;
            }
            else {
                dataObj = utils_1.isCountRequired(this.parent) ? ej2_base_1.getValue('result', this.parent.grid.dataSource) :
                    this.parent.enableDomVirtualization && (action === 'collapse' || action === 'expand') ? args.result
                        : this.parent.grid.dataSource;
            }
            var results = dataObj instanceof ej2_data_1.DataManager ? dataObj.dataSource.json : dataObj;
            var count = utils_1.isCountRequired(this.parent) ? ej2_base_1.getValue('count', this.parent.dataSource)
                : results.length;
            var gridQuery = ej2_grids_1.getObject('query', args);
            var filterQuery;
            var searchQuery;
            if (!ej2_base_1.isNullOrUndefined(gridQuery)) {
                filterQuery = gridQuery.queries.filter(function (q) { return q.fn === 'onWhere'; });
                searchQuery = gridQuery.queries.filter(function (q) { return q.fn === 'onSearch'; });
            }
            if ((this.parent.grid.allowFiltering && this.parent.grid.filterSettings.columns.length) ||
                (this.parent.grid.searchSettings.key.length > 0) || (!ej2_base_1.isNullOrUndefined(gridQuery) &&
                (filterQuery.length || searchQuery.length) && this.parent.isLocalData)) {
                if (ej2_base_1.isNullOrUndefined(gridQuery)) {
                    gridQuery = new ej2_data_1.Query();
                    gridQuery = ej2_base_1.getValue('grid.renderModule.data', this.parent).filterQuery(gridQuery);
                    gridQuery = ej2_base_1.getValue('grid.renderModule.data', this.parent).searchQuery(gridQuery);
                }
                this.parent.getData({ query: gridQuery, isFilter: true });
                results = this.dataResults.result;
                this.dataResults.result = null;
                if (this.parent.grid.aggregates.length > 0) {
                    var query = ej2_grids_1.getObject('query', args);
                    Iif (ej2_base_1.isNullOrUndefined(gridQuery)) {
                        gridQuery = ej2_base_1.getValue('grid.renderModule.data', this.parent).aggregateQuery(new ej2_data_1.Query());
                    }
                    if (!ej2_base_1.isNullOrUndefined(query)) {
                        var summaryQuery = query.queries.filter(function (q) { return q.fn === 'onAggregates'; });
                        results = this.parent.summaryModule.calculateSummaryValue(summaryQuery, results, true);
                    }
                }
            }
            if (this.parent.grid.aggregates.length && this.parent.grid.sortSettings.columns.length === 0
                && this.parent.grid.filterSettings.columns.length === 0 && !this.parent.grid.searchSettings.key.length) {
                var gridQuery_1 = ej2_grids_1.getObject('query', args);
                if (ej2_base_1.isNullOrUndefined(gridQuery_1)) {
                    gridQuery_1 = ej2_base_1.getValue('grid.renderModule.data', this.parent).aggregateQuery(new ej2_data_1.Query());
                }
                var summaryQuery = gridQuery_1.queries.filter(function (q) { return q.fn === 'onAggregates'; });
                results = this.parent.summaryModule.calculateSummaryValue(summaryQuery, this.parent.flatData, true);
            }
            if (this.parent.grid.sortSettings.columns.length > 0 || this.isSortAction) {
                this.isSortAction = false;
                var query = ej2_grids_1.getObject('query', args);
                results = this.parent.getData({ query: query, isSort: true });
                this.dataResults.result = null;
                this.sortedData = results;
                this.parent.notify('updateModel', {});
                if (this.parent.grid.aggregates.length > 0 && !ej2_base_1.isNullOrUndefined(query)) {
                    var isSort = false;
                    var query_1 = ej2_grids_1.getObject('query', args);
                    var summaryQuery = query_1.queries.filter(function (q) { return q.fn === 'onAggregates'; });
                    results = this.parent.summaryModule.calculateSummaryValue(summaryQuery, this.sortedData, isSort);
                }
            }
            count = utils_1.isCountRequired(this.parent) ? ej2_base_1.getValue('count', this.parent.dataSource)
                : results.length;
            if (this.parent.enableDomVirtualization) {
                this.parent.virtualDomScrollData = results;
            }
            var temp = this.paging(results, count, isExport, isPrinting, exportType, args);
            results = temp.result;
            count = temp.count;
            args.result = results;
            args.count = count;
            this.parent.notify('updateResults', args);
        };
        DataManipulation.prototype.paging = function (results, count, isExport, isPrinting, exportType, args) {
            if (this.parent.allowPaging && (!isExport || exportType === 'CurrentPage')
                && (!isPrinting || this.parent.printMode === 'CurrentPage')) {
                this.parent.notify(events.pagingActions, { result: results, count: count, actionArgs: args });
                results = this.dataResults.result;
                count = utils_1.isCountRequired(this.parent) ? ej2_base_1.getValue('count', this.parent.dataSource)
                    : this.dataResults.count;
            }
            else if ((this.parent.enableVirtualization || this.parent.enableInfiniteScrolling || this.parent.enableDomVirtualization) &&
                (!isExport || exportType === 'CurrentPage') && ej2_base_1.getValue('requestType', args) !== 'save') {
                var actArgs = this.parent.enableInfiniteScrolling || this.parent.enableDomVirtualization ? args : ej2_base_1.getValue('actionArgs', args);
                this.parent.notify(events.pagingActions, { result: results, count: count, actionArgs: actArgs });
                results = this.dataResults.result;
                count = this.dataResults.count;
            }
            var isPdfExport = 'isPdfExport';
            var isCollapsedStatePersist = 'isCollapsedStatePersist';
            if ((isPrinting === true || (args["" + isPdfExport] && args["" + isCollapsedStatePersist] === true)) && this.parent.printMode === 'AllPages') {
                var actualResults = [];
                for (var i = 0; i < results.length; i++) {
                    var expandStatus = utils_1.getExpandStatus(this.parent, results[parseInt(i.toString(), 10)], this.parent.parentData);
                    Eif (expandStatus) {
                        actualResults.push(results[parseInt(i.toString(), 10)]);
                    }
                }
                results = actualResults;
                count = results.length;
            }
            var value = { result: results, count: count };
            return value;
        };
        DataManipulation.prototype.updateData = function (dataResult) {
            this.dataResults = dataResult;
        };
        DataManipulation.prototype.updateAction = function (actionData, action, requestType) {
            if ((requestType === 'delete' || requestType === 'save')) {
                this.parent.notify(events.crudAction, { value: actionData, action: action || requestType });
            }
            if (requestType === 'batchsave' && this.parent.editSettings.mode === 'Batch') {
                this.parent.notify(events.batchSave, {});
            }
        };
        return DataManipulation;
    }());
    exports.DataManipulation = DataManipulation;
});