primeng 13.0.2 → 13.1.1

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 (166) hide show
  1. package/api/translation.d.ts +1 -0
  2. package/api/translationkeys.d.ts +1 -0
  3. package/calendar/calendar.d.ts +7 -2
  4. package/contextmenu/contextmenu.d.ts +2 -0
  5. package/dropdown/dropdown.d.ts +1 -0
  6. package/esm2020/api/primengconfig.mjs +2 -1
  7. package/esm2020/api/translation.mjs +1 -1
  8. package/esm2020/api/translationkeys.mjs +2 -1
  9. package/esm2020/calendar/calendar.mjs +61 -32
  10. package/esm2020/cascadeselect/cascadeselect.mjs +3 -3
  11. package/esm2020/chip/chip.mjs +2 -2
  12. package/esm2020/contextmenu/contextmenu.mjs +13 -2
  13. package/esm2020/dropdown/dropdown.mjs +10 -8
  14. package/esm2020/fileupload/fileupload.mjs +14 -5
  15. package/esm2020/galleria/galleria.mjs +3 -3
  16. package/esm2020/megamenu/megamenu.mjs +2 -2
  17. package/esm2020/multiselect/multiselect.mjs +13 -8
  18. package/esm2020/organizationchart/organizationchart.mjs +3 -3
  19. package/esm2020/password/password.mjs +8 -3
  20. package/esm2020/slidemenu/slidemenu.mjs +3 -3
  21. package/esm2020/splitter/splitter.mjs +21 -6
  22. package/esm2020/steps/steps.mjs +7 -6
  23. package/esm2020/table/table.mjs +146 -120
  24. package/esm2020/tabmenu/tabmenu.mjs +27 -12
  25. package/esm2020/tabview/tabview.mjs +7 -4
  26. package/esm2020/timeline/timeline.mjs +2 -2
  27. package/esm2020/tree/tree.mjs +3 -3
  28. package/esm2020/treetable/treetable.mjs +16 -19
  29. package/esm2020/utils/objectutils.mjs +9 -1
  30. package/fesm2015/primeng-api.mjs +2 -0
  31. package/fesm2015/primeng-api.mjs.map +1 -1
  32. package/fesm2015/primeng-calendar.mjs +60 -31
  33. package/fesm2015/primeng-calendar.mjs.map +1 -1
  34. package/fesm2015/primeng-cascadeselect.mjs +2 -2
  35. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  36. package/fesm2015/primeng-chip.mjs +2 -2
  37. package/fesm2015/primeng-contextmenu.mjs +12 -1
  38. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  39. package/fesm2015/primeng-dropdown.mjs +9 -7
  40. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  41. package/fesm2015/primeng-fileupload.mjs +13 -4
  42. package/fesm2015/primeng-fileupload.mjs.map +1 -1
  43. package/fesm2015/primeng-galleria.mjs +2 -2
  44. package/fesm2015/primeng-galleria.mjs.map +1 -1
  45. package/fesm2015/primeng-megamenu.mjs +1 -1
  46. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  47. package/fesm2015/primeng-multiselect.mjs +12 -7
  48. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  49. package/fesm2015/primeng-organizationchart.mjs +2 -2
  50. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  51. package/fesm2015/primeng-password.mjs +7 -2
  52. package/fesm2015/primeng-password.mjs.map +1 -1
  53. package/fesm2015/primeng-slidemenu.mjs +2 -2
  54. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  55. package/fesm2015/primeng-splitter.mjs +20 -5
  56. package/fesm2015/primeng-splitter.mjs.map +1 -1
  57. package/fesm2015/primeng-steps.mjs +6 -5
  58. package/fesm2015/primeng-steps.mjs.map +1 -1
  59. package/fesm2015/primeng-table.mjs +145 -119
  60. package/fesm2015/primeng-table.mjs.map +1 -1
  61. package/fesm2015/primeng-tabmenu.mjs +26 -11
  62. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  63. package/fesm2015/primeng-tabview.mjs +6 -3
  64. package/fesm2015/primeng-tabview.mjs.map +1 -1
  65. package/fesm2015/primeng-timeline.mjs +2 -2
  66. package/fesm2015/primeng-tree.mjs +2 -2
  67. package/fesm2015/primeng-tree.mjs.map +1 -1
  68. package/fesm2015/primeng-treetable.mjs +15 -18
  69. package/fesm2015/primeng-treetable.mjs.map +1 -1
  70. package/fesm2015/primeng-utils.mjs +8 -0
  71. package/fesm2015/primeng-utils.mjs.map +1 -1
  72. package/fesm2020/primeng-api.mjs +2 -0
  73. package/fesm2020/primeng-api.mjs.map +1 -1
  74. package/fesm2020/primeng-calendar.mjs +60 -31
  75. package/fesm2020/primeng-calendar.mjs.map +1 -1
  76. package/fesm2020/primeng-cascadeselect.mjs +2 -2
  77. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  78. package/fesm2020/primeng-chip.mjs +2 -2
  79. package/fesm2020/primeng-contextmenu.mjs +12 -1
  80. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  81. package/fesm2020/primeng-dropdown.mjs +9 -7
  82. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  83. package/fesm2020/primeng-fileupload.mjs +13 -4
  84. package/fesm2020/primeng-fileupload.mjs.map +1 -1
  85. package/fesm2020/primeng-galleria.mjs +2 -2
  86. package/fesm2020/primeng-galleria.mjs.map +1 -1
  87. package/fesm2020/primeng-megamenu.mjs +1 -1
  88. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  89. package/fesm2020/primeng-multiselect.mjs +12 -7
  90. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  91. package/fesm2020/primeng-organizationchart.mjs +2 -2
  92. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  93. package/fesm2020/primeng-password.mjs +7 -2
  94. package/fesm2020/primeng-password.mjs.map +1 -1
  95. package/fesm2020/primeng-slidemenu.mjs +2 -2
  96. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  97. package/fesm2020/primeng-splitter.mjs +20 -5
  98. package/fesm2020/primeng-splitter.mjs.map +1 -1
  99. package/fesm2020/primeng-steps.mjs +6 -5
  100. package/fesm2020/primeng-steps.mjs.map +1 -1
  101. package/fesm2020/primeng-table.mjs +145 -119
  102. package/fesm2020/primeng-table.mjs.map +1 -1
  103. package/fesm2020/primeng-tabmenu.mjs +26 -11
  104. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  105. package/fesm2020/primeng-tabview.mjs +6 -3
  106. package/fesm2020/primeng-tabview.mjs.map +1 -1
  107. package/fesm2020/primeng-timeline.mjs +2 -2
  108. package/fesm2020/primeng-tree.mjs +2 -2
  109. package/fesm2020/primeng-tree.mjs.map +1 -1
  110. package/fesm2020/primeng-treetable.mjs +15 -18
  111. package/fesm2020/primeng-treetable.mjs.map +1 -1
  112. package/fesm2020/primeng-utils.mjs +8 -0
  113. package/fesm2020/primeng-utils.mjs.map +1 -1
  114. package/fileupload/fileupload.d.ts +1 -0
  115. package/multiselect/multiselect.d.ts +3 -1
  116. package/package.json +1 -1
  117. package/password/password.d.ts +1 -0
  118. package/resources/components/table/table.css +1 -1
  119. package/resources/components/tree/tree.css +1 -0
  120. package/resources/themes/arya-blue/theme.css +36 -20
  121. package/resources/themes/arya-green/theme.css +36 -20
  122. package/resources/themes/arya-orange/theme.css +36 -20
  123. package/resources/themes/arya-purple/theme.css +36 -20
  124. package/resources/themes/bootstrap4-dark-blue/theme.css +16 -3
  125. package/resources/themes/bootstrap4-dark-purple/theme.css +16 -3
  126. package/resources/themes/bootstrap4-light-blue/theme.css +16 -3
  127. package/resources/themes/bootstrap4-light-purple/theme.css +16 -3
  128. package/resources/themes/fluent-light/theme.css +36 -20
  129. package/resources/themes/lara-dark-blue/theme.css +385 -369
  130. package/resources/themes/lara-dark-indigo/theme.css +385 -369
  131. package/resources/themes/lara-dark-purple/theme.css +385 -369
  132. package/resources/themes/lara-dark-teal/theme.css +385 -369
  133. package/resources/themes/lara-light-blue/theme.css +36 -20
  134. package/resources/themes/lara-light-indigo/theme.css +36 -20
  135. package/resources/themes/lara-light-purple/theme.css +36 -20
  136. package/resources/themes/lara-light-teal/theme.css +36 -20
  137. package/resources/themes/luna-amber/theme.css +29 -20
  138. package/resources/themes/luna-blue/theme.css +29 -20
  139. package/resources/themes/luna-green/theme.css +29 -20
  140. package/resources/themes/luna-pink/theme.css +29 -20
  141. package/resources/themes/md-dark-deeppurple/theme.css +19 -3
  142. package/resources/themes/md-dark-indigo/theme.css +19 -3
  143. package/resources/themes/md-light-deeppurple/theme.css +20 -4
  144. package/resources/themes/md-light-indigo/theme.css +20 -4
  145. package/resources/themes/mdc-dark-deeppurple/theme.css +19 -3
  146. package/resources/themes/mdc-dark-indigo/theme.css +19 -3
  147. package/resources/themes/mdc-light-deeppurple/theme.css +20 -4
  148. package/resources/themes/mdc-light-indigo/theme.css +20 -4
  149. package/resources/themes/nova/theme.css +29 -20
  150. package/resources/themes/nova-accent/theme.css +29 -20
  151. package/resources/themes/nova-alt/theme.css +29 -20
  152. package/resources/themes/rhea/theme.css +29 -20
  153. package/resources/themes/saga-blue/theme.css +19 -3
  154. package/resources/themes/saga-green/theme.css +19 -3
  155. package/resources/themes/saga-orange/theme.css +19 -3
  156. package/resources/themes/saga-purple/theme.css +19 -3
  157. package/resources/themes/tailwind-light/theme.css +39 -23
  158. package/resources/themes/vela-blue/theme.css +36 -20
  159. package/resources/themes/vela-green/theme.css +36 -20
  160. package/resources/themes/vela-orange/theme.css +36 -20
  161. package/resources/themes/vela-purple/theme.css +36 -20
  162. package/splitter/splitter.d.ts +4 -3
  163. package/table/table.d.ts +13 -5
  164. package/tabmenu/tabmenu.d.ts +7 -1
  165. package/treetable/treetable.d.ts +2 -1
  166. package/utils/objectutils.d.ts +2 -0
@@ -90,6 +90,7 @@ class Table {
90
90
  this.defaultSortOrder = 1;
91
91
  this.sortMode = 'single';
92
92
  this.resetPageOnSort = true;
93
+ this.selectAllChange = new EventEmitter();
93
94
  this.selectionChange = new EventEmitter();
94
95
  this.contextMenuSelectionChange = new EventEmitter();
95
96
  this.contextMenuSelectionMode = "separate";
@@ -142,6 +143,7 @@ class Table {
142
143
  this._first = 0;
143
144
  this.selectionKeys = {};
144
145
  this._sortOrder = 1;
146
+ this._selectAll = null;
145
147
  this.columnResizing = false;
146
148
  this.rowGroupHeaderStyleObject = {};
147
149
  this.id = UniqueComponentId();
@@ -318,6 +320,17 @@ class Table {
318
320
  }
319
321
  this.preventSelectionSetterPropagation = false;
320
322
  }
323
+ if (simpleChange.selectAll) {
324
+ this._selectAll = simpleChange.selectAll.currentValue;
325
+ if (!this.preventSelectionSetterPropagation) {
326
+ this.updateSelectionKeys();
327
+ this.tableService.onSelectionChange();
328
+ if (this.isStateful()) {
329
+ this.saveState();
330
+ }
331
+ }
332
+ this.preventSelectionSetterPropagation = false;
333
+ }
321
334
  }
322
335
  get value() {
323
336
  return this._value;
@@ -374,6 +387,12 @@ class Table {
374
387
  set selection(val) {
375
388
  this._selection = val;
376
389
  }
390
+ get selectAll() {
391
+ return this._selection;
392
+ }
393
+ set selectAll(val) {
394
+ this._selection = val;
395
+ }
377
396
  get dataToRender() {
378
397
  let data = this.filteredValue || this.value;
379
398
  return data ? ((this.paginator && !this.lazy) ? (data.slice(this.first, this.first + this.rows)) : data) : [];
@@ -611,22 +630,26 @@ class Table {
611
630
  return;
612
631
  }
613
632
  if (this.selectionMode) {
633
+ let rowData = event.rowData;
634
+ let rowIndex = event.rowIndex;
614
635
  this.preventSelectionSetterPropagation = true;
615
636
  if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {
616
637
  DomHandler.clearSelection();
617
638
  if (this.rangeRowIndex != null) {
618
639
  this.clearSelectionRange(event.originalEvent);
619
640
  }
620
- this.rangeRowIndex = event.rowIndex;
621
- this.selectRange(event.originalEvent, event.rowIndex);
641
+ this.rangeRowIndex = rowIndex;
642
+ this.selectRange(event.originalEvent, rowIndex);
622
643
  }
623
644
  else {
624
- let rowData = event.rowData;
625
645
  let selected = this.isSelected(rowData);
646
+ if (!selected && !this.isRowSelectable(rowData, rowIndex)) {
647
+ return;
648
+ }
626
649
  let metaSelection = this.rowTouched ? false : this.metaKeySelection;
627
650
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;
628
- this.anchorRowIndex = event.rowIndex;
629
- this.rangeRowIndex = event.rowIndex;
651
+ this.anchorRowIndex = rowIndex;
652
+ this.rangeRowIndex = rowIndex;
630
653
  if (metaSelection) {
631
654
  let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;
632
655
  if (selected && metaKey) {
@@ -668,7 +691,7 @@ class Table {
668
691
  this.selectionKeys[dataKeyValue] = 1;
669
692
  }
670
693
  }
671
- this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });
694
+ this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: rowIndex });
672
695
  }
673
696
  }
674
697
  else {
@@ -677,12 +700,12 @@ class Table {
677
700
  this._selection = null;
678
701
  this.selectionKeys = {};
679
702
  this.selectionChange.emit(this.selection);
680
- this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });
703
+ this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: rowIndex });
681
704
  }
682
705
  else {
683
706
  this._selection = rowData;
684
707
  this.selectionChange.emit(this.selection);
685
- this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });
708
+ this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: rowIndex });
686
709
  if (dataKeyValue) {
687
710
  this.selectionKeys = {};
688
711
  this.selectionKeys[dataKeyValue] = 1;
@@ -694,7 +717,7 @@ class Table {
694
717
  let selectionIndex = this.findIndexInSelection(rowData);
695
718
  this._selection = this.selection.filter((val, i) => i != selectionIndex);
696
719
  this.selectionChange.emit(this.selection);
697
- this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });
720
+ this.onRowUnselect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: rowIndex });
698
721
  if (dataKeyValue) {
699
722
  delete this.selectionKeys[dataKeyValue];
700
723
  }
@@ -702,7 +725,7 @@ class Table {
702
725
  else {
703
726
  this._selection = this.selection ? [...this.selection, rowData] : [rowData];
704
727
  this.selectionChange.emit(this.selection);
705
- this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: event.rowIndex });
728
+ this.onRowSelect.emit({ originalEvent: event.originalEvent, data: rowData, type: 'row', index: rowIndex });
706
729
  if (dataKeyValue) {
707
730
  this.selectionKeys[dataKeyValue] = 1;
708
731
  }
@@ -723,6 +746,7 @@ class Table {
723
746
  handleRowRightClick(event) {
724
747
  if (this.contextMenu) {
725
748
  const rowData = event.rowData;
749
+ const rowIndex = event.rowIndex;
726
750
  if (this.contextMenuSelectionMode === 'separate') {
727
751
  this.contextMenuSelection = rowData;
728
752
  this.contextMenuSelectionChange.emit(rowData);
@@ -735,6 +759,9 @@ class Table {
735
759
  let selected = this.isSelected(rowData);
736
760
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;
737
761
  if (!selected) {
762
+ if (!this.isRowSelectable(rowData, rowIndex)) {
763
+ return;
764
+ }
738
765
  if (this.isSingleSelectionMode()) {
739
766
  this.selection = rowData;
740
767
  this.selectionChange.emit(rowData);
@@ -779,6 +806,9 @@ class Table {
779
806
  for (let i = rangeStart; i <= rangeEnd; i++) {
780
807
  let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];
781
808
  if (!this.isSelected(rangeRowData)) {
809
+ if (!this.isRowSelectable(rangeRowData, rowIndex)) {
810
+ continue;
811
+ }
782
812
  rangeRowsData.push(rangeRowData);
783
813
  this._selection = [...this.selection, rangeRowData];
784
814
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;
@@ -841,9 +871,18 @@ class Table {
841
871
  }
842
872
  return index;
843
873
  }
874
+ isRowSelectable(data, index) {
875
+ if (this.rowSelectable && !this.rowSelectable({ data, index })) {
876
+ return false;
877
+ }
878
+ return true;
879
+ }
844
880
  toggleRowWithRadio(event, rowData) {
845
881
  this.preventSelectionSetterPropagation = true;
846
882
  if (this.selection != rowData) {
883
+ if (!this.isRowSelectable(rowData, event.rowIndex)) {
884
+ return;
885
+ }
847
886
  this._selection = rowData;
848
887
  this.selectionChange.emit(this.selection);
849
888
  this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton' });
@@ -877,6 +916,9 @@ class Table {
877
916
  }
878
917
  }
879
918
  else {
919
+ if (!this.isRowSelectable(rowData, event.rowIndex)) {
920
+ return;
921
+ }
880
922
  this._selection = this.selection ? [...this.selection, rowData] : [rowData];
881
923
  this.selectionChange.emit(this.selection);
882
924
  this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });
@@ -890,14 +932,25 @@ class Table {
890
932
  }
891
933
  }
892
934
  toggleRowsWithCheckbox(event, check) {
893
- this._selection = check ? this.filteredValue ? this.filteredValue.slice() : this.value.slice() : [];
894
- this.preventSelectionSetterPropagation = true;
895
- this.updateSelectionKeys();
896
- this.selectionChange.emit(this._selection);
897
- this.tableService.onSelectionChange();
898
- this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });
899
- if (this.isStateful()) {
900
- this.saveState();
935
+ if (this._selectAll !== null) {
936
+ this.selectAllChange.emit({ originalEvent: event, checked: check });
937
+ }
938
+ else {
939
+ const data = this.selectionPageOnly ? this.dataToRender : (this.filteredValue || this.value || []);
940
+ let selection = this.selectionPageOnly && this._selection ? this._selection.filter(s => !data.some(d => this.equals(s, d))) : [];
941
+ if (check) {
942
+ selection = this.frozenValue ? [...selection, ...this.frozenValue, ...data] : [...selection, ...data];
943
+ selection = this.rowSelectable ? selection.filter((data, index) => this.rowSelectable({ data, index })) : selection;
944
+ }
945
+ this._selection = selection;
946
+ this.preventSelectionSetterPropagation = true;
947
+ this.updateSelectionKeys();
948
+ this.selectionChange.emit(this._selection);
949
+ this.tableService.onSelectionChange();
950
+ this.onHeaderCheckboxToggle.emit({ originalEvent: event, checked: check });
951
+ if (this.isStateful()) {
952
+ this.saveState();
953
+ }
901
954
  }
902
955
  }
903
956
  equals(data1, data2) {
@@ -1078,6 +1131,9 @@ class Table {
1078
1131
  reset() {
1079
1132
  this.clear();
1080
1133
  }
1134
+ getExportHeader(column) {
1135
+ return column[this.exportHeader] || column.header || column.field;
1136
+ }
1081
1137
  exportCSV(options) {
1082
1138
  let data;
1083
1139
  let csv = '';
@@ -1095,7 +1151,7 @@ class Table {
1095
1151
  for (let i = 0; i < columns.length; i++) {
1096
1152
  let column = columns[i];
1097
1153
  if (column.exportable !== false && column.field) {
1098
- csv += '"' + (column.header || column.field) + '"';
1154
+ csv += '"' + this.getExportHeader(column) + '"';
1099
1155
  if (i < (columns.length - 1)) {
1100
1156
  csv += this.csvSeparator;
1101
1157
  }
@@ -1183,7 +1239,7 @@ class Table {
1183
1239
  if (this.virtualScrollBody) {
1184
1240
  this.virtualScrollBody.scrollTo(options);
1185
1241
  }
1186
- else {
1242
+ else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {
1187
1243
  if (this.wrapperViewChild.nativeElement.scrollTo) {
1188
1244
  this.wrapperViewChild.nativeElement.scrollTo(options);
1189
1245
  }
@@ -1311,25 +1367,14 @@ class Table {
1311
1367
  let nextColumn = this.resizeColumnElement.nextElementSibling;
1312
1368
  let nextColumnWidth = nextColumn.offsetWidth - delta;
1313
1369
  if (newColumnWidth > 15 && nextColumnWidth > 15) {
1314
- if (!this.scrollable) {
1315
- this.resizeColumnElement.style.width = newColumnWidth + 'px';
1316
- if (nextColumn) {
1317
- nextColumn.style.width = nextColumnWidth + 'px';
1318
- }
1319
- }
1320
- else {
1321
- this.resizeTableCells(newColumnWidth, nextColumnWidth);
1322
- }
1370
+ this.resizeTableCells(newColumnWidth, nextColumnWidth);
1323
1371
  }
1324
1372
  }
1325
1373
  else if (this.columnResizeMode === 'expand') {
1326
1374
  let tableWidth = this.tableViewChild.nativeElement.offsetWidth + delta;
1375
+ this.tableViewChild.nativeElement.style.width = tableWidth + 'px';
1327
1376
  this.tableViewChild.nativeElement.style.minWidth = tableWidth + 'px';
1328
- this.resizeColumnElement.style.width = newColumnWidth + 'px';
1329
- if (!this.scrollable)
1330
- this.tableViewChild.nativeElement.style.width = tableWidth + 'px';
1331
- else
1332
- this.resizeTableCells(newColumnWidth, null);
1377
+ this.resizeTableCells(newColumnWidth, null);
1333
1378
  }
1334
1379
  this.onColResize.emit({
1335
1380
  element: this.resizeColumnElement,
@@ -1353,13 +1398,12 @@ class Table {
1353
1398
  let innerHTML = '';
1354
1399
  widths.forEach((width, index) => {
1355
1400
  let colWidth = index === colIndex ? newColumnWidth : (nextColumnWidth && index === colIndex + 1) ? nextColumnWidth : width;
1401
+ let style = this.scrollable ? `flex: 1 1 ${colWidth}px !important` : `width: ${colWidth}px !important`;
1356
1402
  innerHTML += `
1357
- #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {
1358
- flex: 0 0 ${colWidth}px !important;
1359
- }
1360
-
1361
- #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {
1362
- flex: 0 0 ${colWidth}px !important;
1403
+ #${this.id} .p-datatable-thead > tr > th:nth-child(${index + 1}),
1404
+ #${this.id} .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1405
+ #${this.id} .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1406
+ ${style}
1363
1407
  }
1364
1408
  `;
1365
1409
  });
@@ -1631,27 +1675,21 @@ class Table {
1631
1675
  this.tableViewChild.nativeElement.style.minWidth = this.tableWidthState;
1632
1676
  this.containerViewChild.nativeElement.style.width = this.tableWidthState;
1633
1677
  }
1634
- this.createStyleElement();
1635
- if (this.scrollable && widths && widths.length > 0) {
1678
+ if (ObjectUtils.isNotEmpty(widths)) {
1679
+ this.createStyleElement();
1636
1680
  let innerHTML = '';
1637
1681
  widths.forEach((width, index) => {
1682
+ let style = this.scrollable ? `flex: 1 1 ${width}px !important` : `width: ${width}px !important`;
1638
1683
  innerHTML += `
1639
- #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {
1640
- flex: 0 0 ${width}px;
1641
- }
1642
-
1643
- #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {
1644
- flex: 0 0 ${width}px;
1645
- }
1646
- `;
1684
+ #${this.id} .p-datatable-thead > tr > th:nth-child(${index + 1}),
1685
+ #${this.id} .p-datatable-tbody > tr > td:nth-child(${index + 1}),
1686
+ #${this.id} .p-datatable-tfoot > tr > td:nth-child(${index + 1}) {
1687
+ ${style}
1688
+ }
1689
+ `;
1647
1690
  });
1648
1691
  this.styleElement.innerHTML = innerHTML;
1649
1692
  }
1650
- else {
1651
- DomHandler.find(this.tableViewChild.nativeElement, '.p-datatable-thead > tr > th').forEach((header, index) => {
1652
- header.style.width = widths[index] + 'px';
1653
- });
1654
- }
1655
1693
  }
1656
1694
  }
1657
1695
  saveColumnOrder(state) {
@@ -1764,7 +1802,7 @@ class Table {
1764
1802
  }
1765
1803
  }
1766
1804
  Table.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Table, deps: [{ token: i0.ElementRef }, { token: i0.NgZone }, { token: TableService }, { token: i0.ChangeDetectorRef }, { token: i1.FilterService }, { token: i1.OverlayService }], target: i0.ɵɵFactoryTarget.Component });
1767
- Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: Table, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollDelay: "virtualScrollDelay", virtualRowHeight: "virtualRowHeight", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection" }, outputs: { selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["tableHeader"], descendants: true }, { propertyName: "virtualScrollBody", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1805
+ Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: Table, selector: "p-table", inputs: { frozenColumns: "frozenColumns", frozenValue: "frozenValue", style: "style", styleClass: "styleClass", tableStyle: "tableStyle", tableStyleClass: "tableStyleClass", paginator: "paginator", pageLinks: "pageLinks", rowsPerPageOptions: "rowsPerPageOptions", alwaysShowPaginator: "alwaysShowPaginator", paginatorPosition: "paginatorPosition", paginatorDropdownAppendTo: "paginatorDropdownAppendTo", paginatorDropdownScrollHeight: "paginatorDropdownScrollHeight", currentPageReportTemplate: "currentPageReportTemplate", showCurrentPageReport: "showCurrentPageReport", showJumpToPageDropdown: "showJumpToPageDropdown", showJumpToPageInput: "showJumpToPageInput", showFirstLastIcon: "showFirstLastIcon", showPageLinks: "showPageLinks", defaultSortOrder: "defaultSortOrder", sortMode: "sortMode", resetPageOnSort: "resetPageOnSort", selectionMode: "selectionMode", selectionPageOnly: "selectionPageOnly", contextMenuSelection: "contextMenuSelection", contextMenuSelectionMode: "contextMenuSelectionMode", dataKey: "dataKey", metaKeySelection: "metaKeySelection", rowSelectable: "rowSelectable", rowTrackBy: "rowTrackBy", lazy: "lazy", lazyLoadOnInit: "lazyLoadOnInit", compareSelectionBy: "compareSelectionBy", csvSeparator: "csvSeparator", exportFilename: "exportFilename", filters: "filters", globalFilterFields: "globalFilterFields", filterDelay: "filterDelay", filterLocale: "filterLocale", expandedRowKeys: "expandedRowKeys", editingRowKeys: "editingRowKeys", rowExpandMode: "rowExpandMode", scrollable: "scrollable", scrollDirection: "scrollDirection", rowGroupMode: "rowGroupMode", scrollHeight: "scrollHeight", virtualScroll: "virtualScroll", virtualScrollDelay: "virtualScrollDelay", virtualRowHeight: "virtualRowHeight", frozenWidth: "frozenWidth", responsive: "responsive", contextMenu: "contextMenu", resizableColumns: "resizableColumns", columnResizeMode: "columnResizeMode", reorderableColumns: "reorderableColumns", loading: "loading", loadingIcon: "loadingIcon", showLoader: "showLoader", rowHover: "rowHover", customSort: "customSort", showInitialSortBadge: "showInitialSortBadge", autoLayout: "autoLayout", exportFunction: "exportFunction", exportHeader: "exportHeader", stateKey: "stateKey", stateStorage: "stateStorage", editMode: "editMode", groupRowsBy: "groupRowsBy", groupRowsByOrder: "groupRowsByOrder", minBufferPx: "minBufferPx", maxBufferPx: "maxBufferPx", responsiveLayout: "responsiveLayout", breakpoint: "breakpoint", value: "value", columns: "columns", first: "first", rows: "rows", totalRecords: "totalRecords", sortField: "sortField", sortOrder: "sortOrder", multiSortMeta: "multiSortMeta", selection: "selection", selectAll: "selectAll" }, outputs: { selectAllChange: "selectAllChange", selectionChange: "selectionChange", contextMenuSelectionChange: "contextMenuSelectionChange", onRowSelect: "onRowSelect", onRowUnselect: "onRowUnselect", onPage: "onPage", onSort: "onSort", onFilter: "onFilter", onLazyLoad: "onLazyLoad", onRowExpand: "onRowExpand", onRowCollapse: "onRowCollapse", onContextMenuSelect: "onContextMenuSelect", onColResize: "onColResize", onColReorder: "onColReorder", onRowReorder: "onRowReorder", onEditInit: "onEditInit", onEditComplete: "onEditComplete", onEditCancel: "onEditCancel", onHeaderCheckboxToggle: "onHeaderCheckboxToggle", sortFunction: "sortFunction", firstChange: "firstChange", rowsChange: "rowsChange", onStateSave: "onStateSave", onStateRestore: "onStateRestore" }, host: { classAttribute: "p-element" }, providers: [TableService], queries: [{ propertyName: "templates", predicate: PrimeTemplate }], viewQueries: [{ propertyName: "containerViewChild", first: true, predicate: ["container"], descendants: true }, { propertyName: "resizeHelperViewChild", first: true, predicate: ["resizeHelper"], descendants: true }, { propertyName: "reorderIndicatorUpViewChild", first: true, predicate: ["reorderIndicatorUp"], descendants: true }, { propertyName: "reorderIndicatorDownViewChild", first: true, predicate: ["reorderIndicatorDown"], descendants: true }, { propertyName: "wrapperViewChild", first: true, predicate: ["wrapper"], descendants: true }, { propertyName: "tableViewChild", first: true, predicate: ["table"], descendants: true }, { propertyName: "tableHeaderViewChild", first: true, predicate: ["tableHeader"], descendants: true }, { propertyName: "virtualScrollBody", first: true, predicate: CdkVirtualScrollViewport, descendants: true }], usesOnChanges: true, ngImport: i0, template: `
1768
1806
  <div #container [ngStyle]="style" [class]="styleClass"
1769
1807
  [ngClass]="{'p-datatable p-component': true,
1770
1808
  'p-datatable-hoverable-rows': (rowHover||selectionMode),
@@ -1832,7 +1870,7 @@ Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3
1832
1870
  <span #reorderIndicatorUp class="pi pi-arrow-down p-datatable-reorder-indicator-up" style="display:none" *ngIf="reorderableColumns"></span>
1833
1871
  <span #reorderIndicatorDown class="pi pi-arrow-up p-datatable-reorder-indicator-down" style="display:none" *ngIf="reorderableColumns"></span>
1834
1872
  </div>
1835
- `, isInline: true, styles: [".p-datatable{position:relative}.p-datatable table{border-collapse:collapse;min-width:100%;table-layout:fixed}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-auto-layout>.p-datatable-wrapper{overflow-x:auto}.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper{overflow-x:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper>table,.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable .p-datatable-wrapper{position:relative;overflow:auto}.p-datatable-scrollable .p-datatable-thead,.p-datatable-scrollable .p-datatable-tbody,.p-datatable-scrollable .p-datatable-tfoot{display:block}.p-datatable-scrollable .p-datatable-thead>tr,.p-datatable-scrollable .p-datatable-tbody>tr,.p-datatable-scrollable .p-datatable-tfoot>tr{display:flex;flex-wrap:nowrap;width:100%}.p-datatable-scrollable .p-datatable-thead>tr>th,.p-datatable-scrollable .p-datatable-tbody>tr>td,.p-datatable-scrollable .p-datatable-tfoot>tr>td{display:flex;flex:1 1 0;align-items:center}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-virtual-scrollable-body>.cdk-virtual-scroll-content-wrapper>.p-datatable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-scrollable-both .p-datatable-thead>tr>th,.p-datatable-scrollable-both .p-datatable-tbody>tr>td,.p-datatable-scrollable-both .p-datatable-tfoot>tr>td,.p-datatable-scrollable-horizontal .p-datatable-thead>tr>th .p-datatable-scrollable-horizontal .p-datatable-tbody>tr>td,.p-datatable-scrollable-horizontal .p-datatable-tfoot>tr>td{flex:0 0 auto}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable .p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable .p-rowgroup-header{position:sticky;z-index:1}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot{display:table;border-collapse:collapse;width:100%;table-layout:fixed}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr{display:table-row}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr>th,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr>td{display:table-cell}.p-datatable-flex-scrollable{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-flex-scrollable .p-datatable-virtual-scrollable-body{flex:1}.p-datatable-resizable>.p-datatable-wrapper{overflow-x:auto}.p-datatable-resizable .p-datatable-thead>tr>th,.p-datatable-resizable .p-datatable-tfoot>tr>td,.p-datatable-resizable .p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable .p-resizable-column{background-clip:padding-box;position:relative}.p-datatable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute;display:none}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable .p-datatable-tbody>tr>td>.p-column-title{display:none}cdk-virtual-scroll-viewport{outline:0 none}\n"], components: [{ type: i0.forwardRef(function () { return i2.Paginator; }), selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "templateLeft", "templateRight", "dropdownAppendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { type: i0.forwardRef(function () { return TableBody; }), selector: "[pTableBody]", inputs: ["pTableBody", "pTableBodyTemplate", "value", "frozen", "frozenRows"] }, { type: i0.forwardRef(function () { return i3.CdkVirtualScrollViewport; }), selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i0.forwardRef(function () { return i4.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i3.CdkFixedSizeVirtualScroll; }), selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1873
+ `, isInline: true, styles: [".p-datatable{position:relative}.p-datatable table{border-collapse:collapse;min-width:100%;table-layout:fixed}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-auto-layout>.p-datatable-wrapper{overflow-x:auto}.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper{overflow-x:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper>table,.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable .p-datatable-wrapper{position:relative;overflow:auto}.p-datatable-scrollable .p-datatable-thead,.p-datatable-scrollable .p-datatable-tbody,.p-datatable-scrollable .p-datatable-tfoot{display:block}.p-datatable-scrollable .p-datatable-thead>tr,.p-datatable-scrollable .p-datatable-tbody>tr,.p-datatable-scrollable .p-datatable-tfoot>tr{display:flex;flex-wrap:nowrap;width:100%}.p-datatable-scrollable .p-datatable-thead>tr>th,.p-datatable-scrollable .p-datatable-tbody>tr>td,.p-datatable-scrollable .p-datatable-tfoot>tr>td{display:flex;flex:1 1 0;align-items:center}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-virtual-scrollable-body>.cdk-virtual-scroll-content-wrapper>.p-datatable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-scrollable-both .p-datatable-thead>tr>th,.p-datatable-scrollable-both .p-datatable-tbody>tr>td,.p-datatable-scrollable-both .p-datatable-tfoot>tr>td,.p-datatable-scrollable-horizontal .p-datatable-thead>tr>th .p-datatable-scrollable-horizontal .p-datatable-tbody>tr>td,.p-datatable-scrollable-horizontal .p-datatable-tfoot>tr>td{flex:0 0 auto}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable .p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable .p-rowgroup-header{position:sticky;z-index:1}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot{display:table;border-collapse:collapse;width:100%;table-layout:fixed}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr{display:table-row}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr>th,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr>td{display:table-cell}.p-datatable-flex-scrollable{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-flex-scrollable .p-datatable-virtual-scrollable-body{flex:1}.p-datatable-resizable>.p-datatable-wrapper{overflow-x:auto}.p-datatable-resizable .p-datatable-thead>tr>th,.p-datatable-resizable .p-datatable-tfoot>tr>td,.p-datatable-resizable .p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable .p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute;display:none}.p-datatable-reorderablerow-handle{cursor:move}[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable .p-datatable-tbody>tr>td>.p-column-title{display:none}cdk-virtual-scroll-viewport{outline:0 none}\n"], components: [{ type: i0.forwardRef(function () { return i2.Paginator; }), selector: "p-paginator", inputs: ["pageLinkSize", "style", "styleClass", "alwaysShow", "templateLeft", "templateRight", "dropdownAppendTo", "dropdownScrollHeight", "currentPageReportTemplate", "showCurrentPageReport", "showFirstLastIcon", "totalRecords", "rows", "rowsPerPageOptions", "showJumpToPageDropdown", "showJumpToPageInput", "showPageLinks", "dropdownItemTemplate", "first"], outputs: ["onPageChange"] }, { type: i0.forwardRef(function () { return TableBody; }), selector: "[pTableBody]", inputs: ["pTableBody", "pTableBodyTemplate", "value", "frozen", "frozenRows"] }, { type: i0.forwardRef(function () { return i3.CdkVirtualScrollViewport; }), selector: "cdk-virtual-scroll-viewport", inputs: ["orientation", "appendOnly"], outputs: ["scrolledIndexChange"] }], directives: [{ type: i0.forwardRef(function () { return i4.NgStyle; }), selector: "[ngStyle]", inputs: ["ngStyle"] }, { type: i0.forwardRef(function () { return i4.NgClass; }), selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i0.forwardRef(function () { return i4.NgIf; }), selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i0.forwardRef(function () { return i4.NgTemplateOutlet; }), selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i0.forwardRef(function () { return i3.CdkFixedSizeVirtualScroll; }), selector: "cdk-virtual-scroll-viewport[itemSize]", inputs: ["itemSize", "minBufferPx", "maxBufferPx"] }], changeDetection: i0.ChangeDetectionStrategy.Default, encapsulation: i0.ViewEncapsulation.None });
1836
1874
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Table, decorators: [{
1837
1875
  type: Component,
1838
1876
  args: [{ selector: 'p-table', template: `
@@ -1905,7 +1943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1905
1943
  </div>
1906
1944
  `, providers: [TableService], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
1907
1945
  'class': 'p-element'
1908
- }, styles: [".p-datatable{position:relative}.p-datatable table{border-collapse:collapse;min-width:100%;table-layout:fixed}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-auto-layout>.p-datatable-wrapper{overflow-x:auto}.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper{overflow-x:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper>table,.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable .p-datatable-wrapper{position:relative;overflow:auto}.p-datatable-scrollable .p-datatable-thead,.p-datatable-scrollable .p-datatable-tbody,.p-datatable-scrollable .p-datatable-tfoot{display:block}.p-datatable-scrollable .p-datatable-thead>tr,.p-datatable-scrollable .p-datatable-tbody>tr,.p-datatable-scrollable .p-datatable-tfoot>tr{display:flex;flex-wrap:nowrap;width:100%}.p-datatable-scrollable .p-datatable-thead>tr>th,.p-datatable-scrollable .p-datatable-tbody>tr>td,.p-datatable-scrollable .p-datatable-tfoot>tr>td{display:flex;flex:1 1 0;align-items:center}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-virtual-scrollable-body>.cdk-virtual-scroll-content-wrapper>.p-datatable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-scrollable-both .p-datatable-thead>tr>th,.p-datatable-scrollable-both .p-datatable-tbody>tr>td,.p-datatable-scrollable-both .p-datatable-tfoot>tr>td,.p-datatable-scrollable-horizontal .p-datatable-thead>tr>th .p-datatable-scrollable-horizontal .p-datatable-tbody>tr>td,.p-datatable-scrollable-horizontal .p-datatable-tfoot>tr>td{flex:0 0 auto}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable .p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable .p-rowgroup-header{position:sticky;z-index:1}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot{display:table;border-collapse:collapse;width:100%;table-layout:fixed}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr{display:table-row}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr>th,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr>td{display:table-cell}.p-datatable-flex-scrollable{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-flex-scrollable .p-datatable-virtual-scrollable-body{flex:1}.p-datatable-resizable>.p-datatable-wrapper{overflow-x:auto}.p-datatable-resizable .p-datatable-thead>tr>th,.p-datatable-resizable .p-datatable-tfoot>tr>td,.p-datatable-resizable .p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable .p-resizable-column{background-clip:padding-box;position:relative}.p-datatable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel,.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute;display:none}.p-datatable-reorderablerow-handle,[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable .p-datatable-tbody>tr>td>.p-column-title{display:none}cdk-virtual-scroll-viewport{outline:0 none}\n"] }]
1946
+ }, styles: [".p-datatable{position:relative}.p-datatable table{border-collapse:collapse;min-width:100%;table-layout:fixed}.p-datatable .p-sortable-column{cursor:pointer;-webkit-user-select:none;user-select:none}.p-datatable .p-sortable-column .p-column-title,.p-datatable .p-sortable-column .p-sortable-column-icon,.p-datatable .p-sortable-column .p-sortable-column-badge{vertical-align:middle}.p-datatable .p-sortable-column .p-sortable-column-badge{display:inline-flex;align-items:center;justify-content:center}.p-datatable-auto-layout>.p-datatable-wrapper{overflow-x:auto}.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper{overflow-x:auto}.p-datatable-responsive-scroll>.p-datatable-wrapper>table,.p-datatable-auto-layout>.p-datatable-wrapper>table{table-layout:auto}.p-datatable-hoverable-rows .p-selectable-row{cursor:pointer}.p-datatable-scrollable .p-datatable-wrapper{position:relative;overflow:auto}.p-datatable-scrollable .p-datatable-thead,.p-datatable-scrollable .p-datatable-tbody,.p-datatable-scrollable .p-datatable-tfoot{display:block}.p-datatable-scrollable .p-datatable-thead>tr,.p-datatable-scrollable .p-datatable-tbody>tr,.p-datatable-scrollable .p-datatable-tfoot>tr{display:flex;flex-wrap:nowrap;width:100%}.p-datatable-scrollable .p-datatable-thead>tr>th,.p-datatable-scrollable .p-datatable-tbody>tr>td,.p-datatable-scrollable .p-datatable-tfoot>tr>td{display:flex;flex:1 1 0;align-items:center}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-thead,.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-virtual-scrollable-body>.cdk-virtual-scroll-content-wrapper>.p-datatable-table>.p-datatable-thead{position:sticky;top:0;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-frozen-tbody{position:sticky;z-index:1}.p-datatable-scrollable>.p-datatable-wrapper>.p-datatable-table>.p-datatable-tfoot{position:sticky;bottom:0;z-index:1}.p-datatable-scrollable .p-frozen-column{position:sticky;background:inherit}.p-datatable-scrollable th.p-frozen-column{z-index:1}.p-datatable-scrollable-both .p-datatable-thead>tr>th,.p-datatable-scrollable-both .p-datatable-tbody>tr>td,.p-datatable-scrollable-both .p-datatable-tfoot>tr>td,.p-datatable-scrollable-horizontal .p-datatable-thead>tr>th .p-datatable-scrollable-horizontal .p-datatable-tbody>tr>td,.p-datatable-scrollable-horizontal .p-datatable-tfoot>tr>td{flex:0 0 auto}.p-datatable-flex-scrollable{display:flex;flex-direction:column;height:100%}.p-datatable-flex-scrollable .p-datatable-wrapper{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-scrollable .p-rowgroup-header{position:sticky;z-index:1}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot{display:table;border-collapse:collapse;width:100%;table-layout:fixed}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr{display:table-row}.p-datatable-scrollable.p-datatable-grouped-header .p-datatable-thead>tr>th,.p-datatable-scrollable.p-datatable-grouped-footer .p-datatable-tfoot>tr>td{display:table-cell}.p-datatable-flex-scrollable{display:flex;flex-direction:column;flex:1;height:100%}.p-datatable-flex-scrollable .p-datatable-virtual-scrollable-body{flex:1}.p-datatable-resizable>.p-datatable-wrapper{overflow-x:auto}.p-datatable-resizable .p-datatable-thead>tr>th,.p-datatable-resizable .p-datatable-tfoot>tr>td,.p-datatable-resizable .p-datatable-tbody>tr>td{overflow:hidden;white-space:nowrap}.p-datatable-resizable .p-resizable-column:not(.p-frozen-column){background-clip:padding-box;position:relative}.p-datatable-resizable-fit .p-resizable-column:last-child .p-column-resizer{display:none}.p-datatable .p-column-resizer{display:block;position:absolute!important;top:0;right:0;margin:0;width:.5rem;height:100%;padding:0;cursor:col-resize;border:1px solid transparent}.p-datatable .p-column-resizer-helper{width:1px;position:absolute;z-index:10;display:none}.p-datatable .p-row-editor-init,.p-datatable .p-row-editor-save,.p-datatable .p-row-editor-cancel{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable .p-row-toggler{display:inline-flex;align-items:center;justify-content:center;overflow:hidden;position:relative}.p-datatable-reorder-indicator-up,.p-datatable-reorder-indicator-down{position:absolute;display:none}.p-datatable-reorderablerow-handle{cursor:move}[pReorderableColumn]{cursor:move}.p-datatable .p-datatable-loading-overlay{position:absolute;display:flex;align-items:center;justify-content:center;z-index:2}.p-column-filter-row{display:flex;align-items:center;width:100%}.p-column-filter-menu{display:inline-flex}.p-column-filter-row p-columnfilterformelement{flex:1 1 auto;width:1%}.p-column-filter-menu-button,.p-column-filter-clear-button{display:inline-flex;justify-content:center;align-items:center;cursor:pointer;text-decoration:none;overflow:hidden;position:relative}.p-column-filter-overlay{position:absolute;top:0;left:0}.p-column-filter-row-items{margin:0;padding:0;list-style:none}.p-column-filter-row-item{cursor:pointer}.p-column-filter-add-button,.p-column-filter-remove-button{justify-content:center}.p-column-filter-add-button .p-button-label,.p-column-filter-remove-button .p-button-label{flex-grow:0}.p-column-filter-buttonbar{display:flex;align-items:center;justify-content:space-between}.p-column-filter-buttonbar .p-button{width:auto}.p-datatable .p-datatable-tbody>tr>td>.p-column-title{display:none}cdk-virtual-scroll-viewport{outline:0 none}\n"] }]
1909
1947
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.OverlayService }]; }, propDecorators: { frozenColumns: [{
1910
1948
  type: Input
1911
1949
  }], frozenValue: [{
@@ -1952,6 +1990,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1952
1990
  type: Input
1953
1991
  }], selectionMode: [{
1954
1992
  type: Input
1993
+ }], selectionPageOnly: [{
1994
+ type: Input
1995
+ }], selectAllChange: [{
1996
+ type: Output
1955
1997
  }], selectionChange: [{
1956
1998
  type: Output
1957
1999
  }], contextMenuSelection: [{
@@ -1964,6 +2006,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1964
2006
  type: Input
1965
2007
  }], metaKeySelection: [{
1966
2008
  type: Input
2009
+ }], rowSelectable: [{
2010
+ type: Input
1967
2011
  }], rowTrackBy: [{
1968
2012
  type: Input
1969
2013
  }], lazy: [{
@@ -2032,6 +2076,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2032
2076
  type: Input
2033
2077
  }], exportFunction: [{
2034
2078
  type: Input
2079
+ }], exportHeader: [{
2080
+ type: Input
2035
2081
  }], stateKey: [{
2036
2082
  type: Input
2037
2083
  }], stateStorage: [{
@@ -2137,6 +2183,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2137
2183
  type: Input
2138
2184
  }], selection: [{
2139
2185
  type: Input
2186
+ }], selectAll: [{
2187
+ type: Input
2140
2188
  }] } });
2141
2189
  class TableBody {
2142
2190
  constructor(dt, tableService, cd, el) {
@@ -2406,7 +2454,7 @@ class FrozenColumn {
2406
2454
  let right = 0;
2407
2455
  let next = this.el.nativeElement.nextElementSibling;
2408
2456
  if (next) {
2409
- right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right);
2457
+ right = DomHandler.getOuterWidth(next) + (parseFloat(next.style.right) || 0);
2410
2458
  }
2411
2459
  this.el.nativeElement.style.right = right + 'px';
2412
2460
  }
@@ -2414,7 +2462,7 @@ class FrozenColumn {
2414
2462
  let left = 0;
2415
2463
  let prev = this.el.nativeElement.previousElementSibling;
2416
2464
  if (prev) {
2417
- left = DomHandler.getOuterWidth(prev) + parseFloat(prev.style.left);
2465
+ left = DomHandler.getOuterWidth(prev) + (parseFloat(prev.style.left) || 0);
2418
2466
  }
2419
2467
  this.el.nativeElement.style.left = left + 'px';
2420
2468
  }
@@ -3532,10 +3580,10 @@ class TableRadioButton {
3532
3580
  DomHandler.clearSelection();
3533
3581
  }
3534
3582
  onFocus() {
3535
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3583
+ this.focused = true;
3536
3584
  }
3537
3585
  onBlur() {
3538
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3586
+ this.focused = false;
3539
3587
  }
3540
3588
  ngOnDestroy() {
3541
3589
  if (this.subscription) {
@@ -3544,13 +3592,13 @@ class TableRadioButton {
3544
3592
  }
3545
3593
  }
3546
3594
  TableRadioButton.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TableRadioButton, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3547
- TableRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableRadioButton, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "boxViewChild", first: true, predicate: ["box"], descendants: true }], ngImport: i0, template: `
3548
- <div class="p-radiobutton p-component" (click)="onClick($event)">
3595
+ TableRadioButton.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableRadioButton, selector: "p-tableRadioButton", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3596
+ <div class="p-radiobutton p-component" [ngClass]="{'p-radiobutton-focused':focused, 'p-radiobutton-disabled': disabled}" (click)="onClick($event)">
3549
3597
  <div class="p-hidden-accessible">
3550
3598
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3551
3599
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3552
3600
  </div>
3553
- <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3601
+ <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3554
3602
  <div class="p-radiobutton-icon"></div>
3555
3603
  </div>
3556
3604
  </div>
@@ -3560,12 +3608,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3560
3608
  args: [{
3561
3609
  selector: 'p-tableRadioButton',
3562
3610
  template: `
3563
- <div class="p-radiobutton p-component" (click)="onClick($event)">
3611
+ <div class="p-radiobutton p-component" [ngClass]="{'p-radiobutton-focused':focused, 'p-radiobutton-disabled': disabled}" (click)="onClick($event)">
3564
3612
  <div class="p-hidden-accessible">
3565
3613
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3566
3614
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3567
3615
  </div>
3568
- <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3616
+ <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3569
3617
  <div class="p-radiobutton-icon"></div>
3570
3618
  </div>
3571
3619
  </div>
@@ -3588,9 +3636,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3588
3636
  type: Input
3589
3637
  }], ariaLabel: [{
3590
3638
  type: Input
3591
- }], boxViewChild: [{
3592
- type: ViewChild,
3593
- args: ['box']
3594
3639
  }] } });
3595
3640
  class TableCheckbox {
3596
3641
  constructor(dt, tableService, cd) {
@@ -3615,10 +3660,10 @@ class TableCheckbox {
3615
3660
  DomHandler.clearSelection();
3616
3661
  }
3617
3662
  onFocus() {
3618
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3663
+ this.focused = true;
3619
3664
  }
3620
3665
  onBlur() {
3621
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3666
+ this.focused = false;
3622
3667
  }
3623
3668
  ngOnDestroy() {
3624
3669
  if (this.subscription) {
@@ -3627,14 +3672,14 @@ class TableCheckbox {
3627
3672
  }
3628
3673
  }
3629
3674
  TableCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TableCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3630
- TableCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableCheckbox, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "boxViewChild", first: true, predicate: ["box"], descendants: true }], ngImport: i0, template: `
3631
- <div class="p-checkbox p-component" (click)="onClick($event)">
3675
+ TableCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableCheckbox, selector: "p-tableCheckbox", inputs: { disabled: "disabled", value: "value", index: "index", inputId: "inputId", name: "name", required: "required", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3676
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': disabled}" (click)="onClick($event)">
3632
3677
  <div class="p-hidden-accessible">
3633
3678
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3634
3679
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3635
3680
  </div>
3636
3681
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3637
- 'p-highlight':checked, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3682
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3638
3683
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3639
3684
  </div>
3640
3685
  </div>
@@ -3644,13 +3689,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3644
3689
  args: [{
3645
3690
  selector: 'p-tableCheckbox',
3646
3691
  template: `
3647
- <div class="p-checkbox p-component" (click)="onClick($event)">
3692
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': disabled}" (click)="onClick($event)">
3648
3693
  <div class="p-hidden-accessible">
3649
3694
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3650
3695
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3651
3696
  </div>
3652
3697
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3653
- 'p-highlight':checked, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3698
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3654
3699
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3655
3700
  </div>
3656
3701
  </div>
@@ -3675,9 +3720,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3675
3720
  type: Input
3676
3721
  }], ariaLabel: [{
3677
3722
  type: Input
3678
- }], boxViewChild: [{
3679
- type: ViewChild,
3680
- args: ['box']
3681
3723
  }] } });
3682
3724
  class TableHeaderCheckbox {
3683
3725
  constructor(dt, tableService, cd) {
@@ -3703,10 +3745,10 @@ class TableHeaderCheckbox {
3703
3745
  DomHandler.clearSelection();
3704
3746
  }
3705
3747
  onFocus() {
3706
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3748
+ this.focused = true;
3707
3749
  }
3708
3750
  onBlur() {
3709
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3751
+ this.focused = false;
3710
3752
  }
3711
3753
  isDisabled() {
3712
3754
  return this.disabled || !this.dt.value || !this.dt.value.length;
@@ -3721,39 +3763,26 @@ class TableHeaderCheckbox {
3721
3763
  }
3722
3764
  updateCheckedState() {
3723
3765
  this.cd.markForCheck();
3724
- if (this.dt.filteredValue && !this.dt.lazy) {
3725
- const val = this.dt.filteredValue;
3726
- return (val && val.length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.isAllFilteredValuesChecked());
3766
+ if (this.dt._selectAll !== null) {
3767
+ return this.dt._selectAll;
3727
3768
  }
3728
3769
  else {
3729
- const val = this.dt.value;
3730
- const length = this.dt.lazy ? this.dt._totalRecords : val ? val.length : 0;
3731
- return (val && length > 0 && this.dt.selection && this.dt.selection.length > 0 && this.dt.selection.length === length);
3732
- }
3733
- }
3734
- isAllFilteredValuesChecked() {
3735
- if (!this.dt.filteredValue) {
3736
- return false;
3737
- }
3738
- else {
3739
- for (let rowData of this.dt.filteredValue) {
3740
- if (!this.dt.isSelected(rowData)) {
3741
- return false;
3742
- }
3743
- }
3744
- return true;
3770
+ const data = this.dt.selectionPageOnly ? this.dt.dataToRender : (this.dt.filteredValue || this.dt.value || []);
3771
+ const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;
3772
+ const selectableVal = this.dt.rowSelectable ? val.filter((data, index) => this.dt.rowSelectable({ data, index })) : val;
3773
+ return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every(v => this.dt.selection.some(s => this.dt.equals(v, s)));
3745
3774
  }
3746
3775
  }
3747
3776
  }
3748
3777
  TableHeaderCheckbox.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: TableHeaderCheckbox, deps: [{ token: Table }, { token: TableService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
3749
- TableHeaderCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, viewQueries: [{ propertyName: "boxViewChild", first: true, predicate: ["box"], descendants: true }], ngImport: i0, template: `
3750
- <div class="p-checkbox p-component" (click)="onClick($event)">
3778
+ TableHeaderCheckbox.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3", type: TableHeaderCheckbox, selector: "p-tableHeaderCheckbox", inputs: { disabled: "disabled", inputId: "inputId", name: "name", ariaLabel: "ariaLabel" }, host: { classAttribute: "p-element" }, ngImport: i0, template: `
3779
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': isDisabled()}" (click)="onClick($event)">
3751
3780
  <div class="p-hidden-accessible">
3752
3781
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3753
3782
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3754
3783
  </div>
3755
3784
  <div #box [ngClass]="{'p-checkbox-box':true,
3756
- 'p-highlight':checked, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3785
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3757
3786
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3758
3787
  </div>
3759
3788
  </div>
@@ -3763,13 +3792,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3763
3792
  args: [{
3764
3793
  selector: 'p-tableHeaderCheckbox',
3765
3794
  template: `
3766
- <div class="p-checkbox p-component" (click)="onClick($event)">
3795
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': isDisabled()}" (click)="onClick($event)">
3767
3796
  <div class="p-hidden-accessible">
3768
3797
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3769
3798
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3770
3799
  </div>
3771
3800
  <div #box [ngClass]="{'p-checkbox-box':true,
3772
- 'p-highlight':checked, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3801
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3773
3802
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3774
3803
  </div>
3775
3804
  </div>
@@ -3780,10 +3809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3780
3809
  'class': 'p-element'
3781
3810
  }
3782
3811
  }]
3783
- }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { boxViewChild: [{
3784
- type: ViewChild,
3785
- args: ['box']
3786
- }], disabled: [{
3812
+ }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
3787
3813
  type: Input
3788
3814
  }], inputId: [{
3789
3815
  type: Input
@@ -3948,14 +3974,14 @@ ColumnFilterFormElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
3948
3974
  <ng-container [ngSwitch]="type">
3949
3975
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
3950
3976
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
3951
- <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true" [attr.placeholder]="placeholder"
3977
+ <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true"
3952
3978
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
3953
3979
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
3954
3980
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
3955
- <p-calendar *ngSwitchCase="'date'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
3981
+ <p-calendar *ngSwitchCase="'date'" [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
3956
3982
  </ng-container>
3957
3983
  </ng-template>
3958
- `, isInline: true, components: [{ type: i5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i6.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }, { type: i7.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "firstDayOfWeek", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.InputText, selector: "[pInputText]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
3984
+ `, isInline: true, components: [{ type: i5.InputNumber, selector: "p-inputNumber", inputs: ["showButtons", "format", "buttonLayout", "inputId", "styleClass", "style", "placeholder", "size", "maxlength", "tabindex", "title", "ariaLabel", "ariaRequired", "name", "required", "autocomplete", "min", "max", "incrementButtonClass", "decrementButtonClass", "incrementButtonIcon", "decrementButtonIcon", "readonly", "step", "allowEmpty", "locale", "localeMatcher", "mode", "currency", "currencyDisplay", "useGrouping", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "inputStyle", "inputStyleClass", "disabled"], outputs: ["onInput", "onFocus", "onBlur", "onKeyDown"] }, { type: i6.TriStateCheckbox, selector: "p-triStateCheckbox", inputs: ["disabled", "name", "ariaLabelledBy", "tabindex", "inputId", "style", "styleClass", "label", "readonly", "checkboxTrueIcon", "checkboxFalseIcon"], outputs: ["onChange"] }, { type: i7.Calendar, selector: "p-calendar", inputs: ["style", "styleClass", "inputStyle", "inputId", "name", "inputStyleClass", "placeholder", "ariaLabelledBy", "iconAriaLabel", "disabled", "dateFormat", "multipleSeparator", "rangeSeparator", "inline", "showOtherMonths", "selectOtherMonths", "showIcon", "icon", "appendTo", "readonlyInput", "shortYearCutoff", "monthNavigator", "yearNavigator", "hourFormat", "timeOnly", "stepHour", "stepMinute", "stepSecond", "showSeconds", "required", "showOnFocus", "showWeek", "dataType", "selectionMode", "maxDateCount", "showButtonBar", "todayButtonStyleClass", "clearButtonStyleClass", "autoZIndex", "baseZIndex", "panelStyleClass", "panelStyle", "keepInvalid", "hideOnDateTimeSelect", "touchUI", "timeSeparator", "focusTrap", "showTransitionOptions", "hideTransitionOptions", "tabindex", "view", "defaultDate", "minDate", "maxDate", "disabledDates", "disabledDays", "yearRange", "showTime", "responsiveOptions", "numberOfMonths", "firstDayOfWeek", "locale"], outputs: ["onFocus", "onBlur", "onClose", "onSelect", "onInput", "onTodayClick", "onClearClick", "onMonthChange", "onYearChange", "onClickOutside", "onShow"] }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgSwitch, selector: "[ngSwitch]", inputs: ["ngSwitch"] }, { type: i4.NgSwitchCase, selector: "[ngSwitchCase]", inputs: ["ngSwitchCase"] }, { type: i8.InputText, selector: "[pInputText]" }, { type: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], encapsulation: i0.ViewEncapsulation.None });
3959
3985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
3960
3986
  type: Component,
3961
3987
  args: [{
@@ -3968,11 +3994,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3968
3994
  <ng-container [ngSwitch]="type">
3969
3995
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
3970
3996
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
3971
- <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true" [attr.placeholder]="placeholder"
3997
+ <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true"
3972
3998
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
3973
3999
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
3974
4000
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
3975
- <p-calendar *ngSwitchCase="'date'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
4001
+ <p-calendar *ngSwitchCase="'date'" [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
3976
4002
  </ng-container>
3977
4003
  </ng-template>
3978
4004
  `,
@@ -4396,8 +4422,8 @@ ColumnFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
4396
4422
  <button type="button" pButton [label]="addRuleButtonLabel" icon="pi pi-plus" class="p-column-filter-add-button p-button-text p-button-sm" (click)="addConstraint()" pRipple></button>
4397
4423
  </div>
4398
4424
  <div class="p-column-filter-buttonbar">
4399
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4400
- <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" [label]="applyButtonLabel" pRipple></button>
4425
+ <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4426
+ <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
4401
4427
  </div>
4402
4428
  </ng-template>
4403
4429
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>
@@ -4454,8 +4480,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4454
4480
  <button type="button" pButton [label]="addRuleButtonLabel" icon="pi pi-plus" class="p-column-filter-add-button p-button-text p-button-sm" (click)="addConstraint()" pRipple></button>
4455
4481
  </div>
4456
4482
  <div class="p-column-filter-buttonbar">
4457
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4458
- <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" [label]="applyButtonLabel" pRipple></button>
4483
+ <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4484
+ <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
4459
4485
  </div>
4460
4486
  </ng-template>
4461
4487
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>