@pepperi-addons/ngx-lib 0.4.2-beta.9 → 0.4.2-beta.91

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 (196) hide show
  1. package/attachment/attachment.component.d.ts +11 -2
  2. package/button/button.component.d.ts +8 -8
  3. package/core/common/services/color.service.d.ts +1 -0
  4. package/core/common/services/file.service.d.ts +7 -2
  5. package/dialog/dialog.service.d.ts +1 -0
  6. package/draggable-items/draggable-items.component.d.ts +3 -3
  7. package/draggable-items/draggable-items.module.d.ts +1 -1
  8. package/esm2020/address/address.component.mjs +1 -1
  9. package/esm2020/attachment/attachment.component.mjs +38 -18
  10. package/esm2020/button/button.component.mjs +7 -7
  11. package/esm2020/chips/chips.component.mjs +2 -2
  12. package/esm2020/color/color-picker.component.mjs +1 -1
  13. package/esm2020/core/common/services/color.service.mjs +27 -1
  14. package/esm2020/core/common/services/file.service.mjs +57 -20
  15. package/esm2020/core/common/services/session.service.mjs +2 -1
  16. package/esm2020/core/customization/customization.model.mjs +7 -6
  17. package/esm2020/core/customization/customization.service.mjs +13 -4
  18. package/esm2020/core/http/services/http.service.mjs +1 -1
  19. package/esm2020/dialog/dialog.component.mjs +3 -3
  20. package/esm2020/dialog/dialog.service.mjs +22 -1
  21. package/esm2020/draggable-items/draggable-items.component.mjs +7 -7
  22. package/esm2020/draggable-items/draggable-items.module.mjs +6 -6
  23. package/esm2020/files-uploader/files-uploader.component.mjs +50 -45
  24. package/esm2020/form/field-generator.component.mjs +3 -3
  25. package/esm2020/form/form.component.mjs +4 -3
  26. package/esm2020/form/internal-field-generator.component.mjs +1 -1
  27. package/esm2020/form/internal-form.component.mjs +1 -1
  28. package/esm2020/form/internal-list.component.mjs +2 -2
  29. package/esm2020/image/image.component.mjs +32 -16
  30. package/esm2020/image/image.service.mjs +2 -4
  31. package/esm2020/images-filmstrip/images-filmstrip.component.mjs +2 -2
  32. package/esm2020/link/link.component.mjs +33 -58
  33. package/esm2020/list/list.component.mjs +109 -18
  34. package/esm2020/list/list.model.mjs +1 -1
  35. package/esm2020/menu/menu.component.mjs +3 -3
  36. package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
  37. package/esm2020/quantity-selector/quantity-selector.component.mjs +20 -25
  38. package/esm2020/query-builder/common/model/operator.mjs +2 -2
  39. package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
  40. package/esm2020/select/select.component.mjs +66 -40
  41. package/esm2020/select-panel/select-panel.component.mjs +2 -2
  42. package/esm2020/signature/public-api.mjs +2 -1
  43. package/esm2020/signature/signature-dialog.component.mjs +78 -0
  44. package/esm2020/signature/signature.component.mjs +117 -89
  45. package/esm2020/signature/signature.module.mjs +6 -5
  46. package/esm2020/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +5 -0
  47. package/esm2020/skeleton-loader/public-api.mjs +6 -0
  48. package/esm2020/skeleton-loader/skeleton-loader.component.mjs +44 -0
  49. package/esm2020/skeleton-loader/skeleton-loader.module.mjs +24 -0
  50. package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
  51. package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
  52. package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
  53. package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
  54. package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
  55. package/esm2020/textbox/textbox.component.mjs +9 -3
  56. package/esm2020/top-bar/top-bar.component.mjs +2 -2
  57. package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
  58. package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  59. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +37 -17
  60. package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  61. package/fesm2015/pepperi-addons-ngx-lib-button.mjs +6 -6
  62. package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  63. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +2 -2
  64. package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  65. package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  66. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +23 -2
  67. package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  68. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
  69. package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  70. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
  71. package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  72. package/fesm2015/pepperi-addons-ngx-lib-form.mjs +8 -7
  73. package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  74. package/fesm2015/pepperi-addons-ngx-lib-image.mjs +32 -18
  75. package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  76. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
  77. package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  78. package/fesm2015/pepperi-addons-ngx-lib-link.mjs +32 -57
  79. package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  80. package/fesm2015/pepperi-addons-ngx-lib-list.mjs +108 -18
  81. package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  82. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +2 -2
  83. package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  84. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  85. package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  86. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
  87. package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  88. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  89. package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  90. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
  91. package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  92. package/fesm2015/pepperi-addons-ngx-lib-select.mjs +64 -38
  93. package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  94. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +205 -102
  95. package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  96. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
  97. package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
  98. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
  99. package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  100. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +8 -2
  101. package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  102. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
  103. package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  104. package/fesm2015/pepperi-addons-ngx-lib.mjs +101 -27
  105. package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
  106. package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
  107. package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
  108. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +37 -17
  109. package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
  110. package/fesm2020/pepperi-addons-ngx-lib-button.mjs +6 -6
  111. package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
  112. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +2 -2
  113. package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
  114. package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
  115. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +23 -2
  116. package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
  117. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
  118. package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
  119. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
  120. package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
  121. package/fesm2020/pepperi-addons-ngx-lib-form.mjs +8 -7
  122. package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
  123. package/fesm2020/pepperi-addons-ngx-lib-image.mjs +32 -18
  124. package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
  125. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
  126. package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
  127. package/fesm2020/pepperi-addons-ngx-lib-link.mjs +32 -57
  128. package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
  129. package/fesm2020/pepperi-addons-ngx-lib-list.mjs +108 -17
  130. package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
  131. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +2 -2
  132. package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
  133. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
  134. package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
  135. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
  136. package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
  137. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
  138. package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
  139. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
  140. package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
  141. package/fesm2020/pepperi-addons-ngx-lib-select.mjs +64 -38
  142. package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
  143. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +201 -102
  144. package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
  145. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +76 -0
  146. package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
  147. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
  148. package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
  149. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +8 -2
  150. package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
  151. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
  152. package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
  153. package/fesm2020/pepperi-addons-ngx-lib.mjs +101 -27
  154. package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
  155. package/files-uploader/files-uploader.component.d.ts +7 -4
  156. package/image/image.component.d.ts +11 -3
  157. package/link/link.component.d.ts +23 -27
  158. package/list/list.component.d.ts +10 -2
  159. package/list/list.model.d.ts +3 -1
  160. package/menu/menu.component.d.ts +1 -1
  161. package/package.json +10 -2
  162. package/quantity-selector/quantity-selector.component.d.ts +0 -2
  163. package/select/select.component.d.ts +10 -2
  164. package/signature/public-api.d.ts +1 -0
  165. package/signature/signature-dialog.component.d.ts +29 -0
  166. package/signature/signature.component.d.ts +7 -16
  167. package/signature/signature.module.d.ts +16 -15
  168. package/skeleton-loader/index.d.ts +5 -0
  169. package/skeleton-loader/public-api.d.ts +2 -0
  170. package/skeleton-loader/skeleton-loader.component.d.ts +20 -0
  171. package/skeleton-loader/skeleton-loader.component.theme.scss +15 -0
  172. package/skeleton-loader/skeleton-loader.module.d.ts +9 -0
  173. package/src/core/style/abstracts/AbstractsIntro.stories.mdx +7 -0
  174. package/src/core/style/abstracts/functions.scss +11 -11
  175. package/src/core/style/abstracts/mixins.scss +9 -6
  176. package/src/core/style/abstracts/variables.scss +38 -18
  177. package/src/core/style/base/BorderRadius.stories.mdx +59 -0
  178. package/src/core/style/base/Breakpoints.stories.mdx +36 -0
  179. package/src/core/style/base/Colors.stories.mdx +128 -0
  180. package/src/core/style/base/Shadows.stories.mdx +69 -0
  181. package/src/core/style/base/Spacing.stories.mdx +75 -0
  182. package/src/core/style/base/States.stories.mdx +62 -0
  183. package/src/core/style/base/Typography.stories.mdx +89 -0
  184. package/src/core/style/base/ZIndex.stories.mdx +47 -0
  185. package/src/core/style/base/base.scss +8 -10
  186. package/src/core/style/base/borderRadius.component.ts +27 -0
  187. package/src/core/style/base/breakpoints.component.ts +14 -0
  188. package/src/core/style/base/colors.component.ts +174 -0
  189. package/src/core/style/base/shadows.component.ts +90 -0
  190. package/src/core/style/base/spacing.component.ts +71 -0
  191. package/src/core/style/base/states.component.ts +84 -0
  192. package/src/core/style/base/typography.component.ts +94 -0
  193. package/src/core/style/base/typography.scss +52 -50
  194. package/src/core/style/base/zIndex.component.ts +25 -0
  195. package/src/core/style/components/file.scss +4 -4
  196. package/src/core/style/components/general.scss +5 -1
@@ -1227,6 +1227,7 @@ class PepListComponent {
1227
1227
  this.cd = cd;
1228
1228
  this.renderer = renderer;
1229
1229
  this.zone = zone;
1230
+ this.cacheSize = -1;
1230
1231
  this.noDataFoundMsg = null;
1231
1232
  this.selectionTypeForActions = 'multi';
1232
1233
  this.showCardSelection = false;
@@ -1288,6 +1289,7 @@ class PepListComponent {
1288
1289
  this.startX = 0;
1289
1290
  this.startWidth = 0;
1290
1291
  this.tableStartWidth = 0;
1292
+ this.lastColumnsWidth = [];
1291
1293
  // For sorting
1292
1294
  this.isAsc = true;
1293
1295
  this.sortBy = '';
@@ -1302,6 +1304,16 @@ class PepListComponent {
1302
1304
  this.deviceHasMouse = deviceHasMouse;
1303
1305
  });
1304
1306
  }
1307
+ set sorting(value) {
1308
+ this.sortBy = value?.sortBy || '';
1309
+ this.isAsc = value?.sortBy.length > 0 ? value.isAsc : true;
1310
+ }
1311
+ get sorting() {
1312
+ return {
1313
+ sortBy: this.sortBy,
1314
+ isAsc: this.isAsc
1315
+ };
1316
+ }
1305
1317
  set viewType(value) {
1306
1318
  this._viewType = value;
1307
1319
  this.isTable = value === 'table';
@@ -1378,6 +1390,9 @@ class PepListComponent {
1378
1390
  // }
1379
1391
  this.saveSortingToSession();
1380
1392
  }
1393
+ getCachedItemsNumber() {
1394
+ return this.cacheSize >= 0 ? this.cacheSize : PepListComponent.TOP_ITEMS_ARRAY;
1395
+ }
1381
1396
  getScrollingElement() {
1382
1397
  return this.parentScroll ? this.parentScroll : this.virtualScroller?.contentElementRef.nativeElement.parentElement;
1383
1398
  }
@@ -1433,11 +1448,13 @@ class PepListComponent {
1433
1448
  }
1434
1449
  }
1435
1450
  }
1451
+ getSelectionCheckBoxWidth() {
1452
+ return this.selectionTypeForActions === 'multi' ? 44 : 0;
1453
+ }
1436
1454
  setContainerWidth() {
1437
1455
  if (!this.hostElement.nativeElement.parentElement) {
1438
1456
  return;
1439
1457
  }
1440
- const selectionCheckBoxWidth = this.selectionTypeForActions === 'multi' ? 44 : 0;
1441
1458
  const rowHeight = 40; // the table row height (2.5rem * 16font-size).
1442
1459
  const style = getComputedStyle(this.hostElement.nativeElement.parentElement);
1443
1460
  // The container-fluid class padding left + right + border
@@ -1450,7 +1467,7 @@ class PepListComponent {
1450
1467
  ? this.layoutService.getScrollbarWidth()
1451
1468
  : 0;
1452
1469
  // The selectionCheckBoxWidth width + containerFluidSpacing + this.tableScrollWidth.
1453
- const rowHeaderWidthToSub = containerFluidSpacing + selectionCheckBoxWidth + this.tableScrollWidth;
1470
+ const rowHeaderWidthToSub = containerFluidSpacing + this.getSelectionCheckBoxWidth() + this.tableScrollWidth;
1454
1471
  this.containerWidth = parentContainer.offsetWidth - rowHeaderWidthToSub;
1455
1472
  }
1456
1473
  saveSortingToSession() {
@@ -1531,17 +1548,68 @@ class PepListComponent {
1531
1548
  if (!this.cd['destroyed']) {
1532
1549
  this.cd.detectChanges();
1533
1550
  }
1534
- // Set the columns width.
1551
+ // Set the container width.
1535
1552
  if (this.containerWidth <= 0) {
1536
1553
  this.setContainerWidth();
1537
1554
  }
1538
- this.calcColumnsWidth();
1555
+ const isLastColumnsWidthSet = this.setLastColumnsWidth();
1556
+ // Set the layout only if the last columns width couldn't set.
1557
+ if (!isLastColumnsWidthSet) {
1558
+ this.calcColumnsWidth();
1559
+ }
1539
1560
  this.checkForChanges = new Date().getTime();
1540
1561
  }
1562
+ setLastColumnsWidth() {
1563
+ let res = false;
1564
+ let totalCalcColsWidth = 0;
1565
+ let widthToSet = 'inherit';
1566
+ if (this.lastColumnsWidth.length > 0) {
1567
+ // Check if this is the same UI control for table.
1568
+ if (this.lastColumnsWidth.length === this._layout.ControlFields.length) {
1569
+ let uiControlsAreTheSame = true;
1570
+ for (let index = 0; index < this._layout.ControlFields.length; index++) {
1571
+ const uiControlField = this._layout.ControlFields[index];
1572
+ if (uiControlField.ApiName !== this.lastColumnsWidth[index].columnAPIName) {
1573
+ uiControlsAreTheSame = false;
1574
+ break;
1575
+ }
1576
+ }
1577
+ if (uiControlsAreTheSame) {
1578
+ for (let index = 0; index < this._layout.ControlFields.length; index++) {
1579
+ const uiControlField = this._layout.ControlFields[index];
1580
+ uiControlField.calcColumnWidth = this.lastColumnsWidth[index].calcColumnWidth;
1581
+ uiControlField.calcTitleColumnWidthString = this.lastColumnsWidth[index].calcTitleColumnWidthString;
1582
+ uiControlField.calcColumnWidthString = this.lastColumnsWidth[index].calcColumnWidthString;
1583
+ totalCalcColsWidth += this.lastColumnsWidth[index].calcColumnWidth;
1584
+ }
1585
+ widthToSet = (totalCalcColsWidth + this.getSelectionCheckBoxWidth()) + 'px';
1586
+ console.log(`setLastColumnsWidth -> widthToSet: ${widthToSet} *** totalCalcColsWidth: ${totalCalcColsWidth}`);
1587
+ this.setColumnsWidth(widthToSet);
1588
+ res = true;
1589
+ }
1590
+ }
1591
+ }
1592
+ return res;
1593
+ }
1594
+ setColumnsWidth(widthToSet, wait = false) {
1595
+ this.renderer.setStyle(this.hostElement.nativeElement, 'width', widthToSet);
1596
+ // Do this only after UI is change cause the property isTable is Input and can refresh after this thread.
1597
+ if (this.virtualScroller) {
1598
+ this.renderer.setStyle(this.virtualScroller.contentElementRef.nativeElement, 'width', widthToSet === 'inherit' ? '100%' : widthToSet);
1599
+ }
1600
+ // Wait for delay to update properties in the last chosen and not this.
1601
+ // await new Promise((resolve) => setTimeout(resolve, 0));
1602
+ setTimeout(() => {
1603
+ this.renderer.setStyle(this.hostElement.nativeElement, 'width', widthToSet);
1604
+ // Do this only after UI is change cause the property isTable is Input and can refresh after this thread.
1605
+ if (this.virtualScroller) {
1606
+ this.renderer.setStyle(this.virtualScroller.contentElementRef.nativeElement, 'width', widthToSet === 'inherit' ? '100%' : widthToSet);
1607
+ }
1608
+ }, 0);
1609
+ }
1541
1610
  calcColumnsWidth() {
1542
1611
  const fixedMultiple = 3.78; // for converting em to pixel.
1543
1612
  const length = this._layout.ControlFields.length;
1544
- const selectionCheckBoxWidth = this.selectionTypeForActions === 'multi' ? 44 : 0;
1545
1613
  // Is table AND there is at least one column of width type of percentage.
1546
1614
  if (this.isTable) {
1547
1615
  if (this._layout && this._layout.ControlFields) {
@@ -1557,6 +1625,7 @@ class PepListComponent {
1557
1625
  }
1558
1626
  }
1559
1627
  let totalCalcColsWidth = 0;
1628
+ let widthToSet = 'inherit';
1560
1629
  // Calc by percentage
1561
1630
  if (this.hasColumnWidthOfTypePercentage) {
1562
1631
  const totalColsWidth = this._layout.ControlFields.map((cf) => cf.ColumnWidth).reduce((sum, current) => sum + current);
@@ -1572,7 +1641,6 @@ class PepListComponent {
1572
1641
  totalCalcColsWidth += uiControlField.calcColumnWidth;
1573
1642
  }
1574
1643
  }
1575
- this.renderer.setStyle(this.hostElement.nativeElement, 'width', 'inherit');
1576
1644
  }
1577
1645
  else {
1578
1646
  for (let index = 0; index < length; index++) {
@@ -1580,16 +1648,17 @@ class PepListComponent {
1580
1648
  .ControlFields[index];
1581
1649
  const currentFixedWidth = Math.floor(uiControlField.ColumnWidth * fixedMultiple);
1582
1650
  if (index === length - 1) {
1583
- uiControlField.calcTitleColumnWidthString = currentFixedWidth + 'px';
1584
- uiControlField.calcColumnWidthString = currentFixedWidth + 'px';
1651
+ uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString = currentFixedWidth + 'px';
1585
1652
  }
1586
1653
  else {
1587
1654
  uiControlField.calcTitleColumnWidthString = uiControlField.calcColumnWidthString = currentFixedWidth + 'px';
1588
1655
  }
1589
1656
  totalCalcColsWidth += currentFixedWidth;
1590
1657
  }
1591
- this.renderer.setStyle(this.hostElement.nativeElement, 'width', totalCalcColsWidth + selectionCheckBoxWidth + 'px');
1658
+ widthToSet = (totalCalcColsWidth + this.getSelectionCheckBoxWidth()) + 'px';
1592
1659
  }
1660
+ console.log(`calcColumnsWidth -> widthToSet: ${widthToSet} *** totalCalcColsWidth: ${totalCalcColsWidth}`);
1661
+ this.setColumnsWidth(widthToSet);
1593
1662
  }
1594
1663
  calcObjectHeight() {
1595
1664
  setTimeout(() => {
@@ -1991,6 +2060,9 @@ class PepListComponent {
1991
2060
  }
1992
2061
  }
1993
2062
  }
2063
+ if (!this.isTable) {
2064
+ this.lastColumnsWidth = [];
2065
+ }
1994
2066
  this.setLayout();
1995
2067
  // setTimeout(() => {
1996
2068
  this.onListLoad();
@@ -2001,7 +2073,7 @@ class PepListComponent {
2001
2073
  return; // Event isn't supplied.
2002
2074
  }
2003
2075
  // Clean array
2004
- if (this.itemsCounter + items.length > PepListComponent.TOP_ITEMS_ARRAY) {
2076
+ if (this.itemsCounter + items.length > this.getCachedItemsNumber()) {
2005
2077
  this.cleanItems();
2006
2078
  }
2007
2079
  const startIndex = event.fromIndex ?? 0;
@@ -2018,7 +2090,7 @@ class PepListComponent {
2018
2090
  return; // Event isn't supplied.
2019
2091
  }
2020
2092
  // Clean array
2021
- if (this.itemsCounter + items.length > PepListComponent.TOP_ITEMS_ARRAY) {
2093
+ if (this.itemsCounter + items.length > this.getCachedItemsNumber()) {
2022
2094
  this.cleanItems();
2023
2095
  }
2024
2096
  // const loadInChunks = this.itemsCounter === 0;
@@ -2115,13 +2187,15 @@ class PepListComponent {
2115
2187
  onWinResize(e) {
2116
2188
  this.refresh();
2117
2189
  this.containerWidth = 0;
2190
+ this.lastColumnsWidth = [];
2118
2191
  this.setLayout();
2119
2192
  }
2120
2193
  onListResizeStart(event, columnKey) {
2121
2194
  this.pressedColumn = columnKey;
2122
2195
  this.startX = event.x;
2123
2196
  this.startWidth = event.target.closest('.header-column').offsetWidth;
2124
- this.tableStartWidth = this.virtualScroller?.contentElementRef.nativeElement.offsetWidth;
2197
+ this.tableStartWidth = this.hostElement.nativeElement.offsetWidth; // this.virtualScroller?.contentElementRef.nativeElement.offsetWidth;
2198
+ console.log(`tableStartWidth - ${this.tableStartWidth}`);
2125
2199
  }
2126
2200
  onListResize(event) {
2127
2201
  if (this.pressedColumn.length > 0) {
@@ -2154,9 +2228,11 @@ class PepListComponent {
2154
2228
  }
2155
2229
  totalCalcColsWidth += uiControlField.calcColumnWidth;
2156
2230
  }
2157
- this.renderer.setStyle(this.hostElement.nativeElement, 'width', this.tableStartWidth + widthToAdd + 'px');
2231
+ const widthToSet = (this.tableStartWidth + (widthToAdd * 2)) + 'px';
2232
+ console.log(`onListResize -> widthToSet: ${widthToSet} *** widthToAdd: ${widthToAdd}`);
2233
+ this.setColumnsWidth(widthToSet);
2234
+ this.checkForChanges = new Date().getTime();
2158
2235
  }
2159
- this.checkForChanges = new Date().getTime();
2160
2236
  }
2161
2237
  }
2162
2238
  onListResizeEnd(event) {
@@ -2171,6 +2247,17 @@ class PepListComponent {
2171
2247
  this.initResizeData();
2172
2248
  }, 0);
2173
2249
  }
2250
+ this.lastColumnsWidth = [];
2251
+ // Set the last columns width
2252
+ for (let index = 0; index < this._layout.ControlFields.length; index++) {
2253
+ const uiControlField = this._layout.ControlFields[index];
2254
+ this.lastColumnsWidth.push({
2255
+ columnAPIName: uiControlField.ApiName,
2256
+ calcColumnWidth: uiControlField.calcColumnWidth,
2257
+ calcTitleColumnWidthString: uiControlField.calcTitleColumnWidthString,
2258
+ calcColumnWidthString: uiControlField.calcColumnWidthString
2259
+ });
2260
+ }
2174
2261
  event.stopPropagation();
2175
2262
  }
2176
2263
  }
@@ -2306,15 +2393,19 @@ PepListComponent.UN_SELECTED_ITEMS_STATE_KEY = 'UnSelectedItems';
2306
2393
  PepListComponent.ALL_SELECTED_STATE_KEY = 'AllSelected';
2307
2394
  PepListComponent.SORT_BY_STATE_KEY = 'SortBy';
2308
2395
  PepListComponent.ASCENDING_STATE_KEY = 'IsAscending';
2309
- PepListComponent.MINIMUM_COLUMN_WIDTH = 48;
2396
+ PepListComponent.MINIMUM_COLUMN_WIDTH = 72;
2310
2397
  PepListComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListComponent, deps: [{ token: i0.ElementRef }, { token: i1.PepLayoutService }, { token: i1.PepSessionService }, { token: i0.ChangeDetectorRef }, { token: i0.Renderer2 }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
2311
- PepListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepListComponent, selector: "pep-list", inputs: { noDataFoundMsg: "noDataFoundMsg", selectionTypeForActions: "selectionTypeForActions", showCardSelection: "showCardSelection", hideAllSelectionInMulti: "hideAllSelectionInMulti", cardSize: "cardSize", tableViewType: "tableViewType", viewType: "viewType", firstFieldAsLink: "firstFieldAsLink", supportSorting: "supportSorting", supportResizing: "supportResizing", parentScroll: "parentScroll", disabled: "disabled", lockEvents: "lockEvents", lockItemInnerEvents: "lockItemInnerEvents", printMode: "printMode", isReport: "isReport", zebraStripes: "zebraStripes", totalsRow: "totalsRow", pagerType: "pagerType", pageSize: "pageSize", pageIndex: "pageIndex", bufferAmount: "bufferAmount", scrollAnimationTime: "scrollAnimationTime", scrollDebounceTime: "scrollDebounceTime", scrollThrottlingTime: "scrollThrottlingTime", useAsWebComponent: "useAsWebComponent" }, outputs: { itemClick: "itemClick", fieldClick: "fieldClick", valueChange: "valueChange", sortingChange: "sortingChange", selectedItemsChange: "selectedItemsChange", selectedItemChange: "selectedItemChange", selectAllClick: "selectAllClick", listLoad: "listLoad", loadItems: "loadItems", loadPage: "loadPage", startIndexChange: "startIndexChange" }, host: { listeners: { "window:resize": "onWinResize($event)" } }, viewQueries: [{ propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }, { propertyName: "selectAllCB", first: true, predicate: ["selectAllCB"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"totalRows == 0\">\n <ng-container *ngIf=\"noDataFoundMsg; then noDataMsgInputBlock; else noDataMsgDefaultBlock\"></ng-container>\n <ng-template #noDataMsgInputBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ noDataFoundMsg }}\n </p>\n </div>\n </ng-template>\n <ng-template #noDataMsgDefaultBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ 'LIST.NO_DATA_FOUND' | translate}}\n </p>\n </div>\n <div class=\"no-data-suggestions\">\n <p class=\"suggestions-title title-lg\">\n {{ 'LIST.NO_DATA_FOUND_SUGGESTIONS_TITLE' | translate}}\n </p>\n <ul class=\"suggestions-list body-lg\" [innerHtml]=\"'LIST.NO_DATA_FOUND_SUGGESTIONS_LIST' | translate\"></ul>\n </div>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"totalRows > 0\">\n <ng-container *ngTemplateOutlet=\"tableHeader\"></ng-container>\n\n <!-- (vsChildRectChange)=\"onChildRectChange($event)\" -->\n <virtual-scroller #scroller [items]=\"pagerType === 'pages' ? currentPageItems : items\"\n [scrollDebounceTime]=\"scrollDebounceTime\" [scrollThrottlingTime]=\"scrollThrottlingTime\"\n [bufferAmount]=\"printMode ? totalRows : bufferAmount\" [parentScroll]=\"parentScroll\" [disable]=\"loadingItemsFromApi\"\n class=\"virtual-scroller\" [ngClass]=\"{ 'table-body': isTable, 'cards-body': !isTable }\"\n (vsChange)=\"onVirtualScrollerChange($event)\" >\n <ng-container *ngFor=\"let item of scroller.viewPortItems; let index = index; let isFirst = first;\">\n <ng-container *ngTemplateOutlet=\"listData; context: {item: item, index:index}\"></ng-container>\n </ng-container>\n </virtual-scroller>\n\n <pep-list-pager *ngIf=\"pagerType === 'pages'\" class=\" list-pager\" [disabled]=\"loadingItemsFromApi\"\n [length]=\"totalRows\" [pageSize]=\"pageSize\" [pageIndex]=\"pageIndex\" (pagerChange)=\"onPagerChange($event)\">\n </pep-list-pager>\n\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n</ng-container>\n\n<ng-template #listData let-item=\"item\" let-index=\"index\">\n <ng-container *ngIf=\"isTable\">\n <!-- getIsItemSelected(item) -> item | isItemSelected: selectionTypeForActions : selectedItemId : isAllSelected : selectedItems : unSelectedItems -->\n <div class=\"table-row\" (mouseenter)=\"onTableRowMouseEnter($event, item?.UID, item?.Type)\" \n (mouseleave)=\"onTableRowMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n even: zebraStripes && index % 2 !== 0,\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId}\" [ngStyle]=\"{ visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <fieldset class=\"table-row-fieldset\" [ngStyle]=\"{ 'background-color': item?.BackgroundColor }\">\n <mat-checkbox *ngIf=\"selectionTypeForActions == 'multi'\" type=\"checkbox\"\n class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\" [ngStyle]=\"{\n visibility: !deviceHasMouse ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId || isAllSelected || selectedItems.size > 0 ? 'visible' : 'hidden'\n }\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <mat-radio-button *ngIf=\"selectionTypeForActions == 'single'\" name=\"selection\"\n class=\"pull-left flip row-selection pep-radio-button\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\"\n [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-radio-button>\n <pep-form [layoutType]=\"'table'\" [checkForChanges]=\"checkForChanges\" [layout]=\"layout\"\n [firstFieldAsLink]=\"firstFieldAsLink\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isReport]=\"isReport\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </fieldset>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!isTable\">\n <div (mouseenter)=\"onCardMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onCardMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId,\n 'line-view': viewType === 'lines',\n 'card-view': viewType === 'cards',\n 'small-card': cardSize === 'sm'\n }\" class=\"pull-left flip\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <mat-checkbox *ngIf=\"showCardSelection\" class=\"pull-left flip card-selection\"\n [disabled]=\"getisItemDisabled(item)\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <pep-form [layoutType]=\"'card'\" [firstFieldAsLink]=\"firstFieldAsLink\" [checkForChanges]=\"checkForChanges\"\n [layout]=\"layout\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableHeader>\n <div *ngIf=\"isTable\" class=\"table-header\" (mouseup)=\"onListResizeEnd($event)\"\n (mouseenter)=\"onListHeaderMouseEnter($event)\" (mouseleave)=\"onListHeaderMouseLeave($event)\"\n (mousemove)=\"onListResize($event)\">\n\n <div class=\"table-header-padding-top\"></div>\n <fieldset class=\"table-header-fieldset\">\n <mat-checkbox *ngIf=\"selectionTypeForActions !== 'none'\" #selectAllCB class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n type=\"checkbox\" [ngStyle]=\"{\n visibility:\n selectionTypeForActions == 'single' || \n (selectionTypeForActions == 'multi' && hideAllSelectionInMulti) ? 'hidden' : 'visible'\n }\"\n [indeterminate]=\"isAllSelected ? unSelectedItems.size > 0 && unSelectedItems.size < totalRows : (selectedItems.size > 0 && !getIsAllSelectedForActions())\"\n [disabled]=\"disabled || selectionTypeForActions === 'single'\" [checked]=\"getIsAllSelectedForActions()\"\n (change)=\"selectAllItemsForActions($event)\"></mat-checkbox>\n <fieldset>\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"header-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n 'support-sorting': supportSorting,\n 'has-sorting': field.ApiName === sortBy,\n 'is-resizing': field.ApiName === pressedColumn,\n 'is-first': j === 0 && selectionTypeForActions !== 'multi',\n 'is-last': j === layout?.ControlFields?.length - 1\n }\"\n (click)=\"supportSorting ? (onListSortingChange(field.ApiName, sortBy !== null && sortBy != field.ApiName ? true : !isAsc, $event)) : false\">\n\n <label id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip text-align-{{ field.Layout.XAlignment }}\"\n title=\"{{ field.Title }}\">\n <span *ngIf=\"field.Mandatory\" class=\"mandatory\">\n <pep-icon name=\"system_must\"></pep-icon>\n </span>\n {{ field.Title != '' ? field.Title : ' '}}\n </label>\n\n <div *ngIf=\"supportResizing\" class=\"resize-box pull-right flip\"\n (mousedown)=\"onListResizeStart($event, field.ApiName)\">\n <div class=\"splitter\"></div>\n </div>\n\n <div *ngIf=\"supportSorting\" class=\"sorting-box pull-left flip\"\n [ngClass]=\"{ 'has-sorting': field.ApiName === sortBy }\">\n <mat-icon *ngIf=\"field.ApiName !== sortBy\">\n <pep-icon name=\"arrow_either\" class=\"asc\"></pep-icon>\n </mat-icon>\n <ng-container *ngIf=\"field.ApiName === sortBy\">\n <mat-icon *ngIf=\"!isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && isAsc }\"\n title=\"{{ 'LIST.SORT_ASC' | translate }}\">\n <pep-icon name=\"arrow_up\" class=\"asc\"></pep-icon>\n </mat-icon>\n <mat-icon *ngIf=\"isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && !isAsc }\"\n title=\"{{ 'LIST.SORT_DESC' | translate }}\">\n <pep-icon name=\"arrow_down\" class=\"desc\"></pep-icon>\n </mat-icon>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </fieldset>\n </div>\n</ng-template>\n\n<ng-template #tableTotal>\n <div *ngIf=\"isTable && totalsRow?.length > 0 && totalsRow.length <= layout?.ControlFields.length\"\n class=\"table-total\">\n <fieldset class=\"table-header-fieldset\">\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"total-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\">\n <label class=\"total-label body-sm text-align-{{ field.Layout.XAlignment }}\">\n {{ totalsRow[j] }}\n </label>\n </div>\n </fieldset>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:flex;flex-direction:column}.no-data{margin:var(--pep-spacing-2xl, 2rem) 0}.no-data-suggestions .suggestions-title{margin:var(--pep-spacing-lg, 1rem) 0 var(--pep-spacing-sm, .5rem)}.no-data-suggestions .suggestions-list{margin:0;padding:0;padding-inline-start:var(--pep-spacing-2xl, 2rem)}.virtual-scroller{min-height:5rem;height:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFormComponent, selector: "pep-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick", "internalFormFieldClick", "internalFormFieldChange"] }, { kind: "component", type: VirtualScrollerComponent, selector: "virtual-scroller,[virtualScroller]", inputs: ["disable", "executeRefreshOutsideAngularZone", "enableUnequalChildrenSizes", "RTL", "useMarginInsteadOfTranslate", "modifyOverflowStyleOfParentScroll", "stripedTable", "scrollbarWidth", "scrollbarHeight", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight", "ssrViewportWidth", "ssrViewportHeight", "bufferAmount", "scrollAnimationTime", "resizeBypassRefreshThreshold", "scrollThrottlingTime", "scrollDebounceTime", "checkResizeInterval", "items", "compareItems", "horizontal", "parentScroll"], outputs: ["vsChildRectChange", "vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "component", type: PepListPagerComponent, selector: "pep-list-pager", inputs: ["disabled", "pageIndex", "length", "pageSize"], outputs: ["pagerChange"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2398
+ PepListComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.0.2", type: PepListComponent, selector: "pep-list", inputs: { sorting: "sorting", cacheSize: "cacheSize", noDataFoundMsg: "noDataFoundMsg", selectionTypeForActions: "selectionTypeForActions", showCardSelection: "showCardSelection", hideAllSelectionInMulti: "hideAllSelectionInMulti", cardSize: "cardSize", tableViewType: "tableViewType", viewType: "viewType", firstFieldAsLink: "firstFieldAsLink", supportSorting: "supportSorting", supportResizing: "supportResizing", parentScroll: "parentScroll", disabled: "disabled", lockEvents: "lockEvents", lockItemInnerEvents: "lockItemInnerEvents", printMode: "printMode", isReport: "isReport", zebraStripes: "zebraStripes", totalsRow: "totalsRow", pagerType: "pagerType", pageSize: "pageSize", pageIndex: "pageIndex", bufferAmount: "bufferAmount", scrollAnimationTime: "scrollAnimationTime", scrollDebounceTime: "scrollDebounceTime", scrollThrottlingTime: "scrollThrottlingTime", useAsWebComponent: "useAsWebComponent" }, outputs: { itemClick: "itemClick", fieldClick: "fieldClick", valueChange: "valueChange", sortingChange: "sortingChange", selectedItemsChange: "selectedItemsChange", selectedItemChange: "selectedItemChange", selectAllClick: "selectAllClick", listLoad: "listLoad", loadItems: "loadItems", loadPage: "loadPage", startIndexChange: "startIndexChange" }, host: { listeners: { "window:resize": "onWinResize($event)" } }, viewQueries: [{ propertyName: "virtualScroller", first: true, predicate: VirtualScrollerComponent, descendants: true }, { propertyName: "selectAllCB", first: true, predicate: ["selectAllCB"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ng-container *ngIf=\"totalRows == 0\">\n <ng-container *ngIf=\"noDataFoundMsg; then noDataMsgInputBlock; else noDataMsgDefaultBlock\"></ng-container>\n <ng-template #noDataMsgInputBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ noDataFoundMsg }}\n </p>\n </div>\n </ng-template>\n <ng-template #noDataMsgDefaultBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ 'LIST.NO_DATA_FOUND' | translate}}\n </p>\n </div>\n <div class=\"no-data-suggestions\">\n <p class=\"suggestions-title title-lg\">\n {{ 'LIST.NO_DATA_FOUND_SUGGESTIONS_TITLE' | translate}}\n </p>\n <ul class=\"suggestions-list body-lg\" [innerHtml]=\"'LIST.NO_DATA_FOUND_SUGGESTIONS_LIST' | translate\"></ul>\n </div>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"totalRows > 0\">\n <ng-container *ngTemplateOutlet=\"tableHeader\"></ng-container>\n\n <!-- (vsChildRectChange)=\"onChildRectChange($event)\" -->\n <virtual-scroller #scroller [items]=\"pagerType === 'pages' ? currentPageItems : items\"\n [scrollDebounceTime]=\"scrollDebounceTime\" [scrollThrottlingTime]=\"scrollThrottlingTime\"\n [bufferAmount]=\"printMode ? totalRows : bufferAmount\" [parentScroll]=\"parentScroll\" [disable]=\"loadingItemsFromApi\"\n class=\"virtual-scroller\" [ngClass]=\"{ 'table-body': isTable, 'cards-body': !isTable }\"\n (vsChange)=\"onVirtualScrollerChange($event)\" >\n <ng-container *ngFor=\"let item of scroller.viewPortItems; let index = index; let isFirst = first;\">\n <ng-container *ngTemplateOutlet=\"listData; context: {item: item, index:index}\"></ng-container>\n </ng-container>\n </virtual-scroller>\n\n <pep-list-pager *ngIf=\"pagerType === 'pages'\" class=\" list-pager\" [disabled]=\"loadingItemsFromApi\"\n [length]=\"totalRows\" [pageSize]=\"pageSize\" [pageIndex]=\"pageIndex\" (pagerChange)=\"onPagerChange($event)\">\n </pep-list-pager>\n\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n</ng-container>\n\n<ng-template #listData let-item=\"item\" let-index=\"index\">\n <ng-container *ngIf=\"isTable\">\n <!-- getIsItemSelected(item) -> item | isItemSelected: selectionTypeForActions : selectedItemId : isAllSelected : selectedItems : unSelectedItems -->\n <div class=\"table-row\" (mouseenter)=\"onTableRowMouseEnter($event, item?.UID, item?.Type)\" \n (mouseleave)=\"onTableRowMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n even: zebraStripes && index % 2 !== 0,\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId}\" [ngStyle]=\"{ visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <fieldset class=\"table-row-fieldset\" [ngStyle]=\"{ 'background-color': item?.BackgroundColor }\">\n <mat-checkbox *ngIf=\"selectionTypeForActions == 'multi'\" type=\"checkbox\"\n class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\" [ngStyle]=\"{\n visibility: !deviceHasMouse ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId || isAllSelected || selectedItems.size > 0 ? 'visible' : 'hidden'\n }\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <mat-radio-button *ngIf=\"selectionTypeForActions == 'single'\" name=\"selection\"\n class=\"pull-left flip row-selection pep-radio-button\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\"\n [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-radio-button>\n <pep-form [layoutType]=\"'table'\" [checkForChanges]=\"checkForChanges\" [layout]=\"layout\"\n [firstFieldAsLink]=\"firstFieldAsLink\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isReport]=\"isReport\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </fieldset>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!isTable\">\n <div (mouseenter)=\"onCardMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onCardMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId,\n 'line-view': viewType === 'lines',\n 'card-view': viewType === 'cards',\n 'small-card': cardSize === 'sm'\n }\" class=\"pull-left flip\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <mat-checkbox *ngIf=\"showCardSelection\" class=\"pull-left flip card-selection\"\n [disabled]=\"getisItemDisabled(item)\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <pep-form [layoutType]=\"'card'\" [firstFieldAsLink]=\"firstFieldAsLink\" [checkForChanges]=\"checkForChanges\"\n [layout]=\"layout\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableHeader>\n <div *ngIf=\"isTable\" class=\"table-header\" (mouseup)=\"onListResizeEnd($event)\"\n (mouseenter)=\"onListHeaderMouseEnter($event)\" (mouseleave)=\"onListHeaderMouseLeave($event)\"\n (mousemove)=\"onListResize($event)\">\n\n <div class=\"table-header-padding-top\"></div>\n <fieldset class=\"table-header-fieldset\">\n <mat-checkbox *ngIf=\"selectionTypeForActions !== 'none'\" #selectAllCB class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n type=\"checkbox\" [ngStyle]=\"{\n visibility:\n selectionTypeForActions == 'single' || \n (selectionTypeForActions == 'multi' && hideAllSelectionInMulti) ? 'hidden' : 'visible'\n }\"\n [indeterminate]=\"isAllSelected ? unSelectedItems.size > 0 && unSelectedItems.size < totalRows : (selectedItems.size > 0 && !getIsAllSelectedForActions())\"\n [disabled]=\"disabled || selectionTypeForActions === 'single'\" [checked]=\"getIsAllSelectedForActions()\"\n (change)=\"selectAllItemsForActions($event)\"></mat-checkbox>\n <fieldset>\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"header-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n 'support-sorting': supportSorting,\n 'has-sorting': field.ApiName === sortBy,\n 'is-resizing': field.ApiName === pressedColumn,\n 'is-first': j === 0 && selectionTypeForActions !== 'multi',\n 'is-last': j === layout?.ControlFields?.length - 1\n }\"\n (click)=\"supportSorting ? (onListSortingChange(field.ApiName, sortBy !== null && sortBy != field.ApiName ? true : !isAsc, $event)) : false\">\n\n <label id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip text-align-{{ field.Layout.XAlignment }}\"\n title=\"{{ field.Title }}\">\n <span *ngIf=\"field.Mandatory\" class=\"mandatory\">\n <pep-icon name=\"system_must\"></pep-icon>\n </span>\n {{ field.Title != '' ? field.Title : ' '}}\n </label>\n\n <div *ngIf=\"supportResizing\" class=\"resize-box pull-right flip\"\n (mousedown)=\"onListResizeStart($event, field.ApiName)\">\n <div class=\"splitter\"></div>\n </div>\n\n <div *ngIf=\"supportSorting\" class=\"sorting-box pull-left flip\"\n [ngClass]=\"{ 'has-sorting': field.ApiName === sortBy }\">\n <mat-icon *ngIf=\"field.ApiName !== sortBy\">\n <pep-icon name=\"arrow_either\" class=\"asc\"></pep-icon>\n </mat-icon>\n <ng-container *ngIf=\"field.ApiName === sortBy\">\n <mat-icon *ngIf=\"!isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && isAsc }\"\n title=\"{{ 'LIST.SORT_ASC' | translate }}\">\n <pep-icon name=\"arrow_up\" class=\"asc\"></pep-icon>\n </mat-icon>\n <mat-icon *ngIf=\"isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && !isAsc }\"\n title=\"{{ 'LIST.SORT_DESC' | translate }}\">\n <pep-icon name=\"arrow_down\" class=\"desc\"></pep-icon>\n </mat-icon>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </fieldset>\n </div>\n</ng-template>\n\n<ng-template #tableTotal>\n <div *ngIf=\"isTable && totalsRow?.length > 0 && totalsRow.length <= layout?.ControlFields.length\"\n class=\"table-total\">\n <fieldset class=\"table-header-fieldset\">\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"total-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\">\n <label class=\"total-label body-sm text-align-{{ field.Layout.XAlignment }}\">\n {{ totalsRow[j] }}\n </label>\n </div>\n </fieldset>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:flex;flex-direction:column}.no-data{margin:var(--pep-spacing-2xl, 2rem) 0}.no-data-suggestions .suggestions-title{margin:var(--pep-spacing-lg, 1rem) 0 var(--pep-spacing-sm, .5rem)}.no-data-suggestions .suggestions-list{margin:0;padding:0;padding-inline-start:var(--pep-spacing-2xl, 2rem)}.virtual-scroller{min-height:5rem;height:inherit}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3$1.MatCheckbox, selector: "mat-checkbox", inputs: ["disableRipple", "color", "tabIndex"], exportAs: ["matCheckbox"] }, { kind: "component", type: i4$1.MatRadioButton, selector: "mat-radio-button", inputs: ["disableRipple", "tabIndex"], exportAs: ["matRadioButton"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.PepIconComponent, selector: "pep-icon", inputs: ["spin", "name", "fill"] }, { kind: "component", type: i7.PepFormComponent, selector: "pep-form", inputs: ["isInternal", "isReport", "layout", "lockEvents", "canEditObject", "data", "lockFields", "isActive", "layoutType", "objectId", "parentId", "searchCode", "showTitle", "firstFieldAsLink", "checkForChanges"], outputs: ["valueChange", "formValidationChange", "fieldClick", "internalFormFieldClick", "internalFormFieldChange"] }, { kind: "component", type: VirtualScrollerComponent, selector: "virtual-scroller,[virtualScroller]", inputs: ["disable", "executeRefreshOutsideAngularZone", "enableUnequalChildrenSizes", "RTL", "useMarginInsteadOfTranslate", "modifyOverflowStyleOfParentScroll", "stripedTable", "scrollbarWidth", "scrollbarHeight", "childWidth", "childHeight", "ssrChildWidth", "ssrChildHeight", "ssrViewportWidth", "ssrViewportHeight", "bufferAmount", "scrollAnimationTime", "resizeBypassRefreshThreshold", "scrollThrottlingTime", "scrollDebounceTime", "checkResizeInterval", "items", "compareItems", "horizontal", "parentScroll"], outputs: ["vsChildRectChange", "vsUpdate", "vsChange", "vsStart", "vsEnd"], exportAs: ["virtualScroller"] }, { kind: "component", type: PepListPagerComponent, selector: "pep-list-pager", inputs: ["disabled", "pageIndex", "length", "pageSize"], outputs: ["pagerChange"] }, { kind: "pipe", type: i2$1.TranslatePipe, name: "translate" }] });
2312
2399
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.0.2", ngImport: i0, type: PepListComponent, decorators: [{
2313
2400
  type: Component,
2314
2401
  args: [{ selector: 'pep-list', host: {
2315
2402
  '(window:resize)': 'onWinResize($event)',
2316
2403
  }, template: "<ng-container *ngIf=\"totalRows == 0\">\n <ng-container *ngIf=\"noDataFoundMsg; then noDataMsgInputBlock; else noDataMsgDefaultBlock\"></ng-container>\n <ng-template #noDataMsgInputBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ noDataFoundMsg }}\n </p>\n </div>\n </ng-template>\n <ng-template #noDataMsgDefaultBlock>\n <div class=\"pep-border-bottom\">\n <p class=\"title-xl no-data\">\n {{ 'LIST.NO_DATA_FOUND' | translate}}\n </p>\n </div>\n <div class=\"no-data-suggestions\">\n <p class=\"suggestions-title title-lg\">\n {{ 'LIST.NO_DATA_FOUND_SUGGESTIONS_TITLE' | translate}}\n </p>\n <ul class=\"suggestions-list body-lg\" [innerHtml]=\"'LIST.NO_DATA_FOUND_SUGGESTIONS_LIST' | translate\"></ul>\n </div>\n </ng-template>\n</ng-container>\n<ng-container *ngIf=\"totalRows > 0\">\n <ng-container *ngTemplateOutlet=\"tableHeader\"></ng-container>\n\n <!-- (vsChildRectChange)=\"onChildRectChange($event)\" -->\n <virtual-scroller #scroller [items]=\"pagerType === 'pages' ? currentPageItems : items\"\n [scrollDebounceTime]=\"scrollDebounceTime\" [scrollThrottlingTime]=\"scrollThrottlingTime\"\n [bufferAmount]=\"printMode ? totalRows : bufferAmount\" [parentScroll]=\"parentScroll\" [disable]=\"loadingItemsFromApi\"\n class=\"virtual-scroller\" [ngClass]=\"{ 'table-body': isTable, 'cards-body': !isTable }\"\n (vsChange)=\"onVirtualScrollerChange($event)\" >\n <ng-container *ngFor=\"let item of scroller.viewPortItems; let index = index; let isFirst = first;\">\n <ng-container *ngTemplateOutlet=\"listData; context: {item: item, index:index}\"></ng-container>\n </ng-container>\n </virtual-scroller>\n\n <pep-list-pager *ngIf=\"pagerType === 'pages'\" class=\" list-pager\" [disabled]=\"loadingItemsFromApi\"\n [length]=\"totalRows\" [pageSize]=\"pageSize\" [pageIndex]=\"pageIndex\" (pagerChange)=\"onPagerChange($event)\">\n </pep-list-pager>\n\n <ng-container *ngTemplateOutlet=\"tableTotal\"></ng-container>\n</ng-container>\n\n<ng-template #listData let-item=\"item\" let-index=\"index\">\n <ng-container *ngIf=\"isTable\">\n <!-- getIsItemSelected(item) -> item | isItemSelected: selectionTypeForActions : selectedItemId : isAllSelected : selectedItems : unSelectedItems -->\n <div class=\"table-row\" (mouseenter)=\"onTableRowMouseEnter($event, item?.UID, item?.Type)\" \n (mouseleave)=\"onTableRowMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n even: zebraStripes && index % 2 !== 0,\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId}\" [ngStyle]=\"{ visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <fieldset class=\"table-row-fieldset\" [ngStyle]=\"{ 'background-color': item?.BackgroundColor }\">\n <mat-checkbox *ngIf=\"selectionTypeForActions == 'multi'\" type=\"checkbox\"\n class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\" [ngStyle]=\"{\n visibility: !deviceHasMouse ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId || isAllSelected || selectedItems.size > 0 ? 'visible' : 'hidden'\n }\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <mat-radio-button *ngIf=\"selectionTypeForActions == 'single'\" name=\"selection\"\n class=\"pull-left flip row-selection pep-radio-button\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n [disabled]=\"getisItemDisabled(item)\"\n [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-radio-button>\n <pep-form [layoutType]=\"'table'\" [checkForChanges]=\"checkForChanges\" [layout]=\"layout\"\n [firstFieldAsLink]=\"firstFieldAsLink\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isReport]=\"isReport\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </fieldset>\n </div>\n </ng-container>\n\n <ng-container *ngIf=\"!isTable\">\n <div (mouseenter)=\"onCardMouseEnter($event, item?.UID, item?.Type)\"\n (mouseleave)=\"onCardMouseLeave($event, item?.UID, item?.Type)\" [ngClass]=\"{\n selected: getIsItemSelected(item),\n highlighted: item?.UID + SEPARATOR + item?.Type === selectedItemId,\n 'line-view': viewType === 'lines',\n 'card-view': viewType === 'cards',\n 'small-card': cardSize === 'sm'\n }\" class=\"pull-left flip\"\n [ngStyle]=\"{ height: calculatedObjectHeight, visibility: !loadingItemsFromApi || item ? 'visible' : 'hidden' }\">\n <mat-checkbox *ngIf=\"showCardSelection\" class=\"pull-left flip card-selection\"\n [disabled]=\"getisItemDisabled(item)\" [checked]=\"getIsItemSelected(item)\"\n (change)=\"selectItemForActions($event, item?.UID, item?.IsSelectableForActions, item?.Type)\">\n </mat-checkbox>\n <pep-form [layoutType]=\"'card'\" [firstFieldAsLink]=\"firstFieldAsLink\" [checkForChanges]=\"checkForChanges\"\n [layout]=\"layout\" [data]=\"item\" [canEditObject]=\"!disabled\"\n [lockEvents]=\"lockItemInnerEvents || printMode\" [isActive]=\"\n (item?.UID + SEPARATOR + item?.Type === selectedItemId ||\n item?.UID + SEPARATOR + item?.Type === hoveredItemId) && deviceHasMouse\n \" (valueChange)=\"onValueChanged($event)\" (fieldClick)=\"onCustomizeFieldClick($event)\"\n (click)=\"itemClicked($event, item)\">\n </pep-form>\n </div>\n </ng-container>\n</ng-template>\n\n<ng-template #tableHeader>\n <div *ngIf=\"isTable\" class=\"table-header\" (mouseup)=\"onListResizeEnd($event)\"\n (mouseenter)=\"onListHeaderMouseEnter($event)\" (mouseleave)=\"onListHeaderMouseLeave($event)\"\n (mousemove)=\"onListResize($event)\">\n\n <div class=\"table-header-padding-top\"></div>\n <fieldset class=\"table-header-fieldset\">\n <mat-checkbox *ngIf=\"selectionTypeForActions !== 'none'\" #selectAllCB class=\"pull-left flip row-selection\" [ngClass]=\"{ 'md': tableViewType === 'compact' }\"\n type=\"checkbox\" [ngStyle]=\"{\n visibility:\n selectionTypeForActions == 'single' || \n (selectionTypeForActions == 'multi' && hideAllSelectionInMulti) ? 'hidden' : 'visible'\n }\"\n [indeterminate]=\"isAllSelected ? unSelectedItems.size > 0 && unSelectedItems.size < totalRows : (selectedItems.size > 0 && !getIsAllSelectedForActions())\"\n [disabled]=\"disabled || selectionTypeForActions === 'single'\" [checked]=\"getIsAllSelectedForActions()\"\n (change)=\"selectAllItemsForActions($event)\"></mat-checkbox>\n <fieldset>\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"header-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\" [ngClass]=\"{\n 'compact-view': tableViewType === 'compact',\n 'support-sorting': supportSorting,\n 'has-sorting': field.ApiName === sortBy,\n 'is-resizing': field.ApiName === pressedColumn,\n 'is-first': j === 0 && selectionTypeForActions !== 'multi',\n 'is-last': j === layout?.ControlFields?.length - 1\n }\"\n (click)=\"supportSorting ? (onListSortingChange(field.ApiName, sortBy !== null && sortBy != field.ApiName ? true : !isAsc, $event)) : false\">\n\n <label id=\"{{ field.ApiName }}\"\n class=\"header-label body-sm pull-left flip text-align-{{ field.Layout.XAlignment }}\"\n title=\"{{ field.Title }}\">\n <span *ngIf=\"field.Mandatory\" class=\"mandatory\">\n <pep-icon name=\"system_must\"></pep-icon>\n </span>\n {{ field.Title != '' ? field.Title : ' '}}\n </label>\n\n <div *ngIf=\"supportResizing\" class=\"resize-box pull-right flip\"\n (mousedown)=\"onListResizeStart($event, field.ApiName)\">\n <div class=\"splitter\"></div>\n </div>\n\n <div *ngIf=\"supportSorting\" class=\"sorting-box pull-left flip\"\n [ngClass]=\"{ 'has-sorting': field.ApiName === sortBy }\">\n <mat-icon *ngIf=\"field.ApiName !== sortBy\">\n <pep-icon name=\"arrow_either\" class=\"asc\"></pep-icon>\n </mat-icon>\n <ng-container *ngIf=\"field.ApiName === sortBy\">\n <mat-icon *ngIf=\"!isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && isAsc }\"\n title=\"{{ 'LIST.SORT_ASC' | translate }}\">\n <pep-icon name=\"arrow_up\" class=\"asc\"></pep-icon>\n </mat-icon>\n <mat-icon *ngIf=\"isAsc\" [ngClass]=\"{ 'sort-by': field.ApiName === sortBy && !isAsc }\"\n title=\"{{ 'LIST.SORT_DESC' | translate }}\">\n <pep-icon name=\"arrow_down\" class=\"desc\"></pep-icon>\n </mat-icon>\n </ng-container>\n </div>\n </div>\n </fieldset>\n </fieldset>\n </div>\n</ng-template>\n\n<ng-template #tableTotal>\n <div *ngIf=\"isTable && totalsRow?.length > 0 && totalsRow.length <= layout?.ControlFields.length\"\n class=\"table-total\">\n <fieldset class=\"table-header-fieldset\">\n <div *ngFor=\"let field of layout?.ControlFields; let j = index\" class=\"total-column pull-left flip\"\n [ngStyle]=\"{ width: field.calcTitleColumnWidthString }\">\n <label class=\"total-label body-sm text-align-{{ field.Layout.XAlignment }}\">\n {{ totalsRow[j] }}\n </label>\n </div>\n </fieldset>\n </div>\n</ng-template>", styles: [":host{height:inherit;display:flex;flex-direction:column}.no-data{margin:var(--pep-spacing-2xl, 2rem) 0}.no-data-suggestions .suggestions-title{margin:var(--pep-spacing-lg, 1rem) 0 var(--pep-spacing-sm, .5rem)}.no-data-suggestions .suggestions-list{margin:0;padding:0;padding-inline-start:var(--pep-spacing-2xl, 2rem)}.virtual-scroller{min-height:5rem;height:inherit}\n"] }]
2317
- }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }, { type: i1.PepSessionService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { noDataFoundMsg: [{
2404
+ }], ctorParameters: function () { return [{ type: i0.ElementRef }, { type: i1.PepLayoutService }, { type: i1.PepSessionService }, { type: i0.ChangeDetectorRef }, { type: i0.Renderer2 }, { type: i0.NgZone }]; }, propDecorators: { sorting: [{
2405
+ type: Input
2406
+ }], cacheSize: [{
2407
+ type: Input
2408
+ }], noDataFoundMsg: [{
2318
2409
  type: Input
2319
2410
  }], selectionTypeForActions: [{
2320
2411
  type: Input