primeng 7.1.0-rc.1 → 7.1.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (125) hide show
  1. package/CHANGELOG.md +137 -1
  2. package/components/accordion/accordion.js +1 -1
  3. package/components/accordion/accordion.js.map +1 -1
  4. package/components/accordion/accordion.metadata.json +1 -1
  5. package/components/autocomplete/autocomplete.d.ts +2 -2
  6. package/components/autocomplete/autocomplete.js +6 -4
  7. package/components/autocomplete/autocomplete.js.map +1 -1
  8. package/components/autocomplete/autocomplete.metadata.json +1 -1
  9. package/components/calendar/calendar.d.ts +11 -4
  10. package/components/calendar/calendar.js +84 -31
  11. package/components/calendar/calendar.js.map +1 -1
  12. package/components/calendar/calendar.metadata.json +1 -1
  13. package/components/checkbox/checkbox.d.ts +1 -0
  14. package/components/checkbox/checkbox.js +6 -1
  15. package/components/checkbox/checkbox.js.map +1 -1
  16. package/components/checkbox/checkbox.metadata.json +1 -1
  17. package/components/common/confirmation.d.ts +1 -1
  18. package/components/confirmdialog/confirmdialog.js +4 -4
  19. package/components/confirmdialog/confirmdialog.js.map +1 -1
  20. package/components/confirmdialog/confirmdialog.metadata.json +1 -1
  21. package/components/contextmenu/contextmenu.js +3 -3
  22. package/components/contextmenu/contextmenu.js.map +1 -1
  23. package/components/contextmenu/contextmenu.metadata.json +1 -1
  24. package/components/dataview/dataview.d.ts +2 -0
  25. package/components/dataview/dataview.js +13 -2
  26. package/components/dataview/dataview.js.map +1 -1
  27. package/components/dataview/dataview.metadata.json +1 -1
  28. package/components/dialog/dialog.d.ts +6 -0
  29. package/components/dialog/dialog.js +65 -4
  30. package/components/dialog/dialog.js.map +1 -1
  31. package/components/dialog/dialog.metadata.json +1 -1
  32. package/components/dom/domhandler.d.ts +1 -1
  33. package/components/dom/domhandler.js +22 -13
  34. package/components/dom/domhandler.js.map +1 -1
  35. package/components/dom/domhandler.metadata.json +1 -1
  36. package/components/dropdown/dropdown.d.ts +3 -3
  37. package/components/dropdown/dropdown.js +19 -9
  38. package/components/dropdown/dropdown.js.map +1 -1
  39. package/components/dropdown/dropdown.metadata.json +1 -1
  40. package/components/dynamicdialog/dynamicdialog.js +3 -3
  41. package/components/dynamicdialog/dynamicdialog.js.map +1 -1
  42. package/components/dynamicdialog/dynamicdialog.metadata.json +1 -1
  43. package/components/fullcalendar/fullcalendar.js +2 -2
  44. package/components/fullcalendar/fullcalendar.js.map +1 -1
  45. package/components/galleria/galleria.js +3 -1
  46. package/components/galleria/galleria.js.map +1 -1
  47. package/components/galleria/galleria.metadata.json +1 -1
  48. package/components/gmap/gmap.d.ts +1 -0
  49. package/components/gmap/gmap.js +14 -0
  50. package/components/gmap/gmap.js.map +1 -1
  51. package/components/gmap/gmap.metadata.json +1 -1
  52. package/components/inputmask/inputmask.d.ts +1 -1
  53. package/components/inputmask/inputmask.js +2 -2
  54. package/components/inputmask/inputmask.js.map +1 -1
  55. package/components/inputtextarea/inputtextarea.js +0 -1
  56. package/components/inputtextarea/inputtextarea.js.map +1 -1
  57. package/components/inputtextarea/inputtextarea.metadata.json +1 -1
  58. package/components/listbox/listbox.d.ts +1 -0
  59. package/components/listbox/listbox.js +9 -0
  60. package/components/listbox/listbox.js.map +1 -1
  61. package/components/listbox/listbox.metadata.json +1 -1
  62. package/components/menu/menu.js +1 -1
  63. package/components/menu/menu.js.map +1 -1
  64. package/components/menu/menu.metadata.json +1 -1
  65. package/components/menubar/menubar.js +2 -2
  66. package/components/menubar/menubar.js.map +1 -1
  67. package/components/multiselect/multiselect.d.ts +1 -0
  68. package/components/multiselect/multiselect.js +14 -7
  69. package/components/multiselect/multiselect.js.map +1 -1
  70. package/components/multiselect/multiselect.metadata.json +1 -1
  71. package/components/orderlist/orderlist.js +1 -1
  72. package/components/orderlist/orderlist.js.map +1 -1
  73. package/components/paginator/paginator.d.ts +7 -1
  74. package/components/paginator/paginator.js +30 -3
  75. package/components/paginator/paginator.js.map +1 -1
  76. package/components/paginator/paginator.metadata.json +1 -1
  77. package/components/panelmenu/panelmenu.d.ts +5 -0
  78. package/components/panelmenu/panelmenu.js +11 -7
  79. package/components/panelmenu/panelmenu.js.map +1 -1
  80. package/components/panelmenu/panelmenu.metadata.json +1 -1
  81. package/components/picklist/picklist.js +1 -1
  82. package/components/picklist/picklist.js.map +1 -1
  83. package/components/radiobutton/radiobutton.d.ts +5 -3
  84. package/components/radiobutton/radiobutton.js +19 -7
  85. package/components/radiobutton/radiobutton.js.map +1 -1
  86. package/components/radiobutton/radiobutton.metadata.json +1 -1
  87. package/components/slider/slider.js +9 -0
  88. package/components/slider/slider.js.map +1 -1
  89. package/components/slider/slider.metadata.json +1 -1
  90. package/components/spinner/spinner.d.ts +4 -4
  91. package/components/spinner/spinner.js +23 -14
  92. package/components/spinner/spinner.js.map +1 -1
  93. package/components/spinner/spinner.metadata.json +1 -1
  94. package/components/table/table.d.ts +15 -4
  95. package/components/table/table.js +126 -40
  96. package/components/table/table.js.map +1 -1
  97. package/components/table/table.metadata.json +1 -1
  98. package/components/tieredmenu/tieredmenu.d.ts +3 -2
  99. package/components/tieredmenu/tieredmenu.js +4 -2
  100. package/components/tieredmenu/tieredmenu.js.map +1 -1
  101. package/components/tieredmenu/tieredmenu.metadata.json +1 -1
  102. package/components/tree/tree.js +8 -2
  103. package/components/tree/tree.js.map +1 -1
  104. package/components/tree/tree.metadata.json +1 -1
  105. package/components/treetable/treetable.d.ts +18 -1
  106. package/components/treetable/treetable.js +128 -8
  107. package/components/treetable/treetable.js.map +1 -1
  108. package/components/treetable/treetable.metadata.json +1 -1
  109. package/package.json +28 -25
  110. package/resources/components/calendar/calendar.css +1 -0
  111. package/resources/components/dialog/dialog.css +2 -4
  112. package/resources/components/dropdown/dropdown.css +1 -0
  113. package/resources/components/fileupload/fileupload.css +1 -0
  114. package/resources/components/galleria/galleria.css +1 -2
  115. package/resources/components/radiobutton/radiobutton.css +1 -1
  116. package/resources/primeng.css +562 -562
  117. package/resources/primeng.min.css +1 -1
  118. package/resources/themes/luna-amber/theme.css +77 -8
  119. package/resources/themes/luna-blue/theme.css +77 -8
  120. package/resources/themes/luna-green/theme.css +77 -8
  121. package/resources/themes/luna-pink/theme.css +77 -8
  122. package/resources/themes/nova-colored/theme.css +77 -8
  123. package/resources/themes/nova-dark/theme.css +77 -8
  124. package/resources/themes/nova-light/theme.css +77 -8
  125. package/resources/themes/rhea/theme.css +77 -8
@@ -60,14 +60,15 @@ var TableService = /** @class */ (function () {
60
60
  }());
61
61
  exports.TableService = TableService;
62
62
  var Table = /** @class */ (function () {
63
- function Table(el, zone, tableService) {
63
+ function Table(el, zone, tableService, cd) {
64
64
  this.el = el;
65
65
  this.zone = zone;
66
66
  this.tableService = tableService;
67
- this.first = 0;
67
+ this.cd = cd;
68
68
  this.pageLinks = 5;
69
69
  this.alwaysShowPaginator = true;
70
70
  this.paginatorPosition = 'bottom';
71
+ this.currentPageReportTemplate = '{currentPage} of {totalPages}';
71
72
  this.defaultSortOrder = 1;
72
73
  this.sortMode = 'single';
73
74
  this.resetPageOnSort = true;
@@ -109,8 +110,12 @@ var Table = /** @class */ (function () {
109
110
  this.onEditCancel = new core_1.EventEmitter();
110
111
  this.onHeaderCheckboxToggle = new core_1.EventEmitter();
111
112
  this.sortFunction = new core_1.EventEmitter();
113
+ this.firstChange = new core_1.EventEmitter();
114
+ this.onStateSave = new core_1.EventEmitter();
115
+ this.onStateRestore = new core_1.EventEmitter();
112
116
  this._value = [];
113
117
  this._totalRecords = 0;
118
+ this._first = 0;
114
119
  this.selectionKeys = {};
115
120
  this._sortOrder = 1;
116
121
  this.filterConstraints = {
@@ -341,6 +346,16 @@ var Table = /** @class */ (function () {
341
346
  enumerable: true,
342
347
  configurable: true
343
348
  });
349
+ Object.defineProperty(Table.prototype, "first", {
350
+ get: function () {
351
+ return this._first;
352
+ },
353
+ set: function (val) {
354
+ this._first = val;
355
+ },
356
+ enumerable: true,
357
+ configurable: true
358
+ });
344
359
  Object.defineProperty(Table.prototype, "totalRecords", {
345
360
  get: function () {
346
361
  return this._totalRecords;
@@ -436,10 +451,12 @@ var Table = /** @class */ (function () {
436
451
  first: this.first,
437
452
  rows: this.rows
438
453
  });
454
+ this.firstChange.emit(this.first);
439
455
  this.tableService.onValueChange(this.value);
440
456
  if (this.isStateful()) {
441
457
  this.saveState();
442
458
  }
459
+ this.anchorRowIndex = null;
443
460
  };
444
461
  Table.prototype.sort = function (event) {
445
462
  var originalEvent = event.originalEvent;
@@ -470,14 +487,18 @@ var Table = /** @class */ (function () {
470
487
  if (this.isStateful()) {
471
488
  this.saveState();
472
489
  }
490
+ this.anchorRowIndex = null;
473
491
  };
474
492
  Table.prototype.sortSingle = function () {
475
493
  var _this = this;
476
494
  if (this.sortField && this.sortOrder) {
477
- if (this.restoringSort)
495
+ if (this.restoringSort) {
478
496
  this.restoringSort = false;
479
- else if (this.resetPageOnSort)
497
+ }
498
+ else if (this.resetPageOnSort) {
480
499
  this.first = 0;
500
+ this.firstChange.emit(this.first);
501
+ }
481
502
  if (this.lazy) {
482
503
  this.onLazyLoad.emit(this.createLazyLoadMetadata());
483
504
  }
@@ -602,7 +623,7 @@ var Table = /** @class */ (function () {
602
623
  Table.prototype.handleRowClick = function (event) {
603
624
  var target = event.originalEvent.target;
604
625
  var targetNode = target.nodeName;
605
- var parentNode = target.parentElement.nodeName;
626
+ var parentNode = target.parentElement && target.parentElement.nodeName;
606
627
  if (targetNode == 'INPUT' || targetNode == 'BUTTON' || targetNode == 'A' ||
607
628
  parentNode == 'INPUT' || parentNode == 'BUTTON' || parentNode == 'A' ||
608
629
  (domhandler_1.DomHandler.hasClass(event.originalEvent.target, 'ui-clickable'))) {
@@ -764,6 +785,10 @@ var Table = /** @class */ (function () {
764
785
  rangeStart = rowIndex;
765
786
  rangeEnd = rowIndex;
766
787
  }
788
+ if (this.lazy && this.paginator) {
789
+ rangeStart -= this.first;
790
+ rangeEnd -= this.first;
791
+ }
767
792
  for (var i = rangeStart; i <= rangeEnd; i++) {
768
793
  var rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];
769
794
  if (!this.isSelected(rangeRowData)) {
@@ -909,6 +934,7 @@ var Table = /** @class */ (function () {
909
934
  _this._filter();
910
935
  _this.filterTimeout = null;
911
936
  }, this.filterDelay);
937
+ this.anchorRowIndex = null;
912
938
  };
913
939
  Table.prototype.filterGlobal = function (value, matchMode) {
914
940
  this.filter(value, 'global', matchMode);
@@ -1002,10 +1028,14 @@ var Table = /** @class */ (function () {
1002
1028
  if (this.isStateful() && !this.restoringFilter) {
1003
1029
  this.saveState();
1004
1030
  }
1005
- if (this.restoringFilter)
1031
+ if (this.restoringFilter) {
1006
1032
  this.restoringFilter = false;
1007
- else
1033
+ }
1034
+ else {
1008
1035
  this.first = 0;
1036
+ this.firstChange.emit(this.first);
1037
+ }
1038
+ this.cd.detectChanges();
1009
1039
  };
1010
1040
  Table.prototype.hasFilter = function () {
1011
1041
  var empty = true;
@@ -1036,6 +1066,7 @@ var Table = /** @class */ (function () {
1036
1066
  this.filteredValue = null;
1037
1067
  this.filters = {};
1038
1068
  this.first = 0;
1069
+ this.firstChange.emit(this.first);
1039
1070
  if (this.lazy) {
1040
1071
  this.onLazyLoad.emit(this.createLazyLoadMetadata());
1041
1072
  }
@@ -1108,8 +1139,10 @@ var Table = /** @class */ (function () {
1108
1139
  document.body.removeChild(link);
1109
1140
  }
1110
1141
  };
1111
- Table.prototype.updateEditingCell = function (cell) {
1142
+ Table.prototype.updateEditingCell = function (cell, data, field) {
1112
1143
  this.editingCell = cell;
1144
+ this.editingCellData = data;
1145
+ this.editingCellField = field;
1113
1146
  this.bindDocumentEditListener();
1114
1147
  };
1115
1148
  Table.prototype.isEditingCellValid = function () {
@@ -1122,6 +1155,9 @@ var Table = /** @class */ (function () {
1122
1155
  if (_this.editingCell && !_this.editingCellClick && _this.isEditingCellValid()) {
1123
1156
  domhandler_1.DomHandler.removeClass(_this.editingCell, 'ui-editing-cell');
1124
1157
  _this.editingCell = null;
1158
+ _this.onEditComplete.emit({ field: _this.editingCellField, data: _this.editingCellData });
1159
+ _this.editingCellField = null;
1160
+ _this.editingCellData = null;
1125
1161
  _this.unbindDocumentEditListener();
1126
1162
  }
1127
1163
  _this.editingCellClick = false;
@@ -1243,19 +1279,7 @@ var Table = /** @class */ (function () {
1243
1279
  else if (this.columnResizeMode === 'expand') {
1244
1280
  if (newColumnWidth > minWidth) {
1245
1281
  if (this.scrollable) {
1246
- var scrollableView = this.findParentScrollableView(column);
1247
- var scrollableBodyTable = domhandler_1.DomHandler.findSingle(scrollableView, 'table.ui-table-scrollable-body-table');
1248
- var scrollableHeaderTable = domhandler_1.DomHandler.findSingle(scrollableView, 'table.ui-table-scrollable-header-table');
1249
- var scrollableFooterTable = domhandler_1.DomHandler.findSingle(scrollableView, 'table.ui-table-scrollable-footer-table');
1250
- scrollableBodyTable.style.width = scrollableBodyTable.offsetWidth + delta + 'px';
1251
- scrollableHeaderTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';
1252
- if (scrollableFooterTable) {
1253
- scrollableFooterTable.style.width = scrollableHeaderTable.offsetWidth + delta + 'px';
1254
- }
1255
- var resizeColumnIndex = domhandler_1.DomHandler.index(column);
1256
- this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);
1257
- this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);
1258
- this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);
1282
+ this.setScrollableItemsWidthOnExpandResize(column, newColumnWidth, delta);
1259
1283
  }
1260
1284
  else {
1261
1285
  this.tableViewChild.nativeElement.style.width = this.tableViewChild.nativeElement.offsetWidth + delta + 'px';
@@ -1276,6 +1300,33 @@ var Table = /** @class */ (function () {
1276
1300
  this.resizeHelperViewChild.nativeElement.style.display = 'none';
1277
1301
  domhandler_1.DomHandler.removeClass(this.containerViewChild.nativeElement, 'ui-unselectable-text');
1278
1302
  };
1303
+ Table.prototype.setScrollableItemsWidthOnExpandResize = function (column, newColumnWidth, delta) {
1304
+ var scrollableView = column ? this.findParentScrollableView(column) : this.containerViewChild.nativeElement;
1305
+ var scrollableBody = domhandler_1.DomHandler.findSingle(scrollableView, '.ui-table-scrollable-body');
1306
+ var scrollableHeader = domhandler_1.DomHandler.findSingle(scrollableView, '.ui-table-scrollable-header');
1307
+ var scrollableFooter = domhandler_1.DomHandler.findSingle(scrollableView, '.ui-table-scrollable-footer');
1308
+ var scrollableBodyTable = domhandler_1.DomHandler.findSingle(scrollableBody, 'table.ui-table-scrollable-body-table');
1309
+ var scrollableHeaderTable = domhandler_1.DomHandler.findSingle(scrollableHeader, 'table.ui-table-scrollable-header-table');
1310
+ var scrollableFooterTable = domhandler_1.DomHandler.findSingle(scrollableFooter, 'table.ui-table-scrollable-footer-table');
1311
+ var scrollableBodyTableWidth = column ? scrollableBodyTable.offsetWidth + delta : newColumnWidth;
1312
+ var scrollableHeaderTableWidth = column ? scrollableHeaderTable.offsetWidth + delta : newColumnWidth;
1313
+ var isContainerInViewport = this.containerViewChild.nativeElement.offsetWidth >= scrollableBodyTableWidth;
1314
+ var setWidth = function (container, table, width, isContainerInViewport) {
1315
+ if (container && table) {
1316
+ container.style.width = isContainerInViewport ? width + domhandler_1.DomHandler.calculateScrollbarWidth(scrollableBody) + 'px' : 'auto';
1317
+ table.style.width = width + 'px';
1318
+ }
1319
+ };
1320
+ setWidth(scrollableBody, scrollableBodyTable, scrollableBodyTableWidth, isContainerInViewport);
1321
+ setWidth(scrollableHeader, scrollableHeaderTable, scrollableHeaderTableWidth, isContainerInViewport);
1322
+ setWidth(scrollableFooter, scrollableFooterTable, scrollableHeaderTableWidth, isContainerInViewport);
1323
+ if (column) {
1324
+ var resizeColumnIndex = domhandler_1.DomHandler.index(column);
1325
+ this.resizeColGroup(scrollableHeaderTable, resizeColumnIndex, newColumnWidth, null);
1326
+ this.resizeColGroup(scrollableBodyTable, resizeColumnIndex, newColumnWidth, null);
1327
+ this.resizeColGroup(scrollableFooterTable, resizeColumnIndex, newColumnWidth, null);
1328
+ }
1329
+ };
1279
1330
  Table.prototype.findParentScrollableView = function (column) {
1280
1331
  if (column) {
1281
1332
  var parent_1 = column.parentElement;
@@ -1445,6 +1496,7 @@ var Table = /** @class */ (function () {
1445
1496
  Table.prototype.handleVirtualScroll = function (event) {
1446
1497
  var _this = this;
1447
1498
  this.first = (event.page - 1) * this.rows;
1499
+ this.firstChange.emit(this.first);
1448
1500
  this.virtualScrollCallback = event.callback;
1449
1501
  this.zone.run(function () {
1450
1502
  if (_this.virtualScrollTimer) {
@@ -1507,6 +1559,7 @@ var Table = /** @class */ (function () {
1507
1559
  if (Object.keys(state).length) {
1508
1560
  storage.setItem(this.stateKey, JSON.stringify(state));
1509
1561
  }
1562
+ this.onStateSave.emit(state);
1510
1563
  };
1511
1564
  Table.prototype.clearState = function () {
1512
1565
  var storage = this.getStorage();
@@ -1522,6 +1575,7 @@ var Table = /** @class */ (function () {
1522
1575
  if (this.paginator) {
1523
1576
  this.first = state.first;
1524
1577
  this.rows = state.rows;
1578
+ this.firstChange.emit(this.first);
1525
1579
  }
1526
1580
  if (state.sortField) {
1527
1581
  this.restoringSort = true;
@@ -1547,6 +1601,7 @@ var Table = /** @class */ (function () {
1547
1601
  this.selection = state.selection;
1548
1602
  }
1549
1603
  this.stateRestored = true;
1604
+ this.onStateRestore.emit(state);
1550
1605
  }
1551
1606
  };
1552
1607
  Table.prototype.saveColumnWidths = function (state) {
@@ -1564,14 +1619,7 @@ var Table = /** @class */ (function () {
1564
1619
  var widths_1 = this.columnWidthsState.split(',');
1565
1620
  if (this.columnResizeMode === 'expand' && this.tableWidthState) {
1566
1621
  if (this.scrollable) {
1567
- var scrollableBodyTable = domhandler_1.DomHandler.findSingle(this.containerViewChild.nativeElement, '.ui-table-scrollable-body-table');
1568
- var scrollableHeaderTable = domhandler_1.DomHandler.findSingle(this.containerViewChild.nativeElement, '.ui-table-scrollable-header-table');
1569
- var scrollableFooterTable = domhandler_1.DomHandler.findSingle(this.containerViewChild.nativeElement, '.ui-table-scrollable-footer-table');
1570
- scrollableBodyTable.style.width = this.tableWidthState;
1571
- scrollableHeaderTable.style.width = this.tableWidthState;
1572
- if (scrollableFooterTable) {
1573
- scrollableFooterTable.style.width = this.tableWidthState;
1574
- }
1622
+ this.setScrollableItemsWidthOnExpandResize(null, this.tableWidthState, 0);
1575
1623
  }
1576
1624
  else {
1577
1625
  this.tableViewChild.nativeElement.style.width = this.tableWidthState;
@@ -1665,10 +1713,6 @@ var Table = /** @class */ (function () {
1665
1713
  core_1.Input(),
1666
1714
  __metadata("design:type", Number)
1667
1715
  ], Table.prototype, "rows", void 0);
1668
- __decorate([
1669
- core_1.Input(),
1670
- __metadata("design:type", Number)
1671
- ], Table.prototype, "first", void 0);
1672
1716
  __decorate([
1673
1717
  core_1.Input(),
1674
1718
  __metadata("design:type", Number)
@@ -1689,6 +1733,14 @@ var Table = /** @class */ (function () {
1689
1733
  core_1.Input(),
1690
1734
  __metadata("design:type", Object)
1691
1735
  ], Table.prototype, "paginatorDropdownAppendTo", void 0);
1736
+ __decorate([
1737
+ core_1.Input(),
1738
+ __metadata("design:type", String)
1739
+ ], Table.prototype, "currentPageReportTemplate", void 0);
1740
+ __decorate([
1741
+ core_1.Input(),
1742
+ __metadata("design:type", Boolean)
1743
+ ], Table.prototype, "showCurrentPageReport", void 0);
1692
1744
  __decorate([
1693
1745
  core_1.Input(),
1694
1746
  __metadata("design:type", Number)
@@ -1929,6 +1981,18 @@ var Table = /** @class */ (function () {
1929
1981
  core_1.Output(),
1930
1982
  __metadata("design:type", core_1.EventEmitter)
1931
1983
  ], Table.prototype, "sortFunction", void 0);
1984
+ __decorate([
1985
+ core_1.Output(),
1986
+ __metadata("design:type", core_1.EventEmitter)
1987
+ ], Table.prototype, "firstChange", void 0);
1988
+ __decorate([
1989
+ core_1.Output(),
1990
+ __metadata("design:type", core_1.EventEmitter)
1991
+ ], Table.prototype, "onStateSave", void 0);
1992
+ __decorate([
1993
+ core_1.Output(),
1994
+ __metadata("design:type", core_1.EventEmitter)
1995
+ ], Table.prototype, "onStateRestore", void 0);
1932
1996
  __decorate([
1933
1997
  core_1.ViewChild('container'),
1934
1998
  __metadata("design:type", core_1.ElementRef)
@@ -1963,6 +2027,11 @@ var Table = /** @class */ (function () {
1963
2027
  __metadata("design:type", Array),
1964
2028
  __metadata("design:paramtypes", [Array])
1965
2029
  ], Table.prototype, "columns", null);
2030
+ __decorate([
2031
+ core_1.Input(),
2032
+ __metadata("design:type", Number),
2033
+ __metadata("design:paramtypes", [Number])
2034
+ ], Table.prototype, "first", null);
1966
2035
  __decorate([
1967
2036
  core_1.Input(),
1968
2037
  __metadata("design:type", Number),
@@ -1991,10 +2060,10 @@ var Table = /** @class */ (function () {
1991
2060
  Table = __decorate([
1992
2061
  core_1.Component({
1993
2062
  selector: 'p-table',
1994
- template: "\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\"\n [ngClass]=\"{'ui-table ui-widget': true, 'ui-table-responsive': responsive, 'ui-table-resizable': resizableColumns,\n 'ui-table-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'ui-table-hoverable-rows': (rowHover||selectionMode), 'ui-table-auto-layout': autoLayout}\">\n <div class=\"ui-table-loading ui-widget-overlay\" *ngIf=\"loading && showLoader\"></div>\n <div class=\"ui-table-loading-content\" *ngIf=\"loading && showLoader\">\n <i [class]=\"'ui-table-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"ui-table-caption ui-widget-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\"></p-paginator>\n \n <div class=\"ui-table-wrapper\" *ngIf=\"!scrollable\">\n <table #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"ui-table-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tfoot *ngIf=\"footerTemplate\" class=\"ui-table-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n <tbody class=\"ui-table-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"bodyTemplate\"></tbody>\n </table>\n </div>\n\n <div class=\"ui-table-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"ui-table-scrollable-view ui-table-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" [pScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"ui-table-scrollable-view\" [pScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{left: frozenWidth, width: 'calc(100% - '+frozenWidth+')'}\"></div>\n </div>\n \n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-bottom\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\"></p-paginator>\n <div *ngIf=\"summaryTemplate\" class=\"ui-table-summary ui-widget-header\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"ui-column-resizer-helper ui-state-highlight\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n\n <span #reorderIndicatorUp class=\"pi pi-arrow-down ui-table-reorder-indicator-up\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up ui-table-reorder-indicator-down\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n </div>\n ",
2063
+ template: "\n <div #container [ngStyle]=\"style\" [class]=\"styleClass\"\n [ngClass]=\"{'ui-table ui-widget': true, 'ui-table-responsive': responsive, 'ui-table-resizable': resizableColumns,\n 'ui-table-resizable-fit': (resizableColumns && columnResizeMode === 'fit'),\n 'ui-table-hoverable-rows': (rowHover||selectionMode), 'ui-table-auto-layout': autoLayout}\">\n <div class=\"ui-table-loading ui-widget-overlay\" *ngIf=\"loading && showLoader\"></div>\n <div class=\"ui-table-loading-content\" *ngIf=\"loading && showLoader\">\n <i [class]=\"'ui-table-loading-icon pi-spin ' + loadingIcon\"></i>\n </div>\n <div *ngIf=\"captionTemplate\" class=\"ui-table-caption ui-widget-header\">\n <ng-container *ngTemplateOutlet=\"captionTemplate\"></ng-container>\n </div>\n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-top\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'top' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\"></p-paginator>\n \n <div class=\"ui-table-wrapper\" *ngIf=\"!scrollable\">\n <table #table [ngClass]=\"tableStyleClass\" [ngStyle]=\"tableStyle\">\n <ng-container *ngTemplateOutlet=\"colGroupTemplate; context {$implicit: columns}\"></ng-container>\n <thead class=\"ui-table-thead\">\n <ng-container *ngTemplateOutlet=\"headerTemplate; context: {$implicit: columns}\"></ng-container>\n </thead>\n <tfoot *ngIf=\"footerTemplate\" class=\"ui-table-tfoot\">\n <ng-container *ngTemplateOutlet=\"footerTemplate; context {$implicit: columns}\"></ng-container>\n </tfoot>\n <tbody class=\"ui-table-tbody\" [pTableBody]=\"columns\" [pTableBodyTemplate]=\"bodyTemplate\"></tbody>\n </table>\n </div>\n\n <div class=\"ui-table-scrollable-wrapper\" *ngIf=\"scrollable\">\n <div class=\"ui-table-scrollable-view ui-table-frozen-view\" *ngIf=\"frozenColumns||frozenBodyTemplate\" [pScrollableView]=\"frozenColumns\" [frozen]=\"true\" [ngStyle]=\"{width: frozenWidth}\" [scrollHeight]=\"scrollHeight\"></div>\n <div class=\"ui-table-scrollable-view\" [pScrollableView]=\"columns\" [frozen]=\"false\" [scrollHeight]=\"scrollHeight\" [ngStyle]=\"{left: frozenWidth, width: 'calc(100% - '+frozenWidth+')'}\"></div>\n </div>\n \n <p-paginator [rows]=\"rows\" [first]=\"first\" [totalRecords]=\"totalRecords\" [pageLinkSize]=\"pageLinks\" styleClass=\"ui-paginator-bottom\" [alwaysShow]=\"alwaysShowPaginator\"\n (onPageChange)=\"onPageChange($event)\" [rowsPerPageOptions]=\"rowsPerPageOptions\" *ngIf=\"paginator && (paginatorPosition === 'bottom' || paginatorPosition =='both')\"\n [templateLeft]=\"paginatorLeftTemplate\" [templateRight]=\"paginatorRightTemplate\" [dropdownAppendTo]=\"paginatorDropdownAppendTo\"\n [currentPageReportTemplate]=\"currentPageReportTemplate\" [showCurrentPageReport]=\"showCurrentPageReport\"></p-paginator>\n \n <div *ngIf=\"summaryTemplate\" class=\"ui-table-summary ui-widget-header\">\n <ng-container *ngTemplateOutlet=\"summaryTemplate\"></ng-container>\n </div>\n\n <div #resizeHelper class=\"ui-column-resizer-helper ui-state-highlight\" style=\"display:none\" *ngIf=\"resizableColumns\"></div>\n\n <span #reorderIndicatorUp class=\"pi pi-arrow-down ui-table-reorder-indicator-up\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n <span #reorderIndicatorDown class=\"pi pi-arrow-up ui-table-reorder-indicator-down\" style=\"display:none\" *ngIf=\"reorderableColumns\"></span>\n </div>\n ",
1995
2064
  providers: [TableService]
1996
2065
  }),
1997
- __metadata("design:paramtypes", [core_1.ElementRef, core_1.NgZone, TableService])
2066
+ __metadata("design:paramtypes", [core_1.ElementRef, core_1.NgZone, TableService, core_1.ChangeDetectorRef])
1998
2067
  ], Table);
1999
2068
  return Table;
2000
2069
  }());
@@ -2111,7 +2180,7 @@ var ScrollableView = /** @class */ (function () {
2111
2180
  var scrollBarWidth = domhandler_1.DomHandler.calculateScrollbarWidth();
2112
2181
  if (_this.scrollHeaderViewChild && _this.scrollHeaderViewChild.nativeElement) {
2113
2182
  _this.headerScrollListener = _this.onHeaderScroll.bind(_this);
2114
- _this.scrollHeaderBoxViewChild.nativeElement.addEventListener('scroll', _this.headerScrollListener);
2183
+ _this.scrollHeaderViewChild.nativeElement.addEventListener('scroll', _this.headerScrollListener);
2115
2184
  }
2116
2185
  if (_this.scrollFooterViewChild && _this.scrollFooterViewChild.nativeElement) {
2117
2186
  _this.footerScrollListener = _this.onFooterScroll.bind(_this);
@@ -2125,7 +2194,7 @@ var ScrollableView = /** @class */ (function () {
2125
2194
  };
2126
2195
  ScrollableView.prototype.unbindEvents = function () {
2127
2196
  if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {
2128
- this.scrollHeaderBoxViewChild.nativeElement.removeEventListener('scroll', this.headerScrollListener);
2197
+ this.scrollHeaderViewChild.nativeElement.removeEventListener('scroll', this.headerScrollListener);
2129
2198
  }
2130
2199
  if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {
2131
2200
  this.scrollFooterViewChild.nativeElement.removeEventListener('scroll', this.footerScrollListener);
@@ -2133,13 +2202,27 @@ var ScrollableView = /** @class */ (function () {
2133
2202
  this.scrollBodyViewChild.nativeElement.removeEventListener('scroll', this.bodyScrollListener);
2134
2203
  };
2135
2204
  ScrollableView.prototype.onHeaderScroll = function (event) {
2136
- this.scrollHeaderViewChild.nativeElement.scrollLeft = 0;
2205
+ var scrollLeft = this.scrollHeaderViewChild.nativeElement.scrollLeft;
2206
+ this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;
2207
+ if (this.scrollFooterViewChild && this.scrollFooterViewChild.nativeElement) {
2208
+ this.scrollFooterViewChild.nativeElement.scrollLeft = scrollLeft;
2209
+ }
2210
+ this.preventBodyScrollPropagation = true;
2137
2211
  };
2138
2212
  ScrollableView.prototype.onFooterScroll = function (event) {
2139
- this.scrollFooterViewChild.nativeElement.scrollLeft = 0;
2213
+ var scrollLeft = this.scrollFooterViewChild.nativeElement.scrollLeft;
2214
+ this.scrollBodyViewChild.nativeElement.scrollLeft = scrollLeft;
2215
+ if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {
2216
+ this.scrollHeaderViewChild.nativeElement.scrollLeft = scrollLeft;
2217
+ }
2218
+ this.preventBodyScrollPropagation = true;
2140
2219
  };
2141
2220
  ScrollableView.prototype.onBodyScroll = function (event) {
2142
2221
  var _this = this;
2222
+ if (this.preventBodyScrollPropagation) {
2223
+ this.preventBodyScrollPropagation = false;
2224
+ return;
2225
+ }
2143
2226
  if (this.scrollHeaderViewChild && this.scrollHeaderViewChild.nativeElement) {
2144
2227
  this.scrollHeaderBoxViewChild.nativeElement.style.marginLeft = -1 * this.scrollBodyViewChild.nativeElement.scrollLeft + 'px';
2145
2228
  }
@@ -2172,6 +2255,7 @@ var ScrollableView = /** @class */ (function () {
2172
2255
  if (_this.frozenSiblingBody) {
2173
2256
  _this.frozenSiblingBody.children[0].style.top = _this.scrollTableViewChild.nativeElement.style.top;
2174
2257
  }
2258
+ _this.dt.anchorRowIndex = null;
2175
2259
  }
2176
2260
  });
2177
2261
  }
@@ -2937,7 +3021,7 @@ var EditableColumn = /** @class */ (function () {
2937
3021
  };
2938
3022
  EditableColumn.prototype.openCell = function () {
2939
3023
  var _this = this;
2940
- this.dt.updateEditingCell(this.el.nativeElement);
3024
+ this.dt.updateEditingCell(this.el.nativeElement, this.data, this.field);
2941
3025
  domhandler_1.DomHandler.addClass(this.el.nativeElement, 'ui-editing-cell');
2942
3026
  this.dt.onEditInit.emit({ field: this.field, data: this.data });
2943
3027
  this.zone.runOutsideAngular(function () {
@@ -2953,6 +3037,8 @@ var EditableColumn = /** @class */ (function () {
2953
3037
  EditableColumn.prototype.closeEditingCell = function () {
2954
3038
  domhandler_1.DomHandler.removeClass(this.dt.editingCell, 'ui-editing-cell');
2955
3039
  this.dt.editingCell = null;
3040
+ this.dt.editingCellData = null;
3041
+ this.dt.editingCellField = null;
2956
3042
  this.dt.unbindDocumentEditListener();
2957
3043
  };
2958
3044
  EditableColumn.prototype.onKeyDown = function (event) {