geonetwork-ui 2.4.1-dev.a1ec7cf5a → 2.4.1-dev.a28bdabc1
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/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.mjs +57 -10
- package/esm2022/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.mjs +4 -3
- package/esm2022/libs/util/shared/src/lib/links/link-utils.mjs +40 -1
- package/esm2022/translations/de.json +2 -0
- package/esm2022/translations/en.json +2 -0
- package/esm2022/translations/es.json +2 -0
- package/esm2022/translations/fr.json +2 -0
- package/esm2022/translations/it.json +2 -0
- package/esm2022/translations/nl.json +2 -0
- package/esm2022/translations/pt.json +2 -0
- package/fesm2022/geonetwork-ui.mjs +110 -11
- package/fesm2022/geonetwork-ui.mjs.map +1 -1
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts +16 -5
- package/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.d.ts.map +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts +1 -1
- package/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.d.ts.map +1 -1
- package/libs/ui/elements/src/lib/record-api-form/record-api-form.component.d.ts +1 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts +2 -1
- package/libs/util/shared/src/lib/links/link-utils.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.html +38 -7
- package/src/libs/feature/editor/src/lib/components/online-service-resource-input/online-service-resource-input.component.ts +62 -3
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.html +11 -9
- package/src/libs/feature/editor/src/lib/components/record-form/form-field/form-field-online-resources/form-field-online-resources.component.ts +3 -2
- package/src/libs/util/shared/src/lib/links/link-utils.ts +51 -1
- package/translations/de.json +2 -0
- package/translations/en.json +2 -0
- package/translations/es.json +2 -0
- package/translations/fr.json +2 -0
- package/translations/it.json +2 -0
- package/translations/nl.json +2 -0
- package/translations/pt.json +2 -0
- package/translations/sk.json +2 -0
|
@@ -1,13 +1,14 @@
|
|
|
1
1
|
import { CommonModule } from '@angular/common';
|
|
2
|
-
import { ChangeDetectionStrategy, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
2
|
+
import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, Input, Output, } from '@angular/core';
|
|
3
3
|
import { FormsModule } from '@angular/forms';
|
|
4
4
|
import { MatRadioModule } from '@angular/material/radio';
|
|
5
5
|
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
6
6
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
7
|
-
import { ButtonComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../libs/ui/inputs/src';
|
|
7
|
+
import { ButtonComponent, DropdownSelectorComponent, TextInputComponent, UrlInputComponent, } from '../../../../../../../libs/ui/inputs/src';
|
|
8
8
|
import { TranslateModule } from '@ngx-translate/core';
|
|
9
9
|
import { NgIconComponent, provideIcons, provideNgIconsConfig, } from '@ng-icons/core';
|
|
10
10
|
import { iconoirCloudUpload } from '@ng-icons/iconoir';
|
|
11
|
+
import { getLayers } from '../../../../../../../libs/util/shared/src';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
import * as i1 from "@angular/common";
|
|
13
14
|
import * as i2 from "@angular/forms";
|
|
@@ -15,10 +16,14 @@ import * as i3 from "@angular/material/tooltip";
|
|
|
15
16
|
import * as i4 from "@angular/material/radio";
|
|
16
17
|
import * as i5 from "@ngx-translate/core";
|
|
17
18
|
export class OnlineServiceResourceInputComponent {
|
|
18
|
-
constructor() {
|
|
19
|
+
constructor(cdr) {
|
|
20
|
+
this.cdr = cdr;
|
|
19
21
|
this.disabled = false;
|
|
22
|
+
this.modifyMode = false;
|
|
20
23
|
this.urlChange = new EventEmitter();
|
|
21
24
|
this.identifierSubmit = new EventEmitter();
|
|
25
|
+
this.errorMessage = false;
|
|
26
|
+
this.layers = undefined;
|
|
22
27
|
this.protocolOptions = [
|
|
23
28
|
{
|
|
24
29
|
label: 'OGC API',
|
|
@@ -50,12 +55,51 @@ export class OnlineServiceResourceInputComponent {
|
|
|
50
55
|
},
|
|
51
56
|
];
|
|
52
57
|
}
|
|
58
|
+
get activeLayerSuggestion() {
|
|
59
|
+
return !['wps', 'GPFDL', 'esriRest', 'other'].includes(this.service.accessServiceProtocol);
|
|
60
|
+
}
|
|
53
61
|
ngOnChanges() {
|
|
54
62
|
this.selectedProtocol =
|
|
55
63
|
this.protocolOptions.find((option) => option.value === this.service.accessServiceProtocol)?.value ?? 'other';
|
|
56
64
|
}
|
|
57
|
-
|
|
65
|
+
ngOnInit() {
|
|
66
|
+
if (this.service.url) {
|
|
67
|
+
this.url = this.service.url.toString();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
handleUrlValueChange(url) {
|
|
71
|
+
this.url = url;
|
|
72
|
+
this.service.url = new URL(url);
|
|
73
|
+
this.resetLayersSuggestion();
|
|
74
|
+
this.urlChange.emit(this.url);
|
|
75
|
+
}
|
|
76
|
+
async handleUploadClick(url) {
|
|
58
77
|
this.url = url;
|
|
78
|
+
try {
|
|
79
|
+
const layers = await getLayers(url, this.service.accessServiceProtocol);
|
|
80
|
+
this.layers = layers.map((l) => {
|
|
81
|
+
return {
|
|
82
|
+
label: l.title ? `${l.title} ${l.name ? `(${l.name})` : ''}` : l.name,
|
|
83
|
+
value: l.name || l.title,
|
|
84
|
+
};
|
|
85
|
+
});
|
|
86
|
+
if (this.layers.length === 0) {
|
|
87
|
+
throw new Error('No layers found');
|
|
88
|
+
}
|
|
89
|
+
}
|
|
90
|
+
catch (e) {
|
|
91
|
+
this.errorMessage = true;
|
|
92
|
+
this.layers = undefined;
|
|
93
|
+
}
|
|
94
|
+
this.cdr.detectChanges();
|
|
95
|
+
}
|
|
96
|
+
handleSelectValue(val) {
|
|
97
|
+
this.service.identifierInService = val;
|
|
98
|
+
}
|
|
99
|
+
resetLayersSuggestion() {
|
|
100
|
+
this.errorMessage = false;
|
|
101
|
+
this.layers = undefined;
|
|
102
|
+
this.service.identifierInService = null;
|
|
59
103
|
}
|
|
60
104
|
submitIdentifier(identifier) {
|
|
61
105
|
if (!identifier)
|
|
@@ -69,17 +113,18 @@ export class OnlineServiceResourceInputComponent {
|
|
|
69
113
|
? `${baseKey}.wps`
|
|
70
114
|
: baseKey;
|
|
71
115
|
}
|
|
72
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
73
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled" }, outputs: { urlChange: "urlChange", identifierSubmit: "identifierSubmit" }, providers: [
|
|
116
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, deps: [{ token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
117
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: OnlineServiceResourceInputComponent, isStandalone: true, selector: "gn-ui-online-service-resource-input", inputs: { service: "service", protocolHint: "protocolHint", disabled: "disabled", modifyMode: "modifyMode" }, outputs: { urlChange: "urlChange", identifierSubmit: "identifierSubmit" }, providers: [
|
|
74
118
|
provideIcons({ iconoirCloudUpload }),
|
|
75
119
|
provideNgIconsConfig({
|
|
76
120
|
size: '1.5em',
|
|
77
121
|
}),
|
|
78
|
-
], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"
|
|
122
|
+
], usesOnChanges: true, ngImport: i0, template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetLayersSuggestion()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (url && errorMessage) ||\n (modifyMode && layers === undefined)\n \"\n ></gn-ui-text-input>\n <gn-ui-dropdown-selector\n class=\"border-b border-gray-300 pb-4\"\n [showTitle]=\"false\"\n [title]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [choices]=\"layers || []\"\n *ngIf=\"activeLayerSuggestion && layers !== undefined\"\n [selected]=\"service.identifierInService\"\n (selectValue)=\"handleSelectValue($event)\"\n >\n </gn-ui-dropdown-selector>\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && layers) ||\n !activeLayerSuggestion ||\n (url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n", styles: [""], dependencies: [{ kind: "component", type: DropdownSelectorComponent, selector: "gn-ui-dropdown-selector", inputs: ["title", "showTitle", "ariaName", "choices", "selected", "maxRows", "extraBtnClass", "minWidth", "disabled"], outputs: ["selectValue"] }, { kind: "component", type: ButtonComponent, selector: "gn-ui-button", inputs: ["type", "disabled", "extraClass"], outputs: ["buttonClick"] }, { kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: FormsModule }, { kind: "directive", type: i2.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: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "ngmodule", type: MatRadioModule }, { kind: "directive", type: i4.MatRadioGroup, selector: "mat-radio-group", inputs: ["color", "name", "labelPosition", "value", "selected", "disabled", "required", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioGroup"] }, { kind: "component", type: i4.MatRadioButton, selector: "mat-radio-button", inputs: ["id", "name", "aria-label", "aria-labelledby", "aria-describedby", "disableRipple", "tabIndex", "checked", "value", "labelPosition", "disabled", "required", "color", "disabledInteractive"], outputs: ["change"], exportAs: ["matRadioButton"] }, { kind: "component", type: NgIconComponent, selector: "ng-icon", inputs: ["name", "svg", "size", "strokeWidth", "color"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "pipe", type: i5.TranslatePipe, name: "translate" }, { kind: "directive", type: i5.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
79
123
|
}
|
|
80
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: OnlineServiceResourceInputComponent, decorators: [{
|
|
81
125
|
type: Component,
|
|
82
126
|
args: [{ selector: 'gn-ui-online-service-resource-input', changeDetection: ChangeDetectionStrategy.OnPush, standalone: true, imports: [
|
|
127
|
+
DropdownSelectorComponent,
|
|
83
128
|
ButtonComponent,
|
|
84
129
|
CommonModule,
|
|
85
130
|
FormsModule,
|
|
@@ -94,16 +139,18 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
94
139
|
provideNgIconsConfig({
|
|
95
140
|
size: '1.5em',
|
|
96
141
|
}),
|
|
97
|
-
], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (valueChange)=\"
|
|
98
|
-
}], propDecorators: { service: [{
|
|
142
|
+
], template: "<div class=\"flex flex-row justify-between\">\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.protocol\n </h3>\n <span\n *ngIf=\"protocolHint\"\n class=\"material-symbols-outlined m-2 gn-ui-icon-small\"\n [matTooltip]=\"protocolHint\"\n matTooltipPosition=\"above\"\n >\n help\n </span>\n</div>\n<div class=\"flex flex-row items-center gap-4 h-[48px]\">\n <mat-radio-group\n aria-labelledby=\"example-radio-group-label\"\n class=\"flex flex-row gap-[8px]\"\n [(ngModel)]=\"service.accessServiceProtocol\"\n [disabled]=\"disabled\"\n (change)=\"resetLayersSuggestion()\"\n >\n <mat-radio-button\n *ngFor=\"let protocolOption of protocolOptions\"\n [value]=\"protocolOption.value\"\n >\n {{ protocolOption.label | translate }}\n </mat-radio-button>\n </mat-radio-group>\n</div>\n\n<div class=\"flex flex-col gap-4\">\n <gn-ui-url-input\n class=\"w-full\"\n (uploadClick)=\"handleUploadClick($event)\"\n (valueChange)=\"handleUrlValueChange($event)\"\n [disabled]=\"disabled\"\n [value]=\"url\"\n [showValidateButton]=\"activeLayerSuggestion\"\n >\n <ng-content *ngIf=\"activeLayerSuggestion\">\n <ng-icon name=\"iconoirCloudUpload\"></ng-icon>\n </ng-content>\n </gn-ui-url-input>\n\n <p class=\"text-sm text-red-500 pl-4\" *ngIf=\"errorMessage\" translate>\n editor.record.form.field.onlineResource.edit.identifier.error\n </p>\n\n <gn-ui-text-input\n class=\"grow border-b border-gray-300 pb-4\"\n [(value)]=\"service.identifierInService\"\n [placeholder]=\"getIdentifierPlaceholder() | translate\"\n data-cy=\"identifier-in-service\"\n [disabled]=\"disabled\"\n *ngIf=\"\n !activeLayerSuggestion ||\n (url && errorMessage) ||\n (modifyMode && layers === undefined)\n \"\n ></gn-ui-text-input>\n <gn-ui-dropdown-selector\n class=\"border-b border-gray-300 pb-4\"\n [showTitle]=\"false\"\n [title]=\"\n 'editor.record.form.field.onlineResource.edit.identifier.select.label'\n | translate\n \"\n [choices]=\"layers || []\"\n *ngIf=\"activeLayerSuggestion && layers !== undefined\"\n [selected]=\"service.identifierInService\"\n (selectValue)=\"handleSelectValue($event)\"\n >\n </gn-ui-dropdown-selector>\n <gn-ui-button\n (buttonClick)=\"submitIdentifier(service.identifierInService)\"\n [disabled]=\"disabled || !service.identifierInService\"\n type=\"primary\"\n *ngIf=\"\n !modifyMode &&\n ((activeLayerSuggestion && layers) ||\n !activeLayerSuggestion ||\n (url && errorMessage))\n \"\n >\n <span class=\"text-white font-bold\" translate>\n editor.record.form.field.onlineResource.edit.identifier.submit</span\n >\n </gn-ui-button>\n</div>\n" }]
|
|
143
|
+
}], ctorParameters: () => [{ type: i0.ChangeDetectorRef }], propDecorators: { service: [{
|
|
99
144
|
type: Input
|
|
100
145
|
}], protocolHint: [{
|
|
101
146
|
type: Input
|
|
102
147
|
}], disabled: [{
|
|
103
148
|
type: Input
|
|
149
|
+
}], modifyMode: [{
|
|
150
|
+
type: Input
|
|
104
151
|
}], urlChange: [{
|
|
105
152
|
type: Output
|
|
106
153
|
}], identifierSubmit: [{
|
|
107
154
|
type: Output
|
|
108
155
|
}] } });
|
|
109
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsU0FBUyxFQUNULFlBQVksRUFDWixLQUFLLEVBRUwsTUFBTSxHQUNQLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQTtBQUM1QyxPQUFPLEVBQUUsY0FBYyxFQUFFLE1BQU0seUJBQXlCLENBQUE7QUFDeEQsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUE7QUFDNUQsT0FBTyxFQUFFLE1BQU0sRUFBRSxNQUFNLHlDQUF5QyxDQUFBO0FBS2hFLE9BQU8sRUFDTCxlQUFlLEVBQ2Ysa0JBQWtCLEVBQ2xCLGlCQUFpQixHQUNsQixNQUFNLHlDQUF5QyxDQUFBO0FBQ2hELE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUNyRCxPQUFPLEVBQ0wsZUFBZSxFQUNmLFlBQVksRUFDWixvQkFBb0IsR0FDckIsTUFBTSxnQkFBZ0IsQ0FBQTtBQUN2QixPQUFPLEVBQUUsa0JBQWtC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c0JBQWhCLEtBQUs7Z0JBQ0ksU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxnQkFBZ0I7c0JBQXpCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nXG5pbXBvcnQge1xuICBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneSxcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPbkNoYW5nZXMsXG4gIE91dHB1dCxcbn0gZnJvbSAnQGFuZ3VsYXIvY29yZSdcbmltcG9ydCB7IEZvcm1zTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnXG5pbXBvcnQgeyBNYXRSYWRpb01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3JhZGlvJ1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgU2VydmljZVByb3RvY29sLFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQge1xuICBCdXR0b25Db21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQge1xuICBOZ0ljb25Db21wb25lbnQsXG4gIHByb3ZpZGVJY29ucyxcbiAgcHJvdmlkZU5nSWNvbnNDb25maWcsXG59IGZyb20gJ0BuZy1pY29ucy9jb3JlJ1xuaW1wb3J0IHsgaWNvbm9pckNsb3VkVXBsb2FkIH0gZnJvbSAnQG5nLWljb25zL2ljb25vaXInXG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0JyxcbiAgdGVtcGxhdGVVcmw6ICcuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmNzcyddLFxuICBjaGFuZ2VEZXRlY3Rpb246IENoYW5nZURldGVjdGlvblN0cmF0ZWd5Lk9uUHVzaCxcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pckNsb3VkVXBsb2FkIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KCkgc2VydmljZTogT21pdDxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbiwgJ3VybCc+XG4gIEBJbnB1dCgpIHByb3RvY29sSGludD86IHN0cmluZ1xuICBASW5wdXQoKSBkaXNhYmxlZD8gPSBmYWxzZVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgaWRlbnRpZmllclN1Ym1pdDogRXZlbnRFbWl0dGVyPHtcbiAgICB1cmw6IHN0cmluZ1xuICAgIGlkZW50aWZpZXI6IHN0cmluZ1xuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIHNlbGVjdGVkUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICB1cmw6IHN0cmluZ1xuXG4gIHByb3RvY29sT3B0aW9uczoge1xuICAgIGxhYmVsOiBzdHJpbmdcbiAgICB2YWx1ZTogU2VydmljZVByb3RvY29sXG4gIH1bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogJ09HQyBBUEknLFxuICAgICAgdmFsdWU6ICdvZ2NGZWF0dXJlcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dGUycsXG4gICAgICB2YWx1ZTogJ3dmcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dNUycsXG4gICAgICB2YWx1ZTogJ3dtcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dNVFMnLFxuICAgICAgdmFsdWU6ICd3bXRzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnV1BTJyxcbiAgICAgIHZhbHVlOiAnd3BzJyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiAnRVNSSSBSRVNUJyxcbiAgICAgIHZhbHVlOiAnZXNyaVJlc3QnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6IG1hcmtlcignZWRpdG9yLnJlY29yZC5vbmxpbmVSZXNvdXJjZS5wcm90b2NvbC5vdGhlcicpLFxuICAgICAgdmFsdWU6ICdvdGhlcicsXG4gICAgfSxcbiAgXVxuXG4gIG5nT25DaGFuZ2VzKCkge1xuICAgIHRoaXMuc2VsZWN0ZWRQcm90b2NvbCA9XG4gICAgICB0aGlzLnByb3RvY29sT3B0aW9ucy5maW5kKFxuICAgICAgICAob3B0aW9uKSA9PiBvcHRpb24udmFsdWUgPT09IHRoaXMuc2VydmljZS5hY2Nlc3NTZXJ2aWNlUHJvdG9jb2xcbiAgICAgICk/LnZhbHVlID8/ICdvdGhlcidcbiAgfVxuXG4gIGhhbmRsZVVybENoYW5nZSh1cmw6IHN0cmluZykge1xuICAgIHRoaXMudXJsID0gdXJsXG4gIH1cblxuICBzdWJtaXRJZGVudGlmaWVyKGlkZW50aWZpZXI6IHN0cmluZykge1xuICAgIGlmICghaWRlbnRpZmllcikgcmV0dXJuXG4gICAgdGhpcy5pZGVudGlmaWVyU3VibWl0LmVtaXQoeyB1cmw6IHRoaXMudXJsLCBpZGVudGlmaWVyIH0pXG4gICAgdGhpcy5zZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2UgPSBudWxsXG4gIH1cblxuICBnZXRJZGVudGlmaWVyUGxhY2Vob2xkZXIoKTogc3RyaW5nIHtcbiAgICBjb25zdCBiYXNlS2V5ID1cbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnBsYWNlaG9sZGVyJ1xuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sID09PSAnd3BzJ1xuICAgICAgPyBgJHtiYXNlS2V5fS53cHNgXG4gICAgICA6IGJhc2VLZXlcbiAgfVxufVxuIiwiPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cganVzdGlmeS1iZXR3ZWVuXCI+XG4gIDxoMyBjbGFzcz1cInRleHQtWzE2cHhdIGZvbnQtYm9sZCB0ZXh0LW1haW4gbWItWzEycHhdXCIgdHJhbnNsYXRlPlxuICAgIGVkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5lZGl0LnByb3RvY29sXG4gIDwvaDM+XG4gIDxzcGFuXG4gICAgKm5nSWY9XCJwcm90b2NvbEhpbnRcIlxuICAgIGNsYXNzPVwibWF0ZXJpYWwtc3ltYm9scy1vdXRsaW5lZCBtLTIgZ24tdWktaWNvbi1zbWFsbFwiXG4gICAgW21hdFRvb2x0aXBdPVwicHJvdG9jb2xIaW50XCJcbiAgICBtYXRUb29sdGlwUG9zaXRpb249XCJhYm92ZVwiXG4gID5cbiAgICBoZWxwXG4gIDwvc3Bhbj5cbjwvZGl2PlxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1yb3cgaXRlbXMtY2VudGVyIGdhcC00IGgtWzQ4cHhdXCI+XG4gIDxtYXQtcmFkaW8tZ3JvdXBcbiAgICBhcmlhLWxhYmVsbGVkYnk9XCJleGFtcGxlLXJhZGlvLWdyb3VwLWxhYmVsXCJcbiAgICBjbGFzcz1cImZsZXggZmxleC1yb3cgZ2FwLVs4cHhdXCJcbiAgICBbKG5nTW9kZWwpXT1cInNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICA+XG4gICAgPG1hdC1yYWRpby1idXR0b25cbiAgICAgICpuZ0Zvcj1cImxldCBwcm90b2NvbE9wdGlvbiBvZiBwcm90b2NvbE9wdGlvbnNcIlxuICAgICAgW3ZhbHVlXT1cInByb3RvY29sT3B0aW9uLnZhbHVlXCJcbiAgICA+XG4gICAgICB7eyBwcm90b2NvbE9wdGlvbi5sYWJlbCB8IHRyYW5zbGF0ZSB9fVxuICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cbiAgPC9tYXQtcmFkaW8tZ3JvdXA+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImZsZXggZmxleC1jb2wgZ2FwLTRcIj5cbiAgPGduLXVpLXVybC1pbnB1dFxuICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAodmFsdWVDaGFuZ2UpPVwiaGFuZGxlVXJsQ2hhbmdlKCRldmVudClcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gICAgW3ZhbHVlXT1cInVybFwiXG4gICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJmYWxzZVwiXG4gID5cbiAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckNsb3VkVXBsb2FkXCI+PC9uZy1pY29uPlxuICA8L2duLXVpLXVybC1pbnB1dD5cblxuICA8Z24tdWktdGV4dC1pbnB1dFxuICAgIGNsYXNzPVwiZ3JvdyBib3JkZXItYiBib3JkZXItZ3JheS0zMDAgcGItNFwiXG4gICAgWyh2YWx1ZSldPVwic2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXCJcbiAgICBbcGxhY2Vob2xkZXJdPVwiZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCkgfCB0cmFuc2xhdGVcIlxuICAgIGRhdGEtY3k9XCJpZGVudGlmaWVyLWluLXNlcnZpY2VcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG5cbiAgPGduLXVpLWJ1dHRvblxuICAgIChidXR0b25DbGljayk9XCJzdWJtaXRJZGVudGlmaWVyKHNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSlcIlxuICAgIFtkaXNhYmxlZF09XCJkaXNhYmxlZCB8fCAhc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlIHx8ICF1cmxcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGVcbiAgICAgID5lZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
156
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoib25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL2VkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUdMLE1BQU0sR0FDUCxNQUFNLGVBQWUsQ0FBQTtBQUN0QixPQUFPLEVBQUUsV0FBVyxFQUFFLE1BQU0sZ0JBQWdCLENBQUE7QUFDNUMsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFBO0FBQ3hELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFBO0FBQzVELE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wsZUFBZSxFQUVmLHlCQUF5QixFQUN6QixrQkFBa0IsRUFDbEIsaUJBQWlCLEdBQ2xCLE1BQU0seUNBQXlDLENBQUE7QUFDaEQsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLHFCQUFxQixDQUFBO0FBQ3JELE9BQU8sRUFDTCxlQUFlLEVBQ2YsWUFBWSxFQUNaLG9CQUFvQixHQUNyQixNQUFNLGdCQUFnQixD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TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJ1xuaW1wb3J0IHtcbiAgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksXG4gIENoYW5nZURldGVjdG9yUmVmLFxuICBDb21wb25lbnQsXG4gIEV2ZW50RW1pdHRlcixcbiAgSW5wdXQsXG4gIE9uQ2hhbmdlcyxcbiAgT25Jbml0LFxuICBPdXRwdXQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJ1xuaW1wb3J0IHsgTWF0UmFkaW9Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9yYWRpbydcbmltcG9ydCB7IE1hdFRvb2x0aXBNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJ1xuaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sXG4gIFNlcnZpY2VQcm90b2NvbCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuaW1wb3J0IHtcbiAgQnV0dG9uQ29tcG9uZW50LFxuICBEcm9wZG93bkNob2ljZSxcbiAgRHJvcGRvd25TZWxlY3RvckNvbXBvbmVudCxcbiAgVGV4dElucHV0Q29tcG9uZW50LFxuICBVcmxJbnB1dENvbXBvbmVudCxcbn0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy91aS9pbnB1dHMvc3JjJ1xuaW1wb3J0IHsgVHJhbnNsYXRlTW9kdWxlIH0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSdcbmltcG9ydCB7XG4gIE5nSWNvbkNvbXBvbmVudCxcbiAgcHJvdmlkZUljb25zLFxuICBwcm92aWRlTmdJY29uc0NvbmZpZyxcbn0gZnJvbSAnQG5nLWljb25zL2NvcmUnXG5pbXBvcnQgeyBpY29ub2lyQ2xvdWRVcGxvYWQgfSBmcm9tICdAbmctaWNvbnMvaWNvbm9pcidcbmltcG9ydCB7IGdldExheWVycyB9IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjJ1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnbi11aS1vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dCcsXG4gIHRlbXBsYXRlVXJsOiAnLi9vbmxpbmUtc2VydmljZS1yZXNvdXJjZS1pbnB1dC5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL29ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0LmNvbXBvbmVudC5jc3MnXSxcbiAgY2hhbmdlRGV0ZWN0aW9uOiBDaGFuZ2VEZXRlY3Rpb25TdHJhdGVneS5PblB1c2gsXG4gIHN0YW5kYWxvbmU6IHRydWUsXG4gIGltcG9ydHM6IFtcbiAgICBEcm9wZG93blNlbGVjdG9yQ29tcG9uZW50LFxuICAgIEJ1dHRvbkNvbXBvbmVudCxcbiAgICBDb21tb25Nb2R1bGUsXG4gICAgRm9ybXNNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXRSYWRpb01vZHVsZSxcbiAgICBOZ0ljb25Db21wb25lbnQsXG4gICAgVGV4dElucHV0Q29tcG9uZW50LFxuICAgIFRyYW5zbGF0ZU1vZHVsZSxcbiAgICBVcmxJbnB1dENvbXBvbmVudCxcbiAgXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAgcHJvdmlkZUljb25zKHsgaWNvbm9pckNsb3VkVXBsb2FkIH0pLFxuICAgIHByb3ZpZGVOZ0ljb25zQ29uZmlnKHtcbiAgICAgIHNpemU6ICcxLjVlbScsXG4gICAgfSksXG4gIF0sXG59KVxuZXhwb3J0IGNsYXNzIE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xuICBASW5wdXQoKSBzZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICBASW5wdXQoKSBwcm90b2NvbEhpbnQ/OiBzdHJpbmdcbiAgQElucHV0KCkgZGlzYWJsZWQ/ID0gZmFsc2VcbiAgQElucHV0KCkgbW9kaWZ5TW9kZT8gPSBmYWxzZVxuICBAT3V0cHV0KCkgdXJsQ2hhbmdlOiBFdmVudEVtaXR0ZXI8c3RyaW5nPiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuICBAT3V0cHV0KCkgaWRlbnRpZmllclN1Ym1pdDogRXZlbnRFbWl0dGVyPHtcbiAgICB1cmw6IHN0cmluZ1xuICAgIGlkZW50aWZpZXI6IHN0cmluZ1xuICB9PiA9IG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIGVycm9yTWVzc2FnZSA9IGZhbHNlXG4gIHNlbGVjdGVkUHJvdG9jb2w6IFNlcnZpY2VQcm90b2NvbFxuICB1cmw6IHN0cmluZ1xuICBsYXllcnM6IERyb3Bkb3duQ2hvaWNlW10gfCB1bmRlZmluZWQgPSB1bmRlZmluZWRcblxuICBwcm90b2NvbE9wdGlvbnM6IHtcbiAgICBsYWJlbDogc3RyaW5nXG4gICAgdmFsdWU6IFNlcnZpY2VQcm90b2NvbFxuICB9W10gPSBbXG4gICAge1xuICAgICAgbGFiZWw6ICdPR0MgQVBJJyxcbiAgICAgIHZhbHVlOiAnb2djRmVhdHVyZXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXRlMnLFxuICAgICAgdmFsdWU6ICd3ZnMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVMnLFxuICAgICAgdmFsdWU6ICd3bXMnLFxuICAgIH0sXG4gICAge1xuICAgICAgbGFiZWw6ICdXTVRTJyxcbiAgICAgIHZhbHVlOiAnd210cycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ1dQUycsXG4gICAgICB2YWx1ZTogJ3dwcycsXG4gICAgfSxcbiAgICB7XG4gICAgICBsYWJlbDogJ0VTUkkgUkVTVCcsXG4gICAgICB2YWx1ZTogJ2VzcmlSZXN0JyxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2UucHJvdG9jb2wub3RoZXInKSxcbiAgICAgIHZhbHVlOiAnb3RoZXInLFxuICAgIH0sXG4gIF1cblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkcjogQ2hhbmdlRGV0ZWN0b3JSZWYpIHt9XG5cbiAgZ2V0IGFjdGl2ZUxheWVyU3VnZ2VzdGlvbigpIHtcbiAgICByZXR1cm4gIVsnd3BzJywgJ0dQRkRMJywgJ2VzcmlSZXN0JywgJ290aGVyJ10uaW5jbHVkZXMoXG4gICAgICB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgKVxuICB9XG5cbiAgbmdPbkNoYW5nZXMoKSB7XG4gICAgdGhpcy5zZWxlY3RlZFByb3RvY29sID1cbiAgICAgIHRoaXMucHJvdG9jb2xPcHRpb25zLmZpbmQoXG4gICAgICAgIChvcHRpb24pID0+IG9wdGlvbi52YWx1ZSA9PT0gdGhpcy5zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFxuICAgICAgKT8udmFsdWUgPz8gJ290aGVyJ1xuICB9XG5cbiAgbmdPbkluaXQoKSB7XG4gICAgaWYgKHRoaXMuc2VydmljZS51cmwpIHtcbiAgICAgIHRoaXMudXJsID0gdGhpcy5zZXJ2aWNlLnVybC50b1N0cmluZygpXG4gICAgfVxuICB9XG5cbiAgaGFuZGxlVXJsVmFsdWVDaGFuZ2UodXJsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnVybCA9IHVybFxuICAgIHRoaXMuc2VydmljZS51cmwgPSBuZXcgVVJMKHVybClcbiAgICB0aGlzLnJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXG4gICAgdGhpcy51cmxDaGFuZ2UuZW1pdCh0aGlzLnVybClcbiAgfVxuXG4gIGFzeW5jIGhhbmRsZVVwbG9hZENsaWNrKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy51cmwgPSB1cmxcblxuICAgIHRyeSB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBnZXRMYXllcnModXJsLCB0aGlzLnNlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sKVxuICAgICAgdGhpcy5sYXllcnMgPSBsYXllcnMubWFwKChsKSA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgbGFiZWw6IGwudGl0bGUgPyBgJHtsLnRpdGxlfSAke2wubmFtZSA/IGAoJHtsLm5hbWV9KWAgOiAnJ31gIDogbC5uYW1lLFxuICAgICAgICAgIHZhbHVlOiBsLm5hbWUgfHwgbC50aXRsZSxcbiAgICAgICAgfVxuICAgICAgfSlcblxuICAgICAgaWYgKHRoaXMubGF5ZXJzLmxlbmd0aCA9PT0gMCkge1xuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ05vIGxheWVycyBmb3VuZCcpXG4gICAgICB9XG4gICAgfSBjYXRjaCAoZSkge1xuICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSB0cnVlXG4gICAgICB0aGlzLmxheWVycyA9IHVuZGVmaW5lZFxuICAgIH1cblxuICAgIHRoaXMuY2RyLmRldGVjdENoYW5nZXMoKVxuICB9XG5cbiAgaGFuZGxlU2VsZWN0VmFsdWUodmFsOiBzdHJpbmcpIHtcbiAgICB0aGlzLnNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZSA9IHZhbFxuICB9XG5cbiAgcmVzZXRMYXllcnNTdWdnZXN0aW9uKCkge1xuICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gZmFsc2VcbiAgICB0aGlzLmxheWVycyA9IHVuZGVmaW5lZFxuICAgIHRoaXMuc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbnVsbFxuICB9XG5cbiAgc3VibWl0SWRlbnRpZmllcihpZGVudGlmaWVyOiBzdHJpbmcpIHtcbiAgICBpZiAoIWlkZW50aWZpZXIpIHJldHVyblxuICAgIHRoaXMuaWRlbnRpZmllclN1Ym1pdC5lbWl0KHsgdXJsOiB0aGlzLnVybCwgaWRlbnRpZmllciB9KVxuICAgIHRoaXMuc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbnVsbFxuICB9XG5cbiAgZ2V0SWRlbnRpZmllclBsYWNlaG9sZGVyKCk6IHN0cmluZyB7XG4gICAgY29uc3QgYmFzZUtleSA9XG4gICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5wbGFjZWhvbGRlcidcbiAgICByZXR1cm4gdGhpcy5zZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9PT0gJ3dwcydcbiAgICAgID8gYCR7YmFzZUtleX0ud3BzYFxuICAgICAgOiBiYXNlS2V5XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGp1c3RpZnktYmV0d2VlblwiPlxuICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5wcm90b2NvbFxuICA8L2gzPlxuICA8c3BhblxuICAgICpuZ0lmPVwicHJvdG9jb2xIaW50XCJcbiAgICBjbGFzcz1cIm1hdGVyaWFsLXN5bWJvbHMtb3V0bGluZWQgbS0yIGduLXVpLWljb24tc21hbGxcIlxuICAgIFttYXRUb29sdGlwXT1cInByb3RvY29sSGludFwiXG4gICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwiYWJvdmVcIlxuICA+XG4gICAgaGVscFxuICA8L3NwYW4+XG48L2Rpdj5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGl0ZW1zLWNlbnRlciBnYXAtNCBoLVs0OHB4XVwiPlxuICA8bWF0LXJhZGlvLWdyb3VwXG4gICAgYXJpYS1sYWJlbGxlZGJ5PVwiZXhhbXBsZS1yYWRpby1ncm91cC1sYWJlbFwiXG4gICAgY2xhc3M9XCJmbGV4IGZsZXgtcm93IGdhcC1bOHB4XVwiXG4gICAgWyhuZ01vZGVsKV09XCJzZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbFwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCJcbiAgICAoY2hhbmdlKT1cInJlc2V0TGF5ZXJzU3VnZ2VzdGlvbigpXCJcbiAgPlxuICAgIDxtYXQtcmFkaW8tYnV0dG9uXG4gICAgICAqbmdGb3I9XCJsZXQgcHJvdG9jb2xPcHRpb24gb2YgcHJvdG9jb2xPcHRpb25zXCJcbiAgICAgIFt2YWx1ZV09XCJwcm90b2NvbE9wdGlvbi52YWx1ZVwiXG4gICAgPlxuICAgICAge3sgcHJvdG9jb2xPcHRpb24ubGFiZWwgfCB0cmFuc2xhdGUgfX1cbiAgICA8L21hdC1yYWRpby1idXR0b24+XG4gIDwvbWF0LXJhZGlvLWdyb3VwPlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJmbGV4IGZsZXgtY29sIGdhcC00XCI+XG4gIDxnbi11aS11cmwtaW5wdXRcbiAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgKHVwbG9hZENsaWNrKT1cImhhbmRsZVVwbG9hZENsaWNrKCRldmVudClcIlxuICAgICh2YWx1ZUNoYW5nZSk9XCJoYW5kbGVVcmxWYWx1ZUNoYW5nZSgkZXZlbnQpXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgIFt2YWx1ZV09XCJ1cmxcIlxuICAgIFtzaG93VmFsaWRhdGVCdXR0b25dPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uXCJcbiAgPlxuICAgIDxuZy1jb250ZW50ICpuZ0lmPVwiYWN0aXZlTGF5ZXJTdWdnZXN0aW9uXCI+XG4gICAgICA8bmctaWNvbiBuYW1lPVwiaWNvbm9pckNsb3VkVXBsb2FkXCI+PC9uZy1pY29uPlxuICAgIDwvbmctY29udGVudD5cbiAgPC9nbi11aS11cmwtaW5wdXQ+XG5cbiAgPHAgY2xhc3M9XCJ0ZXh0LXNtIHRleHQtcmVkLTUwMCBwbC00XCIgKm5nSWY9XCJlcnJvck1lc3NhZ2VcIiB0cmFuc2xhdGU+XG4gICAgZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmVkaXQuaWRlbnRpZmllci5lcnJvclxuICA8L3A+XG5cbiAgPGduLXVpLXRleHQtaW5wdXRcbiAgICBjbGFzcz1cImdyb3cgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFsodmFsdWUpXT1cInNlcnZpY2UuaWRlbnRpZmllckluU2VydmljZVwiXG4gICAgW3BsYWNlaG9sZGVyXT1cImdldElkZW50aWZpZXJQbGFjZWhvbGRlcigpIHwgdHJhbnNsYXRlXCJcbiAgICBkYXRhLWN5PVwiaWRlbnRpZmllci1pbi1zZXJ2aWNlXCJcbiAgICBbZGlzYWJsZWRdPVwiZGlzYWJsZWRcIlxuICAgICpuZ0lmPVwiXG4gICAgICAhYWN0aXZlTGF5ZXJTdWdnZXN0aW9uIHx8XG4gICAgICAodXJsICYmIGVycm9yTWVzc2FnZSkgfHxcbiAgICAgIChtb2RpZnlNb2RlICYmIGxheWVycyA9PT0gdW5kZWZpbmVkKVxuICAgIFwiXG4gID48L2duLXVpLXRleHQtaW5wdXQ+XG4gIDxnbi11aS1kcm9wZG93bi1zZWxlY3RvclxuICAgIGNsYXNzPVwiYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwIHBiLTRcIlxuICAgIFtzaG93VGl0bGVdPVwiZmFsc2VcIlxuICAgIFt0aXRsZV09XCJcbiAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnNlbGVjdC5sYWJlbCdcbiAgICAgICAgfCB0cmFuc2xhdGVcbiAgICBcIlxuICAgIFtjaG9pY2VzXT1cImxheWVycyB8fCBbXVwiXG4gICAgKm5nSWY9XCJhY3RpdmVMYXllclN1Z2dlc3Rpb24gJiYgbGF5ZXJzICE9PSB1bmRlZmluZWRcIlxuICAgIFtzZWxlY3RlZF09XCJzZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIChzZWxlY3RWYWx1ZSk9XCJoYW5kbGVTZWxlY3RWYWx1ZSgkZXZlbnQpXCJcbiAgPlxuICA8L2duLXVpLWRyb3Bkb3duLXNlbGVjdG9yPlxuICA8Z24tdWktYnV0dG9uXG4gICAgKGJ1dHRvbkNsaWNrKT1cInN1Ym1pdElkZW50aWZpZXIoc2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlKVwiXG4gICAgW2Rpc2FibGVkXT1cImRpc2FibGVkIHx8ICFzZXJ2aWNlLmlkZW50aWZpZXJJblNlcnZpY2VcIlxuICAgIHR5cGU9XCJwcmltYXJ5XCJcbiAgICAqbmdJZj1cIlxuICAgICAgIW1vZGlmeU1vZGUgJiZcbiAgICAgICgoYWN0aXZlTGF5ZXJTdWdnZXN0aW9uICYmIGxheWVycykgfHxcbiAgICAgICAgIWFjdGl2ZUxheWVyU3VnZ2VzdGlvbiB8fFxuICAgICAgICAodXJsICYmIGVycm9yTWVzc2FnZSkpXG4gICAgXCJcbiAgPlxuICAgIDxzcGFuIGNsYXNzPVwidGV4dC13aGl0ZSBmb250LWJvbGRcIiB0cmFuc2xhdGU+XG4gICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5pZGVudGlmaWVyLnN1Ym1pdDwvc3BhblxuICAgID5cbiAgPC9nbi11aS1idXR0b24+XG48L2Rpdj5cbiJdfQ==
|
|
@@ -49,6 +49,7 @@ export class FormFieldOnlineResourcesComponent {
|
|
|
49
49
|
type: 'service',
|
|
50
50
|
accessServiceProtocol: 'ogcFeatures',
|
|
51
51
|
identifierInService: '',
|
|
52
|
+
url: undefined,
|
|
52
53
|
};
|
|
53
54
|
this.MAX_UPLOAD_SIZE_MB = MAX_UPLOAD_SIZE_MB;
|
|
54
55
|
}
|
|
@@ -171,7 +172,7 @@ export class FormFieldOnlineResourcesComponent {
|
|
|
171
172
|
});
|
|
172
173
|
}
|
|
173
174
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, deps: [{ token: i1.NotificationsService }, { token: i2.TranslateService }, { token: i3.PlatformServiceInterface }, { token: i0.ChangeDetectorRef }, { token: i4.MatDialog }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
174
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (
|
|
175
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.13", type: FormFieldOnlineResourcesComponent, isStandalone: true, selector: "gn-ui-form-field-online-resources", inputs: { metadataUuid: "metadataUuid", value: "value" }, outputs: { valueChange: "valueChange" }, viewQueries: [{ propertyName: "dialogTemplate", first: true, predicate: ["dialogTemplate"], descendants: true }], ngImport: i0, template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <ng-template #urlInput>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n", styles: [""], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i5.AsyncPipe, name: "async" }, { kind: "component", type: SwitchToggleComponent, selector: "gn-ui-switch-toggle", inputs: ["options", "ariaLabel", "extraClasses", "disabled"], outputs: ["selectedValue"] }, { kind: "component", type: FileInputComponent, selector: "gn-ui-file-input", inputs: ["maxSizeMB", "uploadProgress", "disabled"], outputs: ["fileChange", "urlChange", "uploadCancel"] }, { kind: "component", type: OnlineServiceResourceInputComponent, selector: "gn-ui-online-service-resource-input", inputs: ["service", "protocolHint", "disabled", "modifyMode"], outputs: ["urlChange", "identifierSubmit"] }, { kind: "component", type: UrlInputComponent, selector: "gn-ui-url-input", inputs: ["value", "extraClass", "placeholder", "disabled", "showValidateButton"], outputs: ["valueChange", "uploadClick"] }, { kind: "component", type: SortableListComponent, selector: "gn-ui-sortable-list", inputs: ["elementTemplate", "items"], outputs: ["itemsOrderChange"] }, { kind: "component", type: OnlineResourceCardComponent, selector: "gn-ui-online-resource-card", inputs: ["onlineResource"], outputs: ["modifyClick"] }, { kind: "component", type: TextInputComponent, selector: "gn-ui-text-input", inputs: ["value", "extraClass", "placeholder", "required", "disabled"], outputs: ["valueChange"] }, { kind: "component", type: TextAreaComponent, selector: "gn-ui-text-area", inputs: ["value", "disabled", "extraClass", "placeholder", "required"], outputs: ["valueChange"] }, { kind: "ngmodule", type: TranslateModule }, { kind: "directive", type: i2.TranslateDirective, selector: "[translate],[ngx-translate]", inputs: ["translate", "translateParams"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
|
|
175
176
|
}
|
|
176
177
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImport: i0, type: FormFieldOnlineResourcesComponent, decorators: [{
|
|
177
178
|
type: Component,
|
|
@@ -186,7 +187,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
186
187
|
TextInputComponent,
|
|
187
188
|
TextAreaComponent,
|
|
188
189
|
TranslateModule,
|
|
189
|
-
], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (
|
|
190
|
+
], template: "<div class=\"flex flex-col\">\n <gn-ui-switch-toggle\n [options]=\"typeOptions\"\n (selectedValue)=\"onSelectedTypeChange($event.value)\"\n extraClasses=\"grow text-sm\"\n data-cy=\"online-resources-type\"\n ></gn-ui-switch-toggle>\n <div class=\"h-[8px]\"></div>\n <gn-ui-file-input\n *ngIf=\"selectedType === 'download'\"\n [maxSizeMB]=\"MAX_UPLOAD_SIZE_MB\"\n (fileChange)=\"handleFileChange($event)\"\n (uploadCancel)=\"handleUploadCancel()\"\n [uploadProgress]=\"uploadProgress\"\n (urlChange)=\"handleDownloadUrlChange($event)\"\n ></gn-ui-file-input>\n <div\n *ngIf=\"selectedType === 'service'\"\n class=\"w-full border-2 border-dashed rounded-lg p-6 flex flex-col gap-[16px]\"\n >\n <gn-ui-online-service-resource-input\n [service]=\"newService\"\n [disabled]=\"disabled$ | async\"\n (identifierSubmit)=\"handleIdentifierSubmit($event)\"\n ></gn-ui-online-service-resource-input>\n </div>\n <div class=\"h-[8px]\"></div>\n <gn-ui-sortable-list\n [items]=\"notLinkResources\"\n (itemsOrderChange)=\"handleResourcesChange($event)\"\n [elementTemplate]=\"template\"\n >\n </gn-ui-sortable-list>\n <ng-template #template let-onlineResource let-index=\"index\">\n <gn-ui-online-resource-card\n [onlineResource]=\"onlineResource\"\n (modifyClick)=\"handleResourceModify(onlineResource, index)\"\n ></gn-ui-online-resource-card>\n </ng-template>\n\n <ng-template #dialogTemplate let-onlineResource>\n <div class=\"flex flex-col gap-[16px]\">\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.title\n </h3>\n <gn-ui-text-input [(value)]=\"onlineResource.name\"></gn-ui-text-input>\n </div>\n <div>\n <h3 class=\"text-[16px] font-bold text-main mb-[12px]\" translate>\n editor.record.form.field.onlineResource.edit.description\n </h3>\n <gn-ui-text-area\n [(value)]=\"onlineResource.description\"\n ></gn-ui-text-area>\n </div>\n <ng-container *ngIf=\"onlineResource.type === 'service'; else urlInput\">\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-online-service-resource-input\n [service]=\"onlineResource\"\n [modifyMode]=\"true\"\n ></gn-ui-online-service-resource-input>\n </ng-container>\n <ng-template #urlInput>\n <span class=\"w-full border-b border-gray-300\"></span>\n <gn-ui-url-input\n class=\"w-full\"\n [disabled]=\"true\"\n [value]=\"onlineResource.url\"\n [showValidateButton]=\"false\"\n ></gn-ui-url-input>\n </ng-template>\n </div>\n </ng-template>\n</div>\n" }]
|
|
190
191
|
}], ctorParameters: () => [{ type: i1.NotificationsService }, { type: i2.TranslateService }, { type: i3.PlatformServiceInterface }, { type: i0.ChangeDetectorRef }, { type: i4.MatDialog }], propDecorators: { metadataUuid: [{
|
|
191
192
|
type: Input
|
|
192
193
|
}], value: [{
|
|
@@ -197,4 +198,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.13", ngImpo
|
|
|
197
198
|
type: ViewChild,
|
|
198
199
|
args: ['dialogTemplate']
|
|
199
200
|
}] } });
|
|
200
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFPaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsb0JB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QU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUM5QyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO2dCQUNyRCxHQUFHLFdBQVc7YUFDZixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBOUxVLGlDQUFpQzttR0FBakMsaUNBQWlDLGtUQy9EOUMsMnFGQXlFQSx5RER0QkksWUFBWSx3TEFDWixxQkFBcUIsMEpBQ3JCLGtCQUFrQix3S0FDbEIsbUNBQW1DLDZLQUNuQyxpQkFBaUIsdUxBQ2pCLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw2SkFDakIsZUFBZTs7NEZBR04saUNBQWlDO2tCQW5CN0MsU0FBUzsrQkFDRSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG1DQUFtQzt3QkFDbkMsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO3VOQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZUVuZHBvaW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBTd2l0Y2hUb2dnbGVDb21wb25lbnQsXG4gIFN3aXRjaFRvZ2dsZU9wdGlvbixcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50J1xuXG50eXBlIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9XG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBTZXJ2aWNlRW5kcG9pbnRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN3aXRjaFRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubm90TGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9PiByZXMudHlwZSAhPT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHR5cGVPcHRpb25zOiBTd2l0Y2hUb2dnbGVPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UudG9nZ2xlLmRhdGFzZXQnKSxcbiAgICAgIHZhbHVlOiAnZG93bmxvYWQnLFxuICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS50b2dnbGUuc2VydmljZScpLFxuICAgICAgdmFsdWU6ICdzZXJ2aWNlJyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF1cbiAgc2VsZWN0ZWRUeXBlOiAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnID0gJ2Rvd25sb2FkJ1xuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbm90TGlua1Jlc291cmNlczogT25saW5lTm90TGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcbiAgbmV3U2VydmljZSA9IHtcbiAgICB0eXBlOiAnc2VydmljZScsXG4gICAgYWNjZXNzU2VydmljZVByb3RvY29sOiAnb2djRmVhdHVyZXMnLFxuICAgIGlkZW50aWZpZXJJblNlcnZpY2U6ICcnLFxuICB9IGFzIE9taXQ8RGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb24sICd1cmwnPlxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBvblNlbGVjdGVkVHlwZUNoYW5nZShzZWxlY3RlZFR5cGU6IHVua25vd24pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHNlbGVjdGVkVHlwZSBhcyAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnXG4gIH1cblxuICBoYW5kbGVGaWxlQ2hhbmdlKGZpbGU6IEZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMFxuICAgIHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VcbiAgICAgIC5hdHRhY2hGaWxlVG9SZWNvcmQodGhpcy5tZXRhZGF0YVV1aWQsIGZpbGUpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBldmVudC5wcm9ncmVzc1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc291cmNlOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICAgIHNpemVCeXRlczogZXZlbnQuc2l6ZUJ5dGVzLCAvLyBXQVJOSU5HOiB0aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhhdCBzaXplQnl0ZXMgaXMgc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURvd25sb2FkVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgY29uc3QgbmV3TGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uID0ge1xuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwodXJsKSxcbiAgICAgICAgbmFtZSxcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbLi4udGhpcy5hbGxSZXNvdXJjZXMsIG5ld0xpbmtdKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLm5ld1NlcnZpY2UsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlSWRlbnRpZmllclN1Ym1pdChwYXlsb2FkOiB7IHVybDogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLmFsbFJlc291cmNlcyxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5uZXdTZXJ2aWNlLFxuICAgICAgICB1cmw6IG5ldyBVUkwocGF5bG9hZC51cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlU2VydmljZU1vZGlmeShcbiAgICBvbGRTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBuZXdTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApIHtcbiAgICBvbGRTZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG5ld1NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgb2xkU2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbmV3U2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXG4gICAgb2xkU2VydmljZS51cmwgPSBuZXdTZXJ2aWNlLnVybFxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBub3RMaW5rcyA9IGl0ZW1zIGFzIE9ubGluZU5vdExpbmtSZXNvdXJjZVtdXG4gICAgY29uc3QgbmV3UmVzb3VyY2VzID0gW1xuICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAuLi5ub3RMaW5rcyxcbiAgICBdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1Jlc291cmNlcylcbiAgfVxuXG4gIGhhbmRsZVJlc291cmNlTW9kaWZ5KHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5FZGl0RGlhbG9nKHJlc291cmNlLCBpbmRleClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IudGl0bGUnXG4gICAgICAgICksXG4gICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuYm9keSdcbiAgICAgICAgKX0gJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgIGNsb3NlTWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5jbG9zZU1lc3NhZ2UnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXJyb3JcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wZW5FZGl0RGlhbG9nKHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByZXNvdXJjZUNvcHkgPSB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKE1vZGFsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5kaWFsb2dUaXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvZHk6IHRoaXMuZGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgYm9keUNvbnRleHQ6IHJlc291cmNlQ29weSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNvbmZpcm0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuY2FuY2VsJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5ld05vdExpbmtzID0gWy4uLnRoaXMubm90TGlua1Jlc291cmNlc11cbiAgICAgICAgbmV3Tm90TGlua3Muc3BsaWNlKGluZGV4LCAxLCByZXNvdXJjZUNvcHkpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAgICAgLi4ubmV3Tm90TGlua3MsXG4gICAgICAgIF0pXG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICA8Z24tdWktc3dpdGNoLXRvZ2dsZVxuICAgIFtvcHRpb25zXT1cInR5cGVPcHRpb25zXCJcbiAgICAoc2VsZWN0ZWRWYWx1ZSk9XCJvblNlbGVjdGVkVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICBleHRyYUNsYXNzZXM9XCJncm93IHRleHQtc21cIlxuICAgIGRhdGEtY3k9XCJvbmxpbmUtcmVzb3VyY2VzLXR5cGVcIlxuICA+PC9nbi11aS1zd2l0Y2gtdG9nZ2xlPlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktZmlsZS1pbnB1dFxuICAgICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnZG93bmxvYWQnXCJcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgKGZpbGVDaGFuZ2UpPVwiaGFuZGxlRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlRG93bmxvYWRVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2duLXVpLWZpbGUtaW5wdXQ+XG4gIDxkaXZcbiAgICAqbmdJZj1cInNlbGVjdGVkVHlwZSA9PT0gJ3NlcnZpY2UnXCJcbiAgICBjbGFzcz1cInctZnVsbCBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgZ2FwLVsxNnB4XVwiXG4gID5cbiAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgIFtzZXJ2aWNlXT1cIm5ld1NlcnZpY2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlU2VydmljZVVybENoYW5nZSgkZXZlbnQpXCJcbiAgICAgIChpZGVudGlmaWVyU3VibWl0KT1cImhhbmRsZUlkZW50aWZpZXJTdWJtaXQoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgIFtpdGVtc109XCJub3RMaW5rUmVzb3VyY2VzXCJcbiAgICAoaXRlbXNPcmRlckNoYW5nZSk9XCJoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gID5cbiAgPC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgICAgW29ubGluZVJlc291cmNlXT1cIm9ubGluZVJlc291cmNlXCJcbiAgICAgIChtb2RpZnlDbGljayk9XCJoYW5kbGVSZXNvdXJjZU1vZGlmeShvbmxpbmVSZXNvdXJjZSwgaW5kZXgpXCJcbiAgICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1pbnB1dCBbKHZhbHVlKV09XCJvbmxpbmVSZXNvdXJjZS5uYW1lXCI+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1hcmVhXG4gICAgICAgICAgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb25cIlxuICAgICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmxpbmVSZXNvdXJjZS50eXBlID09PSAnc2VydmljZSdcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwXCI+PC9zcGFuPlxuICAgICAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgICAgICBbc2VydmljZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgICAgID48L2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgICA8Z24tdWktdXJsLWlucHV0XG4gICAgICAgIGNsYXNzPVwidy1mdWxsXCJcbiAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICBbdmFsdWVdPVwib25saW5lUmVzb3VyY2UudXJsXCJcbiAgICAgICAgW3Nob3dWYWxpZGF0ZUJ1dHRvbl09XCJmYWxzZVwiXG4gICAgICA+PC9nbi11aS11cmwtaW5wdXQ+XG4gICAgPC9kaXY+XG4gIDwvbmctdGVtcGxhdGU+XG48L2Rpdj5cbiJdfQ==
|
|
201
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvZmVhdHVyZS9lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3JlY29yZC1mb3JtL2Zvcm0tZmllbGQvZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2ZlYXR1cmUvZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9yZWNvcmQtZm9ybS9mb3JtLWZpZWxkL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy9mb3JtLWZpZWxkLW9ubGluZS1yZXNvdXJjZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFBO0FBQzlDLE9BQU8sRUFDTCx1QkFBdUIsRUFDdkIsaUJBQWlCLEVBQ2pCLFNBQVMsRUFDVCxZQUFZLEVBQ1osS0FBSyxFQUNMLE1BQU0sRUFDTixXQUFXLEVBQ1gsU0FBUyxHQUNWLE1BQU0sZUFBZSxDQUFBO0FBQ3RCLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQTtBQUNwRCxPQUFPLEVBQUUsTUFBTSxFQUFFLE1BQU0seUNBQXlDLENBQUE7QUFPaEUsT0FBTyxFQUFFLHdCQUF3QixFQUFFLE1BQU0sa0ZBQWtGLENBQUE7QUFDM0gsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sMkRBQTJELENBQUE7QUFDaEcsT0FBTyxFQUNMLGtCQUFrQixFQUNsQixxQkFBcUIsRUFFckIsaUJBQWlCLEVBQ2pCLGtCQUFrQixFQUNsQixpQkFBaUIsR0FDbEIsTUFBTSwrQ0FBK0MsQ0FBQTtBQUN0RCxPQUFPLEVBQ0wsb0JBQW9CLEVBQ3BCLHFCQUFxQixHQUN0QixNQUFNLCtDQUErQyxDQUFBO0FBQ3RELE9BQU8sRUFBRSxlQUFlLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxxQkFBcUIsQ0FBQTtBQUV2RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwyQkFBMkIsQ0FBQTtBQUM5RCxPQUFPLEVBQUUsMkJBQTJCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQTtBQUMxRyxPQUFPLEVBQUUsbUNBQW1DLEVBQUUsTUFBTSxnRkFBZ0YsQ0FBQTs7Ozs7OztBQTBCcEksTUFBTSxPQUFPLGlDQUFpQztJQUU1QyxJQUFhLEtBQUssQ0FBQyxlQUFzQztRQUN2RCxJQUFJLENBQUMsWUFBWSxHQUFHLGVBQWUsQ0FBQTtRQUNuQyxJQUFJLENBQUMsZ0JBQWdCLEdBQUcsZUFBZSxDQUFDLE1BQU0sQ0FDNUMsQ0FBQyxHQUFHLEVBQWdDLEVBQUUsQ0FBQyxHQUFHLENBQUMsSUFBSSxLQUFLLE1BQU0sQ0FDM0QsQ0FBQTtJQUNILENBQUM7SUFpQ0QsWUFDVSxvQkFBMEMsRUFDMUMsZ0JBQWtDLEVBQ2xDLGVBQXlDLEVBQ3pDLEVBQXFCLEVBQ3JCLE1BQWlCO1FBSmpCLHlCQUFvQixHQUFwQixvQkFBb0IsQ0FBc0I7UUFDMUMscUJBQWdCLEdBQWhCLGdCQUFnQixDQUFrQjtRQUNsQyxvQkFBZSxHQUFmLGVBQWUsQ0FBMEI7UUFDekMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDckIsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQXJDakIsZ0JBQVcsR0FDbkIsSUFBSSxZQUFZLEVBQUUsQ0FBQTtRQUlwQixnQkFBVyxHQUF5QjtZQUNsQztnQkFDRSxLQUFLLEVBQUUsTUFBTSxDQUFDLHdEQUF3RCxDQUFDO2dCQUN2RSxLQUFLLEVBQUUsVUFBVTtnQkFDakIsT0FBTyxFQUFFLElBQUk7YUFDZDtZQUNEO2dCQUNFLEtBQUssRUFBRSxNQUFNLENBQUMsd0RBQXdELENBQUM7Z0JBQ3ZFLEtBQUssRUFBRSxTQUFTO2dCQUNoQixPQUFPLEVBQUUsS0FBSzthQUNmO1NBQ0YsQ0FBQTtRQUNELGlCQUFZLEdBQTJCLFVBQVUsQ0FBQTtRQUV6QyxpQkFBWSxHQUFxQixFQUFFLENBQUE7UUFDM0MscUJBQWdCLEdBQTRCLEVBQUUsQ0FBQTtRQUM5QyxtQkFBYyxHQUFHLFNBQVMsQ0FBQTtRQUMxQix1QkFBa0IsR0FBaUIsSUFBSSxDQUFBO1FBQ3ZDLGVBQVUsR0FBK0I7WUFDdkMsSUFBSSxFQUFFLFNBQVM7WUFDZixxQkFBcUIsRUFBRSxhQUFhO1lBQ3BDLG1CQUFtQixFQUFFLEVBQUU7WUFDdkIsR0FBRyxFQUFFLFNBQVM7U0FDZixDQUFBO1FBRVMsdUJBQWtCLEdBQUcsa0JBQWtCLENBQUE7SUFROUMsQ0FBQztJQUVKLG9CQUFvQixDQUFDLFlBQXFCO1FBQ3hDLElBQUksQ0FBQyxZQUFZLEdBQUcsWUFBc0MsQ0FBQTtJQUM1RCxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsSUFBVTtRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLENBQUMsQ0FBQTtRQUN2QixJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLGVBQWU7YUFDM0Msa0JBQWtCLENBQUMsSUFBSSxDQUFDLFlBQVksRUFBRSxJQUFJLENBQUM7YUFDM0MsU0FBUyxDQUFDO1lBQ1QsSUFBSSxFQUFFLENBQUMsS0FBSyxFQUFFLEVBQUU7Z0JBQ2QsSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFVBQVUsRUFBRSxDQUFDO29CQUM5QixJQUFJLENBQUMsY0FBYyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUE7b0JBQ3BDLElBQUksQ0FBQyxFQUFFLENBQUMsYUFBYSxFQUFFLENBQUE7Z0JBQ3pCLENBQUM7cUJBQU0sSUFBSSxLQUFLLENBQUMsSUFBSSxLQUFLLFNBQVMsRUFBRSxDQUFDO29CQUNwQyxJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtvQkFDL0IsSUFBSSxDQUFDLEVBQUUsQ0FBQyxhQUFhLEVBQUUsQ0FBQTtvQkFDdkIsTUFBTSxXQUFXLEdBQWdDO3dCQUMvQyxJQUFJLEVBQUUsVUFBVTt3QkFDaEIsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEtBQUssQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDO3dCQUNsQyxJQUFJLEVBQUUsS0FBSyxDQUFDLFVBQVUsQ0FBQyxRQUFRO3dCQUMvQixTQUFTLEVBQUUsS0FBSyxDQUFDLFNBQVMsRUFBRSx1REFBdUQ7cUJBQ3BGLENBQUE7b0JBQ0QsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUMsQ0FBQyxHQUFHLElBQUksQ0FBQyxZQUFZLEVBQUUsV0FBVyxDQUFDLENBQUMsQ0FBQTtnQkFDNUQsQ0FBQztZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxLQUFZLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDO1NBQ2pELENBQUMsQ0FBQTtJQUNOLENBQUM7SUFFRCxrQkFBa0I7UUFDaEIsSUFBSSxJQUFJLENBQUMsa0JBQWtCLEVBQUUsQ0FBQztZQUM1QixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQTtZQUMvQixJQUFJLENBQUMsa0JBQWtCLENBQUMsV0FBVyxFQUFFLENBQUE7UUFDdkMsQ0FBQztJQUNILENBQUM7SUFFRCx1QkFBdUIsQ0FBQyxHQUFXO1FBQ2pDLElBQUksQ0FBQztZQUNILE1BQU0sSUFBSSxHQUFHLEdBQUcsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUMsR0FBRyxFQUFFLENBQUE7WUFDakMsTUFBTSxPQUFPLEdBQWdDO2dCQUMzQyxJQUFJLEVBQUUsVUFBVTtnQkFDaEIsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLEdBQUcsQ0FBQztnQkFDakIsSUFBSTthQUNMLENBQUE7WUFDRCxJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxDQUFDLEdBQUcsSUFBSSxDQUFDLFlBQVksRUFBRSxPQUFPLENBQUMsQ0FBQyxDQUFBO1FBQ3hELENBQUM7UUFBQyxPQUFPLENBQUMsRUFBRSxDQUFDO1lBQ1gsSUFBSSxDQUFDLFdBQVcsQ0FBQyxDQUFVLENBQUMsQ0FBQTtRQUM5QixDQUFDO0lBQ0gsQ0FBQztJQUVELHNCQUFzQixDQUFDLEdBQVc7UUFDaEMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7WUFDcEIsR0FBRyxJQUFJLENBQUMsWUFBWTtZQUNwQjtnQkFDRSxHQUFHLElBQUksQ0FBQyxVQUFVO2dCQUNsQixHQUFHLEVBQUUsSUFBSSxHQUFHLENBQUMsR0FBRyxDQUFDO2FBQ2xCO1NBQ0YsQ0FBQyxDQUFBO0lBQ0osQ0FBQztJQUVELHNCQUFzQixDQUFDLE9BQTRDO1FBQ2pFLElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDO1lBQ3BCLEdBQUcsSUFBSSxDQUFDLFlBQVk7WUFDcEI7Z0JBQ0UsR0FBRyxJQUFJLENBQUMsVUFBVTtnQkFDbEIsR0FBRyxFQUFFLElBQUksR0FBRyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUM7YUFDMUI7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsbUJBQW1CLENBQ2pCLFVBQXNDLEVBQ3RDLFVBQXNDO1FBRXRDLFVBQVUsQ0FBQyxxQkFBcUIsR0FBRyxVQUFVLENBQUMscUJBQXFCLENBQUE7UUFDbkUsVUFBVSxDQUFDLG1CQUFtQixHQUFHLFVBQVUsQ0FBQyxtQkFBbUIsQ0FBQTtRQUMvRCxVQUFVLENBQUMsR0FBRyxHQUFHLFVBQVUsQ0FBQyxHQUFHLENBQUE7SUFDakMsQ0FBQztJQUVELHFCQUFxQixDQUFDLEtBQWdCO1FBQ3BDLE1BQU0sUUFBUSxHQUFHLEtBQWdDLENBQUE7UUFDakQsTUFBTSxZQUFZLEdBQUc7WUFDbkIsR0FBRyxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsRUFBRSxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxNQUFNLENBQUM7WUFDckQsR0FBRyxRQUFRO1NBQ1osQ0FBQTtRQUNELElBQUksQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFBO0lBQ3JDLENBQUM7SUFFRCxvQkFBb0IsQ0FBQyxRQUErQixFQUFFLEtBQWE7UUFDakUsSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLEVBQUUsS0FBSyxDQUFDLENBQUE7SUFDdEMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxLQUFZO1FBQzlCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFBO1FBQy9CLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxnQkFBZ0IsQ0FDeEM7WUFDRSxJQUFJLEVBQUUsT0FBTztZQUNiLEtBQUssRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUNsQyx5Q0FBeUMsQ0FDMUM7WUFDRCxJQUFJLEVBQUUsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUNwQyx3Q0FBd0MsQ0FDekMsSUFBSSxLQUFLLENBQUMsT0FBTyxFQUFFO1lBQ3BCLFlBQVksRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUN6QyxnREFBZ0QsQ0FDakQ7U0FDRixFQUNELFNBQVMsRUFDVCxLQUFLLENBQ04sQ0FBQTtJQUNILENBQUM7SUFFTyxjQUFjLENBQUMsUUFBK0IsRUFBRSxLQUFhO1FBQ25FLE1BQU0sWUFBWSxHQUFHO1lBQ25CLEdBQUcsUUFBUTtTQUNaLENBQUE7UUFDRCxJQUFJLENBQUMsTUFBTTthQUNSLElBQUksQ0FBQyxvQkFBb0IsRUFBRTtZQUMxQixLQUFLLEVBQUUsT0FBTztZQUNkLElBQUksRUFBRTtnQkFDSixLQUFLLEVBQUUsSUFBSSxDQUFDLGdCQUFnQixDQUFDLE9BQU8sQ0FDbEMscURBQXFELENBQ3REO2dCQUNELElBQUksRUFBRSxJQUFJLENBQUMsY0FBYztnQkFDekIsV0FBVyxFQUFFLFlBQVk7Z0JBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsZ0JBQWdCLENBQUMsT0FBTyxDQUN4QyxpREFBaUQsQ0FDbEQ7Z0JBQ0QsVUFBVSxFQUFFLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ3ZDLGdEQUFnRCxDQUNqRDthQUNGO1NBQ0YsQ0FBQzthQUNELFdBQVcsRUFBRTthQUNiLFNBQVMsQ0FBQyxDQUFDLFNBQWtCLEVBQUUsRUFBRTtZQUNoQyxJQUFJLENBQUMsU0FBUztnQkFBRSxPQUFNO1lBQ3RCLE1BQU0sV0FBVyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsZ0JBQWdCLENBQUMsQ0FBQTtZQUM5QyxXQUFXLENBQUMsTUFBTSxDQUFDLEtBQUssRUFBRSxDQUFDLEVBQUUsWUFBWSxDQUFDLENBQUE7WUFDMUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxJQUFJLENBQUM7Z0JBQ3BCLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFDO2dCQUNyRCxHQUFHLFdBQVc7YUFDZixDQUFDLENBQUE7UUFDSixDQUFDLENBQUMsQ0FBQTtJQUNOLENBQUM7K0dBL0xVLGlDQUFpQzttR0FBakMsaUNBQWlDLGtUQy9EOUMsd3VGQTJFQSx5RER4QkksWUFBWSx3TEFDWixxQkFBcUIsMEpBQ3JCLGtCQUFrQix3S0FDbEIsbUNBQW1DLDJMQUNuQyxpQkFBaUIsdUxBQ2pCLHFCQUFxQixxSUFDckIsMkJBQTJCLDZIQUMzQixrQkFBa0IsK0pBQ2xCLGlCQUFpQiw2SkFDakIsZUFBZTs7NEZBR04saUNBQWlDO2tCQW5CN0MsU0FBUzsrQkFDRSxtQ0FBbUMsbUJBRzVCLHVCQUF1QixDQUFDLE1BQU0sY0FDbkMsSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1oscUJBQXFCO3dCQUNyQixrQkFBa0I7d0JBQ2xCLG1DQUFtQzt3QkFDbkMsaUJBQWlCO3dCQUNqQixxQkFBcUI7d0JBQ3JCLDJCQUEyQjt3QkFDM0Isa0JBQWtCO3dCQUNsQixpQkFBaUI7d0JBQ2pCLGVBQWU7cUJBQ2hCO3VOQUdRLFlBQVk7c0JBQXBCLEtBQUs7Z0JBQ08sS0FBSztzQkFBakIsS0FBSztnQkFNSSxXQUFXO3NCQUFwQixNQUFNO2dCQUdzQixjQUFjO3NCQUExQyxTQUFTO3VCQUFDLGdCQUFnQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbidcbmltcG9ydCB7XG4gIENoYW5nZURldGVjdGlvblN0cmF0ZWd5LFxuICBDaGFuZ2VEZXRlY3RvclJlZixcbiAgQ29tcG9uZW50LFxuICBFdmVudEVtaXR0ZXIsXG4gIElucHV0LFxuICBPdXRwdXQsXG4gIFRlbXBsYXRlUmVmLFxuICBWaWV3Q2hpbGQsXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnXG5pbXBvcnQgeyBtYXJrZXIgfSBmcm9tICdAYmllc2JqZXJnL25neC10cmFuc2xhdGUtZXh0cmFjdC1tYXJrZXInXG5pbXBvcnQge1xuICBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24sXG4gIERhdGFzZXRTZXJ2aWNlRGlzdHJpYnV0aW9uLFxuICBPbmxpbmVSZXNvdXJjZSxcbiAgU2VydmljZUVuZHBvaW50LFxufSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9tb2RlbC9yZWNvcmQnXG5pbXBvcnQgeyBQbGF0Zm9ybVNlcnZpY2VJbnRlcmZhY2UgfSBmcm9tICcuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9saWJzL2NvbW1vbi9kb21haW4vc3JjL2xpYi9wbGF0Zm9ybS5zZXJ2aWNlLmludGVyZmFjZSdcbmltcG9ydCB7IE5vdGlmaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9mZWF0dXJlL25vdGlmaWNhdGlvbnMvc3JjJ1xuaW1wb3J0IHtcbiAgRmlsZUlucHV0Q29tcG9uZW50LFxuICBTd2l0Y2hUb2dnbGVDb21wb25lbnQsXG4gIFN3aXRjaFRvZ2dsZU9wdGlvbixcbiAgVGV4dEFyZWFDb21wb25lbnQsXG4gIFRleHRJbnB1dENvbXBvbmVudCxcbiAgVXJsSW5wdXRDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvaW5wdXRzL3NyYydcbmltcG9ydCB7XG4gIE1vZGFsRGlhbG9nQ29tcG9uZW50LFxuICBTb3J0YWJsZUxpc3RDb21wb25lbnQsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdWkvbGF5b3V0L3NyYydcbmltcG9ydCB7IFRyYW5zbGF0ZU1vZHVsZSwgVHJhbnNsYXRlU2VydmljZSB9IGZyb20gJ0BuZ3gtdHJhbnNsYXRlL2NvcmUnXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tICdyeGpzJ1xuaW1wb3J0IHsgTUFYX1VQTE9BRF9TSVpFX01CIH0gZnJvbSAnLi4vLi4vLi4vLi4vZmllbGRzLmNvbmZpZydcbmltcG9ydCB7IE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCB9IGZyb20gJy4uLy4uLy4uL29ubGluZS1yZXNvdXJjZS1jYXJkL29ubGluZS1yZXNvdXJjZS1jYXJkLmNvbXBvbmVudCdcbmltcG9ydCB7IE9ubGluZVNlcnZpY2VSZXNvdXJjZUlucHV0Q29tcG9uZW50IH0gZnJvbSAnLi4vLi4vLi4vb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQvb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQuY29tcG9uZW50J1xuXG50eXBlIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9XG4gIHwgRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uXG4gIHwgRGF0YXNldFNlcnZpY2VEaXN0cmlidXRpb25cbiAgfCBTZXJ2aWNlRW5kcG9pbnRcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ24tdWktZm9ybS1maWVsZC1vbmxpbmUtcmVzb3VyY2VzJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2Zvcm0tZmllbGQtb25saW5lLXJlc291cmNlcy5jb21wb25lbnQuY3NzJ10sXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFN3aXRjaFRvZ2dsZUNvbXBvbmVudCxcbiAgICBGaWxlSW5wdXRDb21wb25lbnQsXG4gICAgT25saW5lU2VydmljZVJlc291cmNlSW5wdXRDb21wb25lbnQsXG4gICAgVXJsSW5wdXRDb21wb25lbnQsXG4gICAgU29ydGFibGVMaXN0Q29tcG9uZW50LFxuICAgIE9ubGluZVJlc291cmNlQ2FyZENvbXBvbmVudCxcbiAgICBUZXh0SW5wdXRDb21wb25lbnQsXG4gICAgVGV4dEFyZWFDb21wb25lbnQsXG4gICAgVHJhbnNsYXRlTW9kdWxlLFxuICBdLFxufSlcbmV4cG9ydCBjbGFzcyBGb3JtRmllbGRPbmxpbmVSZXNvdXJjZXNDb21wb25lbnQge1xuICBASW5wdXQoKSBtZXRhZGF0YVV1aWQ6IHN0cmluZ1xuICBASW5wdXQoKSBzZXQgdmFsdWUob25saW5lUmVzb3VyY2VzOiBBcnJheTxPbmxpbmVSZXNvdXJjZT4pIHtcbiAgICB0aGlzLmFsbFJlc291cmNlcyA9IG9ubGluZVJlc291cmNlc1xuICAgIHRoaXMubm90TGlua1Jlc291cmNlcyA9IG9ubGluZVJlc291cmNlcy5maWx0ZXIoXG4gICAgICAocmVzKTogcmVzIGlzIE9ubGluZU5vdExpbmtSZXNvdXJjZSA9PiByZXMudHlwZSAhPT0gJ2xpbmsnXG4gICAgKVxuICB9XG4gIEBPdXRwdXQoKSB2YWx1ZUNoYW5nZTogRXZlbnRFbWl0dGVyPEFycmF5PE9ubGluZVJlc291cmNlPj4gPVxuICAgIG5ldyBFdmVudEVtaXR0ZXIoKVxuXG4gIEBWaWV3Q2hpbGQoJ2RpYWxvZ1RlbXBsYXRlJykgZGlhbG9nVGVtcGxhdGU6IFRlbXBsYXRlUmVmPE9ubGluZVJlc291cmNlPlxuXG4gIHR5cGVPcHRpb25zOiBTd2l0Y2hUb2dnbGVPcHRpb25bXSA9IFtcbiAgICB7XG4gICAgICBsYWJlbDogbWFya2VyKCdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UudG9nZ2xlLmRhdGFzZXQnKSxcbiAgICAgIHZhbHVlOiAnZG93bmxvYWQnLFxuICAgICAgY2hlY2tlZDogdHJ1ZSxcbiAgICB9LFxuICAgIHtcbiAgICAgIGxhYmVsOiBtYXJrZXIoJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS50b2dnbGUuc2VydmljZScpLFxuICAgICAgdmFsdWU6ICdzZXJ2aWNlJyxcbiAgICAgIGNoZWNrZWQ6IGZhbHNlLFxuICAgIH0sXG4gIF1cbiAgc2VsZWN0ZWRUeXBlOiAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnID0gJ2Rvd25sb2FkJ1xuXG4gIHByaXZhdGUgYWxsUmVzb3VyY2VzOiBPbmxpbmVSZXNvdXJjZVtdID0gW11cbiAgbm90TGlua1Jlc291cmNlczogT25saW5lTm90TGlua1Jlc291cmNlW10gPSBbXVxuICB1cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICB1cGxvYWRTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbiA9IG51bGxcbiAgbmV3U2VydmljZSA9IDxEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbj57XG4gICAgdHlwZTogJ3NlcnZpY2UnLFxuICAgIGFjY2Vzc1NlcnZpY2VQcm90b2NvbDogJ29nY0ZlYXR1cmVzJyxcbiAgICBpZGVudGlmaWVySW5TZXJ2aWNlOiAnJyxcbiAgICB1cmw6IHVuZGVmaW5lZCxcbiAgfVxuXG4gIHByb3RlY3RlZCBNQVhfVVBMT0FEX1NJWkVfTUIgPSBNQVhfVVBMT0FEX1NJWkVfTUJcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIG5vdGlmaWNhdGlvbnNTZXJ2aWNlOiBOb3RpZmljYXRpb25zU2VydmljZSxcbiAgICBwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsXG4gICAgcHJpdmF0ZSBwbGF0Zm9ybVNlcnZpY2U6IFBsYXRmb3JtU2VydmljZUludGVyZmFjZSxcbiAgICBwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZixcbiAgICBwcml2YXRlIGRpYWxvZzogTWF0RGlhbG9nXG4gICkge31cblxuICBvblNlbGVjdGVkVHlwZUNoYW5nZShzZWxlY3RlZFR5cGU6IHVua25vd24pIHtcbiAgICB0aGlzLnNlbGVjdGVkVHlwZSA9IHNlbGVjdGVkVHlwZSBhcyAnZG93bmxvYWQnIHwgJ3NlcnZpY2UnXG4gIH1cblxuICBoYW5kbGVGaWxlQ2hhbmdlKGZpbGU6IEZpbGUpIHtcbiAgICB0aGlzLnVwbG9hZFByb2dyZXNzID0gMFxuICAgIHRoaXMudXBsb2FkU3Vic2NyaXB0aW9uID0gdGhpcy5wbGF0Zm9ybVNlcnZpY2VcbiAgICAgIC5hdHRhY2hGaWxlVG9SZWNvcmQodGhpcy5tZXRhZGF0YVV1aWQsIGZpbGUpXG4gICAgICAuc3Vic2NyaWJlKHtcbiAgICAgICAgbmV4dDogKGV2ZW50KSA9PiB7XG4gICAgICAgICAgaWYgKGV2ZW50LnR5cGUgPT09ICdwcm9ncmVzcycpIHtcbiAgICAgICAgICAgIHRoaXMudXBsb2FkUHJvZ3Jlc3MgPSBldmVudC5wcm9ncmVzc1xuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICB9IGVsc2UgaWYgKGV2ZW50LnR5cGUgPT09ICdzdWNjZXNzJykge1xuICAgICAgICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcbiAgICAgICAgICAgIGNvbnN0IG5ld1Jlc291cmNlOiBEYXRhc2V0RG93bmxvYWREaXN0cmlidXRpb24gPSB7XG4gICAgICAgICAgICAgIHR5cGU6ICdkb3dubG9hZCcsXG4gICAgICAgICAgICAgIHVybDogbmV3IFVSTChldmVudC5hdHRhY2htZW50LnVybCksXG4gICAgICAgICAgICAgIG5hbWU6IGV2ZW50LmF0dGFjaG1lbnQuZmlsZU5hbWUsXG4gICAgICAgICAgICAgIHNpemVCeXRlczogZXZlbnQuc2l6ZUJ5dGVzLCAvLyBXQVJOSU5HOiB0aGlzIGlzIHRoZSBvbmx5IHRpbWUgdGhhdCBzaXplQnl0ZXMgaXMgc2V0XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICB0aGlzLnZhbHVlQ2hhbmdlLmVtaXQoWy4uLnRoaXMuYWxsUmVzb3VyY2VzLCBuZXdSZXNvdXJjZV0pXG4gICAgICAgICAgfVxuICAgICAgICB9LFxuICAgICAgICBlcnJvcjogKGVycm9yOiBFcnJvcikgPT4gdGhpcy5oYW5kbGVFcnJvcihlcnJvciksXG4gICAgICB9KVxuICB9XG5cbiAgaGFuZGxlVXBsb2FkQ2FuY2VsKCkge1xuICAgIGlmICh0aGlzLnVwbG9hZFN1YnNjcmlwdGlvbikge1xuICAgICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgICAgdGhpcy51cGxvYWRTdWJzY3JpcHRpb24udW5zdWJzY3JpYmUoKVxuICAgIH1cbiAgfVxuXG4gIGhhbmRsZURvd25sb2FkVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdHJ5IHtcbiAgICAgIGNvbnN0IG5hbWUgPSB1cmwuc3BsaXQoJy8nKS5wb3AoKVxuICAgICAgY29uc3QgbmV3TGluazogRGF0YXNldERvd25sb2FkRGlzdHJpYnV0aW9uID0ge1xuICAgICAgICB0eXBlOiAnZG93bmxvYWQnLFxuICAgICAgICB1cmw6IG5ldyBVUkwodXJsKSxcbiAgICAgICAgbmFtZSxcbiAgICAgIH1cbiAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbLi4udGhpcy5hbGxSZXNvdXJjZXMsIG5ld0xpbmtdKVxuICAgIH0gY2F0Y2ggKGUpIHtcbiAgICAgIHRoaXMuaGFuZGxlRXJyb3IoZSBhcyBFcnJvcilcbiAgICB9XG4gIH1cblxuICBoYW5kbGVTZXJ2aWNlVXJsQ2hhbmdlKHVybDogc3RyaW5nKSB7XG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KFtcbiAgICAgIC4uLnRoaXMuYWxsUmVzb3VyY2VzLFxuICAgICAge1xuICAgICAgICAuLi50aGlzLm5ld1NlcnZpY2UsXG4gICAgICAgIHVybDogbmV3IFVSTCh1cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlSWRlbnRpZmllclN1Ym1pdChwYXlsb2FkOiB7IHVybDogc3RyaW5nOyBpZGVudGlmaWVyOiBzdHJpbmcgfSkge1xuICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAuLi50aGlzLmFsbFJlc291cmNlcyxcbiAgICAgIHtcbiAgICAgICAgLi4udGhpcy5uZXdTZXJ2aWNlLFxuICAgICAgICB1cmw6IG5ldyBVUkwocGF5bG9hZC51cmwpLFxuICAgICAgfSxcbiAgICBdKVxuICB9XG5cbiAgaGFuZGxlU2VydmljZU1vZGlmeShcbiAgICBvbGRTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvbixcbiAgICBuZXdTZXJ2aWNlOiBEYXRhc2V0U2VydmljZURpc3RyaWJ1dGlvblxuICApIHtcbiAgICBvbGRTZXJ2aWNlLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCA9IG5ld1NlcnZpY2UuYWNjZXNzU2VydmljZVByb3RvY29sXG4gICAgb2xkU2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlID0gbmV3U2VydmljZS5pZGVudGlmaWVySW5TZXJ2aWNlXG4gICAgb2xkU2VydmljZS51cmwgPSBuZXdTZXJ2aWNlLnVybFxuICB9XG5cbiAgaGFuZGxlUmVzb3VyY2VzQ2hhbmdlKGl0ZW1zOiB1bmtub3duW10pIHtcbiAgICBjb25zdCBub3RMaW5rcyA9IGl0ZW1zIGFzIE9ubGluZU5vdExpbmtSZXNvdXJjZVtdXG4gICAgY29uc3QgbmV3UmVzb3VyY2VzID0gW1xuICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAuLi5ub3RMaW5rcyxcbiAgICBdXG4gICAgdGhpcy52YWx1ZUNoYW5nZS5lbWl0KG5ld1Jlc291cmNlcylcbiAgfVxuXG4gIGhhbmRsZVJlc291cmNlTW9kaWZ5KHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICB0aGlzLm9wZW5FZGl0RGlhbG9nKHJlc291cmNlLCBpbmRleClcbiAgfVxuXG4gIHByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEVycm9yKSB7XG4gICAgdGhpcy51cGxvYWRQcm9ncmVzcyA9IHVuZGVmaW5lZFxuICAgIHRoaXMubm90aWZpY2F0aW9uc1NlcnZpY2Uuc2hvd05vdGlmaWNhdGlvbihcbiAgICAgIHtcbiAgICAgICAgdHlwZTogJ2Vycm9yJyxcbiAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IudGl0bGUnXG4gICAgICAgICksXG4gICAgICAgIHRleHQ6IGAke3RoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICdlZGl0b3IucmVjb3JkLm9ubGluZVJlc291cmNlRXJyb3IuYm9keSdcbiAgICAgICAgKX0gJHtlcnJvci5tZXNzYWdlfWAsXG4gICAgICAgIGNsb3NlTWVzc2FnZTogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgJ2VkaXRvci5yZWNvcmQub25saW5lUmVzb3VyY2VFcnJvci5jbG9zZU1lc3NhZ2UnXG4gICAgICAgICksXG4gICAgICB9LFxuICAgICAgdW5kZWZpbmVkLFxuICAgICAgZXJyb3JcbiAgICApXG4gIH1cblxuICBwcml2YXRlIG9wZW5FZGl0RGlhbG9nKHJlc291cmNlOiBPbmxpbmVOb3RMaW5rUmVzb3VyY2UsIGluZGV4OiBudW1iZXIpIHtcbiAgICBjb25zdCByZXNvdXJjZUNvcHkgPSB7XG4gICAgICAuLi5yZXNvdXJjZSxcbiAgICB9XG4gICAgdGhpcy5kaWFsb2dcbiAgICAgIC5vcGVuKE1vZGFsRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgIHdpZHRoOiAnODAwcHgnLFxuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgdGl0bGU6IHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAgICAgJ2VkaXRvci5yZWNvcmQuZm9ybS5maWVsZC5vbmxpbmVSZXNvdXJjZS5kaWFsb2dUaXRsZSdcbiAgICAgICAgICApLFxuICAgICAgICAgIGJvZHk6IHRoaXMuZGlhbG9nVGVtcGxhdGUsXG4gICAgICAgICAgYm9keUNvbnRleHQ6IHJlc291cmNlQ29weSxcbiAgICAgICAgICBjb25maXJtVGV4dDogdGhpcy50cmFuc2xhdGVTZXJ2aWNlLmluc3RhbnQoXG4gICAgICAgICAgICAnZWRpdG9yLnJlY29yZC5mb3JtLmZpZWxkLm9ubGluZVJlc291cmNlLmNvbmZpcm0nXG4gICAgICAgICAgKSxcbiAgICAgICAgICBjYW5jZWxUZXh0OiB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChcbiAgICAgICAgICAgICdlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuY2FuY2VsJ1xuICAgICAgICAgICksXG4gICAgICAgIH0sXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKGNvbmZpcm1lZDogYm9vbGVhbikgPT4ge1xuICAgICAgICBpZiAoIWNvbmZpcm1lZCkgcmV0dXJuXG4gICAgICAgIGNvbnN0IG5ld05vdExpbmtzID0gWy4uLnRoaXMubm90TGlua1Jlc291cmNlc11cbiAgICAgICAgbmV3Tm90TGlua3Muc3BsaWNlKGluZGV4LCAxLCByZXNvdXJjZUNvcHkpXG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2UuZW1pdChbXG4gICAgICAgICAgLi4udGhpcy5hbGxSZXNvdXJjZXMuZmlsdGVyKChyKSA9PiByLnR5cGUgPT09ICdsaW5rJyksXG4gICAgICAgICAgLi4ubmV3Tm90TGlua3MsXG4gICAgICAgIF0pXG4gICAgICB9KVxuICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbFwiPlxuICA8Z24tdWktc3dpdGNoLXRvZ2dsZVxuICAgIFtvcHRpb25zXT1cInR5cGVPcHRpb25zXCJcbiAgICAoc2VsZWN0ZWRWYWx1ZSk9XCJvblNlbGVjdGVkVHlwZUNoYW5nZSgkZXZlbnQudmFsdWUpXCJcbiAgICBleHRyYUNsYXNzZXM9XCJncm93IHRleHQtc21cIlxuICAgIGRhdGEtY3k9XCJvbmxpbmUtcmVzb3VyY2VzLXR5cGVcIlxuICA+PC9nbi11aS1zd2l0Y2gtdG9nZ2xlPlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktZmlsZS1pbnB1dFxuICAgICpuZ0lmPVwic2VsZWN0ZWRUeXBlID09PSAnZG93bmxvYWQnXCJcbiAgICBbbWF4U2l6ZU1CXT1cIk1BWF9VUExPQURfU0laRV9NQlwiXG4gICAgKGZpbGVDaGFuZ2UpPVwiaGFuZGxlRmlsZUNoYW5nZSgkZXZlbnQpXCJcbiAgICAodXBsb2FkQ2FuY2VsKT1cImhhbmRsZVVwbG9hZENhbmNlbCgpXCJcbiAgICBbdXBsb2FkUHJvZ3Jlc3NdPVwidXBsb2FkUHJvZ3Jlc3NcIlxuICAgICh1cmxDaGFuZ2UpPVwiaGFuZGxlRG93bmxvYWRVcmxDaGFuZ2UoJGV2ZW50KVwiXG4gID48L2duLXVpLWZpbGUtaW5wdXQ+XG4gIDxkaXZcbiAgICAqbmdJZj1cInNlbGVjdGVkVHlwZSA9PT0gJ3NlcnZpY2UnXCJcbiAgICBjbGFzcz1cInctZnVsbCBib3JkZXItMiBib3JkZXItZGFzaGVkIHJvdW5kZWQtbGcgcC02IGZsZXggZmxleC1jb2wgZ2FwLVsxNnB4XVwiXG4gID5cbiAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgIFtzZXJ2aWNlXT1cIm5ld1NlcnZpY2VcIlxuICAgICAgW2Rpc2FibGVkXT1cImRpc2FibGVkJCB8IGFzeW5jXCJcbiAgICAgIChpZGVudGlmaWVyU3VibWl0KT1cImhhbmRsZUlkZW50aWZpZXJTdWJtaXQoJGV2ZW50KVwiXG4gICAgPjwvZ24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaC1bOHB4XVwiPjwvZGl2PlxuICA8Z24tdWktc29ydGFibGUtbGlzdFxuICAgIFtpdGVtc109XCJub3RMaW5rUmVzb3VyY2VzXCJcbiAgICAoaXRlbXNPcmRlckNoYW5nZSk9XCJoYW5kbGVSZXNvdXJjZXNDaGFuZ2UoJGV2ZW50KVwiXG4gICAgW2VsZW1lbnRUZW1wbGF0ZV09XCJ0ZW1wbGF0ZVwiXG4gID5cbiAgPC9nbi11aS1zb3J0YWJsZS1saXN0PlxuICA8bmctdGVtcGxhdGUgI3RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZSBsZXQtaW5kZXg9XCJpbmRleFwiPlxuICAgIDxnbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZFxuICAgICAgW29ubGluZVJlc291cmNlXT1cIm9ubGluZVJlc291cmNlXCJcbiAgICAgIChtb2RpZnlDbGljayk9XCJoYW5kbGVSZXNvdXJjZU1vZGlmeShvbmxpbmVSZXNvdXJjZSwgaW5kZXgpXCJcbiAgICA+PC9nbi11aS1vbmxpbmUtcmVzb3VyY2UtY2FyZD5cbiAgPC9uZy10ZW1wbGF0ZT5cblxuICA8bmctdGVtcGxhdGUgI2RpYWxvZ1RlbXBsYXRlIGxldC1vbmxpbmVSZXNvdXJjZT5cbiAgICA8ZGl2IGNsYXNzPVwiZmxleCBmbGV4LWNvbCBnYXAtWzE2cHhdXCI+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC50aXRsZVxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1pbnB1dCBbKHZhbHVlKV09XCJvbmxpbmVSZXNvdXJjZS5uYW1lXCI+PC9nbi11aS10ZXh0LWlucHV0PlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2PlxuICAgICAgICA8aDMgY2xhc3M9XCJ0ZXh0LVsxNnB4XSBmb250LWJvbGQgdGV4dC1tYWluIG1iLVsxMnB4XVwiIHRyYW5zbGF0ZT5cbiAgICAgICAgICBlZGl0b3IucmVjb3JkLmZvcm0uZmllbGQub25saW5lUmVzb3VyY2UuZWRpdC5kZXNjcmlwdGlvblxuICAgICAgICA8L2gzPlxuICAgICAgICA8Z24tdWktdGV4dC1hcmVhXG4gICAgICAgICAgWyh2YWx1ZSldPVwib25saW5lUmVzb3VyY2UuZGVzY3JpcHRpb25cIlxuICAgICAgICA+PC9nbi11aS10ZXh0LWFyZWE+XG4gICAgICA8L2Rpdj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJvbmxpbmVSZXNvdXJjZS50eXBlID09PSAnc2VydmljZSc7IGVsc2UgdXJsSW5wdXRcIj5cbiAgICAgICAgPHNwYW4gY2xhc3M9XCJ3LWZ1bGwgYm9yZGVyLWIgYm9yZGVyLWdyYXktMzAwXCI+PC9zcGFuPlxuICAgICAgICA8Z24tdWktb25saW5lLXNlcnZpY2UtcmVzb3VyY2UtaW5wdXRcbiAgICAgICAgICBbc2VydmljZV09XCJvbmxpbmVSZXNvdXJjZVwiXG4gICAgICAgICAgW21vZGlmeU1vZGVdPVwidHJ1ZVwiXG4gICAgICAgID48L2duLXVpLW9ubGluZS1zZXJ2aWNlLXJlc291cmNlLWlucHV0PlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICA8bmctdGVtcGxhdGUgI3VybElucHV0PlxuICAgICAgICA8c3BhbiBjbGFzcz1cInctZnVsbCBib3JkZXItYiBib3JkZXItZ3JheS0zMDBcIj48L3NwYW4+XG4gICAgICAgIDxnbi11aS11cmwtaW5wdXRcbiAgICAgICAgICBjbGFzcz1cInctZnVsbFwiXG4gICAgICAgICAgW2Rpc2FibGVkXT1cInRydWVcIlxuICAgICAgICAgIFt2YWx1ZV09XCJvbmxpbmVSZXNvdXJjZS51cmxcIlxuICAgICAgICAgIFtzaG93VmFsaWRhdGVCdXR0b25dPVwiZmFsc2VcIlxuICAgICAgICA+PC9nbi11aS11cmwtaW5wdXQ+XG4gICAgICA8L25nLXRlbXBsYXRlPlxuICAgIDwvZGl2PlxuICA8L25nLXRlbXBsYXRlPlxuPC9kaXY+XG4iXX0=
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import { marker } from '@biesbjerg/ngx-translate-extract-marker';
|
|
2
|
+
import { OgcApiEndpoint, WfsEndpoint, WmsEndpoint, WmtsEndpoint, } from '@camptocamp/ogc-client';
|
|
2
3
|
marker('downloads.wfs.featuretype.not.found');
|
|
3
4
|
export const FORMATS = {
|
|
4
5
|
csv: {
|
|
@@ -217,7 +218,45 @@ export function getLinkLabel(link) {
|
|
|
217
218
|
const label = link.description || link.name;
|
|
218
219
|
return format ? `${label} (${format})` : label;
|
|
219
220
|
}
|
|
221
|
+
export async function getLayers(url, serviceProtocol) {
|
|
222
|
+
switch (serviceProtocol) {
|
|
223
|
+
case 'ogcFeatures': {
|
|
224
|
+
const layers = await new OgcApiEndpoint(url).allCollections;
|
|
225
|
+
return layers;
|
|
226
|
+
}
|
|
227
|
+
case 'wfs': {
|
|
228
|
+
const endpointWfs = new WfsEndpoint(url);
|
|
229
|
+
await endpointWfs.isReady();
|
|
230
|
+
return endpointWfs.getFeatureTypes();
|
|
231
|
+
}
|
|
232
|
+
case 'wms': {
|
|
233
|
+
const endpointWms = new WmsEndpoint(url);
|
|
234
|
+
await endpointWms.isReady();
|
|
235
|
+
return endpointWms
|
|
236
|
+
.getLayers()
|
|
237
|
+
.flatMap(wmsLayerFlatten)
|
|
238
|
+
.filter((l) => l.name);
|
|
239
|
+
}
|
|
240
|
+
case 'wmts': {
|
|
241
|
+
const endpointWmts = new WmtsEndpoint(url);
|
|
242
|
+
await endpointWmts.isReady();
|
|
243
|
+
return endpointWmts.getLayers();
|
|
244
|
+
}
|
|
245
|
+
default:
|
|
246
|
+
return undefined;
|
|
247
|
+
}
|
|
248
|
+
}
|
|
249
|
+
function wmsLayerFlatten(layerFull) {
|
|
250
|
+
const layer = {
|
|
251
|
+
title: layerFull.title,
|
|
252
|
+
name: layerFull.name,
|
|
253
|
+
abstract: layerFull.abstract,
|
|
254
|
+
};
|
|
255
|
+
return 'children' in layerFull && Array.isArray(layerFull.children)
|
|
256
|
+
? [layer, ...layerFull.children.flatMap(wmsLayerFlatten)]
|
|
257
|
+
: [layer];
|
|
258
|
+
}
|
|
220
259
|
export function getMimeTypeForFormat(format) {
|
|
221
260
|
return format in FORMATS ? FORMATS[format.toLowerCase()].mimeTypes[0] : null;
|
|
222
261
|
}
|
|
223
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUdoRSxNQUFNLENBQUMscUNBQXFDLENBQUMsQ0FBQTtBQUU3QyxNQUFNLENBQUMsTUFBTSxPQUFPLEdBQUc7SUFDckIsR0FBRyxFQUFFO1FBQ0gsVUFBVSxFQUFFLENBQUMsS0FBSyxDQUFDO1FBQ25CLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsVUFBVSxFQUFFLGlCQUFpQixDQUFDO0tBQzNDO0lBQ0QsS0FBSyxFQUFFO1FBQ0wsVUFBVSxFQUFFO1lBQ1YsT0FBTztZQUNQLEtBQUs7WUFDTCxNQUFNO1lBQ04sVUFBVTtZQUNWLCtCQUErQjtTQUNoQztRQUNELFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFO1lBQ1QsMEJBQTBCO1lBQzFCLG1FQUFtRTtTQUNwRTtLQUNGO0lBQ0QsT0FBTyxFQUFFO1FBQ1AsVUFBVSxFQUFFLENBQUMsU0FBUyxDQUFDO1FBQ3ZCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsc0JBQXNCLEVBQUUsMEJBQTBCLENBQUM7S0FDaEU7SUFDRCxJQUFJLEVBQUU7UUFDSixVQUFVLEVBQUUsQ0FBQyxNQUFNLENBQUM7UUFDcEIsUUFBUSxFQUFFLENBQUM7UUFDWCxLQUFLLEVBQUUsU0FBUztRQUNoQixTQUFTLEVBQUUsQ0FBQyxrQkFBa0IsQ0FBQztLQUNoQztJQUNELEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssRUFBRSxPQUFPLEVBQUUsa0JB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LFFBQVEsSUFBSSxDQUFDLHFCQUFxQixFQUFFLENBQUM7b0JBQ25DLEtBQUssS0FBSzt3QkFDUixNQUFNLEdBQUcsS0FBSyxDQUFBO3dCQUNkLE1BQUs7b0JBQ1AsS0FBSyxLQUFLO3dCQUNSLE1BQU0sR0FBRyxLQUFLLENBQUE7d0JBQ2QsTUFBSztvQkFDUCxLQUFLLE1BQU07d0JBQ1QsTUFBTSxHQUFHLE1BQU0sQ0FBQTt3QkFDZixNQUFLO29CQUNQLEtBQUssVUFBVTt3QkFDYixNQUFNLEdBQUcsTUFBTSxDQUFBO3dCQUNmLE1BQUs7Z0JBQ1QsQ0FBQztZQUNILENBQUM7WUFDRCxNQUFLO1FBQ1A7WUFDRSxNQUFNLEdBQUcsYUFBYSxDQUFDLElBQUksQ0FBQyxDQUFBO0lBQ2hDLENBQUM7SUFDRCxNQUFNLEtBQUssR0FBRyxJQUFJLENBQUMsV0FBVyxJQUFJLElBQUksQ0FBQyxJQUFJLENBQUE7SUFDM0MsT0FBTyxNQUFNLENBQUMsQ0FBQyxDQUFDLEdBQUcsS0FBSyxLQUFLLE1BQU0sR0FBRyxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUE7QUFDaEQsQ0FBQztBQUVELE1BQU0sVUFBVSxvQkFBb0IsQ0FBQyxNQUFrQjtJQUNyRCxPQUFPLE1BQU0sSUFBSSxPQUFPLENBQUMsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHsgRGF0YXNldE9ubGluZVJlc291cmNlIH0gZnJvbSAnLi4vLi4vLi4vLi4vLi4vLi4vbGlicy9jb21tb24vZG9tYWluL3NyYy9saWIvbW9kZWwvcmVjb3JkJ1xuXG5tYXJrZXIoJ2Rvd25sb2Fkcy53ZnMuZmVhdHVyZXR5cGUubm90LmZvdW5kJylcblxuZXhwb3J0IGNvbnN0IEZPUk1BVFMgPSB7XG4gIGNzdjoge1xuICAgIGV4dGVuc2lvbnM6IFsnY3N2J10sXG4gICAgcHJpb3JpdHk6IDEsXG4gICAgY29sb3I6ICcjYTZkNmMwJyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9jc3YnLCAnYXBwbGljYXRpb24vY3N2J10sXG4gIH0sXG4gIGV4Y2VsOiB7XG4gICAgZXh0ZW5zaW9uczogW1xuICAgICAgJ2V4Y2VsJyxcbiAgICAgICd4bHMnLFxuICAgICAgJ3hsc3gnLFxuICAgICAgJ21zLWV4Y2VsJyxcbiAgICAgICdvcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudCcsXG4gICAgXSxcbiAgICBwcmlvcml0eTogMixcbiAgICBjb2xvcjogJyNhY2M1ZTQnLFxuICAgIG1pbWVUeXBlczogW1xuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5tcy1leGNlbCcsXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9wZW54bWxmb3JtYXRzLW9mZmljZWRvY3VtZW50LnNwcmVhZHNoZWV0bWwuc2hlZXQnLFxuICAgIF0sXG4gIH0sXG4gIGdlb2pzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2dlb2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyNiM2NkZTgnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW8ranNvbicsICdhcHBsaWNhdGlvbi92bmQuZ2VvK2pzb24nXSxcbiAgfSxcbiAganNvbjoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbiddLFxuICAgIHByaW9yaXR5OiAzLFxuICAgIGNvbG9yOiAnI2IzY2RlOCcsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2pzb24nXSxcbiAgfSxcbiAgc2hwOiB7XG4gICAgZXh0ZW5zaW9uczogWydzaHAnLCAnc2hhcGUnLCAnemlwcGVkLXNoYXBlZmlsZSddLFxuICAgIHByaW9yaXR5OiA0LFxuICAgIGNvbG9yOiAnI2IyZDhiYScsXG4gICAgbWltZVR5cGVzOiBbJ3gtZ2lzL3gtc2hhcGVmaWxlJ10sXG4gIH0sXG4gIGdtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ21sJ10sXG4gICAgcHJpb3JpdHk6IDUsXG4gICAgY29sb3I6ICcjZTNiM2U1JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ21sK3htbCcsICd0ZXh0L3htbDsgc3VidHlwZT1nbWwnXSxcbiAgfSxcbiAga21sOiB7XG4gICAgZXh0ZW5zaW9uczogWydrbWwnLCAna216J10sXG4gICAgcHJpb3JpdHk6IDYsXG4gICAgY29sb3I6ICcjYzFlNmEwJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmttbCt4bWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5nb29nbGUtZWFydGgua216JyxcbiAgICBdLFxuICB9LFxuICBncGtnOiB7XG4gICAgZXh0ZW5zaW9uczogWydncGtnJywgJ2dlb3BhY2thZ2UnXSxcbiAgICBwcmlvcml0eTogNyxcbiAgICBjb2xvcjogJyNmN2NjZTYnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9nZW9wYWNrYWdlK3NxbGl0ZTMnXSxcbiAgfSxcbiAgemlwOiB7XG4gICAgZXh0ZW5zaW9uczogWyd6aXAnLCAndGFyLmd6J10sXG4gICAgcHJpb3JpdHk6IDgsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vemlwJywgJ2FwcGxpY2F0aW9uL3gtemlwJ10sXG4gIH0sXG4gIHBkZjoge1xuICAgIGV4dGVuc2lvbnM6IFsncGRmJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjZjViMmEzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vcGRmJ10sXG4gIH0sXG4gIGpwZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanBnJywgJ2pwZWcnLCAnamZpZicsICdwanBlZycsICdwanAnXSxcbiAgICBwcmlvcml0eTogOSxcbiAgICBjb2xvcjogJyNkMWMxZTknLFxuICAgIG1pbWVUeXBlczogWydpbWFnZS9qcGcnXSxcbiAgfSxcbiAgc3ZnOiB7XG4gICAgZXh0ZW5zaW9uczogWydzdmcnXSxcbiAgICBwcmlvcml0eTogMTAsXG4gICAgY29sb3I6ICcjZjNjMWM5JyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2Uvc3ZnK3htbCddLFxuICB9LFxuICBkeGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ2R4ZiddLFxuICAgIHByaW9yaXR5OiAxMSxcbiAgICBjb2xvcjogJyNmNmNlYWMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi94LWR4ZicsICdpbWFnZS94LWR4ZiddLFxuICB9LFxuICBodG1sOiB7XG4gICAgZXh0ZW5zaW9uczogWydodG1sJywgJ2h0bSddLFxuICAgIHByaW9yaXR5OiAxMixcbiAgICBjb2xvcjogJyNGRkYyQ0MnLFxuICAgIG1pbWVUeXBlczogWyd0ZXh0L2h0bWwnXSxcbiAgfSxcbiAgZmdiOiB7XG4gICAgZXh0ZW5zaW9uczogWydmZ2InLCAnZmxhdGdlb2J1ZiddLFxuICAgIHByaW9yaXR5OiAxMyxcbiAgICBjb2xvcjogJyNmZmU3YTMnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9mbGF0Z2VvYnVmJ10sXG4gIH0sXG4gIGpzb25mZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnanNvbmZnJywgJ2pzb25mZ2MnXSxcbiAgICBwcmlvcml0eTogMTQsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb24nLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vZ2MuZmcranNvbjtjb21wYXRpYmlsaXR5PWdlb2pzb24nLFxuICAgIF0sXG4gIH0sXG59IGFzIGNvbnN0XG5cbmV4cG9ydCB0eXBlIEZpbGVGb3JtYXQgPSBrZXlvZiB0eXBlb2YgRk9STUFUU1xuXG5leHBvcnQgZnVuY3Rpb24gZ2V0Rm9ybWF0UHJpb3JpdHkobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IG51bWJlciB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGV4dCBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7ZXh0fWAsICdpJykudGVzdChsaW5rRm9ybWF0KSkge1xuICAgICAgICBpZiAoRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5ID09PSAwKSByZXR1cm4gMFxuICAgICAgICByZXR1cm4gT2JqZWN0LmtleXMoRk9STUFUUykubGVuZ3RoIC0gRk9STUFUU1tmb3JtYXRdLnByaW9yaXR5XG4gICAgICB9XG4gICAgfVxuICB9XG4gIHJldHVybiAwXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRMaW5rUHJpb3JpdHkobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogbnVtYmVyIHtcbiAgcmV0dXJuIGdldEZvcm1hdFByaW9yaXR5KGdldEZpbGVGb3JtYXQobGluaykpXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRGaWxlRm9ybWF0RnJvbVNlcnZpY2VPdXRwdXQoXG4gIHNlcnZpY2VPdXRwdXQ6IHN0cmluZ1xuKTogRmlsZUZvcm1hdCB8IG51bGwge1xuICBmdW5jdGlvbiBmb3JtYXRNYXRjaGVyKGZvcm1hdDogKHR5cGVvZiBGT1JNQVRTKVtGaWxlRm9ybWF0XSk6IGJvb2xlYW4ge1xuICAgIGNvbnN0IG91dHB1dCA9IHNlcnZpY2VPdXRwdXQudG9Mb3dlckNhc2UoKVxuICAgIHJldHVybiAoXG4gICAgICBmb3JtYXQuZXh0ZW5zaW9ucy5zb21lKChleHRlbnNpb246IHN0cmluZykgPT5cbiAgICAgICAgb3V0cHV0LmluY2x1ZGVzKGV4dGVuc2lvbilcbiAgICAgICkgfHxcbiAgICAgIGZvcm1hdC5taW1lVHlwZXMuc29tZSgobWltZVR5cGU6IHN0cmluZykgPT4gb3V0cHV0LmluY2x1ZGVzKG1pbWVUeXBlKSlcbiAgICApXG4gIH1cbiAgZm9yIChjb25zdCBmb3JtYXROYW1lIGluIEZPUk1BVFMpIHtcbiAgICBpZiAoZm9ybWF0TWF0Y2hlcihGT1JNQVRTW2Zvcm1hdE5hbWVdKSkge1xuICAgICAgcmV0dXJuIGZvcm1hdE5hbWUgYXMgRmlsZUZvcm1hdFxuICAgIH1cbiAgfVxuICByZXR1cm4gbnVsbFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBGaWxlRm9ybWF0IHtcbiAgaWYgKCdtaW1lVHlwZScgaW4gbGluaykge1xuICAgIGNvbnN0IG1pbWVUeXBlRm9ybWF0ID0gbWltZVR5cGVUb0Zvcm1hdChsaW5rLm1pbWVUeXBlKVxuICAgIGlmIChtaW1lVHlwZUZvcm1hdCAhPT0gbnVsbCkge1xuICAgICAgcmV0dXJuIG1pbWVUeXBlRm9ybWF0XG4gICAgfVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAoY2hlY2tGaWxlRm9ybWF0KGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgICBpZiAoaXNGb3JtYXRJblF1ZXJ5UGFyYW0obGluaywgYWxpYXMpKSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGlzRm9ybWF0SW5RdWVyeVBhcmFtKFxuICBsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UsXG4gIGFsaWFzOiBzdHJpbmdcbik6IGJvb2xlYW4ge1xuICBjb25zdCBxdWVyeVBhcmFtcyA9IGxpbmsudXJsLnNlYXJjaFBhcmFtc1xuICBmb3IgKGNvbnN0IFtrZXksIHZhbHVlXSBvZiBxdWVyeVBhcmFtcy5lbnRyaWVzKCkpIHtcbiAgICBpZiAoa2V5ID09PSAnZm9ybWF0JyB8fCBrZXkgPT09ICdmJykge1xuICAgICAgcmV0dXJuIHZhbHVlID09PSBhbGlhc1xuICAgIH1cbiAgfVxuICByZXR1cm4gZmFsc2Vcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIG1pbWVUeXBlVG9Gb3JtYXQobWltZVR5cGU6IHN0cmluZyk6IEZpbGVGb3JtYXQge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBtdCBvZiBGT1JNQVRTW2Zvcm1hdF0ubWltZVR5cGVzKSB7XG4gICAgICBpZiAobWltZVR5cGUgPT09IG10KSByZXR1cm4gZm9ybWF0IGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGNoZWNrRmlsZUZvcm1hdChcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBmb3JtYXQ6IEZpbGVGb3JtYXRcbik6IGJvb2xlYW4ge1xuICByZXR1cm4gKFxuICAgICgnbmFtZScgaW4gbGluayAmJiBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsubmFtZSkpIHx8XG4gICAgKCd1cmwnIGluIGxpbmsgJiZcbiAgICAgIG5ldyBSZWdFeHAoYFsuL10ke2Zvcm1hdH1gLCAnaScpLnRlc3QobGluay51cmwudG9TdHJpbmcoKSkpXG4gIClcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEJhZGdlQ29sb3IobGlua0Zvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB7XG4gIGZvciAoY29uc3QgZm9ybWF0IGluIEZPUk1BVFMpIHtcbiAgICBmb3IgKGNvbnN0IGFsaWFzIG9mIEZPUk1BVFNbZm9ybWF0XS5leHRlbnNpb25zKSB7XG4gICAgICBpZiAobmV3IFJlZ0V4cChgJHthbGlhc31gLCAnaScpLnRlc3QobGlua0Zvcm1hdCkpXG4gICAgICAgIHJldHVybiBGT1JNQVRTW2Zvcm1hdF0uY29sb3JcbiAgICB9XG4gIH1cbiAgcmV0dXJuICd2YXIoLS1jb2xvci1ncmF5LTcwMCknIC8vIERlZmF1bHQgY29sb3IgP1xufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlua0xhYmVsKGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IHN0cmluZyB7XG4gIGxldCBmb3JtYXQgPSAnJ1xuICBzd2l0Y2ggKGxpbmsudHlwZSkge1xuICAgIGNhc2UgJ3NlcnZpY2UnOlxuICAgICAge1xuICAgICAgICBzd2l0Y2ggKGxpbmsuYWNjZXNzU2VydmljZVByb3RvY29sKSB7XG4gICAgICAgICAgY2FzZSAnd2ZzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXRlMnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICAgIGNhc2UgJ3dtcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01TJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXRzJzpcbiAgICAgICAgICAgIGZvcm1hdCA9ICdXTVRTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICdlc3JpUmVzdCc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnUkVTVCdcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgIH1cbiAgICAgIH1cbiAgICAgIGJyZWFrXG4gICAgZGVmYXVsdDpcbiAgICAgIGZvcm1hdCA9IGdldEZpbGVGb3JtYXQobGluaylcbiAgfVxuICBjb25zdCBsYWJlbCA9IGxpbmsuZGVzY3JpcHRpb24gfHwgbGluay5uYW1lXG4gIHJldHVybiBmb3JtYXQgPyBgJHtsYWJlbH0gKCR7Zm9ybWF0fSlgIDogbGFiZWxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=
|
|
262
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibGluay11dGlscy5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvdXRpbC9zaGFyZWQvc3JjL2xpYi9saW5rcy9saW5rLXV0aWxzLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxNQUFNLEVBQUUsTUFBTSx5Q0FBeUMsQ0FBQTtBQUtoRSxPQUFPLEVBQ0wsY0FBYyxFQUNkLFdBQVcsRUFDWCxXQUFXLEVBQ1gsWUFBWSxHQUNiLE1BQU0sd0JBQXdCLENBQUE7QUFFL0IsTUFBTSxDQUFDLHFDQUFxQyxDQUFDLENBQUE7QUFFN0MsTUFBTSxDQUFDLE1BQU0sT0FBTyxHQUFHO0lBQ3JCLEdBQUcsRUFBRTtRQUNILFVBQVUsRUFBRSxDQUFDLEtBQUssQ0FBQztRQUNuQixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLFVBQVUsRUFBRSxpQkFBaUIsQ0FBQztLQUMzQztJQUNELEtBQUssRUFBRTtRQUNMLFVBQVUsRUFBRTtZQUNWLE9BQU87WUFDUCxLQUFLO1lBQ0wsTUFBTTtZQUNOLFVBQVU7WUFDViwrQkFBK0I7U0FDaEM7UUFDRCxRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRTtZQUNULDBCQUEwQjtZQUMxQixtRUFBbUU7U0FDcEU7S0FDRjtJQUNELE9BQU8sRUFBRTtRQUNQLFVBQVUsRUFBRSxDQUFDLFNBQVMsQ0FBQztRQUN2QixRQUFRLEVBQUUsQ0FBQztRQUNYLEtBQUssRUFBRSxTQUFTO1FBQ2hCLFNBQVMsRUFBRSxDQUFDLHNCQUFzQixFQUFFLDBCQUEwQixDQUFDO0tBQ2hFO0lBQ0QsSUFBSSxFQUFFO1FBQ0osVUFBVSxFQUFFLENBQUMsTUFBTSxDQUFDO1FBQ3BCLFFBQVEsRUFBRSxDQUFDO1FBQ1gsS0FBSyxFQUFFLFNBQVM7UUFDaEIsU0FBUyxFQUFFLENBQUMsa0JB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QyxDQUFDLE9BQU8sQ0FBQyxNQUFNLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQTtBQUM5RSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgbWFya2VyIH0gZnJvbSAnQGJpZXNiamVyZy9uZ3gtdHJhbnNsYXRlLWV4dHJhY3QtbWFya2VyJ1xuaW1wb3J0IHtcbiAgRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBTZXJ2aWNlUHJvdG9jb2wsXG59IGZyb20gJy4uLy4uLy4uLy4uLy4uLy4uL2xpYnMvY29tbW9uL2RvbWFpbi9zcmMvbGliL21vZGVsL3JlY29yZCdcbmltcG9ydCB7XG4gIE9nY0FwaUVuZHBvaW50LFxuICBXZnNFbmRwb2ludCxcbiAgV21zRW5kcG9pbnQsXG4gIFdtdHNFbmRwb2ludCxcbn0gZnJvbSAnQGNhbXB0b2NhbXAvb2djLWNsaWVudCdcblxubWFya2VyKCdkb3dubG9hZHMud2ZzLmZlYXR1cmV0eXBlLm5vdC5mb3VuZCcpXG5cbmV4cG9ydCBjb25zdCBGT1JNQVRTID0ge1xuICBjc3Y6IHtcbiAgICBleHRlbnNpb25zOiBbJ2NzdiddLFxuICAgIHByaW9yaXR5OiAxLFxuICAgIGNvbG9yOiAnI2E2ZDZjMCcsXG4gICAgbWltZVR5cGVzOiBbJ3RleHQvY3N2JywgJ2FwcGxpY2F0aW9uL2NzdiddLFxuICB9LFxuICBleGNlbDoge1xuICAgIGV4dGVuc2lvbnM6IFtcbiAgICAgICdleGNlbCcsXG4gICAgICAneGxzJyxcbiAgICAgICd4bHN4JyxcbiAgICAgICdtcy1leGNlbCcsXG4gICAgICAnb3BlbnhtbGZvcm1hdHMtb2ZmaWNlZG9jdW1lbnQnLFxuICAgIF0sXG4gICAgcHJpb3JpdHk6IDIsXG4gICAgY29sb3I6ICcjYWNjNWU0JyxcbiAgICBtaW1lVHlwZXM6IFtcbiAgICAgICdhcHBsaWNhdGlvbi92bmQubXMtZXhjZWwnLFxuICAgICAgJ2FwcGxpY2F0aW9uL3ZuZC5vcGVueG1sZm9ybWF0cy1vZmZpY2Vkb2N1bWVudC5zcHJlYWRzaGVldG1sLnNoZWV0JyxcbiAgICBdLFxuICB9LFxuICBnZW9qc29uOiB7XG4gICAgZXh0ZW5zaW9uczogWydnZW9qc29uJ10sXG4gICAgcHJpb3JpdHk6IDMsXG4gICAgY29sb3I6ICcjYjNjZGU4JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ2VvK2pzb24nLCAnYXBwbGljYXRpb24vdm5kLmdlbytqc29uJ10sXG4gIH0sXG4gIGpzb246IHtcbiAgICBleHRlbnNpb25zOiBbJ2pzb24nXSxcbiAgICBwcmlvcml0eTogMyxcbiAgICBjb2xvcjogJyNiM2NkZTgnLFxuICAgIG1pbWVUeXBlczogWydhcHBsaWNhdGlvbi9qc29uJ10sXG4gIH0sXG4gIHNocDoge1xuICAgIGV4dGVuc2lvbnM6IFsnc2hwJywgJ3NoYXBlJywgJ3ppcHBlZC1zaGFwZWZpbGUnXSxcbiAgICBwcmlvcml0eTogNCxcbiAgICBjb2xvcjogJyNiMmQ4YmEnLFxuICAgIG1pbWVUeXBlczogWyd4LWdpcy94LXNoYXBlZmlsZSddLFxuICB9LFxuICBnbWw6IHtcbiAgICBleHRlbnNpb25zOiBbJ2dtbCddLFxuICAgIHByaW9yaXR5OiA1LFxuICAgIGNvbG9yOiAnI2UzYjNlNScsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL2dtbCt4bWwnLCAndGV4dC94bWw7IHN1YnR5cGU9Z21sJ10sXG4gIH0sXG4gIGttbDoge1xuICAgIGV4dGVuc2lvbnM6IFsna21sJywgJ2tteiddLFxuICAgIHByaW9yaXR5OiA2LFxuICAgIGNvbG9yOiAnI2MxZTZhMCcsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLmdvb2dsZS1lYXJ0aC5rbWwreG1sJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQuZ29vZ2xlLWVhcnRoLmtteicsXG4gICAgXSxcbiAgfSxcbiAgZ3BrZzoge1xuICAgIGV4dGVuc2lvbnM6IFsnZ3BrZycsICdnZW9wYWNrYWdlJ10sXG4gICAgcHJpb3JpdHk6IDcsXG4gICAgY29sb3I6ICcjZjdjY2U2JyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZ2VvcGFja2FnZStzcWxpdGUzJ10sXG4gIH0sXG4gIHppcDoge1xuICAgIGV4dGVuc2lvbnM6IFsnemlwJywgJ3Rhci5neiddLFxuICAgIHByaW9yaXR5OiA4LFxuICAgIGNvbG9yOiAnI2ZmZTdhMycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3ppcCcsICdhcHBsaWNhdGlvbi94LXppcCddLFxuICB9LFxuICBwZGY6IHtcbiAgICBleHRlbnNpb25zOiBbJ3BkZiddLFxuICAgIHByaW9yaXR5OiA5LFxuICAgIGNvbG9yOiAnI2Y1YjJhMycsXG4gICAgbWltZVR5cGVzOiBbJ2FwcGxpY2F0aW9uL3BkZiddLFxuICB9LFxuICBqcGc6IHtcbiAgICBleHRlbnNpb25zOiBbJ2pwZycsICdqcGVnJywgJ2pmaWYnLCAncGpwZWcnLCAncGpwJ10sXG4gICAgcHJpb3JpdHk6IDksXG4gICAgY29sb3I6ICcjZDFjMWU5JyxcbiAgICBtaW1lVHlwZXM6IFsnaW1hZ2UvanBnJ10sXG4gIH0sXG4gIHN2Zzoge1xuICAgIGV4dGVuc2lvbnM6IFsnc3ZnJ10sXG4gICAgcHJpb3JpdHk6IDEwLFxuICAgIGNvbG9yOiAnI2YzYzFjOScsXG4gICAgbWltZVR5cGVzOiBbJ2ltYWdlL3N2Zyt4bWwnXSxcbiAgfSxcbiAgZHhmOiB7XG4gICAgZXh0ZW5zaW9uczogWydkeGYnXSxcbiAgICBwcmlvcml0eTogMTEsXG4gICAgY29sb3I6ICcjZjZjZWFjJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24veC1keGYnLCAnaW1hZ2UveC1keGYnXSxcbiAgfSxcbiAgaHRtbDoge1xuICAgIGV4dGVuc2lvbnM6IFsnaHRtbCcsICdodG0nXSxcbiAgICBwcmlvcml0eTogMTIsXG4gICAgY29sb3I6ICcjRkZGMkNDJyxcbiAgICBtaW1lVHlwZXM6IFsndGV4dC9odG1sJ10sXG4gIH0sXG4gIGZnYjoge1xuICAgIGV4dGVuc2lvbnM6IFsnZmdiJywgJ2ZsYXRnZW9idWYnXSxcbiAgICBwcmlvcml0eTogMTMsXG4gICAgY29sb3I6ICcjZmZlN2EzJyxcbiAgICBtaW1lVHlwZXM6IFsnYXBwbGljYXRpb24vZmxhdGdlb2J1ZiddLFxuICB9LFxuICBqc29uZmc6IHtcbiAgICBleHRlbnNpb25zOiBbJ2pzb25mZycsICdqc29uZmdjJ10sXG4gICAgcHJpb3JpdHk6IDE0LFxuICAgIGNvbG9yOiAnI2ZmZTdhMycsXG4gICAgbWltZVR5cGVzOiBbXG4gICAgICAnYXBwbGljYXRpb24vdm5kLm9nYy5mZytqc29uJyxcbiAgICAgICdhcHBsaWNhdGlvbi92bmQub2djLmZnK2pzb247Y29tcGF0aWJpbGl0eT1nZW9qc29uJyxcbiAgICBdLFxuICB9LFxufSBhcyBjb25zdFxuXG5leHBvcnQgdHlwZSBGaWxlRm9ybWF0ID0ga2V5b2YgdHlwZW9mIEZPUk1BVFNcblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZvcm1hdFByaW9yaXR5KGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBudW1iZXIge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBleHQgb2YgRk9STUFUU1tmb3JtYXRdLmV4dGVuc2lvbnMpIHtcbiAgICAgIGlmIChuZXcgUmVnRXhwKGAke2V4dH1gLCAnaScpLnRlc3QobGlua0Zvcm1hdCkpIHtcbiAgICAgICAgaWYgKEZPUk1BVFNbZm9ybWF0XS5wcmlvcml0eSA9PT0gMCkgcmV0dXJuIDBcbiAgICAgICAgcmV0dXJuIE9iamVjdC5rZXlzKEZPUk1BVFMpLmxlbmd0aCAtIEZPUk1BVFNbZm9ybWF0XS5wcmlvcml0eVxuICAgICAgfVxuICAgIH1cbiAgfVxuICByZXR1cm4gMFxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0TGlua1ByaW9yaXR5KGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSk6IG51bWJlciB7XG4gIHJldHVybiBnZXRGb3JtYXRQcmlvcml0eShnZXRGaWxlRm9ybWF0KGxpbmspKVxufVxuXG5leHBvcnQgZnVuY3Rpb24gZ2V0RmlsZUZvcm1hdEZyb21TZXJ2aWNlT3V0cHV0KFxuICBzZXJ2aWNlT3V0cHV0OiBzdHJpbmdcbik6IEZpbGVGb3JtYXQgfCBudWxsIHtcbiAgZnVuY3Rpb24gZm9ybWF0TWF0Y2hlcihmb3JtYXQ6ICh0eXBlb2YgRk9STUFUUylbRmlsZUZvcm1hdF0pOiBib29sZWFuIHtcbiAgICBjb25zdCBvdXRwdXQgPSBzZXJ2aWNlT3V0cHV0LnRvTG93ZXJDYXNlKClcbiAgICByZXR1cm4gKFxuICAgICAgZm9ybWF0LmV4dGVuc2lvbnMuc29tZSgoZXh0ZW5zaW9uOiBzdHJpbmcpID0+XG4gICAgICAgIG91dHB1dC5pbmNsdWRlcyhleHRlbnNpb24pXG4gICAgICApIHx8XG4gICAgICBmb3JtYXQubWltZVR5cGVzLnNvbWUoKG1pbWVUeXBlOiBzdHJpbmcpID0+IG91dHB1dC5pbmNsdWRlcyhtaW1lVHlwZSkpXG4gICAgKVxuICB9XG4gIGZvciAoY29uc3QgZm9ybWF0TmFtZSBpbiBGT1JNQVRTKSB7XG4gICAgaWYgKGZvcm1hdE1hdGNoZXIoRk9STUFUU1tmb3JtYXROYW1lXSkpIHtcbiAgICAgIHJldHVybiBmb3JtYXROYW1lIGFzIEZpbGVGb3JtYXRcbiAgICB9XG4gIH1cbiAgcmV0dXJuIG51bGxcbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldEZpbGVGb3JtYXQobGluazogRGF0YXNldE9ubGluZVJlc291cmNlKTogRmlsZUZvcm1hdCB7XG4gIGlmICgnbWltZVR5cGUnIGluIGxpbmspIHtcbiAgICBjb25zdCBtaW1lVHlwZUZvcm1hdCA9IG1pbWVUeXBlVG9Gb3JtYXQobGluay5taW1lVHlwZSlcbiAgICBpZiAobWltZVR5cGVGb3JtYXQgIT09IG51bGwpIHtcbiAgICAgIHJldHVybiBtaW1lVHlwZUZvcm1hdFxuICAgIH1cbiAgfVxuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKGNoZWNrRmlsZUZvcm1hdChsaW5rLCBhbGlhcykpIHJldHVybiBmb3JtYXQgYXMgRmlsZUZvcm1hdFxuICAgICAgaWYgKGlzRm9ybWF0SW5RdWVyeVBhcmFtKGxpbmssIGFsaWFzKSkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBpc0Zvcm1hdEluUXVlcnlQYXJhbShcbiAgbGluazogRGF0YXNldE9ubGluZVJlc291cmNlLFxuICBhbGlhczogc3RyaW5nXG4pOiBib29sZWFuIHtcbiAgY29uc3QgcXVlcnlQYXJhbXMgPSBsaW5rLnVybC5zZWFyY2hQYXJhbXNcbiAgZm9yIChjb25zdCBba2V5LCB2YWx1ZV0gb2YgcXVlcnlQYXJhbXMuZW50cmllcygpKSB7XG4gICAgaWYgKGtleSA9PT0gJ2Zvcm1hdCcgfHwga2V5ID09PSAnZicpIHtcbiAgICAgIHJldHVybiB2YWx1ZSA9PT0gYWxpYXNcbiAgICB9XG4gIH1cbiAgcmV0dXJuIGZhbHNlXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBtaW1lVHlwZVRvRm9ybWF0KG1pbWVUeXBlOiBzdHJpbmcpOiBGaWxlRm9ybWF0IHtcbiAgZm9yIChjb25zdCBmb3JtYXQgaW4gRk9STUFUUykge1xuICAgIGZvciAoY29uc3QgbXQgb2YgRk9STUFUU1tmb3JtYXRdLm1pbWVUeXBlcykge1xuICAgICAgaWYgKG1pbWVUeXBlID09PSBtdCkgcmV0dXJuIGZvcm1hdCBhcyBGaWxlRm9ybWF0XG4gICAgfVxuICB9XG4gIHJldHVybiBudWxsXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBjaGVja0ZpbGVGb3JtYXQoXG4gIGxpbms6IERhdGFzZXRPbmxpbmVSZXNvdXJjZSxcbiAgZm9ybWF0OiBGaWxlRm9ybWF0XG4pOiBib29sZWFuIHtcbiAgcmV0dXJuIChcbiAgICAoJ25hbWUnIGluIGxpbmsgJiYgbmV3IFJlZ0V4cChgWy4vXSR7Zm9ybWF0fWAsICdpJykudGVzdChsaW5rLm5hbWUpKSB8fFxuICAgICgndXJsJyBpbiBsaW5rICYmXG4gICAgICBuZXcgUmVnRXhwKGBbLi9dJHtmb3JtYXR9YCwgJ2knKS50ZXN0KGxpbmsudXJsLnRvU3RyaW5nKCkpKVxuICApXG59XG5cbmV4cG9ydCBmdW5jdGlvbiBnZXRCYWRnZUNvbG9yKGxpbmtGb3JtYXQ6IEZpbGVGb3JtYXQpOiBzdHJpbmcge1xuICBmb3IgKGNvbnN0IGZvcm1hdCBpbiBGT1JNQVRTKSB7XG4gICAgZm9yIChjb25zdCBhbGlhcyBvZiBGT1JNQVRTW2Zvcm1hdF0uZXh0ZW5zaW9ucykge1xuICAgICAgaWYgKG5ldyBSZWdFeHAoYCR7YWxpYXN9YCwgJ2knKS50ZXN0KGxpbmtGb3JtYXQpKVxuICAgICAgICByZXR1cm4gRk9STUFUU1tmb3JtYXRdLmNvbG9yXG4gICAgfVxuICB9XG4gIHJldHVybiAndmFyKC0tY29sb3ItZ3JheS03MDApJyAvLyBEZWZhdWx0IGNvbG9yID9cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldExpbmtMYWJlbChsaW5rOiBEYXRhc2V0T25saW5lUmVzb3VyY2UpOiBzdHJpbmcge1xuICBsZXQgZm9ybWF0ID0gJydcbiAgc3dpdGNoIChsaW5rLnR5cGUpIHtcbiAgICBjYXNlICdzZXJ2aWNlJzpcbiAgICAgIHtcbiAgICAgICAgc3dpdGNoIChsaW5rLmFjY2Vzc1NlcnZpY2VQcm90b2NvbCkge1xuICAgICAgICAgIGNhc2UgJ3dmcyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV0ZTJ1xuICAgICAgICAgICAgYnJlYWtcbiAgICAgICAgICBjYXNlICd3bXMnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1dNUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnd210cyc6XG4gICAgICAgICAgICBmb3JtYXQgPSAnV01UUydcbiAgICAgICAgICAgIGJyZWFrXG4gICAgICAgICAgY2FzZSAnZXNyaVJlc3QnOlxuICAgICAgICAgICAgZm9ybWF0ID0gJ1JFU1QnXG4gICAgICAgICAgICBicmVha1xuICAgICAgICB9XG4gICAgICB9XG4gICAgICBicmVha1xuICAgIGRlZmF1bHQ6XG4gICAgICBmb3JtYXQgPSBnZXRGaWxlRm9ybWF0KGxpbmspXG4gIH1cbiAgY29uc3QgbGFiZWwgPSBsaW5rLmRlc2NyaXB0aW9uIHx8IGxpbmsubmFtZVxuICByZXR1cm4gZm9ybWF0ID8gYCR7bGFiZWx9ICgke2Zvcm1hdH0pYCA6IGxhYmVsXG59XG5cbmV4cG9ydCBhc3luYyBmdW5jdGlvbiBnZXRMYXllcnModXJsOiBzdHJpbmcsIHNlcnZpY2VQcm90b2NvbDogU2VydmljZVByb3RvY29sKSB7XG4gIHN3aXRjaCAoc2VydmljZVByb3RvY29sKSB7XG4gICAgY2FzZSAnb2djRmVhdHVyZXMnOiB7XG4gICAgICBjb25zdCBsYXllcnMgPSBhd2FpdCBuZXcgT2djQXBpRW5kcG9pbnQodXJsKS5hbGxDb2xsZWN0aW9uc1xuICAgICAgcmV0dXJuIGxheWVyc1xuICAgIH1cbiAgICBjYXNlICd3ZnMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdmcyA9IG5ldyBXZnNFbmRwb2ludCh1cmwpXG4gICAgICBhd2FpdCBlbmRwb2ludFdmcy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdmcy5nZXRGZWF0dXJlVHlwZXMoKVxuICAgIH1cbiAgICBjYXNlICd3bXMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtcyA9IG5ldyBXbXNFbmRwb2ludCh1cmwpXG4gICAgICBhd2FpdCBlbmRwb2ludFdtcy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdtc1xuICAgICAgICAuZ2V0TGF5ZXJzKClcbiAgICAgICAgLmZsYXRNYXAod21zTGF5ZXJGbGF0dGVuKVxuICAgICAgICAuZmlsdGVyKChsKSA9PiBsLm5hbWUpXG4gICAgfVxuICAgIGNhc2UgJ3dtdHMnOiB7XG4gICAgICBjb25zdCBlbmRwb2ludFdtdHMgPSBuZXcgV210c0VuZHBvaW50KHVybClcbiAgICAgIGF3YWl0IGVuZHBvaW50V210cy5pc1JlYWR5KClcbiAgICAgIHJldHVybiBlbmRwb2ludFdtdHMuZ2V0TGF5ZXJzKClcbiAgICB9XG4gICAgZGVmYXVsdDpcbiAgICAgIHJldHVybiB1bmRlZmluZWRcbiAgfVxufVxuXG5mdW5jdGlvbiB3bXNMYXllckZsYXR0ZW4obGF5ZXJGdWxsKSB7XG4gIGNvbnN0IGxheWVyID0ge1xuICAgIHRpdGxlOiBsYXllckZ1bGwudGl0bGUsXG4gICAgbmFtZTogbGF5ZXJGdWxsLm5hbWUsXG4gICAgYWJzdHJhY3Q6IGxheWVyRnVsbC5hYnN0cmFjdCxcbiAgfVxuXG4gIHJldHVybiAnY2hpbGRyZW4nIGluIGxheWVyRnVsbCAmJiBBcnJheS5pc0FycmF5KGxheWVyRnVsbC5jaGlsZHJlbilcbiAgICA/IFtsYXllciwgLi4ubGF5ZXJGdWxsLmNoaWxkcmVuLmZsYXRNYXAod21zTGF5ZXJGbGF0dGVuKV1cbiAgICA6IFtsYXllcl1cbn1cblxuZXhwb3J0IGZ1bmN0aW9uIGdldE1pbWVUeXBlRm9yRm9ybWF0KGZvcm1hdDogRmlsZUZvcm1hdCk6IHN0cmluZyB8IG51bGwge1xuICByZXR1cm4gZm9ybWF0IGluIEZPUk1BVFMgPyBGT1JNQVRTW2Zvcm1hdC50b0xvd2VyQ2FzZSgpXS5taW1lVHlwZXNbMF0gOiBudWxsXG59XG4iXX0=
|
|
@@ -238,8 +238,10 @@
|
|
|
238
238
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
239
239
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
240
240
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
241
|
+
"editor.record.form.field.onlineResource.edit.identifier.error": "Schichten konnten nicht vom Protokoll abgerufen werden",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Ebenenname",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Prozessname",
|
|
244
|
+
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Wählen Sie eine Ebene",
|
|
243
245
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link zum Dienst",
|
|
244
246
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
245
247
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
@@ -238,8 +238,10 @@
|
|
|
238
238
|
"editor.record.form.field.onlineResource.dialogTitle": "Modify the dataset preview",
|
|
239
239
|
"editor.record.form.field.onlineResource.edit.description": "Description",
|
|
240
240
|
"editor.record.form.field.onlineResource.edit.protocol": "Protocol",
|
|
241
|
+
"editor.record.form.field.onlineResource.edit.identifier.error": "Unable to retrieve layers from protocol",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Layer name",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Process name",
|
|
244
|
+
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Select a layer",
|
|
243
245
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Link to the service",
|
|
244
246
|
"editor.record.form.field.onlineResource.edit.title": "Title",
|
|
245
247
|
"editor.record.form.field.onlineResource.fileSize": "{sizeMB}MB",
|
|
@@ -238,8 +238,10 @@
|
|
|
238
238
|
"editor.record.form.field.onlineResource.dialogTitle": "",
|
|
239
239
|
"editor.record.form.field.onlineResource.edit.description": "",
|
|
240
240
|
"editor.record.form.field.onlineResource.edit.protocol": "",
|
|
241
|
+
"editor.record.form.field.onlineResource.edit.identifier.error": "No se pueden recuperar las capas del protocolo",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nombre de la capa",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nombre del proceso",
|
|
244
|
+
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Selecciona una capa",
|
|
243
245
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Enlace al servicio",
|
|
244
246
|
"editor.record.form.field.onlineResource.edit.title": "",
|
|
245
247
|
"editor.record.form.field.onlineResource.fileSize": "",
|
|
@@ -238,8 +238,10 @@
|
|
|
238
238
|
"editor.record.form.field.onlineResource.dialogTitle": "Modifier l'aperçu du jeu de données",
|
|
239
239
|
"editor.record.form.field.onlineResource.edit.description": "Description",
|
|
240
240
|
"editor.record.form.field.onlineResource.edit.protocol": "Protocole",
|
|
241
|
+
"editor.record.form.field.onlineResource.edit.identifier.error": "Impossible de récupérer les couches depuis le protocole",
|
|
241
242
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nom de la couche",
|
|
242
243
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nom du processus",
|
|
244
|
+
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Sélectionner une couche",
|
|
243
245
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Lier le service",
|
|
244
246
|
"editor.record.form.field.onlineResource.edit.title": "Titre",
|
|
245
247
|
"editor.record.form.field.onlineResource.fileSize": "{sizeMB} Mo",
|
|
@@ -232,8 +232,10 @@
|
|
|
232
232
|
"editor.record.form.field.keywords": "Parole chiave",
|
|
233
233
|
"editor.record.form.field.legalConstraints": "Vincolo legale",
|
|
234
234
|
"editor.record.form.field.license": "Licenza",
|
|
235
|
+
"editor.record.form.field.onlineResource.edit.identifier.error": "Impossibile recuperare i livelli dal protocollo",
|
|
235
236
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder": "Nome del livello",
|
|
236
237
|
"editor.record.form.field.onlineResource.edit.identifier.placeholder.wps": "Nome del processo",
|
|
238
|
+
"editor.record.form.field.onlineResource.edit.identifier.select.label": "Seleziona un livello",
|
|
237
239
|
"editor.record.form.field.onlineResource.edit.identifier.submit": "Collegare il servizio",
|
|
238
240
|
"editor.record.form.field.title.placeholder": "Inserisci un titolo",
|
|
239
241
|
"editor.record.form.field.onlineLinkResources": "Risorse allegate",
|