verben-ng-ui 1.3.6 → 1.3.8
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/esm2022/src/lib/components/data-filter/data-filter.component.mjs +125 -13
- package/esm2022/src/lib/components/data-table/data-table.types.mjs +1 -1
- package/esm2022/src/lib/components/notification/notification.component.mjs +8 -6
- package/esm2022/src/lib/components/table-filter/table-filter.component.mjs +3 -3
- package/esm2022/src/lib/models/NotificationButton.mjs +2 -0
- package/esm2022/src/lib/models/NotificationOptions.mjs +2 -0
- package/esm2022/src/lib/models/public-api.mjs +3 -1
- package/esm2022/src/lib/services/notification.services.mjs +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-data-filter.mjs +124 -12
- package/fesm2022/verben-ng-ui-src-lib-components-data-filter.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-data-table.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs +7 -5
- package/fesm2022/verben-ng-ui-src-lib-components-notification.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs +2 -2
- package/fesm2022/verben-ng-ui-src-lib-components-table-filter.mjs.map +1 -1
- package/fesm2022/verben-ng-ui-src-lib-services.mjs.map +1 -1
- package/package.json +57 -57
- package/src/lib/components/data-filter/data-filter.component.d.ts +46 -6
- package/src/lib/components/data-table/data-table.types.d.ts +7 -0
- package/src/lib/components/notification/notification.component.d.ts +5 -13
- package/src/lib/models/NotificationButton.d.ts +9 -0
- package/src/lib/models/NotificationOptions.d.ts +14 -0
- package/src/lib/models/public-api.d.ts +2 -0
- package/src/lib/services/notification.services.d.ts +1 -10
|
@@ -22,7 +22,7 @@ export class NotificationComponent {
|
|
|
22
22
|
transition = '0.6s ease-in-out';
|
|
23
23
|
showNotification = false;
|
|
24
24
|
notificationContent = '';
|
|
25
|
-
notificationOptions =
|
|
25
|
+
notificationOptions = null;
|
|
26
26
|
subscription;
|
|
27
27
|
constructor(notificationService) {
|
|
28
28
|
this.notificationService = notificationService;
|
|
@@ -54,8 +54,10 @@ export class NotificationComponent {
|
|
|
54
54
|
close = new EventEmitter();
|
|
55
55
|
get notificationStyles() {
|
|
56
56
|
return {
|
|
57
|
-
'background-color': this.notificationOptions
|
|
58
|
-
|
|
57
|
+
'background-color': this.notificationOptions
|
|
58
|
+
? this.notificationOptions.backgroundColor
|
|
59
|
+
: '',
|
|
60
|
+
color: this.notificationOptions ? this.notificationOptions.textColor : '',
|
|
59
61
|
padding: this.padding,
|
|
60
62
|
'border-radius': this.borderRadius,
|
|
61
63
|
border: '1px solid transparent',
|
|
@@ -124,11 +126,11 @@ export class NotificationComponent {
|
|
|
124
126
|
this.buttonClick.emit(button);
|
|
125
127
|
}
|
|
126
128
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, deps: [{ token: i1.NotificationService }], target: i0.ɵɵFactoryTarget.Component });
|
|
127
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div
|
|
129
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: NotificationComponent, selector: "verben-notification", inputs: { width: "width", content: "content", buttons: "buttons", timeout: "timeout", position: "position" }, outputs: { buttonClick: "buttonClick", close: "close" }, ngImport: i0, template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 20\"\n [height]=\"notificationOptions.iconHeight || 20\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n <div>\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <verben-svg\n class=\"closeSvg\"\n [icon]=\"'close'\"\n [size]=\"'sm'\"\n [stroke]=\"'var(--vbn-color-text-muted)'\"\n (click)=\"closeNotification()\"\n ></verben-svg>\n </div>\n</div>\n", styles: ["p{margin-bottom:0!important}.mainwrapper{position:relative}.closeSvg{position:absolute;top:3px;right:8px;cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: i3.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }, { kind: "component", type: i4.VerbenaButtonComponent, selector: "verbena-button", inputs: ["type", "text", "icon", "useIcon", "svgPosition", "iconPosition", "bgColor", "textColor", "border", "borderRadius", "pd", "width", "height", "fontSize", "fontWeight", "disable", "svgSize", "weight", "variant", "styleType", "svg", "svgWidth", "svgHeight", "iconColor", "svgColor", "buttonClass", "buttonTextClass", "isLoading", "spinnerSize", "spinnerColor"] }] });
|
|
128
130
|
}
|
|
129
131
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: NotificationComponent, decorators: [{
|
|
130
132
|
type: Component,
|
|
131
|
-
args: [{ selector: 'verben-notification', template: "<div
|
|
133
|
+
args: [{ selector: 'verben-notification', template: "<div\n [ngStyle]=\"notificationStyles\"\n class=\"mainwrapper\"\n *ngIf=\"notificationOptions\"\n>\n <div [ngStyle]=\"innerWrapperStyles\">\n <verben-svg\n [icon]=\"notificationOptions.iconName || ''\"\n [width]=\"notificationOptions.iconWidth || 20\"\n [height]=\"notificationOptions.iconHeight || 20\"\n [stroke]=\"notificationOptions.stroke || ''\"\n [fill]=\"notificationOptions.fill || ''\"\n ></verben-svg>\n <p>{{ notificationContent }}</p>\n </div>\n <div>\n <ng-container *ngIf=\"notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\">\n <verbena-button\n *ngFor=\"let button of notificationOptions.buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <ng-container *ngIf=\"!notificationOptions.buttons\">\n <div [ngStyle]=\"btnWrapperStyle\" *ngIf=\"buttons.length\">\n <verbena-button\n *ngFor=\"let button of buttons\"\n [text]=\"button.text\"\n [bgColor]=\"button.bgColor\"\n [textColor]=\"button.primarycolor || button.secondarycolor\"\n [borderRadius]=\"'8px'\"\n [pd]=\"'0px 8px'\"\n [fontSize]=\"'14px'\"\n (click)=\"onButtonClick(button); button.callBack && button.callBack()\"\n ></verbena-button>\n </div>\n </ng-container>\n <verben-svg\n class=\"closeSvg\"\n [icon]=\"'close'\"\n [size]=\"'sm'\"\n [stroke]=\"'var(--vbn-color-text-muted)'\"\n (click)=\"closeNotification()\"\n ></verben-svg>\n </div>\n</div>\n", styles: ["p{margin-bottom:0!important}.mainwrapper{position:relative}.closeSvg{position:absolute;top:3px;right:8px;cursor:pointer}\n"] }]
|
|
132
134
|
}], ctorParameters: () => [{ type: i1.NotificationService }], propDecorators: { width: [{
|
|
133
135
|
type: Input
|
|
134
136
|
}], content: [{
|
|
@@ -144,4 +146,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
144
146
|
}], close: [{
|
|
145
147
|
type: Output
|
|
146
148
|
}] } });
|
|
147
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQUV2QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFnQnBDLE1BQU0sT0FBTyxxQkFBcUI7SUFvQlo7SUFuQlgsS0FBSyxHQUFZLE9BQU8sQ0FBQztJQUNsQyxNQUFNLEdBQVksTUFBTSxDQUFDO0lBQ3pCLFlBQVksR0FBVyxNQUFNLENBQUM7SUFDOUIsUUFBUSxHQUFXLE1BQU0sQ0FBQztJQUMxQixVQUFVLEdBQVcsS0FBSyxDQUFDO0lBQzNCLE9BQU8sR0FBVyx5QkFBeUIsQ0FBQztJQUNuQyxPQUFPLENBQVU7SUFDMUIsR0FBRyxHQUFXLEVBQUUsQ0FBQztJQUNqQixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ1gsT0FBTyxHQUFhLEVBQUUsQ0FBQztJQUN2QixPQUFPLEdBQVcsS0FBSyxDQUFDO0lBQ3hCLFFBQVEsR0FBVyxVQUFVLENBQUM7SUFDdkMsVUFBVSxHQUFXLGtCQUFrQixDQUFDO0lBRXhDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDekIsbUJBQW1CLEdBQVEsRUFBRSxDQUFDO0lBQzlCLFlBQVksQ0FBZTtJQUUzQixZQUFvQixtQkFB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a09DekJsQyx3aUNBcUNBOzs0RkRaYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCO3dGQUt0QixLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkF1Q0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5pbnRlcmZhY2UgQnV0dG9uIHtcbiAgdGV4dDogc3RyaW5nO1xuICBiZ0NvbG9yPzogc3RyaW5nO1xuICBwcmltYXJ5Y29sb3I/OiBzdHJpbmc7XG4gIHNlY29uZGFyeWNvbG9yPzogc3RyaW5nO1xuICBmb250U2l6ZT86IHN0cmluZztcbiAgZm9udFdlaWdodD86IHN0cmluZztcbn1cblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAndmVyYmVuLW5vdGlmaWNhdGlvbicsXG4gIHRlbXBsYXRlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vbm90aWZpY2F0aW9uLmNvbXBvbmVudC5jc3MnLFxufSlcbmV4cG9ydCBjbGFzcyBOb3RpZmljYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XG4gIEBJbnB1dCgpIHdpZHRoPzogc3RyaW5nID0gJzQwMHB4JztcbiAgaGVpZ2h0Pzogc3RyaW5nID0gJzUwcHgnO1xuICBib3JkZXJSYWRpdXM6IHN0cmluZyA9ICcxNXB4JztcbiAgZm9udFNpemU6IHN0cmluZyA9ICcyMHB4JztcbiAgZm9udFdlaWdodDogc3RyaW5nID0gJzcwMCc7XG4gIHBhZGRpbmc6IHN0cmluZyA9ICcxMHB4IDIuNXJlbSAxMHB4IDEuNXJlbSc7XG4gIEBJbnB1dCgpIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHRvcDogc3RyaW5nID0gJyc7XG4gIGJvdHRvbTogc3RyaW5nID0gJyc7XG4gIEBJbnB1dCgpIGJ1dHRvbnM6IEJ1dHRvbltdID0gW107XG4gIEBJbnB1dCgpIHRpbWVvdXQ6IG51bWJlciA9IDEwMDAwO1xuICBASW5wdXQoKSBwb3NpdGlvbjogc3RyaW5nID0gJ3RvcC1sZWZ0JztcbiAgdHJhbnNpdGlvbjogc3RyaW5nID0gJzAuNnMgZWFzZS1pbi1vdXQnO1xuXG4gIHNob3dOb3RpZmljYXRpb24gPSBmYWxzZTtcbiAgbm90aWZpY2F0aW9uQ29udGVudCA9ICcnO1xuICBub3RpZmljYXRpb25PcHRpb25zOiBhbnkgPSB7fTtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb24kLnN1YnNjcmliZShcbiAgICAgIChub3RpZmljYXRpb24pID0+IHtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Db250ZW50ID0gbm90aWZpY2F0aW9uLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25PcHRpb25zID0gbm90aWZpY2F0aW9uLm9wdGlvbnM7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VOb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9LCB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnMudGltZW91dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH1cbiAgICApO1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIGNsb3NlTm90aWZpY2F0aW9uKCkge1xuICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICAgIHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5jbGVhck5vdGlmaWNhdGlvbigpO1xuICB9XG5cbiAgQE91dHB1dCgpIGJ1dHRvbkNsaWNrID0gbmV3IEV2ZW50RW1pdHRlcjxCdXR0b24+KCk7XG4gIEBPdXRwdXQoKSBjbG9zZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcblxuICBnZXQgbm90aWZpY2F0aW9uU3R5bGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICAnYmFja2dyb3VuZC1jb2xvcic6IHRoaXMubm90aWZpY2F0aW9uT3B0aW9ucy5iYWNrZ3JvdW5kQ29sb3IsXG4gICAgICBjb2xvcjogdGhpcy5ub3RpZmljYXRpb25PcHRpb25zLnRleHRDb2xvcixcbiAgICAgIHBhZGRpbmc6IHRoaXMucGFkZGluZyxcbiAgICAgICdib3JkZXItcmFkaXVzJzogdGhpcy5ib3JkZXJSYWRpdXMsXG4gICAgICBib3JkZXI6ICcxcHggc29saWQgdHJhbnNwYXJlbnQnLFxuICAgICAgd2lkdGg6IHRoaXMud2lkdGgsXG4gICAgICAnZm9udC1zaXplJzogdGhpcy5mb250U2l6ZSxcbiAgICAgICdmb250LXdlaWdodCc6IHRoaXMuZm9udFdlaWdodCxcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgJ2p1c3RpZnktY29udGVudCc6ICdzcGFjZS1iZXR3ZWVuJyxcbiAgICAgIC4uLnRoaXMuZ2V0UG9zaXRpb25TdHlsZXMoKSxcbiAgICAgIHBvc2l0aW9uOiAnZml4ZWQnLFxuICAgICAgJ3otaW5kZXgnOiAnOTk5OScsXG4gICAgICB0cmFuc2l0aW9uOiB0aGlzLnRyYW5zaXRpb24sXG4gICAgfTtcbiAgfVxuXG4gIGdldFBvc2l0aW9uU3R5bGVzKCkge1xuICAgIGNvbnN0IHBvc2l0aW9uczogeyBba2V5OiBzdHJpbmddOiBhbnkgfSA9IHtcbiAgICAgICd0b3AtbGVmdCc6IHtcbiAgICAgICAgdG9wOiB0aGlzLnRvcCB8fCAnMXJlbScsXG4gICAgICAgIGxlZnQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICd0b3AgMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ3RvcC1yaWdodCc6IHtcbiAgICAgICAgdG9wOiB0aGlzLnRvcCB8fCAnMXJlbScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdtaWRkbGUtbGVmdCc6IHtcbiAgICAgICAgdG9wOiB0aGlzLnRvcCB8fCAnNDUlJyxcbiAgICAgICAgbGVmdDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ3RvcCAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgICAnbWlkZGxlLXJpZ2h0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICc0NSUnLFxuICAgICAgICByaWdodDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ3RvcCAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgICAnYm90dG9tLWxlZnQnOiB7XG4gICAgICAgIGJvdHRvbTogdGhpcy5ib3R0b20gfHwgJzFyZW0nLFxuICAgICAgICBsZWZ0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAnYm90dG9tIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdib3R0b20tcmlnaHQnOiB7XG4gICAgICAgIGJvdHRvbTogdGhpcy5ib3R0b20gfHwgJzFyZW0nLFxuICAgICAgICByaWdodDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ2JvdHRvbSAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgfTtcblxuICAgIHJldHVybiBwb3NpdGlvbnNbdGhpcy5wb3NpdGlvbl0gfHwgcG9zaXRpb25zWyd0b3AtbGVmdCddO1xuICB9XG5cbiAgZ2V0IGJ0bldyYXBwZXJTdHlsZSgpIHtcbiAgICByZXR1cm4ge1xuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICBnYXA6ICcwLjJyZW0nLFxuICAgIH07XG4gIH1cblxuICBnZXQgaW5uZXJXcmFwcGVyU3R5bGVzKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgIGdhcDogJzEuNXJlbScsXG4gICAgfTtcbiAgfVxuXG4gIG9uQnV0dG9uQ2xpY2soYnV0dG9uOiBCdXR0b24pIHtcbiAgICB0aGlzLmJ1dHRvbkNsaWNrLmVtaXQoYnV0dG9uKTtcbiAgfVxufVxuIiwiPGRpdiBcbltuZ1N0eWxlXT1cIm5vdGlmaWNhdGlvblN0eWxlc1wiXG5jbGFzcz1cIm1haW53cmFwcGVyXCJcbj5cbiAgPGRpdiBbbmdTdHlsZV09XCJpbm5lcldyYXBwZXJTdHlsZXNcIj5cbiAgICA8dmVyYmVuLXN2Z1xuICAgICAgW2ljb25dPVwibm90aWZpY2F0aW9uT3B0aW9ucy5pY29uTmFtZVwiXG4gICAgICBbd2lkdGhdPVwibm90aWZpY2F0aW9uT3B0aW9ucy5pY29uV2lkdGhcIlxuICAgICAgW2hlaWdodF09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25IZWlnaHRcIlxuICAgICAgW3N0cm9rZV09XCJub3RpZmljYXRpb25PcHRpb25zLnN0cm9rZVwiXG4gICAgICBbZmlsbF09XCJub3RpZmljYXRpb25PcHRpb25zLmZpbGxcIlxuICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICAgIDxwPnt7IG5vdGlmaWNhdGlvbkNvbnRlbnQgfX08L3A+XG4gIDwvZGl2PlxuICA8ZGl2PlxuICAgIDxkaXYgW25nU3R5bGVdPVwiYnRuV3JhcHBlclN0eWxlXCIgKm5nSWY9XCJidXR0b25zLmxlbmd0aFwiPlxuICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiXG4gICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxuICAgIFtiZ0NvbG9yXT1cImJ1dHRvbi5iZ0NvbG9yXCJcbiAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yXCJcbiAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICBbcGRdPVwiJzBweCA4cHgnXCJcbiAgICBbZm9udFNpemVdPVwiJzE0cHgnXCJcbiAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidXR0b24pXCJcbiAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPHZlcmJlbi1zdmdcbiAgICBjbGFzcz1cImNsb3NlU3ZnXCJcbiAgICBbaWNvbl09XCInY2xvc2UnXCJcbiAgICBbc2l6ZV09XCInc20nXCJcbiAgICBbc3Ryb2tlXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCknXCJcbiAgICAoY2xpY2spID0gXCJjbG9zZU5vdGlmaWNhdGlvbigpXCJcbiAgPjwvdmVyYmVuLXN2Zz5cbiAgPC9kaXY+XG48L2Rpdj5cblxuIl19
|
|
149
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvbm90aWZpY2F0aW9uL25vdGlmaWNhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL25vdGlmaWNhdGlvbi9ub3RpZmljYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUNMLFNBQVMsRUFDVCxLQUFLLEVBQ0wsWUFBWSxFQUNaLE1BQU0sR0FHUCxNQUFNLGVBQWUsQ0FBQztBQU12QixPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPcEMsTUFBTSxPQUFPLHFCQUFxQjtJQW9CWjtJQW5CWCxLQUFLLEdBQVksT0FBTyxDQUFDO0lBQ2xDLE1BQU0sR0FBWSxNQUFNLENBQUM7SUFDekIsWUFBWSxHQUFXLE1BQU0sQ0FBQztJQUM5QixRQUFRLEdBQVcsTUFBTSxDQUFDO0lBQzFCLFVBQVUsR0FBVyxLQUFLLENBQUM7SUFDM0IsT0FBTyxHQUFXLHlCQUF5QixDQUFDO0lBQ25DLE9BQU8sQ0FBVTtJQUMxQixHQUFHLEdBQVcsRUFBRSxDQUFDO0lBQ2pCLE1BQU0sR0FBVyxFQUFFLENBQUM7SUFDWCxPQUFPLEdBQXlCLEVBQUUsQ0FBQztJQUNuQyxPQUFPLEdBQVcsS0FBSyxDQUFDO0lBQ3hCLFFBQVEsR0FBVyxVQUFVLENBQUM7SUFDdkMsVUFBVSxHQUFXLGtCQUFrQixDQUFDO0lBRXhDLGdCQUFnQixHQUFHLEtBQUssQ0FBQztJQUN6QixtQkFBbUIsR0FBRyxFQUFFLENBQUM7SUFDekIsbUJBQW1CLEdBQStCLElBQUksQ0FBQztJQUN2RCxZQUFZLENBQWU7SUFFM0IsWUFBb0IsbUJB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QUVELGFBQWEsQ0FBQyxNQUEwQjtRQUN0QyxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQztJQUNoQyxDQUFDO3dHQW5JVSxxQkFBcUI7NEZBQXJCLHFCQUFxQixrT0NwQmxDLGcxREFxREE7OzRGRGpDYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UscUJBQXFCO3dGQUt0QixLQUFLO3NCQUFiLEtBQUs7Z0JBTUcsT0FBTztzQkFBZixLQUFLO2dCQUdHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csUUFBUTtzQkFBaEIsS0FBSztnQkF1Q0ksV0FBVztzQkFBcEIsTUFBTTtnQkFDRyxLQUFLO3NCQUFkLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICBDb21wb25lbnQsXG4gIElucHV0LFxuICBFdmVudEVtaXR0ZXIsXG4gIE91dHB1dCxcbiAgT25Jbml0LFxuICBPbkRlc3Ryb3ksXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTm90aWZpY2F0aW9uU2VydmljZSB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL3NlcnZpY2VzJztcbmltcG9ydCB7XG4gIE5vdGlmaWNhdGlvbkJ1dHRvbixcbiAgTm90aWZpY2F0aW9uT3B0aW9ucyxcbn0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd2ZXJiZW4tbm90aWZpY2F0aW9uJyxcbiAgdGVtcGxhdGVVcmw6ICcuL25vdGlmaWNhdGlvbi5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi9ub3RpZmljYXRpb24uY29tcG9uZW50LmNzcycsXG59KVxuZXhwb3J0IGNsYXNzIE5vdGlmaWNhdGlvbkNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KCkgd2lkdGg/OiBzdHJpbmcgPSAnNDAwcHgnO1xuICBoZWlnaHQ/OiBzdHJpbmcgPSAnNTBweCc7XG4gIGJvcmRlclJhZGl1czogc3RyaW5nID0gJzE1cHgnO1xuICBmb250U2l6ZTogc3RyaW5nID0gJzIwcHgnO1xuICBmb250V2VpZ2h0OiBzdHJpbmcgPSAnNzAwJztcbiAgcGFkZGluZzogc3RyaW5nID0gJzEwcHggMi41cmVtIDEwcHggMS41cmVtJztcbiAgQElucHV0KCkgY29udGVudD86IHN0cmluZztcbiAgdG9wOiBzdHJpbmcgPSAnJztcbiAgYm90dG9tOiBzdHJpbmcgPSAnJztcbiAgQElucHV0KCkgYnV0dG9uczogTm90aWZpY2F0aW9uQnV0dG9uW10gPSBbXTtcbiAgQElucHV0KCkgdGltZW91dDogbnVtYmVyID0gMTAwMDA7XG4gIEBJbnB1dCgpIHBvc2l0aW9uOiBzdHJpbmcgPSAndG9wLWxlZnQnO1xuICB0cmFuc2l0aW9uOiBzdHJpbmcgPSAnMC42cyBlYXNlLWluLW91dCc7XG5cbiAgc2hvd05vdGlmaWNhdGlvbiA9IGZhbHNlO1xuICBub3RpZmljYXRpb25Db250ZW50ID0gJyc7XG4gIG5vdGlmaWNhdGlvbk9wdGlvbnM6IE5vdGlmaWNhdGlvbk9wdGlvbnMgfCBudWxsID0gbnVsbDtcbiAgc3Vic2NyaXB0aW9uOiBTdWJzY3JpcHRpb247XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSBub3RpZmljYXRpb25TZXJ2aWNlOiBOb3RpZmljYXRpb25TZXJ2aWNlKSB7XG4gICAgdGhpcy5zdWJzY3JpcHRpb24gPSBuZXcgU3Vic2NyaXB0aW9uKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICB0aGlzLnN1YnNjcmlwdGlvbiA9IHRoaXMubm90aWZpY2F0aW9uU2VydmljZS5ub3RpZmljYXRpb24kLnN1YnNjcmliZShcbiAgICAgIChub3RpZmljYXRpb24pID0+IHtcbiAgICAgICAgaWYgKG5vdGlmaWNhdGlvbikge1xuICAgICAgICAgIHRoaXMuc2hvd05vdGlmaWNhdGlvbiA9IHRydWU7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25Db250ZW50ID0gbm90aWZpY2F0aW9uLm1lc3NhZ2U7XG4gICAgICAgICAgdGhpcy5ub3RpZmljYXRpb25PcHRpb25zID0gbm90aWZpY2F0aW9uLm9wdGlvbnM7XG5cbiAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuY2xvc2VOb3RpZmljYXRpb24oKTtcbiAgICAgICAgICB9LCB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnMudGltZW91dCk7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uID0gZmFsc2U7XG4gICAgICAgIH1cbiAgICAgIH0sXG4gICAgKTtcbiAgfVxuXG4gIG5nT25EZXN0cm95KCkge1xuICAgIHRoaXMuc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBjbG9zZU5vdGlmaWNhdGlvbigpIHtcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb24gPSBmYWxzZTtcbiAgICB0aGlzLm5vdGlmaWNhdGlvblNlcnZpY2UuY2xlYXJOb3RpZmljYXRpb24oKTtcbiAgfVxuXG4gIEBPdXRwdXQoKSBidXR0b25DbGljayA9IG5ldyBFdmVudEVtaXR0ZXI8Tm90aWZpY2F0aW9uQnV0dG9uPigpO1xuICBAT3V0cHV0KCkgY2xvc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgZ2V0IG5vdGlmaWNhdGlvblN0eWxlcygpIHtcbiAgICByZXR1cm4ge1xuICAgICAgJ2JhY2tncm91bmQtY29sb3InOiB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnNcbiAgICAgICAgPyB0aGlzLm5vdGlmaWNhdGlvbk9wdGlvbnMuYmFja2dyb3VuZENvbG9yXG4gICAgICAgIDogJycsXG4gICAgICBjb2xvcjogdGhpcy5ub3RpZmljYXRpb25PcHRpb25zID8gdGhpcy5ub3RpZmljYXRpb25PcHRpb25zLnRleHRDb2xvciA6ICcnLFxuICAgICAgcGFkZGluZzogdGhpcy5wYWRkaW5nLFxuICAgICAgJ2JvcmRlci1yYWRpdXMnOiB0aGlzLmJvcmRlclJhZGl1cyxcbiAgICAgIGJvcmRlcjogJzFweCBzb2xpZCB0cmFuc3BhcmVudCcsXG4gICAgICB3aWR0aDogdGhpcy53aWR0aCxcbiAgICAgICdmb250LXNpemUnOiB0aGlzLmZvbnRTaXplLFxuICAgICAgJ2ZvbnQtd2VpZ2h0JzogdGhpcy5mb250V2VpZ2h0LFxuICAgICAgZGlzcGxheTogJ2ZsZXgnLFxuICAgICAgJ2FsaWduLWl0ZW1zJzogJ2NlbnRlcicsXG4gICAgICAnanVzdGlmeS1jb250ZW50JzogJ3NwYWNlLWJldHdlZW4nLFxuICAgICAgLi4udGhpcy5nZXRQb3NpdGlvblN0eWxlcygpLFxuICAgICAgcG9zaXRpb246ICdmaXhlZCcsXG4gICAgICAnei1pbmRleCc6ICc5OTk5JyxcbiAgICAgIHRyYW5zaXRpb246IHRoaXMudHJhbnNpdGlvbixcbiAgICB9O1xuICB9XG5cbiAgZ2V0UG9zaXRpb25TdHlsZXMoKSB7XG4gICAgY29uc3QgcG9zaXRpb25zOiB7IFtrZXk6IHN0cmluZ106IGFueSB9ID0ge1xuICAgICAgJ3RvcC1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgbGVmdDogdGhpcy5zaG93Tm90aWZpY2F0aW9uID8gJzFyZW0nIDogJy0xMDAlJyxcbiAgICAgICAgdHJhbnNpdGlvbjogJ3RvcCAwLjVzIGVhc2UtaW4tb3V0JyxcbiAgICAgIH0sXG4gICAgICAndG9wLXJpZ2h0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICcxcmVtJyxcbiAgICAgICAgcmlnaHQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICd0b3AgMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ21pZGRsZS1sZWZ0Jzoge1xuICAgICAgICB0b3A6IHRoaXMudG9wIHx8ICc0NSUnLFxuICAgICAgICBsZWZ0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdtaWRkbGUtcmlnaHQnOiB7XG4gICAgICAgIHRvcDogdGhpcy50b3AgfHwgJzQ1JScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAndG9wIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICAgICdib3R0b20tbGVmdCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIGxlZnQ6IHRoaXMuc2hvd05vdGlmaWNhdGlvbiA/ICcxcmVtJyA6ICctMTAwJScsXG4gICAgICAgIHRyYW5zaXRpb246ICdib3R0b20gMC41cyBlYXNlLWluLW91dCcsXG4gICAgICB9LFxuICAgICAgJ2JvdHRvbS1yaWdodCc6IHtcbiAgICAgICAgYm90dG9tOiB0aGlzLmJvdHRvbSB8fCAnMXJlbScsXG4gICAgICAgIHJpZ2h0OiB0aGlzLnNob3dOb3RpZmljYXRpb24gPyAnMXJlbScgOiAnLTEwMCUnLFxuICAgICAgICB0cmFuc2l0aW9uOiAnYm90dG9tIDAuNXMgZWFzZS1pbi1vdXQnLFxuICAgICAgfSxcbiAgICB9O1xuXG4gICAgcmV0dXJuIHBvc2l0aW9uc1t0aGlzLnBvc2l0aW9uXSB8fCBwb3NpdGlvbnNbJ3RvcC1sZWZ0J107XG4gIH1cblxuICBnZXQgYnRuV3JhcHBlclN0eWxlKCkge1xuICAgIHJldHVybiB7XG4gICAgICBkaXNwbGF5OiAnZmxleCcsXG4gICAgICAnYWxpZ24taXRlbXMnOiAnY2VudGVyJyxcbiAgICAgIGdhcDogJzAuMnJlbScsXG4gICAgfTtcbiAgfVxuXG4gIGdldCBpbm5lcldyYXBwZXJTdHlsZXMoKSB7XG4gICAgcmV0dXJuIHtcbiAgICAgIGRpc3BsYXk6ICdmbGV4JyxcbiAgICAgICdhbGlnbi1pdGVtcyc6ICdjZW50ZXInLFxuICAgICAgZ2FwOiAnMS41cmVtJyxcbiAgICB9O1xuICB9XG5cbiAgb25CdXR0b25DbGljayhidXR0b246IE5vdGlmaWNhdGlvbkJ1dHRvbikge1xuICAgIHRoaXMuYnV0dG9uQ2xpY2suZW1pdChidXR0b24pO1xuICB9XG59XG4iLCI8ZGl2XG4gIFtuZ1N0eWxlXT1cIm5vdGlmaWNhdGlvblN0eWxlc1wiXG4gIGNsYXNzPVwibWFpbndyYXBwZXJcIlxuICAqbmdJZj1cIm5vdGlmaWNhdGlvbk9wdGlvbnNcIlxuPlxuICA8ZGl2IFtuZ1N0eWxlXT1cImlubmVyV3JhcHBlclN0eWxlc1wiPlxuICAgIDx2ZXJiZW4tc3ZnXG4gICAgICBbaWNvbl09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25OYW1lIHx8ICcnXCJcbiAgICAgIFt3aWR0aF09XCJub3RpZmljYXRpb25PcHRpb25zLmljb25XaWR0aCB8fCAyMFwiXG4gICAgICBbaGVpZ2h0XT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuaWNvbkhlaWdodCB8fCAyMFwiXG4gICAgICBbc3Ryb2tlXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuc3Ryb2tlIHx8ICcnXCJcbiAgICAgIFtmaWxsXT1cIm5vdGlmaWNhdGlvbk9wdGlvbnMuZmlsbCB8fCAnJ1wiXG4gICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8cD57eyBub3RpZmljYXRpb25Db250ZW50IH19PC9wPlxuICA8L2Rpdj5cbiAgPGRpdj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm90aWZpY2F0aW9uT3B0aW9ucy5idXR0b25zXCI+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cImJ0bldyYXBwZXJTdHlsZVwiPlxuICAgICAgICA8dmVyYmVuYS1idXR0b25cbiAgICAgICAgICAqbmdGb3I9XCJsZXQgYnV0dG9uIG9mIG5vdGlmaWNhdGlvbk9wdGlvbnMuYnV0dG9uc1wiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICAgIFtiZ0NvbG9yXT1cImJ1dHRvbi5iZ0NvbG9yXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yXCJcbiAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgICBbcGRdPVwiJzBweCA4cHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiJzE0cHgnXCJcbiAgICAgICAgICAoY2xpY2spPVwiYnV0dG9uLmNhbGxCYWNrICYmIGJ1dHRvbi5jYWxsQmFjaygpXCJcbiAgICAgICAgPjwvdmVyYmVuYS1idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIW5vdGlmaWNhdGlvbk9wdGlvbnMuYnV0dG9uc1wiPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJidG5XcmFwcGVyU3R5bGVcIiAqbmdJZj1cImJ1dHRvbnMubGVuZ3RoXCI+XG4gICAgICAgIDx2ZXJiZW5hLWJ1dHRvblxuICAgICAgICAgICpuZ0Zvcj1cImxldCBidXR0b24gb2YgYnV0dG9uc1wiXG4gICAgICAgICAgW3RleHRdPVwiYnV0dG9uLnRleHRcIlxuICAgICAgICAgIFtiZ0NvbG9yXT1cImJ1dHRvbi5iZ0NvbG9yXCJcbiAgICAgICAgICBbdGV4dENvbG9yXT1cImJ1dHRvbi5wcmltYXJ5Y29sb3IgfHwgYnV0dG9uLnNlY29uZGFyeWNvbG9yXCJcbiAgICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgICBbcGRdPVwiJzBweCA4cHgnXCJcbiAgICAgICAgICBbZm9udFNpemVdPVwiJzE0cHgnXCJcbiAgICAgICAgICAoY2xpY2spPVwib25CdXR0b25DbGljayhidXR0b24pOyBidXR0b24uY2FsbEJhY2sgJiYgYnV0dG9uLmNhbGxCYWNrKClcIlxuICAgICAgICA+PC92ZXJiZW5hLWJ1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvbmctY29udGFpbmVyPlxuICAgIDx2ZXJiZW4tc3ZnXG4gICAgICBjbGFzcz1cImNsb3NlU3ZnXCJcbiAgICAgIFtpY29uXT1cIidjbG9zZSdcIlxuICAgICAgW3NpemVdPVwiJ3NtJ1wiXG4gICAgICBbc3Ryb2tlXT1cIid2YXIoLS12Ym4tY29sb3ItdGV4dC1tdXRlZCknXCJcbiAgICAgIChjbGljayk9XCJjbG9zZU5vdGlmaWNhdGlvbigpXCJcbiAgICA+PC92ZXJiZW4tc3ZnPlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
@@ -235,11 +235,11 @@ export class TableFilterComponent {
|
|
|
235
235
|
}
|
|
236
236
|
}
|
|
237
237
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TableFilterComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
238
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", savedFilters: "savedFilters", tooltip: "tooltip", saveCallback: "saveCallback" }, outputs: { filtersApplied: "filtersApplied", resetSortData: "resetSortData" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
|
|
238
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.10", type: TableFilterComponent, selector: "verben-table-filter", inputs: { filterOptions: "filterOptions", pd: "pd", mg: "mg", height: "height", width: "width", bgColor: "bgColor", boxShadow: "boxShadow", textColor: "textColor", primaryColor: "primaryColor", secondaryColor: "secondaryColor", tertiaryColor: "tertiaryColor", border: "border", borderRadius: "borderRadius", selectWidth: "selectWidth", maxFilterLength: "maxFilterLength", savedFilters: "savedFilters", tooltip: "tooltip", saveCallback: "saveCallback" }, outputs: { filtersApplied: "filtersApplied", resetSortData: "resetSortData" }, ngImport: i0, template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"black\"\n fill=\"black\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n {{ this.editIndex != null ? \"+ Update\" : \"+ Add\" }}\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"], dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { 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: i1.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { 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: "component", type: i3.DropDownComponent, selector: "verben-drop-down", inputs: ["options", "width", "overlayWidth", "showHorizontalLine", "horizontalLineColor", "optionLabel", "optionSubLabel", "optionValue", "placeholder", "invalidMessage", "errorPosition", "loadMoreCaption", "display", "showClear", "lazyLoad", "selectKey", "styleClass", "group", "multiselect", "filter", "avoidDuplication", "filterBy", "debounceTime", "minChar", "refPageSize", "disabled", "required", "load", "asyncLabel", "search"], outputs: ["optionsChange", "onChange", "onClick", "onClear"] }, { kind: "component", type: i4.VerbenaInputComponent, selector: "verbena-input", inputs: ["disabled", "label", "placeHolder", "required", "svgPosition", "minLength", "maxLength", "type", "bgColor", "border", "borderRadius", "textColor", "value", "labelPosition", "labelColor", "disable", "readOnly", "min", "max", "showBorder", "showErrorMessage", "errorMessageColor", "errorBorderColor", "errorPosition", "svg", "fontSize", "svgWidth", "svgHeight", "svgColor", "capitalization", "inputContainerClass", "inputFieldClass", "passLength", "inputWrapperClass", "passwordToggle", "customErrorMessages", "icon", "textPass"], outputs: ["valueChange"] }, { kind: "directive", type: i5.ValidateDirective, selector: "[appValidate]", inputs: ["appValidate", "required", "showBorder", "showErrorMessage", "errorBorderColor", "errorMessageColor", "errorIconTooltipPosition", "showErrorIcon"] }, { kind: "component", type: i6.TooltipComponent, selector: "verben-tooltip", inputs: ["tooltipContent", "customClass", "backgroundColor", "textColor", "padding", "borderRadius", "zIndex", "border", "width", "top", "bottom", "left", "right"] }, { kind: "component", type: i7.SvgComponent, selector: "verben-svg", inputs: ["icon", "width", "height", "fill", "stroke", "type", "size"] }] });
|
|
239
239
|
}
|
|
240
240
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImport: i0, type: TableFilterComponent, decorators: [{
|
|
241
241
|
type: Component,
|
|
242
|
-
args: [{ selector: 'verben-table-filter', template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-border-focus)\"\n fill=\"var(--vbn-color-surface)\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n + Add\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"] }]
|
|
242
|
+
args: [{ selector: 'verben-table-filter', template: "<section\n [style.background-color]=\"bgColor\"\n [style.box-shadow]=\"boxShadow\"\n [style.border]=\"border\"\n [style.border-radius]=\"borderRadius\"\n [style.color]=\"textColor\"\n [style.width]=\"width\"\n [style.height]=\"height\"\n [style.padding]=\"pd\"\n>\n <div class=\"top\">\n <h3 [style.color]=\"tertiaryColor\" [style.font-size]=\"'14px'\">\n Filters\n <span [style.color]=\"secondaryColor\"\n ><sup>({{ filterCount }})</sup></span\n >\n </h3>\n <button\n [style.color]=\"secondaryColor\"\n [style.background-color]=\"bgColor\"\n [style.border]=\"'none'\"\n [style.cursor]=\"'pointer'\"\n [style.font-size]=\"'12px'\"\n (click)=\"resetFilters()\"\n >\n Reset\n </button>\n </div>\n <hr />\n\n <!-- Saved Filters Section -->\n <div class=\"center\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Saved Filters</h3>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n ></verben-svg>\n </div>\n <div class=\"selectAllWrapper\" *ngIf=\"savedFilters.length\">\n <input\n type=\"checkbox\"\n [checked]=\"checkAll\"\n (change)=\"toggleSelectAll()\"\n />\n <p [style.font-size]=\"'13px'\" [style.font-weight]=\"'500'\">Select All</p>\n </div>\n <div\n *ngFor=\"let filter of visibleFilters; let i = index\"\n class=\"centerInnerWrapper\"\n >\n <div class=\"checkboxWrapper\">\n <span\n ><input\n type=\"checkbox\"\n [checked]=\"filter.checked\"\n (click)=\"toggleCheckbox(i)\"\n /></span>\n <p\n [style.font-size]=\"'13px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ filter.name }} {{ filter.condition }} {{ filter.value }}\n </p>\n </div>\n <div class=\"iconWrapper\">\n <verben-svg\n icon=\"pencil\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"black\"\n fill=\"black\"\n (click)=\"editFilter(i)\"\n ></verben-svg>\n <verben-svg\n icon=\"trash\"\n [width]=\"15\"\n [height]=\"15\"\n stroke=\"var(--vbn-color-error)\"\n (click)=\"deleteFilter(i)\"\n ></verben-svg>\n </div>\n </div>\n\n <div\n class=\"moreWrapper\"\n *ngIf=\"savedFilters.length > maxFilterLength\"\n (click)=\"toggleShowMore()\"\n >\n <p\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [style.color]=\"tertiaryColor\"\n >\n {{ showAllFilters ? \"Show less\" : \"Show more\" }}\n </p>\n <verben-svg\n icon=\"chevron\"\n [width]=\"8\"\n [height]=\"6\"\n fill=\"var(--vbn-color-text)\"\n stroke=\"var(--vbn-color-text)\"\n ></verben-svg>\n </div>\n </div>\n <hr />\n\n <!-- Operation Section -->\n <div class=\"bottom\">\n <div class=\"savedWrapper\">\n <h3 [style.font-size]=\"'13px'\">Operation</h3>\n <div [ngStyle]=\"{ position: 'relative' }\">\n <verben-tooltip\n [tooltipContent]=\"tooltipTemplate\"\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n width=\"200px\"\n [top]=\"'20px'\"\n [right]=\"'0px'\"\n >\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n *ngIf=\"isDuplicateFilter\"\n fill=\"var(--vbn-color-error)\"\n >\n </verben-svg>\n </verben-tooltip>\n\n <ng-template #tooltipTemplate>\n {{ duplicateMessage }}\n </ng-template>\n <!-- <verben-tooltip\n [backgroundColor]=\"'var(--vbn-color-surface-alt)'\"\n [textColor]=\"'var(--vbn-color-surface)'\"\n [padding]=\"'10px'\"\n [borderRadius]=\"'8px'\"\n [top]=\"'20px'\" \n [right]=\"'0px'\" \n width=\"250px\" \n #tooltip \n *ngIf=\"tooltip\"\n >\n <h3>{{duplicateMessage}}</h3>\n </verben-tooltip> -->\n </div>\n <verben-svg\n icon=\"info\"\n [width]=\"15\"\n [height]=\"15\"\n fill=\"var(--vbn-color-text-muted)\"\n *ngIf=\"!isDuplicateFilter\"\n ></verben-svg>\n </div>\n\n <div class=\"inputsWrapper\">\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n [options]=\"filterArray\"\n [(ngModel)]=\"selectedFilterValue\"\n (ngModelChange)=\"onFilterNameChange(selectedFilterValue)\"\n >\n </verben-drop-down>\n <verben-drop-down\n width=\"7rem\"\n placeholder=\"Select value\"\n placeholder=\"Select value\"\n [options]=\"conditionOptions\"\n (onChange)=\"checkDuplicateFilter()\"\n [(ngModel)]=\"selectedCondition\"\n >\n </verben-drop-down>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Date'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"80px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [type]=\"'date'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType === 'Credit' || selectedFilterType === 'Integer'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input integer\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"integer\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Decimal'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input a decimal\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"decimal\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"selectedFilterType === 'Number'\"\n border=\"1px solid var(--vbn-color-border)\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n placeHolder=\"input number\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"false\"\n type=\"number\"\n [errorPosition]=\"'bottom'\"\n appValidate=\"number\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n\n <verbena-input\n *ngIf=\"\n selectedFilterType !== 'Credit' &&\n selectedFilterType !== 'Date' &&\n selectedFilterType !== 'Integer' &&\n selectedFilterType !== 'Decimal' &&\n selectedFilterType !== 'Number'\n \"\n border=\"1px solid var(--vbn-color-border)\"\n placeHolder=\"input value\"\n borderRadius=\"5px\"\n textColor=\"var(--vbn-color-text)\"\n width=\"100px\"\n height=\"25px\"\n pd=\"6px\"\n [showBorder]=\"true\"\n [showErrorMessage]=\"true\"\n [errorPosition]=\"'bottom'\"\n [(ngModel)]=\"inputValue\"\n ></verbena-input>\n </div>\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.border-radius]=\"borderRadius\"\n [style.background-color]=\"'transparent'\"\n [style.color]=\"secondaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'500'\"\n [disabled]=\"disableAddFilterBtn\"\n [ngClass]=\"{\n disablebtn: disableAddFilterBtn,\n enableBtn: !disableAddFilterBtn,\n }\"\n (click)=\"addFilter()\"\n >\n {{ this.editIndex != null ? \"+ Update\" : \"+ Add\" }}\n </button>\n </div>\n <hr />\n\n <div class=\"btnWrapper\">\n <button\n [style.margin-top]=\"'0.5rem'\"\n [style.outline]=\"'none'\"\n [style.border]=\"'none'\"\n [style.padding]=\"'0.2rem 1.6rem'\"\n [style.background-color]=\"primaryColor\"\n [style.color]=\"tertiaryColor\"\n [style.font-size]=\"'12px'\"\n [style.font-weight]=\"'600'\"\n (click)=\"applyFilters()\"\n >\n Confirm\n </button>\n </div>\n </div>\n</section>\n", styles: ["h3,p{margin-top:0!important;margin-bottom:0!important}.top{display:flex;align-items:end;justify-content:space-between}hr{border:1px solid var(--vbn-color-border);margin:.8rem 0rem}.centerInnerWrapper{display:flex;align-items:center;justify-content:space-between}.savedWrapper{display:flex;align-items:center;justify-content:space-between;margin-bottom:.5rem}.checkboxWrapper{display:flex;align-items:center;gap:.3rem}.iconWrapper{display:flex;align-items:center;gap:.7rem;cursor:pointer}.moreWrapper{display:flex;align-items:center;gap:.4rem;cursor:pointer}.center{overflow-y:auto;max-height:24rem}.inputsWrapper{margin-top:.5rem;display:flex;align-items:center;gap:.5rem}.btnWrapper{display:flex;justify-content:end}.inputsWrapper select:nth-of-type(1){width:120px}.inputsWrapper select:nth-of-type(2){width:70px}input[type=checkbox].checked{accent-color:var(--vbn-color-border-focus)}.selectAllWrapper{display:flex;align-items:center;gap:.25rem;margin-bottom:.5rem}.selectAllWrapper>input{cursor:pointer}.disablebtn{cursor:not-allowed}.enableBtn{cursor:pointer}\n"] }]
|
|
243
243
|
}], ctorParameters: () => [], propDecorators: { filterOptions: [{
|
|
244
244
|
type: Input
|
|
245
245
|
}], pd: [{
|
|
@@ -281,4 +281,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
281
281
|
}], resetSortData: [{
|
|
282
282
|
type: Output
|
|
283
283
|
}] } });
|
|
284
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixhQUFhLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxFQUFFLENBQVU7SUFDWixFQUFFLENBQVU7SUFDWixNQUFNLENBQVU7SUFDaEIsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLGNBQWMsQ0FBVTtJQUN4QixhQUFhLENBQVU7SUFDdkIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFlBQVksQ0FBMkM7SUFDdEQsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbEQsV0FBVyxHQUFhLEVBQUUsQ0FBQztJQUMzQixtQkFBbUIsR0FBVyxFQUFFLENBQUM7SUFDakMsa0JBQWtCLEdBQTBCLElBQUksQ0FBQztJQUNqRCxnQkFBZ0IsR0FBYSxFQUFFLENBQUM7SUFDaEMsaUJBQWlCLEdBQXVCLEVBQUUsQ0FBQztJQUMzQyxVQUFVLENBQW1CO0lBQzdCLGVBQWUsR0FBa0IsRUFBRSxDQUFDO0lBQ3BDLGNBQWMsR0FBWSxLQUFLLENBQUM7SUFDaEMsU0FBUyxHQUFrQixJQUFJLENBQUM7SUFDaEMsUUFBUSxHQUFZLEtBQUssQ0FBQztJQUMxQixpQkFBaUIsR0FBWSxLQUFLLENBQUM7SUFDbkMsbUJBQW1CLEdBQVksS0FBSyxDQUFDO0lBQ3JDLHdDQUF3QztJQUN4QyxnQkFBZ0IsR0FBWSxFQUFFLENBQUM7SUFDL0IsY0FBYyxDQUFTO0lBQ3ZCLFVBQVUsR0FBVyxjQUFjLENBQUM7SUFDcEMsV0FBVyxHQUFXLENBQUMsQ0FBQztJQUV4QjtRQUNFLElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxNQUFNLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBRUQsUUFBUTtRQUNOLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLGFBQWEsQ0FBQyxHQUFHLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsbUJBQTJCO1FBQzVDLE1BQU0sY0FBYyxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUM1QyxDQUFDLE1BQU0sRUFBRSxFQUFFLENBQUMsTUFBTSxDQUFDLElBQUksS0FBSyxtQkFBbUIsQ0FDaEQsQ0FBQztRQUVGLElBQUksY0FBYyxFQUFFLENBQUM7WUFDbkIsSUFBSSxDQUFDLGtCQUFrQixHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7WUFDOUMsSUFBSSxDQUFDLGdCQUFnQjtnQkFDbkIsSUFBSSxDQUFDLGNBQWMsQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxFQUFFLENBQUM7WUFDekUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLEVBQUUsQ0FBQztRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELFlBQVk7UUFDVixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDO1FBQy9CLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxFQUFFLENBQUM7UUFDNUIsSUFBSSxDQUFDLFVBQVUsR0FBRyxFQUFFLENBQUM7UUFDckIsMEJBQTBCO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFLEVBQUU7WUFDOUIsQ0FBQyxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7UUFDcEIsQ0FBQyxDQUFDLENBQUM7UUFDSCxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztRQUN0QixJQUFJLENBQUMsUUFBUSxHQUFHLEtBQUssQ0FBQztRQUN0QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsS0FBSyxDQUFDO1FBQy9CLHFDQUFxQztRQUNyQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsRUFBRSxDQUFDO1FBQzNCLFlBQVksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxDQUFDO1FBQ3pDLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQ3pDLENBQUMsSUFBSSxFQUFFLEVBQUUsQ0FBQyxJQUFJLENBQUMsT0FBTyxLQUFLLElBQUksQ0FDaEMsQ0FBQyxNQUFNLENBQUM7UUFDVCxJQUFJLENBQUMsYUFBYSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQzFCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDMUIsQ0FBQztJQUVELFNBQVM7UUFDUCxJQUNFLENBQUMsSUFBSSxDQUFDLG1CQUFtQjtZQUN6QixDQUFDLElBQUksQ0FBQyxpQkFBaUI7WUFDdkIsQ0FBQyxJQUFJLENBQUMsVUFBVSxFQUNoQixDQUFDO1lBQ0QsT0FBTztRQUNULENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO1lBQ3RELE9BQU87UUFDVCxDQUFDO1FBQ0QsY0FBYztRQUNkLElBQ0csSUFBSSxDQUFDLGtCQUFxQyxJQUFJLGNBQWMsQ0FBQyxJQUFJO1lBQ2xFLElBQUksQ0FBQyxpQkFBaUIsSUFBSSxJQUFJLEVBQzlCLENBQUM7WUFDRCxNQUFNLFVBQVUsR0FBZ0I7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGNBQWMsQ0FBQyxNQUFNO2dCQUN0RCxTQUFTLEVBQUUsT0FBTztnQkFDbEIsS0FBSyxFQUFHLElBQUksQ0FBQyxVQUFxQixDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUM7Z0JBQ25ELE9BQU8sRUFBRSxJQUFJO2FBQ2QsQ0FBQztZQUVGLE1BQU0sV0FBVyxHQUFnQjtnQkFDL0IsSUFBSSxFQUFFLElBQUksQ0FBQyxtQkFBbUI7Z0JBQzlCLElBQUksRUFBRSxJQUFJLENBQUMsa0JBQWtCLElBQUksY0FBYyxDQUFDLE1BQU07Z0JBQ3RELFNBQVMsRUFBRSxRQUFRO2dCQUNuQixLQUFLLEVBQUcsSUFBSSxDQUFDLFVBQXFCLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQztnQkFDbkQsT0FBTyxFQUFFLElBQUk7YUFDZCxDQUFDO1lBRUYsTUFBTSxPQUFPLEdBQUcsQ0FBQyxVQUFVLEVBQUUsV0FBVyxDQUFDLENBQUM7WUFFMUMsS0FBSyxJQUFJLFNBQVMsSUFBSSxPQUFPLEVBQUUsQ0FBQztnQkFDOUIsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLElBQUksRUFBRSxDQUFDO29CQUM1QixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDeEMsQ0FBQyxNQUFNLEVBQUUsS0FBSyxFQUFFLEVBQUUsQ0FDaEIsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSTt3QkFDOUIsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUzt3QkFDeEMsS0FBSyxLQUFLLElBQUksQ0FBQyxTQUFTLENBQzNCLENBQUM7b0JBRUYsSUFBSSxXQUFXLEVBQUUsQ0FBQzt3QkFDaEIsU0FBUztvQkFDWCxDQUFDO29CQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLFNBQVMsQ0FBQztvQkFDOUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUM7Z0JBQ3hCLENBQUM7cUJBQU0sQ0FBQztvQkFDTixJQUNFLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUNwQixDQUFDLE1BQU0sRUFBRSxFQUFFLENBQ1QsTUFBTSxDQUFDLElBQUksS0FBSyxTQUFTLENBQUMsSUFBSTt3QkFDOUIsTUFBTSxDQUFDLFNBQVMsS0FBSyxTQUFTLENBQUMsU0FBUyxDQUMzQyxFQUNELENBQUM7d0JBQ0QsU0FBUztvQkFDWCxDQUFDO29CQUNELElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO29CQUNsQyxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUN6QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQ2hDLENBQUMsTUFBTSxDQUFDO2dCQUNYLENBQUM7WUFDSCxDQUFDO1FBQ0gsQ0FBQzthQUFNLENBQUM7WUFDTixNQUFNLFNBQVMsR0FBZ0I7Z0JBQzdCLElBQUksRUFBRSxJQUFJLENBQUMsbUJBQW1CO2dCQUM5QixJQUFJLEVBQUUsSUFBSSxDQUFDLGtCQUFrQixJQUFJLGNBQWMsQ0FBQyxNQUFNO2dCQUN0RCxTQUFTLEVBQUUsSUFBSSxDQUFDLGlCQUFpQjtnQkFDakMsS0FBSyxFQUFFLElBQUksQ0FBQyxVQUFVO2dCQUN0QixPQUFPLEVBQUUsSUFBSTthQUNkLENBQUM7WUFFRixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7Z0JBQzVCLE1BQU0sV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN4QyxDQUFDLE1BQU0sRUFBRSxLQUFLLEVBQUUsRUFBRSxDQUNoQixNQUFNLENBQUMsSUFBSSxLQUFLLFNBQVMsQ0FBQyxJQUFJO29CQUM5QixNQUFNLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxTQUFTO29CQUN4QyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQztnQkFFRixJQUFJLFdBQVcsRUFBRSxDQUFDO29CQUNoQixPQUFPO2dCQUNULENBQUM7Z0JBQ0QsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsU0FBUyxDQUFDO2dCQUM5QyxJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQztZQUN4QixDQUFDO2lCQUFNLENBQUM7Z0JBQ04sSUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FDcEIsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUNULE1BQU0sQ0FBQyxJQUFJLEtBQUssU0FBUyxDQUFDLElBQUk7b0JBQzlCLE1BQU0sQ0FBQyxTQUFTLEtBQUssU0FBUyxDQUFDLFNBQVMsQ0FDM0MsRUFDRCxDQUFDO29CQUNELE9BQU87Z0JBQ1QsQ0FBQztnQkFDRCxJQUFJLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQztnQkFDbEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUNoQyxDQUFDLE1BQU0sQ0FBQztZQUNYLENBQUM7UUFDSCxDQUFDO1FBRUQsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7UUFDN0IsNEJBQTRCO0lBQzlCLENBQUM7SUFFRCxjQUFjLENBQUMsS0FBYTtRQUMxQixJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLE9BQU8sR0FBRyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsS0FBSyxDQUFDLENBQUMsT0FBTyxDQUFDO1FBQ3JFLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLENBQUMsQ0FBQztRQUNoRSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUN6QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQ2hDLENBQUMsTUFBTSxDQUFDO0lBQ1gsQ0FBQztJQUVELFlBQVksQ0FBQyxLQUFhO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLENBQUMsQ0FBQztRQUNuQyxJQUFJLENBQUMsb0JBQW9CLEVBQUUsQ0FBQztRQUM1Qiw2QkFBNkI7UUFDN0IsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FDekMsQ0FBQyxJQUFJLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxPQUFPLEtBQUssSUFBSSxDQUNoQyxDQUFDLE1BQU0sQ0FBQztRQUNULElBQUksSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLEtBQUssQ0FBQyxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFFBQVEsR0FBRyxLQUFLLENBQUM7UUFDeEIsQ0FBQztRQUNELElBQUksSUFBSSxDQUFDLFlBQVksRUFBRSxDQUFDO1lBQ3RCLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDO1FBQ3ZDLENBQUM7SUFDSCxDQUFDO0lBRUQsVUFBVSxDQUFDLEtBQWE7UUFDdEIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN4QyxJQUFJLENBQUMsa0JBQWtCLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN0QyxJQUFJLENBQUMsbUJBQW1CLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQztRQUN2QyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFDbEQsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQyxTQUFTLENBQUM7UUFDMUMsSUFBSSxDQUFDLFVBQVUsR0FBRyxNQUFNLENBQUMsS0FBSyxDQUFDO1FBQy9CLElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO0lBQ3pCLENBQUM7SUFFRCxZQUFZLENBQUMsV0FBb0IsS0FBSztRQUNwQyxJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUFDLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FBQyxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUM7UUFDNUUsSUFBSSxJQUFJLENBQUMsWUFBWSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDbkMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUM7UUFDdkMsQ0FBQztRQUNELElBQUksQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxlQUFlLENBQUMsQ0FBQztRQUMvQyxJQUFJLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsSUFBSSxDQUFDLGNBQWMsQ0FBQztJQUM3QyxDQUFDO0lBRUQsSUFBSSxjQUFjO1FBQ2hCLE9BQU8sSUFBSSxDQUFDLGNBQWM7WUFDeEIsQ0FBQyxDQUFDLElBQUksQ0FBQyxZQUFZO1lBQ25CLENBQUMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3ZELENBQUM7SUFFRCxxQkFBcUI7UUFDbkIsSUFBSSxDQUFDLG1CQUFtQixHQUFHLEVBQUUsQ0FBQztRQUM5QixJQUFJLENBQUMsaUJBQWlCLEdBQUcsRUFBRSxDQUFDO1FBQzVCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO0lBQ3ZCLENBQUM7SUFFRCx3QkFBd0I7SUFDeEIsaUVBQWlFO0lBQ2pFLElBQUk7SUFFSixlQUFlO1FBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUM7UUFDL0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLENBQUMsTUFBTSxDQUFDLE9BQU8sR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQztRQUN4RSxJQUFJLENBQUMsV0FBVyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsTUFBTSxDQUN6QyxDQUFDLElBQUksRUFBRSxFQUFFLENBQUMsSUFBSSxDQUFDLE9BQU8sS0FBSyxJQUFJLENBQ2hDLENBQUMsTUFBTSxDQUFDO0lBQ1gsQ0FBQztJQUVELG9CQUFvQjtRQUNsQixJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxFQUFFLENBQUM7WUFDNUIsTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ25DLENBQUMsTUFBTSxFQUFFLEtBQUssRUFBRSxFQUFFLENBQ2hCLE1BQU0sQ0FBQyxJQUFJLEtBQUssSUFBSSxDQUFDLG1CQUFtQjtnQkFDeEMsTUFBTSxDQUFDLFNBQVMsS0FBSyxJQUFJLENBQUMsaUJBQWlCO2dCQUMzQyxLQUFLLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FDM0IsQ0FBQztZQUNGLElBQUksQ0FBQyxtQkFBbUIsR0FBRyxNQUFNLENBQUM7WUFDbEMsSUFBSSxDQUFDLGlCQUFpQixHQUFHLE1BQU0sQ0FBQztZQUNoQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsTUFBTTtnQkFDNUIsQ0FBQyxDQUFDLGdEQUFnRDtnQkFDbEQsQ0FBQyxDQUFDLEVBQUUsQ0FBQztRQUNULENBQUM7YUFBTSxDQUFDO1lBQ04sTUFBTSxNQUFNLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQ25DLENBQUMsTUFBTSxFQUFFLEVBQUUsQ0FDVCxNQUFNLENBQUMsSUFBSSxLQUFLLElBQUksQ0FBQyxtQkFBbUI7Z0JBQ3hDLE1BQU0sQ0FBQyxTQUFTLEtBQUssSUFBSSxDQUFDLGlCQUFpQixDQUM5QyxDQUFDO1lBQ0YsSUFBSSxDQUFDLG1CQUFtQixHQUFHLE1BQU0sQ0FBQztZQUNsQyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsTUFBTSxDQUFDO1lBQ2hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxNQUFNO2dCQUM1QixDQUFDLENBQUMsZ0RBQWdEO2dCQUNsRCxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ1QsQ0FBQztJQUNILENBQUM7d0dBNVJVLG9CQUFvQjs0RkFBcEIsb0JBQW9CLGdsQkNUakMsNjFSQWdUQTs7NEZEdlNhLG9CQUFvQjtrQkFMaEMsU0FBUzsrQkFDRSxxQkFBcUI7d0RBS3RCLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csRUFBRTtzQkFBVixLQUFLO2dCQUNHLEVBQUU7c0JBQVYsS0FBSztnQkFDRyxNQUFNO3NCQUFkLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLE9BQU87c0JBQWYsS0FBSztnQkFDRyxTQUFTO3NCQUFqQixLQUFLO2dCQUNHLFNBQVM7c0JBQWpCLEtBQUs7Z0JBQ0csWUFBWTtzQkFBcEIsS0FBSztnQkFDRyxjQUFjO3NCQUF0QixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0csTUFBTTtzQkFBZCxLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csV0FBVztzQkFBbkIsS0FBSztnQkFDRyxlQUFlO3NCQUF2QixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ0ksY0FBYztzQkFBdkIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCwgT3V0cHV0LCBFdmVudEVtaXR0ZXIsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YUZpbHRlclR5cGUsIElEYXRhRmlsdGVyIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi10YWJsZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWx0ZXJPcHRpb25zOiBJRGF0YUZpbHRlcltdID0gW107XG4gIEBJbnB1dCgpIHBkPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZz86IHN0cmluZztcbiAgQElucHV0KCkgaGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgYmdDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgYm94U2hhZG93Pzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlcnRpYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlcj86IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgbWF4RmlsdGVyTGVuZ3RoOiBudW1iZXIgPSAzO1xuICBASW5wdXQoKSBzYXZlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgQElucHV0KCkgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzYXZlQ2FsbGJhY2s/OiAoaXRlbXM6IElEYXRhRmlsdGVyW10pID0+IFByb21pc2U8dm9pZD47XG4gIEBPdXRwdXQoKSBmaWx0ZXJzQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVzZXRTb3J0RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBmaWx0ZXJBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRGaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGVkRmlsdGVyVHlwZTogRGF0YUZpbHRlclR5cGUgfCBudWxsID0gbnVsbDtcbiAgY29uZGl0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRDb25kaXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBpbnB1dFZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBzZWxlY3RlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgc2hvd0FsbEZpbHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZWRpdEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY2hlY2tBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNEdXBsaWNhdGVGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZUFkZEZpbHRlckJ0bjogYm9vbGVhbiA9IGZhbHNlO1xuICAvL2Rpc2FibGVBcHBseUZpbHRlckJ0bjogYm9vbGVhbiA9IHRydWU7XG4gIGR1cGxpY2F0ZU1lc3NhZ2U/OiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSW5zdGFuY2U6IENvbmZpZztcbiAgc3RvcmFnZUtleTogc3RyaW5nID0gJ3NhdmVkRmlsdGVycyc7XG4gIGZpbHRlckNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnSW5zdGFuY2UgPSBuZXcgQ29uZmlnKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckFycmF5ID0gdGhpcy5maWx0ZXJPcHRpb25zLm1hcCgoaXRlbSkgPT4gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIG9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlciA9IHRoaXMuZmlsdGVyT3B0aW9ucy5maW5kKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLm5hbWUgPT09IHNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgKTtcblxuICAgIGlmIChzZWxlY3RlZEZpbHRlcikge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBzZWxlY3RlZEZpbHRlci50eXBlO1xuICAgICAgdGhpcy5jb25kaXRpb25PcHRpb25zID1cbiAgICAgICAgdGhpcy5jb25maWdJbnN0YW5jZS5nZXRDb25kaXRpb25PcHRpb25zKHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlKSB8fCBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAvLyB0aGlzLnNhdmVkRmlsdGVycyA9IFtdO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGZhbHNlO1xuICAgIC8vIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdHJ1ZTtcbiAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSAnJztcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5jaGVja2VkID09PSB0cnVlLFxuICAgICkubGVuZ3RoO1xuICAgIHRoaXMucmVzZXRTb3J0RGF0YS5lbWl0KCk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnModHJ1ZSk7XG4gIH1cblxuICBhZGRGaWx0ZXIoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWRDb25kaXRpb24gfHxcbiAgICAgICF0aGlzLmlucHV0VmFsdWVcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGl0SW5kZXggPT09IG51bGwgJiYgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyAwMDowMCAyMzo1OVxuICAgIGlmIChcbiAgICAgICh0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSBhcyBEYXRhRmlsdGVyVHlwZSkgPT0gRGF0YUZpbHRlclR5cGUuRGF0ZSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9PSAnT24nXG4gICAgKSB7XG4gICAgICBjb25zdCBsZWZ0RmlsdGVyOiBJRGF0YUZpbHRlciA9IHtcbiAgICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZEZpbHRlclZhbHVlLFxuICAgICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSB8fCBEYXRhRmlsdGVyVHlwZS5TdHJpbmcsXG4gICAgICAgIGNvbmRpdGlvbjogJ0FmdGVyJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAwMDowMCcpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmlnaHRGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiAnQmVmb3JlJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAyMzo1OScpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZmlsdGVycyA9IFtsZWZ0RmlsdGVyLCByaWdodEZpbHRlcl07XG5cbiAgICAgIGZvciAobGV0IG5ld0ZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgIChmaWx0ZXIsIGluZGV4KSA9PlxuICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW3RoaXMuZWRpdEluZGV4XSA9IG5ld0ZpbHRlcjtcbiAgICAgICAgICB0aGlzLmVkaXRJbmRleCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSBuZXdGaWx0ZXIuY29uZGl0aW9uLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLnB1c2gobmV3RmlsdGVyKTtcbiAgICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAoZmlsdGVyLCBpbmRleCkgPT5cbiAgICAgICAgICAgIGZpbHRlci5uYW1lID09PSBuZXdGaWx0ZXIubmFtZSAmJlxuICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMuZWRpdEluZGV4LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmVkRmlsdGVyc1t0aGlzLmVkaXRJbmRleF0gPSBuZXdGaWx0ZXI7XG4gICAgICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgZmlsdGVyLm5hbWUgPT09IG5ld0ZpbHRlci5uYW1lICYmXG4gICAgICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IG5ld0ZpbHRlci5jb25kaXRpb24sXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xuICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgPT09IHRydWUsXG4gICAgICAgICkubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2xlYXJPcGVyYXRpb25TZWN0aW9uKCk7XG4gICAgLy8gdGhpcy5jaGVja0ZpbHRlckJ1dHRvbigpO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tib3goaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkID0gIXRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkO1xuICAgIHRoaXMuY2hlY2tBbGwgPSB0aGlzLnNhdmVkRmlsdGVycy5ldmVyeSgoaXRlbSkgPT4gaXRlbS5jaGVja2VkKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlRmlsdGVyKCk7XG4gICAgLy8gIHRoaXMuY2hlY2tGaWx0ZXJCdXR0b24oKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgICBpZiAodGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnNhdmVDYWxsYmFjaykge1xuICAgICAgdGhpcy5zYXZlQ2FsbGJhY2sodGhpcy5zYXZlZEZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IGZpbHRlci50eXBlO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9IGZpbHRlci5uYW1lO1xuICAgIHRoaXMub25GaWx0ZXJOYW1lQ2hhbmdlKHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9IGZpbHRlci5jb25kaXRpb247XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZmlsdGVyLnZhbHVlO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBhcHBseUZpbHRlcnMoc2tpcFNhdmU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jaGVja2VkKTtcbiAgICBpZiAodGhpcy5zYXZlQ2FsbGJhY2sgJiYgIXNraXBTYXZlKSB7XG4gICAgICB0aGlzLnNhdmVDYWxsYmFjayh0aGlzLnNhdmVkRmlsdGVycyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XG4gICAgdGhpcy5maWx0ZXJzQXBwbGllZC5lbWl0KHRoaXMuc3RvcmFnZUtleSk7XG4gIH1cblxuICB0b2dnbGVTaG93TW9yZSgpIHtcbiAgICB0aGlzLnNob3dBbGxGaWx0ZXJzID0gIXRoaXMuc2hvd0FsbEZpbHRlcnM7XG4gIH1cblxuICBnZXQgdmlzaWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbEZpbHRlcnNcbiAgICAgID8gdGhpcy5zYXZlZEZpbHRlcnNcbiAgICAgIDogdGhpcy5zYXZlZEZpbHRlcnMuc2xpY2UoMCwgdGhpcy5tYXhGaWx0ZXJMZW5ndGgpO1xuICB9XG5cbiAgY2xlYXJPcGVyYXRpb25TZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIC8vIGNoZWNrRmlsdGVyQnV0dG9uKCkge1xuICAvLyAgIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAvLyB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcbiAgICB0aGlzLnNhdmVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuY2hlY2tlZCA9IHRoaXMuY2hlY2tBbGwpKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGNoZWNrRHVwbGljYXRlRmlsdGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgKGZpbHRlciwgaW5kZXgpID0+XG4gICAgICAgICAgZmlsdGVyLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSAmJlxuICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gJiZcbiAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNhYmxlQWRkRmlsdGVyQnRuID0gZXhpc3RzO1xuICAgICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGV4aXN0cztcbiAgICAgIHRoaXMuZHVwbGljYXRlTWVzc2FnZSA9IGV4aXN0c1xuICAgICAgICA/ICdUaGlzIGVudHJ5IGlzIGEgZHVwbGljYXRlIGFuZCBjYW5ub3QgYmUgYWRkZWQuJ1xuICAgICAgICA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAoZmlsdGVyKSA9PlxuICAgICAgICAgIGZpbHRlci5uYW1lID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUgJiZcbiAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlzYWJsZUFkZEZpbHRlckJ0biA9IGV4aXN0cztcbiAgICAgIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIgPSBleGlzdHM7XG4gICAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSBleGlzdHNcbiAgICAgICAgPyAnVGhpcyBlbnRyeSBpcyBhIGR1cGxpY2F0ZSBhbmQgY2Fubm90IGJlIGFkZGVkLidcbiAgICAgICAgOiAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3JcIlxuICBbc3R5bGUuYm94LXNoYWRvd109XCJib3hTaGFkb3dcIlxuICBbc3R5bGUuYm9yZGVyXT1cImJvcmRlclwiXG4gIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIlxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gIFtzdHlsZS5wYWRkaW5nXT1cInBkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgIDxoMyBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiIFtzdHlsZS5mb250LXNpemVdPVwiJzE0cHgnXCI+XG4gICAgICBGaWx0ZXJzXG4gICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICA+PHN1cD4oe3sgZmlsdGVyQ291bnQgfX0pPC9zdXA+PC9zcGFuXG4gICAgICA+XG4gICAgPC9oMz5cbiAgICA8YnV0dG9uXG4gICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmdDb2xvclwiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuY3Vyc29yXT1cIidwb2ludGVyJ1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgID5cbiAgICAgIFJlc2V0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIFNhdmVkIEZpbHRlcnMgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXZlZFdyYXBwZXJcIj5cbiAgICAgIDxoMyBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiPlNhdmVkIEZpbHRlcnM8L2gzPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RBbGxXcmFwcGVyXCIgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tBbGxcIlxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCJcbiAgICAgIC8+XG4gICAgICA8cCBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiPlNlbGVjdCBBbGw8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiB2aXNpYmxlRmlsdGVyczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImNlbnRlcklubmVyV3JhcHBlclwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94V3JhcHBlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID48aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJmaWx0ZXIuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaSlcIlxuICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgPHBcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWx0ZXIubmFtZSB9fSB7eyBmaWx0ZXIuY29uZGl0aW9uIH19IHt7IGZpbHRlci52YWx1ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uV3JhcHBlclwiPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJwZW5jaWxcIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLWJvcmRlci1mb2N1cylcIlxuICAgICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSlcIlxuICAgICAgICAgIChjbGljayk9XCJlZGl0RmlsdGVyKGkpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICBpY29uPVwidHJhc2hcIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgc3Ryb2tlPVwidmFyKC0tdmJuLWNvbG9yLWVycm9yKVwiXG4gICAgICAgICAgKGNsaWNrKT1cImRlbGV0ZUZpbHRlcihpKVwiXG4gICAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXZcbiAgICAgIGNsYXNzPVwibW9yZVdyYXBwZXJcIlxuICAgICAgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoID4gbWF4RmlsdGVyTGVuZ3RoXCJcbiAgICAgIChjbGljayk9XCJ0b2dnbGVTaG93TW9yZSgpXCJcbiAgICA+XG4gICAgICA8cFxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0ZXJ0aWFyeUNvbG9yXCJcbiAgICAgID5cbiAgICAgICAge3sgc2hvd0FsbEZpbHRlcnMgPyBcIlNob3cgbGVzc1wiIDogXCJTaG93IG1vcmVcIiB9fVxuICAgICAgPC9wPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImNoZXZyb25cIlxuICAgICAgICBbd2lkdGhdPVwiOFwiXG4gICAgICAgIFtoZWlnaHRdPVwiNlwiXG4gICAgICAgIGZpbGw9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG4gIDxociAvPlxuXG4gIDwhLS0gT3BlcmF0aW9uIFNlY3Rpb24gLS0+XG4gIDxkaXYgY2xhc3M9XCJib3R0b21cIj5cbiAgICA8ZGl2IGNsYXNzPVwic2F2ZWRXcmFwcGVyXCI+XG4gICAgICA8aDMgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTNweCdcIj5PcGVyYXRpb248L2gzPlxuICAgICAgPGRpdiBbbmdTdHlsZV09XCJ7IHBvc2l0aW9uOiAncmVsYXRpdmUnIH1cIj5cbiAgICAgICAgPHZlcmJlbi10b29sdGlwXG4gICAgICAgICAgW3Rvb2x0aXBDb250ZW50XT1cInRvb2x0aXBUZW1wbGF0ZVwiXG4gICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KSdcIlxuICAgICAgICAgIHdpZHRoPVwiMjAwcHhcIlxuICAgICAgICAgIFt0b3BdPVwiJzIwcHgnXCJcbiAgICAgICAgICBbcmlnaHRdPVwiJzBweCdcIlxuICAgICAgICA+XG4gICAgICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgICAgIGljb249XCJpbmZvXCJcbiAgICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNEdXBsaWNhdGVGaWx0ZXJcIlxuICAgICAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci1lcnJvcilcIlxuICAgICAgICAgID5cbiAgICAgICAgICA8L3ZlcmJlbi1zdmc+XG4gICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+XG5cbiAgICAgICAgPG5nLXRlbXBsYXRlICN0b29sdGlwVGVtcGxhdGU+XG4gICAgICAgICAge3sgZHVwbGljYXRlTWVzc2FnZSB9fVxuICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8IS0tIDx2ZXJiZW4tdG9vbHRpcFxuICAgICAgICAgW2JhY2tncm91bmRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UtYWx0KSdcIlxuICAgICAgICAgW3RleHRDb2xvcl09XCIndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpJ1wiXG4gICAgICAgICBbcGFkZGluZ109XCInMTBweCdcIlxuICAgICAgICAgW2JvcmRlclJhZGl1c109XCInOHB4J1wiXG4gICAgICAgICBbdG9wXT1cIicyMHB4J1wiICAgICAgICAgICAgICAgICBcbiAgICAgICAgIFtyaWdodF09XCInMHB4J1wiICAgXG4gICAgICAgICB3aWR0aD1cIjI1MHB4XCIgXG4gICAgICAgICAjdG9vbHRpcCBcbiAgICAgICAgICpuZ0lmPVwidG9vbHRpcFwiXG4gICAgICAgICA+XG4gICAgICAgICA8aDM+e3tkdXBsaWNhdGVNZXNzYWdlfX08L2gzPlxuICAgICAgICA8L3ZlcmJlbi10b29sdGlwPiAtLT5cbiAgICAgIDwvZGl2PlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICAgICpuZ0lmPVwiIWlzRHVwbGljYXRlRmlsdGVyXCJcbiAgICAgID48L3ZlcmJlbi1zdmc+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2IGNsYXNzPVwiaW5wdXRzV3JhcHBlclwiPlxuICAgICAgPHZlcmJlbi1kcm9wLWRvd25cbiAgICAgICAgd2lkdGg9XCI3cmVtXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdmFsdWVcIlxuICAgICAgICBbb3B0aW9uc109XCJmaWx0ZXJBcnJheVwiXG4gICAgICAgIFsobmdNb2RlbCldPVwic2VsZWN0ZWRGaWx0ZXJWYWx1ZVwiXG4gICAgICAgIChuZ01vZGVsQ2hhbmdlKT1cIm9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlKVwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG4gICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICB3aWR0aD1cIjdyZW1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCB2YWx1ZVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHZhbHVlXCJcbiAgICAgICAgW29wdGlvbnNdPVwiY29uZGl0aW9uT3B0aW9uc1wiXG4gICAgICAgIChvbkNoYW5nZSk9XCJjaGVja0R1cGxpY2F0ZUZpbHRlcigpXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZENvbmRpdGlvblwiXG4gICAgICA+XG4gICAgICA8L3ZlcmJlbi1kcm9wLWRvd24+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnRGF0ZSdcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjgwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyNXB4XCJcbiAgICAgICAgcGQ9XCI2cHhcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgW3R5cGVdPVwiJ2RhdGUnXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICpuZ0lmPVwiXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnQ3JlZGl0JyB8fCBzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdJbnRlZ2VyJ1xuICAgICAgICBcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjEwMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICAgIHBkPVwiNnB4XCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJpbnB1dCBpbnRlZ2VyXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgIGFwcFZhbGlkYXRlPVwiaW50ZWdlclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ0RlY2ltYWwnXCJcbiAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgYSBkZWNpbWFsXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBhcHBWYWxpZGF0ZT1cImRlY2ltYWxcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdOdW1iZXInXCJcbiAgICAgICAgYm9yZGVyPVwiMXB4IHNvbGlkIHZhcigtLXZibi1jb2xvci1ib3JkZXIpXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgbnVtYmVyXCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cImZhbHNlXCJcbiAgICAgICAgdHlwZT1cIm51bWJlclwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgYXBwVmFsaWRhdGU9XCJudW1iZXJcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdDcmVkaXQnICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnRGF0ZScgJiZcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdJbnRlZ2VyJyAmJlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0RlY2ltYWwnICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnTnVtYmVyJ1xuICAgICAgICBcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cImlucHV0IHZhbHVlXCJcbiAgICAgICAgYm9yZGVyUmFkaXVzPVwiNXB4XCJcbiAgICAgICAgdGV4dENvbG9yPVwidmFyKC0tdmJuLWNvbG9yLXRleHQpXCJcbiAgICAgICAgd2lkdGg9XCIxMDBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJidG5XcmFwcGVyXCI+XG4gICAgICA8YnV0dG9uXG4gICAgICAgIFtzdHlsZS5tYXJnaW4tdG9wXT1cIicwLjVyZW0nXCJcbiAgICAgICAgW3N0eWxlLm91dGxpbmVdPVwiJ25vbmUnXCJcbiAgICAgICAgW3N0eWxlLmJvcmRlcl09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyLXJhZGl1c109XCJib3JkZXJSYWRpdXNcIlxuICAgICAgICBbc3R5bGUuYmFja2dyb3VuZC1jb2xvcl09XCIndHJhbnNwYXJlbnQnXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInNlY29uZGFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJzUwMCdcIlxuICAgICAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZUFkZEZpbHRlckJ0blwiXG4gICAgICAgIFtuZ0NsYXNzXT1cIntcbiAgICAgICAgICBkaXNhYmxlYnRuOiBkaXNhYmxlQWRkRmlsdGVyQnRuLFxuICAgICAgICAgIGVuYWJsZUJ0bjogIWRpc2FibGVBZGRGaWx0ZXJCdG4sXG4gICAgICAgIH1cIlxuICAgICAgICAoY2xpY2spPVwiYWRkRmlsdGVyKClcIlxuICAgICAgPlxuICAgICAgICArIEFkZFxuICAgICAgPC9idXR0b24+XG4gICAgPC9kaXY+XG4gICAgPGhyIC8+XG5cbiAgICA8ZGl2IGNsYXNzPVwiYnRuV3JhcHBlclwiPlxuICAgICAgPGJ1dHRvblxuICAgICAgICBbc3R5bGUubWFyZ2luLXRvcF09XCInMC41cmVtJ1wiXG4gICAgICAgIFtzdHlsZS5vdXRsaW5lXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5ib3JkZXJdPVwiJ25vbmUnXCJcbiAgICAgICAgW3N0eWxlLnBhZGRpbmddPVwiJzAuMnJlbSAxLjZyZW0nXCJcbiAgICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwicHJpbWFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRlcnRpYXJ5Q29sb3JcIlxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNjAwJ1wiXG4gICAgICAgIChjbGljayk9XCJhcHBseUZpbHRlcnMoKVwiXG4gICAgICA+XG4gICAgICAgIENvbmZpcm1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvc2VjdGlvbj5cbiJdfQ==
|
|
284
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFibGUtZmlsdGVyLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL2NvbXBvbmVudHMvdGFibGUtZmlsdGVyL3RhYmxlLWZpbHRlci5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy92ZXJiZW4tbmctdWkvc3JjL2xpYi9jb21wb25lbnRzL3RhYmxlLWZpbHRlci90YWJsZS1maWx0ZXIuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxFQUFFLFlBQVksRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMvRSxPQUFPLEVBQUUsY0FBYyxFQUFlLE1BQU0sNkJBQTZCLENBQUM7QUFDMUUsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLDZCQUE2QixDQUFDOzs7Ozs7Ozs7QUFPckQsTUFBTSxPQUFPLG9CQUFvQjtJQUN0QixhQUFhLEdBQWtCLEVBQUUsQ0FBQztJQUNsQyxFQUFFLENBQVU7SUFDWixFQUFFLENBQVU7SUFDWixNQUFNLENBQVU7SUFDaEIsS0FBSyxDQUFVO0lBQ2YsT0FBTyxDQUFVO0lBQ2pCLFNBQVMsQ0FBVTtJQUNuQixTQUFTLENBQVU7SUFDbkIsWUFBWSxDQUFVO0lBQ3RCLGNBQWMsQ0FBVTtJQUN4QixhQUFhLENBQVU7SUFDdkIsTUFBTSxDQUFVO0lBQ2hCLFlBQVksQ0FBVTtJQUN0QixXQUFXLENBQVU7SUFDckIsZUFBZSxHQUFXLENBQUMsQ0FBQztJQUM1QixZQUFZLEdBQWtCLEVBQUUsQ0FBQztJQUNqQyxPQUFPLEdBQVksS0FBSyxDQUFDO0lBQ3pCLFlBQVksQ0FBMkM7SUFDdEQsY0FBYyxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDekMsYUFBYSxHQUFHLElBQUksWUFBWSxFQUFPLENBQUM7SUFDbEQs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IE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRGF0YUZpbHRlclR5cGUsIElEYXRhRmlsdGVyIH0gZnJvbSAndmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzJztcbmltcG9ydCB7IENvbmZpZyB9IGZyb20gJ3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ3ZlcmJlbi10YWJsZS1maWx0ZXInLFxuICB0ZW1wbGF0ZVVybDogJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vdGFibGUtZmlsdGVyLmNvbXBvbmVudC5jc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgVGFibGVGaWx0ZXJDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICBASW5wdXQoKSBmaWx0ZXJPcHRpb25zOiBJRGF0YUZpbHRlcltdID0gW107XG4gIEBJbnB1dCgpIHBkPzogc3RyaW5nO1xuICBASW5wdXQoKSBtZz86IHN0cmluZztcbiAgQElucHV0KCkgaGVpZ2h0Pzogc3RyaW5nO1xuICBASW5wdXQoKSB3aWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgYmdDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgYm94U2hhZG93Pzogc3RyaW5nO1xuICBASW5wdXQoKSB0ZXh0Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHByaW1hcnlDb2xvcj86IHN0cmluZztcbiAgQElucHV0KCkgc2Vjb25kYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIHRlcnRpYXJ5Q29sb3I/OiBzdHJpbmc7XG4gIEBJbnB1dCgpIGJvcmRlcj86IHN0cmluZztcbiAgQElucHV0KCkgYm9yZGVyUmFkaXVzPzogc3RyaW5nO1xuICBASW5wdXQoKSBzZWxlY3RXaWR0aD86IHN0cmluZztcbiAgQElucHV0KCkgbWF4RmlsdGVyTGVuZ3RoOiBudW1iZXIgPSAzO1xuICBASW5wdXQoKSBzYXZlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgQElucHV0KCkgdG9vbHRpcDogYm9vbGVhbiA9IGZhbHNlO1xuICBASW5wdXQoKSBzYXZlQ2FsbGJhY2s/OiAoaXRlbXM6IElEYXRhRmlsdGVyW10pID0+IFByb21pc2U8dm9pZD47XG4gIEBPdXRwdXQoKSBmaWx0ZXJzQXBwbGllZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBAT3V0cHV0KCkgcmVzZXRTb3J0RGF0YSA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpO1xuICBmaWx0ZXJBcnJheTogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRGaWx0ZXJWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHNlbGVjdGVkRmlsdGVyVHlwZTogRGF0YUZpbHRlclR5cGUgfCBudWxsID0gbnVsbDtcbiAgY29uZGl0aW9uT3B0aW9uczogc3RyaW5nW10gPSBbXTtcbiAgc2VsZWN0ZWRDb25kaXRpb246IHN0cmluZyB8IHVuZGVmaW5lZCA9ICcnO1xuICBpbnB1dFZhbHVlPzogc3RyaW5nIHwgbnVtYmVyO1xuICBzZWxlY3RlZEZpbHRlcnM6IElEYXRhRmlsdGVyW10gPSBbXTtcbiAgc2hvd0FsbEZpbHRlcnM6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZWRpdEluZGV4OiBudW1iZXIgfCBudWxsID0gbnVsbDtcbiAgY2hlY2tBbGw6IGJvb2xlYW4gPSBmYWxzZTtcbiAgaXNEdXBsaWNhdGVGaWx0ZXI6IGJvb2xlYW4gPSBmYWxzZTtcbiAgZGlzYWJsZUFkZEZpbHRlckJ0bjogYm9vbGVhbiA9IGZhbHNlO1xuICAvL2Rpc2FibGVBcHBseUZpbHRlckJ0bjogYm9vbGVhbiA9IHRydWU7XG4gIGR1cGxpY2F0ZU1lc3NhZ2U/OiBzdHJpbmcgPSAnJztcbiAgY29uZmlnSW5zdGFuY2U6IENvbmZpZztcbiAgc3RvcmFnZUtleTogc3RyaW5nID0gJ3NhdmVkRmlsdGVycyc7XG4gIGZpbHRlckNvdW50OiBudW1iZXIgPSAwO1xuXG4gIGNvbnN0cnVjdG9yKCkge1xuICAgIHRoaXMuY29uZmlnSW5zdGFuY2UgPSBuZXcgQ29uZmlnKCk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmZpbHRlckFycmF5ID0gdGhpcy5maWx0ZXJPcHRpb25zLm1hcCgoaXRlbSkgPT4gaXRlbS5uYW1lKTtcbiAgfVxuXG4gIG9uRmlsdGVyTmFtZUNoYW5nZShzZWxlY3RlZEZpbHRlclZhbHVlOiBzdHJpbmcpIHtcbiAgICBjb25zdCBzZWxlY3RlZEZpbHRlciA9IHRoaXMuZmlsdGVyT3B0aW9ucy5maW5kKFxuICAgICAgKG9wdGlvbikgPT4gb3B0aW9uLm5hbWUgPT09IHNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgKTtcblxuICAgIGlmIChzZWxlY3RlZEZpbHRlcikge1xuICAgICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBzZWxlY3RlZEZpbHRlci50eXBlO1xuICAgICAgdGhpcy5jb25kaXRpb25PcHRpb25zID1cbiAgICAgICAgdGhpcy5jb25maWdJbnN0YW5jZS5nZXRDb25kaXRpb25PcHRpb25zKHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlKSB8fCBbXTtcbiAgICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB9XG4gIH1cblxuICByZXNldEZpbHRlcnMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZEZpbHRlclR5cGUgPSBudWxsO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgICAvLyB0aGlzLnNhdmVkRmlsdGVycyA9IFtdO1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLmZvckVhY2goKHgpID0+IHtcbiAgICAgIHguY2hlY2tlZCA9IGZhbHNlO1xuICAgIH0pO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGZhbHNlO1xuICAgIC8vIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdHJ1ZTtcbiAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSAnJztcbiAgICBsb2NhbFN0b3JhZ2UucmVtb3ZlSXRlbSh0aGlzLnN0b3JhZ2VLZXkpO1xuICAgIHRoaXMuZmlsdGVyQ291bnQgPSB0aGlzLnNhdmVkRmlsdGVycy5maWx0ZXIoXG4gICAgICAoaXRlbSkgPT4gaXRlbS5jaGVja2VkID09PSB0cnVlLFxuICAgICkubGVuZ3RoO1xuICAgIHRoaXMucmVzZXRTb3J0RGF0YS5lbWl0KCk7XG4gICAgdGhpcy5hcHBseUZpbHRlcnModHJ1ZSk7XG4gIH1cblxuICBhZGRGaWx0ZXIoKSB7XG4gICAgaWYgKFxuICAgICAgIXRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSB8fFxuICAgICAgIXRoaXMuc2VsZWN0ZWRDb25kaXRpb24gfHxcbiAgICAgICF0aGlzLmlucHV0VmFsdWVcbiAgICApIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG5cbiAgICBpZiAodGhpcy5lZGl0SW5kZXggPT09IG51bGwgJiYgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlcikge1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICAvLyAwMDowMCAyMzo1OVxuICAgIGlmIChcbiAgICAgICh0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSBhcyBEYXRhRmlsdGVyVHlwZSkgPT0gRGF0YUZpbHRlclR5cGUuRGF0ZSAmJlxuICAgICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9PSAnT24nXG4gICAgKSB7XG4gICAgICBjb25zdCBsZWZ0RmlsdGVyOiBJRGF0YUZpbHRlciA9IHtcbiAgICAgICAgbmFtZTogdGhpcy5zZWxlY3RlZEZpbHRlclZhbHVlLFxuICAgICAgICB0eXBlOiB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSB8fCBEYXRhRmlsdGVyVHlwZS5TdHJpbmcsXG4gICAgICAgIGNvbmRpdGlvbjogJ0FmdGVyJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAwMDowMCcpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgcmlnaHRGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiAnQmVmb3JlJyxcbiAgICAgICAgdmFsdWU6ICh0aGlzLmlucHV0VmFsdWUgYXMgc3RyaW5nKS5jb25jYXQoJyAyMzo1OScpLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgY29uc3QgZmlsdGVycyA9IFtsZWZ0RmlsdGVyLCByaWdodEZpbHRlcl07XG5cbiAgICAgIGZvciAobGV0IG5ld0ZpbHRlciBvZiBmaWx0ZXJzKSB7XG4gICAgICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgIChmaWx0ZXIsIGluZGV4KSA9PlxuICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICAgICAgKTtcblxuICAgICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW3RoaXMuZWRpdEluZGV4XSA9IG5ld0ZpbHRlcjtcbiAgICAgICAgICB0aGlzLmVkaXRJbmRleCA9IG51bGw7XG4gICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgaWYgKFxuICAgICAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgICBmaWx0ZXIubmFtZSA9PT0gbmV3RmlsdGVyLm5hbWUgJiZcbiAgICAgICAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSBuZXdGaWx0ZXIuY29uZGl0aW9uLFxuICAgICAgICAgICAgKVxuICAgICAgICAgICkge1xuICAgICAgICAgICAgY29udGludWU7XG4gICAgICAgICAgfVxuICAgICAgICAgIHRoaXMuc2F2ZWRGaWx0ZXJzLnB1c2gobmV3RmlsdGVyKTtcbiAgICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICAgICAgICApLmxlbmd0aDtcbiAgICAgICAgfVxuICAgICAgfVxuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBuZXdGaWx0ZXI6IElEYXRhRmlsdGVyID0ge1xuICAgICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUsXG4gICAgICAgIHR5cGU6IHRoaXMuc2VsZWN0ZWRGaWx0ZXJUeXBlIHx8IERhdGFGaWx0ZXJUeXBlLlN0cmluZyxcbiAgICAgICAgY29uZGl0aW9uOiB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgICB2YWx1ZTogdGhpcy5pbnB1dFZhbHVlLFxuICAgICAgICBjaGVja2VkOiB0cnVlLFxuICAgICAgfTtcblxuICAgICAgaWYgKHRoaXMuZWRpdEluZGV4ICE9PSBudWxsKSB7XG4gICAgICAgIGNvbnN0IGlzRHVwbGljYXRlID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgICAoZmlsdGVyLCBpbmRleCkgPT5cbiAgICAgICAgICAgIGZpbHRlci5uYW1lID09PSBuZXdGaWx0ZXIubmFtZSAmJlxuICAgICAgICAgICAgZmlsdGVyLmNvbmRpdGlvbiA9PT0gbmV3RmlsdGVyLmNvbmRpdGlvbiAmJlxuICAgICAgICAgICAgaW5kZXggIT09IHRoaXMuZWRpdEluZGV4LFxuICAgICAgICApO1xuXG4gICAgICAgIGlmIChpc0R1cGxpY2F0ZSkge1xuICAgICAgICAgIHJldHVybjtcbiAgICAgICAgfVxuICAgICAgICB0aGlzLnNhdmVkRmlsdGVyc1t0aGlzLmVkaXRJbmRleF0gPSBuZXdGaWx0ZXI7XG4gICAgICAgIHRoaXMuZWRpdEluZGV4ID0gbnVsbDtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIGlmIChcbiAgICAgICAgICB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAgICAgKGZpbHRlcikgPT5cbiAgICAgICAgICAgICAgZmlsdGVyLm5hbWUgPT09IG5ld0ZpbHRlci5uYW1lICYmXG4gICAgICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IG5ld0ZpbHRlci5jb25kaXRpb24sXG4gICAgICAgICAgKVxuICAgICAgICApIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5zYXZlZEZpbHRlcnMucHVzaChuZXdGaWx0ZXIpO1xuICAgICAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgICAgIChpdGVtKSA9PiBpdGVtLmNoZWNrZWQgPT09IHRydWUsXG4gICAgICAgICkubGVuZ3RoO1xuICAgICAgfVxuICAgIH1cblxuICAgIHRoaXMuY2xlYXJPcGVyYXRpb25TZWN0aW9uKCk7XG4gICAgLy8gdGhpcy5jaGVja0ZpbHRlckJ1dHRvbigpO1xuICB9XG5cbiAgdG9nZ2xlQ2hlY2tib3goaW5kZXg6IG51bWJlcikge1xuICAgIHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkID0gIXRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XS5jaGVja2VkO1xuICAgIHRoaXMuY2hlY2tBbGwgPSB0aGlzLnNhdmVkRmlsdGVycy5ldmVyeSgoaXRlbSkgPT4gaXRlbS5jaGVja2VkKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGRlbGV0ZUZpbHRlcihpbmRleDogbnVtYmVyKSB7XG4gICAgdGhpcy5zYXZlZEZpbHRlcnMuc3BsaWNlKGluZGV4LCAxKTtcbiAgICB0aGlzLmNoZWNrRHVwbGljYXRlRmlsdGVyKCk7XG4gICAgLy8gIHRoaXMuY2hlY2tGaWx0ZXJCdXR0b24oKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgICBpZiAodGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwKSB7XG4gICAgICB0aGlzLmNoZWNrQWxsID0gZmFsc2U7XG4gICAgfVxuICAgIGlmICh0aGlzLnNhdmVDYWxsYmFjaykge1xuICAgICAgdGhpcy5zYXZlQ2FsbGJhY2sodGhpcy5zYXZlZEZpbHRlcnMpO1xuICAgIH1cbiAgfVxuXG4gIGVkaXRGaWx0ZXIoaW5kZXg6IG51bWJlcikge1xuICAgIGNvbnN0IGZpbHRlciA9IHRoaXMuc2F2ZWRGaWx0ZXJzW2luZGV4XTtcbiAgICB0aGlzLnNlbGVjdGVkRmlsdGVyVHlwZSA9IGZpbHRlci50eXBlO1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9IGZpbHRlci5uYW1lO1xuICAgIHRoaXMub25GaWx0ZXJOYW1lQ2hhbmdlKHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSk7XG4gICAgdGhpcy5zZWxlY3RlZENvbmRpdGlvbiA9IGZpbHRlci5jb25kaXRpb247XG4gICAgdGhpcy5pbnB1dFZhbHVlID0gZmlsdGVyLnZhbHVlO1xuICAgIHRoaXMuZWRpdEluZGV4ID0gaW5kZXg7XG4gIH1cblxuICBhcHBseUZpbHRlcnMoc2tpcFNhdmU6IGJvb2xlYW4gPSBmYWxzZSkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKChmaWx0ZXIpID0+IGZpbHRlci5jaGVja2VkKTtcbiAgICBpZiAodGhpcy5zYXZlQ2FsbGJhY2sgJiYgIXNraXBTYXZlKSB7XG4gICAgICB0aGlzLnNhdmVDYWxsYmFjayh0aGlzLnNhdmVkRmlsdGVycyk7XG4gICAgfVxuICAgIHRoaXMuZmlsdGVyc0FwcGxpZWQuZW1pdCh0aGlzLnNlbGVjdGVkRmlsdGVycyk7XG4gICAgdGhpcy5maWx0ZXJzQXBwbGllZC5lbWl0KHRoaXMuc3RvcmFnZUtleSk7XG4gIH1cblxuICB0b2dnbGVTaG93TW9yZSgpIHtcbiAgICB0aGlzLnNob3dBbGxGaWx0ZXJzID0gIXRoaXMuc2hvd0FsbEZpbHRlcnM7XG4gIH1cblxuICBnZXQgdmlzaWJsZUZpbHRlcnMoKSB7XG4gICAgcmV0dXJuIHRoaXMuc2hvd0FsbEZpbHRlcnNcbiAgICAgID8gdGhpcy5zYXZlZEZpbHRlcnNcbiAgICAgIDogdGhpcy5zYXZlZEZpbHRlcnMuc2xpY2UoMCwgdGhpcy5tYXhGaWx0ZXJMZW5ndGgpO1xuICB9XG5cbiAgY2xlYXJPcGVyYXRpb25TZWN0aW9uKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSA9ICcnO1xuICAgIHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gPSAnJztcbiAgICB0aGlzLmlucHV0VmFsdWUgPSAnJztcbiAgfVxuXG4gIC8vIGNoZWNrRmlsdGVyQnV0dG9uKCkge1xuICAvLyAgIHRoaXMuZGlzYWJsZUFwcGx5RmlsdGVyQnRuID0gdGhpcy5zYXZlZEZpbHRlcnMubGVuZ3RoID09PSAwO1xuICAvLyB9XG5cbiAgdG9nZ2xlU2VsZWN0QWxsKCk6IHZvaWQge1xuICAgIHRoaXMuY2hlY2tBbGwgPSAhdGhpcy5jaGVja0FsbDtcbiAgICB0aGlzLnNhdmVkRmlsdGVycy5mb3JFYWNoKChmaWx0ZXIpID0+IChmaWx0ZXIuY2hlY2tlZCA9IHRoaXMuY2hlY2tBbGwpKTtcbiAgICB0aGlzLmZpbHRlckNvdW50ID0gdGhpcy5zYXZlZEZpbHRlcnMuZmlsdGVyKFxuICAgICAgKGl0ZW0pID0+IGl0ZW0uY2hlY2tlZCA9PT0gdHJ1ZSxcbiAgICApLmxlbmd0aDtcbiAgfVxuXG4gIGNoZWNrRHVwbGljYXRlRmlsdGVyKCk6IHZvaWQge1xuICAgIGlmICh0aGlzLmVkaXRJbmRleCAhPT0gbnVsbCkge1xuICAgICAgY29uc3QgZXhpc3RzID0gdGhpcy5zYXZlZEZpbHRlcnMuc29tZShcbiAgICAgICAgKGZpbHRlciwgaW5kZXgpID0+XG4gICAgICAgICAgZmlsdGVyLm5hbWUgPT09IHRoaXMuc2VsZWN0ZWRGaWx0ZXJWYWx1ZSAmJlxuICAgICAgICAgIGZpbHRlci5jb25kaXRpb24gPT09IHRoaXMuc2VsZWN0ZWRDb25kaXRpb24gJiZcbiAgICAgICAgICBpbmRleCAhPT0gdGhpcy5lZGl0SW5kZXgsXG4gICAgICApO1xuICAgICAgdGhpcy5kaXNhYmxlQWRkRmlsdGVyQnRuID0gZXhpc3RzO1xuICAgICAgdGhpcy5pc0R1cGxpY2F0ZUZpbHRlciA9IGV4aXN0cztcbiAgICAgIHRoaXMuZHVwbGljYXRlTWVzc2FnZSA9IGV4aXN0c1xuICAgICAgICA/ICdUaGlzIGVudHJ5IGlzIGEgZHVwbGljYXRlIGFuZCBjYW5ub3QgYmUgYWRkZWQuJ1xuICAgICAgICA6ICcnO1xuICAgIH0gZWxzZSB7XG4gICAgICBjb25zdCBleGlzdHMgPSB0aGlzLnNhdmVkRmlsdGVycy5zb21lKFxuICAgICAgICAoZmlsdGVyKSA9PlxuICAgICAgICAgIGZpbHRlci5uYW1lID09PSB0aGlzLnNlbGVjdGVkRmlsdGVyVmFsdWUgJiZcbiAgICAgICAgICBmaWx0ZXIuY29uZGl0aW9uID09PSB0aGlzLnNlbGVjdGVkQ29uZGl0aW9uLFxuICAgICAgKTtcbiAgICAgIHRoaXMuZGlzYWJsZUFkZEZpbHRlckJ0biA9IGV4aXN0cztcbiAgICAgIHRoaXMuaXNEdXBsaWNhdGVGaWx0ZXIgPSBleGlzdHM7XG4gICAgICB0aGlzLmR1cGxpY2F0ZU1lc3NhZ2UgPSBleGlzdHNcbiAgICAgICAgPyAnVGhpcyBlbnRyeSBpcyBhIGR1cGxpY2F0ZSBhbmQgY2Fubm90IGJlIGFkZGVkLidcbiAgICAgICAgOiAnJztcbiAgICB9XG4gIH1cbn1cbiIsIjxzZWN0aW9uXG4gIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cImJnQ29sb3JcIlxuICBbc3R5bGUuYm94LXNoYWRvd109XCJib3hTaGFkb3dcIlxuICBbc3R5bGUuYm9yZGVyXT1cImJvcmRlclwiXG4gIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gIFtzdHlsZS5jb2xvcl09XCJ0ZXh0Q29sb3JcIlxuICBbc3R5bGUud2lkdGhdPVwid2lkdGhcIlxuICBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiXG4gIFtzdHlsZS5wYWRkaW5nXT1cInBkXCJcbj5cbiAgPGRpdiBjbGFzcz1cInRvcFwiPlxuICAgIDxoMyBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiIFtzdHlsZS5mb250LXNpemVdPVwiJzE0cHgnXCI+XG4gICAgICBGaWx0ZXJzXG4gICAgICA8c3BhbiBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICA+PHN1cD4oe3sgZmlsdGVyQ291bnQgfX0pPC9zdXA+PC9zcGFuXG4gICAgICA+XG4gICAgPC9oMz5cbiAgICA8YnV0dG9uXG4gICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgW3N0eWxlLmJhY2tncm91bmQtY29sb3JdPVwiYmdDb2xvclwiXG4gICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICBbc3R5bGUuY3Vyc29yXT1cIidwb2ludGVyJ1wiXG4gICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAoY2xpY2spPVwicmVzZXRGaWx0ZXJzKClcIlxuICAgID5cbiAgICAgIFJlc2V0XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuICA8aHIgLz5cblxuICA8IS0tIFNhdmVkIEZpbHRlcnMgU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImNlbnRlclwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXZlZFdyYXBwZXJcIj5cbiAgICAgIDxoMyBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiPlNhdmVkIEZpbHRlcnM8L2gzPlxuICAgICAgPHZlcmJlbi1zdmdcbiAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICBbd2lkdGhdPVwiMTVcIlxuICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0LW11dGVkKVwiXG4gICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICAgIDxkaXYgY2xhc3M9XCJzZWxlY3RBbGxXcmFwcGVyXCIgKm5nSWY9XCJzYXZlZEZpbHRlcnMubGVuZ3RoXCI+XG4gICAgICA8aW5wdXRcbiAgICAgICAgdHlwZT1cImNoZWNrYm94XCJcbiAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tBbGxcIlxuICAgICAgICAoY2hhbmdlKT1cInRvZ2dsZVNlbGVjdEFsbCgpXCJcbiAgICAgIC8+XG4gICAgICA8cCBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiPlNlbGVjdCBBbGw8L3A+XG4gICAgPC9kaXY+XG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZpbHRlciBvZiB2aXNpYmxlRmlsdGVyczsgbGV0IGkgPSBpbmRleFwiXG4gICAgICBjbGFzcz1cImNlbnRlcklubmVyV3JhcHBlclwiXG4gICAgPlxuICAgICAgPGRpdiBjbGFzcz1cImNoZWNrYm94V3JhcHBlclwiPlxuICAgICAgICA8c3BhblxuICAgICAgICAgID48aW5wdXRcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXG4gICAgICAgICAgICBbY2hlY2tlZF09XCJmaWx0ZXIuY2hlY2tlZFwiXG4gICAgICAgICAgICAoY2xpY2spPVwidG9nZ2xlQ2hlY2tib3goaSlcIlxuICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgPHBcbiAgICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiXG4gICAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgICBbc3R5bGUuY29sb3JdPVwidGVydGlhcnlDb2xvclwiXG4gICAgICAgID5cbiAgICAgICAgICB7eyBmaWx0ZXIubmFtZSB9fSB7eyBmaWx0ZXIuY29uZGl0aW9uIH19IHt7IGZpbHRlci52YWx1ZSB9fVxuICAgICAgICA8L3A+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxkaXYgY2xhc3M9XCJpY29uV3JhcHBlclwiPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJwZW5jaWxcIlxuICAgICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgICAgW2hlaWdodF09XCIxNVwiXG4gICAgICAgICAgc3Ryb2tlPVwiYmxhY2tcIlxuICAgICAgICAgIGZpbGw9XCJibGFja1wiXG4gICAgICAgICAgKGNsaWNrKT1cImVkaXRGaWx0ZXIoaSlcIlxuICAgICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgIGljb249XCJ0cmFzaFwiXG4gICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICBbaGVpZ2h0XT1cIjE1XCJcbiAgICAgICAgICBzdHJva2U9XCJ2YXIoLS12Ym4tY29sb3ItZXJyb3IpXCJcbiAgICAgICAgICAoY2xpY2spPVwiZGVsZXRlRmlsdGVyKGkpXCJcbiAgICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgY2xhc3M9XCJtb3JlV3JhcHBlclwiXG4gICAgICAqbmdJZj1cInNhdmVkRmlsdGVycy5sZW5ndGggPiBtYXhGaWx0ZXJMZW5ndGhcIlxuICAgICAgKGNsaWNrKT1cInRvZ2dsZVNob3dNb3JlKClcIlxuICAgID5cbiAgICAgIDxwXG4gICAgICAgIFtzdHlsZS5mb250LXNpemVdPVwiJzEycHgnXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtd2VpZ2h0XT1cIic1MDAnXCJcbiAgICAgICAgW3N0eWxlLmNvbG9yXT1cInRlcnRpYXJ5Q29sb3JcIlxuICAgICAgPlxuICAgICAgICB7eyBzaG93QWxsRmlsdGVycyA/IFwiU2hvdyBsZXNzXCIgOiBcIlNob3cgbW9yZVwiIH19XG4gICAgICA8L3A+XG4gICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICBpY29uPVwiY2hldnJvblwiXG4gICAgICAgIFt3aWR0aF09XCI4XCJcbiAgICAgICAgW2hlaWdodF09XCI2XCJcbiAgICAgICAgZmlsbD1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgIHN0cm9rZT1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICA+PC92ZXJiZW4tc3ZnPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbiAgPGhyIC8+XG5cbiAgPCEtLSBPcGVyYXRpb24gU2VjdGlvbiAtLT5cbiAgPGRpdiBjbGFzcz1cImJvdHRvbVwiPlxuICAgIDxkaXYgY2xhc3M9XCJzYXZlZFdyYXBwZXJcIj5cbiAgICAgIDxoMyBbc3R5bGUuZm9udC1zaXplXT1cIicxM3B4J1wiPk9wZXJhdGlvbjwvaDM+XG4gICAgICA8ZGl2IFtuZ1N0eWxlXT1cInsgcG9zaXRpb246ICdyZWxhdGl2ZScgfVwiPlxuICAgICAgICA8dmVyYmVuLXRvb2x0aXBcbiAgICAgICAgICBbdG9vbHRpcENvbnRlbnRdPVwidG9vbHRpcFRlbXBsYXRlXCJcbiAgICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpJ1wiXG4gICAgICAgICAgd2lkdGg9XCIyMDBweFwiXG4gICAgICAgICAgW3RvcF09XCInMjBweCdcIlxuICAgICAgICAgIFtyaWdodF09XCInMHB4J1wiXG4gICAgICAgID5cbiAgICAgICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICAgICAgaWNvbj1cImluZm9cIlxuICAgICAgICAgICAgW3dpZHRoXT1cIjE1XCJcbiAgICAgICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICAgICAgKm5nSWY9XCJpc0R1cGxpY2F0ZUZpbHRlclwiXG4gICAgICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLWVycm9yKVwiXG4gICAgICAgICAgPlxuICAgICAgICAgIDwvdmVyYmVuLXN2Zz5cbiAgICAgICAgPC92ZXJiZW4tdG9vbHRpcD5cblxuICAgICAgICA8bmctdGVtcGxhdGUgI3Rvb2x0aXBUZW1wbGF0ZT5cbiAgICAgICAgICB7eyBkdXBsaWNhdGVNZXNzYWdlIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwhLS0gPHZlcmJlbi10b29sdGlwXG4gICAgICAgICBbYmFja2dyb3VuZENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZS1hbHQpJ1wiXG4gICAgICAgICBbdGV4dENvbG9yXT1cIid2YXIoLS12Ym4tY29sb3Itc3VyZmFjZSknXCJcbiAgICAgICAgIFtwYWRkaW5nXT1cIicxMHB4J1wiXG4gICAgICAgICBbYm9yZGVyUmFkaXVzXT1cIic4cHgnXCJcbiAgICAgICAgIFt0b3BdPVwiJzIwcHgnXCIgICAgICAgICAgICAgICAgIFxuICAgICAgICAgW3JpZ2h0XT1cIicwcHgnXCIgICBcbiAgICAgICAgIHdpZHRoPVwiMjUwcHhcIiBcbiAgICAgICAgICN0b29sdGlwIFxuICAgICAgICAgKm5nSWY9XCJ0b29sdGlwXCJcbiAgICAgICAgID5cbiAgICAgICAgIDxoMz57e2R1cGxpY2F0ZU1lc3NhZ2V9fTwvaDM+XG4gICAgICAgIDwvdmVyYmVuLXRvb2x0aXA+IC0tPlxuICAgICAgPC9kaXY+XG4gICAgICA8dmVyYmVuLXN2Z1xuICAgICAgICBpY29uPVwiaW5mb1wiXG4gICAgICAgIFt3aWR0aF09XCIxNVwiXG4gICAgICAgIFtoZWlnaHRdPVwiMTVcIlxuICAgICAgICBmaWxsPVwidmFyKC0tdmJuLWNvbG9yLXRleHQtbXV0ZWQpXCJcbiAgICAgICAgKm5nSWY9XCIhaXNEdXBsaWNhdGVGaWx0ZXJcIlxuICAgICAgPjwvdmVyYmVuLXN2Zz5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgY2xhc3M9XCJpbnB1dHNXcmFwcGVyXCI+XG4gICAgICA8dmVyYmVuLWRyb3AtZG93blxuICAgICAgICB3aWR0aD1cIjdyZW1cIlxuICAgICAgICBwbGFjZWhvbGRlcj1cIlNlbGVjdCB2YWx1ZVwiXG4gICAgICAgIFtvcHRpb25zXT1cImZpbHRlckFycmF5XCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWxlY3RlZEZpbHRlclZhbHVlXCJcbiAgICAgICAgKG5nTW9kZWxDaGFuZ2UpPVwib25GaWx0ZXJOYW1lQ2hhbmdlKHNlbGVjdGVkRmlsdGVyVmFsdWUpXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cbiAgICAgIDx2ZXJiZW4tZHJvcC1kb3duXG4gICAgICAgIHdpZHRoPVwiN3JlbVwiXG4gICAgICAgIHBsYWNlaG9sZGVyPVwiU2VsZWN0IHZhbHVlXCJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWxlY3QgdmFsdWVcIlxuICAgICAgICBbb3B0aW9uc109XCJjb25kaXRpb25PcHRpb25zXCJcbiAgICAgICAgKG9uQ2hhbmdlKT1cImNoZWNrRHVwbGljYXRlRmlsdGVyKClcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cInNlbGVjdGVkQ29uZGl0aW9uXCJcbiAgICAgID5cbiAgICAgIDwvdmVyYmVuLWRyb3AtZG93bj5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdEYXRlJ1wiXG4gICAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItYm9yZGVyKVwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgIHdpZHRoPVwiODBweFwiXG4gICAgICAgIGhlaWdodD1cIjI1cHhcIlxuICAgICAgICBwZD1cIjZweFwiXG4gICAgICAgIFtzaG93Qm9yZGVyXT1cInRydWVcIlxuICAgICAgICBbc2hvd0Vycm9yTWVzc2FnZV09XCJ0cnVlXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBbdHlwZV09XCInZGF0ZSdcIlxuICAgICAgICBbKG5nTW9kZWwpXT1cImlucHV0VmFsdWVcIlxuICAgICAgPjwvdmVyYmVuYS1pbnB1dD5cblxuICAgICAgPHZlcmJlbmEtaW5wdXRcbiAgICAgICAgKm5nSWY9XCJcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgPT09ICdDcmVkaXQnIHx8IHNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ0ludGVnZXInXG4gICAgICAgIFwiXG4gICAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItYm9yZGVyKVwiXG4gICAgICAgIGJvcmRlclJhZGl1cz1cIjVweFwiXG4gICAgICAgIHRleHRDb2xvcj1cInZhcigtLXZibi1jb2xvci10ZXh0KVwiXG4gICAgICAgIHdpZHRoPVwiMTAwcHhcIlxuICAgICAgICBoZWlnaHQ9XCIyNXB4XCJcbiAgICAgICAgcGQ9XCI2cHhcIlxuICAgICAgICBwbGFjZUhvbGRlcj1cImlucHV0IGludGVnZXJcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwidHJ1ZVwiXG4gICAgICAgIFtlcnJvclBvc2l0aW9uXT1cIidib3R0b20nXCJcbiAgICAgICAgYXBwVmFsaWRhdGU9XCJpbnRlZ2VyXCJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJpbnB1dFZhbHVlXCJcbiAgICAgID48L3ZlcmJlbmEtaW5wdXQ+XG5cbiAgICAgIDx2ZXJiZW5hLWlucHV0XG4gICAgICAgICpuZ0lmPVwic2VsZWN0ZWRGaWx0ZXJUeXBlID09PSAnRGVjaW1hbCdcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjEwMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICAgIHBkPVwiNnB4XCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJpbnB1dCBhIGRlY2ltYWxcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwiZmFsc2VcIlxuICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgIGFwcFZhbGlkYXRlPVwiZGVjaW1hbFwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAqbmdJZj1cInNlbGVjdGVkRmlsdGVyVHlwZSA9PT0gJ051bWJlcidcIlxuICAgICAgICBib3JkZXI9XCIxcHggc29saWQgdmFyKC0tdmJuLWNvbG9yLWJvcmRlcilcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjEwMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICAgIHBkPVwiNnB4XCJcbiAgICAgICAgcGxhY2VIb2xkZXI9XCJpbnB1dCBudW1iZXJcIlxuICAgICAgICBbc2hvd0JvcmRlcl09XCJ0cnVlXCJcbiAgICAgICAgW3Nob3dFcnJvck1lc3NhZ2VdPVwiZmFsc2VcIlxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcbiAgICAgICAgW2Vycm9yUG9zaXRpb25dPVwiJ2JvdHRvbSdcIlxuICAgICAgICBhcHBWYWxpZGF0ZT1cIm51bWJlclwiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuXG4gICAgICA8dmVyYmVuYS1pbnB1dFxuICAgICAgICAqbmdJZj1cIlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0NyZWRpdCcgJiZcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdEYXRlJyAmJlxuICAgICAgICAgIHNlbGVjdGVkRmlsdGVyVHlwZSAhPT0gJ0ludGVnZXInICYmXG4gICAgICAgICAgc2VsZWN0ZWRGaWx0ZXJUeXBlICE9PSAnRGVjaW1hbCcgJiZcbiAgICAgICAgICBzZWxlY3RlZEZpbHRlclR5cGUgIT09ICdOdW1iZXInXG4gICAgICAgIFwiXG4gICAgICAgIGJvcmRlcj1cIjFweCBzb2xpZCB2YXIoLS12Ym4tY29sb3ItYm9yZGVyKVwiXG4gICAgICAgIHBsYWNlSG9sZGVyPVwiaW5wdXQgdmFsdWVcIlxuICAgICAgICBib3JkZXJSYWRpdXM9XCI1cHhcIlxuICAgICAgICB0ZXh0Q29sb3I9XCJ2YXIoLS12Ym4tY29sb3ItdGV4dClcIlxuICAgICAgICB3aWR0aD1cIjEwMHB4XCJcbiAgICAgICAgaGVpZ2h0PVwiMjVweFwiXG4gICAgICAgIHBkPVwiNnB4XCJcbiAgICAgICAgW3Nob3dCb3JkZXJdPVwidHJ1ZVwiXG4gICAgICAgIFtzaG93RXJyb3JNZXNzYWdlXT1cInRydWVcIlxuICAgICAgICBbZXJyb3JQb3NpdGlvbl09XCInYm90dG9tJ1wiXG4gICAgICAgIFsobmdNb2RlbCldPVwiaW5wdXRWYWx1ZVwiXG4gICAgICA+PC92ZXJiZW5hLWlucHV0PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzAuNXJlbSdcIlxuICAgICAgICBbc3R5bGUub3V0bGluZV09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5ib3JkZXItcmFkaXVzXT1cImJvcmRlclJhZGl1c1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cIid0cmFuc3BhcmVudCdcIlxuICAgICAgICBbc3R5bGUuY29sb3JdPVwic2Vjb25kYXJ5Q29sb3JcIlxuICAgICAgICBbc3R5bGUuZm9udC1zaXplXT1cIicxMnB4J1wiXG4gICAgICAgIFtzdHlsZS5mb250LXdlaWdodF09XCInNTAwJ1wiXG4gICAgICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlQWRkRmlsdGVyQnRuXCJcbiAgICAgICAgW25nQ2xhc3NdPVwie1xuICAgICAgICAgIGRpc2FibGVidG46IGRpc2FibGVBZGRGaWx0ZXJCdG4sXG4gICAgICAgICAgZW5hYmxlQnRuOiAhZGlzYWJsZUFkZEZpbHRlckJ0bixcbiAgICAgICAgfVwiXG4gICAgICAgIChjbGljayk9XCJhZGRGaWx0ZXIoKVwiXG4gICAgICA+XG4gICAgICAgIHt7IHRoaXMuZWRpdEluZGV4ICE9IG51bGwgPyBcIisgVXBkYXRlXCIgOiBcIisgQWRkXCIgfX1cbiAgICAgIDwvYnV0dG9uPlxuICAgIDwvZGl2PlxuICAgIDxociAvPlxuXG4gICAgPGRpdiBjbGFzcz1cImJ0bldyYXBwZXJcIj5cbiAgICAgIDxidXR0b25cbiAgICAgICAgW3N0eWxlLm1hcmdpbi10b3BdPVwiJzAuNXJlbSdcIlxuICAgICAgICBbc3R5bGUub3V0bGluZV09XCInbm9uZSdcIlxuICAgICAgICBbc3R5bGUuYm9yZGVyXT1cIidub25lJ1wiXG4gICAgICAgIFtzdHlsZS5wYWRkaW5nXT1cIicwLjJyZW0gMS42cmVtJ1wiXG4gICAgICAgIFtzdHlsZS5iYWNrZ3JvdW5kLWNvbG9yXT1cInByaW1hcnlDb2xvclwiXG4gICAgICAgIFtzdHlsZS5jb2xvcl09XCJ0ZXJ0aWFyeUNvbG9yXCJcbiAgICAgICAgW3N0eWxlLmZvbnQtc2l6ZV09XCInMTJweCdcIlxuICAgICAgICBbc3R5bGUuZm9udC13ZWlnaHRdPVwiJzYwMCdcIlxuICAgICAgICAoY2xpY2spPVwiYXBwbHlGaWx0ZXJzKClcIlxuICAgICAgPlxuICAgICAgICBDb25maXJtXG4gICAgICA8L2J1dHRvbj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L3NlY3Rpb24+XG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uQnV0dG9uLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvbW9kZWxzL05vdGlmaWNhdGlvbkJ1dHRvbi50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IGludGVyZmFjZSBOb3RpZmljYXRpb25CdXR0b24ge1xuICB0ZXh0OiBzdHJpbmc7XG4gIGJnQ29sb3I/OiBzdHJpbmc7XG4gIHByaW1hcnljb2xvcj86IHN0cmluZztcbiAgc2Vjb25kYXJ5Y29sb3I/OiBzdHJpbmc7XG4gIGZvbnRTaXplPzogc3RyaW5nO1xuICBmb250V2VpZ2h0Pzogc3RyaW5nO1xuICBjYWxsQmFjaz86ICgpID0+IGFueTtcbn1cbiJdfQ==
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export {};
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTm90aWZpY2F0aW9uT3B0aW9ucy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscy9Ob3RpZmljYXRpb25PcHRpb25zLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBOb3RpZmljYXRpb25CdXR0b24gfSBmcm9tICcuL05vdGlmaWNhdGlvbkJ1dHRvbic7XG5cbmV4cG9ydCBpbnRlcmZhY2UgTm90aWZpY2F0aW9uT3B0aW9ucyB7XG4gIHRpbWVvdXQ/OiBudW1iZXI7XG4gIHBvc2l0aW9uPzogc3RyaW5nO1xuICBiYWNrZ3JvdW5kQ29sb3I/OiBzdHJpbmc7XG4gIHRleHRDb2xvcj86IHN0cmluZztcbiAgaWNvbk5hbWU/OiBzdHJpbmc7XG4gIGljb25XaWR0aD86IG51bWJlcjtcbiAgaWNvbkhlaWdodD86IG51bWJlcjtcbiAgc3Ryb2tlPzogc3RyaW5nO1xuICBmaWxsPzogc3RyaW5nO1xuICBidXR0b25zPzogTm90aWZpY2F0aW9uQnV0dG9uW107XG4gIHR5cGU6ICdzdWNjZXNzJyB8ICdlcnJvcicgfCAnd2FybmluZycgfCAnaW5mbyc7XG59XG4iXX0=
|
|
@@ -3,6 +3,8 @@ export * from './column-filter';
|
|
|
3
3
|
export * from './table-filter';
|
|
4
4
|
export * from './DataFilterType';
|
|
5
5
|
export * from './IDataFilter';
|
|
6
|
+
export * from './NotificationButton';
|
|
7
|
+
export * from './NotificationOptions';
|
|
6
8
|
export * from './config';
|
|
7
9
|
export * from './tokens';
|
|
8
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
10
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3ZlcmJlbi1uZy11aS9zcmMvbGliL21vZGVscy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsY0FBYyxDQUFDO0FBQzdCLGNBQWMsaUJBQWlCLENBQUM7QUFDaEMsY0FBYyxnQkFBZ0IsQ0FBQztBQUMvQixjQUFjLGtCQUFrQixDQUFDO0FBQ2pDLGNBQWMsZUFBZSxDQUFDO0FBQzlCLGNBQWMsc0JBQXNCLENBQUM7QUFDckMsY0FBYyx1QkFBdUIsQ0FBQztBQUN0QyxjQUFjLFVBQVUsQ0FBQztBQUN6QixjQUFjLFVBQVUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vbWFpbC1tb2RlbCc7XG5leHBvcnQgKiBmcm9tICcuL2NvbHVtbi1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi90YWJsZS1maWx0ZXInO1xuZXhwb3J0ICogZnJvbSAnLi9EYXRhRmlsdGVyVHlwZSc7XG5leHBvcnQgKiBmcm9tICcuL0lEYXRhRmlsdGVyJztcbmV4cG9ydCAqIGZyb20gJy4vTm90aWZpY2F0aW9uQnV0dG9uJztcbmV4cG9ydCAqIGZyb20gJy4vTm90aWZpY2F0aW9uT3B0aW9ucyc7XG5leHBvcnQgKiBmcm9tICcuL2NvbmZpZyc7XG5leHBvcnQgKiBmcm9tICcuL3Rva2Vucyc7XG4iXX0=
|
|
@@ -89,4 +89,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.10", ngImpo
|
|
|
89
89
|
providedIn: 'root',
|
|
90
90
|
}]
|
|
91
91
|
}] });
|
|
92
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
92
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibm90aWZpY2F0aW9uLnNlcnZpY2VzLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdmVyYmVuLW5nLXVpL3NyYy9saWIvc2VydmljZXMvbm90aWZpY2F0aW9uLnNlcnZpY2VzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFtQnZDLE1BQU0sT0FBTyxtQkFBbUI7SUFDdEIsbUJBQW1CLEdBQUcsSUFBSSxlQUFlLENBR3ZDLElBQUksQ0FBQyxDQUFDO0lBQ2hCLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsWUFBWSxFQUFFLENBQUM7SUFFaEQsaUJBQWlCLENBQ3ZCLElBQWlDO1FBRWpDLE1BQU0sVUFBVSxHQUNkO1lBQ0UsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSw4QkFBOEI7Z0JBQy9DLFNBQVMsRUFBRSw4QkFBOEI7Z0JBQ3pDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsRUFBRTtnQkFDVixJQUFJLEVBQUUsRUFBRTthQUNUO1lBQ0QsS0FBSyxFQUFFO2dCQUNMLGVBQWUsRUFBRSw0QkFBNEI7Z0JBQzdDLFNBQVMsRUFBRSw0QkFBNEI7Z0JBQ3ZDLFFBQVEsRUFBRSxTQUFTO2dCQUNuQixTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsNEJBQTRCO2dCQUNwQyxJQUFJLEVBQUUsNEJBQTRCO2FBQ25DO1lBQ0QsT0FBTyxFQUFFO2dCQUNQLGVBQWUsRUFBRSw4QkFBOEI7Z0JBQy9DLFNBQVMsRUFBRSw4QkFBOEI7Z0JBQ3pDLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsOEJBQThCO2dCQUN0QyxJQUFJLEVBQUUsOEJBQThCO2FBQ3JDO1lBQ0QsSUFBSSxFQUFFO2dCQUNKLGVBQWUsRUFBRSwyQkFBMkI7Z0JBQzVDLFNBQVMsRUFBRSwyQkFBMkI7Z0JBQ3RDLFFBQVEsRUFBRSxZQUFZO2dCQUN0QixTQUFTLEVBQUUsRUFBRTtnQkFDYixVQUFVLEVBQUUsRUFBRTtnQkFDZCxNQUFNLEVBQUUsMkJBQTJCO2dCQUNuQyxJQUFJLEVBQUUsMkJBQTJCO2FBQ2xDO1NBQ0YsQ0FBQztRQUVKLE9BQU8sQ0FDTCxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUk7WUFDbEIsZUFBZSxFQUFFLHVCQUF1QjtZQUN4QyxTQUFTLEVBQUUsMEJBQTBCO1lBQ3JDLFFBQVEsRUFBRSxFQUFFO1lBQ1osU0FBUyxFQUFFLEVBQUU7WUFDYixVQUFVLEVBQUUsRUFBRTtZQUNkLE1BQU0sRUFBRSxFQUFFO1lBQ1YsSUFBSSxFQUFFLEVBQUU7U0FDVCxDQUNGLENBQUM7SUFDSixDQUFDO0lBRUQsZ0JBQWdCLENBQ2QsSUFBaUMsRUFDakMsT0FBZSxFQUNmLFVBQXdDLEVBQUU7UUFFMUMsTUFBTSxjQUFjLEdBQTZDO1lBQy9ELE9BQU8sRUFBRSxJQUFJO1lBQ2IsUUFBUSxFQUFFLFdBQVc7WUFDckIsR0FBRyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDO1lBQy9CLElBQUk7U0FDTCxDQUFDO1FBQ0YsSUFBSSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUM1QixPQUFPO1lBQ1AsT0FBTyxFQUFFLEVBQUUsR0FBRyxjQUFjLEVBQUUsR0FBRyxPQUFPLEVBQUU7U0FDM0MsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVELGlCQUFpQjtRQUNmLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDdEMsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlLEVBQUUsT0FBc0M7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELE9BQU8sQ0FBQyxPQUFlLEVBQUUsT0FBc0M7UUFDN0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLFNBQVMsRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDckQsQ0FBQztJQUVELEtBQUssQ0FBQyxPQUFlLEVBQUUsT0FBc0M7UUFDM0QsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksQ0FBQyxPQUFlLEVBQUUsT0FBc0M7UUFDMUQsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxPQUFPLEVBQUUsT0FBTyxDQUFDLENBQUM7SUFDbEQsQ0FBQzt3R0FsR1UsbUJBQW1COzRHQUFuQixtQkFBbUIsY0FGbEIsTUFBTTs7NEZBRVAsbUJBQW1CO2tCQUgvQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgTm90aWZpY2F0aW9uQnV0dG9uLFxuICBOb3RpZmljYXRpb25PcHRpb25zLFxufSBmcm9tICd2ZXJiZW4tbmctdWkvc3JjL2xpYi9tb2RlbHMnO1xuXG5pbnRlcmZhY2UgTm90aWZpY2F0aW9uU3R5bGVzIHtcbiAgYmFja2dyb3VuZENvbG9yOiBzdHJpbmc7XG4gIHRleHRDb2xvcjogc3RyaW5nO1xuICBpY29uTmFtZTogc3RyaW5nO1xuICBpY29uV2lkdGg6IG51bWJlcjtcbiAgaWNvbkhlaWdodDogbnVtYmVyO1xuICBzdHJva2U6IHN0cmluZztcbiAgZmlsbDogc3RyaW5nO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgTm90aWZpY2F0aW9uU2VydmljZSB7XG4gIHByaXZhdGUgbm90aWZpY2F0aW9uU3ViamVjdCA9IG5ldyBCZWhhdmlvclN1YmplY3Q8e1xuICAgIG1lc3NhZ2U6IHN0cmluZztcbiAgICBvcHRpb25zOiBOb3RpZmljYXRpb25PcHRpb25zICYgTm90aWZpY2F0aW9uU3R5bGVzO1xuICB9IHwgbnVsbD4obnVsbCk7XG4gIG5vdGlmaWNhdGlvbiQgPSB0aGlzLm5vdGlmaWNhdGlvblN1YmplY3QuYXNPYnNlcnZhYmxlKCk7XG5cbiAgcHJpdmF0ZSBnZXREZWZhdWx0T3B0aW9ucyhcbiAgICB0eXBlOiBOb3RpZmljYXRpb25PcHRpb25zWyd0eXBlJ10sXG4gICk6IE5vdGlmaWNhdGlvblN0eWxlcyB7XG4gICAgY29uc3QgdHlwZVN0eWxlczogUmVjb3JkPE5vdGlmaWNhdGlvbk9wdGlvbnNbJ3R5cGUnXSwgTm90aWZpY2F0aW9uU3R5bGVzPiA9XG4gICAgICB7XG4gICAgICAgIHN1Y2Nlc3M6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS12Ym4tc3RhdHVzLXN1Y2Nlc3MtYmcpJyxcbiAgICAgICAgICB0ZXh0Q29sb3I6ICd2YXIoLS12Ym4tc3RhdHVzLXN1Y2Nlc3MtZmcpJyxcbiAgICAgICAgICBpY29uTmFtZTogJ3N1Y2Nlc3MnLFxuICAgICAgICAgIGljb25XaWR0aDogMjAsXG4gICAgICAgICAgaWNvbkhlaWdodDogMjAsXG4gICAgICAgICAgc3Ryb2tlOiAnJyxcbiAgICAgICAgICBmaWxsOiAnJyxcbiAgICAgICAgfSxcbiAgICAgICAgZXJyb3I6IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS12Ym4tc3RhdHVzLWVycm9yLWJnKScsXG4gICAgICAgICAgdGV4dENvbG9yOiAndmFyKC0tdmJuLXN0YXR1cy1lcnJvci1mZyknLFxuICAgICAgICAgIGljb25OYW1lOiAnd2FybmluZycsXG4gICAgICAgICAgaWNvbldpZHRoOiAyMCxcbiAgICAgICAgICBpY29uSGVpZ2h0OiAyMCxcbiAgICAgICAgICBzdHJva2U6ICd2YXIoLS12Ym4tc3RhdHVzLWVycm9yLWZnKScsXG4gICAgICAgICAgZmlsbDogJ3ZhcigtLXZibi1zdGF0dXMtZXJyb3ItZmcpJyxcbiAgICAgICAgfSxcbiAgICAgICAgd2FybmluZzoge1xuICAgICAgICAgIGJhY2tncm91bmRDb2xvcjogJ3ZhcigtLXZibi1zdGF0dXMtd2FybmluZy1iZyknLFxuICAgICAgICAgIHRleHRDb2xvcjogJ3ZhcigtLXZibi1zdGF0dXMtd2FybmluZy1mZyknLFxuICAgICAgICAgIGljb25OYW1lOiAnZGFuZ2VySW5mbycsXG4gICAgICAgICAgaWNvbldpZHRoOiAyMCxcbiAgICAgICAgICBpY29uSGVpZ2h0OiAyMCxcbiAgICAgICAgICBzdHJva2U6ICd2YXIoLS12Ym4tc3RhdHVzLXdhcm5pbmctZmcpJyxcbiAgICAgICAgICBmaWxsOiAndmFyKC0tdmJuLXN0YXR1cy13YXJuaW5nLWZnKScsXG4gICAgICAgIH0sXG4gICAgICAgIGluZm86IHtcbiAgICAgICAgICBiYWNrZ3JvdW5kQ29sb3I6ICd2YXIoLS12Ym4tc3RhdHVzLWluZm8tYmcpJyxcbiAgICAgICAgICB0ZXh0Q29sb3I6ICd2YXIoLS12Ym4tc3RhdHVzLWluZm8tZmcpJyxcbiAgICAgICAgICBpY29uTmFtZTogJ2RhbmdlckluZm8nLFxuICAgICAgICAgIGljb25XaWR0aDogMjAsXG4gICAgICAgICAgaWNvbkhlaWdodDogMjAsXG4gICAgICAgICAgc3Ryb2tlOiAndmFyKC0tdmJuLXN0YXR1cy1pbmZvLWZnKScsXG4gICAgICAgICAgZmlsbDogJ3ZhcigtLXZibi1zdGF0dXMtaW5mby1mZyknLFxuICAgICAgICB9LFxuICAgICAgfTtcblxuICAgIHJldHVybiAoXG4gICAgICB0eXBlU3R5bGVzW3R5cGVdIHx8IHtcbiAgICAgICAgYmFja2dyb3VuZENvbG9yOiAndmFyKC0tdmJuLWNvbG9yLXRleHQpJyxcbiAgICAgICAgdGV4dENvbG9yOiAndmFyKC0tdmJuLWNvbG9yLXN1cmZhY2UpJyxcbiAgICAgICAgaWNvbk5hbWU6ICcnLFxuICAgICAgICBpY29uV2lkdGg6IDIwLFxuICAgICAgICBpY29uSGVpZ2h0OiAyMCxcbiAgICAgICAgc3Ryb2tlOiAnJyxcbiAgICAgICAgZmlsbDogJycsXG4gICAgICB9XG4gICAgKTtcbiAgfVxuXG4gIHNob3dOb3RpZmljYXRpb24oXG4gICAgdHlwZTogTm90aWZpY2F0aW9uT3B0aW9uc1sndHlwZSddLFxuICAgIG1lc3NhZ2U6IHN0cmluZyxcbiAgICBvcHRpb25zOiBQYXJ0aWFsPE5vdGlmaWNhdGlvbk9wdGlvbnM+ID0ge30sXG4gICkge1xuICAgIGNvbnN0IGRlZmF1bHRPcHRpb25zOiBOb3RpZmljYXRpb25PcHRpb25zICYgTm90aWZpY2F0aW9uU3R5bGVzID0ge1xuICAgICAgdGltZW91dDogMjAwMCxcbiAgICAgIHBvc2l0aW9uOiAndG9wLXJpZ2h0JyxcbiAgICAgIC4uLnRoaXMuZ2V0RGVmYXVsdE9wdGlvbnModHlwZSksXG4gICAgICB0eXBlLFxuICAgIH07XG4gICAgdGhpcy5ub3RpZmljYXRpb25TdWJqZWN0Lm5leHQoe1xuICAgICAgbWVzc2FnZSxcbiAgICAgIG9wdGlvbnM6IHsgLi4uZGVmYXVsdE9wdGlvbnMsIC4uLm9wdGlvbnMgfSxcbiAgICB9KTtcbiAgfVxuXG4gIGNsZWFyTm90aWZpY2F0aW9uKCkge1xuICAgIHRoaXMubm90aWZpY2F0aW9uU3ViamVjdC5uZXh0KG51bGwpO1xuICB9XG5cbiAgc3VjY2VzcyhtZXNzYWdlOiBzdHJpbmcsIG9wdGlvbnM/OiBQYXJ0aWFsPE5vdGlmaWNhdGlvbk9wdGlvbnM+KSB7XG4gICAgdGhpcy5zaG93Tm90aWZpY2F0aW9uKCdzdWNjZXNzJywgbWVzc2FnZSwgb3B0aW9ucyk7XG4gIH1cblxuICB3YXJuaW5nKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IFBhcnRpYWw8Tm90aWZpY2F0aW9uT3B0aW9ucz4pIHtcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb24oJ3dhcm5pbmcnLCBtZXNzYWdlLCBvcHRpb25zKTtcbiAgfVxuXG4gIGVycm9yKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IFBhcnRpYWw8Tm90aWZpY2F0aW9uT3B0aW9ucz4pIHtcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb24oJ2Vycm9yJywgbWVzc2FnZSwgb3B0aW9ucyk7XG4gIH1cblxuICBpbmZvKG1lc3NhZ2U6IHN0cmluZywgb3B0aW9ucz86IFBhcnRpYWw8Tm90aWZpY2F0aW9uT3B0aW9ucz4pIHtcbiAgICB0aGlzLnNob3dOb3RpZmljYXRpb24oJ2luZm8nLCBtZXNzYWdlLCBvcHRpb25zKTtcbiAgfVxufVxuIl19
|