@tilde-nlp/ngx-common 6.1.33 → 6.1.35
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/lib/core/localization/index.mjs +2 -1
- package/esm2022/lib/core/localization/select-language-dialog-component/index.mjs +2 -0
- package/esm2022/lib/core/localization/select-language-dialog-component/select-language-dialog.component.mjs +110 -0
- package/esm2022/lib/pipes/language-translate/language-translate.pipe.mjs +9 -2
- package/esm2022/lib/subscription/subscription.component.mjs +37 -8
- package/fesm2022/tilde-nlp-ngx-common.mjs +141 -10
- package/fesm2022/tilde-nlp-ngx-common.mjs.map +1 -1
- package/lib/core/localization/index.d.ts +1 -0
- package/lib/core/localization/select-language-dialog-component/index.d.ts +1 -0
- package/lib/core/localization/select-language-dialog-component/select-language-dialog.component.d.ts +15 -0
- package/lib/pipes/language-translate/language-translate.pipe.d.ts +1 -0
- package/lib/subscription/subscription.component.d.ts +5 -1
- package/package.json +1 -1
- package/web-components/main.js +1 -1
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
export * from './missing-translation-handler.service';
|
|
2
|
-
|
|
2
|
+
export * from './select-language-dialog-component';
|
|
3
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9taXNzaW5nLXRyYW5zbGF0aW9uLWhhbmRsZXIuc2VydmljZSc7XHJcbmV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
export * from './select-language-dialog.component';
|
|
2
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsY0FBYyxvQ0FBb0MsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImV4cG9ydCAqIGZyb20gJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQnO1xyXG4iXX0=
|
|
@@ -0,0 +1,110 @@
|
|
|
1
|
+
import { AsyncPipe } from '@angular/common';
|
|
2
|
+
import { Component, inject } from '@angular/core';
|
|
3
|
+
import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
|
|
4
|
+
import { SortLanguageListPipe } from '../../../pipes';
|
|
5
|
+
import { TranslatePipe, TranslateService } from '@ngx-translate/core';
|
|
6
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
7
|
+
import { MatSelectModule } from '@angular/material/select';
|
|
8
|
+
import { DialogRef } from '@angular/cdk/dialog';
|
|
9
|
+
import { FormsModule } from '@angular/forms';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
import * as i1 from "@angular/material/dialog";
|
|
12
|
+
import * as i2 from "@angular/material/button";
|
|
13
|
+
import * as i3 from "@angular/material/form-field";
|
|
14
|
+
import * as i4 from "@angular/material/select";
|
|
15
|
+
import * as i5 from "@angular/material/core";
|
|
16
|
+
import * as i6 from "@angular/forms";
|
|
17
|
+
function SelectLanguageDialogComponent_For_13_Template(rf, ctx) { if (rf & 1) {
|
|
18
|
+
i0.ɵɵelementStart(0, "mat-option", 5)(1, "span", 9);
|
|
19
|
+
i0.ɵɵtext(2);
|
|
20
|
+
i0.ɵɵelementEnd()();
|
|
21
|
+
} if (rf & 2) {
|
|
22
|
+
const language_r1 = ctx.$implicit;
|
|
23
|
+
i0.ɵɵproperty("value", language_r1.value);
|
|
24
|
+
i0.ɵɵadvance(2);
|
|
25
|
+
i0.ɵɵtextInterpolate1(" ", language_r1.translation, " ");
|
|
26
|
+
} }
|
|
27
|
+
/**
|
|
28
|
+
This is an extension dialog component.
|
|
29
|
+
Use <lib-open-extension-dialog> to open this dialog, by proivding [extensions] to it you can specify what extensions should be displayed.
|
|
30
|
+
*/
|
|
31
|
+
export class SelectLanguageDialogComponent {
|
|
32
|
+
constructor() {
|
|
33
|
+
this.#data = inject(MAT_DIALOG_DATA);
|
|
34
|
+
this.#translate = inject(TranslateService);
|
|
35
|
+
this.#dialogRef = inject(DialogRef);
|
|
36
|
+
this.selectedLanguage = this.#translate.currentLang;
|
|
37
|
+
}
|
|
38
|
+
#data;
|
|
39
|
+
#translate;
|
|
40
|
+
#dialogRef;
|
|
41
|
+
ngOnInit() {
|
|
42
|
+
this.languages = this.#data.languages;
|
|
43
|
+
}
|
|
44
|
+
save() {
|
|
45
|
+
this.#translate.use(this.selectedLanguage);
|
|
46
|
+
this.#dialogRef.close();
|
|
47
|
+
}
|
|
48
|
+
static { this.ɵfac = function SelectLanguageDialogComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SelectLanguageDialogComponent)(); }; }
|
|
49
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SelectLanguageDialogComponent, selectors: [["lib-extension-dialog"]], standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 23, vars: 20, consts: [["mat-dialog-title", ""], ["mat-dialog-content", ""], [1, "description"], ["appearance", "outline", 1, "w-full", "mb-9"], [3, "ngModelChange", "ngModel"], [3, "value"], ["align", "end"], ["mat-stroked-button", "", "color", "primary-accent-darker", "mat-dialog-close", ""], ["mat-flat-button", "", "color", "primary-accent-darker", 3, "click"], [1, "language-name"]], template: function SelectLanguageDialogComponent_Template(rf, ctx) { if (rf & 1) {
|
|
50
|
+
i0.ɵɵelementStart(0, "h1", 0);
|
|
51
|
+
i0.ɵɵtext(1);
|
|
52
|
+
i0.ɵɵpipe(2, "translate");
|
|
53
|
+
i0.ɵɵelementEnd();
|
|
54
|
+
i0.ɵɵelementStart(3, "div", 1)(4, "p", 2);
|
|
55
|
+
i0.ɵɵtext(5);
|
|
56
|
+
i0.ɵɵpipe(6, "translate");
|
|
57
|
+
i0.ɵɵelementEnd();
|
|
58
|
+
i0.ɵɵelementStart(7, "mat-form-field", 3)(8, "mat-label");
|
|
59
|
+
i0.ɵɵtext(9);
|
|
60
|
+
i0.ɵɵpipe(10, "translate");
|
|
61
|
+
i0.ɵɵelementEnd();
|
|
62
|
+
i0.ɵɵelementStart(11, "mat-select", 4);
|
|
63
|
+
i0.ɵɵtwoWayListener("ngModelChange", function SelectLanguageDialogComponent_Template_mat_select_ngModelChange_11_listener($event) { i0.ɵɵtwoWayBindingSet(ctx.selectedLanguage, $event) || (ctx.selectedLanguage = $event); return $event; });
|
|
64
|
+
i0.ɵɵrepeaterCreate(12, SelectLanguageDialogComponent_For_13_Template, 3, 2, "mat-option", 5, i0.ɵɵrepeaterTrackByIndex);
|
|
65
|
+
i0.ɵɵpipe(14, "sortLanguageList");
|
|
66
|
+
i0.ɵɵpipe(15, "async");
|
|
67
|
+
i0.ɵɵelementEnd()()();
|
|
68
|
+
i0.ɵɵelementStart(16, "mat-dialog-actions", 6)(17, "button", 7);
|
|
69
|
+
i0.ɵɵtext(18);
|
|
70
|
+
i0.ɵɵpipe(19, "translate");
|
|
71
|
+
i0.ɵɵelementEnd();
|
|
72
|
+
i0.ɵɵelementStart(20, "button", 8);
|
|
73
|
+
i0.ɵɵlistener("click", function SelectLanguageDialogComponent_Template_button_click_20_listener() { return ctx.save(); });
|
|
74
|
+
i0.ɵɵtext(21);
|
|
75
|
+
i0.ɵɵpipe(22, "translate");
|
|
76
|
+
i0.ɵɵelementEnd()();
|
|
77
|
+
} if (rf & 2) {
|
|
78
|
+
i0.ɵɵadvance();
|
|
79
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(2, 6, "SELECT_LANGUAGE.TITLE"));
|
|
80
|
+
i0.ɵɵadvance(4);
|
|
81
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(6, 8, "SELECT_LANGUAGE.DESCRIPTION"));
|
|
82
|
+
i0.ɵɵadvance(4);
|
|
83
|
+
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind1(10, 10, "SELECT_LANGUAGE.INPUT_LABEL"));
|
|
84
|
+
i0.ɵɵadvance(2);
|
|
85
|
+
i0.ɵɵtwoWayProperty("ngModel", ctx.selectedLanguage);
|
|
86
|
+
i0.ɵɵadvance();
|
|
87
|
+
i0.ɵɵrepeater(i0.ɵɵpipeBind1(15, 14, i0.ɵɵpipeBind1(14, 12, ctx.languages)));
|
|
88
|
+
i0.ɵɵadvance(6);
|
|
89
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(19, 16, "SELECT_LANGUAGE.CANCEL"), " ");
|
|
90
|
+
i0.ɵɵadvance(3);
|
|
91
|
+
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(22, 18, "SELECT_LANGUAGE.SAVE"), " ");
|
|
92
|
+
} }, dependencies: [SortLanguageListPipe,
|
|
93
|
+
AsyncPipe,
|
|
94
|
+
TranslatePipe,
|
|
95
|
+
MatDialogModule, i1.MatDialogClose, i1.MatDialogTitle, i1.MatDialogActions, i1.MatDialogContent, MatButtonModule, i2.MatButton, MatSelectModule, i3.MatFormField, i3.MatLabel, i4.MatSelect, i5.MatOption, FormsModule, i6.NgControlStatus, i6.NgModel] }); }
|
|
96
|
+
}
|
|
97
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(SelectLanguageDialogComponent, [{
|
|
98
|
+
type: Component,
|
|
99
|
+
args: [{ selector: 'lib-extension-dialog', standalone: true, imports: [
|
|
100
|
+
SortLanguageListPipe,
|
|
101
|
+
AsyncPipe,
|
|
102
|
+
TranslatePipe,
|
|
103
|
+
MatDialogModule,
|
|
104
|
+
MatButtonModule,
|
|
105
|
+
MatSelectModule,
|
|
106
|
+
FormsModule
|
|
107
|
+
], template: "<h1 mat-dialog-title>{{ \"SELECT_LANGUAGE.TITLE\" | translate }}</h1>\r\n<div mat-dialog-content>\r\n <p class=\"description\">{{ \"SELECT_LANGUAGE.DESCRIPTION\" | translate }}</p>\r\n\r\n <mat-form-field appearance=\"outline\" class=\"w-full mb-9\">\r\n <mat-label>{{ \"SELECT_LANGUAGE.INPUT_LABEL\" | translate }}</mat-label>\r\n <mat-select [(ngModel)]=\"selectedLanguage\">\r\n @for (language of languages | sortLanguageList | async; track $index) {\r\n <mat-option [value]=\"language.value\">\r\n <span class=\"language-name\">\r\n {{language.translation}}\r\n </span>\r\n </mat-option>\r\n }\r\n </mat-select>\r\n </mat-form-field>\r\n</div>\r\n\r\n<mat-dialog-actions align=\"end\">\r\n <button mat-stroked-button color=\"primary-accent-darker\" mat-dialog-close>\r\n {{ \"SELECT_LANGUAGE.CANCEL\" | translate }}\r\n </button>\r\n <button mat-flat-button color=\"primary-accent-darker\" (click)=\"save()\">\r\n {{ \"SELECT_LANGUAGE.SAVE\" | translate }}\r\n </button>\r\n</mat-dialog-actions>\r\n\r\n\r\n\r\n" }]
|
|
108
|
+
}], null, null); })();
|
|
109
|
+
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SelectLanguageDialogComponent, { className: "SelectLanguageDialogComponent", filePath: "lib\\core\\localization\\select-language-dialog-component\\select-language-dialog.component.ts", lineNumber: 29 }); })();
|
|
110
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQvc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvY29yZS9sb2NhbGl6YXRpb24vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy1jb21wb25lbnQvc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDNUMsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQVUsTUFBTSxlQUFlLENBQUM7QUFDMUQsT0FBTyxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUM1RSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsYUFBYSxFQUFFLGdCQUFnQixFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDaEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7Ozs7SUNDckMsQUFERixxQ0FBcUMsY0FDUDtJQUMxQixZQUNGO0lBQ0YsQUFERSxpQkFBTyxFQUNJOzs7SUFKRCx5Q0FBd0I7SUFFaEMsZUFDRjtJQURFLHdEQUNGOztBREZSOzs7RUFHRTtBQWdCRixNQUFNLE9BQU8sNkJBQTZCO0lBZjFDO1FBZ0JXLFVBQUssR0FBRyxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUM7UUFDaEMsZUFBVSxHQUFHLE1BQU0sQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1FBQ3RDLGVBQVUsR0FBRyxNQUFNLENBQUMsU0FBUyxDQUFDLENBQUM7UUFHeEMscUJBQWdCLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxXQUFXLENBQUM7S0FhaEQ7SUFsQlUsS0FBSyxDQUEyQjtJQUNoQyxVQUFVLENBQTRCO0lBQ3RDLFVBQVUsQ0FBcUI7SUFLeEMsUUFBUTtRQUNOLElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUM7SUFDeEMsQ0FBQztJQUVELElBQUk7UUFDRixJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQztRQUMzQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxDQUFDO0lBQzFCLENBQUM7OEhBZlUsNkJBQTZCO29FQUE3Qiw2QkFBNkI7WUM1QjFDLDZCQUFxQjtZQUFBLFlBQXlDOztZQUFBLGlCQUFLO1lBRWpFLEFBREYsOEJBQXdCLFdBQ0M7WUFBQSxZQUErQzs7WUFBQSxpQkFBSTtZQUd4RSxBQURGLHlDQUF5RCxnQkFDNUM7WUFBQSxZQUErQzs7WUFBQSxpQkFBWTtZQUN0RSxzQ0FBMkM7WUFBL0IsNk9BQThCO1lBQ3hDLHdIQU1DOzs7WUFHUCxBQURFLEFBREUsaUJBQWEsRUFDRSxFQUNiO1lBR0osQUFERiw4Q0FBZ0MsaUJBQzRDO1lBQ3hFLGFBQ0Y7O1lBQUEsaUJBQVM7WUFDVCxrQ0FBdUU7WUFBakIsMkdBQVMsVUFBTSxJQUFDO1lBQ3BFLGFBQ0Y7O1lBQ0YsQUFERSxpQkFBUyxFQUNVOztZQXpCQSxjQUF5QztZQUF6QyxtRUFBeUM7WUFFckMsZUFBK0M7WUFBL0MseUVBQStDO1lBR3pELGVBQStDO1lBQS9DLDJFQUErQztZQUM5QyxlQUE4QjtZQUE5QixvREFBOEI7WUFDeEMsY0FNQztZQU5ELDRFQU1DO1lBT0gsZUFDRjtZQURFLGlGQUNGO1lBRUUsZUFDRjtZQURFLCtFQUNGOzRCRExFLG9CQUFvQjtZQUNwQixTQUFTO1lBQ1QsYUFBYTtZQUNiLGVBQWUsa0ZBQ2YsZUFBZSxnQkFDZixlQUFlLDREQUNmLFdBQVc7O2lGQUdGLDZCQUE2QjtjQWZ6QyxTQUFTOzJCQUNFLHNCQUFzQixjQUdwQixJQUFJLFdBQ1A7b0JBQ1Asb0JBQW9CO29CQUNwQixTQUFTO29CQUNULGFBQWE7b0JBQ2IsZUFBZTtvQkFDZixlQUFlO29CQUNmLGVBQWU7b0JBQ2YsV0FBVztpQkFDWjs7a0ZBRVUsNkJBQTZCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQXN5bmNQaXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBpbmplY3QsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XHJcbmltcG9ydCB7IFNvcnRMYW5ndWFnZUxpc3RQaXBlIH0gZnJvbSAnLi4vLi4vLi4vcGlwZXMnO1xyXG5pbXBvcnQgeyBUcmFuc2xhdGVQaXBlLCBUcmFuc2xhdGVTZXJ2aWNlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IE1hdFNlbGVjdE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3NlbGVjdCc7XHJcbmltcG9ydCB7IERpYWxvZ1JlZiB9IGZyb20gJ0Bhbmd1bGFyL2Nkay9kaWFsb2cnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuLyoqXHJcbiAgVGhpcyBpcyBhbiBleHRlbnNpb24gZGlhbG9nIGNvbXBvbmVudC5cclxuICBVc2UgPGxpYi1vcGVuLWV4dGVuc2lvbi1kaWFsb2c+IHRvIG9wZW4gdGhpcyBkaWFsb2csIGJ5IHByb2l2ZGluZyBbZXh0ZW5zaW9uc10gdG8gaXQgeW91IGNhbiBzcGVjaWZ5IHdoYXQgZXh0ZW5zaW9ucyBzaG91bGQgYmUgZGlzcGxheWVkLlxyXG4qL1xyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1leHRlbnNpb24tZGlhbG9nJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vc2VsZWN0LWxhbmd1YWdlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgU29ydExhbmd1YWdlTGlzdFBpcGUsXHJcbiAgICBBc3luY1BpcGUsXHJcbiAgICBUcmFuc2xhdGVQaXBlLFxyXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxyXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxyXG4gICAgTWF0U2VsZWN0TW9kdWxlLFxyXG4gICAgRm9ybXNNb2R1bGVcclxuICBdXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTZWxlY3RMYW5ndWFnZURpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgcmVhZG9ubHkgI2RhdGEgPSBpbmplY3QoTUFUX0RJQUxPR19EQVRBKTtcclxuICByZWFkb25seSAjdHJhbnNsYXRlID0gaW5qZWN0KFRyYW5zbGF0ZVNlcnZpY2UpO1xyXG4gIHJlYWRvbmx5ICNkaWFsb2dSZWYgPSBpbmplY3QoRGlhbG9nUmVmKTtcclxuXHJcbiAgbGFuZ3VhZ2VzITogc3RyaW5nW107XHJcbiAgc2VsZWN0ZWRMYW5ndWFnZSA9IHRoaXMuI3RyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmxhbmd1YWdlcyA9IHRoaXMuI2RhdGEubGFuZ3VhZ2VzO1xyXG4gIH1cclxuXHJcbiAgc2F2ZSgpe1xyXG4gICAgdGhpcy4jdHJhbnNsYXRlLnVzZSh0aGlzLnNlbGVjdGVkTGFuZ3VhZ2UpO1xyXG4gICAgdGhpcy4jZGlhbG9nUmVmLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG59XHJcbiIsIjxoMSBtYXQtZGlhbG9nLXRpdGxlPnt7IFwiU0VMRUNUX0xBTkdVQUdFLlRJVExFXCIgfCB0cmFuc2xhdGUgfX08L2gxPlxyXG48ZGl2IG1hdC1kaWFsb2ctY29udGVudD5cclxuICA8cCBjbGFzcz1cImRlc2NyaXB0aW9uXCI+e3sgXCJTRUxFQ1RfTEFOR1VBR0UuREVTQ1JJUFRJT05cIiB8IHRyYW5zbGF0ZSB9fTwvcD5cclxuXHJcbiAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCIgY2xhc3M9XCJ3LWZ1bGwgbWItOVwiPlxyXG4gICAgPG1hdC1sYWJlbD57eyBcIlNFTEVDVF9MQU5HVUFHRS5JTlBVVF9MQUJFTFwiIHwgdHJhbnNsYXRlIH19PC9tYXQtbGFiZWw+XHJcbiAgICA8bWF0LXNlbGVjdCBbKG5nTW9kZWwpXT1cInNlbGVjdGVkTGFuZ3VhZ2VcIj5cclxuICAgICAgQGZvciAobGFuZ3VhZ2Ugb2YgbGFuZ3VhZ2VzIHwgc29ydExhbmd1YWdlTGlzdCB8IGFzeW5jOyB0cmFjayAkaW5kZXgpIHtcclxuICAgICAgPG1hdC1vcHRpb24gW3ZhbHVlXT1cImxhbmd1YWdlLnZhbHVlXCI+XHJcbiAgICAgICAgPHNwYW4gY2xhc3M9XCJsYW5ndWFnZS1uYW1lXCI+XHJcbiAgICAgICAgICB7e2xhbmd1YWdlLnRyYW5zbGF0aW9ufX1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgfVxyXG4gICAgPC9tYXQtc2VsZWN0PlxyXG4gIDwvbWF0LWZvcm0tZmllbGQ+XHJcbjwvZGl2PlxyXG5cclxuPG1hdC1kaWFsb2ctYWN0aW9ucyBhbGlnbj1cImVuZFwiPlxyXG4gIDxidXR0b24gbWF0LXN0cm9rZWQtYnV0dG9uIGNvbG9yPVwicHJpbWFyeS1hY2NlbnQtZGFya2VyXCIgbWF0LWRpYWxvZy1jbG9zZT5cclxuICAgIHt7IFwiU0VMRUNUX0xBTkdVQUdFLkNBTkNFTFwiIHwgdHJhbnNsYXRlIH19XHJcbiAgPC9idXR0b24+XHJcbiAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5LWFjY2VudC1kYXJrZXJcIiAoY2xpY2spPVwic2F2ZSgpXCI+XHJcbiAgICB7eyBcIlNFTEVDVF9MQU5HVUFHRS5TQVZFXCIgfCB0cmFuc2xhdGUgfX1cclxuICA8L2J1dHRvbj5cclxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XHJcblxyXG5cclxuXHJcbiJdfQ==
|
|
@@ -10,6 +10,13 @@ export class LanguageTranslatePipe {
|
|
|
10
10
|
this.translate = translate;
|
|
11
11
|
this.languagesLocalizationKey = 'LANGUAGES';
|
|
12
12
|
this.translationCache = new Map();
|
|
13
|
+
// For languages where region is different code (but in reality the same), we should not show region.
|
|
14
|
+
this.localeSameRegions = {
|
|
15
|
+
"nb": ["no"],
|
|
16
|
+
"sl": ["si"],
|
|
17
|
+
"sv": ["se"],
|
|
18
|
+
"uk": ["ua"]
|
|
19
|
+
};
|
|
13
20
|
this.translate.onLangChange.subscribe(() => {
|
|
14
21
|
this.translationCache.clear();
|
|
15
22
|
this.lastUiLanguage = this.translate.currentLang;
|
|
@@ -72,7 +79,7 @@ export class LanguageTranslatePipe {
|
|
|
72
79
|
}
|
|
73
80
|
isLanguageCodeSameAsRegion(fullLangCode) {
|
|
74
81
|
const [code, region, extra] = fullLangCode.split('-');
|
|
75
|
-
return code === region?.toLowerCase() && !extra;
|
|
82
|
+
return (code === region?.toLowerCase() || this.localeSameRegions[code]?.includes(region.toLowerCase())) && !extra;
|
|
76
83
|
}
|
|
77
84
|
getRegionFromLanguageCode(fullLangCode) {
|
|
78
85
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
@@ -97,4 +104,4 @@ export class LanguageTranslatePipe {
|
|
|
97
104
|
standalone: true
|
|
98
105
|
}]
|
|
99
106
|
}], () => [{ type: i1.TranslateService }], null); })();
|
|
100
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtdHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvbGFuZ3VhZ2UtdHJhbnNsYXRlL2xhbmd1YWdlLXRyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFRcEQ7OztFQUdFO0FBQ0YsTUFBTSxPQUFPLHFCQUFxQjtJQU9oQyxZQUE2QixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQU52Qyw2QkFBd0IsR0FBRyxXQUFXLENBQUM7UUFJdkMscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFHNUQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFFRCxJQUFJLElBQUksQ0FBQyxjQUFjLEtBQUssSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLEVBQUUsQ0FBQztZQUN2RCxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztR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QUFNLENBQUMsSUFBSSxFQUFFLE1BQU0sRUFBRSxLQUFLLENBQUMsR0FBRyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDO1FBQ3RELE9BQU8sSUFBSSxLQUFLLE1BQU0sRUFBRSxXQUFXLEVBQUUsSUFBSSxDQUFDLEtBQUssQ0FBQztJQUNsRCxDQUFDO0lBRU8seUJBQXlCLENBQUMsWUFBb0I7UUFDcEQsNkRBQTZEO1FBQzdELE1BQU0sQ0FBQyxLQUFLLEVBQUUsTUFBTSxFQUFFLEtBQUssQ0FBQyxHQUFHLFlBQVksQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7UUFDdkQsTUFBTSxVQUFVLEdBQUcsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLE1BQU0sSUFBSSxLQUFLLEVBQUUsQ0FBQyxDQUFDLENBQUMsR0FBRyxNQUFNLEVBQUUsQ0FBQztRQUM5RCxPQUFPLFVBQVUsQ0FBQyxXQUFXLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRU8sMkJBQTJCLENBQUMsWUFBb0I7UUFDdEQsT0FBTyxZQUFZLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQ2xELENBQUM7SUFFTyxxQkFBcUIsQ0FBQyxJQUFZO1FBQ3hDLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBQyxXQUFXLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3RELENBQUM7c0hBdEdVLHFCQUFxQjsyRkFBckIscUJBQXFCOztpRkFBckIscUJBQXFCO2NBVGpDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixJQUFJLEVBQUUsS0FBSztnQkFDWCxVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdsYW5ndWFnZVRyYW5zbGF0ZScsXHJcbiAgcHVyZTogZmFsc2UsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG4vKipcclxuICBUaGlzIHBpcGUgc2VhcmNoZXMgZm9yIGEgbGFuZ3VhZ2UgY29kZSB0cmFuc2xhdGlvbiB3aXRoaW4gb3VyIEpTT04gZmlsZXMuXHJcbiAgSWYgdGhlIHRyYW5zbGF0aW9uIGZvciBhIGdpdmVuIGxhbmd1YWdlIGNvZGUgaXMgbm90IGZvdW5kIHRoZXJlLCBpdCByZXRyaWV2ZXMgaXQgZnJvbSB0aGUgYnJvd3NlcidzIEludGwgb2JqZWN0LlxyXG4qL1xyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZXNMb2NhbGl6YXRpb25LZXkgPSAnTEFOR1VBR0VTJztcclxuXHJcbiAgcHJpdmF0ZSBsYXN0VWlMYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmxhc3RVaUxhbmd1YWdlID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmc7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFVpTGFuZ3VhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybShmdWxsTGFuZ0NvZGU6IHN0cmluZywgaGlkZVJlZ2lvbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgIGlmICghZnVsbExhbmdDb2RlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYXN0VWlMYW5ndWFnZSAhPT0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubGFzdFVpTGFuZ3VhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYWNoZUtleSA9IGAke2Z1bGxMYW5nQ29kZX06JHtoaWRlUmVnaW9ufWA7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25DYWNoZS5oYXMoY2FjaGVLZXkpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUuZ2V0KGNhY2hlS2V5KSE7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbGFuZ0NvZGVXaXRob3V0UmVnaW9uID0gdGhpcy5nZXRMYW5ndWFnZUZyb21MYW5ndWFnZUNvZGUoZnVsbExhbmdDb2RlKTtcclxuICAgIGNvbnN0IGlzQ29kZUFuZFJlZ2lvblNhbWUgPSB0aGlzLmlzTGFuZ3VhZ2VDb2RlU2FtZUFzUmVnaW9uKGZ1bGxMYW5nQ29kZSk7XHJcbiAgICBjb25zdCBsYW5nQ29kZUZvclRyYW5zbGF0aW9uID0gaXNDb2RlQW5kUmVnaW9uU2FtZSA/IGxhbmdDb2RlV2l0aG91dFJlZ2lvbiA6IGZ1bGxMYW5nQ29kZTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMuZ2V0VHJhbnNsYXRpb24obGFuZ0NvZGVGb3JUcmFuc2xhdGlvbiwgaGlkZVJlZ2lvbik7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLnNldChjYWNoZUtleSwgdHJhbnNsYXRpb24pO1xyXG5cclxuICAgIHJldHVybiB0cmFuc2xhdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhbnNsYXRpb24obGFuZ0NvZGU6IHN0cmluZywgaGlkZVJlZ2lvbj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VUcmFuc2xhdGlvbnMgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMubGFuZ3VhZ2VzTG9jYWxpemF0aW9uS2V5KTtcclxuICAgIGxldCB0cmFuc2xhdGlvbiA9XHJcbiAgICAgIC8qKlxyXG4gICAgICAgICAgZS5nLiBJbiBjYXNlIHdlIG5lZWQgdG8gZGlzcGxheSBcImVuLUdCXCIgbGFuZ3VhZ2UgY29kZSBhcyBcIkJyaXRpc2hcIiB3ZSBjYW4gZG8gdGhpc1xyXG4gICAgICAgIGJ5IGFkZGluZyBcIkVOX0dCXCI6IFwiQnJpdGlzaFwiIGluIGxvY2FsaXphdGlvbiBmaWxlcyB1bmRlciBcIkxBTkdVQUdFU1wiIGtleS5cclxuICAgICAgKi9cclxuICAgICAgbGFuZ3VhZ2VUcmFuc2xhdGlvbnNbbGFuZ0NvZGUudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJ18nKV0gPz9cclxuICAgICAgdGhpcy5nZXRMYW5ndWFnZVRyYW5zbGF0aW9uRnJvbUxhbmd1YWdlQ29kZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZywgbGFuZ0NvZGUpO1xyXG5cclxuICAgIGlmIChoaWRlUmVnaW9uKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24uc3BsaXQoJygnKVswXS50cmltKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYW5ndWFnZVRyYW5zbGF0aW9uRnJvbUxhbmd1YWdlQ29kZShjdXJyZW50TGFuZzogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VOYW1lc0luQ3VycmVudExhbmcgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoW2N1cnJlbnRMYW5nXSwgeyB0eXBlOiAnbGFuZ3VhZ2UnIH0pO1xyXG4gICAgY29uc3QgcmVnaW9uTmFtZXNJbkN1cnJlbnRMYW5nID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFtjdXJyZW50TGFuZ10sIHsgdHlwZTogJ3JlZ2lvbicgfSk7XHJcblxyXG4gICAgbGV0IHRyYW5zbGF0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmdldExhbmd1YWdlRnJvbUxhbmd1YWdlQ29kZShjb2RlKTtcclxuICAgICAgY29uc3QgcmVnaW9uID0gdGhpcy5nZXRSZWdpb25Gcm9tTGFuZ3VhZ2VDb2RlKGNvZGUpO1xyXG5cclxuICAgICAgY29uc3QgbGFuZ3VhZ2V0cmFuc2xhdGlvbiA9IGxhbmd1YWdlTmFtZXNJbkN1cnJlbnRMYW5nLm9mKGxhbmd1YWdlKTtcclxuICAgICAgY29uc3QgcmVnaW9uVHJhbnNsYXRpb24gPSByZWdpb25OYW1lc0luQ3VycmVudExhbmcub2YocmVnaW9uKTtcclxuXHJcbiAgICAgIHRyYW5zbGF0aW9uID0gYCR7bGFuZ3VhZ2V0cmFuc2xhdGlvbn0gKCR7cmVnaW9uVHJhbnNsYXRpb259KWA7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0cmFuc2xhdGlvbiA9IGxhbmd1YWdlTmFtZXNJbkN1cnJlbnRMYW5nLm9mKGNvZGUpIGFzIHN0cmluZztcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgcmV0dXJuIGNvZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIodHJhbnNsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0xhbmd1YWdlQ29kZVNhbWVBc1JlZ2lvbihmdWxsTGFuZ0NvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgW2NvZGUsIHJlZ2lvbiwgZXh0cmFdID0gZnVsbExhbmdDb2RlLnNwbGl0KCctJyk7XHJcbiAgICByZXR1cm4gY29kZSA9PT0gcmVnaW9uPy50b0xvd2VyQ2FzZSgpICYmICFleHRyYTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmVnaW9uRnJvbUxhbmd1YWdlQ29kZShmdWxsTGFuZ0NvZGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgICBjb25zdCBbX2NvZGUsIHJlZ2lvbiwgZXh0cmFdID0gZnVsbExhbmdDb2RlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCByZWdpb25Db2RlID0gZXh0cmEgPyBgJHtyZWdpb259LSR7ZXh0cmF9YCA6IGAke3JlZ2lvbn1gO1xyXG4gICAgcmV0dXJuIHJlZ2lvbkNvZGUudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VGcm9tTGFuZ3VhZ2VDb2RlKGZ1bGxMYW5nQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmdWxsTGFuZ0NvZGUuc3BsaXQoJy0nKVswXS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcclxuICB9XHJcbn1cclxuIl19
|
|
107
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGFuZ3VhZ2UtdHJhbnNsYXRlLnBpcGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZ3gtY29tbW9uL3NyYy9saWIvcGlwZXMvbGFuZ3VhZ2UtdHJhbnNsYXRlL2xhbmd1YWdlLXRyYW5zbGF0ZS5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDOzs7QUFRcEQ7OztFQUdFO0FBQ0YsTUFBTSxPQUFPLHFCQUFxQjtJQWVoQyxZQUE2QixTQUEyQjtRQUEzQixjQUFTLEdBQVQsU0FBUyxDQUFrQjtRQWR2Qyw2QkFBd0IsR0FBRyxXQUFXLENBQUM7UUFJdkMscUJBQWdCLEdBQUcsSUFBSSxHQUFHLEVBQWtCLENBQUM7UUFFOUQscUdBQXFHO1FBQ3BGLHNCQUFpQixHQUE2QjtZQUM3RCxJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDWixJQUFJLEVBQUUsQ0FBQyxJQUFJLENBQUM7U0FDYixDQUFDO1FBR0EsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUN6QyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsS0FBSyxFQUFFLENBQUM7WUFDOUIsSUFBSSxDQUFDLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQztRQUNuRCxDQUFDLENBQUMsQ0FBQztRQUNILElBQUksQ0FBQyxjQUFjLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUM7SUFDbkQsQ0FBQztJQUVELFNBQVMsQ0FBQyxZQUFvQixFQUFFLFVBQVUsR0FBRyxLQUFLO1FBQ2hELElBQUksQ0FBQyxZQUFZLEVBQUUsQ0FBQztZQUNsQixPQUFPLEVBQUUsQ0FBQztRQUNaLENBQUM7UUFF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Q3RELENBQUM7c0hBOUdVLHFCQUFxQjsyRkFBckIscUJBQXFCOztpRkFBckIscUJBQXFCO2NBVGpDLElBQUk7ZUFBQztnQkFDSixJQUFJLEVBQUUsbUJBQW1CO2dCQUN6QixJQUFJLEVBQUUsS0FBSztnQkFDWCxVQUFVLEVBQUUsSUFBSTthQUNqQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnO1xyXG5cclxuQFBpcGUoe1xyXG4gIG5hbWU6ICdsYW5ndWFnZVRyYW5zbGF0ZScsXHJcbiAgcHVyZTogZmFsc2UsXHJcbiAgc3RhbmRhbG9uZTogdHJ1ZVxyXG59KVxyXG4vKipcclxuICBUaGlzIHBpcGUgc2VhcmNoZXMgZm9yIGEgbGFuZ3VhZ2UgY29kZSB0cmFuc2xhdGlvbiB3aXRoaW4gb3VyIEpTT04gZmlsZXMuXHJcbiAgSWYgdGhlIHRyYW5zbGF0aW9uIGZvciBhIGdpdmVuIGxhbmd1YWdlIGNvZGUgaXMgbm90IGZvdW5kIHRoZXJlLCBpdCByZXRyaWV2ZXMgaXQgZnJvbSB0aGUgYnJvd3NlcidzIEludGwgb2JqZWN0LlxyXG4qL1xyXG5leHBvcnQgY2xhc3MgTGFuZ3VhZ2VUcmFuc2xhdGVQaXBlIGltcGxlbWVudHMgUGlwZVRyYW5zZm9ybSB7XHJcbiAgcHJpdmF0ZSByZWFkb25seSBsYW5ndWFnZXNMb2NhbGl6YXRpb25LZXkgPSAnTEFOR1VBR0VTJztcclxuXHJcbiAgcHJpdmF0ZSBsYXN0VWlMYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0aW9uQ2FjaGUgPSBuZXcgTWFwPHN0cmluZywgc3RyaW5nPigpO1xyXG5cclxuICAvLyBGb3IgbGFuZ3VhZ2VzIHdoZXJlIHJlZ2lvbiBpcyBkaWZmZXJlbnQgY29kZSAoYnV0IGluIHJlYWxpdHkgdGhlIHNhbWUpLCB3ZSBzaG91bGQgbm90IHNob3cgcmVnaW9uLlxyXG4gIHByaXZhdGUgcmVhZG9ubHkgbG9jYWxlU2FtZVJlZ2lvbnM6IFJlY29yZDxzdHJpbmcsIHN0cmluZ1tdPiA9IHtcclxuICAgIFwibmJcIjogW1wibm9cIl0sXHJcbiAgICBcInNsXCI6IFtcInNpXCJdLFxyXG4gICAgXCJzdlwiOiBbXCJzZVwiXSxcclxuICAgIFwidWtcIjogW1widWFcIl1cclxuICB9O1xyXG5cclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHRyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSkge1xyXG4gICAgdGhpcy50cmFuc2xhdGUub25MYW5nQ2hhbmdlLnN1YnNjcmliZSgoKSA9PiB7XHJcbiAgICAgIHRoaXMudHJhbnNsYXRpb25DYWNoZS5jbGVhcigpO1xyXG4gICAgICB0aGlzLmxhc3RVaUxhbmd1YWdlID0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmc7XHJcbiAgICB9KTtcclxuICAgIHRoaXMubGFzdFVpTGFuZ3VhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuICB9XHJcblxyXG4gIHRyYW5zZm9ybShmdWxsTGFuZ0NvZGU6IHN0cmluZywgaGlkZVJlZ2lvbiA9IGZhbHNlKTogc3RyaW5nIHtcclxuICAgIGlmICghZnVsbExhbmdDb2RlKSB7XHJcbiAgICAgIHJldHVybiAnJztcclxuICAgIH1cclxuXHJcbiAgICBpZiAodGhpcy5sYXN0VWlMYW5ndWFnZSAhPT0gdGhpcy50cmFuc2xhdGUuY3VycmVudExhbmcpIHtcclxuICAgICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLmNsZWFyKCk7XHJcbiAgICAgIHRoaXMubGFzdFVpTGFuZ3VhZ2UgPSB0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZztcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCBjYWNoZUtleSA9IGAke2Z1bGxMYW5nQ29kZX06JHtoaWRlUmVnaW9ufWA7XHJcblxyXG4gICAgaWYgKHRoaXMudHJhbnNsYXRpb25DYWNoZS5oYXMoY2FjaGVLZXkpKSB7XHJcbiAgICAgIHJldHVybiB0aGlzLnRyYW5zbGF0aW9uQ2FjaGUuZ2V0KGNhY2hlS2V5KSE7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgbGFuZ0NvZGVXaXRob3V0UmVnaW9uID0gdGhpcy5nZXRMYW5ndWFnZUZyb21MYW5ndWFnZUNvZGUoZnVsbExhbmdDb2RlKTtcclxuICAgIGNvbnN0IGlzQ29kZUFuZFJlZ2lvblNhbWUgPSB0aGlzLmlzTGFuZ3VhZ2VDb2RlU2FtZUFzUmVnaW9uKGZ1bGxMYW5nQ29kZSk7XHJcbiAgICBjb25zdCBsYW5nQ29kZUZvclRyYW5zbGF0aW9uID0gaXNDb2RlQW5kUmVnaW9uU2FtZSA/IGxhbmdDb2RlV2l0aG91dFJlZ2lvbiA6IGZ1bGxMYW5nQ29kZTtcclxuXHJcbiAgICBjb25zdCB0cmFuc2xhdGlvbiA9IHRoaXMuZ2V0VHJhbnNsYXRpb24obGFuZ0NvZGVGb3JUcmFuc2xhdGlvbiwgaGlkZVJlZ2lvbik7XHJcblxyXG4gICAgdGhpcy50cmFuc2xhdGlvbkNhY2hlLnNldChjYWNoZUtleSwgdHJhbnNsYXRpb24pO1xyXG5cclxuICAgIHJldHVybiB0cmFuc2xhdGlvbjtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0VHJhbnNsYXRpb24obGFuZ0NvZGU6IHN0cmluZywgaGlkZVJlZ2lvbj86IGJvb2xlYW4pOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VUcmFuc2xhdGlvbnMgPSB0aGlzLnRyYW5zbGF0ZS5pbnN0YW50KHRoaXMubGFuZ3VhZ2VzTG9jYWxpemF0aW9uS2V5KTtcclxuICAgIGxldCB0cmFuc2xhdGlvbiA9XHJcbiAgICAgIC8qKlxyXG4gICAgICAgICAgZS5nLiBJbiBjYXNlIHdlIG5lZWQgdG8gZGlzcGxheSBcImVuLUdCXCIgbGFuZ3VhZ2UgY29kZSBhcyBcIkJyaXRpc2hcIiB3ZSBjYW4gZG8gdGhpc1xyXG4gICAgICAgIGJ5IGFkZGluZyBcIkVOX0dCXCI6IFwiQnJpdGlzaFwiIGluIGxvY2FsaXphdGlvbiBmaWxlcyB1bmRlciBcIkxBTkdVQUdFU1wiIGtleS5cclxuICAgICAgKi9cclxuICAgICAgbGFuZ3VhZ2VUcmFuc2xhdGlvbnNbbGFuZ0NvZGUudG9VcHBlckNhc2UoKS5yZXBsYWNlKCctJywgJ18nKV0gPz9cclxuICAgICAgdGhpcy5nZXRMYW5ndWFnZVRyYW5zbGF0aW9uRnJvbUxhbmd1YWdlQ29kZSh0aGlzLnRyYW5zbGF0ZS5jdXJyZW50TGFuZywgbGFuZ0NvZGUpO1xyXG5cclxuICAgIGlmIChoaWRlUmVnaW9uKSB7XHJcbiAgICAgIHRyYW5zbGF0aW9uID0gdHJhbnNsYXRpb24uc3BsaXQoJygnKVswXS50cmltKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHRyYW5zbGF0aW9uO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBnZXRMYW5ndWFnZVRyYW5zbGF0aW9uRnJvbUxhbmd1YWdlQ29kZShjdXJyZW50TGFuZzogc3RyaW5nLCBjb2RlOiBzdHJpbmcpOiBzdHJpbmcge1xyXG4gICAgY29uc3QgbGFuZ3VhZ2VOYW1lc0luQ3VycmVudExhbmcgPSBuZXcgSW50bC5EaXNwbGF5TmFtZXMoW2N1cnJlbnRMYW5nXSwgeyB0eXBlOiAnbGFuZ3VhZ2UnIH0pO1xyXG4gICAgY29uc3QgcmVnaW9uTmFtZXNJbkN1cnJlbnRMYW5nID0gbmV3IEludGwuRGlzcGxheU5hbWVzKFtjdXJyZW50TGFuZ10sIHsgdHlwZTogJ3JlZ2lvbicgfSk7XHJcblxyXG4gICAgbGV0IHRyYW5zbGF0aW9uOiBzdHJpbmc7XHJcblxyXG4gICAgdHJ5IHtcclxuICAgICAgY29uc3QgbGFuZ3VhZ2UgPSB0aGlzLmdldExhbmd1YWdlRnJvbUxhbmd1YWdlQ29kZShjb2RlKTtcclxuICAgICAgY29uc3QgcmVnaW9uID0gdGhpcy5nZXRSZWdpb25Gcm9tTGFuZ3VhZ2VDb2RlKGNvZGUpO1xyXG5cclxuICAgICAgY29uc3QgbGFuZ3VhZ2V0cmFuc2xhdGlvbiA9IGxhbmd1YWdlTmFtZXNJbkN1cnJlbnRMYW5nLm9mKGxhbmd1YWdlKTtcclxuICAgICAgY29uc3QgcmVnaW9uVHJhbnNsYXRpb24gPSByZWdpb25OYW1lc0luQ3VycmVudExhbmcub2YocmVnaW9uKTtcclxuXHJcbiAgICAgIHRyYW5zbGF0aW9uID0gYCR7bGFuZ3VhZ2V0cmFuc2xhdGlvbn0gKCR7cmVnaW9uVHJhbnNsYXRpb259KWA7XHJcbiAgICB9IGNhdGNoIHtcclxuICAgICAgdHJ5IHtcclxuICAgICAgICB0cmFuc2xhdGlvbiA9IGxhbmd1YWdlTmFtZXNJbkN1cnJlbnRMYW5nLm9mKGNvZGUpIGFzIHN0cmluZztcclxuICAgICAgfSBjYXRjaCB7XHJcbiAgICAgICAgcmV0dXJuIGNvZGU7XHJcbiAgICAgIH1cclxuICAgIH1cclxuXHJcbiAgICByZXR1cm4gdGhpcy5jYXBpdGFsaXplRmlyc3RMZXR0ZXIodHJhbnNsYXRpb24pO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBpc0xhbmd1YWdlQ29kZVNhbWVBc1JlZ2lvbihmdWxsTGFuZ0NvZGU6IHN0cmluZyk6IGJvb2xlYW4ge1xyXG4gICAgY29uc3QgW2NvZGUsIHJlZ2lvbiwgZXh0cmFdID0gZnVsbExhbmdDb2RlLnNwbGl0KCctJyk7XHJcbiAgICByZXR1cm4gKGNvZGUgPT09IHJlZ2lvbj8udG9Mb3dlckNhc2UoKSB8fCB0aGlzLmxvY2FsZVNhbWVSZWdpb25zW2NvZGVdPy5pbmNsdWRlcyhyZWdpb24udG9Mb3dlckNhc2UoKSkpICYmICFleHRyYTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0UmVnaW9uRnJvbUxhbmd1YWdlQ29kZShmdWxsTGFuZ0NvZGU6IHN0cmluZyk6IHN0cmluZyB7XHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLXVudXNlZC12YXJzXHJcbiAgICBjb25zdCBbX2NvZGUsIHJlZ2lvbiwgZXh0cmFdID0gZnVsbExhbmdDb2RlLnNwbGl0KCctJyk7XHJcbiAgICBjb25zdCByZWdpb25Db2RlID0gZXh0cmEgPyBgJHtyZWdpb259LSR7ZXh0cmF9YCA6IGAke3JlZ2lvbn1gO1xyXG4gICAgcmV0dXJuIHJlZ2lvbkNvZGUudG9VcHBlckNhc2UoKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgZ2V0TGFuZ3VhZ2VGcm9tTGFuZ3VhZ2VDb2RlKGZ1bGxMYW5nQ29kZTogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBmdWxsTGFuZ0NvZGUuc3BsaXQoJy0nKVswXS50b0xvd2VyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBjYXBpdGFsaXplRmlyc3RMZXR0ZXIodGV4dDogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIHJldHVybiB0ZXh0LmNoYXJBdCgwKS50b1VwcGVyQ2FzZSgpICsgdGV4dC5zbGljZSgxKTtcclxuICB9XHJcbn1cclxuIl19
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { CommonModule, DatePipe } from '@angular/common';
|
|
2
|
-
import { Component, computed, inject, input } from '@angular/core';
|
|
2
|
+
import { Component, computed, inject, input, output } from '@angular/core';
|
|
3
3
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
4
4
|
import { TranslatePipe } from '@ngx-translate/core';
|
|
5
5
|
import { QuotaType } from '@tilde-nlp/ngx-services';
|
|
@@ -106,17 +106,34 @@ function SubscriptionComponent_Conditional_1_Conditional_13_Template(rf, ctx) {
|
|
|
106
106
|
i0.ɵɵadvance(5);
|
|
107
107
|
i0.ɵɵtextInterpolate(i0.ɵɵpipeBind2(9, 4, currentSubscription_r2.EndDate, "dd.MM.yyyy"));
|
|
108
108
|
} }
|
|
109
|
+
function SubscriptionComponent_Conditional_1_Conditional_14_For_7_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
110
|
+
i0.ɵɵelementStart(0, "span");
|
|
111
|
+
i0.ɵɵtext(1);
|
|
112
|
+
i0.ɵɵelementEnd();
|
|
113
|
+
} if (rf & 2) {
|
|
114
|
+
const item_r3 = i0.ɵɵnextContext().$implicit;
|
|
115
|
+
i0.ɵɵadvance();
|
|
116
|
+
i0.ɵɵtextInterpolate1(" (", item_r3.qt, ")");
|
|
117
|
+
} }
|
|
109
118
|
function SubscriptionComponent_Conditional_1_Conditional_14_For_7_Template(rf, ctx) { if (rf & 1) {
|
|
110
119
|
i0.ɵɵelementStart(0, "span");
|
|
111
120
|
i0.ɵɵtext(1);
|
|
112
121
|
i0.ɵɵelementEnd();
|
|
122
|
+
i0.ɵɵtemplate(2, SubscriptionComponent_Conditional_1_Conditional_14_For_7_Conditional_2_Template, 2, 1, "span");
|
|
123
|
+
i0.ɵɵelementStart(3, "span");
|
|
124
|
+
i0.ɵɵtext(4);
|
|
125
|
+
i0.ɵɵelementEnd();
|
|
113
126
|
} if (rf & 2) {
|
|
114
127
|
const item_r3 = ctx.$implicit;
|
|
115
128
|
const ɵ$index_95_r4 = ctx.$index;
|
|
116
129
|
i0.ɵɵnextContext(2);
|
|
117
130
|
const currentSubscription_r2 = i0.ɵɵreadContextLet(0);
|
|
118
131
|
i0.ɵɵadvance();
|
|
119
|
-
i0.ɵɵ
|
|
132
|
+
i0.ɵɵtextInterpolate(item_r3.id);
|
|
133
|
+
i0.ɵɵadvance();
|
|
134
|
+
i0.ɵɵconditional(item_r3.qt > 1 ? 2 : -1);
|
|
135
|
+
i0.ɵɵadvance(2);
|
|
136
|
+
i0.ɵɵtextInterpolate1(" ", currentSubscription_r2.Addons.length - 1 > ɵ$index_95_r4 ? "," : "", " ");
|
|
120
137
|
} }
|
|
121
138
|
function SubscriptionComponent_Conditional_1_Conditional_14_Template(rf, ctx) { if (rf & 1) {
|
|
122
139
|
i0.ɵɵelementStart(0, "div", 8)(1, "div", 5)(2, "span", 6);
|
|
@@ -124,7 +141,7 @@ function SubscriptionComponent_Conditional_1_Conditional_14_Template(rf, ctx) {
|
|
|
124
141
|
i0.ɵɵpipe(4, "translate");
|
|
125
142
|
i0.ɵɵelementEnd()();
|
|
126
143
|
i0.ɵɵelementStart(5, "div", 7);
|
|
127
|
-
i0.ɵɵrepeaterCreate(6, SubscriptionComponent_Conditional_1_Conditional_14_For_7_Template,
|
|
144
|
+
i0.ɵɵrepeaterCreate(6, SubscriptionComponent_Conditional_1_Conditional_14_For_7_Template, 5, 3, null, null, i0.ɵɵrepeaterTrackByIndex);
|
|
128
145
|
i0.ɵɵelementEnd()();
|
|
129
146
|
} if (rf & 2) {
|
|
130
147
|
i0.ɵɵnextContext();
|
|
@@ -193,7 +210,9 @@ function SubscriptionComponent_Conditional_2_Template(rf, ctx) { if (rf & 1) {
|
|
|
193
210
|
i0.ɵɵrepeater(ctx_r4.visibleQuotas());
|
|
194
211
|
} }
|
|
195
212
|
function SubscriptionComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
196
|
-
i0.ɵɵ
|
|
213
|
+
const _r8 = i0.ɵɵgetCurrentView();
|
|
214
|
+
i0.ɵɵelementStart(0, "a", 13);
|
|
215
|
+
i0.ɵɵlistener("click", function SubscriptionComponent_Conditional_4_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r8); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.manageClicked()); });
|
|
197
216
|
i0.ɵɵtext(1);
|
|
198
217
|
i0.ɵɵpipe(2, "translate");
|
|
199
218
|
i0.ɵɵelementEnd();
|
|
@@ -202,7 +221,9 @@ function SubscriptionComponent_Conditional_4_Template(rf, ctx) { if (rf & 1) {
|
|
|
202
221
|
i0.ɵɵtextInterpolate1(" ", i0.ɵɵpipeBind1(2, 1, "SUBSCRIPTION.MANAGE"), " ");
|
|
203
222
|
} }
|
|
204
223
|
function SubscriptionComponent_Conditional_5_Template(rf, ctx) { if (rf & 1) {
|
|
205
|
-
i0.ɵɵ
|
|
224
|
+
const _r9 = i0.ɵɵgetCurrentView();
|
|
225
|
+
i0.ɵɵelementStart(0, "a", 14);
|
|
226
|
+
i0.ɵɵlistener("click", function SubscriptionComponent_Conditional_5_Template_a_click_0_listener() { i0.ɵɵrestoreView(_r9); const ctx_r4 = i0.ɵɵnextContext(); return i0.ɵɵresetView(ctx_r4.contactUsClicked()); });
|
|
206
227
|
i0.ɵɵtext(1);
|
|
207
228
|
i0.ɵɵpipe(2, "translate");
|
|
208
229
|
i0.ɵɵelementEnd();
|
|
@@ -224,6 +245,8 @@ export class SubscriptionComponent {
|
|
|
224
245
|
this.visibleQuotaTypes = input();
|
|
225
246
|
this.contactUsUrl = input();
|
|
226
247
|
this.chargebeeSettings = input();
|
|
248
|
+
this.manageClick = output();
|
|
249
|
+
this.contactUsClick = output();
|
|
227
250
|
this.visibleQuotas = computed(() => {
|
|
228
251
|
const quota = this.quota();
|
|
229
252
|
if (!quota?.usage) {
|
|
@@ -263,6 +286,12 @@ export class SubscriptionComponent {
|
|
|
263
286
|
ngOnInit() {
|
|
264
287
|
this.#mountChargeBeeScript();
|
|
265
288
|
}
|
|
289
|
+
manageClicked() {
|
|
290
|
+
this.manageClick.emit();
|
|
291
|
+
}
|
|
292
|
+
contactUsClicked() {
|
|
293
|
+
this.contactUsClick.emit();
|
|
294
|
+
}
|
|
266
295
|
#mountChargeBeeScript() {
|
|
267
296
|
const chargebeeSettings = this.chargebeeSettings();
|
|
268
297
|
if (!chargebeeSettings?.site || !chargebeeSettings.script) {
|
|
@@ -327,7 +356,7 @@ export class SubscriptionComponent {
|
|
|
327
356
|
return `${parseFloat((bytes / Math.pow(k, i)).toFixed(dm))} ${sizes[i]}`;
|
|
328
357
|
}
|
|
329
358
|
static { this.ɵfac = function SubscriptionComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || SubscriptionComponent)(); }; }
|
|
330
|
-
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubscriptionComponent, selectors: [["lib-subscription"]], inputs: { token: [1, "token"], subscription: [1, "subscription"], quota: [1, "quota"], visibleQuotaTypes: [1, "visibleQuotaTypes"], contactUsUrl: [1, "contactUsUrl"], chargebeeSettings: [1, "chargebeeSettings"] }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 5, consts: [[1, "subscription-actions-wrapper"], ["mat-flat-button", "", "color", "primary-accent-darker", "href", "javascript:void(0)", "data-cb-type", "portal", 1, "manage-sub-btn", "button-row-element"], ["mat-stroked-button", "", "target", "_blank", "color", "primary-accent-darker"], [1, "subscription-section-title", "text-l-semi-bold"], [1, "subscription-data-row"], [1, "subscription-label"], [1, "label"], [1, "subscription-data"], ["fxLayout", "row", 1, "subscription-data-row"], [1, "subscription-limit-wrapper"], [3, "value"], [1, "subscription-limit"], [1, "text-l-semi-bold"]], template: function SubscriptionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
359
|
+
static { this.ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: SubscriptionComponent, selectors: [["lib-subscription"]], inputs: { token: [1, "token"], subscription: [1, "subscription"], quota: [1, "quota"], visibleQuotaTypes: [1, "visibleQuotaTypes"], contactUsUrl: [1, "contactUsUrl"], chargebeeSettings: [1, "chargebeeSettings"] }, outputs: { manageClick: "manageClick", contactUsClick: "contactUsClick" }, standalone: true, features: [i0.ɵɵStandaloneFeature], decls: 6, vars: 5, consts: [[1, "subscription-actions-wrapper"], ["mat-flat-button", "", "color", "primary-accent-darker", "href", "javascript:void(0)", "data-cb-type", "portal", 1, "manage-sub-btn", "button-row-element"], ["mat-stroked-button", "", "target", "_blank", "color", "primary-accent-darker"], [1, "subscription-section-title", "text-l-semi-bold"], [1, "subscription-data-row"], [1, "subscription-label"], [1, "label"], [1, "subscription-data"], ["fxLayout", "row", 1, "subscription-data-row"], [1, "subscription-limit-wrapper"], [3, "value"], [1, "subscription-limit"], [1, "text-l-semi-bold"], ["mat-flat-button", "", "color", "primary-accent-darker", "href", "javascript:void(0)", "data-cb-type", "portal", 1, "manage-sub-btn", "button-row-element", 3, "click"], ["mat-stroked-button", "", "target", "_blank", "color", "primary-accent-darker", 3, "click"]], template: function SubscriptionComponent_Template(rf, ctx) { if (rf & 1) {
|
|
331
360
|
i0.ɵɵtemplate(0, SubscriptionComponent_Conditional_0_Template, 20, 11)(1, SubscriptionComponent_Conditional_1_Template, 15, 8)(2, SubscriptionComponent_Conditional_2_Template, 5, 3);
|
|
332
361
|
i0.ɵɵelementStart(3, "div", 0);
|
|
333
362
|
i0.ɵɵtemplate(4, SubscriptionComponent_Conditional_4_Template, 3, 3, "a", 1)(5, SubscriptionComponent_Conditional_5_Template, 3, 4, "a", 2);
|
|
@@ -354,7 +383,7 @@ export class SubscriptionComponent {
|
|
|
354
383
|
MatProgressBarModule,
|
|
355
384
|
CommonModule,
|
|
356
385
|
MatButtonModule
|
|
357
|
-
], template: "@if(token()){\r\n <!-- narrow type to non null property -->\r\n @let userToken = token()!;\r\n\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.USER_INFO\" | translate }}</h3>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_NAME\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_EMAIL\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.email }}</span>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if(subscription()){\r\n @let currentSubscription = subscription()!;\r\n\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_PLAN_ID\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>\r\n {{ currentSubscription.Label ? currentSubscription.Label : currentSubscription.PlanId }}\r\n\r\n @switch (subscriptionState()) {\r\n @case(subscriptionStates.TRIAL){\r\n <span> ({{ \"SUBSCRIPTION.TRIAL_END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n @case (subscriptionStates.ACTIVE) {\r\n @if(currentSubscription.EndDate){\r\n <span> ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n }\r\n @case (subscriptionStates.ENDED) {\r\n ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }})\r\n }\r\n }\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n @if(currentSubscription.EndDate){\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_END_DATE\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>{{currentSubscription.EndDate | date: \"dd.MM.yyyy\"}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if(currentSubscription.Addons?.length){\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.ADDITIONS_PLUGINS\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n @for (item of currentSubscription.Addons; track $index; let i = $index) {\r\n <span>{{ item.id }}{{ currentSubscription.Addons!.length - 1 > i ? \",\" : \"\" }} </span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n@if(visibleQuotas().length){\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.LIMITS\" | translate }}</h3>\r\n\r\n @for (currentQuota of visibleQuotas(); track $index) {\r\n <div class=\"subscription-limit-wrapper\">\r\n <mat-progress-bar [value]=\"currentQuota.percentUsed\"></mat-progress-bar>\r\n <div class=\"subscription-limit\">\r\n <span class=\"text-l-semi-bold\">\r\n {{ (\"QUOTA.\" + (currentQuota.quotaType.toString() | uppercase) + (currentQuota.isUnlimited? \"_UNLIMITED\": \"\")) | translate: { used: currentQuota.convertedUsed, limit: currentQuota.convertedLimit, percent: currentQuota.percentUsed} }}\r\n </span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<div class=\"subscription-actions-wrapper\">\r\n @if(chargebeeSettings()){\r\n <a mat-flat-button color=\"primary-accent-darker\" class=\"manage-sub-btn button-row-element\" href=\"javascript:void(0)\" data-cb-type=\"portal\">\r\n {{ \"SUBSCRIPTION.MANAGE\" | translate }}\r\n </a>\r\n }\r\n @if(contactUsUrl()){\r\n <a mat-stroked-button [attr.href]=\"contactUsUrl()\" target=\"_blank\" color=\"primary-accent-darker\">{{\"SUBSCRIPTION.CONTACT\" | translate}}</a>\r\n }\r\n</div>\r\n", styles: [":host{display:block}mat-card{margin:1.5rem}.subscription-container:not(.mobile){margin:16px 32px}.subscription-section-title{margin:32px 0 18px}.subscription-data-row{border-bottom:2px solid var(--base-70);margin-bottom:18px;flex-direction:row;display:flex}.subscription-data{color:var(--base-30);word-wrap:break-word;margin-left:.5rem}.subscription-limit-wrapper,.subscription-limit{margin-top:16px}.subscription-actions-wrapper{padding:32px 0 18px;display:flex;flex-direction:row;gap:24px}.subscription-manage-link{text-decoration:none}.subscription-container:not(.mobile,.empty){width:75%}.subscription-label:not(.mobile,.empty){width:35%}.subscription-data:not(.mobile,.empty){width:65%}.untranslated-files-disclaimer{margin-top:16px;margin-bottom:10px;color:var(--base-40)}.no-subscription-message{margin-top:32px;color:var(--base-40)}.contact-sales-btn{text-align:center}.contact-sales-btn:hover{text-decoration:none}\n"] }]
|
|
386
|
+
], template: "@if(token()){\r\n <!-- narrow type to non null property -->\r\n @let userToken = token()!;\r\n\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.USER_INFO\" | translate }}</h3>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_NAME\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.name }}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_EMAIL\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <span>{{ userToken.email }}</span>\r\n </div>\r\n </div>\r\n}\r\n\r\n@if(subscription()){\r\n @let currentSubscription = subscription()!;\r\n\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_PLAN_ID\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>\r\n {{ currentSubscription.Label ? currentSubscription.Label : currentSubscription.PlanId }}\r\n\r\n @switch (subscriptionState()) {\r\n @case(subscriptionStates.TRIAL){\r\n <span> ({{ \"SUBSCRIPTION.TRIAL_END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n @case (subscriptionStates.ACTIVE) {\r\n @if(currentSubscription.EndDate){\r\n <span> ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }}) </span>\r\n }\r\n }\r\n @case (subscriptionStates.ENDED) {\r\n ({{ \"SUBSCRIPTION.END_DATE\" | translate: { date: currentSubscription.EndDate | date: \"dd.MM.yyyy.\" } }})\r\n }\r\n }\r\n </span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n\r\n @if(currentSubscription.EndDate){\r\n <div class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.LABEL_SUBSCRIPTION_END_DATE\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n <ng-container>\r\n <span>{{currentSubscription.EndDate | date: \"dd.MM.yyyy\"}}</span>\r\n </ng-container>\r\n </div>\r\n </div>\r\n }\r\n\r\n @if(currentSubscription.Addons?.length){\r\n <div fxLayout=\"row\" class=\"subscription-data-row\">\r\n <div class=\"subscription-label\">\r\n <span class=\"label\">{{ \"SUBSCRIPTION.ADDITIONS_PLUGINS\" | translate }}</span>\r\n </div>\r\n\r\n <div class=\"subscription-data\">\r\n @for (item of currentSubscription.Addons; track $index; let i = $index) {\r\n <span>{{ item.id }}</span>\r\n @if(item.qt>1){\r\n <span> ({{item.qt}})</span>\r\n }\r\n <span> {{ currentSubscription.Addons!.length - 1 > i ? \",\" : \"\" }} </span>\r\n }\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n@if(visibleQuotas().length){\r\n <h3 class=\"subscription-section-title text-l-semi-bold\">{{ \"SUBSCRIPTION.LIMITS\" | translate }}</h3>\r\n\r\n @for (currentQuota of visibleQuotas(); track $index) {\r\n <div class=\"subscription-limit-wrapper\">\r\n <mat-progress-bar [value]=\"currentQuota.percentUsed\"></mat-progress-bar>\r\n <div class=\"subscription-limit\">\r\n <span class=\"text-l-semi-bold\">\r\n {{ (\"QUOTA.\" + (currentQuota.quotaType.toString() | uppercase) + (currentQuota.isUnlimited? \"_UNLIMITED\": \"\")) | translate: { used: currentQuota.convertedUsed, limit: currentQuota.convertedLimit, percent: currentQuota.percentUsed} }}\r\n </span>\r\n </div>\r\n </div>\r\n }\r\n}\r\n\r\n<div class=\"subscription-actions-wrapper\">\r\n @if(chargebeeSettings()){\r\n <a mat-flat-button color=\"primary-accent-darker\" class=\"manage-sub-btn button-row-element\" href=\"javascript:void(0)\" data-cb-type=\"portal\" (click)=\"manageClicked()\">\r\n {{ \"SUBSCRIPTION.MANAGE\" | translate }}\r\n </a>\r\n }\r\n @if(contactUsUrl()){\r\n <a mat-stroked-button [attr.href]=\"contactUsUrl()\" target=\"_blank\" color=\"primary-accent-darker\" (click)=\"contactUsClicked()\">{{\"SUBSCRIPTION.CONTACT\" | translate}}</a>\r\n }\r\n</div>\r\n", styles: [":host{display:block}mat-card{margin:1.5rem}.subscription-container:not(.mobile){margin:16px 32px}.subscription-section-title{margin:32px 0 18px}.subscription-data-row{border-bottom:2px solid var(--base-70);margin-bottom:18px;flex-direction:row;display:flex}.subscription-data{color:var(--base-30);word-wrap:break-word;margin-left:.5rem}.subscription-limit-wrapper,.subscription-limit{margin-top:16px}.subscription-actions-wrapper{padding:32px 0 18px;display:flex;flex-direction:row;gap:24px}.subscription-manage-link{text-decoration:none}.subscription-container:not(.mobile,.empty){width:75%}.subscription-label:not(.mobile,.empty){width:35%}.subscription-data:not(.mobile,.empty){width:65%}.untranslated-files-disclaimer{margin-top:16px;margin-bottom:10px;color:var(--base-40)}.no-subscription-message{margin-top:32px;color:var(--base-40)}.contact-sales-btn{text-align:center}.contact-sales-btn:hover{text-decoration:none}\n"] }]
|
|
358
387
|
}], null, null); })();
|
|
359
388
|
(() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(SubscriptionComponent, { className: "SubscriptionComponent", filePath: "lib\\subscription\\subscription.component.ts", lineNumber: 27 }); })();
|
|
360
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQztBQUMzRSxPQUFPLEVBQUUsb0JBQW9CLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUN0RSxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFDcEQsT0FBTyxFQUFpQixTQUFTLEVBQWMsTUFBTSx5QkFBeUIsQ0FBQztBQUcvRSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxrQ0FBa0MsQ0FBQztBQUV0RSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7Ozs7Ozs7O0lDUmhFLGtCQUF5QjtJQUV2Qiw2QkFBd0Q7SUFBQSxZQUEwQzs7SUFBQSxpQkFBSztJQUluRyxBQURGLEFBREYsOEJBQW1DLGFBQ0QsY0FDVjtJQUFBLFlBQTJDOztJQUNqRSxBQURpRSxpQkFBTyxFQUNsRTtJQUdKLEFBREYsOEJBQStCLFlBQ3ZCO0lBQUEsYUFBb0I7SUFFOUIsQUFERSxBQUQ0QixpQkFBTyxFQUM3QixFQUNGO0lBSUYsQUFERixBQURGLCtCQUFtQyxjQUNELGVBQ1Y7SUFBQSxhQUE0Qzs7SUFDbEUs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QUFFLENBQUMsQ0FBQyxDQUFDLENBQUMsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLElBQUksS0FBSyxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUE7SUFDMUUsQ0FBQztzSEEvSFUscUJBQXFCO29FQUFyQixxQkFBcUI7WUM2RGxDLEFBNURBLEFBM0JBLHNFQUFhLHdEQTJCTyx1REE0RFE7WUFlNUIsOEJBQTBDO1lBTXhDLEFBTEEsNEVBQXlCLCtEQUtMO1lBR3RCLGlCQUFNOztZQS9HTixzQ0F5QkM7WUFFRCxjQTBEQztZQTFERCw2Q0EwREM7WUFFRCxjQWFDO1lBYkQscURBYUM7WUFHQyxlQUlDO1lBSkQsa0RBSUM7WUFDRCxjQUVDO1lBRkQsNkNBRUM7NEJEN0ZDLGFBQWE7WUFDYixRQUFRO1lBQ1Isb0JBQW9CLHFCQUNwQixZQUFZLG9CQUNaLGVBQWU7O2lGQUtOLHFCQUFxQjtjQWJqQyxTQUFTOzJCQUNFLGtCQUFrQixjQUNoQixJQUFJLFdBQ1A7b0JBQ1AsYUFBYTtvQkFDYixRQUFRO29CQUNSLG9CQUFvQjtvQkFDcEIsWUFBWTtvQkFDWixlQUFlO2lCQUNoQjs7a0ZBSVUscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tbW9uTW9kdWxlLCBEYXRlUGlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgY29tcHV0ZWQsIGluamVjdCwgaW5wdXQsIE9uSW5pdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgUXVvdGFSZXNwb25zZSwgUXVvdGFUeXBlLCBRdW90YVVzYWdlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBdXRoU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vY29yZS9hdXRoL2F1dGgtc3Vic2NyaXB0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSnd0VG9rZW4gfSBmcm9tICcuLi9jb3JlL2F1dGgvand0LXRva2VuLm1vZGVsJztcclxuaW1wb3J0IHsgU1VCU0NSSVBUSU9OX1NUQVRFIH0gZnJvbSAnLi9tb2RlbHMvc3Vic2NyaXB0aW9uLXN0YXRlLmVudW0nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25RdW90YURpc3BsYXkgfSBmcm9tICcuL21vZGVscy9zdWJzY3JpcHRpb24tcXVvdGEtZGlzcGxheS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IENoYXJnZWJlZU1vdW50U2VydmljZSB9IGZyb20gJy4vY2hhcmdlYmVlLW1vdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFyZ2ViZWVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL2NoYXJnZWJlZS1zZXR0aW5ncy5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWJzY3JpcHRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIERhdGVQaXBlLFxyXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdWJzY3JpcHRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5ICNjaGFyZ2ViZWVNb3VudFNlcnZpY2UgPSBpbmplY3QoQ2hhcmdlYmVlTW91bnRTZXJ2aWNlKTtcclxuXHJcbiAgLyoqIFBhcnNlZCB1c2VyIHRva2VuIHRvIGdldCB1c2VyIHJlbGF0ZWQgaW5mbyAqL1xyXG4gIHJlYWRvbmx5IHRva2VuID0gaW5wdXQucmVxdWlyZWQ8Snd0VG9rZW4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgLyoqIEN1cnJlbnQgdXNlciBwbGFuIHRoYXQgYXBwIGhhcyBzZWxlY3RlZCAqL1xyXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IGlucHV0LnJlcXVpcmVkPEF1dGhTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ+KCk7XHJcbiAgLyoqIFF1b3RhIHVzYWdlICovXHJcbiAgcmVhZG9ubHkgcXVvdGEgPSBpbnB1dC5yZXF1aXJlZDxRdW90YVJlc3BvbnNlIHwgdW5kZWZpbmVkPigpO1xyXG4gIHJlYWRvbmx5IHZpc2libGVRdW90YVR5cGVzID0gaW5wdXQ8UXVvdGFUeXBlW10+KCk7XHJcbiAgcmVhZG9ubHkgY29udGFjdFVzVXJsID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gIHJlYWRvbmx5IGNoYXJnZWJlZVNldHRpbmdzID0gaW5wdXQ8Q2hhcmdlYmVlU2V0dGluZ3M+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHZpc2libGVRdW90YXMgPSBjb21wdXRlZDxTdWJzY3JpcHRpb25RdW90YURpc3BsYXlbXT4oKCkgPT4ge1xyXG4gICAgY29uc3QgcXVvdGEgPSB0aGlzLnF1b3RhKCk7XHJcbiAgICBpZiAoIXF1b3RhPy51c2FnZSkge1xyXG4gICAgICByZXR1cm4gW107XHJcbiAgICB9XHJcblxyXG4gICAgbGV0IGZpbHRlcmVkOiBRdW90YVVzYWdlW107XHJcbiAgICBpZiAoIXRoaXMudmlzaWJsZVF1b3RhVHlwZXMoKSkge1xyXG4gICAgICBmaWx0ZXJlZCA9IHF1b3RhLnVzYWdlO1xyXG4gICAgfVxyXG4gICAgZWxzZSB7XHJcbiAgICAgIGZpbHRlcmVkID0gcXVvdGEudXNhZ2UuZmlsdGVyKHF1b3RhID0+IHRoaXMudmlzaWJsZVF1b3RhVHlwZXMoKT8uaW5jbHVkZXMocXVvdGEucXVvdGFUeXBlKSk7XHJcbiAgICB9XHJcblxyXG4gICAgY29uc3QgdmlzaWJsZVF1b3RhczogU3Vic2NyaXB0aW9uUXVvdGFEaXNwbGF5W10gPSBmaWx0ZXJlZC5tYXAocXVvdGEgPT4ge1xyXG4gICAgICByZXR1cm4gdGhpcy4jY29udmVydFVzYWdlVG9EaXNwbGF5UXVvdGEocXVvdGEpO1xyXG4gICAgfSk7XHJcbiAgICByZXR1cm4gdmlzaWJsZVF1b3RhcztcclxuICB9KVxyXG5cclxuICByZWFkb25seSBzdWJzY3JpcHRpb25TdGF0ZXMgPSBTVUJTQ1JJUFRJT05fU1RBVEU7XHJcblxyXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvblN0YXRlID0gY29tcHV0ZWQoKCkgPT4ge1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGhpcy5zdWJzY3JpcHRpb24oKTtcclxuICAgIGlmICghc3Vic2NyaXB0aW9uKSB7XHJcbiAgICAgIHJldHVybiBTVUJTQ1JJUFRJT05fU1RBVEUuTk9ORTtcclxuICAgIH1cclxuXHJcbiAgICBpZiAoc3Vic2NyaXB0aW9uLklzVHJpYWwpIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5UUklBTDtcclxuICAgIH1cclxuXHJcblxyXG4gICAgY29uc3Qgbm93ID0gbmV3IERhdGUoKTtcclxuICAgIGlmICghc3Vic2NyaXB0aW9uLkVuZERhdGUgfHwgbmV3IERhdGUoc3Vic2NyaXB0aW9uLkVuZERhdGUpIDwgbm93KSB7XHJcbiAgICAgIHJldHVybiBTVUJTQ1JJUFRJT05fU1RBVEUuQUNUSVZFO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5FTkRFRDtcclxuICAgIH1cclxuICB9KTtcclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLiNtb3VudENoYXJnZUJlZVNjcmlwdCgpO1xyXG4gIH1cclxuXHJcbiAgI21vdW50Q2hhcmdlQmVlU2NyaXB0KCkge1xyXG4gICAgY29uc3QgY2hhcmdlYmVlU2V0dGluZ3MgPSB0aGlzLmNoYXJnZWJlZVNldHRpbmdzKCk7XHJcbiAgICBpZiAoIWNoYXJnZWJlZVNldHRpbmdzPy5zaXRlIHx8ICFjaGFyZ2ViZWVTZXR0aW5ncy5zY3JpcHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy4jY2hhcmdlYmVlTW91bnRTZXJ2aWNlLmNoYXJnZWJlZU1vdW50ZWQpIHtcclxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgZWwub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY29uc3Qgd2luZG93T2JqOiBhbnkgPSB3aW5kb3c7XHJcbiAgICAgICAgd2luZG93T2JqLkNoYXJnZWJlZS5pbml0KHtcclxuICAgICAgICAgIHNpdGU6IGNoYXJnZWJlZVNldHRpbmdzLnNpdGVcclxuICAgICAgICB9KTtcclxuICAgICAgICB3aW5kb3dPYmouQ2hhcmdlYmVlLnJlZ2lzdGVyQWdhaW4oKTtcclxuICAgICAgICB0aGlzLiNjaGFyZ2ViZWVNb3VudFNlcnZpY2UuY2hhcmdlYmVlTW91bnRlZCA9IHRydWU7XHJcbiAgICAgIH07XHJcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnc3JjJywgY2hhcmdlYmVlU2V0dGluZ3Muc2NyaXB0KTtcclxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjb25zdCB3aW5kb3dPYmo6IGFueSA9IHdpbmRvdztcclxuICAgICAgd2luZG93T2JqLkNoYXJnZWJlZS5yZWdpc3RlckFnYWluKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjY29udmVydFVzYWdlVG9EaXNwbGF5UXVvdGEocXVvdGE6IFF1b3RhVXNhZ2UpOiBTdWJzY3JpcHRpb25RdW90YURpc3BsYXkge1xyXG4gICAgLy8gaW50IG1heCBpbiBjI1xyXG4gICAgY29uc3QgdW5saW1pdGVkQmVuY2htYXJrID0gMjE0NzQ4MzY0NztcclxuXHJcbiAgICBjb25zdCB1c2VkID0gcXVvdGEucXVvdGFMaW1pdCAtIHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgbGV0IGNvbnZlcnRlZExpbWl0ID0gcXVvdGEucXVvdGFMaW1pdC50b1N0cmluZygpO1xyXG4gICAgbGV0IGNvbnZlcnRlZFVzZWQgPSB1c2VkLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBpc1VubGltaXRlZCA9IHVubGltaXRlZEJlbmNobWFyayA8PSBxdW90YS5xdW90YUxpbWl0O1xyXG4gICAgY29uc3QgcGVyY2VudFVzZWQgPSBNYXRoLnJvdW5kKCgocXVvdGEucXVvdGFMaW1pdCAtIHF1b3RhLnF1b3RhUmVtYWluaW5nKSAvIHF1b3RhLnF1b3RhTGltaXQpICogMTAwKTtcclxuXHJcbiAgICBzd2l0Y2ggKHF1b3RhLnF1b3RhVHlwZSkge1xyXG4gICAgICBjYXNlIFF1b3RhVHlwZS5BU1JfRklMRV9MRU5HVEhfU0VDT05EUzpcclxuICAgICAgY2FzZSBRdW90YVR5cGUuT05MSU5FX0FTUl9VU0VEX1NFQ09ORFM6XHJcbiAgICAgICAgY29udmVydGVkTGltaXQgPSBNYXRoLmNlaWwocXVvdGEucXVvdGFMaW1pdCAvIDYwKS50b1N0cmluZygpO1xyXG4gICAgICAgIGNvbnZlcnRlZFVzZWQgPSBNYXRoLnJvdW5kKHVzZWQgLyA2MCkudG9TdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBRdW90YVR5cGUuQVNSX0ZJTEVfU0laRV9LQjpcclxuICAgICAgICBjb252ZXJ0ZWRMaW1pdCA9IHRoaXMuI2Zvcm1hdEJ5dGVzKHF1b3RhLnF1b3RhTGltaXQgKiAxMDI0KTtcclxuICAgICAgICBjb252ZXJ0ZWRVc2VkID0gdGhpcy4jZm9ybWF0Qnl0ZXModXNlZCAqIDEwMjQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFF1b3RhVHlwZS5MTE1fUkVRVUVTVFM6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucXVvdGEsXHJcbiAgICAgIGNvbnZlcnRlZExpbWl0LFxyXG4gICAgICBjb252ZXJ0ZWRVc2VkLFxyXG4gICAgICBpc1VubGltaXRlZCxcclxuICAgICAgcGVyY2VudFVzZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjZm9ybWF0Qnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHMgPSAwKSB7XHJcbiAgICBpZiAoIStieXRlcykgcmV0dXJuICcwIEJ5dGVzJ1xyXG5cclxuICAgIGNvbnN0IGsgPSAxMDI0XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDwgMCA/IDAgOiBkZWNpbWFsc1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ11cclxuXHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSlcclxuXHJcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpfSAke3NpemVzW2ldfWBcclxuICB9XHJcblxyXG59XHJcbiIsIkBpZih0b2tlbigpKXtcclxuICA8IS0tIG5hcnJvdyB0eXBlIHRvIG5vbiBudWxsIHByb3BlcnR5IC0tPlxyXG4gIEBsZXQgdXNlclRva2VuID0gdG9rZW4oKSE7XHJcblxyXG4gICAgPGgzIGNsYXNzPVwic3Vic2NyaXB0aW9uLXNlY3Rpb24tdGl0bGUgdGV4dC1sLXNlbWktYm9sZFwiPnt7IFwiU1VCU0NSSVBUSU9OLlVTRVJfSU5GT1wiIHwgdHJhbnNsYXRlIH19PC9oMz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGEtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uTEFCRUxfTkFNRVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIDxzcGFuPnt7IHVzZXJUb2tlbi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBcIlNVQlNDUklQVElPTi5MQUJFTF9FTUFJTFwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIDxzcGFuPnt7IHVzZXJUb2tlbi5lbWFpbCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxufVxyXG5cclxuQGlmKHN1YnNjcmlwdGlvbigpKXtcclxuICBAbGV0IGN1cnJlbnRTdWJzY3JpcHRpb24gPSBzdWJzY3JpcHRpb24oKSE7XHJcblxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInN1YnNjcmlwdGlvbi1kYXRhLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uTEFCRUxfU1VCU0NSSVBUSU9OX1BMQU5fSURcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAge3sgY3VycmVudFN1YnNjcmlwdGlvbi5MYWJlbCA/IGN1cnJlbnRTdWJzY3JpcHRpb24uTGFiZWwgOiBjdXJyZW50U3Vic2NyaXB0aW9uLlBsYW5JZCB9fVxyXG5cclxuICAgICAgICAgIEBzd2l0Y2ggKHN1YnNjcmlwdGlvblN0YXRlKCkpIHtcclxuICAgICAgICAgICAgQGNhc2Uoc3Vic2NyaXB0aW9uU3RhdGVzLlRSSUFMKXtcclxuICAgICAgICAgICAgICA8c3Bhbj4gKHt7IFwiU1VCU0NSSVBUSU9OLlRSSUFMX0VORF9EQVRFXCIgfCB0cmFuc2xhdGU6IHsgZGF0ZTogY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlIHwgZGF0ZTogXCJkZC5NTS55eXl5LlwiIH0gfX0pIDwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoc3Vic2NyaXB0aW9uU3RhdGVzLkFDVElWRSkge1xyXG4gICAgICAgICAgICAgIEBpZihjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUpe1xyXG4gICAgICAgICAgICAgICAgPHNwYW4+ICh7eyBcIlNVQlNDUklQVElPTi5FTkRfREFURVwiIHwgdHJhbnNsYXRlOiB7IGRhdGU6IGN1cnJlbnRTdWJzY3JpcHRpb24uRW5kRGF0ZSB8IGRhdGU6IFwiZGQuTU0ueXl5eS5cIiB9IH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChzdWJzY3JpcHRpb25TdGF0ZXMuRU5ERUQpIHtcclxuICAgICAgICAgICAgKHt7IFwiU1VCU0NSSVBUSU9OLkVORF9EQVRFXCIgfCB0cmFuc2xhdGU6IHsgZGF0ZTogY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlIHwgZGF0ZTogXCJkZC5NTS55eXl5LlwiIH0gfX0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIEBpZihjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUpe1xyXG4gIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IFwiU1VCU0NSSVBUSU9OLkxBQkVMX1NVQlNDUklQVElPTl9FTkRfREFURVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1kYXRhXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4+e3tjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUgfCBkYXRlOiBcImRkLk1NLnl5eXlcIn19PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYoY3VycmVudFN1YnNjcmlwdGlvbi5BZGRvbnM/Lmxlbmd0aCl7XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBcIlNVQlNDUklQVElPTi5BRERJVElPTlNfUExVR0lOU1wiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY3VycmVudFN1YnNjcmlwdGlvbi5BZGRvbnM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5pZCB9fXt7IGN1cnJlbnRTdWJzY3JpcHRpb24uQWRkb25zIS5sZW5ndGggLSAxID4gaSA/IFwiLFwiIDogXCJcIiB9fSA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufVxyXG5cclxuQGlmKHZpc2libGVRdW90YXMoKS5sZW5ndGgpe1xyXG4gIDxoMyBjbGFzcz1cInN1YnNjcmlwdGlvbi1zZWN0aW9uLXRpdGxlIHRleHQtbC1zZW1pLWJvbGRcIj57eyBcIlNVQlNDUklQVElPTi5MSU1JVFNcIiB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcblxyXG4gIEBmb3IgKGN1cnJlbnRRdW90YSBvZiB2aXNpYmxlUXVvdGFzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1saW1pdC13cmFwcGVyXCI+XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJjdXJyZW50UXVvdGEucGVyY2VudFVzZWRcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGltaXRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbC1zZW1pLWJvbGRcIj5cclxuICAgICAgICAgIHt7IChcIlFVT1RBLlwiICsgKGN1cnJlbnRRdW90YS5xdW90YVR5cGUudG9TdHJpbmcoKSB8IHVwcGVyY2FzZSkgKyAoY3VycmVudFF1b3RhLmlzVW5saW1pdGVkPyBcIl9VTkxJTUlURURcIjogXCJcIikpIHwgdHJhbnNsYXRlOiB7IHVzZWQ6IGN1cnJlbnRRdW90YS5jb252ZXJ0ZWRVc2VkLCBsaW1pdDogY3VycmVudFF1b3RhLmNvbnZlcnRlZExpbWl0LCBwZXJjZW50OiBjdXJyZW50UXVvdGEucGVyY2VudFVzZWR9IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufVxyXG5cclxuPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1hY3Rpb25zLXdyYXBwZXJcIj5cclxuICBAaWYoY2hhcmdlYmVlU2V0dGluZ3MoKSl7XHJcbiAgICA8YSBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5LWFjY2VudC1kYXJrZXJcIiBjbGFzcz1cIm1hbmFnZS1zdWItYnRuIGJ1dHRvbi1yb3ctZWxlbWVudFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBkYXRhLWNiLXR5cGU9XCJwb3J0YWxcIj5cclxuICAgICAge3sgXCJTVUJTQ1JJUFRJT04uTUFOQUdFXCIgfCB0cmFuc2xhdGUgfX1cclxuICAgIDwvYT5cclxuICB9XHJcbiAgQGlmKGNvbnRhY3RVc1VybCgpKXtcclxuICAgIDxhIG1hdC1zdHJva2VkLWJ1dHRvbiBbYXR0ci5ocmVmXT1cImNvbnRhY3RVc1VybCgpXCIgdGFyZ2V0PVwiX2JsYW5rXCIgY29sb3I9XCJwcmltYXJ5LWFjY2VudC1kYXJrZXJcIj57e1wiU1VCU0NSSVBUSU9OLkNPTlRBQ1RcIiB8IHRyYW5zbGF0ZX19PC9hPlxyXG4gIH1cclxuPC9kaXY+XHJcbiJdfQ==
|
|
389
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic3Vic2NyaXB0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC1jb21tb24vc3JjL2xpYi9zdWJzY3JpcHRpb24vc3Vic2NyaXB0aW9uLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxZQUFZLEVBQUUsUUFBUSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDekQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkYsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sZ0NBQWdDLENBQUM7QUFDdEUsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3BELE9BQU8sRUFBaUIsU0FBUyxFQUFjLE1BQU0seUJBQXlCLENBQUM7QUFHL0UsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sa0NBQWtDLENBQUM7QUFFdEUsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzNELE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLDJCQUEyQixDQUFDOzs7Ozs7OztJQ1JoRSxrQkFBeUI7SUFFdkIsNkJBQXdEO0lBQUEsWUFBMEM7O0lBQUEsaUJBQUs7SUFJbkcsQUFERixBQURGLDhCQUFtQyxhQUNELGNBQ1Y7SUFBQSxZQUEyQzs7SUFDakUsQUFEaUUsaUJBQU8sRUFDbEU7SUFHSixBQURGLDhCQUErQixZQUN2QjtJQUFBLGFBQW9CO0lBRTlCLEFBREUsQUFENEIsaUJBQU8sRUFDN0IsRUFDRjtJQUlGLEFBREYsQUFERiwrQkFBbUMsY0FDRCxlQUNWO0lBQUEsYUFB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InNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSwgRGF0ZVBpcGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBDb21wb25lbnQsIGNvbXB1dGVkLCBpbmplY3QsIGlucHV0LCBPbkluaXQsIG91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXRQcm9ncmVzc0Jhck1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Byb2dyZXNzLWJhcic7XHJcbmltcG9ydCB7IFRyYW5zbGF0ZVBpcGUgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcclxuaW1wb3J0IHsgUXVvdGFSZXNwb25zZSwgUXVvdGFUeXBlLCBRdW90YVVzYWdlIH0gZnJvbSAnQHRpbGRlLW5scC9uZ3gtc2VydmljZXMnO1xyXG5pbXBvcnQgeyBBdXRoU3Vic2NyaXB0aW9uIH0gZnJvbSAnLi4vY29yZS9hdXRoL2F1dGgtc3Vic2NyaXB0aW9uLm1vZGVsJztcclxuaW1wb3J0IHsgSnd0VG9rZW4gfSBmcm9tICcuLi9jb3JlL2F1dGgvand0LXRva2VuLm1vZGVsJztcclxuaW1wb3J0IHsgU1VCU0NSSVBUSU9OX1NUQVRFIH0gZnJvbSAnLi9tb2RlbHMvc3Vic2NyaXB0aW9uLXN0YXRlLmVudW0nO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb25RdW90YURpc3BsYXkgfSBmcm9tICcuL21vZGVscy9zdWJzY3JpcHRpb24tcXVvdGEtZGlzcGxheS5tb2RlbCc7XHJcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XHJcbmltcG9ydCB7IENoYXJnZWJlZU1vdW50U2VydmljZSB9IGZyb20gJy4vY2hhcmdlYmVlLW1vdW50LnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBDaGFyZ2ViZWVTZXR0aW5ncyB9IGZyb20gJy4vbW9kZWxzL2NoYXJnZWJlZS1zZXR0aW5ncy5tb2RlbCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1zdWJzY3JpcHRpb24nLFxyXG4gIHN0YW5kYWxvbmU6IHRydWUsXHJcbiAgaW1wb3J0czogW1xyXG4gICAgVHJhbnNsYXRlUGlwZSxcclxuICAgIERhdGVQaXBlLFxyXG4gICAgTWF0UHJvZ3Jlc3NCYXJNb2R1bGUsXHJcbiAgICBDb21tb25Nb2R1bGUsXHJcbiAgICBNYXRCdXR0b25Nb2R1bGVcclxuICBdLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9zdWJzY3JpcHRpb24uY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9zdWJzY3JpcHRpb24uY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBTdWJzY3JpcHRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xyXG4gIHJlYWRvbmx5ICNjaGFyZ2ViZWVNb3VudFNlcnZpY2UgPSBpbmplY3QoQ2hhcmdlYmVlTW91bnRTZXJ2aWNlKTtcclxuXHJcbiAgLyoqIFBhcnNlZCB1c2VyIHRva2VuIHRvIGdldCB1c2VyIHJlbGF0ZWQgaW5mbyAqL1xyXG4gIHJlYWRvbmx5IHRva2VuID0gaW5wdXQucmVxdWlyZWQ8Snd0VG9rZW4gfCB1bmRlZmluZWQ+KCk7XHJcbiAgLyoqIEN1cnJlbnQgdXNlciBwbGFuIHRoYXQgYXBwIGhhcyBzZWxlY3RlZCAqL1xyXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvbiA9IGlucHV0LnJlcXVpcmVkPEF1dGhTdWJzY3JpcHRpb24gfCB1bmRlZmluZWQ+KCk7XHJcbiAgLyoqIFF1b3RhIHVzYWdlICovXHJcbiAgcmVhZG9ubHkgcXVvdGEgPSBpbnB1dC5yZXF1aXJlZDxRdW90YVJlc3BvbnNlIHwgdW5kZWZpbmVkPigpO1xyXG4gIHJlYWRvbmx5IHZpc2libGVRdW90YVR5cGVzID0gaW5wdXQ8UXVvdGFUeXBlW10+KCk7XHJcbiAgcmVhZG9ubHkgY29udGFjdFVzVXJsID0gaW5wdXQ8c3RyaW5nPigpO1xyXG4gIHJlYWRvbmx5IGNoYXJnZWJlZVNldHRpbmdzID0gaW5wdXQ8Q2hhcmdlYmVlU2V0dGluZ3M+KCk7XHJcblxyXG4gIHJlYWRvbmx5IG1hbmFnZUNsaWNrID0gb3V0cHV0KCk7XHJcbiAgcmVhZG9ubHkgY29udGFjdFVzQ2xpY2sgPSBvdXRwdXQoKTtcclxuXHJcbiAgcmVhZG9ubHkgdmlzaWJsZVF1b3RhcyA9IGNvbXB1dGVkPFN1YnNjcmlwdGlvblF1b3RhRGlzcGxheVtdPigoKSA9PiB7XHJcbiAgICBjb25zdCBxdW90YSA9IHRoaXMucXVvdGEoKTtcclxuICAgIGlmICghcXVvdGE/LnVzYWdlKSB7XHJcbiAgICAgIHJldHVybiBbXTtcclxuICAgIH1cclxuXHJcbiAgICBsZXQgZmlsdGVyZWQ6IFF1b3RhVXNhZ2VbXTtcclxuICAgIGlmICghdGhpcy52aXNpYmxlUXVvdGFUeXBlcygpKSB7XHJcbiAgICAgIGZpbHRlcmVkID0gcXVvdGEudXNhZ2U7XHJcbiAgICB9XHJcbiAgICBlbHNlIHtcclxuICAgICAgZmlsdGVyZWQgPSBxdW90YS51c2FnZS5maWx0ZXIocXVvdGEgPT4gdGhpcy52aXNpYmxlUXVvdGFUeXBlcygpPy5pbmNsdWRlcyhxdW90YS5xdW90YVR5cGUpKTtcclxuICAgIH1cclxuXHJcbiAgICBjb25zdCB2aXNpYmxlUXVvdGFzOiBTdWJzY3JpcHRpb25RdW90YURpc3BsYXlbXSA9IGZpbHRlcmVkLm1hcChxdW90YSA9PiB7XHJcbiAgICAgIHJldHVybiB0aGlzLiNjb252ZXJ0VXNhZ2VUb0Rpc3BsYXlRdW90YShxdW90YSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiB2aXNpYmxlUXVvdGFzO1xyXG4gIH0pXHJcblxyXG4gIHJlYWRvbmx5IHN1YnNjcmlwdGlvblN0YXRlcyA9IFNVQlNDUklQVElPTl9TVEFURTtcclxuXHJcbiAgcmVhZG9ubHkgc3Vic2NyaXB0aW9uU3RhdGUgPSBjb21wdXRlZCgoKSA9PiB7XHJcbiAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLnN1YnNjcmlwdGlvbigpO1xyXG4gICAgaWYgKCFzdWJzY3JpcHRpb24pIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5OT05FO1xyXG4gICAgfVxyXG5cclxuICAgIGlmIChzdWJzY3JpcHRpb24uSXNUcmlhbCkge1xyXG4gICAgICByZXR1cm4gU1VCU0NSSVBUSU9OX1NUQVRFLlRSSUFMO1xyXG4gICAgfVxyXG5cclxuXHJcbiAgICBjb25zdCBub3cgPSBuZXcgRGF0ZSgpO1xyXG4gICAgaWYgKCFzdWJzY3JpcHRpb24uRW5kRGF0ZSB8fCBuZXcgRGF0ZShzdWJzY3JpcHRpb24uRW5kRGF0ZSkgPCBub3cpIHtcclxuICAgICAgcmV0dXJuIFNVQlNDUklQVElPTl9TVEFURS5BQ1RJVkU7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gU1VCU0NSSVBUSU9OX1NUQVRFLkVOREVEO1xyXG4gICAgfVxyXG4gIH0pO1xyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuI21vdW50Q2hhcmdlQmVlU2NyaXB0KCk7XHJcbiAgfVxyXG5cclxuICBtYW5hZ2VDbGlja2VkKCl7XHJcbiAgICB0aGlzLm1hbmFnZUNsaWNrLmVtaXQoKTtcclxuICB9XHJcblxyXG4gIGNvbnRhY3RVc0NsaWNrZWQoKXtcclxuICAgIHRoaXMuY29udGFjdFVzQ2xpY2suZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgI21vdW50Q2hhcmdlQmVlU2NyaXB0KCkge1xyXG4gICAgY29uc3QgY2hhcmdlYmVlU2V0dGluZ3MgPSB0aGlzLmNoYXJnZWJlZVNldHRpbmdzKCk7XHJcbiAgICBpZiAoIWNoYXJnZWJlZVNldHRpbmdzPy5zaXRlIHx8ICFjaGFyZ2ViZWVTZXR0aW5ncy5zY3JpcHQpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGlmICghdGhpcy4jY2hhcmdlYmVlTW91bnRTZXJ2aWNlLmNoYXJnZWJlZU1vdW50ZWQpIHtcclxuICAgICAgY29uc3QgZWwgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcclxuICAgICAgZWwub25sb2FkID0gKCkgPT4ge1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY29uc3Qgd2luZG93T2JqOiBhbnkgPSB3aW5kb3c7XHJcbiAgICAgICAgd2luZG93T2JqLkNoYXJnZWJlZS5pbml0KHtcclxuICAgICAgICAgIHNpdGU6IGNoYXJnZWJlZVNldHRpbmdzLnNpdGVcclxuICAgICAgICB9KTtcclxuICAgICAgICB3aW5kb3dPYmouQ2hhcmdlYmVlLnJlZ2lzdGVyQWdhaW4oKTtcclxuICAgICAgICB0aGlzLiNjaGFyZ2ViZWVNb3VudFNlcnZpY2UuY2hhcmdlYmVlTW91bnRlZCA9IHRydWU7XHJcbiAgICAgIH07XHJcbiAgICAgIGVsLnNldEF0dHJpYnV0ZSgnc3JjJywgY2hhcmdlYmVlU2V0dGluZ3Muc2NyaXB0KTtcclxuICAgICAgZG9jdW1lbnQuaGVhZC5hcHBlbmRDaGlsZChlbCk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICBjb25zdCB3aW5kb3dPYmo6IGFueSA9IHdpbmRvdztcclxuICAgICAgd2luZG93T2JqLkNoYXJnZWJlZS5yZWdpc3RlckFnYWluKCk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICAjY29udmVydFVzYWdlVG9EaXNwbGF5UXVvdGEocXVvdGE6IFF1b3RhVXNhZ2UpOiBTdWJzY3JpcHRpb25RdW90YURpc3BsYXkge1xyXG4gICAgLy8gaW50IG1heCBpbiBjI1xyXG4gICAgY29uc3QgdW5saW1pdGVkQmVuY2htYXJrID0gMjE0NzQ4MzY0NztcclxuXHJcbiAgICBjb25zdCB1c2VkID0gcXVvdGEucXVvdGFMaW1pdCAtIHF1b3RhLnF1b3RhUmVtYWluaW5nO1xyXG4gICAgbGV0IGNvbnZlcnRlZExpbWl0ID0gcXVvdGEucXVvdGFMaW1pdC50b1N0cmluZygpO1xyXG4gICAgbGV0IGNvbnZlcnRlZFVzZWQgPSB1c2VkLnRvU3RyaW5nKCk7XHJcbiAgICBjb25zdCBpc1VubGltaXRlZCA9IHVubGltaXRlZEJlbmNobWFyayA8PSBxdW90YS5xdW90YUxpbWl0O1xyXG4gICAgY29uc3QgcGVyY2VudFVzZWQgPSBNYXRoLnJvdW5kKCgocXVvdGEucXVvdGFMaW1pdCAtIHF1b3RhLnF1b3RhUmVtYWluaW5nKSAvIHF1b3RhLnF1b3RhTGltaXQpICogMTAwKTtcclxuXHJcbiAgICBzd2l0Y2ggKHF1b3RhLnF1b3RhVHlwZSkge1xyXG4gICAgICBjYXNlIFF1b3RhVHlwZS5BU1JfRklMRV9MRU5HVEhfU0VDT05EUzpcclxuICAgICAgY2FzZSBRdW90YVR5cGUuT05MSU5FX0FTUl9VU0VEX1NFQ09ORFM6XHJcbiAgICAgICAgY29udmVydGVkTGltaXQgPSBNYXRoLmNlaWwocXVvdGEucXVvdGFMaW1pdCAvIDYwKS50b1N0cmluZygpO1xyXG4gICAgICAgIGNvbnZlcnRlZFVzZWQgPSBNYXRoLnJvdW5kKHVzZWQgLyA2MCkudG9TdHJpbmcoKTtcclxuICAgICAgICBicmVhaztcclxuICAgICAgY2FzZSBRdW90YVR5cGUuQVNSX0ZJTEVfU0laRV9LQjpcclxuICAgICAgICBjb252ZXJ0ZWRMaW1pdCA9IHRoaXMuI2Zvcm1hdEJ5dGVzKHF1b3RhLnF1b3RhTGltaXQgKiAxMDI0KTtcclxuICAgICAgICBjb252ZXJ0ZWRVc2VkID0gdGhpcy4jZm9ybWF0Qnl0ZXModXNlZCAqIDEwMjQpO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIFF1b3RhVHlwZS5MTE1fUkVRVUVTVFM6XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuIHtcclxuICAgICAgLi4ucXVvdGEsXHJcbiAgICAgIGNvbnZlcnRlZExpbWl0LFxyXG4gICAgICBjb252ZXJ0ZWRVc2VkLFxyXG4gICAgICBpc1VubGltaXRlZCxcclxuICAgICAgcGVyY2VudFVzZWRcclxuICAgIH07XHJcbiAgfVxyXG5cclxuICAjZm9ybWF0Qnl0ZXMoYnl0ZXM6IG51bWJlciwgZGVjaW1hbHMgPSAwKSB7XHJcbiAgICBpZiAoIStieXRlcykgcmV0dXJuICcwIEJ5dGVzJ1xyXG5cclxuICAgIGNvbnN0IGsgPSAxMDI0XHJcbiAgICBjb25zdCBkbSA9IGRlY2ltYWxzIDwgMCA/IDAgOiBkZWNpbWFsc1xyXG4gICAgY29uc3Qgc2l6ZXMgPSBbJ0J5dGVzJywgJ0tCJywgJ01CJywgJ0dCJywgJ1RCJywgJ1BCJywgJ0VCJywgJ1pCJywgJ1lCJ11cclxuXHJcbiAgICBjb25zdCBpID0gTWF0aC5mbG9vcihNYXRoLmxvZyhieXRlcykgLyBNYXRoLmxvZyhrKSlcclxuXHJcbiAgICByZXR1cm4gYCR7cGFyc2VGbG9hdCgoYnl0ZXMgLyBNYXRoLnBvdyhrLCBpKSkudG9GaXhlZChkbSkpfSAke3NpemVzW2ldfWBcclxuICB9XHJcblxyXG59XHJcbiIsIkBpZih0b2tlbigpKXtcclxuICA8IS0tIG5hcnJvdyB0eXBlIHRvIG5vbiBudWxsIHByb3BlcnR5IC0tPlxyXG4gIEBsZXQgdXNlclRva2VuID0gdG9rZW4oKSE7XHJcblxyXG4gICAgPGgzIGNsYXNzPVwic3Vic2NyaXB0aW9uLXNlY3Rpb24tdGl0bGUgdGV4dC1sLXNlbWktYm9sZFwiPnt7IFwiU1VCU0NSSVBUSU9OLlVTRVJfSU5GT1wiIHwgdHJhbnNsYXRlIH19PC9oMz5cclxuXHJcbiAgICA8ZGl2IGNsYXNzPVwic3Vic2NyaXB0aW9uLWRhdGEtcm93XCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uTEFCRUxfTkFNRVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIDxzcGFuPnt7IHVzZXJUb2tlbi5uYW1lIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBcIlNVQlNDUklQVElPTi5MQUJFTF9FTUFJTFwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIDxzcGFuPnt7IHVzZXJUb2tlbi5lbWFpbCB9fTwvc3Bhbj5cclxuICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxufVxyXG5cclxuQGlmKHN1YnNjcmlwdGlvbigpKXtcclxuICBAbGV0IGN1cnJlbnRTdWJzY3JpcHRpb24gPSBzdWJzY3JpcHRpb24oKSE7XHJcblxyXG4gIDxkaXYgZnhMYXlvdXQ9XCJyb3dcIiBjbGFzcz1cInN1YnNjcmlwdGlvbi1kYXRhLXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICA8c3BhbiBjbGFzcz1cImxhYmVsXCI+e3sgXCJTVUJTQ1JJUFRJT04uTEFCRUxfU1VCU0NSSVBUSU9OX1BMQU5fSURcIiB8IHRyYW5zbGF0ZSB9fTwvc3Bhbj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICA8bmctY29udGFpbmVyPlxyXG4gICAgICAgIDxzcGFuPlxyXG4gICAgICAgICAge3sgY3VycmVudFN1YnNjcmlwdGlvbi5MYWJlbCA/IGN1cnJlbnRTdWJzY3JpcHRpb24uTGFiZWwgOiBjdXJyZW50U3Vic2NyaXB0aW9uLlBsYW5JZCB9fVxyXG5cclxuICAgICAgICAgIEBzd2l0Y2ggKHN1YnNjcmlwdGlvblN0YXRlKCkpIHtcclxuICAgICAgICAgICAgQGNhc2Uoc3Vic2NyaXB0aW9uU3RhdGVzLlRSSUFMKXtcclxuICAgICAgICAgICAgICA8c3Bhbj4gKHt7IFwiU1VCU0NSSVBUSU9OLlRSSUFMX0VORF9EQVRFXCIgfCB0cmFuc2xhdGU6IHsgZGF0ZTogY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlIHwgZGF0ZTogXCJkZC5NTS55eXl5LlwiIH0gfX0pIDwvc3Bhbj5cclxuICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICBAY2FzZSAoc3Vic2NyaXB0aW9uU3RhdGVzLkFDVElWRSkge1xyXG4gICAgICAgICAgICAgIEBpZihjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUpe1xyXG4gICAgICAgICAgICAgICAgPHNwYW4+ICh7eyBcIlNVQlNDUklQVElPTi5FTkRfREFURVwiIHwgdHJhbnNsYXRlOiB7IGRhdGU6IGN1cnJlbnRTdWJzY3JpcHRpb24uRW5kRGF0ZSB8IGRhdGU6IFwiZGQuTU0ueXl5eS5cIiB9IH19KSA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIEBjYXNlIChzdWJzY3JpcHRpb25TdGF0ZXMuRU5ERUQpIHtcclxuICAgICAgICAgICAgKHt7IFwiU1VCU0NSSVBUSU9OLkVORF9EQVRFXCIgfCB0cmFuc2xhdGU6IHsgZGF0ZTogY3VycmVudFN1YnNjcmlwdGlvbi5FbmREYXRlIHwgZGF0ZTogXCJkZC5NTS55eXl5LlwiIH0gfX0pXHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgIH1cclxuICAgICAgICA8L3NwYW4+XHJcbiAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbiAgPC9kaXY+XHJcblxyXG4gIEBpZihjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUpe1xyXG4gIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGFiZWxcIj5cclxuICAgICAgPHNwYW4gY2xhc3M9XCJsYWJlbFwiPnt7IFwiU1VCU0NSSVBUSU9OLkxBQkVMX1NVQlNDUklQVElPTl9FTkRfREFURVwiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1kYXRhXCI+XHJcbiAgICAgIDxuZy1jb250YWluZXI+XHJcbiAgICAgICAgPHNwYW4+e3tjdXJyZW50U3Vic2NyaXB0aW9uLkVuZERhdGUgfCBkYXRlOiBcImRkLk1NLnl5eXlcIn19PC9zcGFuPlxyXG4gICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgfVxyXG5cclxuICBAaWYoY3VycmVudFN1YnNjcmlwdGlvbi5BZGRvbnM/Lmxlbmd0aCl7XHJcbiAgICA8ZGl2IGZ4TGF5b3V0PVwicm93XCIgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YS1yb3dcIj5cclxuICAgICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1sYWJlbFwiPlxyXG4gICAgICAgIDxzcGFuIGNsYXNzPVwibGFiZWxcIj57eyBcIlNVQlNDUklQVElPTi5BRERJVElPTlNfUExVR0lOU1wiIHwgdHJhbnNsYXRlIH19PC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuXHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tZGF0YVwiPlxyXG4gICAgICAgIEBmb3IgKGl0ZW0gb2YgY3VycmVudFN1YnNjcmlwdGlvbi5BZGRvbnM7IHRyYWNrICRpbmRleDsgbGV0IGkgPSAkaW5kZXgpIHtcclxuICAgICAgICAgICAgPHNwYW4+e3sgaXRlbS5pZCB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgQGlmKGl0ZW0ucXQ+MSl7XHJcbiAgICAgICAgICAgICAgPHNwYW4+ICh7e2l0ZW0ucXR9fSk8L3NwYW4+XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgPHNwYW4+IHt7IGN1cnJlbnRTdWJzY3JpcHRpb24uQWRkb25zIS5sZW5ndGggLSAxID4gaSA/IFwiLFwiIDogXCJcIiB9fSA8L3NwYW4+XHJcbiAgICAgICAgfVxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufVxyXG5cclxuQGlmKHZpc2libGVRdW90YXMoKS5sZW5ndGgpe1xyXG4gIDxoMyBjbGFzcz1cInN1YnNjcmlwdGlvbi1zZWN0aW9uLXRpdGxlIHRleHQtbC1zZW1pLWJvbGRcIj57eyBcIlNVQlNDUklQVElPTi5MSU1JVFNcIiB8IHRyYW5zbGF0ZSB9fTwvaDM+XHJcblxyXG4gIEBmb3IgKGN1cnJlbnRRdW90YSBvZiB2aXNpYmxlUXVvdGFzKCk7IHRyYWNrICRpbmRleCkge1xyXG4gICAgPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1saW1pdC13cmFwcGVyXCI+XHJcbiAgICAgIDxtYXQtcHJvZ3Jlc3MtYmFyIFt2YWx1ZV09XCJjdXJyZW50UXVvdGEucGVyY2VudFVzZWRcIj48L21hdC1wcm9ncmVzcy1iYXI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJzdWJzY3JpcHRpb24tbGltaXRcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cInRleHQtbC1zZW1pLWJvbGRcIj5cclxuICAgICAgICAgIHt7IChcIlFVT1RBLlwiICsgKGN1cnJlbnRRdW90YS5xdW90YVR5cGUudG9TdHJpbmcoKSB8IHVwcGVyY2FzZSkgKyAoY3VycmVudFF1b3RhLmlzVW5saW1pdGVkPyBcIl9VTkxJTUlURURcIjogXCJcIikpIHwgdHJhbnNsYXRlOiB7IHVzZWQ6IGN1cnJlbnRRdW90YS5jb252ZXJ0ZWRVc2VkLCBsaW1pdDogY3VycmVudFF1b3RhLmNvbnZlcnRlZExpbWl0LCBwZXJjZW50OiBjdXJyZW50UXVvdGEucGVyY2VudFVzZWR9IH19XHJcbiAgICAgICAgPC9zcGFuPlxyXG4gICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIH1cclxufVxyXG5cclxuPGRpdiBjbGFzcz1cInN1YnNjcmlwdGlvbi1hY3Rpb25zLXdyYXBwZXJcIj5cclxuICBAaWYoY2hhcmdlYmVlU2V0dGluZ3MoKSl7XHJcbiAgICA8YSBtYXQtZmxhdC1idXR0b24gY29sb3I9XCJwcmltYXJ5LWFjY2VudC1kYXJrZXJcIiBjbGFzcz1cIm1hbmFnZS1zdWItYnRuIGJ1dHRvbi1yb3ctZWxlbWVudFwiIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBkYXRhLWNiLXR5cGU9XCJwb3J0YWxcIiAoY2xpY2spPVwibWFuYWdlQ2xpY2tlZCgpXCI+XHJcbiAgICAgIHt7IFwiU1VCU0NSSVBUSU9OLk1BTkFHRVwiIHwgdHJhbnNsYXRlIH19XHJcbiAgICA8L2E+XHJcbiAgfVxyXG4gIEBpZihjb250YWN0VXNVcmwoKSl7XHJcbiAgICA8YSBtYXQtc3Ryb2tlZC1idXR0b24gW2F0dHIuaHJlZl09XCJjb250YWN0VXNVcmwoKVwiIHRhcmdldD1cIl9ibGFua1wiIGNvbG9yPVwicHJpbWFyeS1hY2NlbnQtZGFya2VyXCIgKGNsaWNrKT1cImNvbnRhY3RVc0NsaWNrZWQoKVwiPnt7XCJTVUJTQ1JJUFRJT04uQ09OVEFDVFwiIHwgdHJhbnNsYXRlfX08L2E+XHJcbiAgfVxyXG48L2Rpdj5cclxuIl19
|