@rangertechnologies/ngnxt 2.0.28 → 2.0.29

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -1,24 +1,2 @@
1
1
  # NxtApp
2
-
3
- This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 8.2.14.
4
-
5
- ## Code scaffolding
6
-
7
- Run `ng generate component component-name --project nxt-app` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project nxt-app`.
8
- > Note: Don't forget to add `--project nxt-app` or else it will be added to the default project in your `angular.json` file.
9
-
10
- ## Build
11
-
12
- Run `ng build nxt-app` to build the project. The build artifacts will be stored in the `dist/` directory.
13
-
14
- ## Publishing
15
-
16
- After building your library with `ng build nxt-app`, go to the dist folder `cd dist/nxt-app` and run `npm publish`.
17
-
18
- ## Running unit tests
19
-
20
- Run `ng test nxt-app` to execute the unit tests via [Karma](https://karma-runner.github.io).
21
-
22
- ## Further help
23
-
24
- To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
2
+ This need to be updated for better impact.
@@ -3,21 +3,25 @@ import * as i0 from "@angular/core";
3
3
  import * as i1 from "@angular/common";
4
4
  import * as i2 from "@angular/forms";
5
5
  export class CustomTableComponent {
6
- tableHeader = '';
6
+ question;
7
+ valueChange = new EventEmitter();
8
+ tableInfo;
9
+ tableHeader;
7
10
  tableData;
8
- tableDataChange = new EventEmitter();
9
- tableIndex;
11
+ addRowColSpan;
10
12
  constructor() { }
11
13
  ngOnInit() {
14
+ if (this.question.Sub_Text__c != undefined) {
15
+ this.tableInfo = JSON.parse(this.question.Sub_Text__c);
16
+ this.tableHeader = this.tableInfo.header;
17
+ this.tableData = this.tableInfo.data;
18
+ if (this.tableData.addRow) {
19
+ this.addRowColSpan = this.tableHeader.length - 2;
20
+ }
21
+ }
12
22
  }
13
23
  addRow() {
14
- const newItem = {
15
- label: '',
16
- imageSrc: 'https://media.istockphoto.com/id/943776434/vector/fire-extinguisher-icon-vector.jpg?s=612x612&w=0&k=20&c=KVaDxuV2TV7fdwn09Tg9HeF3MNyoJC5k2YqSAzpStDY=',
17
- altText: '',
18
- name: '',
19
- value: 'YES'
20
- };
24
+ let newItem = JSON.parse(JSON.stringify(this.tableInfo.newRowDefault));
21
25
  const updatedTableData = [...this.tableData, newItem];
22
26
  this.tableData = updatedTableData;
23
27
  this.emitTableDataValue(updatedTableData);
@@ -26,26 +30,23 @@ export class CustomTableComponent {
26
30
  item.value = value;
27
31
  this.emitTableDataValue(this.tableData);
28
32
  }
29
- updateLabel(rowIndex, label) {
30
- this.tableData[rowIndex].label = label;
33
+ updateLabel(rowIndex, label, value) {
34
+ this.tableData[rowIndex][label] = value;
35
+ this.tableData[rowIndex].name = value.replace(/\s+/g, '').toLowerCase();
31
36
  this.emitTableDataValue(this.tableData);
32
37
  }
33
38
  emitTableDataValue(updatedTableData) {
34
- this.tableDataChange.emit(updatedTableData);
39
+ this.valueChange.emit(updatedTableData);
35
40
  }
36
41
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
37
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomTableComponent, selector: "app-custom-table", inputs: { tableHeader: "tableHeader", tableData: "tableData", tableIndex: "tableIndex" }, outputs: { tableDataChange: "tableDataChange" }, ngImport: i0, template: "<table class=\"table table-striped table-bordered\">\r\n <thead>\r\n <tr>\r\n <th>\r\n {{ tableHeader }}\r\n </th>\r\n <th class=\"permission\">\r\n YES\r\n </th>\r\n <th class=\"permission\">\r\n NO\r\n </th>\r\n <th class=\"permission\">\r\n NA\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"safetyMeasuresTableBody\">\r\n <tr *ngFor=\"let item of tableData; let i = index\">\r\n <td>\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item.imageSrc\" [alt]=\"item.altText\">\r\n <input type=\"text\" [(ngModel)]=\"item.label\" (ngModelChange)=\"updateLabel(i, item.label)\" class=\"she-line-input table-input\">\r\n </td>\r\n <td class=\"permission_yes\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"YES\" (change)=\"updateRadio(item, 'YES')\">\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"NO\" (change)=\"updateRadio(item, 'NO')\">\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"NA\" (change)=\"updateRadio(item, 'NA')\">\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <b>Add More</b>\r\n </td>\r\n <td colspan=\"3\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\r\n +\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n\r\n\r\n <!-- <div class=\"row\">\r\n <div class=\"col-lg-12 m-t-20\">\r\n <table class=\"table table-striped table-bordered\" style=\"text-align:center\">\r\n <thead>\r\n <tr>\r\n <th style=\"text-align:left\">\r\n Atmospheric Condition\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 1\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 2\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 3\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 4\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"atmosphericCondition\">\r\n <tr *ngFor=\"let item1 of tableData\">\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Oxygen (19.5-23.5%) {{ item.label }}</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"number\" id=\"test1_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\" >\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"number\" id=\"test2_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\">\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"number\" id=\"test3_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\" >\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"number\" id=\"test4_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\">\r\n </td>\r\n </tr>\r\n <tr id=\"atmosphericAddmore\">\r\n <td style=\"text-align: left; padding: 13px 11px; cursor: pointer; margin-right: 32px;\" #add id=\"atmos\" (click)=\"add_atmospheriCondition_row(add)\">\r\n <b>Add More +</b>\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n </tr> \r\n \r\n <tr *ngFor=\"let item2 of tableData\">\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Tested By</p>\r\n </td>\r\n <td class=\"permission_na\">\r\n <ng-select style=\"width: 175px\" id=\"test1_tested_by\" (change)=\"onTested1Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test1_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_no\">\r\n <ng-select style=\"width: 175px\" id=\"test2_tested_by\" (change)=\"onTested2Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test2_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_na\">\r\n <ng-select style=\"width: 175px\" id=\"test3_tested_by\" (change)=\"onTested3Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test3_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_no\">\r\n <ng-select style=\"width: 175px\" id=\"test4_tested_by\" (change)=\"onTested4Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test4_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Date & Time</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <input [(ngModel)]=\"test1_time\" id=\"test1_time\" formControlName=\"test1_time\"\r\n type=\"datetime-local\"\r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_na\">\r\n <input [(ngModel)]=\"test2_time\" id=\"test2_time\" type=\"datetime-local\" formControlName=\"test2_time\"\r\n \r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_no\">\r\n\r\n <input [(ngModel)]=\"test3_time\" id=\"test3_time\" type=\"datetime-local\" formControlName=\"test3_time\"\r\n \r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_na\">\r\n\r\n <input [(ngModel)]=\"test4MinDate\" id=\"test4_time\" formControlName=\"test4_time\"\r\n type=\"datetime-local\"\r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Atmospheric conditions are measured periodically</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input31\" class=\"switch-input2\" (change)=\"onTestAssesment1Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified3\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_na\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input4\" class=\"switch-input2\" (change)=\"onTestAssesment2Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified4\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_no\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input5\" class=\"switch-input2\" (change)=\"onTestAssesment3Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified5\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_na\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input6\" class=\"switch-input2\" (change)=\"onTestAssesment4Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified6\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n </tr>\r\n <tr class=\"docs\">\r\n <td>\r\n <p style=\"text-align:left; margin-top: 12px;\">Attachment</p>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test1File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test1File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test2File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test2File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test3File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test3File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test4File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test4File($event)\">\r\n </label>\r\n </td>\r\n </tr>\r\n \r\n </tbody>\r\n </table>\r\n </div>\r\n </div> -->\r\n \r\n\r\n\r\n\r\n", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.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: i2.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
42
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: CustomTableComponent, selector: "app-custom-table", inputs: { question: "question" }, outputs: { valueChange: "valueChange" }, ngImport: i0, template: "<table class=\"table table-striped table-bordered\">\r\n <thead>\r\n <th *ngFor=\"let header of tableHeader; let hi = index\" [class]=\"'col-md-' + header.size\">\r\n {{ header.label }}\r\n </th>\r\n </thead>\r\n <tbody id=\"safetyMeasuresTableBody\">\r\n <tr *ngFor=\"let item of tableData; let i = index\">\r\n <td *ngFor=\"let header of tableHeader; let j = index\">\r\n <div *ngIf=\"header.type === 'imagetext'\" [class]=\"'col-md-' + header.size\" style=\"display: flex;\">\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item.imageSrc\" [alt]=\"item.altText\">\r\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" (ngModelChange)=\"updateLabel(i, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\r\n </div>\r\n <div *ngIf=\"header.type === 'image'\" [class]=\"'col-md-' + header.size\">\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item[header.fieldName]\" [alt]=\"item.altText\">\r\n </div>\r\n <div *ngIf=\"header.type === 'text'\" [class]=\"'col-md-' + header.size\">\r\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" (ngModelChange)=\"updateLabel(i, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\r\n </div>\r\n <div *ngIf=\"header.type === 'radio'\" [class]=\"'col-md-' + header.size\">\r\n <input type=\"radio\" [name]=\"item.name\" [checked]=\"item.value == header.fieldName\" (click)=\"updateRadio(item, header.fieldName)\">\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"tableInfo.addRow\">\r\n <td colspan=\"3\">\r\n <b>Add More</b>\r\n </td>\r\n <td colspan=\"2\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\r\n +\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
38
43
  }
39
44
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CustomTableComponent, decorators: [{
40
45
  type: Component,
41
- args: [{ selector: 'app-custom-table', template: "<table class=\"table table-striped table-bordered\">\r\n <thead>\r\n <tr>\r\n <th>\r\n {{ tableHeader }}\r\n </th>\r\n <th class=\"permission\">\r\n YES\r\n </th>\r\n <th class=\"permission\">\r\n NO\r\n </th>\r\n <th class=\"permission\">\r\n NA\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"safetyMeasuresTableBody\">\r\n <tr *ngFor=\"let item of tableData; let i = index\">\r\n <td>\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item.imageSrc\" [alt]=\"item.altText\">\r\n <input type=\"text\" [(ngModel)]=\"item.label\" (ngModelChange)=\"updateLabel(i, item.label)\" class=\"she-line-input table-input\">\r\n </td>\r\n <td class=\"permission_yes\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"YES\" (change)=\"updateRadio(item, 'YES')\">\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"NO\" (change)=\"updateRadio(item, 'NO')\">\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"radio\" [name]=\"'tableRadio_' + i + '_' + tableIndex \" [ngModel]=\"item.value\" value=\"NA\" (change)=\"updateRadio(item, 'NA')\">\r\n </td>\r\n </tr>\r\n <tr>\r\n <td>\r\n <b>Add More</b>\r\n </td>\r\n <td colspan=\"3\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\r\n +\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>\r\n\r\n\r\n\r\n <!-- <div class=\"row\">\r\n <div class=\"col-lg-12 m-t-20\">\r\n <table class=\"table table-striped table-bordered\" style=\"text-align:center\">\r\n <thead>\r\n <tr>\r\n <th style=\"text-align:left\">\r\n Atmospheric Condition\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 1\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 2\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 3\r\n </th>\r\n <th style=\"text-align:center\">\r\n Test 4\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody id=\"atmosphericCondition\">\r\n <tr *ngFor=\"let item1 of tableData\">\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Oxygen (19.5-23.5%) {{ item.label }}</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"number\" id=\"test1_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\" >\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"number\" id=\"test2_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\">\r\n </td>\r\n <td class=\"permission_no\">\r\n <input type=\"number\" id=\"test3_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\" >\r\n </td>\r\n <td class=\"permission_na\">\r\n <input type=\"number\" id=\"test4_oxygen\" style=\"width: 181px; height: 27px; text-align: center; border: none; background: transparent;\" placeholder=\"item.placeholder\">\r\n </td>\r\n </tr>\r\n <tr id=\"atmosphericAddmore\">\r\n <td style=\"text-align: left; padding: 13px 11px; cursor: pointer; margin-right: 32px;\" #add id=\"atmos\" (click)=\"add_atmospheriCondition_row(add)\">\r\n <b>Add More +</b>\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n <td>\r\n\r\n </td>\r\n </tr> \r\n \r\n <tr *ngFor=\"let item2 of tableData\">\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Tested By</p>\r\n </td>\r\n <td class=\"permission_na\">\r\n <ng-select style=\"width: 175px\" id=\"test1_tested_by\" (change)=\"onTested1Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test1_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_no\">\r\n <ng-select style=\"width: 175px\" id=\"test2_tested_by\" (change)=\"onTested2Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test2_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_na\">\r\n <ng-select style=\"width: 175px\" id=\"test3_tested_by\" (change)=\"onTested3Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test3_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n <td class=\"permission_no\">\r\n <ng-select style=\"width: 175px\" id=\"test4_tested_by\" (change)=\"onTested4Change($event)\" [items]=\"item.dropDownItems\"\r\n formControlName=\"test4_tested_by\" placeholder=\"---Select---\"\r\n >\r\n </ng-select>\r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Date & Time</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <input [(ngModel)]=\"test1_time\" id=\"test1_time\" formControlName=\"test1_time\"\r\n type=\"datetime-local\"\r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_na\">\r\n <input [(ngModel)]=\"test2_time\" id=\"test2_time\" type=\"datetime-local\" formControlName=\"test2_time\"\r\n \r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_no\">\r\n\r\n <input [(ngModel)]=\"test3_time\" id=\"test3_time\" type=\"datetime-local\" formControlName=\"test3_time\"\r\n \r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n <td class=\"permission_na\">\r\n\r\n <input [(ngModel)]=\"test4MinDate\" id=\"test4_time\" formControlName=\"test4_time\"\r\n type=\"datetime-local\"\r\n placeholder=\"DD/MM/YYYY HH:MM\" style=\"width: 75%;\r\n height: 35px;\r\n border:none;\r\n box-shadow: none;\r\n border-bottom: 1px solid #ccc;\">\r\n \r\n </td>\r\n </tr>\r\n <tr>\r\n <td class=\"permission_yes\">\r\n <p style=\"text-align:left; margin-top: 9px;\">Atmospheric conditions are measured periodically</p>\r\n </td>\r\n <td class=\"permission_no\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input31\" class=\"switch-input2\" (change)=\"onTestAssesment1Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified3\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_na\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input4\" class=\"switch-input2\" (change)=\"onTestAssesment2Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified4\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_no\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input5\" class=\"switch-input2\" (change)=\"onTestAssesment3Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified5\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n <td class=\"permission_na\">\r\n <label class=\"switch2\">\r\n <input id=\"switch-input6\" class=\"switch-input2\" (change)=\"onTestAssesment4Change($event.target.checked)\" type=\"checkbox\" [checked]=\"Certified6\" />\r\n <span class=\"switch-label2\" data-on=\"Safe\" data-off=\"Unsafe\"></span> \r\n <span class=\"switch-handle2\"></span> \r\n </label> \r\n </td>\r\n </tr>\r\n <tr class=\"docs\">\r\n <td>\r\n <p style=\"text-align:left; margin-top: 12px;\">Attachment</p>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test1File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test1File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test2File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test2File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test3File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test3File($event)\">\r\n </label>\r\n </td>\r\n <td style=\"width:130px;\">\r\n <div class=\"col-lg-3 document-cnt\" *ngFor=\"let file of test4File;let i = index;\" style=\"width:130px; margin-left: 25px; margin-bottom: 10px;\">\r\n <div class=\"row\" (click)=\"viewDoc(file?.doc)\" style=\"cursor: pointer;\">\r\n <div class=\"col-lg-3 document_image\">\r\n <img [src]=\"getDocIcon(file?.doc)\" style=\"margin-right: 10px;height: 40px;\">\r\n </div>\r\n <div class=\"col-lg-9 document_name\" style=\"overflow:hidden;height:35px;\">\r\n {{file?.name}}\r\n </div>\r\n </div>\r\n </div>\r\n <br>\r\n <label class=\"btn btn-primary\">\r\n Upload File\r\n <input id=\"file\" style=\"display: none;\" type=\"file\" class=\"form-control\" (change)=\"Test4File($event)\">\r\n </label>\r\n </td>\r\n </tr>\r\n \r\n </tbody>\r\n </table>\r\n </div>\r\n </div> -->\r\n \r\n\r\n\r\n\r\n", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}\n"] }]
42
- }], ctorParameters: function () { return []; }, propDecorators: { tableHeader: [{
46
+ args: [{ selector: 'app-custom-table', template: "<table class=\"table table-striped table-bordered\">\r\n <thead>\r\n <th *ngFor=\"let header of tableHeader; let hi = index\" [class]=\"'col-md-' + header.size\">\r\n {{ header.label }}\r\n </th>\r\n </thead>\r\n <tbody id=\"safetyMeasuresTableBody\">\r\n <tr *ngFor=\"let item of tableData; let i = index\">\r\n <td *ngFor=\"let header of tableHeader; let j = index\">\r\n <div *ngIf=\"header.type === 'imagetext'\" [class]=\"'col-md-' + header.size\" style=\"display: flex;\">\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item.imageSrc\" [alt]=\"item.altText\">\r\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" (ngModelChange)=\"updateLabel(i, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\r\n </div>\r\n <div *ngIf=\"header.type === 'image'\" [class]=\"'col-md-' + header.size\">\r\n <img style=\"width: 35px; height: 32px; margin-right: 5px;\" [src]=\"item[header.fieldName]\" [alt]=\"item.altText\">\r\n </div>\r\n <div *ngIf=\"header.type === 'text'\" [class]=\"'col-md-' + header.size\">\r\n <input type=\"text\" [(ngModel)]=\"item[header.fieldName]\" (ngModelChange)=\"updateLabel(i, header.fieldName, item[header.fieldName])\" class=\"she-line-input table-input\">\r\n </div>\r\n <div *ngIf=\"header.type === 'radio'\" [class]=\"'col-md-' + header.size\">\r\n <input type=\"radio\" [name]=\"item.name\" [checked]=\"item.value == header.fieldName\" (click)=\"updateRadio(item, header.fieldName)\">\r\n </div>\r\n </td>\r\n </tr>\r\n <tr *ngIf=\"tableInfo.addRow\">\r\n <td colspan=\"3\">\r\n <b>Add More</b>\r\n </td>\r\n <td colspan=\"2\" style=\"text-align: center; cursor: pointer;\" id=\"addSafety\" (click)=\"addRow()\">\r\n +\r\n </td>\r\n </tr>\r\n </tbody>\r\n</table>", styles: [".table{width:100%;max-width:100%;margin-bottom:20px;border-collapse:collapse;border-spacing:0}.table-bordered{border:1px solid #ddd}thead{background-color:#03a9f4}thead th{color:#fff;font-size:14px}.table-bordered>tbody>tr>td,.table-bordered>tbody>tr>th,.table-bordered>tfoot>tr>td,.table-bordered>tfoot>tr>th,.table-bordered>thead>tr>td,.table-bordered>thead>tr>th{border:1px solid #ddd}th{text-align:left}thead .permission{text-align:center}.table>tbody>tr>td,.table>tbody>tr>th,.table>tfoot>tr>td,.table>tfoot>tr>th,.table>thead>tr>td,.table>thead>tr>th{padding:8px;line-height:1.42857143;vertical-align:top;border-top:1px solid #ddd}tbody{color:#797979}.table-striped>tbody>tr:nth-of-type(odd){background-color:#f9f9f9}tbody td{font-size:13px}.permission_yes,.permission_no,.permission_na{text-align:center}\n"] }]
47
+ }], ctorParameters: function () { return []; }, propDecorators: { question: [{
43
48
  type: Input
44
- }], tableData: [{
45
- type: Input
46
- }], tableDataChange: [{
49
+ }], valueChange: [{
47
50
  type: Output
48
- }], tableIndex: [{
49
- type: Input
50
51
  }] } });
51
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10YWJsZS9jdXN0b20tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUS9FLE1BQU0sT0FBTyxvQkFBb0I7SUFDdEIsV0FBVyxHQUFTLEVBQUUsQ0FBQztJQUN2QixTQUFTLENBQWU7SUFDdkIsZUFBZSxHQUF3QixJQUFJLFlBQVksRUFBUyxDQUFDO0lBQ2xFLFVBQVUsQ0FBUztJQUU1QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO0lBQ1IsQ0FBQztJQUdELE1BQU07UUFDSixNQUFNLE9BQU8sR0FBZTtZQUMxQixLQUFLLEVBQUUsRUFBRTtZQUNULFFBQVEsRUFBRSx1SkFBdUo7WUFDakssT0FBTyxFQUFFLEVBQUU7WUFDWCxJQUFJLEVBQUUsRUFBRTtZQUNSLEtBQUssRUFBRSxLQUFLO1NBQ2IsQ0FBQztRQUNGLE1BQU0sZ0JBQWdCLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxTQUFTLEVBQUUsT0FBTyxDQUFDLENBQUM7UUFDdEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxnQkFBZ0IsQ0FBQztRQUNsQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsV0FBVyxDQUFDLElBQVMsRUFBRSxLQUFhO1FBQ2xDLElBQUksQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ25CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELFdBQVcsQ0FBQyxRQUFnQixFQUFFLEtBQWE7UUFDekMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLEdBQUcsS0FBSyxDQUFDO1FBQ3ZDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDMUMsQ0FBQztJQUVELGtCQUFrQixDQUFDLGdCQUF1QjtRQUN4QyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzlDLENBQUM7d0dBckNVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLG1NQ1JqQyxtemNBdVNBOzs0RkQvUmEsb0JBQW9CO2tCQUxoQyxTQUFTOytCQUNFLGtCQUFrQjswRUFLbkIsV0FBVztzQkFBbkIsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNJLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0UsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuZGVjbGFyZSB2YXIgJDogYW55O1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdhcHAtY3VzdG9tLXRhYmxlJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi9jdXN0b20tdGFibGUuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgdGFibGVIZWFkZXI6IHN0cmluZz0nJztcclxuICBASW5wdXQoKSB0YWJsZURhdGE6IHRhYmxlSXRlbSBbXTtcclxuICBAT3V0cHV0KCkgdGFibGVEYXRhQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuICBASW5wdXQoKSB0YWJsZUluZGV4OiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gIH1cclxuXHJcblxyXG4gIGFkZFJvdygpOiB2b2lkIHtcclxuICAgIGNvbnN0IG5ld0l0ZW06IHRhYmxlSXRlbSAgPSB7XHJcbiAgICAgIGxhYmVsOiAnJyxcclxuICAgICAgaW1hZ2VTcmM6ICdodHRwczovL21lZGlhLmlzdG9ja3Bob3RvLmNvbS9pZC85NDM3NzY0MzQvdmVjdG9yL2ZpcmUtZXh0aW5ndWlzaGVyLWljb24tdmVjdG9yLmpwZz9zPTYxMng2MTImdz0wJms9MjAmYz1LVmFEeHVWMlRWN2Zkd24wOVRnOUhlRjNNTnlvSkM1azJZcVNBenBTdERZPScsXHJcbiAgICAgIGFsdFRleHQ6ICcnLFxyXG4gICAgICBuYW1lOiAnJyxcclxuICAgICAgdmFsdWU6ICdZRVMnXHJcbiAgICB9O1xyXG4gICAgY29uc3QgdXBkYXRlZFRhYmxlRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YSwgbmV3SXRlbV07XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IHVwZGF0ZWRUYWJsZURhdGE7XHJcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh1cGRhdGVkVGFibGVEYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJhZGlvKGl0ZW06IGFueSwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaXRlbS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5lbWl0VGFibGVEYXRhVmFsdWUodGhpcy50YWJsZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGFiZWwocm93SW5kZXg6IG51bWJlciwgbGFiZWw6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdLmxhYmVsID0gbGFiZWw7XHJcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh0aGlzLnRhYmxlRGF0YSk7XHJcbiAgfVxyXG5cclxuICBlbWl0VGFibGVEYXRhVmFsdWUodXBkYXRlZFRhYmxlRGF0YTogYW55W10pOiB2b2lkIHtcclxuICAgIHRoaXMudGFibGVEYXRhQ2hhbmdlLmVtaXQodXBkYXRlZFRhYmxlRGF0YSk7XHJcbiAgfVxyXG4gIFxyXG5cclxuIFxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHRhYmxlSXRlbSB7XHJcbiAgbGFiZWw6IHN0cmluZztcclxuICBpbWFnZVNyYzpzdHJpbmdcclxuICBhbHRUZXh0OnN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZ1xyXG59XHJcblxyXG4iLCI8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkIHRhYmxlLWJvcmRlcmVkXCI+XHJcbiAgPHRoZWFkPlxyXG4gICAgPHRyPlxyXG4gICAgICA8dGg+XHJcbiAgICAgICAge3sgdGFibGVIZWFkZXIgfX1cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwicGVybWlzc2lvblwiPlxyXG4gICAgICAgIFlFU1xyXG4gICAgICA8L3RoPlxyXG4gICAgICA8dGggY2xhc3M9XCJwZXJtaXNzaW9uXCI+XHJcbiAgICAgICAgTk9cclxuICAgICAgPC90aD5cclxuICAgICAgPHRoIGNsYXNzPVwicGVybWlzc2lvblwiPlxyXG4gICAgICAgIE5BXHJcbiAgICAgIDwvdGg+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGhlYWQ+XHJcbiAgPHRib2R5IGlkPVwic2FmZXR5TWVhc3VyZXNUYWJsZUJvZHlcIj5cclxuICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbSBvZiB0YWJsZURhdGE7IGxldCBpID0gaW5kZXhcIj5cclxuICAgICAgPHRkPlxyXG4gICAgICAgIDxpbWcgc3R5bGU9XCJ3aWR0aDogMzVweDsgaGVpZ2h0OiAzMnB4OyBtYXJnaW4tcmlnaHQ6IDVweDtcIiBbc3JjXT1cIml0ZW0uaW1hZ2VTcmNcIiBbYWx0XT1cIml0ZW0uYWx0VGV4dFwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwiaXRlbS5sYWJlbFwiIChuZ01vZGVsQ2hhbmdlKT1cInVwZGF0ZUxhYmVsKGksIGl0ZW0ubGFiZWwpXCIgY2xhc3M9XCJzaGUtbGluZS1pbnB1dCB0YWJsZS1pbnB1dFwiPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX3llc1wiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiAgW25hbWVdPVwiJ3RhYmxlUmFkaW9fJyArIGkgKyAnXycgKyB0YWJsZUluZGV4IFwiIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIiB2YWx1ZT1cIllFU1wiIChjaGFuZ2UpPVwidXBkYXRlUmFkaW8oaXRlbSwgJ1lFUycpXCI+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICAgIDx0ZCBjbGFzcz1cInBlcm1pc3Npb25fbm9cIj5cclxuICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgIFtuYW1lXT1cIid0YWJsZVJhZGlvXycgKyBpICsgJ18nICsgdGFibGVJbmRleCBcIiBbbmdNb2RlbF09XCJpdGVtLnZhbHVlXCIgdmFsdWU9XCJOT1wiIChjaGFuZ2UpPVwidXBkYXRlUmFkaW8oaXRlbSwgJ05PJylcIj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgIDxpbnB1dCB0eXBlPVwicmFkaW9cIiAgW25hbWVdPVwiJ3RhYmxlUmFkaW9fJyArIGkgKyAnXycgKyB0YWJsZUluZGV4IFwiIFtuZ01vZGVsXT1cIml0ZW0udmFsdWVcIiB2YWx1ZT1cIk5BXCIgKGNoYW5nZSk9XCJ1cGRhdGVSYWRpbyhpdGVtLCAnTkEnKVwiPlxyXG4gICAgICA8L3RkPlxyXG4gICAgPC90cj5cclxuICAgIDx0cj5cclxuICAgICAgPHRkPlxyXG4gICAgICAgIDxiPkFkZCBNb3JlPC9iPlxyXG4gICAgICA8L3RkPlxyXG4gICAgICA8dGQgY29sc3Bhbj1cIjNcIiBzdHlsZT1cInRleHQtYWxpZ246IGNlbnRlcjsgY3Vyc29yOiBwb2ludGVyO1wiIGlkPVwiYWRkU2FmZXR5XCIgIChjbGljayk9XCJhZGRSb3coKVwiPlxyXG4gICAgICAgICtcclxuICAgICAgPC90ZD5cclxuICAgIDwvdHI+XHJcbiAgPC90Ym9keT5cclxuPC90YWJsZT5cclxuXHJcblxyXG5cclxuICA8IS0tIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMTIgbS10LTIwXCI+XHJcbiAgICAgICAgPHRhYmxlIGNsYXNzPVwidGFibGUgdGFibGUtc3RyaXBlZCB0YWJsZS1ib3JkZXJlZFwiIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cclxuICAgICAgICAgIDx0aGVhZD5cclxuICAgICAgICAgICAgPHRyPlxyXG4gICAgICAgICAgICAgIDx0aCBzdHlsZT1cInRleHQtYWxpZ246bGVmdFwiPlxyXG4gICAgICAgICAgICAgICAgQXRtb3NwaGVyaWMgQ29uZGl0aW9uXHJcbiAgICAgICAgICAgICAgPC90aD5cclxuICAgICAgICAgICAgICA8dGggc3R5bGU9XCJ0ZXh0LWFsaWduOmNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICBUZXN0IDFcclxuICAgICAgICAgICAgICA8L3RoPlxyXG4gICAgICAgICAgICAgIDx0aCBzdHlsZT1cInRleHQtYWxpZ246Y2VudGVyXCI+XHJcbiAgICAgICAgICAgICAgIFRlc3QgMlxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIFRlc3QgM1xyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgICAgPHRoIHN0eWxlPVwidGV4dC1hbGlnbjpjZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgIFRlc3QgNFxyXG4gICAgICAgICAgICAgIDwvdGg+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICA8L3RoZWFkPlxyXG4gICAgICAgICAgPHRib2R5IGlkPVwiYXRtb3NwaGVyaWNDb25kaXRpb25cIj5cclxuICAgICAgICAgICAgPHRyICpuZ0Zvcj1cImxldCBpdGVtMSBvZiB0YWJsZURhdGFcIj5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX3llc1wiPlxyXG4gICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6IDlweDtcIj5PeHlnZW4gKDE5LjUtMjMuNSUpICB7eyBpdGVtLmxhYmVsIH19PC9wPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9ub1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD1cInRlc3QxX294eWdlblwiICAgc3R5bGU9XCJ3aWR0aDogMTgxcHg7IGhlaWdodDogMjdweDsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1wiIHBsYWNlaG9sZGVyPVwiaXRlbS5wbGFjZWhvbGRlclwiID5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBlcm1pc3Npb25fbmFcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwibnVtYmVyXCIgaWQ9XCJ0ZXN0Ml9veHlnZW5cIiAgc3R5bGU9XCJ3aWR0aDogMTgxcHg7IGhlaWdodDogMjdweDsgdGV4dC1hbGlnbjogY2VudGVyOyBib3JkZXI6IG5vbmU7IGJhY2tncm91bmQ6IHRyYW5zcGFyZW50O1wiIHBsYWNlaG9sZGVyPVwiaXRlbS5wbGFjZWhvbGRlclwiPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9ub1wiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD1cInRlc3QzX294eWdlblwiICBzdHlsZT1cIndpZHRoOiAxODFweDsgaGVpZ2h0OiAyN3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XCIgcGxhY2Vob2xkZXI9XCJpdGVtLnBsYWNlaG9sZGVyXCIgPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJudW1iZXJcIiBpZD1cInRlc3Q0X294eWdlblwiICBzdHlsZT1cIndpZHRoOiAxODFweDsgaGVpZ2h0OiAyN3B4OyB0ZXh0LWFsaWduOiBjZW50ZXI7IGJvcmRlcjogbm9uZTsgYmFja2dyb3VuZDogdHJhbnNwYXJlbnQ7XCIgcGxhY2Vob2xkZXI9XCJpdGVtLnBsYWNlaG9sZGVyXCI+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICAgIDx0ciBpZD1cImF0bW9zcGhlcmljQWRkbW9yZVwiPlxyXG4gICAgICAgICAgICAgIDx0ZCBzdHlsZT1cInRleHQtYWxpZ246IGxlZnQ7IHBhZGRpbmc6IDEzcHggMTFweDsgY3Vyc29yOiBwb2ludGVyOyBtYXJnaW4tcmlnaHQ6IDMycHg7XCIgI2FkZCBpZD1cImF0bW9zXCIgKGNsaWNrKT1cImFkZF9hdG1vc3BoZXJpQ29uZGl0aW9uX3JvdyhhZGQpXCI+XHJcbiAgICAgICAgICAgICAgICA8Yj5BZGQgTW9yZSAgICs8L2I+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkPlxyXG5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZD5cclxuXHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQ+XHJcblxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+IFxyXG4gICAgICAgICAgXHJcbiAgICAgICAgICAgIDx0ciAqbmdGb3I9XCJsZXQgaXRlbTIgb2YgdGFibGVEYXRhXCI+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl95ZXNcIj5cclxuICAgICAgICAgICAgICAgIDxwIHN0eWxlPVwidGV4dC1hbGlnbjpsZWZ0OyBtYXJnaW4tdG9wOiA5cHg7XCI+VGVzdGVkIEJ5PC9wPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLXNlbGVjdCBzdHlsZT1cIndpZHRoOiAxNzVweFwiIGlkPVwidGVzdDFfdGVzdGVkX2J5XCIgIChjaGFuZ2UpPVwib25UZXN0ZWQxQ2hhbmdlKCRldmVudClcIiBbaXRlbXNdPVwiaXRlbS5kcm9wRG93bkl0ZW1zXCJcclxuICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidGVzdDFfdGVzdGVkX2J5XCIgcGxhY2Vob2xkZXI9XCItLS1TZWxlY3QtLS1cIlxyXG4gICAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgICA8L25nLXNlbGVjdD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBlcm1pc3Npb25fbm9cIj5cclxuICAgICAgICAgICAgICAgIDxuZy1zZWxlY3Qgc3R5bGU9XCJ3aWR0aDogMTc1cHhcIiBpZD1cInRlc3QyX3Rlc3RlZF9ieVwiICAoY2hhbmdlKT1cIm9uVGVzdGVkMkNoYW5nZSgkZXZlbnQpXCIgW2l0ZW1zXT1cIml0ZW0uZHJvcERvd25JdGVtc1wiXHJcbiAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInRlc3QyX3Rlc3RlZF9ieVwiIHBsYWNlaG9sZGVyPVwiLS0tU2VsZWN0LS0tXCJcclxuICAgICAgICAgICAgICAgICAgPlxyXG4gICAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX25hXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctc2VsZWN0IHN0eWxlPVwid2lkdGg6IDE3NXB4XCIgaWQ9XCJ0ZXN0M190ZXN0ZWRfYnlcIiAgKGNoYW5nZSk9XCJvblRlc3RlZDNDaGFuZ2UoJGV2ZW50KVwiIFtpdGVtc109XCJpdGVtLmRyb3BEb3duSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXN0M190ZXN0ZWRfYnlcIiBwbGFjZWhvbGRlcj1cIi0tLVNlbGVjdC0tLVwiXHJcbiAgICAgICAgICAgICAgICA+XHJcbiAgICAgICAgICAgICAgPC9uZy1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX25vXCI+XHJcbiAgICAgICAgICAgICAgICA8bmctc2VsZWN0IHN0eWxlPVwid2lkdGg6IDE3NXB4XCIgaWQ9XCJ0ZXN0NF90ZXN0ZWRfYnlcIiAgKGNoYW5nZSk9XCJvblRlc3RlZDRDaGFuZ2UoJGV2ZW50KVwiIFtpdGVtc109XCJpdGVtLmRyb3BEb3duSXRlbXNcIlxyXG4gICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ0ZXN0NF90ZXN0ZWRfYnlcIiBwbGFjZWhvbGRlcj1cIi0tLVNlbGVjdC0tLVwiXHJcbiAgICAgICAgICAgICAgICAgID5cclxuICAgICAgICAgICAgICAgIDwvbmctc2VsZWN0PlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX3llc1wiPlxyXG4gICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6IDlweDtcIj5EYXRlICYgVGltZTwvcD5cclxuICAgICAgICAgICAgICA8L3RkPlxyXG4gICAgICAgICAgICAgIDx0ZCBjbGFzcz1cInBlcm1pc3Npb25fbm9cIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInRlc3QxX3RpbWVcIiBpZD1cInRlc3QxX3RpbWVcIiAgZm9ybUNvbnRyb2xOYW1lPVwidGVzdDFfdGltZVwiXHJcbiAgICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkREL01NL1lZWVkgSEg6TU1cIiBzdHlsZT1cIndpZHRoOiA3NSU7XHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyOm5vbmU7XHJcbiAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1wiPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgICAgICAgICA8aW5wdXQgWyhuZ01vZGVsKV09XCJ0ZXN0Ml90aW1lXCIgaWQ9XCJ0ZXN0Ml90aW1lXCIgIHR5cGU9XCJkYXRldGltZS1sb2NhbFwiIGZvcm1Db250cm9sTmFtZT1cInRlc3QyX3RpbWVcIlxyXG4gICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiREQvTU0vWVlZWSBISDpNTVwiIHN0eWxlPVwid2lkdGg6IDc1JTtcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICAgICAgICBib3JkZXI6bm9uZTtcclxuICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XCI+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9ub1wiPlxyXG5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBbKG5nTW9kZWwpXT1cInRlc3QzX3RpbWVcIiBpZD1cInRlc3QzX3RpbWVcIiAgdHlwZT1cImRhdGV0aW1lLWxvY2FsXCIgZm9ybUNvbnRyb2xOYW1lPVwidGVzdDNfdGltZVwiXHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiREQvTU0vWVlZWSBISDpNTVwiIHN0eWxlPVwid2lkdGg6IDc1JTtcclxuICAgICAgICAgICAgICAgICAgaGVpZ2h0OiAzNXB4O1xyXG4gICAgICAgICAgICAgICAgICBib3JkZXI6bm9uZTtcclxuICAgICAgICAgICAgICAgICAgYm94LXNoYWRvdzogbm9uZTtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyLWJvdHRvbTogMXB4IHNvbGlkICNjY2M7XCI+XHJcbiAgICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG5cclxuICAgICAgICAgICAgICAgPGlucHV0IFsobmdNb2RlbCldPVwidGVzdDRNaW5EYXRlXCIgaWQ9XCJ0ZXN0NF90aW1lXCIgIGZvcm1Db250cm9sTmFtZT1cInRlc3Q0X3RpbWVcIlxyXG4gICAgICAgICAgICAgICB0eXBlPVwiZGF0ZXRpbWUtbG9jYWxcIlxyXG4gICAgICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIkREL01NL1lZWVkgSEg6TU1cIiBzdHlsZT1cIndpZHRoOiA3NSU7XHJcbiAgICAgICAgICAgICAgICAgIGhlaWdodDogMzVweDtcclxuICAgICAgICAgICAgICAgICAgYm9yZGVyOm5vbmU7XHJcbiAgICAgICAgICAgICAgICAgIGJveC1zaGFkb3c6IG5vbmU7XHJcbiAgICAgICAgICAgICAgICAgIGJvcmRlci1ib3R0b206IDFweCBzb2xpZCAjY2NjO1wiPlxyXG4gICAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0cj5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX3llc1wiPlxyXG4gICAgICAgICAgICAgICAgPHAgc3R5bGU9XCJ0ZXh0LWFsaWduOmxlZnQ7IG1hcmdpbi10b3A6IDlweDtcIj5BdG1vc3BoZXJpYyBjb25kaXRpb25zIGFyZSBtZWFzdXJlZCBwZXJpb2RpY2FsbHk8L3A+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgY2xhc3M9XCJwZXJtaXNzaW9uX25vXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJzd2l0Y2gyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cInN3aXRjaC1pbnB1dDMxXCIgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJvblRlc3RBc3Nlc21lbnQxQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZClcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJDZXJ0aWZpZWQzXCIgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsMlwiIGRhdGEtb249XCJTYWZlXCIgZGF0YS1vZmY9XCJVbnNhZmVcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGUyXCI+PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJzd2l0Y2gtaW5wdXQ0XCIgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJvblRlc3RBc3Nlc21lbnQyQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZClcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJDZXJ0aWZpZWQ0XCIgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsMlwiIGRhdGEtb249XCJTYWZlXCIgZGF0YS1vZmY9XCJVbnNhZmVcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGUyXCI+PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9ub1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJzd2l0Y2gtaW5wdXQ1XCIgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJvblRlc3RBc3Nlc21lbnQzQ2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZClcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJDZXJ0aWZpZWQ1XCIgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsMlwiIGRhdGEtb249XCJTYWZlXCIgZGF0YS1vZmY9XCJVbnNhZmVcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGUyXCI+PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIGNsYXNzPVwicGVybWlzc2lvbl9uYVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwic3dpdGNoMlwiPlxyXG4gICAgICAgICAgICAgICAgICA8aW5wdXQgaWQ9XCJzd2l0Y2gtaW5wdXQ2XCIgY2xhc3M9XCJzd2l0Y2gtaW5wdXQyXCIgKGNoYW5nZSk9XCJvblRlc3RBc3Nlc21lbnQ0Q2hhbmdlKCRldmVudC50YXJnZXQuY2hlY2tlZClcIiB0eXBlPVwiY2hlY2tib3hcIiBbY2hlY2tlZF09XCJDZXJ0aWZpZWQ2XCIgIC8+XHJcbiAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3dpdGNoLWxhYmVsMlwiIGRhdGEtb249XCJTYWZlXCIgZGF0YS1vZmY9XCJVbnNhZmVcIj48L3NwYW4+IFxyXG4gICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN3aXRjaC1oYW5kbGUyXCI+PC9zcGFuPiBcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+IFxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgIDwvdHI+XHJcbiAgICAgICAgICAgIDx0ciBjbGFzcz1cImRvY3NcIj5cclxuICAgICAgICAgICAgICA8dGQ+XHJcbiAgICAgICAgICAgICAgICA8cCBzdHlsZT1cInRleHQtYWxpZ246bGVmdDsgbWFyZ2luLXRvcDogMTJweDtcIj5BdHRhY2htZW50PC9wPlxyXG4gICAgICAgICAgICAgIDwvdGQ+XHJcbiAgICAgICAgICAgICAgPHRkIHN0eWxlPVwid2lkdGg6MTMwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTMgZG9jdW1lbnQtY250XCIgKm5nRm9yPVwibGV0IGZpbGUgb2YgdGVzdDFGaWxlO2xldCBpID0gaW5kZXg7XCIgIHN0eWxlPVwid2lkdGg6MTMwcHg7IG1hcmdpbi1sZWZ0OiAyNXB4OyBtYXJnaW4tYm90dG9tOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCIgKGNsaWNrKT1cInZpZXdEb2MoZmlsZT8uZG9jKVwiIHN0eWxlPVwiY3Vyc29yOiBwb2ludGVyO1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy0zIGRvY3VtZW50X2ltYWdlXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGltZyBbc3JjXT1cImdldERvY0ljb24oZmlsZT8uZG9jKVwiIHN0eWxlPVwibWFyZ2luLXJpZ2h0OiAxMHB4O2hlaWdodDogNDBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy05IGRvY3VtZW50X25hbWVcIiBzdHlsZT1cIm92ZXJmbG93OmhpZGRlbjtoZWlnaHQ6MzVweDtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICB7e2ZpbGU/Lm5hbWV9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIFVwbG9hZCBGaWxlXHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPVwiVGVzdDFGaWxlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDoxMzBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudC1jbnRcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB0ZXN0MkZpbGU7bGV0IGkgPSBpbmRleDtcIiBzdHlsZT1cIndpZHRoOjEzMHB4OyBtYXJnaW4tbGVmdDogMjVweDsgbWFyZ2luLWJvdHRvbTogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJ2aWV3RG9jKGZpbGU/LmRvYylcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudF9pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjM1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tmaWxlPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIFVwbG9hZCBGaWxlXHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPVwiVGVzdDJGaWxlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDoxMzBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudC1jbnRcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB0ZXN0M0ZpbGU7bGV0IGkgPSBpbmRleDtcIiBzdHlsZT1cIndpZHRoOjEzMHB4OyBtYXJnaW4tbGVmdDogMjVweDsgbWFyZ2luLWJvdHRvbTogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJ2aWV3RG9jKGZpbGU/LmRvYylcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudF9pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjM1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tmaWxlPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIFVwbG9hZCBGaWxlXHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPVwiVGVzdDNGaWxlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgICA8dGQgc3R5bGU9XCJ3aWR0aDoxMzBweDtcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudC1jbnRcIiAqbmdGb3I9XCJsZXQgZmlsZSBvZiB0ZXN0NEZpbGU7bGV0IGkgPSBpbmRleDtcIiBzdHlsZT1cIndpZHRoOjEzMHB4OyBtYXJnaW4tbGVmdDogMjVweDsgbWFyZ2luLWJvdHRvbTogMTBweDtcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiIChjbGljayk9XCJ2aWV3RG9jKGZpbGU/LmRvYylcIiBzdHlsZT1cImN1cnNvcjogcG9pbnRlcjtcIj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctMyBkb2N1bWVudF9pbWFnZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxpbWcgW3NyY109XCJnZXREb2NJY29uKGZpbGU/LmRvYylcIiBzdHlsZT1cIm1hcmdpbi1yaWdodDogMTBweDtoZWlnaHQ6IDQwcHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctOSBkb2N1bWVudF9uYW1lXCIgc3R5bGU9XCJvdmVyZmxvdzpoaWRkZW47aGVpZ2h0OjM1cHg7XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAge3tmaWxlPy5uYW1lfX1cclxuICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGJyPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5XCI+XHJcbiAgICAgICAgICAgICAgICAgIFVwbG9hZCBGaWxlXHJcbiAgICAgICAgICAgICAgICAgIDxpbnB1dCBpZD1cImZpbGVcIiBzdHlsZT1cImRpc3BsYXk6IG5vbmU7XCIgdHlwZT1cImZpbGVcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIChjaGFuZ2UpPVwiVGVzdDRGaWxlKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPC90ZD5cclxuICAgICAgICAgICAgPC90cj5cclxuICAgICAgICAgICBcclxuICAgICAgICAgIDwvdGJvZHk+XHJcbiAgICAgICAgPC90YWJsZT5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PiAtLT5cclxuICBcclxuXHJcblxyXG5cclxuIl19
52
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXRhYmxlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9jb21wb25lbnRzL2N1c3RvbS10YWJsZS9jdXN0b20tdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXRhYmxlL2N1c3RvbS10YWJsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBWS9FLE1BQU0sT0FBTyxvQkFBb0I7SUFDdEIsUUFBUSxDQUFVO0lBQ2pCLFdBQVcsR0FBd0IsSUFBSSxZQUFZLEVBQVMsQ0FBQztJQUV2RSxTQUFTLENBQWU7SUFDeEIsV0FBVyxDQUFNO0lBQ2pCLFNBQVMsQ0FBTTtJQUNmLGFBQWEsQ0FBUztJQUV0QixnQkFBZ0IsQ0FBQztJQUVqQixRQUFRO1FBQ04sSUFBRyxJQUFJLENBQUMsUUFBUSxDQUFDLFdBQVcsSUFBSSxTQUFTLEVBQUU7WUFDekMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsV0FBVyxDQUFDLENBQUM7WUFFdkQsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sQ0FBQztZQUN6QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDO1lBRXJDLElBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUU7Z0JBQ3hCLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLFdBQVcsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDO2FBQ2xEO1NBQ0Y7SUFDSCxDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUM7UUFDdkUsTUFBTSxnQkFBZ0IsR0FBRyxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxPQUFPLENBQUMsQ0FBQztRQUN0RCxJQUFJLENBQUMsU0FBUyxHQUFHLGdCQUFnQixDQUFDO1FBQ2xDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO0lBQzVDLENBQUM7SUFFRCxXQUFXLENBQUMsSUFBUyxFQUFFLEtBQWE7UUFDbEMsSUFBSSxDQUFDLEtBQUssR0FBRyxLQUFLLENBQUM7UUFDbkIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsV0FBVyxDQUFDLFFBQWdCLEVBQUUsS0FBYSxFQUFFLEtBQWE7UUFDeEQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxLQUFLLENBQUMsR0FBRyxLQUFLLENBQUM7UUFDeEMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxRQUFRLENBQUMsQ0FBQyxJQUFJLEdBQUcsS0FBSyxDQUFDLE9BQU8sQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsV0FBVyxFQUFFLENBQUM7UUFDeEUsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztJQUMxQyxDQUFDO0lBRUQsa0JBQWtCLENBQUMsZ0JBQXVCO1FBQ3hDLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLGdCQUFnQixDQUFDLENBQUM7SUFDMUMsQ0FBQzt3R0E1Q1Usb0JBQW9COzRGQUFwQixvQkFBb0IsbUlDWmpDLGs1REFpQ1E7OzRGRHJCSyxvQkFBb0I7a0JBTmhDLFNBQVM7K0JBQ0Usa0JBQWtCOzBFQU1uQixRQUFRO3NCQUFoQixLQUFLO2dCQUNJLFdBQVc7c0JBQXBCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRhYmxlV3JhcHBlciB9IGZyb20gJy4uLy4uL21vZGVsL3RhYmxlV3JhcHBlcic7XHJcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XHJcblxyXG5kZWNsYXJlIHZhciAkOiBhbnk7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2FwcC1jdXN0b20tdGFibGUnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9jdXN0b20tdGFibGUuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2N1c3RvbS10YWJsZS5jb21wb25lbnQuY3NzJ11cclxufSlcclxuXHJcbmV4cG9ydCBjbGFzcyBDdXN0b21UYWJsZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgcXVlc3Rpb246IFF1ZXN0aW9uXHJcbiAgQE91dHB1dCgpIHZhbHVlQ2hhbmdlOiBFdmVudEVtaXR0ZXI8YW55W10+ID0gbmV3IEV2ZW50RW1pdHRlcjxhbnlbXT4oKTtcclxuXHJcbiAgdGFibGVJbmZvOiBUYWJsZVdyYXBwZXI7XHJcbiAgdGFibGVIZWFkZXI6IGFueTtcclxuICB0YWJsZURhdGE6IGFueTtcclxuICBhZGRSb3dDb2xTcGFuOiBudW1iZXI7XHJcblxyXG4gIGNvbnN0cnVjdG9yKCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYodGhpcy5xdWVzdGlvbi5TdWJfVGV4dF9fYyAhPSB1bmRlZmluZWQpIHtcclxuICAgICAgdGhpcy50YWJsZUluZm8gPSBKU09OLnBhcnNlKHRoaXMucXVlc3Rpb24uU3ViX1RleHRfX2MpO1xyXG5cclxuICAgICAgdGhpcy50YWJsZUhlYWRlciA9IHRoaXMudGFibGVJbmZvLmhlYWRlcjtcclxuICAgICAgdGhpcy50YWJsZURhdGEgPSB0aGlzLnRhYmxlSW5mby5kYXRhO1xyXG5cclxuICAgICAgaWYodGhpcy50YWJsZURhdGEuYWRkUm93KSB7XHJcbiAgICAgICAgdGhpcy5hZGRSb3dDb2xTcGFuID0gdGhpcy50YWJsZUhlYWRlci5sZW5ndGggLSAyO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBhZGRSb3coKTogdm9pZCB7XHJcbiAgICBsZXQgbmV3SXRlbSA9IEpTT04ucGFyc2UoSlNPTi5zdHJpbmdpZnkodGhpcy50YWJsZUluZm8ubmV3Um93RGVmYXVsdCkpO1xyXG4gICAgY29uc3QgdXBkYXRlZFRhYmxlRGF0YSA9IFsuLi50aGlzLnRhYmxlRGF0YSwgbmV3SXRlbV07XHJcbiAgICB0aGlzLnRhYmxlRGF0YSA9IHVwZGF0ZWRUYWJsZURhdGE7XHJcbiAgICB0aGlzLmVtaXRUYWJsZURhdGFWYWx1ZSh1cGRhdGVkVGFibGVEYXRhKTtcclxuICB9XHJcblxyXG4gIHVwZGF0ZVJhZGlvKGl0ZW06IGFueSwgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgaXRlbS52YWx1ZSA9IHZhbHVlO1xyXG4gICAgdGhpcy5lbWl0VGFibGVEYXRhVmFsdWUodGhpcy50YWJsZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgdXBkYXRlTGFiZWwocm93SW5kZXg6IG51bWJlciwgbGFiZWw6IHN0cmluZywgdmFsdWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdW2xhYmVsXSA9IHZhbHVlO1xyXG4gICAgdGhpcy50YWJsZURhdGFbcm93SW5kZXhdLm5hbWUgPSB2YWx1ZS5yZXBsYWNlKC9cXHMrL2csICcnKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgdGhpcy5lbWl0VGFibGVEYXRhVmFsdWUodGhpcy50YWJsZURhdGEpO1xyXG4gIH1cclxuXHJcbiAgZW1pdFRhYmxlRGF0YVZhbHVlKHVwZGF0ZWRUYWJsZURhdGE6IGFueVtdKTogdm9pZCB7XHJcbiAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQodXBkYXRlZFRhYmxlRGF0YSk7XHJcbiAgfVxyXG59XHJcblxyXG5leHBvcnQgaW50ZXJmYWNlIHRhYmxlSXRlbSB7XHJcbiAgc2FmZXR5X3ByZWNhdXRpb246IHN0cmluZztcclxuICBpbWFnZVNyYzpzdHJpbmdcclxuICBhbHRUZXh0OnN0cmluZztcclxuICBuYW1lOiBzdHJpbmc7XHJcbiAgdmFsdWU6IHN0cmluZ1xyXG59XHJcblxyXG4iLCI8dGFibGUgY2xhc3M9XCJ0YWJsZSB0YWJsZS1zdHJpcGVkIHRhYmxlLWJvcmRlcmVkXCI+XHJcbiAgPHRoZWFkPlxyXG4gICAgPHRoICpuZ0Zvcj1cImxldCBoZWFkZXIgb2YgdGFibGVIZWFkZXI7IGxldCBoaSA9IGluZGV4XCIgW2NsYXNzXT1cIidjb2wtbWQtJyArIGhlYWRlci5zaXplXCI+XHJcbiAgICAgIHt7IGhlYWRlci5sYWJlbCB9fVxyXG4gICAgPC90aD5cclxuICA8L3RoZWFkPlxyXG4gIDx0Ym9keSBpZD1cInNhZmV0eU1lYXN1cmVzVGFibGVCb2R5XCI+XHJcbiAgICA8dHIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgdGFibGVEYXRhOyBsZXQgaSA9IGluZGV4XCI+XHJcbiAgICAgIDx0ZCAqbmdGb3I9XCJsZXQgaGVhZGVyIG9mIHRhYmxlSGVhZGVyOyBsZXQgaiA9IGluZGV4XCI+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlID09PSAnaW1hZ2V0ZXh0J1wiIFtjbGFzc109XCInY29sLW1kLScgKyBoZWFkZXIuc2l6ZVwiIHN0eWxlPVwiZGlzcGxheTogZmxleDtcIj5cclxuICAgICAgICAgIDxpbWcgc3R5bGU9XCJ3aWR0aDogMzVweDsgaGVpZ2h0OiAzMnB4OyBtYXJnaW4tcmlnaHQ6IDVweDtcIiBbc3JjXT1cIml0ZW0uaW1hZ2VTcmNcIiBbYWx0XT1cIml0ZW0uYWx0VGV4dFwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoaSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbVtoZWFkZXIuZmllbGROYW1lXSlcIiBjbGFzcz1cInNoZS1saW5lLWlucHV0IHRhYmxlLWlucHV0XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlID09PSAnaW1hZ2UnXCIgW2NsYXNzXT1cIidjb2wtbWQtJyArIGhlYWRlci5zaXplXCI+XHJcbiAgICAgICAgICA8aW1nIHN0eWxlPVwid2lkdGg6IDM1cHg7IGhlaWdodDogMzJweDsgbWFyZ2luLXJpZ2h0OiA1cHg7XCIgW3NyY109XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgW2FsdF09XCJpdGVtLmFsdFRleHRcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2ICpuZ0lmPVwiaGVhZGVyLnR5cGUgPT09ICd0ZXh0J1wiIFtjbGFzc109XCInY29sLW1kLScgKyBoZWFkZXIuc2l6ZVwiPlxyXG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgWyhuZ01vZGVsKV09XCJpdGVtW2hlYWRlci5maWVsZE5hbWVdXCIgKG5nTW9kZWxDaGFuZ2UpPVwidXBkYXRlTGFiZWwoaSwgaGVhZGVyLmZpZWxkTmFtZSwgaXRlbVtoZWFkZXIuZmllbGROYW1lXSlcIiBjbGFzcz1cInNoZS1saW5lLWlucHV0IHRhYmxlLWlucHV0XCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiAqbmdJZj1cImhlYWRlci50eXBlID09PSAncmFkaW8nXCIgW2NsYXNzXT1cIidjb2wtbWQtJyArIGhlYWRlci5zaXplXCI+XHJcbiAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgW25hbWVdPVwiaXRlbS5uYW1lXCIgW2NoZWNrZWRdPVwiaXRlbS52YWx1ZSA9PSBoZWFkZXIuZmllbGROYW1lXCIgKGNsaWNrKT1cInVwZGF0ZVJhZGlvKGl0ZW0sIGhlYWRlci5maWVsZE5hbWUpXCI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gICAgPHRyICpuZ0lmPVwidGFibGVJbmZvLmFkZFJvd1wiPlxyXG4gICAgICA8dGQgY29sc3Bhbj1cIjNcIj5cclxuICAgICAgICA8Yj5BZGQgTW9yZTwvYj5cclxuICAgICAgPC90ZD5cclxuICAgICAgPHRkIGNvbHNwYW49XCIyXCIgc3R5bGU9XCJ0ZXh0LWFsaWduOiBjZW50ZXI7IGN1cnNvcjogcG9pbnRlcjtcIiBpZD1cImFkZFNhZmV0eVwiICAoY2xpY2spPVwiYWRkUm93KClcIj5cclxuICAgICAgICArXHJcbiAgICAgIDwvdGQ+XHJcbiAgICA8L3RyPlxyXG4gIDwvdGJvZHk+XHJcbjwvdGFibGU+Il19
@@ -0,0 +1,16 @@
1
+ export class TableHeader {
2
+ label;
3
+ fieldName;
4
+ fieldId;
5
+ type;
6
+ isReadOnly;
7
+ }
8
+ export class TableWrapper {
9
+ header;
10
+ data;
11
+ keyValueField;
12
+ rowFunction;
13
+ addRow;
14
+ newRowDefault;
15
+ }
16
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGVXcmFwcGVyLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL21vZGVsL3RhYmxlV3JhcHBlci50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxNQUFNLE9BQU8sV0FBVztJQUNwQixLQUFLLENBQVM7SUFDZCxTQUFTLENBQVM7SUFDbEIsT0FBTyxDQUFTO0lBQ2hCLElBQUksQ0FBUztJQUNiLFVBQVUsQ0FBVTtDQUN2QjtBQUVELE1BQU0sT0FBTyxZQUFZO0lBQ3JCLE1BQU0sQ0FBZ0I7SUFDdEIsSUFBSSxDQUFTO0lBQ2IsYUFBYSxDQUFTO0lBQ3RCLFdBQVcsQ0FBTTtJQUNqQixNQUFNLENBQVU7SUFDaEIsYUFBYSxDQUFNO0NBQ3RCIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGNsYXNzIFRhYmxlSGVhZGVyIHtcclxuICAgIGxhYmVsOiBzdHJpbmc7XHJcbiAgICBmaWVsZE5hbWU6IHN0cmluZztcclxuICAgIGZpZWxkSWQ6IHN0cmluZztcclxuICAgIHR5cGU6IHN0cmluZztcclxuICAgIGlzUmVhZE9ubHk6IGJvb2xlYW47XHJcbn1cclxuXHJcbmV4cG9ydCBjbGFzcyBUYWJsZVdyYXBwZXIge1xyXG4gICAgaGVhZGVyOiBUYWJsZUhlYWRlcltdO1xyXG4gICAgZGF0YTogYW55IFtdO1xyXG4gICAga2V5VmFsdWVGaWVsZDogc3RyaW5nO1xyXG4gICAgcm93RnVuY3Rpb246IGFueTtcclxuICAgIGFkZFJvdzogYm9vbGVhbjtcclxuICAgIG5ld1Jvd0RlZmF1bHQ6IGFueTtcclxufVxyXG4iXX0=
@@ -70,11 +70,11 @@ export class BookletComponent {
70
70
  this.handleBookletActionEvent.emit(action.eventtoemit);
71
71
  }
72
72
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BookletComponent, deps: [{ token: i1.SalesforceService }, { token: i2.DataService }, { token: i3.ActivatedRoute }, { token: i4.DomSanitizer }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
73
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BookletComponent, selector: "lib-booklet", inputs: { bookletId: "bookletId", serv: "serv", tkn: "tkn" }, outputs: { handleBookletActionEvent: "handleBookletActionEvent", handlePage: "handlePage" }, usesOnChanges: true, ngImport: i0, template: "<ngx-spinner [name]=\"spinnerName\" [type]=\"spinnerType\"></ngx-spinner>\r\n<!-- Booklet Handling-->\r\n<div *ngFor=\"let qb of booklet\">\r\n <lib-questionnaire [serv]=\"serv\" [qbId]=\"qb.Id\" [tkn]=\"tkn\"></lib-questionnaire>\r\n</div>\r\n\r\n<!-- Group Actions -->\r\n<div class=\"align-edit-submit\" *ngIf=\"abItem.Status__c != 'Completed'\">\r\n <div *ngFor=\"let action of actions\">\r\n <button (click)=\"handleBookletActionClick(action)\">\r\n {{ action.name }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [""], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.NgxSpinnerComponent, selector: "ngx-spinner", inputs: ["disableAnimation", "bdColor", "zIndex", "color", "type", "size", "fullScreen", "name", "template", "showSpinner"] }, { kind: "component", type: i7.QuestionnaireComponent, selector: "lib-questionnaire", inputs: ["qbId", "insuranceStartDate", "serv", "tkn"], outputs: ["handleEvent", "handlePage"] }] });
73
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: BookletComponent, selector: "lib-booklet", inputs: { bookletId: "bookletId", serv: "serv", tkn: "tkn" }, outputs: { handleBookletActionEvent: "handleBookletActionEvent", handlePage: "handlePage" }, usesOnChanges: true, ngImport: i0, template: "<ngx-spinner [name]=\"spinnerName\" [type]=\"spinnerType\"></ngx-spinner>\r\n<!-- Booklet Handling-->\r\n<div *ngFor=\"let qb of booklet\">\r\n <lib-questionnaire [serv]=\"serv\" [qbId]=\"qb.Id\" [tkn]=\"tkn\"></lib-questionnaire>\r\n</div>\r\n\r\n<!-- Group Actions -->\r\n<div class=\"align-submit-row\" *ngIf=\"abItem.Status__c != 'Completed'\">\r\n <div *ngFor=\"let action of actions\">\r\n <button (click)=\"handleBookletActionClick(action)\">\r\n {{ action.name }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".align-submit-row{display:flex}.align-submit-row button{margin-left:25px;background:#48B7FF;color:#fff;border:none;border-radius:5px;height:50px;width:150px}\n"], dependencies: [{ kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i6.NgxSpinnerComponent, selector: "ngx-spinner", inputs: ["disableAnimation", "bdColor", "zIndex", "color", "type", "size", "fullScreen", "name", "template", "showSpinner"] }, { kind: "component", type: i7.QuestionnaireComponent, selector: "lib-questionnaire", inputs: ["qbId", "insuranceStartDate", "serv", "tkn"], outputs: ["handleEvent", "handlePage"] }] });
74
74
  }
75
75
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: BookletComponent, decorators: [{
76
76
  type: Component,
77
- args: [{ selector: 'lib-booklet', template: "<ngx-spinner [name]=\"spinnerName\" [type]=\"spinnerType\"></ngx-spinner>\r\n<!-- Booklet Handling-->\r\n<div *ngFor=\"let qb of booklet\">\r\n <lib-questionnaire [serv]=\"serv\" [qbId]=\"qb.Id\" [tkn]=\"tkn\"></lib-questionnaire>\r\n</div>\r\n\r\n<!-- Group Actions -->\r\n<div class=\"align-edit-submit\" *ngIf=\"abItem.Status__c != 'Completed'\">\r\n <div *ngFor=\"let action of actions\">\r\n <button (click)=\"handleBookletActionClick(action)\">\r\n {{ action.name }}\r\n </button>\r\n </div>\r\n</div>\r\n" }]
77
+ args: [{ selector: 'lib-booklet', template: "<ngx-spinner [name]=\"spinnerName\" [type]=\"spinnerType\"></ngx-spinner>\r\n<!-- Booklet Handling-->\r\n<div *ngFor=\"let qb of booklet\">\r\n <lib-questionnaire [serv]=\"serv\" [qbId]=\"qb.Id\" [tkn]=\"tkn\"></lib-questionnaire>\r\n</div>\r\n\r\n<!-- Group Actions -->\r\n<div class=\"align-submit-row\" *ngIf=\"abItem.Status__c != 'Completed'\">\r\n <div *ngFor=\"let action of actions\">\r\n <button (click)=\"handleBookletActionClick(action)\">\r\n {{ action.name }}\r\n </button>\r\n </div>\r\n</div>\r\n", styles: [".align-submit-row{display:flex}.align-submit-row button{margin-left:25px;background:#48B7FF;color:#fff;border:none;border-radius:5px;height:50px;width:150px}\n"] }]
78
78
  }], ctorParameters: function () { return [{ type: i1.SalesforceService }, { type: i2.DataService }, { type: i3.ActivatedRoute }, { type: i4.DomSanitizer }, { type: i0.ElementRef }]; }, propDecorators: { bookletId: [{
79
79
  type: Input
80
80
  }], serv: [{
@@ -86,4 +86,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
86
86
  }], handlePage: [{
87
87
  type: Output
88
88
  }] } });
89
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2xldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYm9va2xldC9ib29rbGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9wYWdlcy9ib29rbGV0L2Jvb2tsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBWXZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFlakI7SUFDQTtJQUNBO0lBQ0E7SUFqQkQsU0FBUyxDQUFTO0lBQ2xCLElBQUksQ0FBUztJQUNiLEdBQUcsQ0FBUztJQUNYLHdCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDOUMsVUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXRELE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQWlCLEVBQUUsQ0FBQztJQUUzQixXQUFXLENBQVM7SUFDcEIsV0FBVyxDQUFRO0lBRTFCLFlBQ1UsU0FBNEIsRUFDNUIsV0FBd0IsRUFDeEIsS0FBcUIsRUFDckIsU0FBdUIsRUFDL0IsRUFBYztRQUpOLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFHL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDckMsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDekIsSUFBSSxDQUFDLEdBQUcsRUFDUixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUN6Qix1QkFBdUIsRUFDdkIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFBO0lBRU8sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixJQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxVQUFVLElBQUksU0FBUyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3RDtTQUNGO0lBQ0gsQ0FBQyxDQUFBO0lBRU8sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtJQUUxQyxDQUFDLENBQUE7SUFFRCx3QkFBd0IsQ0FBQyxNQUFpQjtRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7d0dBL0VVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1PQ3RCN0IsbWlCQWNBOzs0RkRRYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTttTkFLZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0ksd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2FsZXNmb3JjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2FsZXNmb3JjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IEFjdGlvbk1ldGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FjdGlvbk1ldGEnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYm9va2xldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb2tsZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Jvb2tsZXQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCb29rbGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBib29rbGV0SWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXJ2OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGtuOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGhhbmRsZUJvb2tsZXRBY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaGFuZGxlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBib29rbGV0OiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBhYkl0ZW06IGFueSA9IHt9O1xyXG4gIHB1YmxpYyBhY3Rpb25zOiBBY3Rpb25NZXRhW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHNwaW5uZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHNwaW5uZXJUeXBlOnN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNmU2VydmljZTogU2FsZXNmb3JjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIGVsOiBFbGVtZW50UmVmXHJcbiAgKSB7IFxyXG4gICAgdGhpcy5zcGlubmVyTmFtZSA9IFwic3AxXCI7XHJcbiAgICB0aGlzLnNwaW5uZXJUeXBlID0gXCJiYWxsLXNwaW4tY2xvY2t3aXNlXCI7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvY2Vzc0Jvb2tsZXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgLy9jb25zb2xlLmxvZygnaW5zaWRlIFF1ZXN0aW9ubmFpcmUgbmdPbkNoYW5nZXMnKTtcclxuICAgIHRoaXMucHJvY2Vzc0Jvb2tsZXQoKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NCb29rbGV0KCkge1xyXG4gICAgaWYgKHRoaXMuYm9va2xldElkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJvb2tsZXRJZC5sZW5ndGggPT0gMTgpIHtcclxuICAgICAgICB0aGlzLnJlYWRCb29rbGV0KHRoaXMuYm9va2xldElkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkQm9va2xldCA9ICh1dWlkOiBzdHJpbmcpID0+IHtcclxuICAgIGlmKHRoaXMuc2VydiA9PSBcImFwaVwiKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0QVBJRGF0YShcclxuICAgICAgICB0aGlzLnRrbixcclxuICAgICAgICBbXCJCb29rbGV0XCIsIFwicmVhZFwiLCB1dWlkXSxcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NSZWFkQm9va2xldCxcclxuICAgICAgICB0aGlzLmZhaWx1cmVSZWFkQm9va2xldFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZlNlcnZpY2UucmVtb3RlQWN0aW9uKFxyXG4gICAgICAgIFwiTnh0Q29udHJvbGxlci5wcm9jZXNzXCIsXHJcbiAgICAgICAgW1wiQm9va2xldFwiLCBcInJlYWRcIiwgdXVpZF0sXHJcbiAgICAgICAgdGhpcy5zdWNjZXNzUmVhZEJvb2tsZXQsXHJcbiAgICAgICAgdGhpcy5mYWlsdXJlUmVhZEJvb2tsZXRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VjY2Vzc1JlYWRCb29rbGV0ID0gKHJlc3BvbnNlKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZygnSW5zaWRlIHRoZSBzdWNjZXNzUmVhZEJvb2tsZXQnKTtcclxuICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgIGlmKHJlc3BvbnNlICE9IG51bGwgfHwgcmVzcG9uc2UgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuYm9va2xldCA9IHJlc3BvbnNlLnJlY29yZHM7XHJcbiAgICAgIHRoaXMuYWJJdGVtID0gcmVzcG9uc2UuYW5zd2VyYm9vaztcclxuICAgICAgaWYocmVzcG9uc2UucXVlc3Rpb25ib29rPy5BY3Rpb25zX19jICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IEpTT04ucGFyc2UocmVzcG9uc2UucXVlc3Rpb25ib29rLkFjdGlvbnNfX2MpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZhaWx1cmVSZWFkQm9va2xldCA9IChyZXNwb25zZSkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIGhhbmRsZUJvb2tsZXRBY3Rpb25DbGljayhhY3Rpb246QWN0aW9uTWV0YSkge1xyXG4gICAgY29uc29sZS5sb2coYWN0aW9uKTtcclxuICAgIHRoaXMuaGFuZGxlQm9va2xldEFjdGlvbkV2ZW50LmVtaXQoYWN0aW9uLmV2ZW50dG9lbWl0KTtcclxuICB9XHJcbn1cclxuIiwiPG5neC1zcGlubmVyIFtuYW1lXT1cInNwaW5uZXJOYW1lXCIgW3R5cGVdPVwic3Bpbm5lclR5cGVcIj48L25neC1zcGlubmVyPlxyXG48IS0tIEJvb2tsZXQgSGFuZGxpbmctLT5cclxuPGRpdiAqbmdGb3I9XCJsZXQgcWIgb2YgYm9va2xldFwiPlxyXG4gICAgPGxpYi1xdWVzdGlvbm5haXJlIFtzZXJ2XT1cInNlcnZcIiBbcWJJZF09XCJxYi5JZFwiIFt0a25dPVwidGtuXCI+PC9saWItcXVlc3Rpb25uYWlyZT5cclxuPC9kaXY+XHJcblxyXG48IS0tIEdyb3VwIEFjdGlvbnMgLS0+XHJcbjxkaXYgY2xhc3M9XCJhbGlnbi1lZGl0LXN1Ym1pdFwiICpuZ0lmPVwiYWJJdGVtLlN0YXR1c19fYyAhPSAnQ29tcGxldGVkJ1wiPlxyXG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgYWN0aW9uIG9mIGFjdGlvbnNcIj5cclxuICAgICAgICA8YnV0dG9uIChjbGljayk9XCJoYW5kbGVCb29rbGV0QWN0aW9uQ2xpY2soYWN0aW9uKVwiPlxyXG4gICAgICAgICAgICB7eyBhY3Rpb24ubmFtZSB9fVxyXG4gICAgICAgIDwvYnV0dG9uPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYm9va2xldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvcGFnZXMvYm9va2xldC9ib29rbGV0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL254dC1hcHAvc3JjL2xpYi9wYWdlcy9ib29rbGV0L2Jvb2tsZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFJVCxLQUFLLEVBQ0wsTUFBTSxFQUNOLFlBQVksR0FHYixNQUFNLGVBQWUsQ0FBQzs7Ozs7Ozs7O0FBWXZCLE1BQU0sT0FBTyxnQkFBZ0I7SUFlakI7SUFDQTtJQUNBO0lBQ0E7SUFqQkQsU0FBUyxDQUFTO0lBQ2xCLElBQUksQ0FBUztJQUNiLEdBQUcsQ0FBUztJQUNYLHdCQUF3QixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7SUFDOUMsVUFBVSxHQUFzQixJQUFJLFlBQVksRUFBRSxDQUFDO0lBRXRELE9BQU8sR0FBVSxFQUFFLENBQUM7SUFDcEIsTUFBTSxHQUFRLEVBQUUsQ0FBQztJQUNqQixPQUFPLEdBQWlCLEVBQUUsQ0FBQztJQUUzQixXQUFXLENBQVM7SUFDcEIsV0FBVyxDQUFRO0lBRTFCLFlBQ1UsU0FBNEIsRUFDNUIsV0FBd0IsRUFDeEIsS0FBcUIsRUFDckIsU0FBdUIsRUFDL0IsRUFBYztRQUpOLGNBQVMsR0FBVCxTQUFTLENBQW1CO1FBQzVCLGdCQUFXLEdBQVgsV0FBVyxDQUFhO1FBQ3hCLFVBQUssR0FBTCxLQUFLLENBQWdCO1FBQ3JCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFHL0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxLQUFLLENBQUM7UUFDekIsSUFBSSxDQUFDLFdBQVcsR0FBRyxxQkFBcUIsQ0FBQztJQUMzQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULGtEQUFrRDtRQUNsRCxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7SUFDeEIsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDbEIsSUFBSSxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sSUFBSSxFQUFFLEVBQUU7Z0JBQy9CLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO2FBQ2xDO1NBQ0Y7SUFDSCxDQUFDO0lBRU8sV0FBVyxHQUFHLENBQUMsSUFBWSxFQUFFLEVBQUU7UUFDckMsSUFBRyxJQUFJLENBQUMsSUFBSSxJQUFJLEtBQUssRUFBRTtZQUNyQixJQUFJLENBQUMsV0FBVyxDQUFDLFVBQVUsQ0FDekIsSUFBSSxDQUFDLEdBQUcsRUFDUixDQUFDLFNBQVMsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLEVBQ3pCLElBQUksQ0FBQyxrQkFBa0IsRUFDdkIsSUFBSSxDQUFDLGtCQUFrQixDQUN4QixDQUFDO1NBQ0g7YUFBTTtZQUNMLElBQUksQ0FBQyxTQUFTLENBQUMsWUFBWSxDQUN6Qix1QkFBdUIsRUFDdkIsQ0FBQyxTQUFTLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxFQUN6QixJQUFJLENBQUMsa0JBQWtCLEVBQ3ZCLElBQUksQ0FBQyxrQkFBa0IsQ0FDeEIsQ0FBQztTQUNIO0lBQ0gsQ0FBQyxDQUFBO0lBRU8sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLCtCQUErQixDQUFDLENBQUM7UUFDN0MsT0FBTyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsQ0FBQztRQUN0QixJQUFHLFFBQVEsSUFBSSxJQUFJLElBQUksUUFBUSxJQUFJLFNBQVMsRUFBRTtZQUM1QyxJQUFJLENBQUMsT0FBTyxHQUFHLFFBQVEsQ0FBQyxPQUFPLENBQUM7WUFDaEMsSUFBSSxDQUFDLE1BQU0sR0FBRyxRQUFRLENBQUMsVUFBVSxDQUFDO1lBQ2xDLElBQUcsUUFBUSxDQUFDLFlBQVksRUFBRSxVQUFVLElBQUksU0FBUyxFQUFFO2dCQUNqRCxJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsUUFBUSxDQUFDLFlBQVksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUM3RDtTQUNGO0lBQ0gsQ0FBQyxDQUFBO0lBRU8sa0JBQWtCLEdBQUcsQ0FBQyxRQUFRLEVBQUUsRUFBRTtJQUUxQyxDQUFDLENBQUE7SUFFRCx3QkFBd0IsQ0FBQyxNQUFpQjtRQUN4QyxPQUFPLENBQUMsR0FBRyxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3BCLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLFdBQVcsQ0FBQyxDQUFDO0lBQ3pELENBQUM7d0dBL0VVLGdCQUFnQjs0RkFBaEIsZ0JBQWdCLG1PQ3RCN0Isa2lCQWNBOzs0RkRRYSxnQkFBZ0I7a0JBTDVCLFNBQVM7K0JBQ0UsYUFBYTttTkFLZCxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLElBQUk7c0JBQVosS0FBSztnQkFDRyxHQUFHO3NCQUFYLEtBQUs7Z0JBQ0ksd0JBQXdCO3NCQUFqQyxNQUFNO2dCQUNHLFVBQVU7c0JBQW5CLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xyXG4gIENvbXBvbmVudCxcclxuICBPbkluaXQsXHJcbiAgT25DaGFuZ2VzLFxyXG4gIEluamVjdCxcclxuICBJbnB1dCxcclxuICBPdXRwdXQsXHJcbiAgRXZlbnRFbWl0dGVyLFxyXG4gIFZpZXdFbmNhcHN1bGF0aW9uLFxyXG4gIEVsZW1lbnRSZWYsXHJcbn0gZnJvbSBcIkBhbmd1bGFyL2NvcmVcIjtcclxuaW1wb3J0IHsgU2FsZXNmb3JjZVNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vc2VydmljZXMvc2FsZXNmb3JjZS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IERhdGFTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvZGF0YS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQWN0aXZhdGVkUm91dGUsIFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9yb3V0ZXJcIjtcclxuaW1wb3J0IHsgRG9tU2FuaXRpemVyLCBTYWZlSHRtbCB9IGZyb20gXCJAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyXCI7XHJcbmltcG9ydCB7IEFjdGlvbk1ldGEgfSBmcm9tICcuLi8uLi9pbnRlcmZhY2VzL2FjdGlvbk1ldGEnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItYm9va2xldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2Jvb2tsZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsczogWycuL2Jvb2tsZXQuY29tcG9uZW50LmNzcyddXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBCb29rbGV0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBASW5wdXQoKSBib29rbGV0SWQ6IHN0cmluZztcclxuICBASW5wdXQoKSBzZXJ2OiBzdHJpbmc7XHJcbiAgQElucHV0KCkgdGtuOiBzdHJpbmc7XHJcbiAgQE91dHB1dCgpIGhhbmRsZUJvb2tsZXRBY3Rpb25FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgaGFuZGxlUGFnZTogRXZlbnRFbWl0dGVyPGFueT4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIHB1YmxpYyBib29rbGV0OiBhbnlbXSA9IFtdO1xyXG4gIHB1YmxpYyBhYkl0ZW06IGFueSA9IHt9O1xyXG4gIHB1YmxpYyBhY3Rpb25zOiBBY3Rpb25NZXRhW10gPSBbXTtcclxuXHJcbiAgcHVibGljIHNwaW5uZXJOYW1lOiBzdHJpbmc7XHJcbiAgcHVibGljIHNwaW5uZXJUeXBlOnN0cmluZztcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHNmU2VydmljZTogU2FsZXNmb3JjZVNlcnZpY2UsXHJcbiAgICBwcml2YXRlIGRhdGFTZXJ2aWNlOiBEYXRhU2VydmljZSxcclxuICAgIHByaXZhdGUgcm91dGU6IEFjdGl2YXRlZFJvdXRlLFxyXG4gICAgcHJpdmF0ZSBzYW5pdGl6ZXI6IERvbVNhbml0aXplcixcclxuICAgIGVsOiBFbGVtZW50UmVmXHJcbiAgKSB7IFxyXG4gICAgdGhpcy5zcGlubmVyTmFtZSA9IFwic3AxXCI7XHJcbiAgICB0aGlzLnNwaW5uZXJUeXBlID0gXCJiYWxsLXNwaW4tY2xvY2t3aXNlXCI7XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMucHJvY2Vzc0Jvb2tsZXQoKTtcclxuICB9XHJcblxyXG4gIG5nT25DaGFuZ2VzKCkge1xyXG4gICAgLy9jb25zb2xlLmxvZygnaW5zaWRlIFF1ZXN0aW9ubmFpcmUgbmdPbkNoYW5nZXMnKTtcclxuICAgIHRoaXMucHJvY2Vzc0Jvb2tsZXQoKTtcclxuICB9XHJcblxyXG4gIHByb2Nlc3NCb29rbGV0KCkge1xyXG4gICAgaWYgKHRoaXMuYm9va2xldElkKSB7XHJcbiAgICAgIGlmICh0aGlzLmJvb2tsZXRJZC5sZW5ndGggPT0gMTgpIHtcclxuICAgICAgICB0aGlzLnJlYWRCb29rbGV0KHRoaXMuYm9va2xldElkKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSByZWFkQm9va2xldCA9ICh1dWlkOiBzdHJpbmcpID0+IHtcclxuICAgIGlmKHRoaXMuc2VydiA9PSBcImFwaVwiKSB7XHJcbiAgICAgIHRoaXMuZGF0YVNlcnZpY2UuZ2V0QVBJRGF0YShcclxuICAgICAgICB0aGlzLnRrbixcclxuICAgICAgICBbXCJCb29rbGV0XCIsIFwicmVhZFwiLCB1dWlkXSxcclxuICAgICAgICB0aGlzLnN1Y2Nlc3NSZWFkQm9va2xldCxcclxuICAgICAgICB0aGlzLmZhaWx1cmVSZWFkQm9va2xldFxyXG4gICAgICApO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZlNlcnZpY2UucmVtb3RlQWN0aW9uKFxyXG4gICAgICAgIFwiTnh0Q29udHJvbGxlci5wcm9jZXNzXCIsXHJcbiAgICAgICAgW1wiQm9va2xldFwiLCBcInJlYWRcIiwgdXVpZF0sXHJcbiAgICAgICAgdGhpcy5zdWNjZXNzUmVhZEJvb2tsZXQsXHJcbiAgICAgICAgdGhpcy5mYWlsdXJlUmVhZEJvb2tsZXRcclxuICAgICAgKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgc3VjY2Vzc1JlYWRCb29rbGV0ID0gKHJlc3BvbnNlKSA9PiB7XHJcbiAgICBjb25zb2xlLmxvZygnSW5zaWRlIHRoZSBzdWNjZXNzUmVhZEJvb2tsZXQnKTtcclxuICAgIGNvbnNvbGUubG9nKHJlc3BvbnNlKTtcclxuICAgIGlmKHJlc3BvbnNlICE9IG51bGwgfHwgcmVzcG9uc2UgIT0gdW5kZWZpbmVkKSB7XHJcbiAgICAgIHRoaXMuYm9va2xldCA9IHJlc3BvbnNlLnJlY29yZHM7XHJcbiAgICAgIHRoaXMuYWJJdGVtID0gcmVzcG9uc2UuYW5zd2VyYm9vaztcclxuICAgICAgaWYocmVzcG9uc2UucXVlc3Rpb25ib29rPy5BY3Rpb25zX19jICE9IHVuZGVmaW5lZCkge1xyXG4gICAgICAgIHRoaXMuYWN0aW9ucyA9IEpTT04ucGFyc2UocmVzcG9uc2UucXVlc3Rpb25ib29rLkFjdGlvbnNfX2MpO1xyXG4gICAgICB9XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGZhaWx1cmVSZWFkQm9va2xldCA9IChyZXNwb25zZSkgPT4ge1xyXG5cclxuICB9XHJcblxyXG4gIGhhbmRsZUJvb2tsZXRBY3Rpb25DbGljayhhY3Rpb246QWN0aW9uTWV0YSkge1xyXG4gICAgY29uc29sZS5sb2coYWN0aW9uKTtcclxuICAgIHRoaXMuaGFuZGxlQm9va2xldEFjdGlvbkV2ZW50LmVtaXQoYWN0aW9uLmV2ZW50dG9lbWl0KTtcclxuICB9XHJcbn1cclxuIiwiPG5neC1zcGlubmVyIFtuYW1lXT1cInNwaW5uZXJOYW1lXCIgW3R5cGVdPVwic3Bpbm5lclR5cGVcIj48L25neC1zcGlubmVyPlxyXG48IS0tIEJvb2tsZXQgSGFuZGxpbmctLT5cclxuPGRpdiAqbmdGb3I9XCJsZXQgcWIgb2YgYm9va2xldFwiPlxyXG4gICAgPGxpYi1xdWVzdGlvbm5haXJlIFtzZXJ2XT1cInNlcnZcIiBbcWJJZF09XCJxYi5JZFwiIFt0a25dPVwidGtuXCI+PC9saWItcXVlc3Rpb25uYWlyZT5cclxuPC9kaXY+XHJcblxyXG48IS0tIEdyb3VwIEFjdGlvbnMgLS0+XHJcbjxkaXYgY2xhc3M9XCJhbGlnbi1zdWJtaXQtcm93XCIgKm5nSWY9XCJhYkl0ZW0uU3RhdHVzX19jICE9ICdDb21wbGV0ZWQnXCI+XHJcbiAgICA8ZGl2ICpuZ0Zvcj1cImxldCBhY3Rpb24gb2YgYWN0aW9uc1wiPlxyXG4gICAgICAgIDxidXR0b24gKGNsaWNrKT1cImhhbmRsZUJvb2tsZXRBY3Rpb25DbGljayhhY3Rpb24pXCI+XHJcbiAgICAgICAgICAgIHt7IGFjdGlvbi5uYW1lIH19XHJcbiAgICAgICAgPC9idXR0b24+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==