@servicemind.tis/tis-smart-table-viewer 2.4.19 → 2.4.20
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/README.md +0 -28
- package/fesm2022/servicemind.tis-tis-smart-table-viewer.mjs +26 -77
- package/fesm2022/servicemind.tis-tis-smart-table-viewer.mjs.map +1 -1
- package/lib/components/create-columns-template/create-columns-template.component.d.ts +0 -2
- package/lib/components/tis-columns-btn/tis-columns-btn.component.d.ts +1 -3
- package/lib/components/tis-smart-table-confirmation-dialog/tis-smart-table-confirmation-dialog.component.d.ts +0 -1
- package/lib/components/tis-smart-table-error-dialog/tis-smart-table-error-dialog.component.d.ts +0 -2
- package/lib/components/tis-smart-table-viewer/tis-smart-table-viewer.component.d.ts +1 -7
- package/lib/services/tis-helper.service.d.ts +1 -1
- package/package.json +1 -1
- package/lib/helpers/class-prefix.helper.d.ts +0 -9
|
@@ -1137,23 +1137,6 @@ class UrlHelper {
|
|
|
1137
1137
|
}
|
|
1138
1138
|
}
|
|
1139
1139
|
|
|
1140
|
-
/**
|
|
1141
|
-
* Builds design-system CSS class names from a configurable prefix (default: tis-).
|
|
1142
|
-
*/
|
|
1143
|
-
class ClassPrefixHelper {
|
|
1144
|
-
static DEFAULT_PREFIX = 'tis-';
|
|
1145
|
-
static cx(prefix, name) {
|
|
1146
|
-
return `${prefix || ClassPrefixHelper.DEFAULT_PREFIX}${name}`;
|
|
1147
|
-
}
|
|
1148
|
-
/** Join multiple suffixes; falsy names are skipped. */
|
|
1149
|
-
static cxMany(prefix, ...names) {
|
|
1150
|
-
return names
|
|
1151
|
-
.filter((n) => typeof n === 'string' && n.length > 0)
|
|
1152
|
-
.map((n) => ClassPrefixHelper.cx(prefix, n))
|
|
1153
|
-
.join(' ');
|
|
1154
|
-
}
|
|
1155
|
-
}
|
|
1156
|
-
|
|
1157
1140
|
class ScrollingDirective {
|
|
1158
1141
|
el;
|
|
1159
1142
|
constructor(el) {
|
|
@@ -1288,25 +1271,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
1288
1271
|
class TisSmartTableErrorDialogComponent {
|
|
1289
1272
|
dialogRef;
|
|
1290
1273
|
data;
|
|
1291
|
-
classPrefix = ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1292
1274
|
constructor(dialogRef, data) {
|
|
1293
1275
|
this.dialogRef = dialogRef;
|
|
1294
1276
|
this.data = data;
|
|
1295
|
-
this.
|
|
1296
|
-
this.dialogRef.addPanelClass([this.cx('smart-table-error-dialog')]);
|
|
1297
|
-
}
|
|
1298
|
-
cx(name) {
|
|
1299
|
-
return ClassPrefixHelper.cx(this.classPrefix, name);
|
|
1277
|
+
this.dialogRef.addPanelClass(['tis-smart-table-error-dialog']);
|
|
1300
1278
|
}
|
|
1301
1279
|
onClose() {
|
|
1302
1280
|
this.dialogRef.close();
|
|
1303
1281
|
}
|
|
1304
1282
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisSmartTableErrorDialogComponent, deps: [{ token: i1$1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
1305
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TisSmartTableErrorDialogComponent, isStandalone: false, selector: "tis-smart-table-error-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n <mat-icon class=\"{{data?.iconClass}}\">{{data?.icon}}</mat-icon>\n {{data?.title}}\n</h1>\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n<div mat-dialog-actions>\n <button mat-button
|
|
1283
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TisSmartTableErrorDialogComponent, isStandalone: false, selector: "tis-smart-table-error-dialog", ngImport: i0, template: "<h1 mat-dialog-title>\n <mat-icon class=\"{{data?.iconClass}}\">{{data?.icon}}</mat-icon>\n {{data?.title}}\n</h1>\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n<div mat-dialog-actions>\n <button mat-button class=\"tis-text-upper {{data?.buttonClass ?? 'tis-btn-primary'}}\" (click)=\"onClose()\" cdkFocusInitial *ngIf=\"data?.buttonText && data?.buttonText != ''\">{{data?.buttonText}}</button>\n</div>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] });
|
|
1306
1284
|
}
|
|
1307
1285
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisSmartTableErrorDialogComponent, decorators: [{
|
|
1308
1286
|
type: Component,
|
|
1309
|
-
args: [{ selector: 'tis-smart-table-error-dialog', standalone: false, template: "<h1 mat-dialog-title>\n <mat-icon class=\"{{data?.iconClass}}\">{{data?.icon}}</mat-icon>\n {{data?.title}}\n</h1>\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n<div mat-dialog-actions>\n <button mat-button
|
|
1287
|
+
args: [{ selector: 'tis-smart-table-error-dialog', standalone: false, template: "<h1 mat-dialog-title>\n <mat-icon class=\"{{data?.iconClass}}\">{{data?.icon}}</mat-icon>\n {{data?.title}}\n</h1>\n<div mat-dialog-content>\n {{data?.message}}\n</div>\n<div mat-dialog-actions>\n <button mat-button class=\"tis-text-upper {{data?.buttonClass ?? 'tis-btn-primary'}}\" (click)=\"onClose()\" cdkFocusInitial *ngIf=\"data?.buttonText && data?.buttonText != ''\">{{data?.buttonText}}</button>\n</div>" }]
|
|
1310
1288
|
}], ctorParameters: () => [{ type: i1$1.MatDialogRef }, { type: undefined, decorators: [{
|
|
1311
1289
|
type: Inject,
|
|
1312
1290
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1321,12 +1299,11 @@ class TisHelperService {
|
|
|
1321
1299
|
this.dialog = dialog;
|
|
1322
1300
|
this.http = http;
|
|
1323
1301
|
}
|
|
1324
|
-
showHttpErrorMsg(error, duration = 5000
|
|
1302
|
+
showHttpErrorMsg(error, duration = 5000) {
|
|
1325
1303
|
console.log('httpError: ', error);
|
|
1326
1304
|
let errorMessage = 'Some Unknown Error Occurred.';
|
|
1327
1305
|
let errorCode = 'Unknown Error';
|
|
1328
1306
|
const httpError = error;
|
|
1329
|
-
const cx = (name) => ClassPrefixHelper.cx(classPrefix, name);
|
|
1330
1307
|
if (httpError.status >= 400) {
|
|
1331
1308
|
const errorFromServer = httpError.error;
|
|
1332
1309
|
if (Array.isArray(errorFromServer) && errorFromServer.length > 0) {
|
|
@@ -1343,14 +1320,13 @@ class TisHelperService {
|
|
|
1343
1320
|
title: "Error !",
|
|
1344
1321
|
message: errorMessage,
|
|
1345
1322
|
icon: "error",
|
|
1346
|
-
iconClass:
|
|
1323
|
+
iconClass: "tis-text-danger",
|
|
1347
1324
|
buttonText: "Ok",
|
|
1348
|
-
buttonClass:
|
|
1349
|
-
classPrefix,
|
|
1325
|
+
buttonClass: "tis-btn-primary",
|
|
1350
1326
|
};
|
|
1351
1327
|
const dialogRef = this.dialog.open(TisSmartTableErrorDialogComponent, {
|
|
1352
1328
|
width: "550px",
|
|
1353
|
-
panelClass: [
|
|
1329
|
+
panelClass: ['tis-simple-confirmation'],
|
|
1354
1330
|
data: confirmBoxData,
|
|
1355
1331
|
disableClose: false,
|
|
1356
1332
|
});
|
|
@@ -1395,12 +1371,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImpor
|
|
|
1395
1371
|
class TisSmartTableConfirmationDialogComponent {
|
|
1396
1372
|
dialogRef;
|
|
1397
1373
|
data;
|
|
1398
|
-
classPrefix = ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1399
1374
|
constructor(dialogRef, data) {
|
|
1400
1375
|
this.dialogRef = dialogRef;
|
|
1401
1376
|
this.data = data;
|
|
1402
|
-
this.
|
|
1403
|
-
this.dialogRef.addPanelClass([ClassPrefixHelper.cx(this.classPrefix, 'smart-table-confirmation-dialog')]);
|
|
1377
|
+
this.dialogRef.addPanelClass(['tis-smart-table-confirmation-dialog']);
|
|
1404
1378
|
}
|
|
1405
1379
|
onClose(status) {
|
|
1406
1380
|
this.dialogRef.close(status);
|
|
@@ -1434,7 +1408,6 @@ class CreateColumnsTemplateComponent {
|
|
|
1434
1408
|
translationReadKey;
|
|
1435
1409
|
customColumns;
|
|
1436
1410
|
t;
|
|
1437
|
-
classPrefix = ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1438
1411
|
columnCustomizationUrlConfig;
|
|
1439
1412
|
constructor(dialogRef, helper, snackBar, userCustomizationService, data) {
|
|
1440
1413
|
this.dialogRef = dialogRef;
|
|
@@ -1443,17 +1416,13 @@ class CreateColumnsTemplateComponent {
|
|
|
1443
1416
|
this.userCustomizationService = userCustomizationService;
|
|
1444
1417
|
this.data = data;
|
|
1445
1418
|
this.translationReadKey = this.data?.translationReadKey ?? '';
|
|
1446
|
-
this.classPrefix = this.data?.classPrefix ?? ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1447
1419
|
if (this.data?.customColumns) {
|
|
1448
1420
|
this.customColumns = this.data?.customColumns ?? {};
|
|
1449
1421
|
}
|
|
1450
1422
|
if (this.data?.columnCustomizationUrlConfig) {
|
|
1451
1423
|
this.columnCustomizationUrlConfig = this.data.columnCustomizationUrlConfig;
|
|
1452
1424
|
}
|
|
1453
|
-
this.dialogRef.addPanelClass([
|
|
1454
|
-
}
|
|
1455
|
-
cx(name) {
|
|
1456
|
-
return ClassPrefixHelper.cx(this.classPrefix, name);
|
|
1425
|
+
this.dialogRef.addPanelClass(['tis-create-columns-template']);
|
|
1457
1426
|
}
|
|
1458
1427
|
ngOnInit() {
|
|
1459
1428
|
this.t = this.data?.t || {};
|
|
@@ -1544,7 +1513,7 @@ class CreateColumnsTemplateComponent {
|
|
|
1544
1513
|
}, err => {
|
|
1545
1514
|
this.loading = false;
|
|
1546
1515
|
this.savingTemplate = false;
|
|
1547
|
-
this.helper.showHttpErrorMsg(err
|
|
1516
|
+
this.helper.showHttpErrorMsg(err);
|
|
1548
1517
|
});
|
|
1549
1518
|
}
|
|
1550
1519
|
else {
|
|
@@ -1561,7 +1530,7 @@ class CreateColumnsTemplateComponent {
|
|
|
1561
1530
|
console.log(err);
|
|
1562
1531
|
this.loading = false;
|
|
1563
1532
|
this.savingTemplate = false;
|
|
1564
|
-
this.helper.showHttpErrorMsg(err
|
|
1533
|
+
this.helper.showHttpErrorMsg(err);
|
|
1565
1534
|
});
|
|
1566
1535
|
}
|
|
1567
1536
|
}
|
|
@@ -1586,11 +1555,11 @@ class CreateColumnsTemplateComponent {
|
|
|
1586
1555
|
this.dialogRef.close(data);
|
|
1587
1556
|
}
|
|
1588
1557
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CreateColumnsTemplateComponent, deps: [{ token: i1$1.MatDialogRef }, { token: TisHelperService }, { token: i1$2.MatSnackBar }, { token: UserCustomizationService }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
1589
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: CreateColumnsTemplateComponent, isStandalone: false, selector: "tis-create-columns-template", ngImport: i0, template: "\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <h1 mat-dialog-title style=\"padding: 16px 24px; background-color: #e0e0e0; display: flex; justify-content: space-between; width: 100%; align-items: center;\">\n {{t?.createColumnsTemplate?.title}}\n <mat-icon (click)=\"onClose()\" style=\"cursor: pointer;\">clear</mat-icon>\n </h1>\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <mat-form-field [class]=\"'width-100 ' + cx('mat-form-field')\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.templateName}}</mat-label>\n <input matInput formControlName=\"name\" placeholder=\"{{t?.createColumnsTemplate?.enterTemplateName}}\" />\n </mat-form-field>\n </div>\n\n <mat-dialog-content [appScrolling]=\"true\" class=\"w-100 p-0 m-0\" style=\"max-height: 60vh !important;\">\n <div cdkDropList class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"example-box\" *ngFor=\"let item of listComponentColumns, let ndx = index\" cdkDrag>\n <div class=\"width-100 example-div\">\n <div class=\"example-item flex flex-row items-center\">\n <mat-icon cdkDragHandle style=\"cursor: pointer; color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </div>\n <mat-checkbox color=\"primary\" [(ngModel)]=\"item.isSelected\" (ngModelChange)=\"onChangeColumnStatus($event, item)\" [ngModelOptions]=\"{standalone: true}\"></mat-checkbox>\n </div>\n </div>\n </div>\n </mat-dialog-content>\n\n @if(form.value?.enableStickiness){\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <div style=\"display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;\">\n <mat-form-field [class]=\"'width-100 ' + cx('mat-form-field')\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromLeft}}</mat-label>\n <mat-select formControlName=\"fromStartColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(i+1)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field [class]=\"'width-100 ' + cx('mat-form-field')\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromRight}}</mat-label>\n <mat-select formControlName=\"fromEndColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(listComponentColumns?.length - i)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n }\n\n <div mat-dialog-actions>\n <button mat-button type=\"button\" class=\"stv-cancel-button\" mat-dialog-close [disabled]=\"loading\">{{t?.createColumnsTemplate?.cancel}}</button>\n <button mat-flat-button type=\"submit\" class=\"stv-submit-button\" cdkFocusInitial [disabled]=\"savingTemplate\">\n {{data?.selectedTemplateId ? t?.createColumnsTemplate?.update : t?.createColumnsTemplate?.save}}\n @if(savingTemplate){\n <i class=\"fas fa-spinner fa-spin\"></i>\n }\n </button>\n </div>\n</form>\n", styles: [".width-100{width:100%!important}.example-container{width:400px;max-width:100%;margin:0 25px 25px 0;display:inline-block;vertical-align:top}.example-list{min-height:60px;background:#fff;border-radius:4px;overflow:hidden;display:block}.example-box{border-bottom:solid 1px #EEE;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}.example-div{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.example-item{display:flex;flex-direction:row;align-items:center}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mt-20{margin-top:20px}.mt-40{margin-top:40px}.w-10{width:10%}.w-100{width:100%}.container{width:100%;display:flex;align-items:center}.drag-index{font-size:16px;font-weight:500;padding:8px;width:40px;text-align:end}.drag-icon{background-color:#36834f;color:#fff;text-align:center;position:relative}.drag-icon i{padding-top:3px;cursor:move}.drag-content{margin-top:8px;padding-left:10px}.drag-content span{vertical-align:text-bottom;padding-left:5px}.stv-cancel-button:not(:disabled){text-transform:uppercase!important;color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}.stv-cancel-button:not(:disabled):hover .mat-mdc-button-persistent-ripple:before{background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))}.stv-submit-button:not(:disabled){text-transform:uppercase!important;color:#fff!important;background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: ScrollingDirective, selector: "[appScrolling]", inputs: ["appScrolling"] }] });
|
|
1558
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: CreateColumnsTemplateComponent, isStandalone: false, selector: "tis-create-columns-template", ngImport: i0, template: "\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <h1 mat-dialog-title style=\"padding: 16px 24px; background-color: #e0e0e0; display: flex; justify-content: space-between; width: 100%; align-items: center;\">\n {{t?.createColumnsTemplate?.title}}\n <mat-icon (click)=\"onClose()\" style=\"cursor: pointer;\">clear</mat-icon>\n </h1>\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.templateName}}</mat-label>\n <input matInput formControlName=\"name\" placeholder=\"{{t?.createColumnsTemplate?.enterTemplateName}}\" />\n </mat-form-field>\n </div>\n\n <mat-dialog-content [appScrolling]=\"true\" class=\"w-100 p-0 m-0\" style=\"max-height: 60vh !important;\">\n <div cdkDropList class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"example-box\" *ngFor=\"let item of listComponentColumns, let ndx = index\" cdkDrag>\n <div class=\"width-100 example-div\">\n <div class=\"example-item flex flex-row items-center\">\n <mat-icon cdkDragHandle style=\"cursor: pointer; color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </div>\n <mat-checkbox color=\"primary\" [(ngModel)]=\"item.isSelected\" (ngModelChange)=\"onChangeColumnStatus($event, item)\" [ngModelOptions]=\"{standalone: true}\"></mat-checkbox>\n </div>\n </div>\n </div>\n </mat-dialog-content>\n\n @if(form.value?.enableStickiness){\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <div style=\"display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;\">\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromLeft}}</mat-label>\n <mat-select formControlName=\"fromStartColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(i+1)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromRight}}</mat-label>\n <mat-select formControlName=\"fromEndColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(listComponentColumns?.length - i)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n }\n\n <div mat-dialog-actions>\n <button mat-button type=\"button\" class=\"tis-cancel-button\" mat-dialog-close [disabled]=\"loading\">{{t?.createColumnsTemplate?.cancel}}</button>\n <button mat-flat-button type=\"submit\" class=\"tis-submit-button\" cdkFocusInitial [disabled]=\"savingTemplate\">\n {{data?.selectedTemplateId ? t?.createColumnsTemplate?.update : t?.createColumnsTemplate?.save}}\n @if(savingTemplate){\n <i class=\"fas fa-spinner fa-spin\"></i>\n }\n </button>\n </div>\n</form>", styles: [".width-100{width:100%!important}.example-container{width:400px;max-width:100%;margin:0 25px 25px 0;display:inline-block;vertical-align:top}.example-list{min-height:60px;background:#fff;border-radius:4px;overflow:hidden;display:block}.example-box{border-bottom:solid 1px #EEE;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}.example-div{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.example-item{display:flex;flex-direction:row;align-items:center}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mt-20{margin-top:20px}.mt-40{margin-top:40px}.w-10{width:10%}.w-100{width:100%}.container{width:100%;display:flex;align-items:center}.drag-index{font-size:16px;font-weight:500;padding:8px;width:40px;text-align:end}.drag-icon{background-color:#36834f;color:#fff;text-align:center;position:relative}.drag-icon i{padding-top:3px;cursor:move}.drag-content{margin-top:8px;padding-left:10px}.drag-content span{vertical-align:text-bottom;padding-left:5px}.tis-cancel-button:not(:disabled){text-transform:uppercase!important;color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}.tis-cancel-button:not(:disabled):hover .mat-mdc-button-persistent-ripple:before{background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))}.tis-submit-button:not(:disabled){text-transform:uppercase!important;color:#fff!important;background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatLabel, selector: "mat-label" }, { kind: "component", type: i9.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i9.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "directive", type: i1$1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: ScrollingDirective, selector: "[appScrolling]", inputs: ["appScrolling"] }] });
|
|
1590
1559
|
}
|
|
1591
1560
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: CreateColumnsTemplateComponent, decorators: [{
|
|
1592
1561
|
type: Component,
|
|
1593
|
-
args: [{ selector: 'tis-create-columns-template', standalone: false, template: "\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <h1 mat-dialog-title style=\"padding: 16px 24px; background-color: #e0e0e0; display: flex; justify-content: space-between; width: 100%; align-items: center;\">\n {{t?.createColumnsTemplate?.title}}\n <mat-icon (click)=\"onClose()\" style=\"cursor: pointer;\">clear</mat-icon>\n </h1>\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <mat-form-field
|
|
1562
|
+
args: [{ selector: 'tis-create-columns-template', standalone: false, template: "\n<form [formGroup]=\"form\" (ngSubmit)=\"onSubmit()\">\n <h1 mat-dialog-title style=\"padding: 16px 24px; background-color: #e0e0e0; display: flex; justify-content: space-between; width: 100%; align-items: center;\">\n {{t?.createColumnsTemplate?.title}}\n <mat-icon (click)=\"onClose()\" style=\"cursor: pointer;\">clear</mat-icon>\n </h1>\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.templateName}}</mat-label>\n <input matInput formControlName=\"name\" placeholder=\"{{t?.createColumnsTemplate?.enterTemplateName}}\" />\n </mat-form-field>\n </div>\n\n <mat-dialog-content [appScrolling]=\"true\" class=\"w-100 p-0 m-0\" style=\"max-height: 60vh !important;\">\n <div cdkDropList class=\"example-list\" (cdkDropListDropped)=\"drop($event)\">\n <div class=\"example-box\" *ngFor=\"let item of listComponentColumns, let ndx = index\" cdkDrag>\n <div class=\"width-100 example-div\">\n <div class=\"example-item flex flex-row items-center\">\n <mat-icon cdkDragHandle style=\"cursor: pointer; color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </div>\n <mat-checkbox color=\"primary\" [(ngModel)]=\"item.isSelected\" (ngModelChange)=\"onChangeColumnStatus($event, item)\" [ngModelOptions]=\"{standalone: true}\"></mat-checkbox>\n </div>\n </div>\n </div>\n </mat-dialog-content>\n\n @if(form.value?.enableStickiness){\n <div style=\"padding: 15px; padding-bottom: 0px;\">\n <div style=\"display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 1rem;\">\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromLeft}}</mat-label>\n <mat-select formControlName=\"fromStartColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(i+1)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n <mat-form-field class=\"width-100 tis-mat-form-field\" appearance=\"outline\">\n <mat-label>{{t?.createColumnsTemplate?.freezeColumnFromRight}}</mat-label>\n <mat-select formControlName=\"fromEndColumnNumber\">\n <mat-option [value]=\"0\">None</mat-option>\n @for (item of listComponentColumns; track item; let i = $index; let l = $last;) {\n @if(item?.isSelected){\n <mat-option [value]=\"(listComponentColumns?.length - i)\">\n <span *ngIf=\"!data?.skipTranslation\">{{t[item.column]}}</span>\n <span *ngIf=\"data?.skipTranslation\">{{customColumns[item.column]}}</span>\n </mat-option>\n }\n }\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n }\n\n <div mat-dialog-actions>\n <button mat-button type=\"button\" class=\"tis-cancel-button\" mat-dialog-close [disabled]=\"loading\">{{t?.createColumnsTemplate?.cancel}}</button>\n <button mat-flat-button type=\"submit\" class=\"tis-submit-button\" cdkFocusInitial [disabled]=\"savingTemplate\">\n {{data?.selectedTemplateId ? t?.createColumnsTemplate?.update : t?.createColumnsTemplate?.save}}\n @if(savingTemplate){\n <i class=\"fas fa-spinner fa-spin\"></i>\n }\n </button>\n </div>\n</form>", styles: [".width-100{width:100%!important}.example-container{width:400px;max-width:100%;margin:0 25px 25px 0;display:inline-block;vertical-align:top}.example-list{min-height:60px;background:#fff;border-radius:4px;overflow:hidden;display:block}.example-box{border-bottom:solid 1px #EEE;color:#000000de;display:flex;flex-direction:row;align-items:center;justify-content:space-between;box-sizing:border-box;background:#fff;font-size:14px}.example-div{display:flex;flex-direction:row;justify-content:space-between;align-items:center}.example-item{display:flex;flex-direction:row;align-items:center}.cdk-drag-preview{box-sizing:border-box;border-radius:4px;box-shadow:0 5px 5px -3px #0003,0 8px 10px 1px #00000024,0 3px 14px 2px #0000001f}.cdk-drag-placeholder{opacity:0}.cdk-drag-animating{transition:transform .25s cubic-bezier(0,0,.2,1)}.example-list.cdk-drop-list-dragging .example-box:not(.cdk-drag-placeholder){transition:transform .25s cubic-bezier(0,0,.2,1)}.mt-20{margin-top:20px}.mt-40{margin-top:40px}.w-10{width:10%}.w-100{width:100%}.container{width:100%;display:flex;align-items:center}.drag-index{font-size:16px;font-weight:500;padding:8px;width:40px;text-align:end}.drag-icon{background-color:#36834f;color:#fff;text-align:center;position:relative}.drag-icon i{padding-top:3px;cursor:move}.drag-content{margin-top:8px;padding-left:10px}.drag-content span{vertical-align:text-bottom;padding-left:5px}.tis-cancel-button:not(:disabled){text-transform:uppercase!important;color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}.tis-cancel-button:not(:disabled):hover .mat-mdc-button-persistent-ripple:before{background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))}.tis-submit-button:not(:disabled){text-transform:uppercase!important;color:#fff!important;background-color:var(--tis-primary, var(--mat-sys-primary, #3838a2))!important}\n"] }]
|
|
1594
1563
|
}], ctorParameters: () => [{ type: i1$1.MatDialogRef }, { type: TisHelperService }, { type: i1$2.MatSnackBar }, { type: UserCustomizationService }, { type: undefined, decorators: [{
|
|
1595
1564
|
type: Inject,
|
|
1596
1565
|
args: [MAT_DIALOG_DATA]
|
|
@@ -1601,7 +1570,6 @@ class TisColumnsBtnComponent {
|
|
|
1601
1570
|
userCustomizationService;
|
|
1602
1571
|
dialog;
|
|
1603
1572
|
static COMPONENT_NAME = 'TisColumnsBtnComponent';
|
|
1604
|
-
classPrefix = ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1605
1573
|
columnCustomizationUrlConfig;
|
|
1606
1574
|
t = {};
|
|
1607
1575
|
componentName;
|
|
@@ -1634,9 +1602,6 @@ class TisColumnsBtnComponent {
|
|
|
1634
1602
|
// this.createNewTemplateDialog();
|
|
1635
1603
|
// }, 2000);
|
|
1636
1604
|
}
|
|
1637
|
-
cx(name) {
|
|
1638
|
-
return ClassPrefixHelper.cx(this.classPrefix, name);
|
|
1639
|
-
}
|
|
1640
1605
|
createNewTemplateDialog(stData = null) {
|
|
1641
1606
|
if (!this.componentName)
|
|
1642
1607
|
return;
|
|
@@ -1654,14 +1619,13 @@ class TisColumnsBtnComponent {
|
|
|
1654
1619
|
t: this.t,
|
|
1655
1620
|
skipTranslation: this.skipTranslation,
|
|
1656
1621
|
customColumns: this.customColumns,
|
|
1657
|
-
columnCustomizationUrlConfig: this.columnCustomizationUrlConfig
|
|
1658
|
-
classPrefix: this.classPrefix,
|
|
1622
|
+
columnCustomizationUrlConfig: this.columnCustomizationUrlConfig
|
|
1659
1623
|
};
|
|
1660
1624
|
const dialogRef = this.dialog.open(CreateColumnsTemplateComponent, {
|
|
1661
1625
|
width: "35%",
|
|
1662
1626
|
minWidth: '370px',
|
|
1663
1627
|
data: data,
|
|
1664
|
-
panelClass: [
|
|
1628
|
+
panelClass: ['tis-create-new-columns-template'],
|
|
1665
1629
|
disableClose: true,
|
|
1666
1630
|
});
|
|
1667
1631
|
dialogRef.afterClosed().subscribe((res) => {
|
|
@@ -1713,18 +1677,17 @@ class TisColumnsBtnComponent {
|
|
|
1713
1677
|
let confirmBoxData = {
|
|
1714
1678
|
title: this.t?.deleteColumnsTemplate?.title,
|
|
1715
1679
|
message: this.t?.deleteColumnsTemplate?.message,
|
|
1716
|
-
iconClass:
|
|
1680
|
+
iconClass: "tis-text-danger",
|
|
1717
1681
|
icon: "delete",
|
|
1718
1682
|
approveButtonText: this.t?.deleteColumnsTemplate?.yes,
|
|
1719
|
-
approveButtonClass:
|
|
1683
|
+
approveButtonClass: "tis-btn-danger",
|
|
1720
1684
|
cancelButtonText: this.t?.deleteColumnsTemplate?.no,
|
|
1721
|
-
cancelButtonClass:
|
|
1722
|
-
classPrefix: this.classPrefix,
|
|
1685
|
+
cancelButtonClass: "tis-btn-primary"
|
|
1723
1686
|
};
|
|
1724
1687
|
const dialogRef = this.dialog.open(TisSmartTableConfirmationDialogComponent, {
|
|
1725
1688
|
width: "30%",
|
|
1726
1689
|
minWidth: '370px',
|
|
1727
|
-
// panelClass: [
|
|
1690
|
+
// panelClass: ['tis-simple-confirmation'],
|
|
1728
1691
|
data: confirmBoxData,
|
|
1729
1692
|
disableClose: true,
|
|
1730
1693
|
});
|
|
@@ -1744,7 +1707,7 @@ class TisColumnsBtnComponent {
|
|
|
1744
1707
|
this.selectedTemplateChange.emit(this.selectedTemplate);
|
|
1745
1708
|
this.changeDisplayColumns();
|
|
1746
1709
|
}
|
|
1747
|
-
}, err => this.helper.showHttpErrorMsg(err
|
|
1710
|
+
}, err => this.helper.showHttpErrorMsg(err));
|
|
1748
1711
|
}
|
|
1749
1712
|
});
|
|
1750
1713
|
}
|
|
@@ -1794,14 +1757,12 @@ class TisColumnsBtnComponent {
|
|
|
1794
1757
|
target.style.color = `color: var(--tis-primary, var(--mat-sys-primary, #3838a2)) !important;`;
|
|
1795
1758
|
}
|
|
1796
1759
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisColumnsBtnComponent, deps: [{ token: TisHelperService }, { token: UserCustomizationService }, { token: i1$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
1797
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TisColumnsBtnComponent, isStandalone: false, selector: "tis-columns-btn", inputs: {
|
|
1760
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "19.2.7", type: TisColumnsBtnComponent, isStandalone: false, selector: "tis-columns-btn", inputs: { columnCustomizationUrlConfig: "columnCustomizationUrlConfig", t: "t", componentName: "componentName", defaultColumns: "defaultColumns", columns: "columns", skipTranslation: "skipTranslation", customColumns: "customColumns", selectedTemplate: "selectedTemplate" }, outputs: { selectedTemplateChange: "selectedTemplateChange", displayedColumnsChange: "displayedColumnsChange", fromStartColumnNumberChange: "fromStartColumnNumberChange", fromEndColumnNumberChange: "fromEndColumnNumberChange" }, ngImport: i0, template: "<!-- shared.tisColumnsBtnComponent -->\n<button mat-flat-button class=\"tis-columns-btn\" style=\"background-color: var(--tis-light, #f5f5f5); color: black;\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>view_week</mat-icon>\n <span style=\"display: flex; flex-direction: row;\">\n {{selectedTemplate?.name}}\n <mat-icon style=\"width: 15px; height: 15px; font-size: 20px; line-height: 16px;\">arrow_drop_down</mat-icon>\n </span>\n</button>\n<mat-menu #menu=\"matMenu\" class=\"tis-columns-btn-mat-menu\">\n <button mat-menu-item (click)=\"selectedTemplate?.id != -1 ? onSelectedTemplate(-1) : null\">\n <mat-icon>{{selectedTemplate?.id == -1 ? 'done': ''}}</mat-icon>\n Default\n </button>\n <button mat-menu-item *ngFor=\"let template of templates\" (click)=\"onSelectedTemplate(template?.id)\">\n <mat-icon>{{template?.id == selectedTemplate?.id ? 'done': ''}}</mat-icon>\n <span style=\"padding-right: 4rem;\">{{template.name}}</span>\n <mat-icon style=\"position: absolute; right: 0;\" class=\"delete-button\" (mouseover)=\"onMouseOverOut($event, `var(--tis-delete-icon, #bb333b)`)\" (mouseout)=\"onMouseOverOut($event, '')\" (click)=\"isDeleteTemplate = true\">delete</mat-icon>\n <mat-icon style=\"position: absolute; right: 2rem;\" class=\"edit-button\" (mouseover)=\"onMouseOverOut($event, `var(--tis-edit-icon, var(--mat-sys-primary, #3838a2))`)\" (mouseout)=\"onMouseOverOut($event, '')\" (click)=\"isEditTemplate = true\">edit</mat-icon>\n </button>\n <mat-divider class=\"tis-mat-divider\" style=\"margin: 0px;\"></mat-divider>\n <button mat-menu-item class=\"tis-create-columns-template-button\" style=\"color: var(--tis-primary, var(--mat-sys-primary, #3838a2));\" (click)=\"createNewTemplateDialog()\"><mat-icon style=\"color: var(--tis-primary, var(--mat-sys-primary, #3838a2));\">add</mat-icon> {{t?.tisColumnsBtnComponent?.createNewView}}</button>\n</mat-menu>", styles: [""], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i7.MatMenu, selector: "mat-menu", inputs: ["backdropClass", "aria-label", "aria-labelledby", "aria-describedby", "xPosition", "yPosition", "overlapTrigger", "hasBackdrop", "class", "classList"], outputs: ["closed", "close"], exportAs: ["matMenu"] }, { kind: "component", type: i7.MatMenuItem, selector: "[mat-menu-item]", inputs: ["role", "disabled", "disableRipple"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i7.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", inputs: ["mat-menu-trigger-for", "matMenuTriggerFor", "matMenuTriggerData", "matMenuTriggerRestoreFocus"], outputs: ["menuOpened", "onMenuOpen", "menuClosed", "onMenuClose"], exportAs: ["matMenuTrigger"] }, { kind: "component", type: i8$1.MatDivider, selector: "mat-divider", inputs: ["vertical", "inset"] }] });
|
|
1798
1761
|
}
|
|
1799
1762
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisColumnsBtnComponent, decorators: [{
|
|
1800
1763
|
type: Component,
|
|
1801
|
-
args: [{ selector: 'tis-columns-btn', standalone: false, template: "<!-- shared.tisColumnsBtnComponent -->\n<button mat-flat-button
|
|
1802
|
-
}], ctorParameters: () => [{ type: TisHelperService }, { type: UserCustomizationService }, { type: i1$1.MatDialog }], propDecorators: {
|
|
1803
|
-
type: Input
|
|
1804
|
-
}], columnCustomizationUrlConfig: [{
|
|
1764
|
+
args: [{ selector: 'tis-columns-btn', standalone: false, template: "<!-- shared.tisColumnsBtnComponent -->\n<button mat-flat-button class=\"tis-columns-btn\" style=\"background-color: var(--tis-light, #f5f5f5); color: black;\" [matMenuTriggerFor]=\"menu\">\n <mat-icon>view_week</mat-icon>\n <span style=\"display: flex; flex-direction: row;\">\n {{selectedTemplate?.name}}\n <mat-icon style=\"width: 15px; height: 15px; font-size: 20px; line-height: 16px;\">arrow_drop_down</mat-icon>\n </span>\n</button>\n<mat-menu #menu=\"matMenu\" class=\"tis-columns-btn-mat-menu\">\n <button mat-menu-item (click)=\"selectedTemplate?.id != -1 ? onSelectedTemplate(-1) : null\">\n <mat-icon>{{selectedTemplate?.id == -1 ? 'done': ''}}</mat-icon>\n Default\n </button>\n <button mat-menu-item *ngFor=\"let template of templates\" (click)=\"onSelectedTemplate(template?.id)\">\n <mat-icon>{{template?.id == selectedTemplate?.id ? 'done': ''}}</mat-icon>\n <span style=\"padding-right: 4rem;\">{{template.name}}</span>\n <mat-icon style=\"position: absolute; right: 0;\" class=\"delete-button\" (mouseover)=\"onMouseOverOut($event, `var(--tis-delete-icon, #bb333b)`)\" (mouseout)=\"onMouseOverOut($event, '')\" (click)=\"isDeleteTemplate = true\">delete</mat-icon>\n <mat-icon style=\"position: absolute; right: 2rem;\" class=\"edit-button\" (mouseover)=\"onMouseOverOut($event, `var(--tis-edit-icon, var(--mat-sys-primary, #3838a2))`)\" (mouseout)=\"onMouseOverOut($event, '')\" (click)=\"isEditTemplate = true\">edit</mat-icon>\n </button>\n <mat-divider class=\"tis-mat-divider\" style=\"margin: 0px;\"></mat-divider>\n <button mat-menu-item class=\"tis-create-columns-template-button\" style=\"color: var(--tis-primary, var(--mat-sys-primary, #3838a2));\" (click)=\"createNewTemplateDialog()\"><mat-icon style=\"color: var(--tis-primary, var(--mat-sys-primary, #3838a2));\">add</mat-icon> {{t?.tisColumnsBtnComponent?.createNewView}}</button>\n</mat-menu>" }]
|
|
1765
|
+
}], ctorParameters: () => [{ type: TisHelperService }, { type: UserCustomizationService }, { type: i1$1.MatDialog }], propDecorators: { columnCustomizationUrlConfig: [{
|
|
1805
1766
|
type: Input,
|
|
1806
1767
|
args: [{ required: true }]
|
|
1807
1768
|
}], t: [{
|
|
@@ -1986,8 +1947,6 @@ class TisSmartTableViewerComponent {
|
|
|
1986
1947
|
breakpointObserver;
|
|
1987
1948
|
cdr;
|
|
1988
1949
|
homeUrl = '';
|
|
1989
|
-
/** Design-system CSS class prefix. Default `tis-` → classes like `tis-table`. */
|
|
1990
|
-
classPrefix = ClassPrefixHelper.DEFAULT_PREFIX;
|
|
1991
1950
|
columnCustomizationUrlConfig;
|
|
1992
1951
|
t = {};
|
|
1993
1952
|
componentName = '';
|
|
@@ -2369,14 +2328,6 @@ class TisSmartTableViewerComponent {
|
|
|
2369
2328
|
this.defaultColumns = this.columnsCodeMapping.map(c => c.name);
|
|
2370
2329
|
}
|
|
2371
2330
|
}
|
|
2372
|
-
/** Builds a host-styled CSS class from {@link classPrefix}, e.g. `cx('table')` → `tis-table`. */
|
|
2373
|
-
cx(name) {
|
|
2374
|
-
return ClassPrefixHelper.cx(this.classPrefix, name);
|
|
2375
|
-
}
|
|
2376
|
-
/** Joins multiple prefixed class names; falsy names are skipped. */
|
|
2377
|
-
cxMany(...names) {
|
|
2378
|
-
return ClassPrefixHelper.cxMany(this.classPrefix, ...names);
|
|
2379
|
-
}
|
|
2380
2331
|
handleDisplayedColumns(msg = '') {
|
|
2381
2332
|
if (this.selectedTemplate?.id > 0 && this.defaultDisplayedColumns && this.defaultDisplayedColumns.length) {
|
|
2382
2333
|
this.displayedColumns = this.defaultDisplayedColumns.filter(c => this._columnMappingCache.has(c));
|
|
@@ -2882,14 +2833,12 @@ class TisSmartTableViewerComponent {
|
|
|
2882
2833
|
}
|
|
2883
2834
|
}
|
|
2884
2835
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisSmartTableViewerComponent, deps: [{ token: i1$1.MatDialog }, { token: ApiService }, { token: i3$1.ActivatedRoute }, { token: i3$1.Router }, { token: i4.Location }, { token: i5.BreakpointObserver }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
2885
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: TisSmartTableViewerComponent, isStandalone: false, selector: "tis-smart-table-viewer", inputs: { classPrefix: "classPrefix", columnCustomizationUrlConfig: "columnCustomizationUrlConfig", t: "t", componentName: "componentName", mainTitle: "mainTitle", searchPlaceholder: "searchPlaceholder", breadcrumbs: "breadcrumbs", hideHeader: "hideHeader", hideTableHeader: "hideTableHeader", hidePaginator: "hidePaginator", keepFilterInUrl: "keepFilterInUrl", disableBorderedView: "disableBorderedView", displayColumnsSelectionButton: "displayColumnsSelectionButton", loadDataApiBaseUrl: "loadDataApiBaseUrl", startStickyColumnCount: "startStickyColumnCount", endStickyColumnCount: "endStickyColumnCount", isSearchFieldMobileResponsive: "isSearchFieldMobileResponsive", isMobileResponsiveTable: "isMobileResponsiveTable", loaderPosition: "loaderPosition", dataNotFoundConfig: "dataNotFoundConfig", showFilterButtonSection: "showFilterButtonSection", columnValueTypeFormats: "columnValueTypeFormats", columnsCodeMapping: "columnsCodeMapping", defaultDisplayedColumns: "defaultDisplayedColumns", defaultSortObj: "defaultSortObj", loadingSpinnerDiameter: "loadingSpinnerDiameter", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", useGlobalPageSize: "useGlobalPageSize", pageIndex: "pageIndex", filterFormGroup: "filterFormGroup", rowsConfig: "rowsConfig", hasSelectedAllRows: "hasSelectedAllRows", enableRowsSelection: "enableRowsSelection", enableAllRowsSelection: "enableAllRowsSelection", onlySingleSelection: "onlySingleSelection", selectedRowIds: "selectedRowIds", selectedRowKey: "selectedRowKey", selectedRows: "selectedRows", enableDragNDrop: "enableDragNDrop", isExpansion: "isExpansion", isExpandedRow: "isExpandedRow", expandedTemplate: "expandedTemplate", isExpansionForMobileResponsive: "isExpansionForMobileResponsive", isExpandedRowForMobileResponsive: "isExpandedRowForMobileResponsive", expandedTemplateForMobileResponsive: "expandedTemplateForMobileResponsive", headerTemplateForEachRowForMobileResponsive: "headerTemplateForEachRowForMobileResponsive" }, outputs: { displayedColumnsChange: "displayedColumnsChange", sortObjChange: "sortObjChange", pageSizeChange: "pageSizeChange", pageIndexChange: "pageIndexChange", onDataLoaded: "onDataLoaded", onSetExtraData: "onSetExtraData", onSetTotal: "onSetTotal", selectedRowsChange: "selectedRowsChange", allRowsSelectedChange: "allRowsSelectedChange", listDataSequenceChange: "listDataSequenceChange" }, providers: [CdkColumnDef], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section [class]=\"!hideHeader ? cx('page') : null\">\n <div [class]=\"cx('page-header')\" *ngIf=\"!hideHeader\">\n <nav aria-label=\"tis-breadcrumb\">\n <ol [class]=\"cx('breadcrumb')\">\n <li [class]=\"cx('breadcrumb-item')\"><a href=\"javascript:;\" [routerLink]=\"homeUrl\">{{t?.home}}</a></li>\n @for(breadcrumb of breadcrumbs; track trackByBreadcrumb($index, breadcrumb)) {\n <li [class]=\"cx('breadcrumb-item')\" *ngIf=\"breadcrumb?.url\">\n <a href=\"javascript:;\" (click)=\"goToUrl(breadcrumb.url)\">{{breadcrumb?.name}}</a>\n </li>\n }\n <li [class]=\"cx('breadcrumb-item') + ' active'\">\n {{mainTitle}}\n </li>\n </ol>\n </nav>\n <ng-content select=\"[slot='top-buttons-section']\"></ng-content>\n </div>\n <h1 [class]=\"cx('page-title')\" *ngIf=\"!hideHeader\">{{mainTitle}}</h1>\n <div [class]=\"cx('page-body')\">\n <div [class]=\"cx('page-body-content')\">\n\n @if(initialLoading){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' pb-2 pt-7'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"60\"></mat-progress-spinner>\n </div>\n } @else {\n\n @if ((dataSource?.totalDataLength$ | async) || (dataSource?.loading$ | async) || search ||\n filterHasNonEmptyValue || showFilterButtonSection || displayAfterFilterRemoved) {\n <div [class]=\"cx('table-container')\">\n @if(!hideTableHeader){\n <div [class]=\"cx('table-container-header')\">\n <ul [class]=\"cx('inline-group')\">\n <li [class]=\"cx('inline-group-item')\">\n <tis-columns-btn [classPrefix]=\"classPrefix\" [columnCustomizationUrlConfig]=\"columnCustomizationUrlConfig\" [t]=\"t\"\n [componentName]=\"componentName\" [(selectedTemplate)]=\"selectedTemplate\" [defaultColumns]=\"defaultColumns\" [columns]=\"columns\"\n (selectedTemplateChange)=\"onSetSelectedTemplate($event)\"\n (displayedColumnsChange)=\"onChangeDisplayColumns($event)\"\n (fromStartColumnNumberChange)=\"onChangeFromStartColumnNumber($event)\"\n (fromEndColumnNumberChange)=\"onChangeFromEndColumnNumber($event)\"></tis-columns-btn>\n </li>\n <ng-content select=\"[slot='filter-button-section']\"></ng-content>\n </ul>\n <div class=\"flex items-center\">\n <ul [class]=\"cx('inline-group')\">\n <ng-content select=\"[slot='filter-right-button-section']\"></ng-content>\n </ul>\n @if((!isMobile || !isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n [class]=\"'custom-mat-form-field-mb-0 search-mat-form-field ml-3 ' + cx('table-search-field')\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span [class]=\"'material-icons mr-2 ' + cx('curser-pointer')\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n </div>\n </div>\n }\n\n @if (filterFormGroup) {\n\n <ng-content select=\"[slot='filter-form-section']\"></ng-content>\n\n @if(finalSelectedFilterValuesToDisplay.length && filterApplied) {\n <div class=\"flex gap-3 mb-3 filter-applied-section md-hide-scrollbar\">\n @for(v of finalSelectedFilterValuesToDisplay; track trackByFilterValue($index, v)) {\n @if (v) {\n <span [class]=\"cx('filter-badge')\" style=\"white-space: nowrap;\">\n @if(v.labelKey && v.labelKey != '' && (v.valueKey || v.value)) {\n <span class=\"font-semibold\"> {{v.labelKey }} </span>\n }\n @if(v.valueKey) {\n {{v.valueKey }}\n } @else {\n {{v.value }}\n }\n <span [class]=\"'material-icons ' + cx('curser-pointer')\"\n (click)=\"removeParticularFilter(v)\">cancel</span>\n </span>\n }\n }\n </div>\n }\n }\n\n @if((isMobile && isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n [class]=\"'custom-mat-form-field-mb-0 search-mat-form-field mb-3 ' + cx('table-search-field')\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span [class]=\"'material-icons mr-2 ' + cx('curser-pointer')\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n\n \n @if(loaderPosition == 'top'){\n @if(dataSource?.loading$ | async){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' py-2'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n <div [class]=\"cx('table-container-body')\">\n <div [class]=\"cx('table-wrapper')\" [appScrolling]=\"true\">\n\n @if ( isMobileResponsiveTable == false || (isMobileResponsiveTable == true && isMobile == false)) {\n <!--Table Here-->\n <table mat-table matSort [dataSource]=\"dataSource\"\n [class]=\"cxMany('table', disableBorderedView == false && 'table-bordered') + (disableBorderedView == false ? ' stv-table-bordered' : '')\"\n cdkDropList (cdkDropListDropped)=\"drop($event)\" [cdkDropListLockAxis]=\"'y'\" multiTemplateDataRows>\n\n @if (enableRowsSelection) {\n <ng-container matColumnDef=\"Select\">\n <th mat-header-cell *matHeaderCellDef>\n @if (enableAllRowsSelection) {\n <mat-checkbox color=\"primary\" (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"isAllRowsSelected || hasSelectedAllRows\"\n [indeterminate]=\"selection.hasValue() && !isAllRowsSelected\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, row) : null\" [checked]=\"isChecked(row) || hasSelectedAllRows\"></mat-checkbox>\n </td>\n </ng-container>\n }\n\n @for(column of autoRenderColumns; track trackByAutoColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"i > (autoRenderColumns?.length - endStickyColumnCount)\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px;\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell mat-sort-header *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n \n\n @if(column.type == 'date'){\n <td mat-cell *matCellDef=\"let element\" class=\"1al-{{column.align}} 1ty-{{column.type}}\" >\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time-with-seconds'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else {\n <td mat-cell *matCellDef=\"let element\" class=\"3al-{{column.align}} 3ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </p>\n }\n </td>\n }\n </ng-container>\n\n }\n\n\n @for(column of templateRenderColumns; track trackByTemplateColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"l\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px; cursor: pointer;\" (click)=\"expandAllRow()\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" class=\"4al-{{column.align}} 4ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n <ng-container *ngIf=\"column.template as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colDef: column, colData: element }\"></ng-container>\n </ng-container>\n </td>\n </ng-container>\n }\n\n <!--Drag Column Def Start-->\n <ng-container [matColumnDef]=\"'drag'\" >\n <th mat-header-cell *matHeaderCellDef>\n --\n </th>\n <td mat-cell *matCellDef=\"let element\" class=\"5al-drag 5ty-drag\">\n <mat-icon cdkDragHandle [class]=\"cx('curser-pointer')\" style=\"color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n </td>\n </ng-container>\n <!--Drag Column Def End-->\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\" [style.border-bottom-width]=\"isRowExpanded(element) ? '1px' : '0px'\" style=\"padding: 0px !important;\">\n <div class=\"stv-element-detail-wrapper\" [class.stv-element-detail-wrapper-expanded]=\"isRowExpanded(element)\">\n <ng-container *ngIf=\"expandedTemplate as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n <div [class]=\"cx('data-not-found')\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 [class]=\"cx('h5')\">{{dataNotFoundConfig.title}}</h5>\n </div>\n </td>\n </tr>\n\n <!-- Apply Drag and Drop to tbody -->\n @if(enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [ngClass]=\"isExpandedRow ? cx('curser-pointer') : null\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\" cdkDrag></tr>\n }\n\n @if(!enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [ngClass]=\"isExpandedRow ? cx('curser-pointer') : null\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\"></tr>\n } \n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"stv-detail-row\"></tr>\n </table>\n <!--Table End-->\n }\n @else {\n <!-- Mobile Card View -->\n @if (dataSource?.apiSubject | async; as rows) {\n <table [class]=\"cxMany('table', 'mobile-responsive-table', disableBorderedView == false && 'table-bordered') + (disableBorderedView == false ? ' stv-table-bordered' : '')\">\n <tbody>\n @for (element of rows; track trackByTableRow($index, element)) {\n <tr [ngStyle]=\"{'background-color': getRowBackground(element) || 'inherit'}\" [ngClass]=\"isExpandedRowForMobileResponsive ? cx('curser-pointer') : null\" (click)=\"(isExpansionForMobileResponsive && isExpandedRowForMobileResponsive) ? toggleExpandForMobileResponsive(element) : null\">\n <td>\n <div class=\"stv-table-responsive-table-wrapper\">\n <div class=\"stv-table-responsive-table-header-wrapper\">\n @if (enableRowsSelection) {\n <div class=\"stv-table-responsive-table-header-wrapper-item\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, element) : null\" [checked]=\"isChecked(element) || hasSelectedAllRows\"></mat-checkbox>\n </div>\n }\n <div class=\"stv-table-responsive-table-header-wrapper-item\" style=\"flex: 1 1 0%;\">\n <ng-container *ngIf=\"headerTemplateForEachRowForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"stv-table-responsive-table-content-wrapper\" [class.stv-table-responsive-table-content-wrapper-expanded]=\"isRowExpandedForMobileResponsive(element)\">\n <ng-container *ngIf=\"expandedTemplateForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n\n </div>\n @if(loaderPosition == 'bottom'){\n @if(dataSource?.loading$ | async){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' py-2'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n @if (!hidePaginator) {\n <div [class]=\"cx('table-paginator')\">\n <mat-paginator [length]=\"dataSource?.totalDataLength?.value\" [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </div>\n }\n </div>\n </div>\n } @else {\n\n @if(dataNotFoundConfig) {\n <div [class]=\"cx('data-not-found')\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 [class]=\"cx('h5')\">{{dataNotFoundConfig.title}}</h5>\n @if(dataNotFoundConfig.desc) {\n <p [class]=\"cx('p')\">{{dataNotFoundConfig.desc}}</p>\n }\n @if((dataNotFoundConfig.btnUrl || dataNotFoundConfig?.btnClick) && dataNotFoundConfig.btnText) {\n <button mat-flat-button color=\"primary\" [class]=\"cx('text-upper')\"\n (click)=\"handleButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.btnText}}\n </button>\n }\n @if((dataNotFoundConfig.secondBtnUrl || dataNotFoundConfig?.secondBtnClick) && dataNotFoundConfig.secondBtnText) {\n <button mat-stroked-button color=\"primary\" [class]=\"cx('text-upper')\"\n (click)=\"handleSecondButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.secondBtnText}}\n </button>\n }\n </div>\n }\n\n }\n\n }\n\n </div>\n </div>\n</section>\n", styles: ["::ng-deep .sub-main-content{border:0px solid #f00;margin-top:56px;height:calc(100% - 56px);padding:15px;overflow:auto}.header-title{margin-top:8px;padding:7px 10px;color:#969a9c}.header-title h3{font-size:20px!important;font-weight:700}.header-menu{border:0px solid red;background:#fff;margin-top:1px;margin-bottom:0}.w-100{width:100%}.mat-mdc-table-sticky-border-elem-right{border-left:1px solid #e0e0e087}.mat-mdc-table-sticky-border-elem-left{border-right:1px solid #e0e0e087}.search-mat-form-field{width:100%}.filter-applied-section{overflow:auto}.stv-detail-row{height:0!important}.stv-element-detail-wrapper{overflow:hidden;max-height:0;transition:max-height 225ms ease}.stv-element-detail-wrapper-expanded{max-height:500px}.stv-table-bordered{border-collapse:collapse;width:100%}.stv-table-bordered th,.stv-table-bordered td{border-left:1px solid #e0e0e0}.stv-table-bordered th:first-child,.stv-table-bordered td:first-child{border-left:0px solid #e0e0e0}.stv-table-bordered .bg-unset{background-color:unset!important}.stv-table-responsive-table-wrapper{width:100%;display:flex;flex-direction:column}.stv-table-responsive-table-header-wrapper{width:100%;display:flex;flex-direction:row;gap:10px;align-items:center}.stv-table-responsive-table-content-wrapper{width:100%}@media (max-width: 575.98px){.search-mat-form-field{width:100%!important}}@media (min-width: 576px) and (max-width: 767.98px){.search-mat-form-field{width:100%!important}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i12$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i13$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i13$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i15.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i15.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: ScrollingDirective, selector: "[appScrolling]", inputs: ["appScrolling"] }, { kind: "component", type: TisColumnsBtnComponent, selector: "tis-columns-btn", inputs: ["classPrefix", "columnCustomizationUrlConfig", "t", "componentName", "defaultColumns", "columns", "skipTranslation", "customColumns", "selectedTemplate"], outputs: ["selectedTemplateChange", "displayedColumnsChange", "fromStartColumnNumberChange", "fromEndColumnNumberChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: TisDatePipe, name: "tisDate" }, { kind: "pipe", type: TisDateTimePipe, name: "tisDateTime" }, { kind: "pipe", type: TisDateTimeWithSecondsPipe, name: "tisDateTimeWithSeconds" }, { kind: "pipe", type: TisCurrencyPipe, name: "tisCurrency" }] });
|
|
2836
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.2.7", type: TisSmartTableViewerComponent, isStandalone: false, selector: "tis-smart-table-viewer", inputs: { columnCustomizationUrlConfig: "columnCustomizationUrlConfig", t: "t", componentName: "componentName", mainTitle: "mainTitle", searchPlaceholder: "searchPlaceholder", breadcrumbs: "breadcrumbs", hideHeader: "hideHeader", hideTableHeader: "hideTableHeader", hidePaginator: "hidePaginator", keepFilterInUrl: "keepFilterInUrl", disableBorderedView: "disableBorderedView", displayColumnsSelectionButton: "displayColumnsSelectionButton", loadDataApiBaseUrl: "loadDataApiBaseUrl", startStickyColumnCount: "startStickyColumnCount", endStickyColumnCount: "endStickyColumnCount", isSearchFieldMobileResponsive: "isSearchFieldMobileResponsive", isMobileResponsiveTable: "isMobileResponsiveTable", loaderPosition: "loaderPosition", dataNotFoundConfig: "dataNotFoundConfig", showFilterButtonSection: "showFilterButtonSection", columnValueTypeFormats: "columnValueTypeFormats", columnsCodeMapping: "columnsCodeMapping", defaultDisplayedColumns: "defaultDisplayedColumns", defaultSortObj: "defaultSortObj", loadingSpinnerDiameter: "loadingSpinnerDiameter", pageSizeOptions: "pageSizeOptions", pageSize: "pageSize", useGlobalPageSize: "useGlobalPageSize", pageIndex: "pageIndex", filterFormGroup: "filterFormGroup", rowsConfig: "rowsConfig", hasSelectedAllRows: "hasSelectedAllRows", enableRowsSelection: "enableRowsSelection", enableAllRowsSelection: "enableAllRowsSelection", onlySingleSelection: "onlySingleSelection", selectedRowIds: "selectedRowIds", selectedRowKey: "selectedRowKey", selectedRows: "selectedRows", enableDragNDrop: "enableDragNDrop", isExpansion: "isExpansion", isExpandedRow: "isExpandedRow", expandedTemplate: "expandedTemplate", isExpansionForMobileResponsive: "isExpansionForMobileResponsive", isExpandedRowForMobileResponsive: "isExpandedRowForMobileResponsive", expandedTemplateForMobileResponsive: "expandedTemplateForMobileResponsive", headerTemplateForEachRowForMobileResponsive: "headerTemplateForEachRowForMobileResponsive" }, outputs: { displayedColumnsChange: "displayedColumnsChange", sortObjChange: "sortObjChange", pageSizeChange: "pageSizeChange", pageIndexChange: "pageIndexChange", onDataLoaded: "onDataLoaded", onSetExtraData: "onSetExtraData", onSetTotal: "onSetTotal", selectedRowsChange: "selectedRowsChange", allRowsSelectedChange: "allRowsSelectedChange", listDataSequenceChange: "listDataSequenceChange" }, providers: [CdkColumnDef], viewQueries: [{ propertyName: "table", first: true, predicate: MatTable, descendants: true }, { propertyName: "sort", first: true, predicate: MatSort, descendants: true }, { propertyName: "paginator", first: true, predicate: MatPaginator, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<section [class.tis-page]=\"!hideHeader\">\n <div class=\"tis-page-header\" *ngIf=\"!hideHeader\">\n <nav aria-label=\"tis-breadcrumb\">\n <ol class=\"tis-breadcrumb\">\n <li class=\"tis-breadcrumb-item\"><a href=\"javascript:;\" [routerLink]=\"homeUrl\">{{t?.home}}</a></li>\n @for(breadcrumb of breadcrumbs; track trackByBreadcrumb($index, breadcrumb)) {\n <li class=\"tis-breadcrumb-item\" *ngIf=\"breadcrumb?.url\">\n <a href=\"javascript:;\" (click)=\"goToUrl(breadcrumb.url)\">{{breadcrumb?.name}}</a>\n </li>\n }\n <li class=\"tis-breadcrumb-item active\">\n {{mainTitle}}\n </li>\n </ol>\n </nav>\n <ng-content select=\"[slot='top-buttons-section']\"></ng-content>\n </div>\n <h1 class=\"tis-page-title\" *ngIf=\"!hideHeader\">{{mainTitle}}</h1>\n <div class=\"tis-page-body\">\n <div class=\"tis-page-body-content\">\n\n @if(initialLoading){\n <div class=\"tis-d-flex tis-justify-content-center pb-2 pt-7\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"60\"></mat-progress-spinner>\n </div>\n } @else {\n\n @if ((dataSource?.totalDataLength$ | async) || (dataSource?.loading$ | async) || search ||\n filterHasNonEmptyValue || showFilterButtonSection || displayAfterFilterRemoved) {\n <div class=\"tis-table-container\">\n @if(!hideTableHeader){\n <div class=\"tis-table-container-header\">\n <ul class=\"tis-inline-group\">\n <li class=\"tis-inline-group-item\">\n <tis-columns-btn [columnCustomizationUrlConfig]=\"columnCustomizationUrlConfig\" [t]=\"t\"\n [componentName]=\"componentName\" [(selectedTemplate)]=\"selectedTemplate\" [defaultColumns]=\"defaultColumns\" [columns]=\"columns\"\n (selectedTemplateChange)=\"onSetSelectedTemplate($event)\"\n (displayedColumnsChange)=\"onChangeDisplayColumns($event)\"\n (fromStartColumnNumberChange)=\"onChangeFromStartColumnNumber($event)\"\n (fromEndColumnNumberChange)=\"onChangeFromEndColumnNumber($event)\"></tis-columns-btn>\n </li>\n <ng-content select=\"[slot='filter-button-section']\"></ng-content>\n </ul>\n <div class=\"flex items-center\">\n <ul class=\"tis-inline-group\">\n <ng-content select=\"[slot='filter-right-button-section']\"></ng-content>\n </ul>\n @if((!isMobile || !isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n class=\"custom-mat-form-field-mb-0 search-mat-form-field ml-3 tis-table-search-field\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span class=\"material-icons mr-2 tis-curser-pointer\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n </div>\n </div>\n }\n\n @if (filterFormGroup) {\n\n <ng-content select=\"[slot='filter-form-section']\"></ng-content>\n\n @if(finalSelectedFilterValuesToDisplay.length && filterApplied) {\n <div class=\"flex gap-3 mb-3 filter-applied-section md-hide-scrollbar\">\n @for(v of finalSelectedFilterValuesToDisplay; track trackByFilterValue($index, v)) {\n @if (v) {\n <span class=\"tis-filter-badge\" style=\"white-space: nowrap;\">\n @if(v.labelKey && v.labelKey != '' && (v.valueKey || v.value)) {\n <span class=\"font-semibold\"> {{v.labelKey }} </span>\n }\n @if(v.valueKey) {\n {{v.valueKey }}\n } @else {\n {{v.value }}\n }\n <span class=\"material-icons tis-curser-pointer\"\n (click)=\"removeParticularFilter(v)\">cancel</span>\n </span>\n }\n }\n </div>\n }\n }\n\n @if((isMobile && isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n class=\"custom-mat-form-field-mb-0 search-mat-form-field mb-3 tis-table-search-field\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span class=\"material-icons mr-2 tis-curser-pointer\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n\n \n @if(loaderPosition == 'top'){\n @if(dataSource?.loading$ | async){\n <div class=\"tis-d-flex tis-justify-content-center py-2\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n <div class=\"tis-table-container-body\">\n <div class=\"tis-table-wrapper\" [appScrolling]=\"true\">\n\n @if ( isMobileResponsiveTable == false || (isMobileResponsiveTable == true && isMobile == false)) {\n <!--Table Here-->\n <table mat-table matSort [dataSource]=\"dataSource\" class=\"tis-table\" [class.tis-table-bordered]=\"disableBorderedView == false\" cdkDropList (cdkDropListDropped)=\"drop($event)\" [cdkDropListLockAxis]=\"'y'\" multiTemplateDataRows>\n\n @if (enableRowsSelection) {\n <ng-container matColumnDef=\"Select\">\n <th mat-header-cell *matHeaderCellDef>\n @if (enableAllRowsSelection) {\n <mat-checkbox color=\"primary\" (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"isAllRowsSelected || hasSelectedAllRows\"\n [indeterminate]=\"selection.hasValue() && !isAllRowsSelected\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, row) : null\" [checked]=\"isChecked(row) || hasSelectedAllRows\"></mat-checkbox>\n </td>\n </ng-container>\n }\n\n @for(column of autoRenderColumns; track trackByAutoColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"i > (autoRenderColumns?.length - endStickyColumnCount)\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px;\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell mat-sort-header *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n \n\n @if(column.type == 'date'){\n <td mat-cell *matCellDef=\"let element\" class=\"1al-{{column.align}} 1ty-{{column.type}}\" >\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time-with-seconds'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else {\n <td mat-cell *matCellDef=\"let element\" class=\"3al-{{column.align}} 3ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </p>\n }\n </td>\n }\n </ng-container>\n\n }\n\n\n @for(column of templateRenderColumns; track trackByTemplateColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"l\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px; cursor: pointer;\" (click)=\"expandAllRow()\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" class=\"4al-{{column.align}} 4ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n <ng-container *ngIf=\"column.template as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colDef: column, colData: element }\"></ng-container>\n </ng-container>\n </td>\n </ng-container>\n }\n\n <!--Drag Column Def Start-->\n <ng-container [matColumnDef]=\"'drag'\" >\n <th mat-header-cell *matHeaderCellDef>\n --\n </th>\n <td mat-cell *matCellDef=\"let element\" class=\"5al-drag 5ty-drag\">\n <mat-icon cdkDragHandle class=\"tis-curser-pointer\" style=\"color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n </td>\n </ng-container>\n <!--Drag Column Def End-->\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\" [style.border-bottom-width]=\"isRowExpanded(element) ? '1px' : '0px'\" style=\"padding: 0px !important;\">\n <div class=\"tis-element-detail-wrapper\" [class.tis-element-detail-wrapper-expanded]=\"isRowExpanded(element)\">\n <ng-container *ngIf=\"expandedTemplate as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"tis-data-not-found\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 class=\"tis-h5\">{{dataNotFoundConfig.title}}</h5>\n </div>\n </td>\n </tr>\n\n <!-- Apply Drag and Drop to tbody -->\n @if(enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRow\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\" cdkDrag></tr>\n }\n\n @if(!enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRow\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\"></tr>\n } \n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"tis-detail-row\"></tr>\n </table>\n <!--Table End-->\n }\n @else {\n <!-- Mobile Card View -->\n @if (dataSource?.apiSubject | async; as rows) {\n <table class=\"tis-table tis-mobile-responsive-table\" [class.tis-table-bordered]=\"disableBorderedView == false\">\n <tbody>\n @for (element of rows; track trackByTableRow($index, element)) {\n <tr [ngStyle]=\"{'background-color': getRowBackground(element) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRowForMobileResponsive\" (click)=\"(isExpansionForMobileResponsive && isExpandedRowForMobileResponsive) ? toggleExpandForMobileResponsive(element) : null\">\n <td>\n <div class=\"tis-table-responsive-table-wrapper\">\n <div class=\"tis-table-responsive-table-header-wrapper\">\n @if (enableRowsSelection) {\n <div class=\"tis-table-responsive-table-header-wrapper-item\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, element) : null\" [checked]=\"isChecked(element) || hasSelectedAllRows\"></mat-checkbox>\n </div>\n }\n <div class=\"tis-table-responsive-table-header-wrapper-item\" style=\"flex: 1 1 0%;\">\n <ng-container *ngIf=\"headerTemplateForEachRowForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"tis-table-responsive-table-content-wrapper\" [class.tis-table-responsive-table-content-wrapper-expanded]=\"isRowExpandedForMobileResponsive(element)\">\n <ng-container *ngIf=\"expandedTemplateForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n\n </div>\n @if(loaderPosition == 'bottom'){\n @if(dataSource?.loading$ | async){\n <div class=\"tis-d-flex tis-justify-content-center py-2\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n @if (!hidePaginator) {\n <div class=\"tis-table-paginator\">\n <mat-paginator [length]=\"dataSource?.totalDataLength?.value\" [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </div>\n }\n </div>\n </div>\n } @else {\n\n @if(dataNotFoundConfig) {\n <div class=\"tis-data-not-found\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 class=\"tis-h5\">{{dataNotFoundConfig.title}}</h5>\n @if(dataNotFoundConfig.desc) {\n <p class=\"tis-p\">{{dataNotFoundConfig.desc}}</p>\n }\n @if((dataNotFoundConfig.btnUrl || dataNotFoundConfig?.btnClick) && dataNotFoundConfig.btnText) {\n <button mat-flat-button color=\"primary\" class=\"tis-text-upper\"\n (click)=\"handleButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.btnText}}\n </button>\n }\n @if((dataNotFoundConfig.secondBtnUrl || dataNotFoundConfig?.secondBtnClick) && dataNotFoundConfig.secondBtnText) {\n <button mat-stroked-button color=\"primary\" class=\"tis-text-upper\"\n (click)=\"handleSecondButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.secondBtnText}}\n </button>\n }\n </div>\n }\n\n }\n\n }\n\n </div>\n </div>\n</section>", styles: ["::ng-deep .sub-main-content{border:0px solid #f00;margin-top:56px;height:calc(100% - 56px);padding:15px;overflow:auto}.header-title{margin-top:8px;padding:7px 10px;color:#969a9c}.header-title h3{font-size:20px!important;font-weight:700}.header-menu{border:0px solid red;background:#fff;margin-top:1px;margin-bottom:0}.w-100{width:100%}.mat-mdc-table-sticky-border-elem-right{border-left:1px solid #e0e0e087}.mat-mdc-table-sticky-border-elem-left{border-right:1px solid #e0e0e087}.search-mat-form-field{width:100%}.filter-applied-section{overflow:auto}.tis-detail-row{height:0!important}.tis-element-detail-wrapper{overflow:hidden;max-height:0;transition:max-height 225ms ease}.tis-element-detail-wrapper-expanded{max-height:500px}.tis-table-bordered{border-collapse:collapse;width:100%}.tis-table-bordered th,.tis-table-bordered td{border-left:1px solid #e0e0e0}.tis-table-bordered th:first-child,.tis-table-bordered td:first-child{border-left:0px solid #e0e0e0}.tis-table-bordered .bg-unset{background-color:unset!important}.tis-table-responsive-table-wrapper{width:100%;display:flex;flex-direction:column}.tis-table-responsive-table-header-wrapper{width:100%;display:flex;flex-direction:row;gap:10px;align-items:center}.tis-table-responsive-table-content-wrapper{width:100%}@media (max-width: 575.98px){.search-mat-form-field{width:100%!important}}@media (min-width: 576px) and (max-width: 767.98px){.search-mat-form-field{width:100%!important}}\n"], dependencies: [{ kind: "directive", type: i4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i4.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "directive", type: i6.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.RouterLink, selector: "[routerLink]", inputs: ["target", "queryParams", "fragment", "queryParamsHandling", "state", "info", "relativeTo", "preserveFragment", "skipLocationChange", "replaceUrl", "routerLink"] }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i8.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i8.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i8.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "directive", type: i10.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i10$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "mode", "value", "diameter", "strokeWidth"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i12$1.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }, { kind: "component", type: i13$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { kind: "directive", type: i13$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { kind: "directive", type: i13$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { kind: "directive", type: i13$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["matColumnDef"] }, { kind: "directive", type: i13$1.MatCellDef, selector: "[matCellDef]" }, { kind: "directive", type: i13$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { kind: "directive", type: i13$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { kind: "directive", type: i13$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { kind: "component", type: i13$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { kind: "component", type: i13$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { kind: "directive", type: i13$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }, { kind: "component", type: i12.MatCheckbox, selector: "mat-checkbox", inputs: ["aria-label", "aria-labelledby", "aria-describedby", "aria-expanded", "aria-controls", "aria-owns", "id", "required", "labelPosition", "name", "value", "disableRipple", "tabIndex", "color", "disabledInteractive", "checked", "disabled", "indeterminate"], outputs: ["change", "indeterminateChange"], exportAs: ["matCheckbox"] }, { kind: "directive", type: i15.MatSort, selector: "[matSort]", inputs: ["matSortActive", "matSortStart", "matSortDirection", "matSortDisableClear", "matSortDisabled"], outputs: ["matSortChange"], exportAs: ["matSort"] }, { kind: "component", type: i15.MatSortHeader, selector: "[mat-sort-header]", inputs: ["mat-sort-header", "arrowPosition", "start", "disabled", "sortActionDescription", "disableClear"], exportAs: ["matSortHeader"] }, { kind: "directive", type: i13.CdkDropList, selector: "[cdkDropList], cdk-drop-list", inputs: ["cdkDropListConnectedTo", "cdkDropListData", "cdkDropListOrientation", "id", "cdkDropListLockAxis", "cdkDropListDisabled", "cdkDropListSortingDisabled", "cdkDropListEnterPredicate", "cdkDropListSortPredicate", "cdkDropListAutoScrollDisabled", "cdkDropListAutoScrollStep", "cdkDropListElementContainer"], outputs: ["cdkDropListDropped", "cdkDropListEntered", "cdkDropListExited", "cdkDropListSorted"], exportAs: ["cdkDropList"] }, { kind: "directive", type: i13.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer", "cdkDragScale"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i13.CdkDragHandle, selector: "[cdkDragHandle]", inputs: ["cdkDragHandleDisabled"] }, { kind: "directive", type: ScrollingDirective, selector: "[appScrolling]", inputs: ["appScrolling"] }, { kind: "component", type: TisColumnsBtnComponent, selector: "tis-columns-btn", inputs: ["columnCustomizationUrlConfig", "t", "componentName", "defaultColumns", "columns", "skipTranslation", "customColumns", "selectedTemplate"], outputs: ["selectedTemplateChange", "displayedColumnsChange", "fromStartColumnNumberChange", "fromEndColumnNumberChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }, { kind: "pipe", type: i4.DecimalPipe, name: "number" }, { kind: "pipe", type: TisDatePipe, name: "tisDate" }, { kind: "pipe", type: TisDateTimePipe, name: "tisDateTime" }, { kind: "pipe", type: TisDateTimeWithSecondsPipe, name: "tisDateTimeWithSeconds" }, { kind: "pipe", type: TisCurrencyPipe, name: "tisCurrency" }] });
|
|
2886
2837
|
}
|
|
2887
2838
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.2.7", ngImport: i0, type: TisSmartTableViewerComponent, decorators: [{
|
|
2888
2839
|
type: Component,
|
|
2889
|
-
args: [{ selector: 'tis-smart-table-viewer', standalone: false, providers: [CdkColumnDef], template: "<section [class]=\"!hideHeader ? cx('page') : null\">\n <div [class]=\"cx('page-header')\" *ngIf=\"!hideHeader\">\n <nav aria-label=\"tis-breadcrumb\">\n <ol [class]=\"cx('breadcrumb')\">\n <li [class]=\"cx('breadcrumb-item')\"><a href=\"javascript:;\" [routerLink]=\"homeUrl\">{{t?.home}}</a></li>\n @for(breadcrumb of breadcrumbs; track trackByBreadcrumb($index, breadcrumb)) {\n <li [class]=\"cx('breadcrumb-item')\" *ngIf=\"breadcrumb?.url\">\n <a href=\"javascript:;\" (click)=\"goToUrl(breadcrumb.url)\">{{breadcrumb?.name}}</a>\n </li>\n }\n <li [class]=\"cx('breadcrumb-item') + ' active'\">\n {{mainTitle}}\n </li>\n </ol>\n </nav>\n <ng-content select=\"[slot='top-buttons-section']\"></ng-content>\n </div>\n <h1 [class]=\"cx('page-title')\" *ngIf=\"!hideHeader\">{{mainTitle}}</h1>\n <div [class]=\"cx('page-body')\">\n <div [class]=\"cx('page-body-content')\">\n\n @if(initialLoading){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' pb-2 pt-7'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"60\"></mat-progress-spinner>\n </div>\n } @else {\n\n @if ((dataSource?.totalDataLength$ | async) || (dataSource?.loading$ | async) || search ||\n filterHasNonEmptyValue || showFilterButtonSection || displayAfterFilterRemoved) {\n <div [class]=\"cx('table-container')\">\n @if(!hideTableHeader){\n <div [class]=\"cx('table-container-header')\">\n <ul [class]=\"cx('inline-group')\">\n <li [class]=\"cx('inline-group-item')\">\n <tis-columns-btn [classPrefix]=\"classPrefix\" [columnCustomizationUrlConfig]=\"columnCustomizationUrlConfig\" [t]=\"t\"\n [componentName]=\"componentName\" [(selectedTemplate)]=\"selectedTemplate\" [defaultColumns]=\"defaultColumns\" [columns]=\"columns\"\n (selectedTemplateChange)=\"onSetSelectedTemplate($event)\"\n (displayedColumnsChange)=\"onChangeDisplayColumns($event)\"\n (fromStartColumnNumberChange)=\"onChangeFromStartColumnNumber($event)\"\n (fromEndColumnNumberChange)=\"onChangeFromEndColumnNumber($event)\"></tis-columns-btn>\n </li>\n <ng-content select=\"[slot='filter-button-section']\"></ng-content>\n </ul>\n <div class=\"flex items-center\">\n <ul [class]=\"cx('inline-group')\">\n <ng-content select=\"[slot='filter-right-button-section']\"></ng-content>\n </ul>\n @if((!isMobile || !isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n [class]=\"'custom-mat-form-field-mb-0 search-mat-form-field ml-3 ' + cx('table-search-field')\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span [class]=\"'material-icons mr-2 ' + cx('curser-pointer')\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n </div>\n </div>\n }\n\n @if (filterFormGroup) {\n\n <ng-content select=\"[slot='filter-form-section']\"></ng-content>\n\n @if(finalSelectedFilterValuesToDisplay.length && filterApplied) {\n <div class=\"flex gap-3 mb-3 filter-applied-section md-hide-scrollbar\">\n @for(v of finalSelectedFilterValuesToDisplay; track trackByFilterValue($index, v)) {\n @if (v) {\n <span [class]=\"cx('filter-badge')\" style=\"white-space: nowrap;\">\n @if(v.labelKey && v.labelKey != '' && (v.valueKey || v.value)) {\n <span class=\"font-semibold\"> {{v.labelKey }} </span>\n }\n @if(v.valueKey) {\n {{v.valueKey }}\n } @else {\n {{v.value }}\n }\n <span [class]=\"'material-icons ' + cx('curser-pointer')\"\n (click)=\"removeParticularFilter(v)\">cancel</span>\n </span>\n }\n }\n </div>\n }\n }\n\n @if((isMobile && isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n [class]=\"'custom-mat-form-field-mb-0 search-mat-form-field mb-3 ' + cx('table-search-field')\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span [class]=\"'material-icons mr-2 ' + cx('curser-pointer')\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n\n \n @if(loaderPosition == 'top'){\n @if(dataSource?.loading$ | async){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' py-2'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n <div [class]=\"cx('table-container-body')\">\n <div [class]=\"cx('table-wrapper')\" [appScrolling]=\"true\">\n\n @if ( isMobileResponsiveTable == false || (isMobileResponsiveTable == true && isMobile == false)) {\n <!--Table Here-->\n <table mat-table matSort [dataSource]=\"dataSource\"\n [class]=\"cxMany('table', disableBorderedView == false && 'table-bordered') + (disableBorderedView == false ? ' stv-table-bordered' : '')\"\n cdkDropList (cdkDropListDropped)=\"drop($event)\" [cdkDropListLockAxis]=\"'y'\" multiTemplateDataRows>\n\n @if (enableRowsSelection) {\n <ng-container matColumnDef=\"Select\">\n <th mat-header-cell *matHeaderCellDef>\n @if (enableAllRowsSelection) {\n <mat-checkbox color=\"primary\" (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"isAllRowsSelected || hasSelectedAllRows\"\n [indeterminate]=\"selection.hasValue() && !isAllRowsSelected\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, row) : null\" [checked]=\"isChecked(row) || hasSelectedAllRows\"></mat-checkbox>\n </td>\n </ng-container>\n }\n\n @for(column of autoRenderColumns; track trackByAutoColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"i > (autoRenderColumns?.length - endStickyColumnCount)\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px;\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell mat-sort-header *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n \n\n @if(column.type == 'date'){\n <td mat-cell *matCellDef=\"let element\" class=\"1al-{{column.align}} 1ty-{{column.type}}\" >\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time-with-seconds'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else {\n <td mat-cell *matCellDef=\"let element\" class=\"3al-{{column.align}} 3ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" [class]=\"cx('a')\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </a>\n } @else {\n <p [class]=\"column.clickFn ? cx('a') : null\" (click)=\"column?.clickFn?.(element, $event)\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </p>\n }\n </td>\n }\n </ng-container>\n\n }\n\n\n @for(column of templateRenderColumns; track trackByTemplateColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"l\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px; cursor: pointer;\" (click)=\"expandAllRow()\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" class=\"4al-{{column.align}} 4ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n <ng-container *ngIf=\"column.template as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colDef: column, colData: element }\"></ng-container>\n </ng-container>\n </td>\n </ng-container>\n }\n\n <!--Drag Column Def Start-->\n <ng-container [matColumnDef]=\"'drag'\" >\n <th mat-header-cell *matHeaderCellDef>\n --\n </th>\n <td mat-cell *matCellDef=\"let element\" class=\"5al-drag 5ty-drag\">\n <mat-icon cdkDragHandle [class]=\"cx('curser-pointer')\" style=\"color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n </td>\n </ng-container>\n <!--Drag Column Def End-->\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\" [style.border-bottom-width]=\"isRowExpanded(element) ? '1px' : '0px'\" style=\"padding: 0px !important;\">\n <div class=\"stv-element-detail-wrapper\" [class.stv-element-detail-wrapper-expanded]=\"isRowExpanded(element)\">\n <ng-container *ngIf=\"expandedTemplate as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n <div [class]=\"cx('data-not-found')\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 [class]=\"cx('h5')\">{{dataNotFoundConfig.title}}</h5>\n </div>\n </td>\n </tr>\n\n <!-- Apply Drag and Drop to tbody -->\n @if(enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [ngClass]=\"isExpandedRow ? cx('curser-pointer') : null\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\" cdkDrag></tr>\n }\n\n @if(!enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [ngClass]=\"isExpandedRow ? cx('curser-pointer') : null\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\"></tr>\n } \n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"stv-detail-row\"></tr>\n </table>\n <!--Table End-->\n }\n @else {\n <!-- Mobile Card View -->\n @if (dataSource?.apiSubject | async; as rows) {\n <table [class]=\"cxMany('table', 'mobile-responsive-table', disableBorderedView == false && 'table-bordered') + (disableBorderedView == false ? ' stv-table-bordered' : '')\">\n <tbody>\n @for (element of rows; track trackByTableRow($index, element)) {\n <tr [ngStyle]=\"{'background-color': getRowBackground(element) || 'inherit'}\" [ngClass]=\"isExpandedRowForMobileResponsive ? cx('curser-pointer') : null\" (click)=\"(isExpansionForMobileResponsive && isExpandedRowForMobileResponsive) ? toggleExpandForMobileResponsive(element) : null\">\n <td>\n <div class=\"stv-table-responsive-table-wrapper\">\n <div class=\"stv-table-responsive-table-header-wrapper\">\n @if (enableRowsSelection) {\n <div class=\"stv-table-responsive-table-header-wrapper-item\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, element) : null\" [checked]=\"isChecked(element) || hasSelectedAllRows\"></mat-checkbox>\n </div>\n }\n <div class=\"stv-table-responsive-table-header-wrapper-item\" style=\"flex: 1 1 0%;\">\n <ng-container *ngIf=\"headerTemplateForEachRowForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"stv-table-responsive-table-content-wrapper\" [class.stv-table-responsive-table-content-wrapper-expanded]=\"isRowExpandedForMobileResponsive(element)\">\n <ng-container *ngIf=\"expandedTemplateForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n\n </div>\n @if(loaderPosition == 'bottom'){\n @if(dataSource?.loading$ | async){\n <div [class]=\"cxMany('d-flex', 'justify-content-center') + ' py-2'\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n @if (!hidePaginator) {\n <div [class]=\"cx('table-paginator')\">\n <mat-paginator [length]=\"dataSource?.totalDataLength?.value\" [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </div>\n }\n </div>\n </div>\n } @else {\n\n @if(dataNotFoundConfig) {\n <div [class]=\"cx('data-not-found')\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 [class]=\"cx('h5')\">{{dataNotFoundConfig.title}}</h5>\n @if(dataNotFoundConfig.desc) {\n <p [class]=\"cx('p')\">{{dataNotFoundConfig.desc}}</p>\n }\n @if((dataNotFoundConfig.btnUrl || dataNotFoundConfig?.btnClick) && dataNotFoundConfig.btnText) {\n <button mat-flat-button color=\"primary\" [class]=\"cx('text-upper')\"\n (click)=\"handleButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.btnText}}\n </button>\n }\n @if((dataNotFoundConfig.secondBtnUrl || dataNotFoundConfig?.secondBtnClick) && dataNotFoundConfig.secondBtnText) {\n <button mat-stroked-button color=\"primary\" [class]=\"cx('text-upper')\"\n (click)=\"handleSecondButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.secondBtnText}}\n </button>\n }\n </div>\n }\n\n }\n\n }\n\n </div>\n </div>\n</section>\n", styles: ["::ng-deep .sub-main-content{border:0px solid #f00;margin-top:56px;height:calc(100% - 56px);padding:15px;overflow:auto}.header-title{margin-top:8px;padding:7px 10px;color:#969a9c}.header-title h3{font-size:20px!important;font-weight:700}.header-menu{border:0px solid red;background:#fff;margin-top:1px;margin-bottom:0}.w-100{width:100%}.mat-mdc-table-sticky-border-elem-right{border-left:1px solid #e0e0e087}.mat-mdc-table-sticky-border-elem-left{border-right:1px solid #e0e0e087}.search-mat-form-field{width:100%}.filter-applied-section{overflow:auto}.stv-detail-row{height:0!important}.stv-element-detail-wrapper{overflow:hidden;max-height:0;transition:max-height 225ms ease}.stv-element-detail-wrapper-expanded{max-height:500px}.stv-table-bordered{border-collapse:collapse;width:100%}.stv-table-bordered th,.stv-table-bordered td{border-left:1px solid #e0e0e0}.stv-table-bordered th:first-child,.stv-table-bordered td:first-child{border-left:0px solid #e0e0e0}.stv-table-bordered .bg-unset{background-color:unset!important}.stv-table-responsive-table-wrapper{width:100%;display:flex;flex-direction:column}.stv-table-responsive-table-header-wrapper{width:100%;display:flex;flex-direction:row;gap:10px;align-items:center}.stv-table-responsive-table-content-wrapper{width:100%}@media (max-width: 575.98px){.search-mat-form-field{width:100%!important}}@media (min-width: 576px) and (max-width: 767.98px){.search-mat-form-field{width:100%!important}}\n"] }]
|
|
2890
|
-
}], ctorParameters: () => [{ type: i1$1.MatDialog }, { type: ApiService }, { type: i3$1.ActivatedRoute }, { type: i3$1.Router }, { type: i4.Location }, { type: i5.BreakpointObserver }, { type: i0.ChangeDetectorRef }], propDecorators: {
|
|
2891
|
-
type: Input
|
|
2892
|
-
}], columnCustomizationUrlConfig: [{
|
|
2840
|
+
args: [{ selector: 'tis-smart-table-viewer', standalone: false, providers: [CdkColumnDef], template: "<section [class.tis-page]=\"!hideHeader\">\n <div class=\"tis-page-header\" *ngIf=\"!hideHeader\">\n <nav aria-label=\"tis-breadcrumb\">\n <ol class=\"tis-breadcrumb\">\n <li class=\"tis-breadcrumb-item\"><a href=\"javascript:;\" [routerLink]=\"homeUrl\">{{t?.home}}</a></li>\n @for(breadcrumb of breadcrumbs; track trackByBreadcrumb($index, breadcrumb)) {\n <li class=\"tis-breadcrumb-item\" *ngIf=\"breadcrumb?.url\">\n <a href=\"javascript:;\" (click)=\"goToUrl(breadcrumb.url)\">{{breadcrumb?.name}}</a>\n </li>\n }\n <li class=\"tis-breadcrumb-item active\">\n {{mainTitle}}\n </li>\n </ol>\n </nav>\n <ng-content select=\"[slot='top-buttons-section']\"></ng-content>\n </div>\n <h1 class=\"tis-page-title\" *ngIf=\"!hideHeader\">{{mainTitle}}</h1>\n <div class=\"tis-page-body\">\n <div class=\"tis-page-body-content\">\n\n @if(initialLoading){\n <div class=\"tis-d-flex tis-justify-content-center pb-2 pt-7\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"60\"></mat-progress-spinner>\n </div>\n } @else {\n\n @if ((dataSource?.totalDataLength$ | async) || (dataSource?.loading$ | async) || search ||\n filterHasNonEmptyValue || showFilterButtonSection || displayAfterFilterRemoved) {\n <div class=\"tis-table-container\">\n @if(!hideTableHeader){\n <div class=\"tis-table-container-header\">\n <ul class=\"tis-inline-group\">\n <li class=\"tis-inline-group-item\">\n <tis-columns-btn [columnCustomizationUrlConfig]=\"columnCustomizationUrlConfig\" [t]=\"t\"\n [componentName]=\"componentName\" [(selectedTemplate)]=\"selectedTemplate\" [defaultColumns]=\"defaultColumns\" [columns]=\"columns\"\n (selectedTemplateChange)=\"onSetSelectedTemplate($event)\"\n (displayedColumnsChange)=\"onChangeDisplayColumns($event)\"\n (fromStartColumnNumberChange)=\"onChangeFromStartColumnNumber($event)\"\n (fromEndColumnNumberChange)=\"onChangeFromEndColumnNumber($event)\"></tis-columns-btn>\n </li>\n <ng-content select=\"[slot='filter-button-section']\"></ng-content>\n </ul>\n <div class=\"flex items-center\">\n <ul class=\"tis-inline-group\">\n <ng-content select=\"[slot='filter-right-button-section']\"></ng-content>\n </ul>\n @if((!isMobile || !isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n class=\"custom-mat-form-field-mb-0 search-mat-form-field ml-3 tis-table-search-field\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span class=\"material-icons mr-2 tis-curser-pointer\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n </div>\n </div>\n }\n\n @if (filterFormGroup) {\n\n <ng-content select=\"[slot='filter-form-section']\"></ng-content>\n\n @if(finalSelectedFilterValuesToDisplay.length && filterApplied) {\n <div class=\"flex gap-3 mb-3 filter-applied-section md-hide-scrollbar\">\n @for(v of finalSelectedFilterValuesToDisplay; track trackByFilterValue($index, v)) {\n @if (v) {\n <span class=\"tis-filter-badge\" style=\"white-space: nowrap;\">\n @if(v.labelKey && v.labelKey != '' && (v.valueKey || v.value)) {\n <span class=\"font-semibold\"> {{v.labelKey }} </span>\n }\n @if(v.valueKey) {\n {{v.valueKey }}\n } @else {\n {{v.value }}\n }\n <span class=\"material-icons tis-curser-pointer\"\n (click)=\"removeParticularFilter(v)\">cancel</span>\n </span>\n }\n }\n </div>\n }\n }\n\n @if((isMobile && isSearchFieldMobileResponsive) && searchPlaceholder && searchPlaceholder != ''){\n <mat-form-field\n class=\"custom-mat-form-field-mb-0 search-mat-form-field mb-3 tis-table-search-field\"\n appearance=\"outline\">\n <span class=\"material-icons\" matPrefix>search</span>\n <input matInput [formControl]=\"searchCtrl\" [placeholder]=\"searchPlaceholder\">\n <span class=\"material-icons mr-2 tis-curser-pointer\" matSuffix\n (click)=\"searchCtrl.setValue('')\"\n *ngIf=\"searchCtrl.value && searchCtrl.value != ''\">close</span>\n </mat-form-field>\n }\n\n \n @if(loaderPosition == 'top'){\n @if(dataSource?.loading$ | async){\n <div class=\"tis-d-flex tis-justify-content-center py-2\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n <div class=\"tis-table-container-body\">\n <div class=\"tis-table-wrapper\" [appScrolling]=\"true\">\n\n @if ( isMobileResponsiveTable == false || (isMobileResponsiveTable == true && isMobile == false)) {\n <!--Table Here-->\n <table mat-table matSort [dataSource]=\"dataSource\" class=\"tis-table\" [class.tis-table-bordered]=\"disableBorderedView == false\" cdkDropList (cdkDropListDropped)=\"drop($event)\" [cdkDropListLockAxis]=\"'y'\" multiTemplateDataRows>\n\n @if (enableRowsSelection) {\n <ng-container matColumnDef=\"Select\">\n <th mat-header-cell *matHeaderCellDef>\n @if (enableAllRowsSelection) {\n <mat-checkbox color=\"primary\" (change)=\"$event ? toggleAllRows() : null\"\n [checked]=\"isAllRowsSelected || hasSelectedAllRows\"\n [indeterminate]=\"selection.hasValue() && !isAllRowsSelected\">\n </mat-checkbox>\n }\n </th>\n <td mat-cell *matCellDef=\"let row\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, row) : null\" [checked]=\"isChecked(row) || hasSelectedAllRows\"></mat-checkbox>\n </td>\n </ng-container>\n }\n\n @for(column of autoRenderColumns; track trackByAutoColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"i > (autoRenderColumns?.length - endStickyColumnCount)\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px;\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell mat-sort-header *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n \n\n @if(column.type == 'date'){\n <td mat-cell *matCellDef=\"let element\" class=\"1al-{{column.align}} 1ty-{{column.type}}\" >\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDate : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTime : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else if(column.type == 'date-time-with-seconds'){\n <td mat-cell *matCellDef=\"let element\" class=\"2al-{{column.align}} 2ty-{{column.type}}\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | tisDateTimeWithSeconds : getColumnFormat(column.type)) : ''}}\n </p>\n }\n </td>\n } @else {\n <td mat-cell *matCellDef=\"let element\" class=\"3al-{{column.align}} 3ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n @if(column.linkFn) {\n <a [routerLink]=\"column.linkFn(element)\" class=\"tis-a\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </a>\n } @else {\n <p [class.tis-a]=\"column.clickFn\" (click)=\"column?.clickFn?.(element, $event)\">\n @if (column.type == 'quantity') {\n {{ column.valueKey ? (getNestedValue(element, column.valueKey) | number : (getColumnFormat(column.type) || '1.4-4')) : '-' }}\n } @else if (column.type == 'money') {\n {{ column.valueKey && (getNestedValue(element, column.valueKey)) | tisCurrency : getColumnFormat(column.type) }}\n } @else {\n {{ column.valueKey && getNestedValue(element, column.valueKey) }}\n }\n </p>\n }\n </td>\n }\n </ng-container>\n\n }\n\n\n @for(column of templateRenderColumns; track trackByTemplateColumn($index, column); let i = $index; let l = $last){\n <!-- [sticky]=\"i < startStickyColumnCount\" [stickyEnd]=\"l\" -->\n <ng-container [matColumnDef]=\"column?.columnDef || column.name\" [sticky]=\"isStickyStart(column?.columnDef || column.name)\" [stickyEnd]=\"isStickyEnd(column?.columnDef || column.name)\">\n @if(column.type == 'expand') {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n <div style=\"display: flex; align-items: center; gap: 5px; cursor: pointer;\" (click)=\"expandAllRow()\">\n <span>{{ column?.columnName ? column?.columnName : t[column.name] }}</span>\n <mat-icon *ngIf=\"!isAllExpanded\">expand_more</mat-icon>\n <mat-icon *ngIf=\"isAllExpanded\">expand_less</mat-icon>\n </div>\n </th>\n }\n @else if(column.sort) {\n <th mat-header-cell *matHeaderCellDef mat-sort-header [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n @else {\n <th mat-header-cell *matHeaderCellDef [ngClass]=\"getColumnClasses(column)\">\n {{ column?.columnName ? column?.columnName : t[column.name] }}\n </th>\n }\n <td mat-cell *matCellDef=\"let element\" class=\"4al-{{column.align}} 4ty-{{column.type}}\" [ngClass]=\"getColumnClasses(column)\">\n <ng-container *ngIf=\"column.template as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colDef: column, colData: element }\"></ng-container>\n </ng-container>\n </td>\n </ng-container>\n }\n\n <!--Drag Column Def Start-->\n <ng-container [matColumnDef]=\"'drag'\" >\n <th mat-header-cell *matHeaderCellDef>\n --\n </th>\n <td mat-cell *matCellDef=\"let element\" class=\"5al-drag 5ty-drag\">\n <mat-icon cdkDragHandle class=\"tis-curser-pointer\" style=\"color: rgba(0, 0, 0, 0.54); font-size: 19px; width: 19px; height: 19px;\">drag_indicator</mat-icon>\n </td>\n </ng-container>\n <!--Drag Column Def End-->\n\n <!-- Expanded Content Column - The detail row is made up of this one column that spans across all columns -->\n <ng-container matColumnDef=\"expandedDetail\">\n <td mat-cell *matCellDef=\"let element\" [attr.colspan]=\"displayedColumns.length\" [style.border-bottom-width]=\"isRowExpanded(element) ? '1px' : '0px'\" style=\"padding: 0px !important;\">\n <div class=\"tis-element-detail-wrapper\" [class.tis-element-detail-wrapper-expanded]=\"isRowExpanded(element)\">\n <ng-container *ngIf=\"expandedTemplate as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </td>\n </ng-container>\n\n\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" [attr.colspan]=\"displayedColumns.length\">\n <div class=\"tis-data-not-found\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 class=\"tis-h5\">{{dataNotFoundConfig.title}}</h5>\n </div>\n </td>\n </tr>\n\n <!-- Apply Drag and Drop to tbody -->\n @if(enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRow\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\" cdkDrag></tr>\n }\n\n @if(!enableDragNDrop) {\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns\" [ngStyle]=\"{'background-color': getRowBackground(row) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRow\" (click)=\"(isExpansion && isExpandedRow) ? toggleExpand(row) : null\"></tr>\n } \n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: ['expandedDetail']\" class=\"tis-detail-row\"></tr>\n </table>\n <!--Table End-->\n }\n @else {\n <!-- Mobile Card View -->\n @if (dataSource?.apiSubject | async; as rows) {\n <table class=\"tis-table tis-mobile-responsive-table\" [class.tis-table-bordered]=\"disableBorderedView == false\">\n <tbody>\n @for (element of rows; track trackByTableRow($index, element)) {\n <tr [ngStyle]=\"{'background-color': getRowBackground(element) || 'inherit'}\" [class.tis-curser-pointer]=\"isExpandedRowForMobileResponsive\" (click)=\"(isExpansionForMobileResponsive && isExpandedRowForMobileResponsive) ? toggleExpandForMobileResponsive(element) : null\">\n <td>\n <div class=\"tis-table-responsive-table-wrapper\">\n <div class=\"tis-table-responsive-table-header-wrapper\">\n @if (enableRowsSelection) {\n <div class=\"tis-table-responsive-table-header-wrapper-item\">\n <mat-checkbox color=\"primary\" (click)=\"stopPropagation($event)\" (change)=\"$event ? toggleSelection($event, element) : null\" [checked]=\"isChecked(element) || hasSelectedAllRows\"></mat-checkbox>\n </div>\n }\n <div class=\"tis-table-responsive-table-header-wrapper-item\" style=\"flex: 1 1 0%;\">\n <ng-container *ngIf=\"headerTemplateForEachRowForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n <div class=\"tis-table-responsive-table-content-wrapper\" [class.tis-table-responsive-table-content-wrapper-expanded]=\"isRowExpandedForMobileResponsive(element)\">\n <ng-container *ngIf=\"expandedTemplateForMobileResponsive as template\">\n <ng-container *ngTemplateOutlet=\"template; context: { colData: element }\"></ng-container>\n </ng-container>\n </div>\n </div>\n </td>\n </tr>\n }\n </tbody>\n </table>\n }\n }\n\n </div>\n @if(loaderPosition == 'bottom'){\n @if(dataSource?.loading$ | async){\n <div class=\"tis-d-flex tis-justify-content-center py-2\">\n <mat-progress-spinner color=\"primary\" mode=\"indeterminate\" [diameter]=\"loadingSpinnerDiameter\"></mat-progress-spinner>\n </div>\n }\n }\n @if (!hidePaginator) {\n <div class=\"tis-table-paginator\">\n <mat-paginator [length]=\"dataSource?.totalDataLength?.value\" [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\" showFirstLastButtons></mat-paginator>\n </div>\n }\n </div>\n </div>\n } @else {\n\n @if(dataNotFoundConfig) {\n <div class=\"tis-data-not-found\">\n @if(dataNotFoundConfig.iconUrl) {\n <img [src]=\"dataNotFoundConfig.iconUrl\" alt=\"No data found\" />\n } @else {\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"130\" height=\"126.89\" viewBox=\"0 0 647.63626 632.17383\" xmlns:xlink=\"http://www.w3.org/1999/xlink\" role=\"img\" artist=\"Katerina Limpitsouni\" source=\"https://undraw.co/\">\n <path d=\"M687.3279,276.08691H512.81813a15.01828,15.01828,0,0,0-15,15v387.85l-2,.61005-42.81006,13.11a8.00676,8.00676,0,0,1-9.98974-5.31L315.678,271.39691a8.00313,8.00313,0,0,1,5.31006-9.99l65.97022-20.2,191.25-58.54,65.96972-20.2a7.98927,7.98927,0,0,1,9.99024,5.3l32.5498,106.32Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#f2f2f2\"/>\n <path d=\"M725.408,274.08691l-39.23-128.14a16.99368,16.99368,0,0,0-21.23-11.28l-92.75,28.39L380.95827,221.60693l-92.75,28.4a17.0152,17.0152,0,0,0-11.28028,21.23l134.08008,437.93a17.02661,17.02661,0,0,0,16.26026,12.03,16.78926,16.78926,0,0,0,4.96972-.75l63.58008-19.46,2-.62v-2.09l-2,.61-64.16992,19.65a15.01489,15.01489,0,0,1-18.73-9.95l-134.06983-437.94a14.97935,14.97935,0,0,1,9.94971-18.73l92.75-28.4,191.24024-58.54,92.75-28.4a15.15551,15.15551,0,0,1,4.40966-.66,15.01461,15.01461,0,0,1,14.32032,10.61l39.0498,127.56.62012,2h2.08008Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M398.86279,261.73389a9.0157,9.0157,0,0,1-8.61133-6.3667l-12.88037-42.07178a8.99884,8.99884,0,0,1,5.9712-11.24023l175.939-53.86377a9.00867,9.00867,0,0,1,11.24072,5.9707l12.88037,42.07227a9.01029,9.01029,0,0,1-5.9707,11.24072L401.49219,261.33887A8.976,8.976,0,0,1,398.86279,261.73389Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"190.15351\" cy=\"24.95465\" r=\"12.66462\" fill=\"#fff\"/>\n <path d=\"M878.81836,716.08691h-338a8.50981,8.50981,0,0,1-8.5-8.5v-405a8.50951,8.50951,0,0,1,8.5-8.5h338a8.50982,8.50982,0,0,1,8.5,8.5v405A8.51013,8.51013,0,0,1,878.81836,716.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#e6e6e6\"/>\n <path d=\"M723.31813,274.08691h-210.5a17.02411,17.02411,0,0,0-17,17v407.8l2-.61v-407.19a15.01828,15.01828,0,0,1,15-15H723.93825Zm183.5,0h-394a17.02411,17.02411,0,0,0-17,17v458a17.0241,17.0241,0,0,0,17,17h394a17.0241,17.0241,0,0,0,17-17v-458A17.02411,17.02411,0,0,0,906.81813,274.08691Zm15,475a15.01828,15.01828,0,0,1-15,15h-394a15.01828,15.01828,0,0,1-15-15v-458a15.01828,15.01828,0,0,1,15-15h394a15.01828,15.01828,0,0,1,15,15Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"#3f3d56\"/>\n <path d=\"M801.81836,318.08691h-184a9.01015,9.01015,0,0,1-9-9v-44a9.01016,9.01016,0,0,1,9-9h184a9.01016,9.01016,0,0,1,9,9v44A9.01015,9.01015,0,0,1,801.81836,318.08691Z\" transform=\"translate(-276.18187 -133.91309)\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"20\" fill=\"var(--tis-primary, var(--mat-sys-primary, #3838a2))\"/>\n <circle cx=\"433.63626\" cy=\"105.17383\" r=\"12.18187\" fill=\"#fff\"/>\n </svg>\n }\n <h5 class=\"tis-h5\">{{dataNotFoundConfig.title}}</h5>\n @if(dataNotFoundConfig.desc) {\n <p class=\"tis-p\">{{dataNotFoundConfig.desc}}</p>\n }\n @if((dataNotFoundConfig.btnUrl || dataNotFoundConfig?.btnClick) && dataNotFoundConfig.btnText) {\n <button mat-flat-button color=\"primary\" class=\"tis-text-upper\"\n (click)=\"handleButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.btnText}}\n </button>\n }\n @if((dataNotFoundConfig.secondBtnUrl || dataNotFoundConfig?.secondBtnClick) && dataNotFoundConfig.secondBtnText) {\n <button mat-stroked-button color=\"primary\" class=\"tis-text-upper\"\n (click)=\"handleSecondButtonClick(dataNotFoundConfig)\">\n <mat-icon>add</mat-icon>\n {{dataNotFoundConfig.secondBtnText}}\n </button>\n }\n </div>\n }\n\n }\n\n }\n\n </div>\n </div>\n</section>", styles: ["::ng-deep .sub-main-content{border:0px solid #f00;margin-top:56px;height:calc(100% - 56px);padding:15px;overflow:auto}.header-title{margin-top:8px;padding:7px 10px;color:#969a9c}.header-title h3{font-size:20px!important;font-weight:700}.header-menu{border:0px solid red;background:#fff;margin-top:1px;margin-bottom:0}.w-100{width:100%}.mat-mdc-table-sticky-border-elem-right{border-left:1px solid #e0e0e087}.mat-mdc-table-sticky-border-elem-left{border-right:1px solid #e0e0e087}.search-mat-form-field{width:100%}.filter-applied-section{overflow:auto}.tis-detail-row{height:0!important}.tis-element-detail-wrapper{overflow:hidden;max-height:0;transition:max-height 225ms ease}.tis-element-detail-wrapper-expanded{max-height:500px}.tis-table-bordered{border-collapse:collapse;width:100%}.tis-table-bordered th,.tis-table-bordered td{border-left:1px solid #e0e0e0}.tis-table-bordered th:first-child,.tis-table-bordered td:first-child{border-left:0px solid #e0e0e0}.tis-table-bordered .bg-unset{background-color:unset!important}.tis-table-responsive-table-wrapper{width:100%;display:flex;flex-direction:column}.tis-table-responsive-table-header-wrapper{width:100%;display:flex;flex-direction:row;gap:10px;align-items:center}.tis-table-responsive-table-content-wrapper{width:100%}@media (max-width: 575.98px){.search-mat-form-field{width:100%!important}}@media (min-width: 576px) and (max-width: 767.98px){.search-mat-form-field{width:100%!important}}\n"] }]
|
|
2841
|
+
}], ctorParameters: () => [{ type: i1$1.MatDialog }, { type: ApiService }, { type: i3$1.ActivatedRoute }, { type: i3$1.Router }, { type: i4.Location }, { type: i5.BreakpointObserver }, { type: i0.ChangeDetectorRef }], propDecorators: { columnCustomizationUrlConfig: [{
|
|
2893
2842
|
type: Input,
|
|
2894
2843
|
args: [{ required: true }]
|
|
2895
2844
|
}], t: [{
|