primeng 13.0.3 → 13.2.0

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 (211) hide show
  1. package/api/translation.d.ts +1 -0
  2. package/api/translationkeys.d.ts +1 -0
  3. package/button/button.d.ts +2 -1
  4. package/calendar/calendar.d.ts +7 -2
  5. package/contextmenu/contextmenu.d.ts +2 -0
  6. package/dropdown/dropdown.d.ts +2 -1
  7. package/esm2020/api/primengconfig.mjs +2 -1
  8. package/esm2020/api/translation.mjs +1 -1
  9. package/esm2020/api/translationkeys.mjs +2 -1
  10. package/esm2020/autocomplete/autocomplete.mjs +3 -3
  11. package/esm2020/button/button.mjs +6 -4
  12. package/esm2020/calendar/calendar.mjs +51 -22
  13. package/esm2020/cascadeselect/cascadeselect.mjs +3 -3
  14. package/esm2020/chip/chip.mjs +2 -2
  15. package/esm2020/contextmenu/contextmenu.mjs +14 -2
  16. package/esm2020/dropdown/dropdown.mjs +15 -13
  17. package/esm2020/fileupload/fileupload.mjs +2 -2
  18. package/esm2020/galleria/galleria.mjs +3 -3
  19. package/esm2020/image/image.mjs +1 -1
  20. package/esm2020/inputnumber/inputnumber.mjs +3 -3
  21. package/esm2020/inputswitch/inputswitch.mjs +6 -4
  22. package/esm2020/knob/knob.mjs +2 -2
  23. package/esm2020/megamenu/megamenu.mjs +2 -2
  24. package/esm2020/multiselect/multiselect.mjs +12 -7
  25. package/esm2020/orderlist/orderlist.mjs +6 -4
  26. package/esm2020/organizationchart/organizationchart.mjs +3 -3
  27. package/esm2020/paginator/paginator.mjs +1 -1
  28. package/esm2020/panel/panel.mjs +11 -8
  29. package/esm2020/password/password.mjs +8 -3
  30. package/esm2020/picklist/picklist.mjs +6 -4
  31. package/esm2020/slidemenu/slidemenu.mjs +3 -3
  32. package/esm2020/steps/steps.mjs +7 -6
  33. package/esm2020/table/table.mjs +102 -108
  34. package/esm2020/tabmenu/tabmenu.mjs +142 -63
  35. package/esm2020/tabview/tabview.mjs +2 -2
  36. package/esm2020/timeline/timeline.mjs +2 -2
  37. package/esm2020/tree/tree.mjs +3 -3
  38. package/esm2020/treetable/treetable.mjs +16 -19
  39. package/esm2020/utils/objectutils.mjs +9 -1
  40. package/fesm2015/primeng-api.mjs +2 -0
  41. package/fesm2015/primeng-api.mjs.map +1 -1
  42. package/fesm2015/primeng-autocomplete.mjs +2 -2
  43. package/fesm2015/primeng-autocomplete.mjs.map +1 -1
  44. package/fesm2015/primeng-button.mjs +5 -3
  45. package/fesm2015/primeng-button.mjs.map +1 -1
  46. package/fesm2015/primeng-calendar.mjs +50 -21
  47. package/fesm2015/primeng-calendar.mjs.map +1 -1
  48. package/fesm2015/primeng-cascadeselect.mjs +2 -2
  49. package/fesm2015/primeng-cascadeselect.mjs.map +1 -1
  50. package/fesm2015/primeng-chip.mjs +2 -2
  51. package/fesm2015/primeng-contextmenu.mjs +13 -1
  52. package/fesm2015/primeng-contextmenu.mjs.map +1 -1
  53. package/fesm2015/primeng-dropdown.mjs +14 -12
  54. package/fesm2015/primeng-dropdown.mjs.map +1 -1
  55. package/fesm2015/primeng-fileupload.mjs +2 -2
  56. package/fesm2015/primeng-galleria.mjs +2 -2
  57. package/fesm2015/primeng-galleria.mjs.map +1 -1
  58. package/fesm2015/primeng-image.mjs.map +1 -1
  59. package/fesm2015/primeng-inputnumber.mjs +2 -2
  60. package/fesm2015/primeng-inputnumber.mjs.map +1 -1
  61. package/fesm2015/primeng-inputswitch.mjs +5 -3
  62. package/fesm2015/primeng-inputswitch.mjs.map +1 -1
  63. package/fesm2015/primeng-knob.mjs +1 -1
  64. package/fesm2015/primeng-knob.mjs.map +1 -1
  65. package/fesm2015/primeng-megamenu.mjs +1 -1
  66. package/fesm2015/primeng-megamenu.mjs.map +1 -1
  67. package/fesm2015/primeng-multiselect.mjs +11 -6
  68. package/fesm2015/primeng-multiselect.mjs.map +1 -1
  69. package/fesm2015/primeng-orderlist.mjs +5 -3
  70. package/fesm2015/primeng-orderlist.mjs.map +1 -1
  71. package/fesm2015/primeng-organizationchart.mjs +2 -2
  72. package/fesm2015/primeng-organizationchart.mjs.map +1 -1
  73. package/fesm2015/primeng-paginator.mjs +1 -1
  74. package/fesm2015/primeng-panel.mjs +10 -7
  75. package/fesm2015/primeng-panel.mjs.map +1 -1
  76. package/fesm2015/primeng-password.mjs +7 -2
  77. package/fesm2015/primeng-password.mjs.map +1 -1
  78. package/fesm2015/primeng-picklist.mjs +5 -3
  79. package/fesm2015/primeng-picklist.mjs.map +1 -1
  80. package/fesm2015/primeng-slidemenu.mjs +2 -2
  81. package/fesm2015/primeng-slidemenu.mjs.map +1 -1
  82. package/fesm2015/primeng-steps.mjs +6 -5
  83. package/fesm2015/primeng-steps.mjs.map +1 -1
  84. package/fesm2015/primeng-table.mjs +101 -107
  85. package/fesm2015/primeng-table.mjs.map +1 -1
  86. package/fesm2015/primeng-tabmenu.mjs +142 -62
  87. package/fesm2015/primeng-tabmenu.mjs.map +1 -1
  88. package/fesm2015/primeng-tabview.mjs +1 -1
  89. package/fesm2015/primeng-tabview.mjs.map +1 -1
  90. package/fesm2015/primeng-timeline.mjs +2 -2
  91. package/fesm2015/primeng-tree.mjs +2 -2
  92. package/fesm2015/primeng-tree.mjs.map +1 -1
  93. package/fesm2015/primeng-treetable.mjs +15 -18
  94. package/fesm2015/primeng-treetable.mjs.map +1 -1
  95. package/fesm2015/primeng-utils.mjs +8 -0
  96. package/fesm2015/primeng-utils.mjs.map +1 -1
  97. package/fesm2020/primeng-api.mjs +2 -0
  98. package/fesm2020/primeng-api.mjs.map +1 -1
  99. package/fesm2020/primeng-autocomplete.mjs +2 -2
  100. package/fesm2020/primeng-autocomplete.mjs.map +1 -1
  101. package/fesm2020/primeng-button.mjs +5 -3
  102. package/fesm2020/primeng-button.mjs.map +1 -1
  103. package/fesm2020/primeng-calendar.mjs +50 -21
  104. package/fesm2020/primeng-calendar.mjs.map +1 -1
  105. package/fesm2020/primeng-cascadeselect.mjs +2 -2
  106. package/fesm2020/primeng-cascadeselect.mjs.map +1 -1
  107. package/fesm2020/primeng-chip.mjs +2 -2
  108. package/fesm2020/primeng-contextmenu.mjs +13 -1
  109. package/fesm2020/primeng-contextmenu.mjs.map +1 -1
  110. package/fesm2020/primeng-dropdown.mjs +14 -12
  111. package/fesm2020/primeng-dropdown.mjs.map +1 -1
  112. package/fesm2020/primeng-fileupload.mjs +2 -2
  113. package/fesm2020/primeng-galleria.mjs +2 -2
  114. package/fesm2020/primeng-galleria.mjs.map +1 -1
  115. package/fesm2020/primeng-image.mjs.map +1 -1
  116. package/fesm2020/primeng-inputnumber.mjs +2 -2
  117. package/fesm2020/primeng-inputnumber.mjs.map +1 -1
  118. package/fesm2020/primeng-inputswitch.mjs +5 -3
  119. package/fesm2020/primeng-inputswitch.mjs.map +1 -1
  120. package/fesm2020/primeng-knob.mjs +1 -1
  121. package/fesm2020/primeng-knob.mjs.map +1 -1
  122. package/fesm2020/primeng-megamenu.mjs +1 -1
  123. package/fesm2020/primeng-megamenu.mjs.map +1 -1
  124. package/fesm2020/primeng-multiselect.mjs +11 -6
  125. package/fesm2020/primeng-multiselect.mjs.map +1 -1
  126. package/fesm2020/primeng-orderlist.mjs +5 -3
  127. package/fesm2020/primeng-orderlist.mjs.map +1 -1
  128. package/fesm2020/primeng-organizationchart.mjs +2 -2
  129. package/fesm2020/primeng-organizationchart.mjs.map +1 -1
  130. package/fesm2020/primeng-paginator.mjs +1 -1
  131. package/fesm2020/primeng-panel.mjs +10 -7
  132. package/fesm2020/primeng-panel.mjs.map +1 -1
  133. package/fesm2020/primeng-password.mjs +7 -2
  134. package/fesm2020/primeng-password.mjs.map +1 -1
  135. package/fesm2020/primeng-picklist.mjs +5 -3
  136. package/fesm2020/primeng-picklist.mjs.map +1 -1
  137. package/fesm2020/primeng-slidemenu.mjs +2 -2
  138. package/fesm2020/primeng-slidemenu.mjs.map +1 -1
  139. package/fesm2020/primeng-steps.mjs +6 -5
  140. package/fesm2020/primeng-steps.mjs.map +1 -1
  141. package/fesm2020/primeng-table.mjs +101 -107
  142. package/fesm2020/primeng-table.mjs.map +1 -1
  143. package/fesm2020/primeng-tabmenu.mjs +141 -62
  144. package/fesm2020/primeng-tabmenu.mjs.map +1 -1
  145. package/fesm2020/primeng-tabview.mjs +1 -1
  146. package/fesm2020/primeng-tabview.mjs.map +1 -1
  147. package/fesm2020/primeng-timeline.mjs +2 -2
  148. package/fesm2020/primeng-tree.mjs +2 -2
  149. package/fesm2020/primeng-tree.mjs.map +1 -1
  150. package/fesm2020/primeng-treetable.mjs +15 -18
  151. package/fesm2020/primeng-treetable.mjs.map +1 -1
  152. package/fesm2020/primeng-utils.mjs +8 -0
  153. package/fesm2020/primeng-utils.mjs.map +1 -1
  154. package/image/image.d.ts +2 -1
  155. package/inputswitch/inputswitch.d.ts +2 -1
  156. package/multiselect/multiselect.d.ts +2 -1
  157. package/orderlist/orderlist.d.ts +2 -1
  158. package/package.json +1 -1
  159. package/panel/panel.d.ts +2 -1
  160. package/password/password.d.ts +1 -0
  161. package/picklist/picklist.d.ts +2 -1
  162. package/resources/components/panel/panel.css +1 -1
  163. package/resources/components/table/table.css +1 -1
  164. package/resources/components/tabmenu/tabmenu.css +37 -2
  165. package/resources/components/tree/tree.css +1 -0
  166. package/resources/themes/arya-blue/theme.css +72 -20
  167. package/resources/themes/arya-green/theme.css +72 -20
  168. package/resources/themes/arya-orange/theme.css +72 -20
  169. package/resources/themes/arya-purple/theme.css +72 -20
  170. package/resources/themes/bootstrap4-dark-blue/theme.css +59 -3
  171. package/resources/themes/bootstrap4-dark-purple/theme.css +59 -3
  172. package/resources/themes/bootstrap4-light-blue/theme.css +59 -3
  173. package/resources/themes/bootstrap4-light-purple/theme.css +59 -3
  174. package/resources/themes/fluent-light/theme.css +72 -20
  175. package/resources/themes/lara-dark-blue/theme.css +421 -369
  176. package/resources/themes/lara-dark-indigo/theme.css +421 -369
  177. package/resources/themes/lara-dark-purple/theme.css +421 -369
  178. package/resources/themes/lara-dark-teal/theme.css +421 -369
  179. package/resources/themes/lara-light-blue/theme.css +72 -20
  180. package/resources/themes/lara-light-indigo/theme.css +72 -20
  181. package/resources/themes/lara-light-purple/theme.css +72 -20
  182. package/resources/themes/lara-light-teal/theme.css +72 -20
  183. package/resources/themes/luna-amber/theme.css +72 -20
  184. package/resources/themes/luna-blue/theme.css +72 -20
  185. package/resources/themes/luna-green/theme.css +72 -20
  186. package/resources/themes/luna-pink/theme.css +72 -20
  187. package/resources/themes/md-dark-deeppurple/theme.css +55 -3
  188. package/resources/themes/md-dark-indigo/theme.css +55 -3
  189. package/resources/themes/md-light-deeppurple/theme.css +56 -4
  190. package/resources/themes/md-light-indigo/theme.css +56 -4
  191. package/resources/themes/mdc-dark-deeppurple/theme.css +55 -3
  192. package/resources/themes/mdc-dark-indigo/theme.css +55 -3
  193. package/resources/themes/mdc-light-deeppurple/theme.css +56 -4
  194. package/resources/themes/mdc-light-indigo/theme.css +56 -4
  195. package/resources/themes/nova/theme.css +72 -20
  196. package/resources/themes/nova-accent/theme.css +72 -20
  197. package/resources/themes/nova-alt/theme.css +72 -20
  198. package/resources/themes/rhea/theme.css +72 -20
  199. package/resources/themes/saga-blue/theme.css +55 -3
  200. package/resources/themes/saga-green/theme.css +55 -3
  201. package/resources/themes/saga-orange/theme.css +55 -3
  202. package/resources/themes/saga-purple/theme.css +55 -3
  203. package/resources/themes/tailwind-light/theme.css +75 -23
  204. package/resources/themes/vela-blue/theme.css +72 -20
  205. package/resources/themes/vela-green/theme.css +72 -20
  206. package/resources/themes/vela-orange/theme.css +72 -20
  207. package/resources/themes/vela-purple/theme.css +72 -20
  208. package/table/table.d.ts +8 -5
  209. package/tabmenu/tabmenu.d.ts +20 -2
  210. package/treetable/treetable.d.ts +2 -1
  211. package/utils/objectutils.d.ts +2 -0
@@ -630,22 +630,26 @@ class Table {
630
630
  return;
631
631
  }
632
632
  if (this.selectionMode) {
633
+ let rowData = event.rowData;
634
+ let rowIndex = event.rowIndex;
633
635
  this.preventSelectionSetterPropagation = true;
634
636
  if (this.isMultipleSelectionMode() && event.originalEvent.shiftKey && this.anchorRowIndex != null) {
635
637
  DomHandler.clearSelection();
636
638
  if (this.rangeRowIndex != null) {
637
639
  this.clearSelectionRange(event.originalEvent);
638
640
  }
639
- this.rangeRowIndex = event.rowIndex;
640
- this.selectRange(event.originalEvent, event.rowIndex);
641
+ this.rangeRowIndex = rowIndex;
642
+ this.selectRange(event.originalEvent, rowIndex);
641
643
  }
642
644
  else {
643
- let rowData = event.rowData;
644
645
  let selected = this.isSelected(rowData);
646
+ if (!selected && !this.isRowSelectable(rowData, rowIndex)) {
647
+ return;
648
+ }
645
649
  let metaSelection = this.rowTouched ? false : this.metaKeySelection;
646
650
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;
647
- this.anchorRowIndex = event.rowIndex;
648
- this.rangeRowIndex = event.rowIndex;
651
+ this.anchorRowIndex = rowIndex;
652
+ this.rangeRowIndex = rowIndex;
649
653
  if (metaSelection) {
650
654
  let metaKey = event.originalEvent.metaKey || event.originalEvent.ctrlKey;
651
655
  if (selected && metaKey) {
@@ -687,7 +691,7 @@ class Table {
687
691
  this.selectionKeys[dataKeyValue] = 1;
688
692
  }
689
693
  }
690
- 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 });
691
695
  }
692
696
  }
693
697
  else {
@@ -696,12 +700,12 @@ class Table {
696
700
  this._selection = null;
697
701
  this.selectionKeys = {};
698
702
  this.selectionChange.emit(this.selection);
699
- 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 });
700
704
  }
701
705
  else {
702
706
  this._selection = rowData;
703
707
  this.selectionChange.emit(this.selection);
704
- 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 });
705
709
  if (dataKeyValue) {
706
710
  this.selectionKeys = {};
707
711
  this.selectionKeys[dataKeyValue] = 1;
@@ -713,7 +717,7 @@ class Table {
713
717
  let selectionIndex = this.findIndexInSelection(rowData);
714
718
  this._selection = this.selection.filter((val, i) => i != selectionIndex);
715
719
  this.selectionChange.emit(this.selection);
716
- 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 });
717
721
  if (dataKeyValue) {
718
722
  delete this.selectionKeys[dataKeyValue];
719
723
  }
@@ -721,7 +725,7 @@ class Table {
721
725
  else {
722
726
  this._selection = this.selection ? [...this.selection, rowData] : [rowData];
723
727
  this.selectionChange.emit(this.selection);
724
- 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 });
725
729
  if (dataKeyValue) {
726
730
  this.selectionKeys[dataKeyValue] = 1;
727
731
  }
@@ -742,6 +746,7 @@ class Table {
742
746
  handleRowRightClick(event) {
743
747
  if (this.contextMenu) {
744
748
  const rowData = event.rowData;
749
+ const rowIndex = event.rowIndex;
745
750
  if (this.contextMenuSelectionMode === 'separate') {
746
751
  this.contextMenuSelection = rowData;
747
752
  this.contextMenuSelectionChange.emit(rowData);
@@ -754,6 +759,9 @@ class Table {
754
759
  let selected = this.isSelected(rowData);
755
760
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rowData, this.dataKey)) : null;
756
761
  if (!selected) {
762
+ if (!this.isRowSelectable(rowData, rowIndex)) {
763
+ return;
764
+ }
757
765
  if (this.isSingleSelectionMode()) {
758
766
  this.selection = rowData;
759
767
  this.selectionChange.emit(rowData);
@@ -798,6 +806,9 @@ class Table {
798
806
  for (let i = rangeStart; i <= rangeEnd; i++) {
799
807
  let rangeRowData = this.filteredValue ? this.filteredValue[i] : this.value[i];
800
808
  if (!this.isSelected(rangeRowData)) {
809
+ if (!this.isRowSelectable(rangeRowData, rowIndex)) {
810
+ continue;
811
+ }
801
812
  rangeRowsData.push(rangeRowData);
802
813
  this._selection = [...this.selection, rangeRowData];
803
814
  let dataKeyValue = this.dataKey ? String(ObjectUtils.resolveFieldData(rangeRowData, this.dataKey)) : null;
@@ -860,9 +871,18 @@ class Table {
860
871
  }
861
872
  return index;
862
873
  }
874
+ isRowSelectable(data, index) {
875
+ if (this.rowSelectable && !this.rowSelectable({ data, index })) {
876
+ return false;
877
+ }
878
+ return true;
879
+ }
863
880
  toggleRowWithRadio(event, rowData) {
864
881
  this.preventSelectionSetterPropagation = true;
865
882
  if (this.selection != rowData) {
883
+ if (!this.isRowSelectable(rowData, event.rowIndex)) {
884
+ return;
885
+ }
866
886
  this._selection = rowData;
867
887
  this.selectionChange.emit(this.selection);
868
888
  this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'radiobutton' });
@@ -896,6 +916,9 @@ class Table {
896
916
  }
897
917
  }
898
918
  else {
919
+ if (!this.isRowSelectable(rowData, event.rowIndex)) {
920
+ return;
921
+ }
899
922
  this._selection = this.selection ? [...this.selection, rowData] : [rowData];
900
923
  this.selectionChange.emit(this.selection);
901
924
  this.onRowSelect.emit({ originalEvent: event.originalEvent, index: event.rowIndex, data: rowData, type: 'checkbox' });
@@ -915,7 +938,10 @@ class Table {
915
938
  else {
916
939
  const data = this.selectionPageOnly ? this.dataToRender : (this.filteredValue || this.value || []);
917
940
  let selection = this.selectionPageOnly && this._selection ? this._selection.filter(s => !data.some(d => this.equals(s, d))) : [];
918
- check && (selection = this.frozenValue ? [...selection, ...this.frozenValue, ...data] : [...selection, ...data]);
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
+ }
919
945
  this._selection = selection;
920
946
  this.preventSelectionSetterPropagation = true;
921
947
  this.updateSelectionKeys();
@@ -1105,6 +1131,9 @@ class Table {
1105
1131
  reset() {
1106
1132
  this.clear();
1107
1133
  }
1134
+ getExportHeader(column) {
1135
+ return column[this.exportHeader] || column.header || column.field;
1136
+ }
1108
1137
  exportCSV(options) {
1109
1138
  let data;
1110
1139
  let csv = '';
@@ -1122,7 +1151,7 @@ class Table {
1122
1151
  for (let i = 0; i < columns.length; i++) {
1123
1152
  let column = columns[i];
1124
1153
  if (column.exportable !== false && column.field) {
1125
- csv += '"' + (column.header || column.field) + '"';
1154
+ csv += '"' + this.getExportHeader(column) + '"';
1126
1155
  if (i < (columns.length - 1)) {
1127
1156
  csv += this.csvSeparator;
1128
1157
  }
@@ -1210,7 +1239,7 @@ class Table {
1210
1239
  if (this.virtualScrollBody) {
1211
1240
  this.virtualScrollBody.scrollTo(options);
1212
1241
  }
1213
- else {
1242
+ else if (this.wrapperViewChild && this.wrapperViewChild.nativeElement) {
1214
1243
  if (this.wrapperViewChild.nativeElement.scrollTo) {
1215
1244
  this.wrapperViewChild.nativeElement.scrollTo(options);
1216
1245
  }
@@ -1338,25 +1367,14 @@ class Table {
1338
1367
  let nextColumn = this.resizeColumnElement.nextElementSibling;
1339
1368
  let nextColumnWidth = nextColumn.offsetWidth - delta;
1340
1369
  if (newColumnWidth > 15 && nextColumnWidth > 15) {
1341
- if (!this.scrollable) {
1342
- this.resizeColumnElement.style.width = newColumnWidth + 'px';
1343
- if (nextColumn) {
1344
- nextColumn.style.width = nextColumnWidth + 'px';
1345
- }
1346
- }
1347
- else {
1348
- this.resizeTableCells(newColumnWidth, nextColumnWidth);
1349
- }
1370
+ this.resizeTableCells(newColumnWidth, nextColumnWidth);
1350
1371
  }
1351
1372
  }
1352
1373
  else if (this.columnResizeMode === 'expand') {
1353
1374
  let tableWidth = this.tableViewChild.nativeElement.offsetWidth + delta;
1375
+ this.tableViewChild.nativeElement.style.width = tableWidth + 'px';
1354
1376
  this.tableViewChild.nativeElement.style.minWidth = tableWidth + 'px';
1355
- this.resizeColumnElement.style.width = newColumnWidth + 'px';
1356
- if (!this.scrollable)
1357
- this.tableViewChild.nativeElement.style.width = tableWidth + 'px';
1358
- else
1359
- this.resizeTableCells(newColumnWidth, null);
1377
+ this.resizeTableCells(newColumnWidth, null);
1360
1378
  }
1361
1379
  this.onColResize.emit({
1362
1380
  element: this.resizeColumnElement,
@@ -1380,13 +1398,12 @@ class Table {
1380
1398
  let innerHTML = '';
1381
1399
  widths.forEach((width, index) => {
1382
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`;
1383
1402
  innerHTML += `
1384
- #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {
1385
- flex: 0 0 ${colWidth}px !important;
1386
- }
1387
-
1388
- #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {
1389
- 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}
1390
1407
  }
1391
1408
  `;
1392
1409
  });
@@ -1658,27 +1675,21 @@ class Table {
1658
1675
  this.tableViewChild.nativeElement.style.minWidth = this.tableWidthState;
1659
1676
  this.containerViewChild.nativeElement.style.width = this.tableWidthState;
1660
1677
  }
1661
- this.createStyleElement();
1662
- if (this.scrollable && widths && widths.length > 0) {
1678
+ if (ObjectUtils.isNotEmpty(widths)) {
1679
+ this.createStyleElement();
1663
1680
  let innerHTML = '';
1664
1681
  widths.forEach((width, index) => {
1682
+ let style = this.scrollable ? `flex: 1 1 ${width}px !important` : `width: ${width}px !important`;
1665
1683
  innerHTML += `
1666
- #${this.id}-table > .p-datatable-thead > tr > th:nth-child(${index + 1}) {
1667
- flex: 0 0 ${width}px;
1668
- }
1669
-
1670
- #${this.id}-table > .p-datatable-tbody > tr > td:nth-child(${index + 1}) {
1671
- flex: 0 0 ${width}px;
1672
- }
1673
- `;
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
+ `;
1674
1690
  });
1675
1691
  this.styleElement.innerHTML = innerHTML;
1676
1692
  }
1677
- else {
1678
- DomHandler.find(this.tableViewChild.nativeElement, '.p-datatable-thead > tr > th').forEach((header, index) => {
1679
- header.style.width = widths[index] + 'px';
1680
- });
1681
- }
1682
1693
  }
1683
1694
  }
1684
1695
  saveColumnOrder(state) {
@@ -1791,7 +1802,7 @@ class Table {
1791
1802
  }
1792
1803
  }
1793
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 });
1794
- 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", 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", 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: `
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: `
1795
1806
  <div #container [ngStyle]="style" [class]="styleClass"
1796
1807
  [ngClass]="{'p-datatable p-component': true,
1797
1808
  'p-datatable-hoverable-rows': (rowHover||selectionMode),
@@ -1859,7 +1870,7 @@ Table.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.0.3
1859
1870
  <span #reorderIndicatorUp class="pi pi-arrow-down p-datatable-reorder-indicator-up" style="display:none" *ngIf="reorderableColumns"></span>
1860
1871
  <span #reorderIndicatorDown class="pi pi-arrow-up p-datatable-reorder-indicator-down" style="display:none" *ngIf="reorderableColumns"></span>
1861
1872
  </div>
1862
- `, 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 });
1863
1874
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: Table, decorators: [{
1864
1875
  type: Component,
1865
1876
  args: [{ selector: 'p-table', template: `
@@ -1932,7 +1943,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1932
1943
  </div>
1933
1944
  `, providers: [TableService], changeDetection: ChangeDetectionStrategy.Default, encapsulation: ViewEncapsulation.None, host: {
1934
1945
  'class': 'p-element'
1935
- }, 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"] }]
1936
1947
  }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i0.NgZone }, { type: TableService }, { type: i0.ChangeDetectorRef }, { type: i1.FilterService }, { type: i1.OverlayService }]; }, propDecorators: { frozenColumns: [{
1937
1948
  type: Input
1938
1949
  }], frozenValue: [{
@@ -1995,6 +2006,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
1995
2006
  type: Input
1996
2007
  }], metaKeySelection: [{
1997
2008
  type: Input
2009
+ }], rowSelectable: [{
2010
+ type: Input
1998
2011
  }], rowTrackBy: [{
1999
2012
  type: Input
2000
2013
  }], lazy: [{
@@ -2063,6 +2076,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
2063
2076
  type: Input
2064
2077
  }], exportFunction: [{
2065
2078
  type: Input
2079
+ }], exportHeader: [{
2080
+ type: Input
2066
2081
  }], stateKey: [{
2067
2082
  type: Input
2068
2083
  }], stateStorage: [{
@@ -2439,7 +2454,7 @@ class FrozenColumn {
2439
2454
  let right = 0;
2440
2455
  let next = this.el.nativeElement.nextElementSibling;
2441
2456
  if (next) {
2442
- right = DomHandler.getOuterWidth(next) + parseFloat(next.style.right);
2457
+ right = DomHandler.getOuterWidth(next) + (parseFloat(next.style.right) || 0);
2443
2458
  }
2444
2459
  this.el.nativeElement.style.right = right + 'px';
2445
2460
  }
@@ -3565,10 +3580,10 @@ class TableRadioButton {
3565
3580
  DomHandler.clearSelection();
3566
3581
  }
3567
3582
  onFocus() {
3568
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3583
+ this.focused = true;
3569
3584
  }
3570
3585
  onBlur() {
3571
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3586
+ this.focused = false;
3572
3587
  }
3573
3588
  ngOnDestroy() {
3574
3589
  if (this.subscription) {
@@ -3577,13 +3592,13 @@ class TableRadioButton {
3577
3592
  }
3578
3593
  }
3579
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 });
3580
- 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: `
3581
- <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)">
3582
3597
  <div class="p-hidden-accessible">
3583
3598
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3584
3599
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3585
3600
  </div>
3586
- <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">
3587
3602
  <div class="p-radiobutton-icon"></div>
3588
3603
  </div>
3589
3604
  </div>
@@ -3593,12 +3608,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3593
3608
  args: [{
3594
3609
  selector: 'p-tableRadioButton',
3595
3610
  template: `
3596
- <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)">
3597
3612
  <div class="p-hidden-accessible">
3598
3613
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3599
3614
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3600
3615
  </div>
3601
- <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">
3602
3617
  <div class="p-radiobutton-icon"></div>
3603
3618
  </div>
3604
3619
  </div>
@@ -3621,9 +3636,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3621
3636
  type: Input
3622
3637
  }], ariaLabel: [{
3623
3638
  type: Input
3624
- }], boxViewChild: [{
3625
- type: ViewChild,
3626
- args: ['box']
3627
3639
  }] } });
3628
3640
  class TableCheckbox {
3629
3641
  constructor(dt, tableService, cd) {
@@ -3648,10 +3660,10 @@ class TableCheckbox {
3648
3660
  DomHandler.clearSelection();
3649
3661
  }
3650
3662
  onFocus() {
3651
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3663
+ this.focused = true;
3652
3664
  }
3653
3665
  onBlur() {
3654
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3666
+ this.focused = false;
3655
3667
  }
3656
3668
  ngOnDestroy() {
3657
3669
  if (this.subscription) {
@@ -3660,14 +3672,14 @@ class TableCheckbox {
3660
3672
  }
3661
3673
  }
3662
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 });
3663
- 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: `
3664
- <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)">
3665
3677
  <div class="p-hidden-accessible">
3666
3678
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3667
3679
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3668
3680
  </div>
3669
3681
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3670
- '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">
3671
3683
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3672
3684
  </div>
3673
3685
  </div>
@@ -3677,13 +3689,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3677
3689
  args: [{
3678
3690
  selector: 'p-tableCheckbox',
3679
3691
  template: `
3680
- <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)">
3681
3693
  <div class="p-hidden-accessible">
3682
3694
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3683
3695
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3684
3696
  </div>
3685
3697
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3686
- '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">
3687
3699
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3688
3700
  </div>
3689
3701
  </div>
@@ -3708,9 +3720,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3708
3720
  type: Input
3709
3721
  }], ariaLabel: [{
3710
3722
  type: Input
3711
- }], boxViewChild: [{
3712
- type: ViewChild,
3713
- args: ['box']
3714
3723
  }] } });
3715
3724
  class TableHeaderCheckbox {
3716
3725
  constructor(dt, tableService, cd) {
@@ -3736,10 +3745,10 @@ class TableHeaderCheckbox {
3736
3745
  DomHandler.clearSelection();
3737
3746
  }
3738
3747
  onFocus() {
3739
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3748
+ this.focused = true;
3740
3749
  }
3741
3750
  onBlur() {
3742
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3751
+ this.focused = false;
3743
3752
  }
3744
3753
  isDisabled() {
3745
3754
  return this.disabled || !this.dt.value || !this.dt.value.length;
@@ -3760,32 +3769,20 @@ class TableHeaderCheckbox {
3760
3769
  else {
3761
3770
  const data = this.dt.selectionPageOnly ? this.dt.dataToRender : (this.dt.filteredValue || this.dt.value || []);
3762
3771
  const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;
3763
- return val && this.dt.selection && val.every(v => this.dt.selection.some(s => this.dt.equals(v, s)));
3764
- }
3765
- }
3766
- isAllFilteredValuesChecked() {
3767
- if (!this.dt.filteredValue) {
3768
- return false;
3769
- }
3770
- else {
3771
- for (let rowData of this.dt.filteredValue) {
3772
- if (!this.dt.isSelected(rowData)) {
3773
- return false;
3774
- }
3775
- }
3776
- return true;
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)));
3777
3774
  }
3778
3775
  }
3779
3776
  }
3780
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 });
3781
- 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: `
3782
- <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)">
3783
3780
  <div class="p-hidden-accessible">
3784
3781
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3785
3782
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3786
3783
  </div>
3787
3784
  <div #box [ngClass]="{'p-checkbox-box':true,
3788
- '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">
3789
3786
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3790
3787
  </div>
3791
3788
  </div>
@@ -3795,13 +3792,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3795
3792
  args: [{
3796
3793
  selector: 'p-tableHeaderCheckbox',
3797
3794
  template: `
3798
- <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)">
3799
3796
  <div class="p-hidden-accessible">
3800
3797
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3801
3798
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3802
3799
  </div>
3803
3800
  <div #box [ngClass]="{'p-checkbox-box':true,
3804
- '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">
3805
3802
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3806
3803
  </div>
3807
3804
  </div>
@@ -3812,10 +3809,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3812
3809
  'class': 'p-element'
3813
3810
  }
3814
3811
  }]
3815
- }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { boxViewChild: [{
3816
- type: ViewChild,
3817
- args: ['box']
3818
- }], disabled: [{
3812
+ }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
3819
3813
  type: Input
3820
3814
  }], inputId: [{
3821
3815
  type: Input
@@ -3980,14 +3974,14 @@ ColumnFilterFormElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
3980
3974
  <ng-container [ngSwitch]="type">
3981
3975
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
3982
3976
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
3983
- <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"
3984
3978
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
3985
3979
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
3986
3980
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
3987
- <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>
3988
3982
  </ng-container>
3989
3983
  </ng-template>
3990
- `, 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 });
3991
3985
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
3992
3986
  type: Component,
3993
3987
  args: [{
@@ -4000,11 +3994,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4000
3994
  <ng-container [ngSwitch]="type">
4001
3995
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
4002
3996
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
4003
- <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"
4004
3998
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
4005
3999
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
4006
4000
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
4007
- <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>
4008
4002
  </ng-container>
4009
4003
  </ng-template>
4010
4004
  `,
@@ -4428,14 +4422,14 @@ ColumnFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
4428
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>
4429
4423
  </div>
4430
4424
  <div class="p-column-filter-buttonbar">
4431
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4432
- <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>
4433
4427
  </div>
4434
4428
  </ng-template>
4435
4429
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>
4436
4430
  </div>
4437
4431
  </div>
4438
- `, isInline: true, components: [{ type: ColumnFilterFormElement, selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { type: i10.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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"] }, { type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], animations: [
4432
+ `, isInline: true, components: [{ type: ColumnFilterFormElement, selector: "p-columnFilterFormElement", inputs: ["field", "type", "filterConstraint", "filterTemplate", "placeholder", "minFractionDigits", "maxFractionDigits", "prefix", "suffix", "locale", "localeMatcher", "currency", "currencyDisplay", "useGrouping"] }, { type: i10.Dropdown, selector: "p-dropdown", inputs: ["scrollHeight", "filter", "name", "style", "panelStyle", "styleClass", "panelStyleClass", "readonly", "required", "editable", "appendTo", "tabindex", "placeholder", "filterPlaceholder", "filterLocale", "inputId", "selectId", "dataKey", "filterBy", "autofocus", "resetFilterOnHide", "dropdownIcon", "optionLabel", "optionValue", "optionDisabled", "optionGroupLabel", "optionGroupChildren", "autoDisplayFirst", "group", "showClear", "emptyFilterMessage", "emptyMessage", "virtualScroll", "itemSize", "autoZIndex", "baseZIndex", "showTransitionOptions", "hideTransitionOptions", "ariaFilterLabel", "ariaLabel", "ariaLabelledBy", "filterMatchMode", "maxlength", "tooltip", "tooltipPosition", "tooltipPositionStyle", "tooltipStyleClass", "autofocusFilter", "disabled", "options", "filterValue"], outputs: ["onChange", "onFilter", "onFocus", "onBlur", "onClick", "onShow", "onHide", "onClear"] }], directives: [{ type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet"] }, { type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { 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"] }, { type: i11.ButtonDirective, selector: "[pButton]", inputs: ["iconPos", "loadingIcon", "label", "icon", "loading"] }], animations: [
4439
4433
  trigger('overlayAnimation', [
4440
4434
  transition(':enter', [
4441
4435
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -4486,8 +4480,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4486
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>
4487
4481
  </div>
4488
4482
  <div class="p-column-filter-buttonbar">
4489
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4490
- <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>
4491
4485
  </div>
4492
4486
  </ng-template>
4493
4487
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>