@rangertechnologies/ngnxt 2.1.254 → 2.1.255-beta
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/fesm2022/rangertechnologies-ngnxt.mjs +135 -166
- package/fesm2022/rangertechnologies-ngnxt.mjs.map +1 -1
- package/lib/components/pick-location/pick-location.component.d.ts +0 -1
- package/package.json +4 -6
- package/rangertechnologies-ngnxt-2.1.255-beta.tgz +0 -0
- package/esm2022/environments/version.mjs +0 -15
- package/esm2022/lib/components/button/nxt-button.component.mjs +0 -154
- package/esm2022/lib/components/custom-calendar/custom-calendar.component.mjs +0 -360
- package/esm2022/lib/components/custom-dropdown/custom-dropdown.component.mjs +0 -263
- package/esm2022/lib/components/custom-model/custom-model.component.mjs +0 -53
- package/esm2022/lib/components/custom-radio/custom-radio.component.mjs +0 -158
- package/esm2022/lib/components/datatable/datatable.component.mjs +0 -1744
- package/esm2022/lib/components/file-upload/file-upload.component.mjs +0 -292
- package/esm2022/lib/components/icon-selector/icon-selector.component.mjs +0 -106
- package/esm2022/lib/components/image-cropper/component/cropper.state.mjs +0 -208
- package/esm2022/lib/components/image-cropper/component/image-cropper.component.mjs +0 -562
- package/esm2022/lib/components/image-cropper/interfaces/basic-event.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/cropper-options.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/cropper-position.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/dimensions.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/exif-transform.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/image-cropped-event.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/image-transform.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/index.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/loaded-image.interface.mjs +0 -2
- package/esm2022/lib/components/image-cropper/interfaces/move-start.interface.mjs +0 -8
- package/esm2022/lib/components/image-cropper/services/crop.service.mjs +0 -139
- package/esm2022/lib/components/image-cropper/services/load-image.service.mjs +0 -194
- package/esm2022/lib/components/image-cropper/utils/cropper-position.utils.mjs +0 -239
- package/esm2022/lib/components/image-cropper/utils/exif.utils.mjs +0 -79
- package/esm2022/lib/components/image-cropper/utils/keyboard.utils.mjs +0 -40
- package/esm2022/lib/components/image-cropper/utils/percentage.utils.mjs +0 -4
- package/esm2022/lib/components/image-cropper/utils/resize.utils.mjs +0 -75
- package/esm2022/lib/components/list-view-filter/list-view-filter.component.mjs +0 -392
- package/esm2022/lib/components/nxt-input/nxt-input.component.mjs +0 -2972
- package/esm2022/lib/components/pagination/pagination.component.mjs +0 -105
- package/esm2022/lib/components/pick-location/pick-location.component.mjs +0 -220
- package/esm2022/lib/components/search-box/search-box.component.mjs +0 -470
- package/esm2022/lib/country.json +0 -43237
- package/esm2022/lib/interfaces/actionMeta.mjs +0 -2
- package/esm2022/lib/interfaces/dependencyMeta.mjs +0 -2
- package/esm2022/lib/model/bookletWrapper.mjs +0 -7
- package/esm2022/lib/model/changeWrapper.mjs +0 -10
- package/esm2022/lib/model/errorWrapper.mjs +0 -6
- package/esm2022/lib/nxt-app.component.mjs +0 -22
- package/esm2022/lib/nxt-app.module.mjs +0 -115
- package/esm2022/lib/nxt-app.service.mjs +0 -14
- package/esm2022/lib/pages/booklet/booklet.component.mjs +0 -616
- package/esm2022/lib/pages/builder/element/element.component.mjs +0 -483
- package/esm2022/lib/pages/builder/form/form.component.mjs +0 -48
- package/esm2022/lib/pages/builder/properties/common-fields.constants.mjs +0 -97
- package/esm2022/lib/pages/builder/properties/properties.component.mjs +0 -1121
- package/esm2022/lib/pages/builder/templates/templates.component.mjs +0 -35
- package/esm2022/lib/pages/pdfDesigner/pdf-designer/pdf-designer.component.mjs +0 -639
- package/esm2022/lib/pages/pdfDesigner/pdf-properties/pdf-properties.component.mjs +0 -1114
- package/esm2022/lib/pages/questionbook/questionbook.component.mjs +0 -784
- package/esm2022/lib/pages/questionnaire/questionnaire.component.mjs +0 -2206
- package/esm2022/lib/pipe/button-styles.pipe.mjs +0 -26
- package/esm2022/lib/pipe/custom-translate.pipe.mjs +0 -37
- package/esm2022/lib/pipe/get-value.pipe.mjs +0 -54
- package/esm2022/lib/pipe/question-by-row.pipe.mjs +0 -51
- package/esm2022/lib/pipe/search-filter/search-filter.pipe.mjs +0 -40
- package/esm2022/lib/pipe/svg/svg.pipe.mjs +0 -26
- package/esm2022/lib/sample.mjs +0 -3715
- package/esm2022/lib/services/change/change.service.mjs +0 -46
- package/esm2022/lib/services/country/country.service.mjs +0 -135
- package/esm2022/lib/services/data/data.service.mjs +0 -100
- package/esm2022/lib/services/form-builder/form-builder.service.mjs +0 -474
- package/esm2022/lib/services/pdf-designer/pdf-designer.service.mjs +0 -395
- package/esm2022/lib/services/salesforce/salesforce.service.mjs +0 -41
- package/esm2022/lib/services/shared/shared.service.mjs +0 -100
- package/esm2022/lib/services/storage/storage.service.mjs +0 -59
- package/esm2022/lib/services/template/template.service.mjs +0 -335
- package/esm2022/lib/services/translation/translation.service.mjs +0 -121
- package/esm2022/lib/wrapper.mjs +0 -175
- package/esm2022/public-api.mjs +0 -22
- package/esm2022/rangertechnologies-ngnxt.mjs +0 -5
- package/rangertechnologies-ngnxt-2.1.254.tgz +0 -0
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
3
|
-
import { FormsModule } from '@angular/forms';
|
|
4
|
-
import { NxtCustomTranslatePipe } from '../../pipe/custom-translate.pipe';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "@angular/common";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
export class NxtPagination {
|
|
9
|
-
event = new EventEmitter;
|
|
10
|
-
// page size Options
|
|
11
|
-
pageSizeOptions = [5, 10, 15, 20, 50];
|
|
12
|
-
/** The total number of records */
|
|
13
|
-
collectionSize = 0;
|
|
14
|
-
/** The number of records to display */
|
|
15
|
-
pageSize = 10;
|
|
16
|
-
/** Current page */
|
|
17
|
-
currentPage = 1;
|
|
18
|
-
/** The number of buttons to show either side of the current page */
|
|
19
|
-
maxSize = 2;
|
|
20
|
-
/** Display the First/Last buttons */
|
|
21
|
-
firstLastButtons = false;
|
|
22
|
-
/** Display the Next/Previous buttons */
|
|
23
|
-
nextPreviousButtons = true;
|
|
24
|
-
/** Display small pagination buttons */
|
|
25
|
-
small = false;
|
|
26
|
-
totalPages = [];
|
|
27
|
-
startIndex = 0;
|
|
28
|
-
endIndex = 0;
|
|
29
|
-
constructor() { }
|
|
30
|
-
ngOnInit() {
|
|
31
|
-
this.pageSize = this.pageSize ?? 10; // Ensure a default value
|
|
32
|
-
this.currentPage = this.currentPage === 0 ? 1 : this.currentPage;
|
|
33
|
-
if (this.collectionSize) {
|
|
34
|
-
this.totalPages = new Array(Math.ceil(this.collectionSize / Number(this.pageSize)));
|
|
35
|
-
}
|
|
36
|
-
this.updateIndexes();
|
|
37
|
-
}
|
|
38
|
-
ngOnChanges(changes) {
|
|
39
|
-
this.pageSize = this.pageSize ?? 10; // Ensure a default value
|
|
40
|
-
this.currentPage = this.currentPage === 0 ? 1 : this.currentPage ?? 1;
|
|
41
|
-
if (this.collectionSize) {
|
|
42
|
-
this.totalPages = new Array(Math.ceil(this.collectionSize / Number(this.pageSize)));
|
|
43
|
-
}
|
|
44
|
-
this.updateIndexes();
|
|
45
|
-
}
|
|
46
|
-
updateIndexes() {
|
|
47
|
-
this.startIndex = (this.currentPage - 1) * Number(this.pageSize);
|
|
48
|
-
this.endIndex = Math.min(this.startIndex + Number(this.pageSize), this.collectionSize);
|
|
49
|
-
}
|
|
50
|
-
/** Set page number */
|
|
51
|
-
selectPageNumber(pageNumber) {
|
|
52
|
-
this.currentPage = pageNumber;
|
|
53
|
-
this.updateIndexes();
|
|
54
|
-
this.emit();
|
|
55
|
-
}
|
|
56
|
-
/** Set next page number */
|
|
57
|
-
next() {
|
|
58
|
-
const nextPage = this.currentPage + 1;
|
|
59
|
-
nextPage <= this.totalPages.length && this.selectPageNumber(nextPage);
|
|
60
|
-
}
|
|
61
|
-
/** Set previous page number */
|
|
62
|
-
previous() {
|
|
63
|
-
const previousPage = this.currentPage - 1;
|
|
64
|
-
previousPage >= 1 && this.selectPageNumber(previousPage);
|
|
65
|
-
}
|
|
66
|
-
onPageSizeChange(newSize) {
|
|
67
|
-
this.pageSize = newSize; // Update the pageSize
|
|
68
|
-
this.totalPages = new Array(Math.ceil(this.collectionSize / this.pageSize));
|
|
69
|
-
// Ensure the current page is within bounds
|
|
70
|
-
// if (this.currentPage > this.totalPages.length) {
|
|
71
|
-
// this.currentPage = this.totalPages.length;
|
|
72
|
-
// }
|
|
73
|
-
this.currentPage = 1;
|
|
74
|
-
this.updateIndexes();
|
|
75
|
-
this.emit(); // Emit an event if necessary
|
|
76
|
-
}
|
|
77
|
-
emit() {
|
|
78
|
-
this.event.emit({ "length": this.collectionSize, "pageSize": this.pageSize, "pageIndex": this.currentPage });
|
|
79
|
-
}
|
|
80
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtPagination, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
81
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: NxtPagination, isStandalone: true, selector: "nxt-pagination", inputs: { pageSizeOptions: "pageSizeOptions", collectionSize: "collectionSize", pageSize: "pageSize", currentPage: "currentPage", maxSize: "maxSize", firstLastButtons: "firstLastButtons", nextPreviousButtons: "nextPreviousButtons", small: "small" }, outputs: { event: "event" }, usesOnChanges: true, ngImport: i0, template: "<!-- SKS24JAN25 -->\n<div class=\"flex content-space-between main-cont\">\n <div class=\"info\">\n <div *ngIf=\"endIndex\">\n {{'SHOWING_DATA' | nxtCustomTranslate : 'Showing data'}} {{ startIndex + 1 }} {{'TO' | nxtCustomTranslate : 'to'}} {{ endIndex }} {{'OF' | nxtCustomTranslate : 'of'}} {{ collectionSize }} {{'ENTRIES' | nxtCustomTranslate : 'entries'}} \n </div>\n </div>\n <div>\n <ul [class]=\"small ? 'pagination pagination-sm' : 'pagination'\" style=\"align-items: center; padding-top: 18px;\">\n <!-- select button -->\n <div style=\"font-size: 14px; font-weight: 400; padding-right: 10px; align-items: center;\" for=\"perPage\">{{'RESULT_PER_PAGE' | nxtCustomTranslate : 'Result per page'}}</div>\n <div class=\"dropdown-wrapper\">\n <select id=\"perPage\" [ngModel]=\"pageSize\" (ngModelChange)=\"onPageSizeChange($event)\">\n <option *ngFor=\"let size of pageSizeOptions\" [value]=\"size\">{{ size }}</option>\n </select>\n <svg class=\"dropdown-arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\" fill=\"#626262\"/>\n </svg> \n </div> \n <!-- first button -->\n <li [class]=\"currentPage === 1 ? 'page-item disabled' : 'page-item'\" *ngIf=\"firstLastButtons\" >\n <button class=\"page-link\" (click)=\"selectPageNumber(1)\">\u00AB\u00AB</button>\n </li>\n <!-- last button -->\n <li [class]=\"currentPage === totalPages.length ? 'page-item disabled' : 'page-item'\" *ngIf=\"firstLastButtons\">\n <button class=\"page-link\" (click)=\"selectPageNumber(totalPages.length)\">\u00BB\u00BB</button>\n </li>\n <!-- previous button -->\n <li [class]=\"currentPage === 1 ? 'page-item disabled' : 'page-item'\" *ngIf=\"nextPreviousButtons\" >\n <button class=\"page-link\" (click)=\"previous()\">\u00AB</button>\n </li>\n <!-- page numbers -->\n <ng-container *ngFor=\"let p of totalPages; index as i\">\n <li *ngIf=\"i + 1 >= currentPage - maxSize && i + 1 <= currentPage + maxSize\" [class]=\"currentPage === i + 1 ? 'page-item active' : 'page-item'\">\n <button class=\"page-link\" (click)=\"selectPageNumber(i + 1)\">\n {{ i + 1 }}\n </button>\n </li>\n </ng-container>\n <!-- next button -->\n <li [class]=\"currentPage === totalPages.length ? 'page-item disabled' : 'page-item'\" *ngIf=\"nextPreviousButtons\">\n <button class=\"page-link\" (click)=\"next()\">\u00BB</button>\n </li>\n </ul>\n </div>\n </div>\n ", styles: [".info{color:#b5b7c0;font-size:14px;font-weight:500}button{background:#f5f5f5;border:1px solid #E9E9E9;padding:2px 10px;cursor:pointer;transition:.3s}button:hover{border:1px solid #E9E9E9;background:#fff;color:#404b52!important}button:disabled{opacity:.5;color:#73797d;cursor:not-allowed}button.active{background:#5088ff;color:#fff;border-color:#5088ff}select{margin-right:10px}select.value{font-size:2px;margin-right:10px}.main-cont{align-items:center}#perPage{font-size:14px;color:#313131;background-color:#fff;border:1px solid #E9E9E9;border-radius:4px;padding-top:2px;padding-left:7px;padding-bottom:2px;font-weight:400;appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative}#perPage:hover{background-color:#f5f5f5;color:#404b52!important}.dropdown-wrapper{position:relative;display:inline-block;width:60px;margin-right:10px}.dropdown-wrapper select{width:88%;padding:7px;font-size:16px;border:1px solid #ccc;border-radius:4px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none}.dropdown-wrapper .dropdown-arrow{position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:#333}li{color:#404b52!important;font-family:inter,sans-serif!important;font-size:12px!important;padding:6px!important}::ng-deep .pagination{--bs-pagination-font-size: none !important}::ng-deep .page-item:not(:first-child) .page-link{border-radius:4px!important}.page-link{color:#404b52!important}::ng-deep .page-link.active,.active>.page-link{color:#fff!important}::ng-deep .page-link.active:hover,.active>.page-link:hover{color:#000!important}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i2.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { 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"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
|
|
82
|
-
}
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: NxtPagination, decorators: [{
|
|
84
|
-
type: Component,
|
|
85
|
-
args: [{ selector: 'nxt-pagination', standalone: true, imports: [CommonModule, FormsModule, NxtCustomTranslatePipe], template: "<!-- SKS24JAN25 -->\n<div class=\"flex content-space-between main-cont\">\n <div class=\"info\">\n <div *ngIf=\"endIndex\">\n {{'SHOWING_DATA' | nxtCustomTranslate : 'Showing data'}} {{ startIndex + 1 }} {{'TO' | nxtCustomTranslate : 'to'}} {{ endIndex }} {{'OF' | nxtCustomTranslate : 'of'}} {{ collectionSize }} {{'ENTRIES' | nxtCustomTranslate : 'entries'}} \n </div>\n </div>\n <div>\n <ul [class]=\"small ? 'pagination pagination-sm' : 'pagination'\" style=\"align-items: center; padding-top: 18px;\">\n <!-- select button -->\n <div style=\"font-size: 14px; font-weight: 400; padding-right: 10px; align-items: center;\" for=\"perPage\">{{'RESULT_PER_PAGE' | nxtCustomTranslate : 'Result per page'}}</div>\n <div class=\"dropdown-wrapper\">\n <select id=\"perPage\" [ngModel]=\"pageSize\" (ngModelChange)=\"onPageSizeChange($event)\">\n <option *ngFor=\"let size of pageSizeOptions\" [value]=\"size\">{{ size }}</option>\n </select>\n <svg class=\"dropdown-arrow\" width=\"9\" height=\"6\" viewBox=\"0 0 9 6\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\n <path fill-rule=\"evenodd\" clip-rule=\"evenodd\" d=\"M0.684136 0.767477C0.922999 0.5378 1.30282 0.545248 1.5325 0.784111L4.5 3.93431L7.4675 0.784111C7.69718 0.545248 8.077 0.5378 8.31587 0.767477C8.55473 0.997153 8.56218 1.37698 8.3325 1.61584L4.9325 5.21584C4.81938 5.33349 4.66321 5.39998 4.5 5.39998C4.33679 5.39998 4.18062 5.33349 4.0675 5.21584L0.667501 1.61584C0.437825 1.37698 0.445272 0.997153 0.684136 0.767477Z\" fill=\"#626262\"/>\n </svg> \n </div> \n <!-- first button -->\n <li [class]=\"currentPage === 1 ? 'page-item disabled' : 'page-item'\" *ngIf=\"firstLastButtons\" >\n <button class=\"page-link\" (click)=\"selectPageNumber(1)\">\u00AB\u00AB</button>\n </li>\n <!-- last button -->\n <li [class]=\"currentPage === totalPages.length ? 'page-item disabled' : 'page-item'\" *ngIf=\"firstLastButtons\">\n <button class=\"page-link\" (click)=\"selectPageNumber(totalPages.length)\">\u00BB\u00BB</button>\n </li>\n <!-- previous button -->\n <li [class]=\"currentPage === 1 ? 'page-item disabled' : 'page-item'\" *ngIf=\"nextPreviousButtons\" >\n <button class=\"page-link\" (click)=\"previous()\">\u00AB</button>\n </li>\n <!-- page numbers -->\n <ng-container *ngFor=\"let p of totalPages; index as i\">\n <li *ngIf=\"i + 1 >= currentPage - maxSize && i + 1 <= currentPage + maxSize\" [class]=\"currentPage === i + 1 ? 'page-item active' : 'page-item'\">\n <button class=\"page-link\" (click)=\"selectPageNumber(i + 1)\">\n {{ i + 1 }}\n </button>\n </li>\n </ng-container>\n <!-- next button -->\n <li [class]=\"currentPage === totalPages.length ? 'page-item disabled' : 'page-item'\" *ngIf=\"nextPreviousButtons\">\n <button class=\"page-link\" (click)=\"next()\">\u00BB</button>\n </li>\n </ul>\n </div>\n </div>\n ", styles: [".info{color:#b5b7c0;font-size:14px;font-weight:500}button{background:#f5f5f5;border:1px solid #E9E9E9;padding:2px 10px;cursor:pointer;transition:.3s}button:hover{border:1px solid #E9E9E9;background:#fff;color:#404b52!important}button:disabled{opacity:.5;color:#73797d;cursor:not-allowed}button.active{background:#5088ff;color:#fff;border-color:#5088ff}select{margin-right:10px}select.value{font-size:2px;margin-right:10px}.main-cont{align-items:center}#perPage{font-size:14px;color:#313131;background-color:#fff;border:1px solid #E9E9E9;border-radius:4px;padding-top:2px;padding-left:7px;padding-bottom:2px;font-weight:400;appearance:none;-webkit-appearance:none;-moz-appearance:none;position:relative}#perPage:hover{background-color:#f5f5f5;color:#404b52!important}.dropdown-wrapper{position:relative;display:inline-block;width:60px;margin-right:10px}.dropdown-wrapper select{width:88%;padding:7px;font-size:16px;border:1px solid #ccc;border-radius:4px;appearance:none;-webkit-appearance:none;-moz-appearance:none;background:none}.dropdown-wrapper .dropdown-arrow{position:absolute;right:15px;top:50%;transform:translateY(-50%);pointer-events:none;color:#333}li{color:#404b52!important;font-family:inter,sans-serif!important;font-size:12px!important;padding:6px!important}::ng-deep .pagination{--bs-pagination-font-size: none !important}::ng-deep .page-item:not(:first-child) .page-link{border-radius:4px!important}.page-link{color:#404b52!important}::ng-deep .page-link.active,.active>.page-link{color:#fff!important}::ng-deep .page-link.active:hover,.active>.page-link:hover{color:#000!important}\n"] }]
|
|
86
|
-
}], ctorParameters: () => [], propDecorators: { event: [{
|
|
87
|
-
type: Output
|
|
88
|
-
}], pageSizeOptions: [{
|
|
89
|
-
type: Input
|
|
90
|
-
}], collectionSize: [{
|
|
91
|
-
type: Input
|
|
92
|
-
}], pageSize: [{
|
|
93
|
-
type: Input
|
|
94
|
-
}], currentPage: [{
|
|
95
|
-
type: Input
|
|
96
|
-
}], maxSize: [{
|
|
97
|
-
type: Input
|
|
98
|
-
}], firstLastButtons: [{
|
|
99
|
-
type: Input
|
|
100
|
-
}], nextPreviousButtons: [{
|
|
101
|
-
type: Input
|
|
102
|
-
}], small: [{
|
|
103
|
-
type: Input
|
|
104
|
-
}] } });
|
|
105
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFnaW5hdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9wYWdpbmF0aW9uL3BhZ2luYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvcGFnaW5hdGlvbi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUM5RixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDN0MsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFVMUUsTUFBTSxPQUFPLGFBQWE7SUFDZCxLQUFLLEdBQUcsSUFBSSxZQUFpQixDQUFDO0lBQ3hDLG9CQUFvQjtJQUNYLGVBQWUsR0FBYSxDQUFDLENBQUMsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUN6RCxrQ0FBa0M7SUFDekIsY0FBYyxHQUFHLENBQUMsQ0FBQztJQUU1Qix1Q0FBdUM7SUFDOUIsUUFBUSxHQUFHLEVBQUUsQ0FBQztJQUV2QixtQkFBbUI7SUFDVixXQUFXLEdBQUcsQ0FBQyxDQUFDO0lBRXpCLG9FQUFvRTtJQUMzRCxPQUFPLEdBQUcsQ0FBQyxDQUFDO0lBRXJCLHFDQUFxQztJQUM1QixnQkFBZ0IsR0FBRyxLQUFLLENBQUM7SUFFbEMsd0NBQXdDO0lBQy9CLG1CQUFtQixHQUFHLElBQUksQ0FBQztJQUVwQyx1Q0FBdUM7SUFDOUIsS0FBSyxHQUFHLEtBQUssQ0FB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QzVFLDJDQUEyQztRQUMzQyxtREFBbUQ7UUFDbkQsK0NBQStDO1FBQy9DLElBQUk7UUFDSixJQUFJLENBQUMsV0FBVyxHQUFHLENBQUMsQ0FBQTtRQUNwQixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsNkJBQTZCO0lBQzVDLENBQUM7SUFDRCxJQUFJO1FBQ0YsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsRUFBQyxRQUFRLEVBQUMsSUFBSSxDQUFDLGNBQWMsRUFBRSxVQUFVLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxXQUFXLEVBQUcsSUFBSSxDQUFDLFdBQVcsRUFBQyxDQUFDLENBQUE7SUFDNUcsQ0FBQzt3R0FwRlUsYUFBYTs0RkFBYixhQUFhLHNYQ2IxQix1aEdBOENHLDBuRERyQ1MsWUFBWSwrUEFBRSxXQUFXLHF2QkFBRSxzQkFBc0I7OzRGQUloRCxhQUFhO2tCQVB6QixTQUFTOytCQUNFLGdCQUFnQixjQUNkLElBQUksV0FDUCxDQUFDLFlBQVksRUFBRSxXQUFXLEVBQUUsc0JBQXNCLENBQUM7d0RBS2xELEtBQUs7c0JBQWQsTUFBTTtnQkFFRSxlQUFlO3NCQUF2QixLQUFLO2dCQUVHLGNBQWM7c0JBQXRCLEtBQUs7Z0JBR0csUUFBUTtzQkFBaEIsS0FBSztnQkFHRyxXQUFXO3NCQUFuQixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFHRyxnQkFBZ0I7c0JBQXhCLEtBQUs7Z0JBR0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUdHLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IE54dEN1c3RvbVRyYW5zbGF0ZVBpcGUgfSBmcm9tICcuLi8uLi9waXBlL2N1c3RvbS10cmFuc2xhdGUucGlwZSc7XG5cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnbnh0LXBhZ2luYXRpb24nLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlLCBGb3Jtc01vZHVsZSwgTnh0Q3VzdG9tVHJhbnNsYXRlUGlwZV0sXG4gIHRlbXBsYXRlVXJsOiAnLi9wYWdpbmF0aW9uLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmw6ICcuL3BhZ2luYXRpb24uY29tcG9uZW50LmNzcydcbn0pXG5leHBvcnQgY2xhc3MgTnh0UGFnaW5hdGlvbiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBPdXRwdXQoKSBldmVudCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PjtcbiAgLy8gcGFnZSBzaXplIE9wdGlvbnNcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFs1LCAxMCwgMTUsIDIwLCA1MF07XG4gIC8qKiBUaGUgdG90YWwgbnVtYmVyIG9mIHJlY29yZHMgKi9cbiAgQElucHV0KCkgY29sbGVjdGlvblNpemUgPSAwO1xuXG4gIC8qKiBUaGUgbnVtYmVyIG9mIHJlY29yZHMgdG8gZGlzcGxheSAqL1xuICBASW5wdXQoKSBwYWdlU2l6ZSA9IDEwO1xuXG4gIC8qKiBDdXJyZW50IHBhZ2UgKi9cbiAgQElucHV0KCkgY3VycmVudFBhZ2UgPSAxO1xuXG4gIC8qKiBUaGUgbnVtYmVyIG9mIGJ1dHRvbnMgdG8gc2hvdyBlaXRoZXIgc2lkZSBvZiB0aGUgY3VycmVudCBwYWdlICovXG4gIEBJbnB1dCgpIG1heFNpemUgPSAyO1xuXG4gIC8qKiBEaXNwbGF5IHRoZSBGaXJzdC9MYXN0IGJ1dHRvbnMgKi9cbiAgQElucHV0KCkgZmlyc3RMYXN0QnV0dG9ucyA9IGZhbHNlO1xuXG4gIC8qKiBEaXNwbGF5IHRoZSBOZXh0L1ByZXZpb3VzIGJ1dHRvbnMgKi9cbiAgQElucHV0KCkgbmV4dFByZXZpb3VzQnV0dG9ucyA9IHRydWU7XG5cbiAgLyoqIERpc3BsYXkgc21hbGwgcGFnaW5hdGlvbiBidXR0b25zICovXG4gIEBJbnB1dCgpIHNtYWxsID0gZmFsc2U7XG5cbiAgdG90YWxQYWdlczogYW55W10gPSBbXTtcbiAgc3RhcnRJbmRleCA9IDA7XG4gIGVuZEluZGV4ID0gMDtcblxuICBjb25zdHJ1Y3RvcigpIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5wYWdlU2l6ZSA9IHRoaXMucGFnZVNpemUgPz8gMTA7IC8vIEVuc3VyZSBhIGRlZmF1bHQgdmFsdWVcbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gdGhpcy5jdXJyZW50UGFnZSA9PT0gMCA/IDEgOiB0aGlzLmN1cnJlbnRQYWdlXG4gICAgaWYgKHRoaXMuY29sbGVjdGlvblNpemUpIHtcbiAgICAgIHRoaXMudG90YWxQYWdlcyA9IG5ldyBBcnJheShNYXRoLmNlaWwodGhpcy5jb2xsZWN0aW9uU2l6ZSAvIE51bWJlcih0aGlzLnBhZ2VTaXplKSkpO1xuICAgIH1cbiAgICB0aGlzLnVwZGF0ZUluZGV4ZXMoKTtcbiAgfVxuXG4gIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpIHtcbiAgICB0aGlzLnBhZ2VTaXplID0gdGhpcy5wYWdlU2l6ZSA/PyAxMDsgLy8gRW5zdXJlIGEgZGVmYXVsdCB2YWx1ZVxuICAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLmN1cnJlbnRQYWdlID09PSAwID8gMSA6IHRoaXMuY3VycmVudFBhZ2UgPz8gMVxuICAgIGlmICh0aGlzLmNvbGxlY3Rpb25TaXplKSB7XG4gICAgICB0aGlzLnRvdGFsUGFnZXMgPSBuZXcgQXJyYXkoTWF0aC5jZWlsKHRoaXMuY29sbGVjdGlvblNpemUgLyBOdW1iZXIodGhpcy5wYWdlU2l6ZSkpKTtcbiAgICB9XG4gICAgdGhpcy51cGRhdGVJbmRleGVzKCk7XG4gIH1cbiAgdXBkYXRlSW5kZXhlcygpIHtcbiAgICB0aGlzLnN0YXJ0SW5kZXggPSAodGhpcy5jdXJyZW50UGFnZSAtIDEpICogTnVtYmVyKHRoaXMucGFnZVNpemUpO1xuICAgIHRoaXMuZW5kSW5kZXggPSBNYXRoLm1pbih0aGlzLnN0YXJ0SW5kZXggKyBOdW1iZXIodGhpcy5wYWdlU2l6ZSksIHRoaXMuY29sbGVjdGlvblNpemUpO1xuICB9XG5cbiAgLyoqIFNldCBwYWdlIG51bWJlciAqL1xuICBzZWxlY3RQYWdlTnVtYmVyKHBhZ2VOdW1iZXI6IG51bWJlcikge1xuICAgIHRoaXMuY3VycmVudFBhZ2UgPSBwYWdlTnVtYmVyO1xuICAgIHRoaXMudXBkYXRlSW5kZXhlcygpO1xuICAgIHRoaXMuZW1pdCgpXG4gIH1cblxuICAvKiogU2V0IG5leHQgcGFnZSBudW1iZXIgKi9cbiAgbmV4dCgpIHtcbiAgICBjb25zdCBuZXh0UGFnZSA9IHRoaXMuY3VycmVudFBhZ2UgKyAxO1xuICAgIG5leHRQYWdlIDw9IHRoaXMudG90YWxQYWdlcy5sZW5ndGggJiYgdGhpcy5zZWxlY3RQYWdlTnVtYmVyKG5leHRQYWdlKTtcbiAgfVxuXG4gIC8qKiBTZXQgcHJldmlvdXMgcGFnZSBudW1iZXIgKi9cbiAgcHJldmlvdXMoKSB7XG4gICAgY29uc3QgcHJldmlvdXNQYWdlID0gdGhpcy5jdXJyZW50UGFnZSAtIDE7XG4gICAgcHJldmlvdXNQYWdlID49IDEgJiYgdGhpcy5zZWxlY3RQYWdlTnVtYmVyKHByZXZpb3VzUGFnZSk7XG4gIH1cbiAgb25QYWdlU2l6ZUNoYW5nZShuZXdTaXplOmFueSk6IHZvaWQge1xuICAgIHRoaXMucGFnZVNpemUgPSBuZXdTaXplOyAvLyBVcGRhdGUgdGhlIHBhZ2VTaXplXG4gICAgdGhpcy50b3RhbFBhZ2VzID0gbmV3IEFycmF5KE1hdGguY2VpbCh0aGlzLmNvbGxlY3Rpb25TaXplIC8gdGhpcy5wYWdlU2l6ZSkpO1xuICAgIC8vIEVuc3VyZSB0aGUgY3VycmVudCBwYWdlIGlzIHdpdGhpbiBib3VuZHNcbiAgICAvLyBpZiAodGhpcy5jdXJyZW50UGFnZSA+IHRoaXMudG90YWxQYWdlcy5sZW5ndGgpIHtcbiAgICAvLyAgIHRoaXMuY3VycmVudFBhZ2UgPSB0aGlzLnRvdGFsUGFnZXMubGVuZ3RoO1xuICAgIC8vIH1cbiAgICB0aGlzLmN1cnJlbnRQYWdlID0gMVxuICAgIHRoaXMudXBkYXRlSW5kZXhlcygpO1xuICAgIHRoaXMuZW1pdCgpOyAvLyBFbWl0IGFuIGV2ZW50IGlmIG5lY2Vzc2FyeVxuICB9ICAgIFxuICBlbWl0KCl7XG4gICAgdGhpcy5ldmVudC5lbWl0KHtcImxlbmd0aFwiOnRoaXMuY29sbGVjdGlvblNpemUsIFwicGFnZVNpemVcIjogdGhpcy5wYWdlU2l6ZSwgXCJwYWdlSW5kZXhcIiA6IHRoaXMuY3VycmVudFBhZ2V9KVxuICB9XG59IiwiPCEtLSBTS1MyNEpBTjI1IC0tPlxuPGRpdiBjbGFzcz1cImZsZXggY29udGVudC1zcGFjZS1iZXR3ZWVuIG1haW4tY29udFwiPlxuICAgIDxkaXYgY2xhc3M9XCJpbmZvXCI+XG4gICAgIDxkaXYgKm5nSWY9XCJlbmRJbmRleFwiPlxuICAgICB7eydTSE9XSU5HX0RBVEEnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ1Nob3dpbmcgZGF0YSd9fSAge3sgc3RhcnRJbmRleCArIDEgfX0ge3snVE8nIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ3RvJ319IHt7IGVuZEluZGV4IH19IHt7J09GJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdvZid9fSAge3sgY29sbGVjdGlvblNpemUgfX0ge3snRU5UUklFUycgfCBueHRDdXN0b21UcmFuc2xhdGUgOiAnZW50cmllcyd9fSBcbiAgICA8L2Rpdj5cbiAgIDwvZGl2PlxuICAgIDxkaXY+XG4gICAgIDx1bCBbY2xhc3NdPVwic21hbGwgPyAncGFnaW5hdGlvbiBwYWdpbmF0aW9uLXNtJyA6ICdwYWdpbmF0aW9uJ1wiIHN0eWxlPVwiYWxpZ24taXRlbXM6IGNlbnRlcjsgcGFkZGluZy10b3A6IDE4cHg7XCI+XG4gICAgICAgIDwhLS0gc2VsZWN0IGJ1dHRvbiAtLT5cbiAgICAgICA8ZGl2IHN0eWxlPVwiZm9udC1zaXplOiAxNHB4OyBmb250LXdlaWdodDogNDAwOyBwYWRkaW5nLXJpZ2h0OiAxMHB4OyBhbGlnbi1pdGVtczogY2VudGVyO1wiIGZvcj1cInBlclBhZ2VcIj57eydSRVNVTFRfUEVSX1BBR0UnIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ1Jlc3VsdCBwZXIgcGFnZSd9fTwvZGl2PlxuICAgICAgIDxkaXYgY2xhc3M9XCJkcm9wZG93bi13cmFwcGVyXCI+XG4gICAgICAgICA8c2VsZWN0IGlkPVwicGVyUGFnZVwiIFtuZ01vZGVsXT1cInBhZ2VTaXplXCIgKG5nTW9kZWxDaGFuZ2UpPVwib25QYWdlU2l6ZUNoYW5nZSgkZXZlbnQpXCI+XG4gICAgICAgICAgIDxvcHRpb24gKm5nRm9yPVwibGV0IHNpemUgb2YgcGFnZVNpemVPcHRpb25zXCIgW3ZhbHVlXT1cInNpemVcIj57eyBzaXplIH19PC9vcHRpb24+XG4gICAgICAgICA8L3NlbGVjdD5cbiAgICAgICAgIDxzdmcgY2xhc3M9XCJkcm9wZG93bi1hcnJvd1wiIHdpZHRoPVwiOVwiIGhlaWdodD1cIjZcIiB2aWV3Qm94PVwiMCAwIDkgNlwiIGZpbGw9XCJub25lXCIgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiPlxuICAgICAgICAgICA8cGF0aCBmaWxsLXJ1bGU9XCJldmVub2RkXCIgY2xpcC1ydWxlPVwiZXZlbm9kZFwiIGQ9XCJNMC42ODQxMzYgMC43Njc0NzdDMC45MjI5OTkgMC41Mzc4IDEuMzAyODIgMC41NDUyNDggMS41MzI1IDAuNzg0MTExTDQuNSAzLjkzNDMxTDcuNDY3NSAwLjc4NDExMUM3LjY5NzE4IDAuNTQ1MjQ4IDguMDc3IDAuNTM3OCA4LjMxNTg3IDAuNzY3NDc3QzguNTU0NzMgMC45OTcxNTMgOC41NjIxOCAxLjM3Njk4IDguMzMyNSAxLjYxNTg0TDQuOTMyNSA1LjIxNTg0QzQuODE5MzggNS4zMzM0OSA0LjY2MzIxIDUuMzk5OTggNC41IDUuMzk5OThDNC4zMzY3OSA1LjM5OTk4IDQuMTgwNjIgNS4zMzM0OSA0LjA2NzUgNS4yMTU4NEwwLjY2NzUwMSAxLjYxNTg0QzAuNDM3ODI1IDEuMzc2OTggMC40NDUyNzIgMC45OTcxNTMgMC42ODQxMzYgMC43Njc0NzdaXCIgZmlsbD1cIiM2MjYyNjJcIi8+XG4gICAgICAgICAgPC9zdmc+ICAgXG4gICAgICAgPC9kaXY+ICAgICBcbiAgICAgICA8IS0tIGZpcnN0IGJ1dHRvbiAtLT5cbiAgICAgICA8bGkgW2NsYXNzXT1cImN1cnJlbnRQYWdlID09PSAxID8gJ3BhZ2UtaXRlbSBkaXNhYmxlZCcgOiAncGFnZS1pdGVtJ1wiICpuZ0lmPVwiZmlyc3RMYXN0QnV0dG9uc1wiID5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwic2VsZWN0UGFnZU51bWJlcigxKVwiPsKrwqs8L2J1dHRvbj5cbiAgICAgICA8L2xpPlxuICAgICAgIDwhLS0gbGFzdCBidXR0b24gLS0+XG4gICAgICAgPGxpIFtjbGFzc109XCJjdXJyZW50UGFnZSA9PT0gdG90YWxQYWdlcy5sZW5ndGggPyAncGFnZS1pdGVtIGRpc2FibGVkJyA6ICdwYWdlLWl0ZW0nXCIgKm5nSWY9XCJmaXJzdExhc3RCdXR0b25zXCI+XG4gICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInNlbGVjdFBhZ2VOdW1iZXIodG90YWxQYWdlcy5sZW5ndGgpXCI+wrvCuzwvYnV0dG9uPlxuICAgICAgIDwvbGk+XG4gICAgICAgPCEtLSBwcmV2aW91cyBidXR0b24gLS0+XG4gICAgICAgPGxpIFtjbGFzc109XCJjdXJyZW50UGFnZSA9PT0gMSA/ICdwYWdlLWl0ZW0gZGlzYWJsZWQnIDogJ3BhZ2UtaXRlbSdcIiAqbmdJZj1cIm5leHRQcmV2aW91c0J1dHRvbnNcIiA+XG4gICAgICAgICA8YnV0dG9uIGNsYXNzPVwicGFnZS1saW5rXCIgKGNsaWNrKT1cInByZXZpb3VzKClcIj7CqzwvYnV0dG9uPlxuICAgICAgIDwvbGk+XG4gICAgICAgPCEtLSBwYWdlIG51bWJlcnMgLS0+XG4gICAgICAgPG5nLWNvbnRhaW5lciAqbmdGb3I9XCJsZXQgcCBvZiB0b3RhbFBhZ2VzOyBpbmRleCBhcyBpXCI+XG4gICAgICAgICA8bGkgKm5nSWY9XCJpICsgMSA+PSBjdXJyZW50UGFnZSAtIG1heFNpemUgJiYgaSArIDEgPD0gY3VycmVudFBhZ2UgKyBtYXhTaXplXCIgW2NsYXNzXT1cImN1cnJlbnRQYWdlID09PSBpICsgMSA/ICdwYWdlLWl0ZW0gYWN0aXZlJyA6ICdwYWdlLWl0ZW0nXCI+XG4gICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwic2VsZWN0UGFnZU51bWJlcihpICsgMSlcIj5cbiAgICAgICAgICAgICB7eyBpICsgMSB9fVxuICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgIDwvbGk+XG4gICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgPCEtLSBuZXh0IGJ1dHRvbiAtLT5cbiAgICAgICA8bGkgW2NsYXNzXT1cImN1cnJlbnRQYWdlID09PSB0b3RhbFBhZ2VzLmxlbmd0aCA/ICdwYWdlLWl0ZW0gZGlzYWJsZWQnIDogJ3BhZ2UtaXRlbSdcIiAqbmdJZj1cIm5leHRQcmV2aW91c0J1dHRvbnNcIj5cbiAgICAgICAgIDxidXR0b24gY2xhc3M9XCJwYWdlLWxpbmtcIiAoY2xpY2spPVwibmV4dCgpXCI+wrs8L2J1dHRvbj5cbiAgICAgICA8L2xpPlxuICAgICA8L3VsPlxuICAgIDwvZGl2PlxuIDwvZGl2PlxuICAgIl19
|
|
@@ -1,220 +0,0 @@
|
|
|
1
|
-
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { GoogleMapsModule } from '@angular/google-maps';
|
|
4
|
-
import { FormsModule } from '@angular/forms';
|
|
5
|
-
import { NxtInput } from '../nxt-input/nxt-input.component';
|
|
6
|
-
import { NxtCustomTranslatePipe } from '../../pipe/custom-translate.pipe';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "@angular/common";
|
|
9
|
-
import * as i2 from "@angular/google-maps";
|
|
10
|
-
export class PickLocationComponent {
|
|
11
|
-
ngZone;
|
|
12
|
-
cdr;
|
|
13
|
-
latitude = null;
|
|
14
|
-
longitude = null;
|
|
15
|
-
zoom = 10;
|
|
16
|
-
geoCoder;
|
|
17
|
-
// public formGroup: FormGroup;
|
|
18
|
-
searchElementRef;
|
|
19
|
-
showModal = false;
|
|
20
|
-
address;
|
|
21
|
-
from;
|
|
22
|
-
// VD 21DEC23 - dependent field change
|
|
23
|
-
question;
|
|
24
|
-
mode = 'edit'; // New mode input
|
|
25
|
-
locationSelected = new EventEmitter();
|
|
26
|
-
navigatorGeolocation;
|
|
27
|
-
markerPosition;
|
|
28
|
-
center;
|
|
29
|
-
markerOptions;
|
|
30
|
-
apiKey; // HA10012024 declared Api key to src
|
|
31
|
-
constructor(
|
|
32
|
-
// private mapsAPILoader: MapsAPILoader,
|
|
33
|
-
ngZone, cdr) {
|
|
34
|
-
this.ngZone = ngZone;
|
|
35
|
-
this.cdr = cdr;
|
|
36
|
-
}
|
|
37
|
-
ngOnInit() {
|
|
38
|
-
// HA-11-01-2024 Changed the map Call from constructor to ngOnInit as it was giving undefined values in the outsourced
|
|
39
|
-
if (this.apiKey) {
|
|
40
|
-
this.loadGoogleMapsScript().then(() => {
|
|
41
|
-
this.geoCoder = new google.maps.Geocoder();
|
|
42
|
-
this.markerOptions = new google.maps.Marker({
|
|
43
|
-
draggable: true,
|
|
44
|
-
animation: google.maps.Animation.DROP
|
|
45
|
-
});
|
|
46
|
-
this.initAutocomplete();
|
|
47
|
-
this.onMarkerDragEnd();
|
|
48
|
-
});
|
|
49
|
-
}
|
|
50
|
-
}
|
|
51
|
-
// RS 23JAN2025
|
|
52
|
-
ngOnChanges(changes) {
|
|
53
|
-
if (changes['mode']) {
|
|
54
|
-
this.mode = changes['mode'].currentValue;
|
|
55
|
-
}
|
|
56
|
-
if (changes['address'] && changes['address'].currentValue !== changes['address'].previousValue) {
|
|
57
|
-
// Ensure latitude & longitude update when the address changes
|
|
58
|
-
if (this.address) {
|
|
59
|
-
this.geoCoder.geocode({ address: this.address }, (results, status) => {
|
|
60
|
-
if (status === 'OK' && results[0]?.geometry?.location) {
|
|
61
|
-
this.latitude = results[0].geometry.location.lat();
|
|
62
|
-
this.longitude = results[0].geometry.location.lng();
|
|
63
|
-
this.markerPosition = { lat: this.latitude, lng: this.longitude };
|
|
64
|
-
this.center = { lat: this.latitude, lng: this.longitude };
|
|
65
|
-
this.zoom = 18;
|
|
66
|
-
this.cdr.detectChanges(); // Force Angular to update the UI
|
|
67
|
-
}
|
|
68
|
-
});
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
// Reset if no address is provided
|
|
72
|
-
this.latitude = null;
|
|
73
|
-
this.longitude = null;
|
|
74
|
-
this.markerPosition = null;
|
|
75
|
-
this.center = null;
|
|
76
|
-
this.cdr.detectChanges(); // FORCE UI UPDATE
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
setInputRef(ref) {
|
|
81
|
-
this.searchElementRef = ref;
|
|
82
|
-
this.initAutocomplete(); // SKS11JUN25 Now that input ref is ready, initialize autocomplete
|
|
83
|
-
}
|
|
84
|
-
// HA09012024 is to avoid google is undefined error
|
|
85
|
-
loadGoogleMapsScript() {
|
|
86
|
-
const script = document.createElement('script');
|
|
87
|
-
script.type = 'text/javascript';
|
|
88
|
-
// HA10012024 Assigned Api key to src
|
|
89
|
-
script.src = `https://maps.googleapis.com/maps/api/js?key=${this.apiKey}&libraries=geometry,places`;
|
|
90
|
-
script.async = true;
|
|
91
|
-
script.defer = true;
|
|
92
|
-
document.body.appendChild(script);
|
|
93
|
-
return new Promise((resolve, reject) => {
|
|
94
|
-
script.onload = () => {
|
|
95
|
-
resolve();
|
|
96
|
-
};
|
|
97
|
-
script.onerror = (error) => {
|
|
98
|
-
reject(error);
|
|
99
|
-
};
|
|
100
|
-
});
|
|
101
|
-
}
|
|
102
|
-
initAutocomplete() {
|
|
103
|
-
if (this.geoCoder) {
|
|
104
|
-
const autocomplete = new google.maps.places.Autocomplete(this.searchElementRef?.nativeElement, {
|
|
105
|
-
types: []
|
|
106
|
-
});
|
|
107
|
-
autocomplete.addListener('place_changed', () => {
|
|
108
|
-
this.ngZone.run(() => {
|
|
109
|
-
const place = autocomplete.getPlace();
|
|
110
|
-
if (place.geometry === undefined || place.geometry === null) {
|
|
111
|
-
return;
|
|
112
|
-
}
|
|
113
|
-
this.latitude = place.geometry.location.lat();
|
|
114
|
-
this.longitude = place.geometry.location.lng();
|
|
115
|
-
this.zoom = 18;
|
|
116
|
-
this.address = place.formatted_address;
|
|
117
|
-
// VD 21DEC23 - dependent field change
|
|
118
|
-
let change = {};
|
|
119
|
-
// RS 09DEC24 Changed keys
|
|
120
|
-
change['fromQuestionId'] = this.question.id;
|
|
121
|
-
let addObj = {};
|
|
122
|
-
addObj['address'] = this.address;
|
|
123
|
-
addObj['latitude'] = this.latitude;
|
|
124
|
-
addObj['longitude'] = this.longitude;
|
|
125
|
-
change['valueObj'] = addObj;
|
|
126
|
-
change['referenceField'] = this.question.referenceField;
|
|
127
|
-
this.locationSelected.emit(change);
|
|
128
|
-
});
|
|
129
|
-
});
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
onMarkerDragEnd() {
|
|
133
|
-
google.maps.event.addListener(this.markerOptions, 'dragend', (event) => {
|
|
134
|
-
this.latitude = event.latLng.lat();
|
|
135
|
-
this.longitude = event.latLng.lng();
|
|
136
|
-
this.getAddress(this.latitude, this.longitude);
|
|
137
|
-
});
|
|
138
|
-
}
|
|
139
|
-
onMapClick(event) {
|
|
140
|
-
this.latitude = event.latLng.lat();
|
|
141
|
-
this.longitude = event.latLng.lng();
|
|
142
|
-
this.getAddress(this.latitude, this.longitude);
|
|
143
|
-
}
|
|
144
|
-
setCurrentLocation() {
|
|
145
|
-
if ('geolocation' in navigator) {
|
|
146
|
-
navigator.geolocation.getCurrentPosition((position) => {
|
|
147
|
-
this.latitude = position.coords.latitude;
|
|
148
|
-
this.longitude = position.coords.longitude;
|
|
149
|
-
this.markerPosition = { lat: this.latitude, lng: this.longitude };
|
|
150
|
-
this.center = { lat: this.latitude, lng: this.longitude };
|
|
151
|
-
this.zoom = 8;
|
|
152
|
-
this.getAddress(this.latitude, this.longitude);
|
|
153
|
-
});
|
|
154
|
-
}
|
|
155
|
-
}
|
|
156
|
-
getAddress(latitude, longitude) {
|
|
157
|
-
if (this.geoCoder) {
|
|
158
|
-
this.geoCoder.geocode({ location: { lat: latitude, lng: longitude } }, (results, status) => {
|
|
159
|
-
if (status === 'OK') {
|
|
160
|
-
if (results[0]) {
|
|
161
|
-
// this.zoom = 18;
|
|
162
|
-
this.address = results[0].formatted_address;
|
|
163
|
-
// VD 21DEC23 - dependent field change
|
|
164
|
-
let change = {};
|
|
165
|
-
// RS 09DEC24 Changed keys
|
|
166
|
-
let addObj1 = {};
|
|
167
|
-
addObj1['address'] = this.address;
|
|
168
|
-
addObj1['latitude'] = latitude;
|
|
169
|
-
addObj1['longitude'] = longitude;
|
|
170
|
-
change['valueObj'] = addObj1;
|
|
171
|
-
change['fromQuestionId'] = this.question.id;
|
|
172
|
-
change['referenceField'] = this.question.referenceField;
|
|
173
|
-
this.locationSelected.emit(change);
|
|
174
|
-
}
|
|
175
|
-
}
|
|
176
|
-
});
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
openMap() {
|
|
180
|
-
this.showModal = true;
|
|
181
|
-
if (!this.address) {
|
|
182
|
-
this.latitude = this.longitude = null;
|
|
183
|
-
}
|
|
184
|
-
if (!(this.latitude && this.longitude)) {
|
|
185
|
-
this.setCurrentLocation();
|
|
186
|
-
}
|
|
187
|
-
else {
|
|
188
|
-
this.markerPosition = { lat: this.latitude, lng: this.longitude };
|
|
189
|
-
this.center = { lat: this.latitude, lng: this.longitude };
|
|
190
|
-
this.zoom = 8;
|
|
191
|
-
}
|
|
192
|
-
}
|
|
193
|
-
closeModal() {
|
|
194
|
-
this.showModal = false;
|
|
195
|
-
}
|
|
196
|
-
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PickLocationComponent, deps: [{ token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
197
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: PickLocationComponent, isStandalone: true, selector: "app-pick-location", inputs: { address: "address", from: "from", question: "question", mode: "mode", apiKey: "apiKey" }, outputs: { locationSelected: "locationSelected" }, viewQueries: [{ propertyName: "searchElementRef", first: true, predicate: ["search"], descendants: true, static: true }], usesOnChanges: true, ngImport: i0, template: "<div>\n <nxt-input [type]=\"'location'\" [mode]=\"mode\" [value]=\"address\" [from]=\"from\"\n [labelFont]=\"question?.font\" [label]=\"question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText) : ''\" [labelColor]=\"question?.fontColor\"\n [labelSize]=\"question?.fontSize\" [inputValueSize]=\"question?.fontSize\" [labelWeight]=\"question?.fontWeight\"\n [inputWeight]=\"question?.fontWeight\" [showLabel]=\"question?.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"question?.question\" [required]=\"question?.isOptional\" inputBgColor=\"#FAFAFA\"\n [inputId]=\"question?.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question?.iconLeftSrc\" (nativeInputRef)=\"setInputRef($event)\">\n </nxt-input>\n <a *ngIf=\"mode === 'edit' && !question.isReadOnly\" (click)=\"openMap()\" style=\"color:#48B7FF;position:relative;top:5px;cursor: pointer;\">\n {{ 'pickLocation' | nxtCustomTranslate : 'pickLocation' }}</a>\n</div>\n\n<div class=\"map-overlay\" *ngIf=\"showModal\">\n <div class=\"map-modal\">\n <div class=\"map-modal-content\">\n <div class=\"map-modal-header\">\n <!-- HA 19DEC23 For translation -->\n <h4>{{ 'pickYourLocation' | nxtCustomTranslate : 'pickYourLocation' }}</h4>\n <button class=\"close-button\" (click)=\"closeModal()\">X</button>\n </div>\n <google-map [zoom]=\"zoom\" [center]=\"center\" (mapClick)=\"onMapClick($event)\">\n <map-marker [position]=\"markerPosition\" [options]=\"markerOptions\"></map-marker>\n </google-map>\n </div>\n </div>\n</div>", styles: ["google-map .map-container{width:auto!important}.map-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.map-modal{width:600px;background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0003}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;background-color:#fff;border-bottom:2px solid #e5e5e5}.map-modal-header h3{margin:0}.map-modal-content{padding:20px}.close-button{border:none;cursor:pointer;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: GoogleMapsModule }, { kind: "component", type: i2.GoogleMap, selector: "google-map", inputs: ["height", "width", "mapId", "mapTypeId", "center", "zoom", "options"], outputs: ["mapInitialized", "authFailure", "boundsChanged", "centerChanged", "mapClick", "mapDblclick", "mapDrag", "mapDragend", "mapDragstart", "headingChanged", "idle", "maptypeidChanged", "mapMousemove", "mapMouseout", "mapMouseover", "projectionChanged", "mapRightclick", "tilesloaded", "tiltChanged", "zoomChanged"], exportAs: ["googleMap"] }, { kind: "directive", type: i2.MapMarker, selector: "map-marker", inputs: ["title", "position", "label", "clickable", "options", "icon", "visible"], outputs: ["animationChanged", "mapClick", "clickableChanged", "cursorChanged", "mapDblclick", "mapDrag", "mapDragend", "draggableChanged", "mapDragstart", "flatChanged", "iconChanged", "mapMousedown", "mapMouseout", "mapMouseover", "mapMouseup", "positionChanged", "mapRightclick", "shapeChanged", "titleChanged", "visibleChanged", "zindexChanged", "markerInitialized"], exportAs: ["mapMarker"] }, { kind: "ngmodule", type: FormsModule }, { kind: "component", type: NxtInput, selector: "nxt-input", inputs: ["label", "labelFont", "labelWeight", "inputWeight", "labelSize", "inputValueSize", "labelColor", "showLabel", "svgHeight", "svgWidth", "type", "inputIconRightSrc", "inputIconLeftSrc", "required", "minLength", "pattern", "errorMessages", "maxLength", "placeholder", "inputBgColor", "inputBorder", "placeholderColor", "placeholderFont", "placeholderWeight", "placeholderSize", "inputTextColor", "inputHeight", "inputWidth", "inputId", "inputBorderSize", "inputConfig", "confPassVal", "confPass", "mode", "value", "question", "showSuggestion", "ariaOwns", "ariaHasPopup", "isLoading", "options", "minDate", "maxDate", "rows", "from", "hyperLink", "size"], outputs: ["valueChange", "inputValue", "onBlur", "onFocus", "toggleEmit", "nativeInputRef", "removeValueEmit", "hyperlinkEmit"] }, { kind: "pipe", type: NxtCustomTranslatePipe, name: "nxtCustomTranslate" }] });
|
|
198
|
-
}
|
|
199
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: PickLocationComponent, decorators: [{
|
|
200
|
-
type: Component,
|
|
201
|
-
args: [{ selector: 'app-pick-location', standalone: true, imports: [
|
|
202
|
-
CommonModule, GoogleMapsModule, FormsModule, NxtInput, NxtCustomTranslatePipe
|
|
203
|
-
], template: "<div>\n <nxt-input [type]=\"'location'\" [mode]=\"mode\" [value]=\"address\" [from]=\"from\"\n [labelFont]=\"question?.font\" [label]=\"question?.questionText ? ((question?.id+'.questionText') | nxtCustomTranslate : question?.questionText) : ''\" [labelColor]=\"question?.fontColor\"\n [labelSize]=\"question?.fontSize\" [inputValueSize]=\"question?.fontSize\" [labelWeight]=\"question?.fontWeight\"\n [inputWeight]=\"question?.fontWeight\" [showLabel]=\"question?.style?.showLabel\" inputBorder=\"none\" svgHeight=\"20px\"\n svgWidth=\"20px\" [placeholder]=\"question?.question\" [required]=\"question?.isOptional\" inputBgColor=\"#FAFAFA\"\n [inputId]=\"question?.trackingId\" [errorMessages]=\"{ required: 'This field is required' }\"\n [inputIconLeftSrc]=\"question?.iconLeftSrc\" (nativeInputRef)=\"setInputRef($event)\">\n </nxt-input>\n <a *ngIf=\"mode === 'edit' && !question.isReadOnly\" (click)=\"openMap()\" style=\"color:#48B7FF;position:relative;top:5px;cursor: pointer;\">\n {{ 'pickLocation' | nxtCustomTranslate : 'pickLocation' }}</a>\n</div>\n\n<div class=\"map-overlay\" *ngIf=\"showModal\">\n <div class=\"map-modal\">\n <div class=\"map-modal-content\">\n <div class=\"map-modal-header\">\n <!-- HA 19DEC23 For translation -->\n <h4>{{ 'pickYourLocation' | nxtCustomTranslate : 'pickYourLocation' }}</h4>\n <button class=\"close-button\" (click)=\"closeModal()\">X</button>\n </div>\n <google-map [zoom]=\"zoom\" [center]=\"center\" (mapClick)=\"onMapClick($event)\">\n <map-marker [position]=\"markerPosition\" [options]=\"markerOptions\"></map-marker>\n </google-map>\n </div>\n </div>\n</div>", styles: ["google-map .map-container{width:auto!important}.map-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#00000080;display:flex;align-items:center;justify-content:center;z-index:1000}.map-modal{width:600px;background-color:#fff;border-radius:5px;box-shadow:0 2px 4px #0003}.map-modal-header{display:flex;align-items:center;justify-content:space-between;padding:0 0 10px;background-color:#fff;border-bottom:2px solid #e5e5e5}.map-modal-header h3{margin:0}.map-modal-content{padding:20px}.close-button{border:none;cursor:pointer;font-size:21px;font-weight:700;line-height:1;color:#000;text-shadow:0 1px 0 #fff;opacity:.2}\n"] }]
|
|
204
|
-
}], ctorParameters: () => [{ type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { searchElementRef: [{
|
|
205
|
-
type: ViewChild,
|
|
206
|
-
args: ['search', { static: true }]
|
|
207
|
-
}], address: [{
|
|
208
|
-
type: Input
|
|
209
|
-
}], from: [{
|
|
210
|
-
type: Input
|
|
211
|
-
}], question: [{
|
|
212
|
-
type: Input
|
|
213
|
-
}], mode: [{
|
|
214
|
-
type: Input
|
|
215
|
-
}], locationSelected: [{
|
|
216
|
-
type: Output
|
|
217
|
-
}], apiKey: [{
|
|
218
|
-
type: Input
|
|
219
|
-
}] } });
|
|
220
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGljay1sb2NhdGlvbi5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ueHQtYXBwL3NyYy9saWIvY29tcG9uZW50cy9waWNrLWxvY2F0aW9uL3BpY2stbG9jYXRpb24uY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbnh0LWFwcC9zcmMvbGliL2NvbXBvbmVudHMvcGljay1sb2NhdGlvbi9waWNrLWxvY2F0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQWMsWUFBWSxFQUFFLEtBQUssRUFBOEMsTUFBTSxFQUFpQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFLcEssT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHNCQUFzQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUM3QyxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFDNUQsT0FBTyxFQUFFLHNCQUFzQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7Ozs7QUFZMUUsTUFBTSxPQUFPLHFCQUFxQjtJQXVCdEI7SUFDQTtJQXZCVixRQUFRLEdBQUcsSUFBSSxDQUFDO0lBQ2hCLFNBQVMsR0FBRyxJQUFJLENBQUM7SUFDakIsSUFBSSxHQUFXLEVBQUUsQ0FBQztJQUNWLFFBQVEsQ0FBQztJQUNsQiwrQkFBK0I7SUFFdkIsZ0JBQWdCLENBQStCO0lBQ3RELFNBQVMsR0FBWSxLQUFLLENBQUM7SUFDbEIsT0FBTyxDQUFRO0lBQ2YsSUFBSSxDQUFNO0lBQ2xCLHNDQUFzQztJQUM5QixRQUFRLENBQUs7SUFDYixJQUFJLEdBQThCLE1BQU0sQ0FBQyxDQUFDLGlCQUFpQjtJQUMxRCxnQkFBZ0IsR0FB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O1FBQ1IsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7SUFDekIsQ0FBQzt3R0F4TVUscUJBQXFCOzRGQUFyQixxQkFBcUIsbVhDckJsQyxrcURBMEJNLDZyQkRWRixZQUFZLGtJQUFFLGdCQUFnQiw4aUNBQUUsV0FBVywrQkFBRSxRQUFRLHcwQkFBRSxzQkFBc0I7OzRGQUtwRSxxQkFBcUI7a0JBVGpDLFNBQVM7K0JBQ0UsbUJBQW1CLGNBQ2pCLElBQUksV0FDUDt3QkFDUCxZQUFZLEVBQUUsZ0JBQWdCLEVBQUUsV0FBVyxFQUFFLFFBQVEsRUFBRSxzQkFBc0I7cUJBQzlFOzJHQVdNLGdCQUFnQjtzQkFEdEIsU0FBUzt1QkFBQyxRQUFRLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFO2dCQUc1QixPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csSUFBSTtzQkFBWixLQUFLO2dCQUNJLGdCQUFnQjtzQkFBekIsTUFBTTtnQkFLRSxNQUFNO3NCQUFkLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEVsZW1lbnRSZWYsIEV2ZW50RW1pdHRlciwgSW5wdXQsQ2hhbmdlRGV0ZWN0b3JSZWYsIE5nTW9kdWxlLCBOZ1pvbmUsIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzLCBWaWV3Q2hpbGQsIE9uQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuLy8gSEEgMTlERUMyMyBpbXBvcnRlZCB0cmFuc2xhdGlvbiBzZXJ2aWNlXG4gLy8gVkQgMjFERUMyMyAtIGRlcGVuZGVudCBmaWVsZCBjaGFuZ2VcbmltcG9ydCB7IENoYW5nZVdyYXBwZXIgfSBmcm9tICcuLi8uLi9tb2RlbC9jaGFuZ2VXcmFwcGVyJztcbmltcG9ydCB7IFF1ZXN0aW9uIH0gZnJvbSAnLi4vLi4vd3JhcHBlcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgR29vZ2xlTWFwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2dvb2dsZS1tYXBzJztcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgTnh0SW5wdXQgfSBmcm9tICcuLi9ueHQtaW5wdXQvbnh0LWlucHV0LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBOeHRDdXN0b21UcmFuc2xhdGVQaXBlIH0gZnJvbSAnLi4vLi4vcGlwZS9jdXN0b20tdHJhbnNsYXRlLnBpcGUnO1xuZGVjbGFyZSB2YXIgJDogYW55O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdhcHAtcGljay1sb2NhdGlvbicsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBDb21tb25Nb2R1bGUsIEdvb2dsZU1hcHNNb2R1bGUsIEZvcm1zTW9kdWxlLCBOeHRJbnB1dCwgTnh0Q3VzdG9tVHJhbnNsYXRlUGlwZVxuICBdLFxuICB0ZW1wbGF0ZVVybDogJy4vcGljay1sb2NhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BpY2stbG9jYXRpb24uY29tcG9uZW50LmNzcyddXG59KVxuZXhwb3J0IGNsYXNzIFBpY2tMb2NhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCAsT25DaGFuZ2VzIHtcbiAgbGF0aXR1ZGUgPSBudWxsO1xuICBsb25naXR1ZGUgPSBudWxsO1xuICB6b29tOiBudW1iZXIgPSAxMDtcbiAgcHJpdmF0ZSBnZW9Db2RlcjtcbiAvLyBwdWJsaWMgZm9ybUdyb3VwOiBGb3JtR3JvdXA7XG4gIEBWaWV3Q2hpbGQoJ3NlYXJjaCcsIHsgc3RhdGljOiB0cnVlIH0pXG4gIHB1YmxpYyBzZWFyY2hFbGVtZW50UmVmOiBFbGVtZW50UmVmPEhUTUxJbnB1dEVsZW1lbnQ+O1xuICBzaG93TW9kYWw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgQElucHV0KCkgYWRkcmVzczpzdHJpbmc7XG4gIEBJbnB1dCgpIGZyb206IGFueTtcbiAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gIEBJbnB1dCgpIHF1ZXN0aW9uOiBhbnlcbiAgQElucHV0KCkgbW9kZTogJ3ZpZXcnIHwgJ2VkaXQnIHwgJ3ByaW50JyA9ICdlZGl0JzsgLy8gTmV3IG1vZGUgaW5wdXRcbiAgQE91dHB1dCgpIGxvY2F0aW9uU2VsZWN0ZWQ6IEV2ZW50RW1pdHRlcjxDaGFuZ2VXcmFwcGVyPiA9IG5ldyBFdmVudEVtaXR0ZXI8Q2hhbmdlV3JhcHBlcj4oKTtcbiAgbmF2aWdhdG9yR2VvbG9jYXRpb246IGFueTtcbiAgbWFya2VyUG9zaXRpb246IHsgbGF0OiBhbnk7IGxuZzogYW55OyB9O1xuICBjZW50ZXI6IHsgbGF0OiBhbnk7IGxuZzogYW55OyB9O1xuICBtYXJrZXJPcHRpb25zOmFueTtcbiAgQElucHV0KCkgYXBpS2V5OiBhbnk7IC8vIEhBMTAwMTIwMjQgZGVjbGFyZWQgQXBpIGtleSB0byBzcmNcblxuICBjb25zdHJ1Y3RvcihcbiAgIC8vIHByaXZhdGUgbWFwc0FQSUxvYWRlcjogTWFwc0FQSUxvYWRlcixcbiAgICBwcml2YXRlIG5nWm9uZTogTmdab25lLFxuICAgIHByaXZhdGUgY2RyOiBDaGFuZ2VEZXRlY3RvclJlZlxuICApIHt9XG5cbiAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgLy8gSEEtMTEtMDEtMjAyNCBDaGFuZ2VkIHRoZSBtYXAgQ2FsbCBmcm9tIGNvbnN0cnVjdG9yIHRvIG5nT25Jbml0IGFzIGl0IHdhcyBnaXZpbmcgdW5kZWZpbmVkIHZhbHVlcyBpbiB0aGUgb3V0c291cmNlZFxuICAgIGlmKHRoaXMuYXBpS2V5KXtcbiAgICAgIHRoaXMubG9hZEdvb2dsZU1hcHNTY3JpcHQoKS50aGVuKCgpID0+IHtcbiAgICAgICAgdGhpcy5nZW9Db2RlciA9IG5ldyBnb29nbGUubWFwcy5HZW9jb2RlcigpO1xuICAgICAgICB0aGlzLm1hcmtlck9wdGlvbnMgPSBuZXcgZ29vZ2xlLm1hcHMuTWFya2VyICh7XG4gICAgICAgICAgZHJhZ2dhYmxlOiB0cnVlLFxuICAgICAgICAgIGFuaW1hdGlvbjogZ29vZ2xlLm1hcHMuQW5pbWF0aW9uLkRST1BcbiAgICAgICAgfSk7XG4gICAgICAgIHRoaXMuaW5pdEF1dG9jb21wbGV0ZSgpO1xuICAgICAgICB0aGlzLm9uTWFya2VyRHJhZ0VuZCgpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG4vLyBSUyAyM0pBTjIwMjVcbiAgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcykge1xuICAgIGlmIChjaGFuZ2VzWydtb2RlJ10pIHtcbiAgICAgIHRoaXMubW9kZSA9IGNoYW5nZXNbJ21vZGUnXS5jdXJyZW50VmFsdWU7XG4gICAgfVxuICAgIGlmIChjaGFuZ2VzWydhZGRyZXNzJ10gJiYgY2hhbmdlc1snYWRkcmVzcyddLmN1cnJlbnRWYWx1ZSAhPT0gY2hhbmdlc1snYWRkcmVzcyddLnByZXZpb3VzVmFsdWUpIHtcbiAgICAgIC8vIEVuc3VyZSBsYXRpdHVkZSAmIGxvbmdpdHVkZSB1cGRhdGUgd2hlbiB0aGUgYWRkcmVzcyBjaGFuZ2VzXG4gICAgICBpZiAodGhpcy5hZGRyZXNzKSB7XG4gICAgICAgIHRoaXMuZ2VvQ29kZXIuZ2VvY29kZSh7IGFkZHJlc3M6IHRoaXMuYWRkcmVzcyB9LCAocmVzdWx0cywgc3RhdHVzKSA9PiB7XG4gICAgICAgICAgaWYgKHN0YXR1cyA9PT0gJ09LJyAmJiByZXN1bHRzWzBdPy5nZW9tZXRyeT8ubG9jYXRpb24pIHtcbiAgICAgICAgICAgIHRoaXMubGF0aXR1ZGUgPSByZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpO1xuICAgICAgICAgICAgdGhpcy5sb25naXR1ZGUgPSByZXN1bHRzWzBdLmdlb21ldHJ5LmxvY2F0aW9uLmxuZygpO1xuICAgICAgICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICAgICAgICB0aGlzLmNlbnRlciA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICAgICAgICB0aGlzLnpvb20gPSAxODtcbiAgICAgICAgICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKTsgIC8vIEZvcmNlIEFuZ3VsYXIgdG8gdXBkYXRlIHRoZSBVSVxuXG4gICAgICAgICAgfVxuICAgICAgICB9KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIC8vIFJlc2V0IGlmIG5vIGFkZHJlc3MgaXMgcHJvdmlkZWRcbiAgICAgICAgdGhpcy5sYXRpdHVkZSA9IG51bGw7XG4gICAgICAgIHRoaXMubG9uZ2l0dWRlID0gbnVsbDtcbiAgICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IG51bGw7XG4gICAgICAgIHRoaXMuY2VudGVyID0gbnVsbDtcbiAgICAgICAgdGhpcy5jZHIuZGV0ZWN0Q2hhbmdlcygpOyAgLy8gRk9SQ0UgVUkgVVBEQVRFXG5cbiAgICAgIH1cbiAgICB9XG4gIH1cblxuICBzZXRJbnB1dFJlZihyZWY6IEVsZW1lbnRSZWY8SFRNTElucHV0RWxlbWVudD4pIHtcbiAgICB0aGlzLnNlYXJjaEVsZW1lbnRSZWYgPSByZWY7XG4gICAgdGhpcy5pbml0QXV0b2NvbXBsZXRlKCk7IC8vIFNLUzExSlVOMjUgTm93IHRoYXQgaW5wdXQgcmVmIGlzIHJlYWR5LCBpbml0aWFsaXplIGF1dG9jb21wbGV0ZVxuICB9XG5cblxuXG4gIC8vIEhBMDkwMTIwMjQgaXMgdG8gYXZvaWQgZ29vZ2xlIGlzIHVuZGVmaW5lZCBlcnJvclxuICBwcml2YXRlIGxvYWRHb29nbGVNYXBzU2NyaXB0KCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGNvbnN0IHNjcmlwdCA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ3NjcmlwdCcpO1xuICAgIHNjcmlwdC50eXBlID0gJ3RleHQvamF2YXNjcmlwdCc7XG4gICAgLy8gSEExMDAxMjAyNCBBc3NpZ25lZCBBcGkga2V5IHRvIHNyY1xuICAgIHNjcmlwdC5zcmMgPSBgaHR0cHM6Ly9tYXBzLmdvb2dsZWFwaXMuY29tL21hcHMvYXBpL2pzP2tleT0ke3RoaXMuYXBpS2V5fSZsaWJyYXJpZXM9Z2VvbWV0cnkscGxhY2VzYDtcbiAgICBzY3JpcHQuYXN5bmMgPSB0cnVlO1xuICAgIHNjcmlwdC5kZWZlciA9IHRydWU7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChzY3JpcHQpO1xuXG4gICAgcmV0dXJuIG5ldyBQcm9taXNlPHZvaWQ+KChyZXNvbHZlLCByZWplY3QpID0+IHtcbiAgICAgIHNjcmlwdC5vbmxvYWQgPSAoKSA9PiB7XG4gICAgICAgIHJlc29sdmUoKTtcbiAgICAgIH07XG4gICAgICBzY3JpcHQub25lcnJvciA9IChlcnJvcjogYW55KSA9PiB7XG4gICAgICAgIHJlamVjdChlcnJvcik7XG4gICAgICB9O1xuICAgIH0pO1xuICB9XG5cbiAgaW5pdEF1dG9jb21wbGV0ZSgpOiB2b2lkIHtcbiAgICBpZiAodGhpcy5nZW9Db2Rlcikge1xuICAgICAgY29uc3QgYXV0b2NvbXBsZXRlID0gbmV3IGdvb2dsZS5tYXBzLnBsYWNlcy5BdXRvY29tcGxldGUodGhpcy5zZWFyY2hFbGVtZW50UmVmPy5uYXRpdmVFbGVtZW50LCB7XG4gICAgICAgIHR5cGVzOiBbXVxuICAgICAgfSk7XG4gICAgICBhdXRvY29tcGxldGUuYWRkTGlzdGVuZXIoJ3BsYWNlX2NoYW5nZWQnLCAoKSA9PiB7XG4gICAgICAgIHRoaXMubmdab25lLnJ1bigoKSA9PiB7XG4gICAgICAgICAgY29uc3QgcGxhY2U6IGdvb2dsZS5tYXBzLnBsYWNlcy5QbGFjZVJlc3VsdCA9IGF1dG9jb21wbGV0ZS5nZXRQbGFjZSgpO1xuXG4gICAgICAgICAgaWYgKHBsYWNlLmdlb21ldHJ5ID09PSB1bmRlZmluZWQgfHwgcGxhY2UuZ2VvbWV0cnkgPT09IG51bGwpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5sYXRpdHVkZSA9IHBsYWNlLmdlb21ldHJ5LmxvY2F0aW9uLmxhdCgpO1xuICAgICAgICAgIHRoaXMubG9uZ2l0dWRlID0gcGxhY2UuZ2VvbWV0cnkubG9jYXRpb24ubG5nKCk7XG4gICAgICAgICAgdGhpcy56b29tID0gMTg7XG4gICAgICAgICAgdGhpcy5hZGRyZXNzID0gcGxhY2UuZm9ybWF0dGVkX2FkZHJlc3M7XG4gICAgICAgICAgLy8gVkQgMjFERUMyMyAtIGRlcGVuZGVudCBmaWVsZCBjaGFuZ2VcbiAgICAgICAgICBsZXQgY2hhbmdlOiBhbnkgPXt9O1xuICAgICAgICAgIC8vIFJTIDA5REVDMjQgQ2hhbmdlZCBrZXlzXG4gICAgICAgICAgY2hhbmdlWydmcm9tUXVlc3Rpb25JZCddID0gdGhpcy5xdWVzdGlvbi5pZDtcbiAgICAgICAgICBsZXQgYWRkT2JqID0ge307XG4gICAgICAgICAgYWRkT2JqWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7XG4gICAgICAgICAgYWRkT2JqWydsYXRpdHVkZSddID0gdGhpcy5sYXRpdHVkZTtcbiAgICAgICAgICBhZGRPYmpbJ2xvbmdpdHVkZSddID0gdGhpcy5sb25naXR1ZGU7XG4gICAgICAgICAgY2hhbmdlWyd2YWx1ZU9iaiddID0gYWRkT2JqO1xuICAgICAgICAgIGNoYW5nZVsncmVmZXJlbmNlRmllbGQnXSA9IHRoaXMucXVlc3Rpb24ucmVmZXJlbmNlRmllbGQ7XG4gICAgICAgICB0aGlzLmxvY2F0aW9uU2VsZWN0ZWQuZW1pdChjaGFuZ2UpO1xuICAgICAgICB9KTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIG9uTWFya2VyRHJhZ0VuZCgpOiB2b2lkIHtcbiAgICBnb29nbGUubWFwcy5ldmVudC5hZGRMaXN0ZW5lcih0aGlzLm1hcmtlck9wdGlvbnMsICdkcmFnZW5kJywgKGV2ZW50KSA9PiB7XG4gICAgICB0aGlzLmxhdGl0dWRlID0gZXZlbnQubGF0TG5nLmxhdCgpO1xuICAgICAgdGhpcy5sb25naXR1ZGUgPSBldmVudC5sYXRMbmcubG5nKCk7XG4gICAgICB0aGlzLmdldEFkZHJlc3ModGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpO1xuICB9KTtcbiAgfVxuXG4gIG9uTWFwQ2xpY2soZXZlbnQ6IGdvb2dsZS5tYXBzLk1hcE1vdXNlRXZlbnQpOiB2b2lkIHtcbiAgICB0aGlzLmxhdGl0dWRlID0gZXZlbnQubGF0TG5nLmxhdCgpO1xuICAgIHRoaXMubG9uZ2l0dWRlID0gZXZlbnQubGF0TG5nLmxuZygpO1xuICAgIHRoaXMuZ2V0QWRkcmVzcyh0aGlzLmxhdGl0dWRlLCB0aGlzLmxvbmdpdHVkZSk7XG4gIH1cblxuXG4gIHByaXZhdGUgc2V0Q3VycmVudExvY2F0aW9uKCkge1xuICAgIGlmICgnZ2VvbG9jYXRpb24nIGluIG5hdmlnYXRvcikge1xuICAgICAgbmF2aWdhdG9yLmdlb2xvY2F0aW9uLmdldEN1cnJlbnRQb3NpdGlvbigocG9zaXRpb24pID0+IHtcbiAgICAgICAgdGhpcy5sYXRpdHVkZSA9IHBvc2l0aW9uLmNvb3Jkcy5sYXRpdHVkZTtcbiAgICAgICAgdGhpcy5sb25naXR1ZGUgPSBwb3NpdGlvbi5jb29yZHMubG9uZ2l0dWRlO1xuICAgICAgICB0aGlzLm1hcmtlclBvc2l0aW9uID0geyBsYXQ6IHRoaXMubGF0aXR1ZGUsIGxuZzogdGhpcy5sb25naXR1ZGUgfTtcbiAgICAgICAgdGhpcy5jZW50ZXIgPSB7IGxhdDogdGhpcy5sYXRpdHVkZSwgbG5nOiB0aGlzLmxvbmdpdHVkZSB9O1xuICAgICAgICB0aGlzLnpvb20gPSA4O1xuICAgICAgICB0aGlzLmdldEFkZHJlc3ModGhpcy5sYXRpdHVkZSwgdGhpcy5sb25naXR1ZGUpO1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cblxuICBnZXRBZGRyZXNzKGxhdGl0dWRlOiBudW1iZXIsIGxvbmdpdHVkZTogbnVtYmVyKSB7XG4gICAgaWYgKHRoaXMuZ2VvQ29kZXIpIHtcbiAgICAgIHRoaXMuZ2VvQ29kZXIuZ2VvY29kZSh7IGxvY2F0aW9uOiB7IGxhdDogbGF0aXR1ZGUsIGxuZzogbG9uZ2l0dWRlIH0gfSwgKHJlc3VsdHMsIHN0YXR1cykgPT4ge1xuICAgICAgICBpZiAoc3RhdHVzID09PSAnT0snKSB7XG4gICAgICAgICAgaWYgKHJlc3VsdHNbMF0pIHtcbiAgICAgICAgICAgLy8gdGhpcy56b29tID0gMTg7XG4gICAgICAgICAgICB0aGlzLmFkZHJlc3MgPSByZXN1bHRzWzBdLmZvcm1hdHRlZF9hZGRyZXNzO1xuICAgICAgICAgICAgIC8vIFZEIDIxREVDMjMgLSBkZXBlbmRlbnQgZmllbGQgY2hhbmdlXG4gICAgICAgICAgICBsZXQgY2hhbmdlOiBhbnkgPXt9O1xuICAgICAgICAgICAgLy8gUlMgMDlERUMyNCBDaGFuZ2VkIGtleXNcbiAgICAgICAgICAgIGxldCBhZGRPYmoxID0ge307XG4gICAgICAgICAgICBhZGRPYmoxWydhZGRyZXNzJ10gPSB0aGlzLmFkZHJlc3M7XG4gICAgICAgICAgICBhZGRPYmoxWydsYXRpdHVkZSddID0gbGF0aXR1ZGU7XG4gICAgICAgICAgICBhZGRPYmoxWydsb25naXR1ZGUnXSA9IGxvbmdpdHVkZTtcbiAgICAgICAgICAgIGNoYW5nZVsndmFsdWVPYmonXSA9IGFkZE9iajE7XG4gICAgICAgICAgICBjaGFuZ2VbJ2Zyb21RdWVzdGlvbklkJ10gPSB0aGlzLnF1ZXN0aW9uLmlkO1xuICAgICAgICAgICAgY2hhbmdlWydyZWZlcmVuY2VGaWVsZCddID0gdGhpcy5xdWVzdGlvbi5yZWZlcmVuY2VGaWVsZDtcbiAgICAgICAgICAgIHRoaXMubG9jYXRpb25TZWxlY3RlZC5lbWl0KGNoYW5nZSk7XG4gICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBvcGVuTWFwKCkge1xuICAgIHRoaXMuc2hvd01vZGFsID0gdHJ1ZTtcbiAgICBpZighdGhpcy5hZGRyZXNzKXtcbiAgICAgIHRoaXMubGF0aXR1ZGUgPSB0aGlzLmxvbmdpdHVkZSA9IG51bGw7XG4gICAgfVxuICAgIGlmICghKHRoaXMubGF0aXR1ZGUgJiYgdGhpcy5sb25naXR1ZGUpKSB7XG4gICAgICB0aGlzLnNldEN1cnJlbnRMb2NhdGlvbigpO1xuICAgIH1lbHNle1xuICAgICAgdGhpcy5tYXJrZXJQb3NpdGlvbiA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLmNlbnRlciA9IHsgbGF0OiB0aGlzLmxhdGl0dWRlLCBsbmc6IHRoaXMubG9uZ2l0dWRlIH07XG4gICAgICB0aGlzLnpvb20gPSA4O1xuICAgIH1cbiAgfVxuXG4gIGNsb3NlTW9kYWwoKSB7XG4gICAgdGhpcy5zaG93TW9kYWwgPSBmYWxzZTtcbiAgfVxufVxuXG4iLCI8ZGl2PlxuICA8bnh0LWlucHV0IFt0eXBlXT1cIidsb2NhdGlvbidcIiBbbW9kZV09XCJtb2RlXCIgW3ZhbHVlXT1cImFkZHJlc3NcIiBbZnJvbV09XCJmcm9tXCJcbiAgICBbbGFiZWxGb250XT1cInF1ZXN0aW9uPy5mb250XCIgW2xhYmVsXT1cInF1ZXN0aW9uPy5xdWVzdGlvblRleHQgPyAoKHF1ZXN0aW9uPy5pZCsnLnF1ZXN0aW9uVGV4dCcpIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogcXVlc3Rpb24/LnF1ZXN0aW9uVGV4dCkgOiAnJ1wiIFtsYWJlbENvbG9yXT1cInF1ZXN0aW9uPy5mb250Q29sb3JcIlxuICAgIFtsYWJlbFNpemVdPVwicXVlc3Rpb24/LmZvbnRTaXplXCIgW2lucHV0VmFsdWVTaXplXT1cInF1ZXN0aW9uPy5mb250U2l6ZVwiIFtsYWJlbFdlaWdodF09XCJxdWVzdGlvbj8uZm9udFdlaWdodFwiXG4gICAgW2lucHV0V2VpZ2h0XT1cInF1ZXN0aW9uPy5mb250V2VpZ2h0XCIgW3Nob3dMYWJlbF09XCJxdWVzdGlvbj8uc3R5bGU/LnNob3dMYWJlbFwiIGlucHV0Qm9yZGVyPVwibm9uZVwiIHN2Z0hlaWdodD1cIjIwcHhcIlxuICAgIHN2Z1dpZHRoPVwiMjBweFwiIFtwbGFjZWhvbGRlcl09XCJxdWVzdGlvbj8ucXVlc3Rpb25cIiBbcmVxdWlyZWRdPVwicXVlc3Rpb24/LmlzT3B0aW9uYWxcIiBpbnB1dEJnQ29sb3I9XCIjRkFGQUZBXCJcbiAgICBbaW5wdXRJZF09XCJxdWVzdGlvbj8udHJhY2tpbmdJZFwiIFtlcnJvck1lc3NhZ2VzXT1cInsgcmVxdWlyZWQ6ICdUaGlzIGZpZWxkIGlzIHJlcXVpcmVkJyB9XCJcbiAgICBbaW5wdXRJY29uTGVmdFNyY109XCJxdWVzdGlvbj8uaWNvbkxlZnRTcmNcIiAobmF0aXZlSW5wdXRSZWYpPVwic2V0SW5wdXRSZWYoJGV2ZW50KVwiPlxuICA8L254dC1pbnB1dD5cbiAgPGEgKm5nSWY9XCJtb2RlID09PSAnZWRpdCcgJiYgIXF1ZXN0aW9uLmlzUmVhZE9ubHlcIiAoY2xpY2spPVwib3Blbk1hcCgpXCIgc3R5bGU9XCJjb2xvcjojNDhCN0ZGO3Bvc2l0aW9uOnJlbGF0aXZlO3RvcDo1cHg7Y3Vyc29yOiBwb2ludGVyO1wiPlxuICAgIHt7ICdwaWNrTG9jYXRpb24nIHwgbnh0Q3VzdG9tVHJhbnNsYXRlIDogJ3BpY2tMb2NhdGlvbicgfX08L2E+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cIm1hcC1vdmVybGF5XCIgKm5nSWY9XCJzaG93TW9kYWxcIj5cbiAgPGRpdiBjbGFzcz1cIm1hcC1tb2RhbFwiPlxuICAgIDxkaXYgY2xhc3M9XCJtYXAtbW9kYWwtY29udGVudFwiPlxuICAgICAgPGRpdiBjbGFzcz1cIm1hcC1tb2RhbC1oZWFkZXJcIj5cbiAgICAgICAgPCEtLSBIQSAxOURFQzIzIEZvciB0cmFuc2xhdGlvbiAtLT5cbiAgICAgICAgPGg0Pnt7ICdwaWNrWW91ckxvY2F0aW9uJyB8IG54dEN1c3RvbVRyYW5zbGF0ZSA6ICdwaWNrWW91ckxvY2F0aW9uJyB9fTwvaDQ+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjbG9zZS1idXR0b25cIiAoY2xpY2spPVwiY2xvc2VNb2RhbCgpXCI+WDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgICA8Z29vZ2xlLW1hcCBbem9vbV09XCJ6b29tXCIgW2NlbnRlcl09XCJjZW50ZXJcIiAobWFwQ2xpY2spPVwib25NYXBDbGljaygkZXZlbnQpXCI+XG4gICAgICAgIDxtYXAtbWFya2VyIFtwb3NpdGlvbl09XCJtYXJrZXJQb3NpdGlvblwiIFtvcHRpb25zXT1cIm1hcmtlck9wdGlvbnNcIj48L21hcC1tYXJrZXI+XG4gICAgICA8L2dvb2dsZS1tYXA+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+Il19
|