@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.
- package/attachment/attachment.component.d.ts +11 -2
- package/button/button.component.d.ts +8 -8
- package/core/common/services/color.service.d.ts +1 -0
- package/core/common/services/file.service.d.ts +7 -2
- package/dialog/dialog.service.d.ts +1 -0
- package/draggable-items/draggable-items.component.d.ts +3 -3
- package/draggable-items/draggable-items.module.d.ts +1 -1
- package/esm2020/address/address.component.mjs +1 -1
- package/esm2020/attachment/attachment.component.mjs +38 -18
- package/esm2020/button/button.component.mjs +7 -7
- package/esm2020/chips/chips.component.mjs +2 -2
- package/esm2020/color/color-picker.component.mjs +1 -1
- package/esm2020/core/common/services/color.service.mjs +27 -1
- package/esm2020/core/common/services/file.service.mjs +57 -20
- package/esm2020/core/common/services/session.service.mjs +2 -1
- package/esm2020/core/customization/customization.model.mjs +7 -6
- package/esm2020/core/customization/customization.service.mjs +13 -4
- package/esm2020/core/http/services/http.service.mjs +1 -1
- package/esm2020/dialog/dialog.component.mjs +3 -3
- package/esm2020/dialog/dialog.service.mjs +22 -1
- package/esm2020/draggable-items/draggable-items.component.mjs +7 -7
- package/esm2020/draggable-items/draggable-items.module.mjs +6 -6
- package/esm2020/files-uploader/files-uploader.component.mjs +50 -45
- package/esm2020/form/field-generator.component.mjs +3 -3
- package/esm2020/form/form.component.mjs +4 -3
- package/esm2020/form/internal-field-generator.component.mjs +1 -1
- package/esm2020/form/internal-form.component.mjs +1 -1
- package/esm2020/form/internal-list.component.mjs +2 -2
- package/esm2020/image/image.component.mjs +32 -16
- package/esm2020/image/image.service.mjs +2 -4
- package/esm2020/images-filmstrip/images-filmstrip.component.mjs +2 -2
- package/esm2020/link/link.component.mjs +33 -58
- package/esm2020/list/list.component.mjs +109 -18
- package/esm2020/list/list.model.mjs +1 -1
- package/esm2020/menu/menu.component.mjs +3 -3
- package/esm2020/profile-data-views-list/profile-data-views-list.component.mjs +1 -1
- package/esm2020/quantity-selector/quantity-selector.component.mjs +20 -25
- package/esm2020/query-builder/common/model/operator.mjs +2 -2
- package/esm2020/query-builder/query-builder-item/query-builder-item.component.mjs +1 -1
- package/esm2020/select/select.component.mjs +66 -40
- package/esm2020/select-panel/select-panel.component.mjs +2 -2
- package/esm2020/signature/public-api.mjs +2 -1
- package/esm2020/signature/signature-dialog.component.mjs +78 -0
- package/esm2020/signature/signature.component.mjs +117 -89
- package/esm2020/signature/signature.module.mjs +6 -5
- package/esm2020/skeleton-loader/pepperi-addons-ngx-lib-skeleton-loader.mjs +5 -0
- package/esm2020/skeleton-loader/public-api.mjs +6 -0
- package/esm2020/skeleton-loader/skeleton-loader.component.mjs +44 -0
- package/esm2020/skeleton-loader/skeleton-loader.module.mjs +24 -0
- package/esm2020/smart-filters/boolean-filter/boolean-filter.component.mjs +3 -3
- package/esm2020/smart-filters/date-filter/date-filter.component.mjs +1 -1
- package/esm2020/smart-filters/multi-select-filter/multi-select-filter.component.mjs +1 -1
- package/esm2020/smart-filters/number-filter/number-filter.component.mjs +3 -3
- package/esm2020/smart-filters/text-filter/text-filter.component.mjs +1 -1
- package/esm2020/textbox/textbox.component.mjs +9 -3
- package/esm2020/top-bar/top-bar.component.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2015/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2015/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2015/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2015/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2015/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2015/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2015/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2015/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs +108 -18
- package/fesm2015/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2015/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs +64 -38
- package/fesm2015/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs +205 -102
- package/fesm2015/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs +78 -0
- package/fesm2015/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2015/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2015/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2015/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2015/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2015/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-address.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs +37 -17
- package/fesm2020/pepperi-addons-ngx-lib-attachment.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs +6 -6
- package/fesm2020/pepperi-addons-ngx-lib-button.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-chips.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-color.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs +23 -2
- package/fesm2020/pepperi-addons-ngx-lib-dialog.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs +11 -11
- package/fesm2020/pepperi-addons-ngx-lib-draggable-items.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs +49 -44
- package/fesm2020/pepperi-addons-ngx-lib-files-uploader.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs +8 -7
- package/fesm2020/pepperi-addons-ngx-lib-form.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs +32 -18
- package/fesm2020/pepperi-addons-ngx-lib-image.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-images-filmstrip.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs +32 -57
- package/fesm2020/pepperi-addons-ngx-lib-link.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs +108 -17
- package/fesm2020/pepperi-addons-ngx-lib-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-menu.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-profile-data-views-list.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs +19 -24
- package/fesm2020/pepperi-addons-ngx-lib-quantity-selector.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-query-builder.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-select-panel.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs +64 -38
- package/fesm2020/pepperi-addons-ngx-lib-select.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs +201 -102
- package/fesm2020/pepperi-addons-ngx-lib-signature.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs +76 -0
- package/fesm2020/pepperi-addons-ngx-lib-skeleton-loader.mjs.map +1 -0
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs +7 -7
- package/fesm2020/pepperi-addons-ngx-lib-smart-filters.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs +8 -2
- package/fesm2020/pepperi-addons-ngx-lib-textbox.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs +2 -2
- package/fesm2020/pepperi-addons-ngx-lib-top-bar.mjs.map +1 -1
- package/fesm2020/pepperi-addons-ngx-lib.mjs +101 -27
- package/fesm2020/pepperi-addons-ngx-lib.mjs.map +1 -1
- package/files-uploader/files-uploader.component.d.ts +7 -4
- package/image/image.component.d.ts +11 -3
- package/link/link.component.d.ts +23 -27
- package/list/list.component.d.ts +10 -2
- package/list/list.model.d.ts +3 -1
- package/menu/menu.component.d.ts +1 -1
- package/package.json +10 -2
- package/quantity-selector/quantity-selector.component.d.ts +0 -2
- package/select/select.component.d.ts +10 -2
- package/signature/public-api.d.ts +1 -0
- package/signature/signature-dialog.component.d.ts +29 -0
- package/signature/signature.component.d.ts +7 -16
- package/signature/signature.module.d.ts +16 -15
- package/skeleton-loader/index.d.ts +5 -0
- package/skeleton-loader/public-api.d.ts +2 -0
- package/skeleton-loader/skeleton-loader.component.d.ts +20 -0
- package/skeleton-loader/skeleton-loader.component.theme.scss +15 -0
- package/skeleton-loader/skeleton-loader.module.d.ts +9 -0
- package/src/core/style/abstracts/AbstractsIntro.stories.mdx +7 -0
- package/src/core/style/abstracts/functions.scss +11 -11
- package/src/core/style/abstracts/mixins.scss +9 -6
- package/src/core/style/abstracts/variables.scss +38 -18
- package/src/core/style/base/BorderRadius.stories.mdx +59 -0
- package/src/core/style/base/Breakpoints.stories.mdx +36 -0
- package/src/core/style/base/Colors.stories.mdx +128 -0
- package/src/core/style/base/Shadows.stories.mdx +69 -0
- package/src/core/style/base/Spacing.stories.mdx +75 -0
- package/src/core/style/base/States.stories.mdx +62 -0
- package/src/core/style/base/Typography.stories.mdx +89 -0
- package/src/core/style/base/ZIndex.stories.mdx +47 -0
- package/src/core/style/base/base.scss +8 -10
- package/src/core/style/base/borderRadius.component.ts +27 -0
- package/src/core/style/base/breakpoints.component.ts +14 -0
- package/src/core/style/base/colors.component.ts +174 -0
- package/src/core/style/base/shadows.component.ts +90 -0
- package/src/core/style/base/spacing.component.ts +71 -0
- package/src/core/style/base/states.component.ts +84 -0
- package/src/core/style/base/typography.component.ts +94 -0
- package/src/core/style/base/typography.scss +52 -50
- package/src/core/style/base/zIndex.component.ts +25 -0
- package/src/core/style/components/file.scss +4 -4
- 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 +
|
|
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
|
|
1551
|
+
// Set the container width.
|
|
1535
1552
|
if (this.containerWidth <= 0) {
|
|
1536
1553
|
this.setContainerWidth();
|
|
1537
1554
|
}
|
|
1538
|
-
this.
|
|
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
|
-
|
|
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 >
|
|
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 >
|
|
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
|
-
|
|
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 =
|
|
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: {
|
|
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
|