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
  }
@@ -3567,10 +3582,10 @@ class TableRadioButton {
3567
3582
  DomHandler.clearSelection();
3568
3583
  }
3569
3584
  onFocus() {
3570
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3585
+ this.focused = true;
3571
3586
  }
3572
3587
  onBlur() {
3573
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3588
+ this.focused = false;
3574
3589
  }
3575
3590
  ngOnDestroy() {
3576
3591
  if (this.subscription) {
@@ -3579,13 +3594,13 @@ class TableRadioButton {
3579
3594
  }
3580
3595
  }
3581
3596
  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 });
3582
- 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: `
3583
- <div class="p-radiobutton p-component" (click)="onClick($event)">
3597
+ 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: `
3598
+ <div class="p-radiobutton p-component" [ngClass]="{'p-radiobutton-focused':focused, 'p-radiobutton-disabled': disabled}" (click)="onClick($event)">
3584
3599
  <div class="p-hidden-accessible">
3585
3600
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3586
3601
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3587
3602
  </div>
3588
- <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3603
+ <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3589
3604
  <div class="p-radiobutton-icon"></div>
3590
3605
  </div>
3591
3606
  </div>
@@ -3595,12 +3610,12 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3595
3610
  args: [{
3596
3611
  selector: 'p-tableRadioButton',
3597
3612
  template: `
3598
- <div class="p-radiobutton p-component" (click)="onClick($event)">
3613
+ <div class="p-radiobutton p-component" [ngClass]="{'p-radiobutton-focused':focused, 'p-radiobutton-disabled': disabled}" (click)="onClick($event)">
3599
3614
  <div class="p-hidden-accessible">
3600
3615
  <input type="radio" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3601
3616
  [disabled]="disabled" [attr.aria-label]="ariaLabel">
3602
3617
  </div>
3603
- <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3618
+ <div #box [ngClass]="{'p-radiobutton-box p-component':true, 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="radio" [attr.aria-checked]="checked">
3604
3619
  <div class="p-radiobutton-icon"></div>
3605
3620
  </div>
3606
3621
  </div>
@@ -3623,9 +3638,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3623
3638
  type: Input
3624
3639
  }], ariaLabel: [{
3625
3640
  type: Input
3626
- }], boxViewChild: [{
3627
- type: ViewChild,
3628
- args: ['box']
3629
3641
  }] } });
3630
3642
  class TableCheckbox {
3631
3643
  constructor(dt, tableService, cd) {
@@ -3650,10 +3662,10 @@ class TableCheckbox {
3650
3662
  DomHandler.clearSelection();
3651
3663
  }
3652
3664
  onFocus() {
3653
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3665
+ this.focused = true;
3654
3666
  }
3655
3667
  onBlur() {
3656
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3668
+ this.focused = false;
3657
3669
  }
3658
3670
  ngOnDestroy() {
3659
3671
  if (this.subscription) {
@@ -3662,14 +3674,14 @@ class TableCheckbox {
3662
3674
  }
3663
3675
  }
3664
3676
  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 });
3665
- 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: `
3666
- <div class="p-checkbox p-component" (click)="onClick($event)">
3677
+ 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: `
3678
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': disabled}" (click)="onClick($event)">
3667
3679
  <div class="p-hidden-accessible">
3668
3680
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3669
3681
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3670
3682
  </div>
3671
3683
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3672
- 'p-highlight':checked, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3684
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3673
3685
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3674
3686
  </div>
3675
3687
  </div>
@@ -3679,13 +3691,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3679
3691
  args: [{
3680
3692
  selector: 'p-tableCheckbox',
3681
3693
  template: `
3682
- <div class="p-checkbox p-component" (click)="onClick($event)">
3694
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': disabled}" (click)="onClick($event)">
3683
3695
  <div class="p-hidden-accessible">
3684
3696
  <input type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()" [disabled]="disabled"
3685
3697
  [attr.required]="required" [attr.aria-label]="ariaLabel">
3686
3698
  </div>
3687
3699
  <div #box [ngClass]="{'p-checkbox-box p-component':true,
3688
- 'p-highlight':checked, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3700
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled':disabled}" role="checkbox" [attr.aria-checked]="checked">
3689
3701
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3690
3702
  </div>
3691
3703
  </div>
@@ -3710,9 +3722,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3710
3722
  type: Input
3711
3723
  }], ariaLabel: [{
3712
3724
  type: Input
3713
- }], boxViewChild: [{
3714
- type: ViewChild,
3715
- args: ['box']
3716
3725
  }] } });
3717
3726
  class TableHeaderCheckbox {
3718
3727
  constructor(dt, tableService, cd) {
@@ -3738,10 +3747,10 @@ class TableHeaderCheckbox {
3738
3747
  DomHandler.clearSelection();
3739
3748
  }
3740
3749
  onFocus() {
3741
- DomHandler.addClass(this.boxViewChild.nativeElement, 'p-focus');
3750
+ this.focused = true;
3742
3751
  }
3743
3752
  onBlur() {
3744
- DomHandler.removeClass(this.boxViewChild.nativeElement, 'p-focus');
3753
+ this.focused = false;
3745
3754
  }
3746
3755
  isDisabled() {
3747
3756
  return this.disabled || !this.dt.value || !this.dt.value.length;
@@ -3762,32 +3771,20 @@ class TableHeaderCheckbox {
3762
3771
  else {
3763
3772
  const data = this.dt.selectionPageOnly ? this.dt.dataToRender : (this.dt.filteredValue || this.dt.value || []);
3764
3773
  const val = this.dt.frozenValue ? [...this.dt.frozenValue, ...data] : data;
3765
- return val && this.dt.selection && val.every(v => this.dt.selection.some(s => this.dt.equals(v, s)));
3766
- }
3767
- }
3768
- isAllFilteredValuesChecked() {
3769
- if (!this.dt.filteredValue) {
3770
- return false;
3771
- }
3772
- else {
3773
- for (let rowData of this.dt.filteredValue) {
3774
- if (!this.dt.isSelected(rowData)) {
3775
- return false;
3776
- }
3777
- }
3778
- return true;
3774
+ const selectableVal = this.dt.rowSelectable ? val.filter((data, index) => this.dt.rowSelectable({ data, index })) : val;
3775
+ return ObjectUtils.isNotEmpty(selectableVal) && ObjectUtils.isNotEmpty(this.dt.selection) && selectableVal.every(v => this.dt.selection.some(s => this.dt.equals(v, s)));
3779
3776
  }
3780
3777
  }
3781
3778
  }
3782
3779
  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 });
3783
- 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: `
3784
- <div class="p-checkbox p-component" (click)="onClick($event)">
3780
+ 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: `
3781
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': isDisabled()}" (click)="onClick($event)">
3785
3782
  <div class="p-hidden-accessible">
3786
3783
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3787
3784
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3788
3785
  </div>
3789
3786
  <div #box [ngClass]="{'p-checkbox-box':true,
3790
- 'p-highlight':checked, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3787
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3791
3788
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3792
3789
  </div>
3793
3790
  </div>
@@ -3797,13 +3794,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3797
3794
  args: [{
3798
3795
  selector: 'p-tableHeaderCheckbox',
3799
3796
  template: `
3800
- <div class="p-checkbox p-component" (click)="onClick($event)">
3797
+ <div class="p-checkbox p-component" [ngClass]="{'p-checkbox-focused':focused, 'p-checkbox-disabled': isDisabled()}" (click)="onClick($event)">
3801
3798
  <div class="p-hidden-accessible">
3802
3799
  <input #cb type="checkbox" [attr.id]="inputId" [attr.name]="name" [checked]="checked" (focus)="onFocus()" (blur)="onBlur()"
3803
3800
  [disabled]="isDisabled()" [attr.aria-label]="ariaLabel">
3804
3801
  </div>
3805
3802
  <div #box [ngClass]="{'p-checkbox-box':true,
3806
- 'p-highlight':checked, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3803
+ 'p-highlight':checked, 'p-focus':focused, 'p-disabled': isDisabled()}" role="checkbox" [attr.aria-checked]="checked">
3807
3804
  <span class="p-checkbox-icon" [ngClass]="{'pi pi-check':checked}"></span>
3808
3805
  </div>
3809
3806
  </div>
@@ -3814,10 +3811,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
3814
3811
  'class': 'p-element'
3815
3812
  }
3816
3813
  }]
3817
- }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { boxViewChild: [{
3818
- type: ViewChild,
3819
- args: ['box']
3820
- }], disabled: [{
3814
+ }], ctorParameters: function () { return [{ type: Table }, { type: TableService }, { type: i0.ChangeDetectorRef }]; }, propDecorators: { disabled: [{
3821
3815
  type: Input
3822
3816
  }], inputId: [{
3823
3817
  type: Input
@@ -3982,14 +3976,14 @@ ColumnFilterFormElement.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0"
3982
3976
  <ng-container [ngSwitch]="type">
3983
3977
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
3984
3978
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
3985
- <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true" [attr.placeholder]="placeholder"
3979
+ <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true"
3986
3980
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
3987
3981
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
3988
3982
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
3989
- <p-calendar *ngSwitchCase="'date'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
3983
+ <p-calendar *ngSwitchCase="'date'" [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
3990
3984
  </ng-container>
3991
3985
  </ng-template>
3992
- `, 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 });
3986
+ `, 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 });
3993
3987
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImport: i0, type: ColumnFilterFormElement, decorators: [{
3994
3988
  type: Component,
3995
3989
  args: [{
@@ -4002,11 +3996,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4002
3996
  <ng-container [ngSwitch]="type">
4003
3997
  <input *ngSwitchCase="'text'" type="text" pInputText [value]="filterConstraint?.value" (input)="onModelChange($event.target.value)"
4004
3998
  (keydown.enter)="onTextInputEnterKeyDown($event)" [attr.placeholder]="placeholder">
4005
- <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true" [attr.placeholder]="placeholder"
3999
+ <p-inputNumber *ngSwitchCase="'numeric'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)" (onKeyDown)="onNumericInputKeyDown($event)" [showButtons]="true"
4006
4000
  [minFractionDigits]="minFractionDigits" [maxFractionDigits]="maxFractionDigits" [prefix]="prefix" [suffix]="suffix" [placeholder]="placeholder"
4007
4001
  [mode]="currency ? 'currency' : 'decimal'" [locale]="locale" [localeMatcher]="localeMatcher" [currency]="currency" [currencyDisplay]="currencyDisplay" [useGrouping]="useGrouping"></p-inputNumber>
4008
4002
  <p-triStateCheckbox *ngSwitchCase="'boolean'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-triStateCheckbox>
4009
- <p-calendar *ngSwitchCase="'date'" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
4003
+ <p-calendar *ngSwitchCase="'date'" [placeholder]="placeholder" [ngModel]="filterConstraint?.value" (ngModelChange)="onModelChange($event)"></p-calendar>
4010
4004
  </ng-container>
4011
4005
  </ng-template>
4012
4006
  `,
@@ -4431,14 +4425,14 @@ ColumnFilter.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version:
4431
4425
  <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>
4432
4426
  </div>
4433
4427
  <div class="p-column-filter-buttonbar">
4434
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4435
- <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" [label]="applyButtonLabel" pRipple></button>
4428
+ <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4429
+ <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
4436
4430
  </div>
4437
4431
  </ng-template>
4438
4432
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>
4439
4433
  </div>
4440
4434
  </div>
4441
- `, 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: [
4435
+ `, 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: [
4442
4436
  trigger('overlayAnimation', [
4443
4437
  transition(':enter', [
4444
4438
  style({ opacity: 0, transform: 'scaleY(0.8)' }),
@@ -4489,8 +4483,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.0.3", ngImpor
4489
4483
  <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>
4490
4484
  </div>
4491
4485
  <div class="p-column-filter-buttonbar">
4492
- <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4493
- <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" [label]="applyButtonLabel" pRipple></button>
4486
+ <button *ngIf="showClearButton" type="button" pButton class="p-button-outlined p-button-sm" (click)="clearFilter()" [label]="clearButtonLabel" pRipple></button>
4487
+ <button *ngIf="showApplyButton" type="button" pButton (click)="applyFilter()" class="p-button-sm" [label]="applyButtonLabel" pRipple></button>
4494
4488
  </div>
4495
4489
  </ng-template>
4496
4490
  <ng-container *ngTemplateOutlet="footerTemplate; context: {$implicit: field}"></ng-container>