master-control 0.2.51 → 0.2.52

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.
@@ -22,6 +22,7 @@ export class TableComponent {
22
22
  pageNumber = 0;
23
23
  pageSize = 10;
24
24
  actionItemClicked = new EventEmitter();
25
+ tablePaginationClicked = new EventEmitter();
25
26
  constructor(masterControlService) {
26
27
  this.masterControlService = masterControlService;
27
28
  }
@@ -79,9 +80,9 @@ export class TableComponent {
79
80
  this.closeActionsPopup();
80
81
  }
81
82
  pageChanged(event) {
82
- this.pageNumber = event.pageIndex;
83
- this.pageSize = event.pageSize;
84
- console.log(this.pageNumber, this.pageSize);
83
+ this.field().tableData.pageNumber = event.pageIndex;
84
+ this.field().tableData.pageSize = event.pageSize;
85
+ this.tablePaginationClicked.emit(this.field().tableData);
85
86
  }
86
87
  actionClicked(actionSelected, actionIndex) {
87
88
  this.field()?.tableData?.userSelectedOptions[this.selectedRow]?.forEach((checkIcon, selectedIndex) => {
@@ -97,15 +98,17 @@ export class TableComponent {
97
98
  this.actionItemClicked.emit(emitOBJ);
98
99
  }
99
100
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
100
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: TableComponent, isStandalone: true, selector: "lib-table", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionItemClicked: "actionItemClicked" }, host: { listeners: { "document:keydown.escape": "onEscKey($event)" } }, ngImport: i0, template: "<div class=\"styled-table-container\">\r\n <table *ngIf=\"field()?.tableData?.columnlength && field()?.tableData?.rowlength\" class=\"styled-table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"field()?.tableData?.showCheckBox\"></th>\r\n <th *ngFor=\"let header of field().tableData?.tableHeaders; let i = index; trackBy: trackByIndex\">\r\n <ng-container *ngIf=\"!readonly(); else headerText\">{{header.columnName}}\r\n <!-- <input type=\"text\" [(ngModel)]=\"header.columnName\" (ngModelChange)=\"renameHeader(i, $event)\"\r\n [disabled]=\"readonly()\" class=\"custom_input\" [matTooltip]=\"header.toolTip\" matTooltipPosition=\"above\"> -->\r\n </ng-container>\r\n <ng-template #headerText>{{ header?.columnName }}</ng-template>\r\n </th>\r\n <th *ngIf=\"field()?.tableData?.showActions\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of field()?.tableData?.tdData;let rowIndex = index\">\r\n <td *ngIf=\"field()?.tableData?.showCheckBox\"><input type=\"checkbox\"></td>\r\n <td *ngFor=\"let cell of row\">{{ cell }}</td>\r\n <td *ngIf=\"field()?.tableData?.showActions\">\r\n <button class=\"action-btn\" (click)=\"openActionsPopup($event, rowIndex)\" [disabled]=\"readonly()\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <mat-paginator class=\"custom-paginator\" [length]=\"field()?.tableData?.tdData?.length\" [pageSize]=\"paginationSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" (page)=\"pageChanged($event)\" aria-label=\"Select page\">\r\n </mat-paginator>\r\n</div>\r\n\r\n<div *ngIf=\"showActionsPopup\" class=\"actions-popup-backdrop\" (click)=\"closeActionsPopup()\">\r\n <div class=\"actions-popup-menu\" [ngStyle]=\"{'top.px': popupPosition.top, 'left.px': popupPosition.left}\"\r\n (click)=\"$event.stopPropagation()\">\r\n <div class=\"makeArrow\" [ngStyle]=\"{'left.px': popupPosition.left+25}\"></div>\r\n <ul>\r\n <li *ngFor=\"let actionData of field().tableData?.userSelectedOptions[selectedRow];let actionIndex = index\"\r\n [matTooltip]=\"actionData?.displayTitle\" matTooltipPosition=\"above\"\r\n (click)=\"actionClicked(actionData,actionIndex)\">\r\n <mat-icon>{{actionData?.matIconName}}</mat-icon>\r\n {{actionData?.displayTitle}}\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".styled-table{width:100%;margin:16px 0;font-size:1em;box-shadow:0 0 8px #0000001a}*{font-family:mulish!important}.styled-table th,.styled-table td{border:none;padding:8px 12px;text-align:left}.styled-table thead tr{background-color:#444;color:#fff}.styled-table tbody tr:nth-child(2n){background-color:#f3f3f3}.styled-table tbody tr:hover{background-color:#e0f7fa}.custom_input{width:100%;border:none;background:transparent;font-weight:700;color:#fff}.styled-table th:first-child{border-top-left-radius:8px}.styled-table th:last-child{border-top-right-radius:8px}.popup-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.action-btn{background:none;border:none;cursor:pointer;padding:0}.actions-popup-backdrop{position:fixed;inset:0;background:transparent;z-index:1000}.actions-popup-menu{position:absolute;min-width:260px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000002e;padding:0;z-index:1001;color:#333;font-family:inherit;border:1px solid #DDDDDD}.actions-popup-menu ul{list-style:none;margin:0;padding:0 0 8px}.actions-popup-menu li{display:flex;align-items:center;padding:10px 20px;cursor:pointer;font-size:15px;transition:background .2s;border-bottom:1px dashed #DADADA}.actions-popup-menu li mat-icon{margin-right:12px;font-size:20px}.actions-popup-menu li.selected,.actions-popup-menu li:hover{background:#fff6d1;color:#222}.styled-table-container{max-width:100%;overflow-x:auto;max-height:400px;overflow-y:auto}.makeArrow{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:16px solid #fff;border-right:none;position:absolute;top:10px}:host ::ng-deep .custom-paginator .mdc-text-field--outlined .mdc-notched-outline{display:none!important}.material-icons{font-family:Material Icons!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] });
101
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: TableComponent, isStandalone: true, selector: "lib-table", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, readonly: { classPropertyName: "readonly", publicName: "readonly", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { actionItemClicked: "actionItemClicked", tablePaginationClicked: "tablePaginationClicked" }, host: { listeners: { "document:keydown.escape": "onEscKey($event)" } }, ngImport: i0, template: "<div class=\"styled-table-container\">\r\n <table *ngIf=\"field()?.tableData?.columnlength && field()?.tableData?.rowlength\" class=\"styled-table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"field()?.tableData?.showCheckBox\"></th>\r\n <th *ngFor=\"let header of field().tableData?.tableHeaders; let i = index; trackBy: trackByIndex\">\r\n <ng-container *ngIf=\"!readonly(); else headerText\">{{header.columnName}}\r\n <!-- <input type=\"text\" [(ngModel)]=\"header.columnName\" (ngModelChange)=\"renameHeader(i, $event)\"\r\n [disabled]=\"readonly()\" class=\"custom_input\" [matTooltip]=\"header.toolTip\" matTooltipPosition=\"above\"> -->\r\n </ng-container>\r\n <ng-template #headerText>{{ header?.columnName }}</ng-template>\r\n </th>\r\n <th *ngIf=\"field()?.tableData?.showActions\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of field()?.tableData?.tdData;let rowIndex = index\">\r\n <td *ngIf=\"field()?.tableData?.showCheckBox\"><input type=\"checkbox\"></td>\r\n <td *ngFor=\"let cell of row\">{{ cell }}</td>\r\n <td *ngIf=\"field()?.tableData?.showActions\">\r\n <button class=\"action-btn\" (click)=\"openActionsPopup($event, rowIndex)\" [disabled]=\"readonly()\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <mat-paginator class=\"custom-paginator\" [length]=\"field()?.tableData?.totalItems\" [pageSize]=\"field()?.tableData?.paginationSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" (page)=\"pageChanged($event)\" aria-label=\"Select page\">\r\n </mat-paginator>\r\n</div>\r\n\r\n<div *ngIf=\"showActionsPopup\" class=\"actions-popup-backdrop\" (click)=\"closeActionsPopup()\">\r\n <div class=\"actions-popup-menu\" [ngStyle]=\"{'top.px': popupPosition.top, 'left.px': popupPosition.left}\"\r\n (click)=\"$event.stopPropagation()\">\r\n <div class=\"makeArrow\" [ngStyle]=\"{'left.px': popupPosition.left+25}\"></div>\r\n <ul>\r\n <li *ngFor=\"let actionData of field().tableData?.userSelectedOptions[selectedRow];let actionIndex = index\"\r\n [matTooltip]=\"actionData?.displayTitle\" matTooltipPosition=\"above\"\r\n (click)=\"actionClicked(actionData,actionIndex)\">\r\n <mat-icon>{{actionData?.matIconName}}</mat-icon>\r\n {{actionData?.displayTitle}}\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".styled-table{width:100%;margin:16px 0;font-size:1em;box-shadow:0 0 8px #0000001a}*{font-family:mulish!important}.styled-table th,.styled-table td{border:none;padding:8px 12px;text-align:left}.styled-table thead tr{background-color:#444;color:#fff}.styled-table tbody tr:nth-child(2n){background-color:#f3f3f3}.styled-table tbody tr:hover{background-color:#e0f7fa}.custom_input{width:100%;border:none;background:transparent;font-weight:700;color:#fff}.styled-table th:first-child{border-top-left-radius:8px}.styled-table th:last-child{border-top-right-radius:8px}.popup-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.action-btn{background:none;border:none;cursor:pointer;padding:0}.actions-popup-backdrop{position:fixed;inset:0;background:transparent;z-index:1000}.actions-popup-menu{position:absolute;min-width:260px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000002e;padding:0;z-index:1001;color:#333;font-family:inherit;border:1px solid #DDDDDD}.actions-popup-menu ul{list-style:none;margin:0;padding:0 0 8px}.actions-popup-menu li{display:flex;align-items:center;padding:10px 20px;cursor:pointer;font-size:15px;transition:background .2s;border-bottom:1px dashed #DADADA}.actions-popup-menu li mat-icon{margin-right:12px;font-size:20px}.actions-popup-menu li.selected,.actions-popup-menu li:hover{background:#fff6d1;color:#222}.styled-table-container{max-width:100%;overflow-x:auto;max-height:400px;overflow-y:auto}.makeArrow{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:16px solid #fff;border-right:none;position:absolute;top:10px}:host ::ng-deep .custom-paginator .mdc-text-field--outlined .mdc-notched-outline{display:none!important}.material-icons{font-family:Material Icons!important}\n"], dependencies: [{ kind: "directive", type: NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: NgFor, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: MatIconModule }, { kind: "component", type: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatPaginatorModule }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["color", "pageIndex", "length", "pageSize", "pageSizeOptions", "hidePageSize", "showFirstLastButtons", "selectConfig", "disabled"], outputs: ["page"], exportAs: ["matPaginator"] }] });
101
102
  }
102
103
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TableComponent, decorators: [{
103
104
  type: Component,
104
- args: [{ selector: 'lib-table', standalone: true, imports: [NgIf, NgFor, FormsModule, CommonModule, MatIconModule, MatTooltipModule, MatPaginatorModule], template: "<div class=\"styled-table-container\">\r\n <table *ngIf=\"field()?.tableData?.columnlength && field()?.tableData?.rowlength\" class=\"styled-table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"field()?.tableData?.showCheckBox\"></th>\r\n <th *ngFor=\"let header of field().tableData?.tableHeaders; let i = index; trackBy: trackByIndex\">\r\n <ng-container *ngIf=\"!readonly(); else headerText\">{{header.columnName}}\r\n <!-- <input type=\"text\" [(ngModel)]=\"header.columnName\" (ngModelChange)=\"renameHeader(i, $event)\"\r\n [disabled]=\"readonly()\" class=\"custom_input\" [matTooltip]=\"header.toolTip\" matTooltipPosition=\"above\"> -->\r\n </ng-container>\r\n <ng-template #headerText>{{ header?.columnName }}</ng-template>\r\n </th>\r\n <th *ngIf=\"field()?.tableData?.showActions\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of field()?.tableData?.tdData;let rowIndex = index\">\r\n <td *ngIf=\"field()?.tableData?.showCheckBox\"><input type=\"checkbox\"></td>\r\n <td *ngFor=\"let cell of row\">{{ cell }}</td>\r\n <td *ngIf=\"field()?.tableData?.showActions\">\r\n <button class=\"action-btn\" (click)=\"openActionsPopup($event, rowIndex)\" [disabled]=\"readonly()\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <mat-paginator class=\"custom-paginator\" [length]=\"field()?.tableData?.tdData?.length\" [pageSize]=\"paginationSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" (page)=\"pageChanged($event)\" aria-label=\"Select page\">\r\n </mat-paginator>\r\n</div>\r\n\r\n<div *ngIf=\"showActionsPopup\" class=\"actions-popup-backdrop\" (click)=\"closeActionsPopup()\">\r\n <div class=\"actions-popup-menu\" [ngStyle]=\"{'top.px': popupPosition.top, 'left.px': popupPosition.left}\"\r\n (click)=\"$event.stopPropagation()\">\r\n <div class=\"makeArrow\" [ngStyle]=\"{'left.px': popupPosition.left+25}\"></div>\r\n <ul>\r\n <li *ngFor=\"let actionData of field().tableData?.userSelectedOptions[selectedRow];let actionIndex = index\"\r\n [matTooltip]=\"actionData?.displayTitle\" matTooltipPosition=\"above\"\r\n (click)=\"actionClicked(actionData,actionIndex)\">\r\n <mat-icon>{{actionData?.matIconName}}</mat-icon>\r\n {{actionData?.displayTitle}}\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".styled-table{width:100%;margin:16px 0;font-size:1em;box-shadow:0 0 8px #0000001a}*{font-family:mulish!important}.styled-table th,.styled-table td{border:none;padding:8px 12px;text-align:left}.styled-table thead tr{background-color:#444;color:#fff}.styled-table tbody tr:nth-child(2n){background-color:#f3f3f3}.styled-table tbody tr:hover{background-color:#e0f7fa}.custom_input{width:100%;border:none;background:transparent;font-weight:700;color:#fff}.styled-table th:first-child{border-top-left-radius:8px}.styled-table th:last-child{border-top-right-radius:8px}.popup-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.action-btn{background:none;border:none;cursor:pointer;padding:0}.actions-popup-backdrop{position:fixed;inset:0;background:transparent;z-index:1000}.actions-popup-menu{position:absolute;min-width:260px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000002e;padding:0;z-index:1001;color:#333;font-family:inherit;border:1px solid #DDDDDD}.actions-popup-menu ul{list-style:none;margin:0;padding:0 0 8px}.actions-popup-menu li{display:flex;align-items:center;padding:10px 20px;cursor:pointer;font-size:15px;transition:background .2s;border-bottom:1px dashed #DADADA}.actions-popup-menu li mat-icon{margin-right:12px;font-size:20px}.actions-popup-menu li.selected,.actions-popup-menu li:hover{background:#fff6d1;color:#222}.styled-table-container{max-width:100%;overflow-x:auto;max-height:400px;overflow-y:auto}.makeArrow{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:16px solid #fff;border-right:none;position:absolute;top:10px}:host ::ng-deep .custom-paginator .mdc-text-field--outlined .mdc-notched-outline{display:none!important}.material-icons{font-family:Material Icons!important}\n"] }]
105
+ args: [{ selector: 'lib-table', standalone: true, imports: [NgIf, NgFor, FormsModule, CommonModule, MatIconModule, MatTooltipModule, MatPaginatorModule], template: "<div class=\"styled-table-container\">\r\n <table *ngIf=\"field()?.tableData?.columnlength && field()?.tableData?.rowlength\" class=\"styled-table\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"field()?.tableData?.showCheckBox\"></th>\r\n <th *ngFor=\"let header of field().tableData?.tableHeaders; let i = index; trackBy: trackByIndex\">\r\n <ng-container *ngIf=\"!readonly(); else headerText\">{{header.columnName}}\r\n <!-- <input type=\"text\" [(ngModel)]=\"header.columnName\" (ngModelChange)=\"renameHeader(i, $event)\"\r\n [disabled]=\"readonly()\" class=\"custom_input\" [matTooltip]=\"header.toolTip\" matTooltipPosition=\"above\"> -->\r\n </ng-container>\r\n <ng-template #headerText>{{ header?.columnName }}</ng-template>\r\n </th>\r\n <th *ngIf=\"field()?.tableData?.showActions\">Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let row of field()?.tableData?.tdData;let rowIndex = index\">\r\n <td *ngIf=\"field()?.tableData?.showCheckBox\"><input type=\"checkbox\"></td>\r\n <td *ngFor=\"let cell of row\">{{ cell }}</td>\r\n <td *ngIf=\"field()?.tableData?.showActions\">\r\n <button class=\"action-btn\" (click)=\"openActionsPopup($event, rowIndex)\" [disabled]=\"readonly()\">\r\n <mat-icon>more_vert</mat-icon>\r\n </button>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <mat-paginator class=\"custom-paginator\" [length]=\"field()?.tableData?.totalItems\" [pageSize]=\"field()?.tableData?.paginationSize\"\r\n [pageSizeOptions]=\"[5, 10, 25, 100]\" (page)=\"pageChanged($event)\" aria-label=\"Select page\">\r\n </mat-paginator>\r\n</div>\r\n\r\n<div *ngIf=\"showActionsPopup\" class=\"actions-popup-backdrop\" (click)=\"closeActionsPopup()\">\r\n <div class=\"actions-popup-menu\" [ngStyle]=\"{'top.px': popupPosition.top, 'left.px': popupPosition.left}\"\r\n (click)=\"$event.stopPropagation()\">\r\n <div class=\"makeArrow\" [ngStyle]=\"{'left.px': popupPosition.left+25}\"></div>\r\n <ul>\r\n <li *ngFor=\"let actionData of field().tableData?.userSelectedOptions[selectedRow];let actionIndex = index\"\r\n [matTooltip]=\"actionData?.displayTitle\" matTooltipPosition=\"above\"\r\n (click)=\"actionClicked(actionData,actionIndex)\">\r\n <mat-icon>{{actionData?.matIconName}}</mat-icon>\r\n {{actionData?.displayTitle}}\r\n </li>\r\n </ul>\r\n </div>\r\n</div>", styles: [".styled-table{width:100%;margin:16px 0;font-size:1em;box-shadow:0 0 8px #0000001a}*{font-family:mulish!important}.styled-table th,.styled-table td{border:none;padding:8px 12px;text-align:left}.styled-table thead tr{background-color:#444;color:#fff}.styled-table tbody tr:nth-child(2n){background-color:#f3f3f3}.styled-table tbody tr:hover{background-color:#e0f7fa}.custom_input{width:100%;border:none;background:transparent;font-weight:700;color:#fff}.styled-table th:first-child{border-top-left-radius:8px}.styled-table th:last-child{border-top-right-radius:8px}.popup-backdrop{position:fixed;top:0;left:0;width:100vw;height:100vh;background:#0000004d;display:flex;align-items:center;justify-content:center;z-index:1000}.action-btn{background:none;border:none;cursor:pointer;padding:0}.actions-popup-backdrop{position:fixed;inset:0;background:transparent;z-index:1000}.actions-popup-menu{position:absolute;min-width:260px;background:#fff;border-radius:12px;box-shadow:0 4px 24px #0000002e;padding:0;z-index:1001;color:#333;font-family:inherit;border:1px solid #DDDDDD}.actions-popup-menu ul{list-style:none;margin:0;padding:0 0 8px}.actions-popup-menu li{display:flex;align-items:center;padding:10px 20px;cursor:pointer;font-size:15px;transition:background .2s;border-bottom:1px dashed #DADADA}.actions-popup-menu li mat-icon{margin-right:12px;font-size:20px}.actions-popup-menu li.selected,.actions-popup-menu li:hover{background:#fff6d1;color:#222}.styled-table-container{max-width:100%;overflow-x:auto;max-height:400px;overflow-y:auto}.makeArrow{width:0;height:0;border-top:12px solid transparent;border-bottom:12px solid transparent;border-left:16px solid #fff;border-right:none;position:absolute;top:10px}:host ::ng-deep .custom-paginator .mdc-text-field--outlined .mdc-notched-outline{display:none!important}.material-icons{font-family:Material Icons!important}\n"] }]
105
106
  }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { actionItemClicked: [{
106
107
  type: Output
108
+ }], tablePaginationClicked: [{
109
+ type: Output
107
110
  }], onEscKey: [{
108
111
  type: HostListener,
109
112
  args: ['document:keydown.escape', ['$event']]
110
113
  }] } });
111
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLGNBQWM7SUFXTjtJQVZuQixLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLGFBQWEsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BDLFdBQVcsR0FBUSxDQUFDLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVEsQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsR0FBUSxFQUFF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RSxnQkFBZ0IsRUFBRSxrQkFBa0IsQ0FBQzt5RkFjNUYsaUJBQWlCO3NCQUExQixNQUFNO2dCQStEUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRQYWdpbmF0b3JNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuICByZWFkb25seSA9IGlucHV0KGZhbHNlKTtcclxuICBzaG93QWN0aW9uc1BvcHVwID0gZmFsc2U7XHJcbiAgcG9wdXBQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XHJcbiAgc2VsZWN0ZWRSb3c6IGFueSA9IDA7XHJcbiAgaGlnaGxpZ2h0ZWRJbmRleCA9IC0xO1xyXG4gIHBhZ2luYXRpb25TaXplOiBhbnkgPSAxMDtcclxuICBwYWdlTnVtYmVyOiBhbnkgPSAwO1xyXG4gIHBhZ2VTaXplOiBhbnkgPSAxMDtcclxuICBAT3V0cHV0KCkgYWN0aW9uSXRlbUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFzdGVyQ29udHJvbFNlcnZpY2U6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKSB7XHJcbiAgICB0aGlzLnNldENvbHVtbnMoKTtcclxuICB9XHJcbiAgdHJhY2tCeUluZGV4KGluZGV4OiBhbnksIGl0ZW06IGFueSkge1xyXG4gICAgcmV0dXJuIGluZGV4O1xyXG4gIH1cclxuXHJcbiAgc2V0Q29sdW1ucygpIHtcclxuICAgIGxldCBjaGVja0NvbmZpZ0RhdGEgPSB0aGlzLmZpZWxkKCkuY29uZmlnRGF0YTtcclxuICAgIGlmIChPYmplY3Q/LmtleXMoY2hlY2tDb25maWdEYXRhKT8ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUgPSBjaGVja0NvbmZpZ0RhdGE7XHJcbiAgICB9XHJcbiAgICBpZiAodGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5jb25maWdEYXRhLnRhYmxlLnJvd2xlbmd0aCA+IDAgJiYgdGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5jb25maWdEYXRhLnRhYmxlLmNvbHVtbmxlbmd0aCA+IDApIHtcclxuICAgICAgdGhpcy5maWVsZCgpLnRhYmxlRGF0YSA9IHRoaXMubWFzdGVyQ29udHJvbFNlcnZpY2UuY29uZmlnRGF0YS50YWJsZTtcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCB0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUuY29sdW1ubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBpZiAoT2JqZWN0LmtleXMoY2hlY2tDb25maWdEYXRhKS5sZW5ndGggPD0gMCkge1xyXG4gICAgICAgICAgbGV0IGhlYWRlck9iaiA9IHtcclxuICAgICAgICAgICAgXCJjb2x1bW5OYW1lXCI6IGAkeydOYW1lIC0gJyArIGl9YCxcclxuICAgICAgICAgICAgXCJpc1NvcnRpbmdOZWVkZWRcIjogXCJZXCIsXHJcbiAgICAgICAgICAgIFwidG9vbFRpcFwiOiBgJHsndG9vbHRpcCAtICcgKyBpfWBcclxuICAgICAgICAgIH1cclxuICAgICAgICAgIGNvbnN0IGV4aXN0cyA9IHRoaXMuZmllbGQoKS50YWJsZURhdGEudGFibGVIZWFkZXJzLnNvbWUoXHJcbiAgICAgICAgICAgIChoZWFkZXI6IGFueSkgPT4gaGVhZGVyLmNvbHVtbk5hbWUgPT09IGhlYWRlck9iai5jb2x1bW5OYW1lXHJcbiAgICAgICAgICApO1xyXG4gICAgICAgICAgaWYgKCFleGlzdHMgJiYgdGhpcy5maWVsZCgpLnRhYmxlRGF0YS50YWJsZUhlYWRlcnMubGVuZ3RoIDwgdGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5jb25maWdEYXRhLnRhYmxlLmNvbHVtbmxlbmd0aCkge1xyXG4gICAgICAgICAgICB0aGlzLmZpZWxkKCkudGFibGVEYXRhLnRhYmxlSGVhZGVycy5wdXNoKGhlYWRlck9iaik7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuZmllbGQoKS50YWJsZURhdGEudGREYXRhID0gQXJyYXkodGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5jb25maWdEYXRhLnRhYmxlLnJvd2xlbmd0aCkuZmlsbChudWxsKS5tYXAoKF8sIHJvd0lkeCkgPT5cclxuICAgICAgICBBcnJheSh0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUuY29sdW1ubGVuZ3RoKS5maWxsKCcnKS5tYXAoKF8sIGNvbElkeCkgPT4gYER1bW15IFJvdyAke3Jvd0lkeCArIDF9YClcclxuICAgICAgKTtcclxuXHJcbiAgICAgIHRoaXMubWFzdGVyQ29udHJvbFNlcnZpY2Uuc2F2ZVRhYmxlRmllbGRTdGF0ZSh0aGlzLmZpZWxkKCkpO1xyXG4gICAgICB0aGlzLmZpZWxkKCkuY29uZmlnRGF0YSA9IHRoaXMuZmllbGQoKS50YWJsZURhdGFcclxuICAgIH1cclxuICB9XHJcblxyXG4gIG9wZW5BY3Rpb25zUG9wdXAoZXZlbnQ6IE1vdXNlRXZlbnQsIHJvd0luZGV4OiBudW1iZXIpIHtcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvdyA9IHJvd0luZGV4O1xyXG4gICAgdGhpcy5zaG93QWN0aW9uc1BvcHVwID0gdHJ1ZTtcclxuICAgIHRoaXMuaGlnaGxpZ2h0ZWRJbmRleCA9IDE7XHJcbiAgICBjb25zdCByZWN0ID0gKGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudCkuZ2V0Qm91bmRpbmdDbGllbnRSZWN0KCk7XHJcbiAgICB0aGlzLnBvcHVwUG9zaXRpb24gPSB7XHJcbiAgICAgIHRvcDogcmVjdC5ib3R0b20gKyB3aW5kb3cuc2Nyb2xsWSAtIDMwLFxyXG4gICAgICBsZWZ0OiByZWN0LmxlZnQgKyB3aW5kb3cuc2Nyb2xsWCAtIDI4MCxcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICBjbG9zZUFjdGlvbnNQb3B1cCgpIHtcclxuICAgIHRoaXMuc2hvd0FjdGlvbnNQb3B1cCA9IGZhbHNlO1xyXG4gICAgdGhpcy5maWVsZCgpLnRhYmxlRGF0YS51c2VyU2VsZWN0ZWRPcHRpb25zW3RoaXMuc2VsZWN0ZWRSb3ddLmZvckVhY2goKGNoZWNrSWNvbjogYW55KSA9PiB7XHJcbiAgICAgIGNoZWNrSWNvbi5pc1NlbGVjdGVkID0gZmFsc2U7XHJcbiAgICB9KTtcclxuICAgIHRoaXMuc2VsZWN0ZWRSb3cgPSAwO1xyXG4gICAgdGhpcy5oaWdobGlnaHRlZEluZGV4ID0gLTE7XHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDprZXlkb3duLmVzY2FwZScsIFsnJGV2ZW50J10pXHJcbiAgb25Fc2NLZXkoZXZlbnQ6IEtleWJvYXJkRXZlbnQpIHtcclxuICAgIHRoaXMuY2xvc2VBY3Rpb25zUG9wdXAoKTtcclxuICB9XHJcblxyXG4gIHBhZ2VDaGFuZ2VkKGV2ZW50OiBQYWdlRXZlbnQpIHtcclxuICAgIHRoaXMucGFnZU51bWJlciA9IGV2ZW50LnBhZ2VJbmRleDtcclxuICAgIHRoaXMucGFnZVNpemUgPSBldmVudC5wYWdlU2l6ZTtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMucGFnZU51bWJlciwgdGhpcy5wYWdlU2l6ZSk7XHJcbiAgfVxyXG5cclxuICBhY3Rpb25DbGlja2VkKGFjdGlvblNlbGVjdGVkOiBhbnksIGFjdGlvbkluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuZmllbGQoKT8udGFibGVEYXRhPy51c2VyU2VsZWN0ZWRPcHRpb25zW3RoaXMuc2VsZWN0ZWRSb3ddPy5mb3JFYWNoKChjaGVja0ljb246IGFueSwgc2VsZWN0ZWRJbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjaGVja0ljb24ubWF0SWNvbk5hbWUgPT09IGFjdGlvblNlbGVjdGVkLm1hdEljb25OYW1lICYmIGFjdGlvbkluZGV4ID09PSBzZWxlY3RlZEluZGV4KSB7XHJcbiAgICAgICAgY2hlY2tJY29uLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGxldCBlbWl0T0JKID0ge1xyXG4gICAgICB1c2VyU2VsZWN0ZWRPcHRpb25zIDogdGhpcy5maWVsZCgpPy50YWJsZURhdGE/LnVzZXJTZWxlY3RlZE9wdGlvbnMsXHJcbiAgICAgIHNlbGVjdGVkUm93SW5kZXg6IHRoaXMuc2VsZWN0ZWRSb3csXHJcbiAgICAgIHNlbGVjdGVkQWN0aW9uc0luZGV4OiBhY3Rpb25JbmRleCxcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uSXRlbUNsaWNrZWQuZW1pdChlbWl0T0JKKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0eWxlZC10YWJsZS1jb250YWluZXJcIj5cclxuICA8dGFibGUgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LmNvbHVtbmxlbmd0aCAmJiBmaWVsZCgpPy50YWJsZURhdGE/LnJvd2xlbmd0aFwiIGNsYXNzPVwic3R5bGVkLXRhYmxlXCI+XHJcbiAgICA8dGhlYWQ+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGggKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dDaGVja0JveFwiPjwvdGg+XHJcbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgZmllbGQoKS50YWJsZURhdGE/LnRhYmxlSGVhZGVyczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlYWRvbmx5KCk7IGVsc2UgaGVhZGVyVGV4dFwiPnt7aGVhZGVyLmNvbHVtbk5hbWV9fVxyXG4gICAgICAgICAgICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaGVhZGVyLmNvbHVtbk5hbWVcIiAobmdNb2RlbENoYW5nZSk9XCJyZW5hbWVIZWFkZXIoaSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seSgpXCIgY2xhc3M9XCJjdXN0b21faW5wdXRcIiBbbWF0VG9vbHRpcF09XCJoZWFkZXIudG9vbFRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+IC0tPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRleHQ+e3sgaGVhZGVyPy5jb2x1bW5OYW1lIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0aCAqbmdJZj1cImZpZWxkKCk/LnRhYmxlRGF0YT8uc2hvd0FjdGlvbnNcIj5BY3Rpb248L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIDx0Ym9keT5cclxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgZmllbGQoKT8udGFibGVEYXRhPy50ZERhdGE7bGV0IHJvd0luZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICA8dGQgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dDaGVja0JveFwiPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj48L3RkPlxyXG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3dcIj57eyBjZWxsIH19PC90ZD5cclxuICAgICAgICA8dGQgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiIChjbGljayk9XCJvcGVuQWN0aW9uc1BvcHVwKCRldmVudCwgcm93SW5kZXgpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT5cclxuICA8L3RhYmxlPlxyXG4gIDxtYXQtcGFnaW5hdG9yIGNsYXNzPVwiY3VzdG9tLXBhZ2luYXRvclwiIFtsZW5ndGhdPVwiZmllbGQoKT8udGFibGVEYXRhPy50ZERhdGE/Lmxlbmd0aFwiIFtwYWdlU2l6ZV09XCJwYWdpbmF0aW9uU2l6ZVwiXHJcbiAgICBbcGFnZVNpemVPcHRpb25zXT1cIls1LCAxMCwgMjUsIDEwMF1cIiAocGFnZSk9XCJwYWdlQ2hhbmdlZCgkZXZlbnQpXCIgYXJpYS1sYWJlbD1cIlNlbGVjdCBwYWdlXCI+XHJcbiAgPC9tYXQtcGFnaW5hdG9yPlxyXG48L2Rpdj5cclxuXHJcbjxkaXYgKm5nSWY9XCJzaG93QWN0aW9uc1BvcHVwXCIgY2xhc3M9XCJhY3Rpb25zLXBvcHVwLWJhY2tkcm9wXCIgKGNsaWNrKT1cImNsb3NlQWN0aW9uc1BvcHVwKClcIj5cclxuICA8ZGl2IGNsYXNzPVwiYWN0aW9ucy1wb3B1cC1tZW51XCIgW25nU3R5bGVdPVwieyd0b3AucHgnOiBwb3B1cFBvc2l0aW9uLnRvcCwgJ2xlZnQucHgnOiBwb3B1cFBvc2l0aW9uLmxlZnR9XCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJtYWtlQXJyb3dcIiBbbmdTdHlsZV09XCJ7J2xlZnQucHgnOiBwb3B1cFBvc2l0aW9uLmxlZnQrMjV9XCI+PC9kaXY+XHJcbiAgICA8dWw+XHJcbiAgICAgIDxsaSAqbmdGb3I9XCJsZXQgYWN0aW9uRGF0YSBvZiBmaWVsZCgpLnRhYmxlRGF0YT8udXNlclNlbGVjdGVkT3B0aW9uc1tzZWxlY3RlZFJvd107bGV0IGFjdGlvbkluZGV4ID0gaW5kZXhcIlxyXG4gICAgICAgIFttYXRUb29sdGlwXT1cImFjdGlvbkRhdGE/LmRpc3BsYXlUaXRsZVwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCJcclxuICAgICAgICAoY2xpY2spPVwiYWN0aW9uQ2xpY2tlZChhY3Rpb25EYXRhLGFjdGlvbkluZGV4KVwiPlxyXG4gICAgICAgIDxtYXQtaWNvbj57e2FjdGlvbkRhdGE/Lm1hdEljb25OYW1lfX08L21hdC1pY29uPlxyXG4gICAgICAgIHt7YWN0aW9uRGF0YT8uZGlzcGxheVRpdGxlfX1cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PiJdfQ==
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi90YWJsZS90YWJsZS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RhYmxlL3RhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3JGLE9BQU8sRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQzVELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFFN0QsT0FBTyxFQUFFLGtCQUFrQixFQUFhLE1BQU0sNkJBQTZCLENBQUM7Ozs7Ozs7QUFRNUUsTUFBTSxPQUFPLGNBQWM7SUFZTjtJQVhuQixLQUFLLEdBQVEsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ25DLFFBQVEsR0FBRyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUM7SUFDeEIsZ0JBQWdCLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLGFBQWEsR0FBRyxFQUFFLEdBQUcsRUFBRSxDQUFDLEVBQUUsSUFBSSxFQUFFLENBQUMsRUFBRSxDQUFDO0lBQ3BDLFdBQVcsR0FBUSxDQUFDLENBQUM7SUFDckIsZ0JBQWdCLEdBQUcsQ0FBQyxDQUFDLENBQUM7SUFDdEIsY0FBYyxHQUFRLEVBQUUsQ0FBQztJQUN6QixVQUFVLEdBQVEsQ0FBQyxDQUFDO0lBQ3BCLFFBQVEsR0FBUSxFQUFF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QUFjO2tCQVAxQixTQUFTOytCQUNFLFdBQVcsY0FDVCxJQUFJLFdBQ1AsQ0FBQyxJQUFJLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxZQUFZLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLGtCQUFrQixDQUFDO3lGQWM1RixpQkFBaUI7c0JBQTFCLE1BQU07Z0JBQ0csc0JBQXNCO3NCQUEvQixNQUFNO2dCQStEUCxRQUFRO3NCQURQLFlBQVk7dUJBQUMseUJBQXlCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBpbnB1dCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSwgTmdGb3IsIE5nSWYgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xyXG5pbXBvcnQgeyBNYXRUb29sdGlwTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvdG9vbHRpcCc7XHJcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IE1hdFBhZ2luYXRvck1vZHVsZSwgUGFnZUV2ZW50IH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvcGFnaW5hdG9yJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFibGUnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW05nSWYsIE5nRm9yLCBGb3Jtc01vZHVsZSwgQ29tbW9uTW9kdWxlLCBNYXRJY29uTW9kdWxlLCBNYXRUb29sdGlwTW9kdWxlLCBNYXRQYWdpbmF0b3JNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YWJsZS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RhYmxlLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUYWJsZUNvbXBvbmVudCB7XHJcbiAgZmllbGQ6IGFueSA9IGlucHV0LnJlcXVpcmVkPGFueT4oKTtcclxuICByZWFkb25seSA9IGlucHV0KGZhbHNlKTtcclxuICBzaG93QWN0aW9uc1BvcHVwID0gZmFsc2U7XHJcbiAgcG9wdXBQb3NpdGlvbiA9IHsgdG9wOiAwLCBsZWZ0OiAwIH07XHJcbiAgc2VsZWN0ZWRSb3c6IGFueSA9IDA7XHJcbiAgaGlnaGxpZ2h0ZWRJbmRleCA9IC0xO1xyXG4gIHBhZ2luYXRpb25TaXplOiBhbnkgPSAxMDtcclxuICBwYWdlTnVtYmVyOiBhbnkgPSAwO1xyXG4gIHBhZ2VTaXplOiBhbnkgPSAxMDtcclxuICBAT3V0cHV0KCkgYWN0aW9uSXRlbUNsaWNrZWQgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuICBAT3V0cHV0KCkgdGFibGVQYWdpbmF0aW9uQ2xpY2tlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtYXN0ZXJDb250cm9sU2VydmljZTogTWFzdGVyQ29udHJvbFNlcnZpY2UpIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpIHtcclxuICAgIHRoaXMuc2V0Q29sdW1ucygpO1xyXG4gIH1cclxuICB0cmFja0J5SW5kZXgoaW5kZXg6IGFueSwgaXRlbTogYW55KSB7XHJcbiAgICByZXR1cm4gaW5kZXg7XHJcbiAgfVxyXG5cclxuICBzZXRDb2x1bW5zKCkge1xyXG4gICAgbGV0IGNoZWNrQ29uZmlnRGF0YSA9IHRoaXMuZmllbGQoKS5jb25maWdEYXRhO1xyXG4gICAgaWYgKE9iamVjdD8ua2V5cyhjaGVja0NvbmZpZ0RhdGEpPy5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMubWFzdGVyQ29udHJvbFNlcnZpY2UuY29uZmlnRGF0YS50YWJsZSA9IGNoZWNrQ29uZmlnRGF0YTtcclxuICAgIH1cclxuICAgIGlmICh0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUucm93bGVuZ3RoID4gMCAmJiB0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUuY29sdW1ubGVuZ3RoID4gMCkge1xyXG4gICAgICB0aGlzLmZpZWxkKCkudGFibGVEYXRhID0gdGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5jb25maWdEYXRhLnRhYmxlO1xyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IHRoaXMubWFzdGVyQ29udHJvbFNlcnZpY2UuY29uZmlnRGF0YS50YWJsZS5jb2x1bW5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGlmIChPYmplY3Qua2V5cyhjaGVja0NvbmZpZ0RhdGEpLmxlbmd0aCA8PSAwKSB7XHJcbiAgICAgICAgICBsZXQgaGVhZGVyT2JqID0ge1xyXG4gICAgICAgICAgICBcImNvbHVtbk5hbWVcIjogYCR7J05hbWUgLSAnICsgaX1gLFxyXG4gICAgICAgICAgICBcImlzU29ydGluZ05lZWRlZFwiOiBcIllcIixcclxuICAgICAgICAgICAgXCJ0b29sVGlwXCI6IGAkeyd0b29sdGlwIC0gJyArIGl9YFxyXG4gICAgICAgICAgfVxyXG4gICAgICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5maWVsZCgpLnRhYmxlRGF0YS50YWJsZUhlYWRlcnMuc29tZShcclxuICAgICAgICAgICAgKGhlYWRlcjogYW55KSA9PiBoZWFkZXIuY29sdW1uTmFtZSA9PT0gaGVhZGVyT2JqLmNvbHVtbk5hbWVcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgICBpZiAoIWV4aXN0cyAmJiB0aGlzLmZpZWxkKCkudGFibGVEYXRhLnRhYmxlSGVhZGVycy5sZW5ndGggPCB0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUuY29sdW1ubGVuZ3RoKSB7XHJcbiAgICAgICAgICAgIHRoaXMuZmllbGQoKS50YWJsZURhdGEudGFibGVIZWFkZXJzLnB1c2goaGVhZGVyT2JqKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5maWVsZCgpLnRhYmxlRGF0YS50ZERhdGEgPSBBcnJheSh0aGlzLm1hc3RlckNvbnRyb2xTZXJ2aWNlLmNvbmZpZ0RhdGEudGFibGUucm93bGVuZ3RoKS5maWxsKG51bGwpLm1hcCgoXywgcm93SWR4KSA9PlxyXG4gICAgICAgIEFycmF5KHRoaXMubWFzdGVyQ29udHJvbFNlcnZpY2UuY29uZmlnRGF0YS50YWJsZS5jb2x1bW5sZW5ndGgpLmZpbGwoJycpLm1hcCgoXywgY29sSWR4KSA9PiBgRHVtbXkgUm93ICR7cm93SWR4ICsgMX1gKVxyXG4gICAgICApO1xyXG5cclxuICAgICAgdGhpcy5tYXN0ZXJDb250cm9sU2VydmljZS5zYXZlVGFibGVGaWVsZFN0YXRlKHRoaXMuZmllbGQoKSk7XHJcbiAgICAgIHRoaXMuZmllbGQoKS5jb25maWdEYXRhID0gdGhpcy5maWVsZCgpLnRhYmxlRGF0YVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgb3BlbkFjdGlvbnNQb3B1cChldmVudDogTW91c2VFdmVudCwgcm93SW5kZXg6IG51bWJlcikge1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICB0aGlzLnNlbGVjdGVkUm93ID0gcm93SW5kZXg7XHJcbiAgICB0aGlzLnNob3dBY3Rpb25zUG9wdXAgPSB0cnVlO1xyXG4gICAgdGhpcy5oaWdobGlnaHRlZEluZGV4ID0gMTtcclxuICAgIGNvbnN0IHJlY3QgPSAoZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50KS5nZXRCb3VuZGluZ0NsaWVudFJlY3QoKTtcclxuICAgIHRoaXMucG9wdXBQb3NpdGlvbiA9IHtcclxuICAgICAgdG9wOiByZWN0LmJvdHRvbSArIHdpbmRvdy5zY3JvbGxZIC0gMzAsXHJcbiAgICAgIGxlZnQ6IHJlY3QubGVmdCArIHdpbmRvdy5zY3JvbGxYIC0gMjgwLFxyXG4gICAgfTtcclxuICB9XHJcblxyXG4gIGNsb3NlQWN0aW9uc1BvcHVwKCkge1xyXG4gICAgdGhpcy5zaG93QWN0aW9uc1BvcHVwID0gZmFsc2U7XHJcbiAgICB0aGlzLmZpZWxkKCkudGFibGVEYXRhLnVzZXJTZWxlY3RlZE9wdGlvbnNbdGhpcy5zZWxlY3RlZFJvd10uZm9yRWFjaCgoY2hlY2tJY29uOiBhbnkpID0+IHtcclxuICAgICAgY2hlY2tJY29uLmlzU2VsZWN0ZWQgPSBmYWxzZTtcclxuICAgIH0pO1xyXG4gICAgdGhpcy5zZWxlY3RlZFJvdyA9IDA7XHJcbiAgICB0aGlzLmhpZ2hsaWdodGVkSW5kZXggPSAtMTtcclxuICB9XHJcblxyXG4gIEBIb3N0TGlzdGVuZXIoJ2RvY3VtZW50OmtleWRvd24uZXNjYXBlJywgWyckZXZlbnQnXSlcclxuICBvbkVzY0tleShldmVudDogS2V5Ym9hcmRFdmVudCkge1xyXG4gICAgdGhpcy5jbG9zZUFjdGlvbnNQb3B1cCgpO1xyXG4gIH1cclxuXHJcbiAgcGFnZUNoYW5nZWQoZXZlbnQ6IFBhZ2VFdmVudCkge1xyXG4gICAgdGhpcy5maWVsZCgpLnRhYmxlRGF0YS5wYWdlTnVtYmVyID0gZXZlbnQucGFnZUluZGV4O1xyXG4gICAgdGhpcy5maWVsZCgpLnRhYmxlRGF0YS5wYWdlU2l6ZSA9IGV2ZW50LnBhZ2VTaXplO1xyXG4gICAgdGhpcy50YWJsZVBhZ2luYXRpb25DbGlja2VkLmVtaXQodGhpcy5maWVsZCgpLnRhYmxlRGF0YSk7XHJcbiAgfVxyXG5cclxuICBhY3Rpb25DbGlja2VkKGFjdGlvblNlbGVjdGVkOiBhbnksIGFjdGlvbkluZGV4OiBhbnkpIHtcclxuICAgIHRoaXMuZmllbGQoKT8udGFibGVEYXRhPy51c2VyU2VsZWN0ZWRPcHRpb25zW3RoaXMuc2VsZWN0ZWRSb3ddPy5mb3JFYWNoKChjaGVja0ljb246IGFueSwgc2VsZWN0ZWRJbmRleDogYW55KSA9PiB7XHJcbiAgICAgIGlmIChjaGVja0ljb24ubWF0SWNvbk5hbWUgPT09IGFjdGlvblNlbGVjdGVkLm1hdEljb25OYW1lICYmIGFjdGlvbkluZGV4ID09PSBzZWxlY3RlZEluZGV4KSB7XHJcbiAgICAgICAgY2hlY2tJY29uLmlzU2VsZWN0ZWQgPSB0cnVlO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICAgIGxldCBlbWl0T0JKID0ge1xyXG4gICAgICB1c2VyU2VsZWN0ZWRPcHRpb25zIDogdGhpcy5maWVsZCgpPy50YWJsZURhdGE/LnVzZXJTZWxlY3RlZE9wdGlvbnMsXHJcbiAgICAgIHNlbGVjdGVkUm93SW5kZXg6IHRoaXMuc2VsZWN0ZWRSb3csXHJcbiAgICAgIHNlbGVjdGVkQWN0aW9uc0luZGV4OiBhY3Rpb25JbmRleCxcclxuICAgIH1cclxuICAgIHRoaXMuYWN0aW9uSXRlbUNsaWNrZWQuZW1pdChlbWl0T0JKKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cInN0eWxlZC10YWJsZS1jb250YWluZXJcIj5cclxuICA8dGFibGUgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LmNvbHVtbmxlbmd0aCAmJiBmaWVsZCgpPy50YWJsZURhdGE/LnJvd2xlbmd0aFwiIGNsYXNzPVwic3R5bGVkLXRhYmxlXCI+XHJcbiAgICA8dGhlYWQ+XHJcbiAgICAgIDx0cj5cclxuICAgICAgICA8dGggKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dDaGVja0JveFwiPjwvdGg+XHJcbiAgICAgICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgZmllbGQoKS50YWJsZURhdGE/LnRhYmxlSGVhZGVyczsgbGV0IGkgPSBpbmRleDsgdHJhY2tCeTogdHJhY2tCeUluZGV4XCI+XHJcbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXJlYWRvbmx5KCk7IGVsc2UgaGVhZGVyVGV4dFwiPnt7aGVhZGVyLmNvbHVtbk5hbWV9fVxyXG4gICAgICAgICAgICA8IS0tIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaGVhZGVyLmNvbHVtbk5hbWVcIiAobmdNb2RlbENoYW5nZSk9XCJyZW5hbWVIZWFkZXIoaSwgJGV2ZW50KVwiXHJcbiAgICAgICAgICAgIFtkaXNhYmxlZF09XCJyZWFkb25seSgpXCIgY2xhc3M9XCJjdXN0b21faW5wdXRcIiBbbWF0VG9vbHRpcF09XCJoZWFkZXIudG9vbFRpcFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImFib3ZlXCI+IC0tPlxyXG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICA8bmctdGVtcGxhdGUgI2hlYWRlclRleHQ+e3sgaGVhZGVyPy5jb2x1bW5OYW1lIH19PC9uZy10ZW1wbGF0ZT5cclxuICAgICAgICA8L3RoPlxyXG4gICAgICAgIDx0aCAqbmdJZj1cImZpZWxkKCk/LnRhYmxlRGF0YT8uc2hvd0FjdGlvbnNcIj5BY3Rpb248L3RoPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90aGVhZD5cclxuICAgIDx0Ym9keT5cclxuICAgICAgPHRyICpuZ0Zvcj1cImxldCByb3cgb2YgZmllbGQoKT8udGFibGVEYXRhPy50ZERhdGE7bGV0IHJvd0luZGV4ID0gaW5kZXhcIj5cclxuICAgICAgICA8dGQgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dDaGVja0JveFwiPjxpbnB1dCB0eXBlPVwiY2hlY2tib3hcIj48L3RkPlxyXG4gICAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgY2VsbCBvZiByb3dcIj57eyBjZWxsIH19PC90ZD5cclxuICAgICAgICA8dGQgKm5nSWY9XCJmaWVsZCgpPy50YWJsZURhdGE/LnNob3dBY3Rpb25zXCI+XHJcbiAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uLWJ0blwiIChjbGljayk9XCJvcGVuQWN0aW9uc1BvcHVwKCRldmVudCwgcm93SW5kZXgpXCIgW2Rpc2FibGVkXT1cInJlYWRvbmx5KClcIj5cclxuICAgICAgICAgICAgPG1hdC1pY29uPm1vcmVfdmVydDwvbWF0LWljb24+XHJcbiAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L3RkPlxyXG4gICAgICA8L3RyPlxyXG4gICAgPC90Ym9keT5cclxuICA8L3RhYmxlPlxyXG4gIDxtYXQtcGFnaW5hdG9yIGNsYXNzPVwiY3VzdG9tLXBhZ2luYXRvclwiIFtsZW5ndGhdPVwiZmllbGQoKT8udGFibGVEYXRhPy50b3RhbEl0ZW1zXCIgW3BhZ2VTaXplXT1cImZpZWxkKCk/LnRhYmxlRGF0YT8ucGFnaW5hdGlvblNpemVcIlxyXG4gICAgW3BhZ2VTaXplT3B0aW9uc109XCJbNSwgMTAsIDI1LCAxMDBdXCIgKHBhZ2UpPVwicGFnZUNoYW5nZWQoJGV2ZW50KVwiIGFyaWEtbGFiZWw9XCJTZWxlY3QgcGFnZVwiPlxyXG4gIDwvbWF0LXBhZ2luYXRvcj5cclxuPC9kaXY+XHJcblxyXG48ZGl2ICpuZ0lmPVwic2hvd0FjdGlvbnNQb3B1cFwiIGNsYXNzPVwiYWN0aW9ucy1wb3B1cC1iYWNrZHJvcFwiIChjbGljayk9XCJjbG9zZUFjdGlvbnNQb3B1cCgpXCI+XHJcbiAgPGRpdiBjbGFzcz1cImFjdGlvbnMtcG9wdXAtbWVudVwiIFtuZ1N0eWxlXT1cInsndG9wLnB4JzogcG9wdXBQb3NpdGlvbi50b3AsICdsZWZ0LnB4JzogcG9wdXBQb3NpdGlvbi5sZWZ0fVwiXHJcbiAgICAoY2xpY2spPVwiJGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwibWFrZUFycm93XCIgW25nU3R5bGVdPVwieydsZWZ0LnB4JzogcG9wdXBQb3NpdGlvbi5sZWZ0KzI1fVwiPjwvZGl2PlxyXG4gICAgPHVsPlxyXG4gICAgICA8bGkgKm5nRm9yPVwibGV0IGFjdGlvbkRhdGEgb2YgZmllbGQoKS50YWJsZURhdGE/LnVzZXJTZWxlY3RlZE9wdGlvbnNbc2VsZWN0ZWRSb3ddO2xldCBhY3Rpb25JbmRleCA9IGluZGV4XCJcclxuICAgICAgICBbbWF0VG9vbHRpcF09XCJhY3Rpb25EYXRhPy5kaXNwbGF5VGl0bGVcIiBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXHJcbiAgICAgICAgKGNsaWNrKT1cImFjdGlvbkNsaWNrZWQoYWN0aW9uRGF0YSxhY3Rpb25JbmRleClcIj5cclxuICAgICAgICA8bWF0LWljb24+e3thY3Rpb25EYXRhPy5tYXRJY29uTmFtZX19PC9tYXQtaWNvbj5cclxuICAgICAgICB7e2FjdGlvbkRhdGE/LmRpc3BsYXlUaXRsZX19XHJcbiAgICAgIDwvbGk+XHJcbiAgICA8L3VsPlxyXG4gIDwvZGl2PlxyXG48L2Rpdj4iXX0=
@@ -1,20 +1,65 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, input } from '@angular/core';
3
- import { ReactiveFormsModule } from '@angular/forms';
2
+ import { Component, input, Output, EventEmitter } from '@angular/core';
3
+ import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../master-control.service";
6
6
  import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
7
8
  export class TextareaComponent {
8
9
  masterService;
9
10
  constructor(masterService) {
10
11
  this.masterService = masterService;
11
12
  }
12
13
  field = input.required();
14
+ reactiveFormControlobject = input();
15
+ // ControlValueAccessor properties
16
+ textareaValue = null;
17
+ _onChange = (textareaValue) => { };
18
+ _onTouched = () => { };
19
+ // Declare Output event emitter here (class level)
20
+ blur = new EventEmitter();
21
+ // ControlValueAccessor implementation
22
+ writeValue(obj) {
23
+ this.textareaValue = obj;
24
+ }
25
+ registerOnChange(fn) {
26
+ this._onChange = fn;
27
+ }
28
+ registerOnTouched(fn) {
29
+ this._onTouched = fn;
30
+ }
31
+ setDisabledState(isDisabled) { }
32
+ onTextareaChange(event) {
33
+ this.textareaValue = event.target.value;
34
+ this._onChange(this.textareaValue);
35
+ }
36
+ onTextareaBlur(event) {
37
+ this._onTouched();
38
+ this.blur.emit(event);
39
+ }
13
40
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
14
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: TextareaComponent, isStandalone: true, selector: "lib-textarea", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, ngImport: i0, template: "<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n></textarea>\r\n", styles: ["*{font-family:mulish!important}::ng-deep textarea{width:-webkit-fill-available!important;border:1.5px solid #dddddd!important;border-radius:4px!important;caret-color:#fb0!important;color:#444!important}::ng-deep textarea:focus{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea:focus-visible{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea{width:var(--custom-textarea-width, -webkit-fill-available)!important;border-radius:var(--custom-textarea-radius, 4px)!important;caret-color:var(--custom-textarea-caret-color, #ffbb00)!important;color:var(--custom-textarea-font-color, #444444)!important;border-color:var(--custom-textarea-border-color,#dddddd)!important;border-width:var(--custom-textarea-border-width, 1.5px solid)!important}::ng-deep textarea:focus{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}::ng-deep textarea:focus-visible{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }] });
41
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: TextareaComponent, isStandalone: true, selector: "lib-textarea", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, reactiveFormControlobject: { classPropertyName: "reactiveFormControlobject", publicName: "reactiveFormControlobject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { blur: "blur" }, providers: [
42
+ {
43
+ provide: NG_VALUE_ACCESSOR,
44
+ useExisting: TextareaComponent,
45
+ multi: true
46
+ }
47
+ ], ngImport: i0, template: "@if(reactiveFormControlobject()) {\r\n<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n (input)=\"onTextareaChange($event)\"\r\n (blur)=\"onTextareaBlur($event)\"\r\n [value]=\"textareaValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n></textarea>\r\n}@else {\r\n<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n (input)=\"onTextareaChange($event)\"\r\n (blur)=\"onTextareaBlur($event)\"\r\n [value]=\"textareaValue\"\r\n></textarea>\r\n}\r\n", styles: ["*{font-family:mulish!important}::ng-deep textarea{width:-webkit-fill-available!important;border:1.5px solid #dddddd!important;border-radius:4px!important;caret-color:#fb0!important;color:#444!important}::ng-deep textarea:focus{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea:focus-visible{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea{width:var(--custom-textarea-width, -webkit-fill-available)!important;border-radius:var(--custom-textarea-radius, 4px)!important;caret-color:var(--custom-textarea-caret-color, #ffbb00)!important;color:var(--custom-textarea-font-color, #444444)!important;border-color:var(--custom-textarea-border-color,#dddddd)!important;border-width:var(--custom-textarea-border-width, 1.5px solid)!important}::ng-deep textarea:focus{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}::ng-deep textarea:focus-visible{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "ngmodule", type: FormsModule }] });
15
48
  }
16
49
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: TextareaComponent, decorators: [{
17
50
  type: Component,
18
- args: [{ selector: 'lib-textarea', standalone: true, imports: [CommonModule, ReactiveFormsModule], template: "<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n></textarea>\r\n", styles: ["*{font-family:mulish!important}::ng-deep textarea{width:-webkit-fill-available!important;border:1.5px solid #dddddd!important;border-radius:4px!important;caret-color:#fb0!important;color:#444!important}::ng-deep textarea:focus{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea:focus-visible{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea{width:var(--custom-textarea-width, -webkit-fill-available)!important;border-radius:var(--custom-textarea-radius, 4px)!important;caret-color:var(--custom-textarea-caret-color, #ffbb00)!important;color:var(--custom-textarea-font-color, #444444)!important;border-color:var(--custom-textarea-border-color,#dddddd)!important;border-width:var(--custom-textarea-border-width, 1.5px solid)!important}::ng-deep textarea:focus{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}::ng-deep textarea:focus-visible{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}\n"] }]
19
- }], ctorParameters: () => [{ type: i1.MasterControlService }] });
20
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUVqRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQzs7OztBQVNyRCxNQUFNLE9BQU8saUJBQWlCO0lBQ1Q7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO3dHQUZ6QixpQkFBaUI7NEZBQWpCLGlCQUFpQiwyTUNaOUIsK2pDQXVCQSwwckNEZlksWUFBWSx1TkFBRSxtQkFBbUI7OzRGQUloQyxpQkFBaUI7a0JBUDdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxtQkFBbUIsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXRleHRhcmVhJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIFJlYWN0aXZlRm9ybXNNb2R1bGVdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5jc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZXh0YXJlYUNvbXBvbmVudCB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG59XHJcbiIsIjx0ZXh0YXJlYVxyXG5bbmdTdHlsZV09XCJ7XHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LndpZHRoICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlckNvbG9yICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1ib3JkZXItY29sb3ItZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLWJvcmRlci13aWR0aC1mb2N1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCb3JkZXJDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLWNhcmV0LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jYXJldENvbG9yICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbiAgICB9XCJcclxuKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgY29scz1cIjQwXCJcclxuICByb3dzPVwiM1wiXHJcbiAgYXV0b2NvbXBsZXRlPVwibm9wZVwiXHJcbiAgW25hbWVdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICBbcGxhY2Vob2xkZXJdPVwiZmllbGQoKT8ucGxhY2VIb2xkZXJcIlxyXG4gIFttYXhMZW5ndGhdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8ubWF4TGVuZ3RoXCJcclxuICBbbWluTGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1pbkxlbmd0aFwiXHJcbiAgW2Rpc2FibGVkXT1cImZpZWxkKCk/LmlzRGlzYWJsZVwiXHJcbiAgW3JlcXVpcmVkXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/LmlzUmVxdWlyZWRcIlxyXG4+PC90ZXh0YXJlYT5cclxuIl19
51
+ args: [{ selector: 'lib-textarea', standalone: true, imports: [
52
+ CommonModule,
53
+ ReactiveFormsModule,
54
+ FormsModule
55
+ ], providers: [
56
+ {
57
+ provide: NG_VALUE_ACCESSOR,
58
+ useExisting: TextareaComponent,
59
+ multi: true
60
+ }
61
+ ], template: "@if(reactiveFormControlobject()) {\r\n<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n (input)=\"onTextareaChange($event)\"\r\n (blur)=\"onTextareaBlur($event)\"\r\n [value]=\"textareaValue\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n></textarea>\r\n}@else {\r\n<textarea\r\n[ngStyle]=\"{\r\n '--custom-textarea-width': field()?.controlStyle?.width ,\r\n '--custom-textarea-border-color': field()?.controlStyle?.borderColor ,\r\n '--custom-textarea-border-width': field()?.controlStyle?.borderWidth ,\r\n '--custom-textarea-border-color-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-border-width-focus': field()?.controlStyle?.focusBorderColor ,\r\n '--custom-textarea-radius': field()?.controlStyle?.borderRadius ,\r\n '--custom-textarea-caret-color': field()?.controlStyle?.caretColor ,\r\n '--custom-textarea-font-color': field()?.controlStyle?.color ,\r\n }\"\r\n*ngIf=\"field() && field()?.isVisible\"\r\n cols=\"40\"\r\n rows=\"3\"\r\n autocomplete=\"nope\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [placeholder]=\"field()?.placeHolder\"\r\n [maxLength]=\"field()?.validators?.maxLength\"\r\n [minLength]=\"field()?.validators?.minLength\"\r\n [disabled]=\"field()?.isDisable\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n (input)=\"onTextareaChange($event)\"\r\n (blur)=\"onTextareaBlur($event)\"\r\n [value]=\"textareaValue\"\r\n></textarea>\r\n}\r\n", styles: ["*{font-family:mulish!important}::ng-deep textarea{width:-webkit-fill-available!important;border:1.5px solid #dddddd!important;border-radius:4px!important;caret-color:#fb0!important;color:#444!important}::ng-deep textarea:focus{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea:focus-visible{outline:none!important;border:1.5px solid #ffbb00!important}::ng-deep textarea{width:var(--custom-textarea-width, -webkit-fill-available)!important;border-radius:var(--custom-textarea-radius, 4px)!important;caret-color:var(--custom-textarea-caret-color, #ffbb00)!important;color:var(--custom-textarea-font-color, #444444)!important;border-color:var(--custom-textarea-border-color,#dddddd)!important;border-width:var(--custom-textarea-border-width, 1.5px solid)!important}::ng-deep textarea:focus{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}::ng-deep textarea:focus-visible{border-color:var(--custom-textarea-border-color-focus,#dddddd)!important;border-width:var(--custom-textarea-border-width-focus, 1.5px solid)!important}\n"] }]
62
+ }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { blur: [{
63
+ type: Output
64
+ }] } });
65
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbWFzdGVyLWNvbnRyb2wvc3JjL2xpYi90ZXh0YXJlYS90ZXh0YXJlYS5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3RleHRhcmVhL3RleHRhcmVhLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXZFLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBb0IzRyxNQUFNLE9BQU8saUJBQWlCO0lBQ1Q7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBQ3BDLHlCQUF5QixHQUFTLEtBQUssRUFBTyxDQUFDO0lBRS9DLGtDQUFrQztJQUNsQyxhQUFhLEdBQVEsSUFBSSxDQUFDO0lBQzFCLFNBQVMsR0FBUSxDQUFDLGFBQWtCLEVBQUUsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUM1QyxVQUFVLEdBQVEsR0FBRyxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBRTNCLGtEQUFrRDtJQUN4QyxJQUFJLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQztJQUV6QyxzQ0FBc0M7SUFDdEMsVUFBVSxDQUFDLEdBQVE7UUFDakIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7SUFDM0IsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFFLFVBQW1CLElBQVMsQ0FBQztJQUUvQyxnQkFBZ0IsQ0FBQyxLQUFVO1FBQ3pCLElBQUksQ0FBQyxhQUFhLEdBQUcsS0FBSyxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUM7SUFDckMsQ0FBQztJQUVELGNBQWMsQ0FBQyxLQUFXO1FBQ3hCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztRQUNsQixJQUFJLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUN4QixDQUFDO3dHQXBDVSxpQkFBaUI7NEZBQWpCLGlCQUFpQiw2WUFSakI7WUFDVDtnQkFDRSxPQUFPLEVBQUUsaUJBQWlCO2dCQUMxQixXQUFXLEVBQUUsaUJBQWlCO2dCQUM5QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0YsMEJDckJILHM4RUF3REEsMHJDRC9DSSxZQUFZLHVOQUNaLG1CQUFtQixzeUJBQ25CLFdBQVc7OzRGQVlGLGlCQUFpQjtrQkFsQjdCLFNBQVM7K0JBQ0UsY0FBYyxjQUNaLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLG1CQUFtQjt3QkFDbkIsV0FBVztxQkFDWixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsbUJBQW1COzRCQUM5QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt5RkFhUyxJQUFJO3NCQUFiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0LCBPdXRwdXQsIEV2ZW50RW1pdHRlciB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXN0ZXJDb250cm9sU2VydmljZSB9IGZyb20gJy4uL21hc3Rlci1jb250cm9sLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDb250cm9sVmFsdWVBY2Nlc3NvciwgRm9ybXNNb2R1bGUsIE5HX1ZBTFVFX0FDQ0VTU09SLCBSZWFjdGl2ZUZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGV4dGFyZWEnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLCBcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZVxyXG4gIF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RleHRhcmVhLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdGV4dGFyZWEuY29tcG9uZW50LmNzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogVGV4dGFyZWFDb21wb25lbnQsXHJcbiAgICAgIG11bHRpOiB0cnVlXHJcbiAgICB9XHJcbiAgXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVGV4dGFyZWFDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG4gIHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QgOiBhbnkgPSBpbnB1dDxhbnk+KCk7XHJcblxyXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHByb3BlcnRpZXNcclxuICB0ZXh0YXJlYVZhbHVlOiBhbnkgPSBudWxsO1xyXG4gIF9vbkNoYW5nZTogYW55ID0gKHRleHRhcmVhVmFsdWU6IGFueSkgPT4ge307XHJcbiAgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcblxyXG4gIC8vIERlY2xhcmUgT3V0cHV0IGV2ZW50IGVtaXR0ZXIgaGVyZSAoY2xhc3MgbGV2ZWwpXHJcbiAgQE91dHB1dCgpIGJsdXIgPSBuZXcgRXZlbnRFbWl0dGVyPGFueT4oKTtcclxuXHJcbiAgLy8gQ29udHJvbFZhbHVlQWNjZXNzb3IgaW1wbGVtZW50YXRpb25cclxuICB3cml0ZVZhbHVlKG9iajogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLnRleHRhcmVhVmFsdWUgPSBvYmo7XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGU/KGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHt9XHJcblxyXG4gIG9uVGV4dGFyZWFDaGFuZ2UoZXZlbnQ6IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy50ZXh0YXJlYVZhbHVlID0gZXZlbnQudGFyZ2V0LnZhbHVlO1xyXG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy50ZXh0YXJlYVZhbHVlKTtcclxuICB9XHJcblxyXG4gIG9uVGV4dGFyZWFCbHVyKGV2ZW50PzogYW55KTogdm9pZCB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIHRoaXMuYmx1ci5lbWl0KGV2ZW50KTtcclxuICB9XHJcbn1cclxuIiwiQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG48dGV4dGFyZWFcclxuW25nU3R5bGVdPVwie1xyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy53aWR0aCAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJXaWR0aCAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlckNvbG9yICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4gICAgfVwiXHJcbipuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIlxyXG4gIGNvbHM9XCI0MFwiXHJcbiAgcm93cz1cIjNcIlxyXG4gIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxyXG4gIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXHJcbiAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAoaW5wdXQpPVwib25UZXh0YXJlYUNoYW5nZSgkZXZlbnQpXCJcclxuICAoYmx1cik9XCJvblRleHRhcmVhQmx1cigkZXZlbnQpXCJcclxuICBbdmFsdWVdPVwidGV4dGFyZWFWYWx1ZVwiXHJcbiAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXHJcbj48L3RleHRhcmVhPlxyXG59QGVsc2Uge1xyXG48dGV4dGFyZWFcclxuW25nU3R5bGVdPVwie1xyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy53aWR0aCAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJXaWR0aCAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtYm9yZGVyLWNvbG9yLWZvY3VzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb2N1c0JvcmRlckNvbG9yICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1ib3JkZXItd2lkdGgtZm9jdXMnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4gICAgJy0tY3VzdG9tLXRleHRhcmVhLXJhZGl1cyc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyUmFkaXVzICxcclxuICAgICctLWN1c3RvbS10ZXh0YXJlYS1jYXJldC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY2FyZXRDb2xvciAsXHJcbiAgICAnLS1jdXN0b20tdGV4dGFyZWEtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uY29sb3IgLFxyXG4gICAgfVwiXHJcbipuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGVcIlxyXG4gIGNvbHM9XCI0MFwiXHJcbiAgcm93cz1cIjNcIlxyXG4gIGF1dG9jb21wbGV0ZT1cIm5vcGVcIlxyXG4gIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgW3BsYWNlaG9sZGVyXT1cImZpZWxkKCk/LnBsYWNlSG9sZGVyXCJcclxuICBbbWF4TGVuZ3RoXT1cImZpZWxkKCk/LnZhbGlkYXRvcnM/Lm1heExlbmd0aFwiXHJcbiAgW21pbkxlbmd0aF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5taW5MZW5ndGhcIlxyXG4gIFtkaXNhYmxlZF09XCJmaWVsZCgpPy5pc0Rpc2FibGVcIlxyXG4gIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAoaW5wdXQpPVwib25UZXh0YXJlYUNoYW5nZSgkZXZlbnQpXCJcclxuICAoYmx1cik9XCJvblRleHRhcmVhQmx1cigkZXZlbnQpXCJcclxuICBbdmFsdWVdPVwidGV4dGFyZWFWYWx1ZVwiXHJcbj48L3RleHRhcmVhPlxyXG59XHJcbiJdfQ==
@@ -1,15 +1,20 @@
1
1
  import { CommonModule } from '@angular/common';
2
- import { Component, input } from '@angular/core';
2
+ import { Component, input, ViewChild, Output, EventEmitter } from '@angular/core';
3
3
  import { FormsModule, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "../master-control.service";
6
6
  import * as i2 from "@angular/common";
7
+ import * as i3 from "@angular/forms";
7
8
  export class UploadComponent {
8
9
  masterService;
9
10
  constructor(masterService) {
10
11
  this.masterService = masterService;
11
12
  }
12
13
  field = input.required();
14
+ reactiveFormControlobject = input();
15
+ fileInput;
16
+ filesChanged = new EventEmitter();
17
+ fileRemoved = new EventEmitter();
13
18
  // ControlValueAccessor properties
14
19
  uploadedFiles = [];
15
20
  value = null;
@@ -53,8 +58,10 @@ export class UploadComponent {
53
58
  this._onChange(this.value);
54
59
  this._onTouched();
55
60
  }
61
+ this.filesChanged.emit(this.uploadedFiles);
56
62
  }
57
63
  removeFile(index) {
64
+ const removedFile = this.uploadedFiles[index];
58
65
  this.uploadedFiles.splice(index, 1);
59
66
  if (this.field()?.multiple) {
60
67
  this.value = [...this.uploadedFiles];
@@ -63,18 +70,25 @@ export class UploadComponent {
63
70
  this.value = this.uploadedFiles.length > 0 ? this.uploadedFiles[0] : null;
64
71
  }
65
72
  this._onChange(this.value);
73
+ this.fileRemoved.emit({ file: removedFile, index });
74
+ this.filesChanged.emit(this.uploadedFiles);
66
75
  }
67
76
  hasFiles() {
68
77
  return this.uploadedFiles.length > 0;
69
78
  }
79
+ triggerFileInput() {
80
+ if (this.fileInput) {
81
+ this.fileInput.nativeElement.click();
82
+ }
83
+ }
70
84
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, deps: [{ token: i1.MasterControlService }], target: i0.ɵɵFactoryTarget.Component });
71
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.1.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "lib-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null } }, providers: [
85
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.13", type: UploadComponent, isStandalone: true, selector: "lib-upload", inputs: { field: { classPropertyName: "field", publicName: "field", isSignal: true, isRequired: true, transformFunction: null }, reactiveFormControlobject: { classPropertyName: "reactiveFormControlobject", publicName: "reactiveFormControlobject", isSignal: true, isRequired: false, transformFunction: null } }, outputs: { filesChanged: "filesChanged", fileRemoved: "fileRemoved" }, providers: [
72
86
  {
73
87
  provide: NG_VALUE_ACCESSOR,
74
88
  useExisting: UploadComponent,
75
89
  multi: true
76
90
  }
77
- ], ngImport: i0, template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}</label>\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"fileInput.click()\"\r\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"{\r\n'--upload-width': field()?.controlStyle?.width ,\r\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--upload-border-color': field()?.controlStyle?.borderColor ,\r\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\r\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\r\n'--upload-background-color': field()?.controlStyle?.background ,\r\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\r\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\r\n}\"\r\n >\r\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\r\n <span class=\"upload-icon\">\r\n <span\r\n ><img\r\n src=\"https://cdn.godigit.com/retail-life/Upload_documents.svg\"\r\n alt=\"\"\r\n /></span>\r\n <span class=\"upload-text\" [ngStyle]=\"{\r\n'--upload-font-color': field()?.controlStyle?.color ,\r\n'--upload-font-size': field()?.controlStyle?.fontSize ,\r\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\r\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\r\n}\">{{ field()?.placeHolder }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #fileUploadedTemplate>\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file\">\r\n <span class=\"mt-2 right-icon\">\r\n <span><img [src]=\"field()?.imageUrl || 'https://cdn.godigit.com/retail-life/Upload_documents.svg'\" alt=\"\"/></span>\r\n <span [title]=\"file.name\">{{ file.name }}</span>\r\n </span>\r\n <div class=\"mt-2 left-icon\">\r\n <span><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\r\n <span (click)=\"removeFile(i)\" style=\"cursor: pointer;\">\r\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </button>\r\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\r\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:10px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:48px!important;padding:10px;border-radius:8px}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }] });
91
+ ], viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }], ngImport: i0, template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}</label>\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n />\r\n }\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"triggerFileInput()\"\r\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"{\r\n'--upload-width': field()?.controlStyle?.width ,\r\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--upload-border-color': field()?.controlStyle?.borderColor ,\r\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\r\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\r\n'--upload-background-color': field()?.controlStyle?.background ,\r\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\r\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\r\n}\"\r\n >\r\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\r\n <span class=\"upload-icon\">\r\n <span\r\n ><img\r\n src=\"https://cdn.godigit.com/retail-life/Upload_documents.svg\"\r\n alt=\"\"\r\n /></span>\r\n <span class=\"upload-text\" [ngStyle]=\"{\r\n'--upload-font-color': field()?.controlStyle?.color ,\r\n'--upload-font-size': field()?.controlStyle?.fontSize ,\r\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\r\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\r\n}\">{{ field()?.placeHolder }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #fileUploadedTemplate>\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\">\r\n <span class=\"mt-2 right-icon\">\r\n <span><img [src]=\"field()?.imageUrl || 'https://cdn.godigit.com/retail-life/Upload_documents.svg'\" alt=\"\"/></span>\r\n <span [title]=\"file.name\">{{ file.name }}</span>\r\n </span>\r\n <div class=\"mt-2 left-icon\">\r\n <span><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\r\n <span (click)=\"removeFile(i)\" style=\"cursor: pointer;\">\r\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </button>\r\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\r\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:10px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:48px!important;padding:10px;border-radius:8px}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i3.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: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i3.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
78
92
  }
79
93
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: UploadComponent, decorators: [{
80
94
  type: Component,
@@ -88,6 +102,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
88
102
  useExisting: UploadComponent,
89
103
  multi: true
90
104
  }
91
- ], template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}</label>\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n />\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"fileInput.click()\"\r\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"{\r\n'--upload-width': field()?.controlStyle?.width ,\r\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--upload-border-color': field()?.controlStyle?.borderColor ,\r\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\r\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\r\n'--upload-background-color': field()?.controlStyle?.background ,\r\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\r\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\r\n}\"\r\n >\r\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\r\n <span class=\"upload-icon\">\r\n <span\r\n ><img\r\n src=\"https://cdn.godigit.com/retail-life/Upload_documents.svg\"\r\n alt=\"\"\r\n /></span>\r\n <span class=\"upload-text\" [ngStyle]=\"{\r\n'--upload-font-color': field()?.controlStyle?.color ,\r\n'--upload-font-size': field()?.controlStyle?.fontSize ,\r\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\r\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\r\n}\">{{ field()?.placeHolder }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #fileUploadedTemplate>\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file\">\r\n <span class=\"mt-2 right-icon\">\r\n <span><img [src]=\"field()?.imageUrl || 'https://cdn.godigit.com/retail-life/Upload_documents.svg'\" alt=\"\"/></span>\r\n <span [title]=\"file.name\">{{ file.name }}</span>\r\n </span>\r\n <div class=\"mt-2 left-icon\">\r\n <span><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\r\n <span (click)=\"removeFile(i)\" style=\"cursor: pointer;\">\r\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </button>\r\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\r\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:10px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:48px!important;padding:10px;border-radius:8px}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"] }]
92
- }], ctorParameters: () => [{ type: i1.MasterControlService }] });
93
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRWpELE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7QUFvQjNHLE1BQU0sT0FBTyxlQUFlO0lBQ1A7SUFBbkIsWUFBbUIsYUFBb0M7UUFBcEMsa0JBQWEsR0FBYixhQUFhLENBQXVCO0lBQUUsQ0FBQztJQUMxRCxLQUFLLEdBQVMsS0FBSyxDQUFDLFFBQVEsRUFBTyxDQUFDO0lBRXBDLGtDQUFrQztJQUNsQyxhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBUSxJQUFJLENBQUM7SUFDbEIsU0FBUyxHQUFRLENBQUMsS0FBVSxFQUFFLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDcEMsVUFBVSxHQUFRLEdBQUcsRUFBRSxHQUFFLENBQUMsQ0FBQztJQUMzQixRQUFRLEdBQVEsS0FBSyxDQUFDO0lBRXRCLHNDQUFzQztJQUN0QyxVQUFVLENBQUMsR0FBUTtRQUNqQixJQUFJLENBQUMsS0FBSyxHQUFHLEdBQUcsQ0FBQztRQUNqQixJQUFJLEdBQUcsSUFBSSxLQUFLLENBQUMsT0FBTyxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUM7UUFDM0IsQ0FBQzthQUFNLElBQUksR0FBRyxFQUFFLENBQUM7WUFDZixJQUFJLENBQUMsYUFBYSxHQUFHLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDN0IsQ0FBQzthQUFNLENBQUM7WUFDTixJQUFJLENBQUMsYUFBYSxHQUFHLEVBQUUsQ0FBQztRQUMxQixDQUFDO0lBQ0gsQ0FBQztJQUVELGdCQUFnQixDQUFDLEVBQU87UUFDdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7SUFDdkIsQ0FBQztJQUVELGdCQUFnQixDQUFDLFVBQWU7UUFDOUIsSUFBSSxDQUFDLFFBQVEsR0FBRyxVQUFVLENBQUM7SUFDN0IsQ0FBQztJQUVELHVCQUF1QjtJQUN2QixjQUFjLENBQUMsS0FBVTtRQUN2QixNQUFNLEtBQUssR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQztRQUNqQyxJQUFJLEtBQUssSUFBSSxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRSxDQUFDO1lBQzlCLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO2dCQUMzQixJQUFJLENBQUMsYUFBYSxHQUFHLEtBQUssQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7Z0JBQ3ZDLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQztZQUNsQyxDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFBSSxDQUFDLGFBQWEsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO2dCQUNoQyxJQUFJLENBQUMsS0FBSyxHQUFHLEtBQUssQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUN4QixDQUFDO1lBQ0QsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUM7WUFDM0IsSUFBSSxDQUFDLFVBQVUsRUFBRSxDQUFDO1FBQ3BCLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQVU7UUFDbkIsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLENBQUMsS0FBSyxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBQ3BDLElBQUksSUFBSSxDQUFDLEtBQUssRUFBRSxFQUFFLFFBQVEsRUFBRSxDQUFDO1lBQzNCLElBQUksQ0FBQyxLQUFLLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUN2QyxDQUFDO2FBQU0sQ0FBQztZQUNOLElBQUksQ0FBQyxLQUFLLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUM7UUFDNUUsQ0FBQztRQUNELElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzdCLENBQUM7SUFFRCxRQUFRO1FBQ04sT0FBTyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sR0FBRyxDQUFDLENBQUM7SUFDdkMsQ0FBQzt3R0EvRFUsZUFBZTs0RkFBZixlQUFlLDRMQVJmO1lBQ1Q7Z0JBQ0UsT0FBTyxFQUFFLGlCQUFpQjtnQkFDMUIsV0FBVyxFQUFFLGVBQWU7Z0JBQzVCLEtBQUssRUFBRSxJQUFJO2FBQ1o7U0FDRiwwQkNyQkgsNjdGQStEQSxxbUREdERJLFlBQVksa2JBQ1osV0FBVyw4QkFDWCxtQkFBbUI7OzRGQVlWLGVBQWU7a0JBbEIzQixTQUFTOytCQUNFLFlBQVksY0FDVixJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixXQUFXO3dCQUNYLG1CQUFtQjtxQkFDcEIsYUFHVTt3QkFDVDs0QkFDRSxPQUFPLEVBQUUsaUJBQWlCOzRCQUMxQixXQUFXLGlCQUFpQjs0QkFDNUIsS0FBSyxFQUFFLElBQUk7eUJBQ1o7cUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGlucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE1hc3RlckNvbnRyb2xTZXJ2aWNlIH0gZnJvbSAnLi4vbWFzdGVyLWNvbnRyb2wuc2VydmljZSc7XHJcbmltcG9ydCB7IENvbnRyb2xWYWx1ZUFjY2Vzc29yLCBGb3Jtc01vZHVsZSwgTkdfVkFMVUVfQUNDRVNTT1IsIFJlYWN0aXZlRm9ybXNNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi11cGxvYWQnLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGUsXHJcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlXHJcbiAgXSxcclxuICB0ZW1wbGF0ZVVybDogJy4vdXBsb2FkLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdXBsb2FkLmNvbXBvbmVudC5jc3MnLFxyXG4gIHByb3ZpZGVyczogW1xyXG4gICAge1xyXG4gICAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcclxuICAgICAgdXNlRXhpc3Rpbmc6IFVwbG9hZENvbXBvbmVudCxcclxuICAgICAgbXVsdGk6IHRydWVcclxuICAgIH1cclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBVcGxvYWRDb21wb25lbnQgaW1wbGVtZW50cyBDb250cm9sVmFsdWVBY2Nlc3NvciB7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG1hc3RlclNlcnZpY2UgOiBNYXN0ZXJDb250cm9sU2VydmljZSl7fVxyXG4gIGZpZWxkIDogYW55ID0gaW5wdXQucmVxdWlyZWQ8YW55PigpO1xyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBwcm9wZXJ0aWVzXHJcbiAgdXBsb2FkZWRGaWxlczogRmlsZVtdID0gW107XHJcbiAgdmFsdWU6IGFueSA9IG51bGw7XHJcbiAgX29uQ2hhbmdlOiBhbnkgPSAodmFsdWU6IGFueSkgPT4ge307XHJcbiAgX29uVG91Y2hlZDogYW55ID0gKCkgPT4ge307XHJcbiAgZGlzYWJsZWQ6IGFueSA9IGZhbHNlO1xyXG5cclxuICAvLyBDb250cm9sVmFsdWVBY2Nlc3NvciBpbXBsZW1lbnRhdGlvblxyXG4gIHdyaXRlVmFsdWUob2JqOiBhbnkpIHtcclxuICAgIHRoaXMudmFsdWUgPSBvYmo7XHJcbiAgICBpZiAob2JqICYmIEFycmF5LmlzQXJyYXkob2JqKSkge1xyXG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBvYmo7XHJcbiAgICB9IGVsc2UgaWYgKG9iaikge1xyXG4gICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBbb2JqXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtdO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPbkNoYW5nZShmbjogYW55KSB7XHJcbiAgICB0aGlzLl9vbkNoYW5nZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSkge1xyXG4gICAgdGhpcy5fb25Ub3VjaGVkID0gZm47XHJcbiAgfVxyXG5cclxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGFueSkge1xyXG4gICAgdGhpcy5kaXNhYmxlZCA9IGlzRGlzYWJsZWQ7XHJcbiAgfVxyXG5cclxuICAvLyBGaWxlIHVwbG9hZCBoYW5kbGluZ1xyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IGZpbGVzID0gZXZlbnQudGFyZ2V0LmZpbGVzO1xyXG4gICAgaWYgKGZpbGVzICYmIGZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICAgaWYgKHRoaXMuZmllbGQoKT8ubXVsdGlwbGUpIHtcclxuICAgICAgICB0aGlzLnVwbG9hZGVkRmlsZXMgPSBBcnJheS5mcm9tKGZpbGVzKTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gdGhpcy51cGxvYWRlZEZpbGVzO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtmaWxlc1swXV07XHJcbiAgICAgICAgdGhpcy52YWx1ZSA9IGZpbGVzWzBdO1xyXG4gICAgICB9XHJcbiAgICAgIHRoaXMuX29uQ2hhbmdlKHRoaXMudmFsdWUpO1xyXG4gICAgICB0aGlzLl9vblRvdWNoZWQoKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHJlbW92ZUZpbGUoaW5kZXg6IGFueSkge1xyXG4gICAgdGhpcy51cGxvYWRlZEZpbGVzLnNwbGljZShpbmRleCwgMSk7XHJcbiAgICBpZiAodGhpcy5maWVsZCgpPy5tdWx0aXBsZSkge1xyXG4gICAgICB0aGlzLnZhbHVlID0gWy4uLnRoaXMudXBsb2FkZWRGaWxlc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnZhbHVlID0gdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDAgPyB0aGlzLnVwbG9hZGVkRmlsZXNbMF0gOiBudWxsO1xyXG4gICAgfVxyXG4gICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgfVxyXG5cclxuICBoYXNGaWxlcygpOiBhbnkge1xyXG4gICAgcmV0dXJuIHRoaXMudXBsb2FkZWRGaWxlcy5sZW5ndGggPiAwO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGUgdXBsb2FkLWxhYmVsXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiPnt7ZmllbGQoKT8ubGFiZWx9fTwvbGFiZWw+XHJcbiAgPGlucHV0XHJcbiAgICBoaWRkZW5cclxuICAgIFt0eXBlXT1cImZpZWxkKCk/LmNvbnRyb2xUeXBlXCJcclxuICAgIFtuYW1lXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbaWRdPVwiZmllbGQoKT8uZmllbGROYW1lXCJcclxuICAgIFttdWx0aXBsZV09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5tdWx0aXBsZVwiXHJcbiAgICBbYWNjZXB0XT1cImZpZWxkKCk/LmNvbmZpZ0RhdGE/LmFjY2VwdFwiXHJcbiAgICAjZmlsZUlucHV0XHJcbiAgICAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIlxyXG4gICAgKGNsaWNrKT1cImZpbGVJbnB1dC52YWx1ZSA9ICcnXCJcclxuICAgIFtyZXF1aXJlZF09XCJmaWVsZCgpPy52YWxpZGF0b3JzPy5pc1JlcXVpcmVkXCJcclxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXHJcbiAgLz5cclxuICA8YnV0dG9uXHJcbiAgICB0eXBlPVwiYnV0dG9uXCJcclxuICAgIGNsYXNzPVwidXBsb2FkLWJ0blwiXHJcbiAgICAoY2xpY2spPVwiZmlsZUlucHV0LmNsaWNrKClcIlxyXG4gICAgW25nQ2xhc3NdPVwiZmllbGQoKT8ubGFiZWwgPyAnbGlnaHRiYWNrZ3JvdW5kJyA6ICdzdWNjZXNzQmFja2dyb3VuZCdcIlxyXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgIFtuZ1N0eWxlXT1cIntcclxuJy0tdXBsb2FkLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy53aWR0aCAsXHJcbictLXVwbG9hZC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxyXG4nLS11cGxvYWQtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLXVwbG9hZC1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tdXBsb2FkLWJvcmRlci1zdHlsZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyU3R5bGUgLFxyXG4nLS11cGxvYWQtYmFja2dyb3VuZC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLXVwbG9hZC1mb2N1cy1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS11cGxvYWQtZm9jdXMtYmFja2dyb3VuZC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kICxcclxufVwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkKCk/LmxhYmVsICYmICFoYXNGaWxlcygpOyBlbHNlIGZpbGVVcGxvYWRlZFRlbXBsYXRlXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWljb25cIj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgPjxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vcmV0YWlsLWxpZmUvVXBsb2FkX2RvY3VtZW50cy5zdmdcIlxyXG4gICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgIC8+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLXRleHRcIiBbbmdTdHlsZV09XCJ7XHJcbictLXVwbG9hZC1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLXVwbG9hZC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcclxuJy0tdXBsb2FkLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0LFxyXG4nLS11cGxvYWQtZm9jdXMtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNDb2xvciAsXHJcbn1cIj57eyBmaWVsZCgpPy5wbGFjZUhvbGRlciB9fTwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ZpbGVVcGxvYWRlZFRlbXBsYXRlPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHVwbG9hZGVkRmlsZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInVwbG9hZGVkLWZpbGVcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cIm10LTIgcmlnaHQtaWNvblwiPlxyXG4gICAgICAgICAgPHNwYW4+PGltZyBbc3JjXT1cImZpZWxkKCk/LmltYWdlVXJsIHx8ICdodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS9VcGxvYWRfZG9jdW1lbnRzLnN2ZydcIiBhbHQ9XCJcIi8+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gW3RpdGxlXT1cImZpbGUubmFtZVwiPnt7IGZpbGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm10LTIgbGVmdC1pY29uXCI+XHJcbiAgICAgICAgICA8c3Bhbj48aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL3Zpc2liaWxpdHktb3VpLnN2Z1wiIGFsdD1cIlwiLz48L3NwYW4+XHJcbiAgICAgICAgICA8c3BhbiAoY2xpY2spPVwicmVtb3ZlRmlsZShpKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICA8aW1nIHNyYz1cImh0dHBzOi8vY2RuLmdvZGlnaXQuY29tL3JldGFpbC1saWZlL2RlbGV0ZS1vdWkuc3ZnXCIgYWx0PVwiXCIvPlxyXG4gICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9idXR0b24+XHJcbiAgPGRpdiBjbGFzcz1cInVwbG9hZC1pbmZvXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJUZXh0XCI+e3tmaWVsZCgpPy5jb25maWdEYXRhPy5zdWJUZXh0fX08L2Rpdj5cclxuIl19
105
+ ], template: "<label class=\"field-lable upload-label\" *ngIf=\"field() && field()?.isVisible && field()?.isShowLabel\">{{field()?.label}}</label>\r\n @if(reactiveFormControlobject()) {\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n [formControl]=\"reactiveFormControlobject()\"\r\n />\r\n }@else {\r\n <input\r\n hidden\r\n [type]=\"field()?.controlType\"\r\n [name]=\"field()?.fieldName\"\r\n [id]=\"field()?.fieldName\"\r\n [multiple]=\"field()?.configData?.multiple\"\r\n [accept]=\"field()?.configData?.accept\"\r\n #fileInput\r\n (change)=\"onFileSelected($event)\"\r\n (click)=\"fileInput.value = ''\"\r\n [required]=\"field()?.validators?.isRequired\"\r\n [disabled]=\"disabled\"\r\n />\r\n }\r\n <button\r\n type=\"button\"\r\n class=\"upload-btn\"\r\n (click)=\"triggerFileInput()\"\r\n [ngClass]=\"field()?.label ? 'lightbackground' : 'successBackground'\"\r\n *ngIf=\"field() && field()?.isVisible\"\r\n [disabled]=\"disabled\"\r\n [ngStyle]=\"{\r\n'--upload-width': field()?.controlStyle?.width ,\r\n'--upload-border-radius': field()?.controlStyle?.borderRadius ,\r\n'--upload-border-color': field()?.controlStyle?.borderColor ,\r\n'--upload-border-width': field()?.controlStyle?.borderWidth ,\r\n'--upload-border-style': field()?.controlStyle?.borderStyle ,\r\n'--upload-background-color': field()?.controlStyle?.background ,\r\n'--upload-focus-border-color': field()?.controlStyle?.focusBorderColor ,\r\n'--upload-focus-background-color': field()?.controlStyle?.focusBackground ,\r\n}\"\r\n >\r\n <ng-container *ngIf=\"field()?.label && !hasFiles(); else fileUploadedTemplate\">\r\n <span class=\"upload-icon\">\r\n <span\r\n ><img\r\n src=\"https://cdn.godigit.com/retail-life/Upload_documents.svg\"\r\n alt=\"\"\r\n /></span>\r\n <span class=\"upload-text\" [ngStyle]=\"{\r\n'--upload-font-color': field()?.controlStyle?.color ,\r\n'--upload-font-size': field()?.controlStyle?.fontSize ,\r\n'--upload-font-weight': field()?.controlStyle?.fontWeight,\r\n'--upload-focus-font-color': field()?.controlStyle?.focusColor ,\r\n}\">{{ field()?.placeHolder }}</span>\r\n </span>\r\n </ng-container>\r\n <ng-template #fileUploadedTemplate>\r\n <div *ngFor=\"let file of uploadedFiles; let i = index\" class=\"uploaded-file d-flex gap-4\">\r\n <span class=\"mt-2 right-icon\">\r\n <span><img [src]=\"field()?.imageUrl || 'https://cdn.godigit.com/retail-life/Upload_documents.svg'\" alt=\"\"/></span>\r\n <span [title]=\"file.name\">{{ file.name }}</span>\r\n </span>\r\n <div class=\"mt-2 left-icon\">\r\n <span><img src=\"https://cdn.godigit.com/retail-life/visibility-oui.svg\" alt=\"\"/></span>\r\n <span (click)=\"removeFile(i)\" style=\"cursor: pointer;\">\r\n <img src=\"https://cdn.godigit.com/retail-life/delete-oui.svg\" alt=\"\"/>\r\n </span>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </button>\r\n <div class=\"upload-info\" *ngIf=\"field() && field()?.isVisible && field()?.configData?.subText\">{{field()?.configData?.subText}}</div>\r\n", styles: ["*{font-family:mulish!important}.field-lable{font-size:10px!important;font-weight:700!important;color:#444!important;margin-bottom:0!important}.upload-label{opacity:1}.upload-btn{width:100%!important;height:48px!important;padding:10px;border-radius:8px}.upload-btn{width:var(--upload-width , 100%)!important;border-radius:var(--upload-border-radius , 8px)!important}.lightbackground{border-color:#999;border-width:1px;border-style:dashed;background:#fff;color:#444;font-size:14px;font-weight:700}.lightbackground{border-color:var(--upload-border-color , #999)!important;border-width:var(--upload-border-width , 1px)!important;border-style:var(--upload-border-style , dashed)!important;background:var(--upload-background-color , #ffffff)!important}.successBackground{border-color:var(--upload-focus-border-color , #ddd)!important;background:var(--upload-focus-background-color , #fafafa)!important;color:var(--upload-focus-font-color , #444)!important}.successBackground{border:1px dashed #ddd;background:#fafafa;color:#444;display:flex;justify-content:space-between}.upload-icon{display:flex;justify-content:center;gap:7px}.upload-text{color:#444!important;font-weight:700!important;font-size:14px!important}.upload-text{color:var(--upload-font-color , #444)!important;font-size:var( --upload-font-size , 14px)!important;font-weight:var(--upload-font-weight , 700)!important}.right-icon{display:flex;gap:10px;margin-left:.5em}.left-icon{display:flex;gap:15px;margin-right:1em}.upload-info{font-size:10px;font-weight:500;font-family:Mulish!important;letter-spacing:0px;color:#444}\n"] }]
106
+ }], ctorParameters: () => [{ type: i1.MasterControlService }], propDecorators: { fileInput: [{
107
+ type: ViewChild,
108
+ args: ['fileInput']
109
+ }], filesChanged: [{
110
+ type: Output
111
+ }], fileRemoved: [{
112
+ type: Output
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXBsb2FkLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL21hc3Rlci1jb250cm9sL3NyYy9saWIvdXBsb2FkL3VwbG9hZC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9tYXN0ZXItY29udHJvbC9zcmMvbGliL3VwbG9hZC91cGxvYWQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFFLFNBQVMsRUFBYyxNQUFNLEVBQUUsWUFBWSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRTlGLE9BQU8sRUFBd0IsV0FBVyxFQUFFLGlCQUFpQixFQUFFLG1CQUFtQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7Ozs7O0FBb0IzRyxNQUFNLE9BQU8sZUFBZTtJQUNQO0lBQW5CLFlBQW1CLGFBQW9DO1FBQXBDLGtCQUFhLEdBQWIsYUFBYSxDQUF1QjtJQUFFLENBQUM7SUFDMUQsS0FBSyxHQUFTLEtBQUssQ0FBQyxRQUFRLEVBQU8sQ0FBQztJQUNwQyx5QkFBeUIsR0FBUyxLQUFLLEVBQU8sQ0FBQztJQUV2QixTQUFTLENBQWdDO0lBRXZELFlBQVksR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO0lBQzFDLFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBaUMsQ0FBQztJQUUxRSxrQ0FBa0M7SUFDbEMsYUFBYSxHQUFXLEVBQUUsQ0FBQztJQUMzQixLQUFLLEdBQVEsSUFBSSxDQUFDO0lBQ2xCLFNBQVMsR0FBUSxDQUFDLEtBQVUsRUFBRSxFQUFFLEdBQUUsQ0FBQyxDQUFDO0lBQ3BDLFVBQVUsR0FBUSxHQUFHLEVBQUUsR0FBRSxDQUFDLENBQUM7SUFDM0IsUUFBUSxHQUFRLEtBQUssQ0FBQztJQUV0QixzQ0FBc0M7SUFDdEMsVUFBVSxDQUFD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RUQsZ0JBQWdCO1FBQ2QsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxhQUFhLENBQUMsS0FBSyxFQUFFLENBQUM7UUFDdkMsQ0FBQztJQUNILENBQUM7d0dBL0VVLGVBQWU7NEZBQWYsZUFBZSx1YkFSZjtZQUNUO2dCQUNFLE9BQU8sRUFBRSxpQkFBaUI7Z0JBQzFCLFdBQVcsRUFBRSxlQUFlO2dCQUM1QixLQUFLLEVBQUUsSUFBSTthQUNaO1NBQ0Ysa0lDckJILDQrR0FnRkEscW1ERHZFSSxZQUFZLGtiQUNaLFdBQVcsbW5CQUNYLG1CQUFtQjs7NEZBWVYsZUFBZTtrQkFsQjNCLFNBQVM7K0JBQ0UsWUFBWSxjQUNWLElBQUksV0FDUDt3QkFDUCxZQUFZO3dCQUNaLFdBQVc7d0JBQ1gsbUJBQW1CO3FCQUNwQixhQUdVO3dCQUNUOzRCQUNFLE9BQU8sRUFBRSxpQkFBaUI7NEJBQzFCLFdBQVcsaUJBQWlCOzRCQUM1QixLQUFLLEVBQUUsSUFBSTt5QkFDWjtxQkFDRjt5RkFPdUIsU0FBUztzQkFBaEMsU0FBUzt1QkFBQyxXQUFXO2dCQUVaLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csV0FBVztzQkFBcEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgaW5wdXQsIFZpZXdDaGlsZCwgRWxlbWVudFJlZiwgT3V0cHV0LCBFdmVudEVtaXR0ZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTWFzdGVyQ29udHJvbFNlcnZpY2UgfSBmcm9tICcuLi9tYXN0ZXItY29udHJvbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1zTW9kdWxlLCBOR19WQUxVRV9BQ0NFU1NPUiwgUmVhY3RpdmVGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXVwbG9hZCcsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcclxuICBpbXBvcnRzOiBbXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBGb3Jtc01vZHVsZSxcclxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi91cGxvYWQuY29tcG9uZW50LmNzcycsXHJcbiAgcHJvdmlkZXJzOiBbXHJcbiAgICB7XHJcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTFVFX0FDQ0VTU09SLFxyXG4gICAgICB1c2VFeGlzdGluZzogVXBsb2FkQ29tcG9uZW50LFxyXG4gICAgICBtdWx0aTogdHJ1ZVxyXG4gICAgfVxyXG4gIF1cclxufSlcclxuZXhwb3J0IGNsYXNzIFVwbG9hZENvbXBvbmVudCBpbXBsZW1lbnRzIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHtcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbWFzdGVyU2VydmljZSA6IE1hc3RlckNvbnRyb2xTZXJ2aWNlKXt9XHJcbiAgZmllbGQgOiBhbnkgPSBpbnB1dC5yZXF1aXJlZDxhbnk+KCk7XHJcbiAgcmVhY3RpdmVGb3JtQ29udHJvbG9iamVjdCA6IGFueSA9IGlucHV0PGFueT4oKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0ITogRWxlbWVudFJlZjxIVE1MSW5wdXRFbGVtZW50PjtcclxuXHJcbiAgQE91dHB1dCgpIGZpbGVzQ2hhbmdlZCA9IG5ldyBFdmVudEVtaXR0ZXI8RmlsZVtdPigpO1xyXG4gIEBPdXRwdXQoKSBmaWxlUmVtb3ZlZCA9IG5ldyBFdmVudEVtaXR0ZXI8eyBmaWxlOiBGaWxlLCBpbmRleDogbnVtYmVyIH0+KCk7XHJcblxyXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIHByb3BlcnRpZXNcclxuICB1cGxvYWRlZEZpbGVzOiBGaWxlW10gPSBbXTtcclxuICB2YWx1ZTogYW55ID0gbnVsbDtcclxuICBfb25DaGFuZ2U6IGFueSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuICBfb25Ub3VjaGVkOiBhbnkgPSAoKSA9PiB7fTtcclxuICBkaXNhYmxlZDogYW55ID0gZmFsc2U7XHJcblxyXG4gIC8vIENvbnRyb2xWYWx1ZUFjY2Vzc29yIGltcGxlbWVudGF0aW9uXHJcbiAgd3JpdGVWYWx1ZShvYmo6IGFueSkge1xyXG4gICAgdGhpcy52YWx1ZSA9IG9iajtcclxuICAgIGlmIChvYmogJiYgQXJyYXkuaXNBcnJheShvYmopKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IG9iajtcclxuICAgIH0gZWxzZSBpZiAob2JqKSB7XHJcbiAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IFtvYmpdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW107XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpIHtcclxuICAgIHRoaXMuX29uQ2hhbmdlID0gZm47XHJcbiAgfVxyXG5cclxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KSB7XHJcbiAgICB0aGlzLl9vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHNldERpc2FibGVkU3RhdGUoaXNEaXNhYmxlZDogYW55KSB7XHJcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcclxuICB9XHJcblxyXG4gIC8vIEZpbGUgdXBsb2FkIGhhbmRsaW5nXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgY29uc3QgZmlsZXMgPSBldmVudC50YXJnZXQuZmlsZXM7XHJcbiAgICBpZiAoZmlsZXMgJiYgZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgICBpZiAodGhpcy5maWVsZCgpPy5tdWx0aXBsZSkge1xyXG4gICAgICAgIHRoaXMudXBsb2FkZWRGaWxlcyA9IEFycmF5LmZyb20oZmlsZXMpO1xyXG4gICAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnVwbG9hZGVkRmlsZXM7XHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy51cGxvYWRlZEZpbGVzID0gW2ZpbGVzWzBdXTtcclxuICAgICAgICB0aGlzLnZhbHVlID0gZmlsZXNbMF07XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5fb25DaGFuZ2UodGhpcy52YWx1ZSk7XHJcbiAgICAgIHRoaXMuX29uVG91Y2hlZCgpO1xyXG4gICAgfVxyXG4gICAgdGhpcy5maWxlc0NoYW5nZWQuZW1pdCh0aGlzLnVwbG9hZGVkRmlsZXMpO1xyXG4gIH1cclxuXHJcbiAgcmVtb3ZlRmlsZShpbmRleDogYW55KSB7XHJcbiAgICBjb25zdCByZW1vdmVkRmlsZSA9IHRoaXMudXBsb2FkZWRGaWxlc1tpbmRleF07XHJcbiAgICB0aGlzLnVwbG9hZGVkRmlsZXMuc3BsaWNlKGluZGV4LCAxKTtcclxuICAgIGlmICh0aGlzLmZpZWxkKCk/Lm11bHRpcGxlKSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSBbLi4udGhpcy51cGxvYWRlZEZpbGVzXTtcclxuICAgIH0gZWxzZSB7XHJcbiAgICAgIHRoaXMudmFsdWUgPSB0aGlzLnVwbG9hZGVkRmlsZXMubGVuZ3RoID4gMCA/IHRoaXMudXBsb2FkZWRGaWxlc1swXSA6IG51bGw7XHJcbiAgICB9XHJcbiAgICB0aGlzLl9vbkNoYW5nZSh0aGlzLnZhbHVlKTtcclxuICAgIHRoaXMuZmlsZVJlbW92ZWQuZW1pdCh7IGZpbGU6IHJlbW92ZWRGaWxlLCBpbmRleCB9KTtcclxuICAgIHRoaXMuZmlsZXNDaGFuZ2VkLmVtaXQodGhpcy51cGxvYWRlZEZpbGVzKTtcclxuICB9XHJcblxyXG4gIGhhc0ZpbGVzKCk6IGFueSB7XHJcbiAgICByZXR1cm4gdGhpcy51cGxvYWRlZEZpbGVzLmxlbmd0aCA+IDA7XHJcbiAgfVxyXG5cclxuICB0cmlnZ2VyRmlsZUlucHV0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZmlsZUlucHV0KSB7XHJcbiAgICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICAgIH1cclxuICB9XHJcbn1cclxuIiwiPGxhYmVsIGNsYXNzPVwiZmllbGQtbGFibGUgdXBsb2FkLWxhYmVsXCIgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZSAmJiBmaWVsZCgpPy5pc1Nob3dMYWJlbFwiPnt7ZmllbGQoKT8ubGFiZWx9fTwvbGFiZWw+XHJcbiAgQGlmKHJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKSkge1xyXG4gIDxpbnB1dFxyXG4gICAgaGlkZGVuXHJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXHJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbbXVsdGlwbGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubXVsdGlwbGVcIlxyXG4gICAgW2FjY2VwdF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5hY2NlcHRcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIChjbGljayk9XCJmaWxlSW5wdXQudmFsdWUgPSAnJ1wiXHJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgW2Zvcm1Db250cm9sXT1cInJlYWN0aXZlRm9ybUNvbnRyb2xvYmplY3QoKVwiXHJcbiAgLz5cclxuICB9QGVsc2Uge1xyXG4gIDxpbnB1dFxyXG4gICAgaGlkZGVuXHJcbiAgICBbdHlwZV09XCJmaWVsZCgpPy5jb250cm9sVHlwZVwiXHJcbiAgICBbbmFtZV09XCJmaWVsZCgpPy5maWVsZE5hbWVcIlxyXG4gICAgW2lkXT1cImZpZWxkKCk/LmZpZWxkTmFtZVwiXHJcbiAgICBbbXVsdGlwbGVdPVwiZmllbGQoKT8uY29uZmlnRGF0YT8ubXVsdGlwbGVcIlxyXG4gICAgW2FjY2VwdF09XCJmaWVsZCgpPy5jb25maWdEYXRhPy5hY2NlcHRcIlxyXG4gICAgI2ZpbGVJbnB1dFxyXG4gICAgKGNoYW5nZSk9XCJvbkZpbGVTZWxlY3RlZCgkZXZlbnQpXCJcclxuICAgIChjbGljayk9XCJmaWxlSW5wdXQudmFsdWUgPSAnJ1wiXHJcbiAgICBbcmVxdWlyZWRdPVwiZmllbGQoKT8udmFsaWRhdG9ycz8uaXNSZXF1aXJlZFwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gIC8+XHJcbiAgfVxyXG4gIDxidXR0b25cclxuICAgIHR5cGU9XCJidXR0b25cIlxyXG4gICAgY2xhc3M9XCJ1cGxvYWQtYnRuXCJcclxuICAgIChjbGljayk9XCJ0cmlnZ2VyRmlsZUlucHV0KClcIlxyXG4gICAgW25nQ2xhc3NdPVwiZmllbGQoKT8ubGFiZWwgPyAnbGlnaHRiYWNrZ3JvdW5kJyA6ICdzdWNjZXNzQmFja2dyb3VuZCdcIlxyXG4gICAgKm5nSWY9XCJmaWVsZCgpICYmIGZpZWxkKCk/LmlzVmlzaWJsZVwiXHJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxyXG4gICAgIFtuZ1N0eWxlXT1cIntcclxuJy0tdXBsb2FkLXdpZHRoJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy53aWR0aCAsXHJcbictLXVwbG9hZC1ib3JkZXItcmFkaXVzJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJSYWRpdXMgLFxyXG4nLS11cGxvYWQtYm9yZGVyLWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5ib3JkZXJDb2xvciAsXHJcbictLXVwbG9hZC1ib3JkZXItd2lkdGgnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmJvcmRlcldpZHRoICxcclxuJy0tdXBsb2FkLWJvcmRlci1zdHlsZSc6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYm9yZGVyU3R5bGUgLFxyXG4nLS11cGxvYWQtYmFja2dyb3VuZC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uYmFja2dyb3VuZCAsXHJcbictLXVwbG9hZC1mb2N1cy1ib3JkZXItY29sb3InOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvY3VzQm9yZGVyQ29sb3IgLFxyXG4nLS11cGxvYWQtZm9jdXMtYmFja2dyb3VuZC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNCYWNrZ3JvdW5kICxcclxufVwiXHJcbiAgPlxyXG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImZpZWxkKCk/LmxhYmVsICYmICFoYXNGaWxlcygpOyBlbHNlIGZpbGVVcGxvYWRlZFRlbXBsYXRlXCI+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLWljb25cIj5cclxuICAgICAgICA8c3BhblxyXG4gICAgICAgICAgPjxpbWdcclxuICAgICAgICAgICAgc3JjPVwiaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vcmV0YWlsLWxpZmUvVXBsb2FkX2RvY3VtZW50cy5zdmdcIlxyXG4gICAgICAgICAgICBhbHQ9XCJcIlxyXG4gICAgICAgIC8+PC9zcGFuPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwidXBsb2FkLXRleHRcIiBbbmdTdHlsZV09XCJ7XHJcbictLXVwbG9hZC1mb250LWNvbG9yJzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5jb2xvciAsXHJcbictLXVwbG9hZC1mb250LXNpemUnOiBmaWVsZCgpPy5jb250cm9sU3R5bGU/LmZvbnRTaXplICxcclxuJy0tdXBsb2FkLWZvbnQtd2VpZ2h0JzogZmllbGQoKT8uY29udHJvbFN0eWxlPy5mb250V2VpZ2h0LFxyXG4nLS11cGxvYWQtZm9jdXMtZm9udC1jb2xvcic6IGZpZWxkKCk/LmNvbnRyb2xTdHlsZT8uZm9jdXNDb2xvciAsXHJcbn1cIj57eyBmaWVsZCgpPy5wbGFjZUhvbGRlciB9fTwvc3Bhbj5cclxuICAgICAgPC9zcGFuPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctdGVtcGxhdGUgI2ZpbGVVcGxvYWRlZFRlbXBsYXRlPlxyXG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBmaWxlIG9mIHVwbG9hZGVkRmlsZXM7IGxldCBpID0gaW5kZXhcIiBjbGFzcz1cInVwbG9hZGVkLWZpbGUgZC1mbGV4IGdhcC00XCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJtdC0yIHJpZ2h0LWljb25cIj5cclxuICAgICAgICAgIDxzcGFuPjxpbWcgW3NyY109XCJmaWVsZCgpPy5pbWFnZVVybCB8fCAnaHR0cHM6Ly9jZG4uZ29kaWdpdC5jb20vcmV0YWlsLWxpZmUvVXBsb2FkX2RvY3VtZW50cy5zdmcnXCIgYWx0PVwiXCIvPjwvc3Bhbj5cclxuICAgICAgICAgIDxzcGFuIFt0aXRsZV09XCJmaWxlLm5hbWVcIj57eyBmaWxlLm5hbWUgfX08L3NwYW4+XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0yIGxlZnQtaWNvblwiPlxyXG4gICAgICAgICAgPHNwYW4+PGltZyBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS92aXNpYmlsaXR5LW91aS5zdmdcIiBhbHQ9XCJcIi8+PC9zcGFuPlxyXG4gICAgICAgICAgPHNwYW4gKGNsaWNrKT1cInJlbW92ZUZpbGUoaSlcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgPGltZyBzcmM9XCJodHRwczovL2Nkbi5nb2RpZ2l0LmNvbS9yZXRhaWwtbGlmZS9kZWxldGUtb3VpLnN2Z1wiIGFsdD1cIlwiLz5cclxuICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvYnV0dG9uPlxyXG4gIDxkaXYgY2xhc3M9XCJ1cGxvYWQtaW5mb1wiICpuZ0lmPVwiZmllbGQoKSAmJiBmaWVsZCgpPy5pc1Zpc2libGUgJiYgZmllbGQoKT8uY29uZmlnRGF0YT8uc3ViVGV4dFwiPnt7ZmllbGQoKT8uY29uZmlnRGF0YT8uc3ViVGV4dH19PC9kaXY+XHJcbiJdfQ==