@gravitee/ui-policy-studio-angular 7.58.0 → 8.0.0-angular15-be0770c
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/esm2020/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +3 -3
- package/esm2020/lib/components/flow-details/gio-ps-flow-details.component.mjs +12 -12
- package/esm2020/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +6 -6
- package/esm2020/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +10 -10
- package/esm2020/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +6 -6
- package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +14 -14
- package/esm2020/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +21 -21
- package/esm2020/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +21 -21
- package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +9 -9
- package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +19 -19
- package/esm2020/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +7 -7
- package/esm2020/lib/components/step-form/gio-ps-step-form.component.mjs +15 -15
- package/esm2020/lib/gio-policy-studio.component.mjs +8 -8
- package/esm2020/lib/gio-policy-studio.module.mjs +23 -27
- package/esm2020/lib/gio-policy-studio.service.mjs +13 -9
- package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs +123 -119
- package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs +123 -119
- package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.d.ts +1 -1
- package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +1 -1
- package/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.d.ts +1 -1
- package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +2 -2
- package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +1 -1
- package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +4 -4
- package/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.d.ts +4 -4
- package/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.d.ts +5 -5
- package/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.d.ts +1 -1
- package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +1 -1
- package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +7 -7
- package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +3 -3
- package/lib/components/step-form/gio-ps-step-form.component.d.ts +3 -3
- package/lib/gio-policy-studio.component.d.ts +1 -1
- package/lib/gio-policy-studio.service.d.ts +3 -0
- package/lib/models/ConnectorsInfo.d.ts +1 -1
- package/lib/models/PolicySchemaFetcher.d.ts +2 -2
- package/lib/models/SaveOutput.d.ts +1 -1
- package/lib/models/flow/ApiType.d.ts +1 -1
- package/lib/models/flow/FlowExecution.d.ts +1 -1
- package/lib/models/flow/HttpMethod.d.ts +1 -1
- package/lib/models/flow/Selector.d.ts +4 -4
- package/lib/models/policy/Policy.d.ts +1 -1
- package/package.json +11 -11
- package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +3 -3
- package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +1 -1
- package/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.d.ts +1 -1
- package/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.d.ts +1 -1
- package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +1 -1
- package/testing/lib/models/ConnectorsInfo.d.ts +1 -1
- package/testing/lib/models/PolicySchemaFetcher.d.ts +2 -2
- package/testing/lib/models/SaveOutput.d.ts +1 -1
- package/testing/lib/models/flow/ApiType.d.ts +1 -1
- package/testing/lib/models/flow/FlowExecution.d.ts +1 -1
- package/testing/lib/models/flow/HttpMethod.d.ts +1 -1
- package/testing/lib/models/flow/Selector.d.ts +4 -4
- package/testing/lib/models/policy/Policy.d.ts +1 -1
- package/testing/package.json +0 -10
- /package/{gravitee-ui-policy-studio-angular.d.ts → index.d.ts} +0 -0
- /package/testing/{gravitee-ui-policy-studio-angular-testing.d.ts → index.d.ts} +0 -0
|
@@ -15,26 +15,26 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Component, Inject } from '@angular/core';
|
|
17
17
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
|
-
import {
|
|
18
|
+
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
19
19
|
import { cloneDeep } from 'lodash';
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
21
|
import * as i1 from "@angular/material/dialog";
|
|
22
|
-
import * as i2 from "@angular/
|
|
23
|
-
import * as i3 from "@angular/
|
|
24
|
-
import * as i4 from "@
|
|
22
|
+
import * as i2 from "@angular/common";
|
|
23
|
+
import * as i3 from "@angular/forms";
|
|
24
|
+
import * as i4 from "@angular/material/button";
|
|
25
25
|
import * as i5 from "@angular/material/form-field";
|
|
26
26
|
import * as i6 from "@angular/material/select";
|
|
27
27
|
import * as i7 from "@angular/material/core";
|
|
28
28
|
import * as i8 from "@angular/material/slide-toggle";
|
|
29
|
-
import * as i9 from "@angular/
|
|
30
|
-
import * as i10 from "@angular
|
|
29
|
+
import * as i9 from "@angular/material/icon";
|
|
30
|
+
import * as i10 from "@gravitee/ui-particles-angular";
|
|
31
31
|
export class GioPolicyStudioFlowExecutionFormDialogComponent {
|
|
32
32
|
constructor(dialogRef, flowDialogData) {
|
|
33
33
|
this.dialogRef = dialogRef;
|
|
34
34
|
this.existingFlowExecution = cloneDeep(flowDialogData?.flowExecution);
|
|
35
|
-
this.flowExecutionFormGroup = new
|
|
36
|
-
mode: new
|
|
37
|
-
matchRequired: new
|
|
35
|
+
this.flowExecutionFormGroup = new UntypedFormGroup({
|
|
36
|
+
mode: new UntypedFormControl(flowDialogData?.flowExecution?.mode ?? 'DEFAULT'),
|
|
37
|
+
matchRequired: new UntypedFormControl(flowDialogData?.flowExecution?.matchRequired ?? false),
|
|
38
38
|
});
|
|
39
39
|
}
|
|
40
40
|
onSubmit() {
|
|
@@ -48,13 +48,13 @@ export class GioPolicyStudioFlowExecutionFormDialogComponent {
|
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
}
|
|
51
|
-
GioPolicyStudioFlowExecutionFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
52
|
-
GioPolicyStudioFlowExecutionFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
53
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
51
|
+
GioPolicyStudioFlowExecutionFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowExecutionFormDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
52
|
+
GioPolicyStudioFlowExecutionFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioFlowExecutionFormDialogComponent, selector: "gio-ps-flow-execution-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Flow execution\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowExecutionFormGroup\" class=\"content\" [formGroup]=\"flowExecutionFormGroup\">\n <div class=\"content__row\">\n <gio-banner-info>\n By default, flow selection is based on the operators defined in your flows, either when it \u201Cmatches with\u201D or \u201Cstarts with\u201D a path. You\n can choose the \"Best match\" option to select a flow from the closest path.\n </gio-banner-info>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Default flow mode</mat-label>\n <mat-select formControlName=\"mode\">\n <mat-option value=\"BEST_MATCH\">Best Match</mat-option>\n <mat-option value=\"DEFAULT\">Default</mat-option>\n </mat-select>\n <mat-hint>Change how the flow selection is made</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <gio-form-slide-toggle>\n <gio-form-label>Fail on flow mismatch</gio-form-label>\n Respond with an error when requests don\u2019t match any defined flow\n <mat-slide-toggle gioFormSlideToggle formControlName=\"matchRequired\"></mat-slide-toggle>\n </gio-form-slide-toggle>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">Save</button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "component", type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i7.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i8.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matSlideToggle"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.GioFormSlideToggleComponent, selector: "gio-form-slide-toggle", inputs: ["appearance"] }, { kind: "component", type: i10.GioFormLabelComponent, selector: "gio-form-label" }, { kind: "directive", type: i10.GioFormSlideToggleDirective, selector: "[gioFormSlideToggle]" }, { kind: "component", type: i10.GioBannerInfoComponent, selector: "gio-banner-info" }] });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowExecutionFormDialogComponent, decorators: [{
|
|
54
54
|
type: Component,
|
|
55
|
-
args: [{ selector: 'gio-ps-flow-execution-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Flow execution\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowExecutionFormGroup\" class=\"content\" [formGroup]=\"flowExecutionFormGroup\">\n <div class=\"content__row\">\n <gio-banner-info>\n By default, flow selection is based on the operators defined in your flows, either when it \u201Cmatches with\u201D or \u201Cstarts with\u201D a path. You\n can choose the \"Best match\" option to select a flow from the closest path.\n </gio-banner-info>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Default flow mode</mat-label>\n <mat-select formControlName=\"mode\">\n <mat-option value=\"BEST_MATCH\">Best Match</mat-option>\n <mat-option value=\"DEFAULT\">Default</mat-option>\n </mat-select>\n <mat-hint>Change how the flow selection is made</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <gio-form-slide-toggle>\n <gio-form-label>Fail on flow mismatch</gio-form-label>\n Respond with an error when requests don\u2019t match any defined flow\n <mat-slide-toggle gioFormSlideToggle formControlName=\"matchRequired\"></mat-slide-toggle>\n </gio-form-slide-toggle>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">Save</button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top
|
|
55
|
+
args: [{ selector: 'gio-ps-flow-execution-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Flow execution\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowExecutionFormGroup\" class=\"content\" [formGroup]=\"flowExecutionFormGroup\">\n <div class=\"content__row\">\n <gio-banner-info>\n By default, flow selection is based on the operators defined in your flows, either when it \u201Cmatches with\u201D or \u201Cstarts with\u201D a path. You\n can choose the \"Best match\" option to select a flow from the closest path.\n </gio-banner-info>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Default flow mode</mat-label>\n <mat-select formControlName=\"mode\">\n <mat-option value=\"BEST_MATCH\">Best Match</mat-option>\n <mat-option value=\"DEFAULT\">Default</mat-option>\n </mat-select>\n <mat-hint>Change how the flow selection is made</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <gio-form-slide-toggle>\n <gio-form-label>Fail on flow mismatch</gio-form-label>\n Respond with an error when requests don\u2019t match any defined flow\n <mat-slide-toggle gioFormSlideToggle formControlName=\"matchRequired\"></mat-slide-toggle>\n </gio-form-slide-toggle>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">Save</button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"] }]
|
|
56
56
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
57
57
|
type: Inject,
|
|
58
58
|
args: [MAT_DIALOG_DATA]
|
|
59
59
|
}] }]; } });
|
|
60
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
60
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7Ozs7QUFhbkMsTUFBTSxPQUFPLCtDQUErQztJQUsxRCxZQUNTLFNBQW1HLEVBQ2pGLGNBQTBEO1FBRDVFLGNBQVMsR0FBVCxTQUFTLENBQTBGO1FBRzFHLElBQUksQ0FBQyxxQkFBcUIsR0FBRyxTQUFTLENBQUMsY0FBYyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1FBRXRFLElBQUksQ0FBQyxzQkFBc0IsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ2pELElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxhQUFhLEVBQUUsSUFBSSxJQUFJLFNBQVMsQ0FBQztZQUM5RSxhQUFhLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxjQUFjLEVBQUUsYUFBYSxFQUFFLGFBQWEsSUFBSSxLQUFLLENBQUM7U0FDN0YsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLG1CQUFtQixHQUFrQjtZQUN6QyxHQUFHLElBQUksQ0FBQyxxQkFBcUI7WUFDN0IsSUFBSSxFQUFFLElBQUksQ0FBQyxzQkFBc0IsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSztZQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLO1NBQ3hFLENBQUM7UUFFRixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLG1CQUFtQjtTQUN2QixDQUFDLENBQUM7SUFDTCxDQUFDOzs2SUEzQlUsK0NBQStDLDhDQU9oRCxlQUFlO2lJQVBkLCtDQUErQyx5RUMvQjVELDQxRUF3REE7NEZEekJhLCtDQUErQztrQkFMM0QsU0FBUzsrQkFDRSxtQ0FBbUM7OzBCQVcxQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEZsb3dFeGVjdXRpb24gfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEgPSB7XG4gIGZsb3dFeGVjdXRpb24/OiBGbG93RXhlY3V0aW9uO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uRm9ybUdyb3VwPzogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZXhpc3RpbmdGbG93RXhlY3V0aW9uPzogRmxvd0V4ZWN1dGlvbjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsIEZsb3dFeGVjdXRpb24gfCB1bmRlZmluZWQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmV4aXN0aW5nRmxvd0V4ZWN1dGlvbiA9IGNsb25lRGVlcChmbG93RGlhbG9nRGF0YT8uZmxvd0V4ZWN1dGlvbik7XG5cbiAgICB0aGlzLmZsb3dFeGVjdXRpb25Gb3JtR3JvdXAgPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBtb2RlOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZsb3dEaWFsb2dEYXRhPy5mbG93RXhlY3V0aW9uPy5tb2RlID8/ICdERUZBVUxUJyksXG4gICAgICBtYXRjaFJlcXVpcmVkOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGZsb3dEaWFsb2dEYXRhPy5mbG93RXhlY3V0aW9uPy5tYXRjaFJlcXVpcmVkID8/IGZhbHNlKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93RXhlY3V0aW9uVG9TYXZlOiBGbG93RXhlY3V0aW9uID0ge1xuICAgICAgLi4udGhpcy5leGlzdGluZ0Zsb3dFeGVjdXRpb24sXG4gICAgICBtb2RlOiB0aGlzLmZsb3dFeGVjdXRpb25Gb3JtR3JvdXA/LmdldCgnbW9kZScpPy52YWx1ZSxcbiAgICAgIG1hdGNoUmVxdWlyZWQ6IHRoaXMuZmxvd0V4ZWN1dGlvbkZvcm1Hcm91cD8uZ2V0KCdtYXRjaFJlcXVpcmVkJyk/LnZhbHVlLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi5mbG93RXhlY3V0aW9uVG9TYXZlLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgRmxvdyBleGVjdXRpb25cblxuICA8YnV0dG9uIGNsYXNzPVwidGl0bGVfX2Nsb3NlQnRuXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJmbG93RXhlY3V0aW9uRm9ybUdyb3VwXCIgY2xhc3M9XCJjb250ZW50XCIgW2Zvcm1Hcm91cF09XCJmbG93RXhlY3V0aW9uRm9ybUdyb3VwXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8Z2lvLWJhbm5lci1pbmZvPlxuICAgICAgQnkgZGVmYXVsdCwgZmxvdyBzZWxlY3Rpb24gaXMgYmFzZWQgb24gdGhlIG9wZXJhdG9ycyBkZWZpbmVkIGluIHlvdXIgZmxvd3MsIGVpdGhlciB3aGVuIGl0IOKAnG1hdGNoZXMgd2l0aOKAnSBvciDigJxzdGFydHMgd2l0aOKAnSBhIHBhdGguIFlvdVxuICAgICAgY2FuIGNob29zZSB0aGUgXCJCZXN0IG1hdGNoXCIgb3B0aW9uIHRvIHNlbGVjdCBhIGZsb3cgZnJvbSB0aGUgY2xvc2VzdCBwYXRoLlxuICAgIDwvZ2lvLWJhbm5lci1pbmZvPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RGVmYXVsdCBmbG93IG1vZGU8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cIm1vZGVcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJCRVNUX01BVENIXCI+QmVzdCBNYXRjaDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJERUZBVUxUXCI+RGVmYXVsdDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDxtYXQtaGludD5DaGFuZ2UgaG93IHRoZSBmbG93IHNlbGVjdGlvbiBpcyBtYWRlPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPGdpby1mb3JtLXNsaWRlLXRvZ2dsZT5cbiAgICAgIDxnaW8tZm9ybS1sYWJlbD5GYWlsIG9uIGZsb3cgbWlzbWF0Y2g8L2dpby1mb3JtLWxhYmVsPlxuICAgICAgUmVzcG9uZCB3aXRoIGFuIGVycm9yIHdoZW4gcmVxdWVzdHMgZG9u4oCZdCBtYXRjaCBhbnkgZGVmaW5lZCBmbG93XG4gICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBnaW9Gb3JtU2xpZGVUb2dnbGUgZm9ybUNvbnRyb2xOYW1lPVwibWF0Y2hSZXF1aXJlZFwiPjwvbWF0LXNsaWRlLXRvZ2dsZT5cbiAgICA8L2dpby1mb3JtLXNsaWRlLXRvZ2dsZT5cbiAgPC9kaXY+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX3NhdmVCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+U2F2ZTwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
|
|
@@ -15,18 +15,18 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Component, Inject } from '@angular/core';
|
|
17
17
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
|
-
import {
|
|
18
|
+
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
19
19
|
import { cloneDeep, uniqueId } from 'lodash';
|
|
20
20
|
import * as i0 from "@angular/core";
|
|
21
21
|
import * as i1 from "@angular/material/dialog";
|
|
22
|
-
import * as i2 from "@angular/
|
|
23
|
-
import * as i3 from "@angular/
|
|
24
|
-
import * as i4 from "@angular/material/
|
|
25
|
-
import * as i5 from "@angular/material/
|
|
26
|
-
import * as i6 from "@angular/material/
|
|
27
|
-
import * as i7 from "@angular/
|
|
28
|
-
import * as i8 from "@angular/
|
|
29
|
-
import * as i9 from "@angular/material/
|
|
22
|
+
import * as i2 from "@angular/common";
|
|
23
|
+
import * as i3 from "@angular/forms";
|
|
24
|
+
import * as i4 from "@angular/material/button";
|
|
25
|
+
import * as i5 from "@angular/material/form-field";
|
|
26
|
+
import * as i6 from "@angular/material/input";
|
|
27
|
+
import * as i7 from "@angular/material/select";
|
|
28
|
+
import * as i8 from "@angular/material/core";
|
|
29
|
+
import * as i9 from "@angular/material/icon";
|
|
30
30
|
export class GioPolicyStudioFlowMessageFormDialogComponent {
|
|
31
31
|
constructor(dialogRef, flowDialogData) {
|
|
32
32
|
this.dialogRef = dialogRef;
|
|
@@ -37,13 +37,13 @@ export class GioPolicyStudioFlowMessageFormDialogComponent {
|
|
|
37
37
|
this.mode = this.existingFlow ? 'edit' : 'create';
|
|
38
38
|
const channelSelector = flowDialogData?.flow?.selectors?.find(s => s.type === 'CHANNEL');
|
|
39
39
|
const conditionSelector = flowDialogData?.flow?.selectors?.find(s => s.type === 'CONDITION');
|
|
40
|
-
this.flowFormGroup = new
|
|
41
|
-
name: new
|
|
42
|
-
channelOperator: new
|
|
43
|
-
channel: new
|
|
44
|
-
operations: new
|
|
45
|
-
entrypoints: new
|
|
46
|
-
condition: new
|
|
40
|
+
this.flowFormGroup = new UntypedFormGroup({
|
|
41
|
+
name: new UntypedFormControl(flowDialogData?.flow?.name ?? ''),
|
|
42
|
+
channelOperator: new UntypedFormControl(channelSelector?.channelOperator ?? 'EQUALS'),
|
|
43
|
+
channel: new UntypedFormControl(channelSelector?.channel ?? ''),
|
|
44
|
+
operations: new UntypedFormControl(channelSelector?.operations ?? []),
|
|
45
|
+
entrypoints: new UntypedFormControl(channelSelector?.entrypoints ?? []),
|
|
46
|
+
condition: new UntypedFormControl(conditionSelector?.condition ?? ''),
|
|
47
47
|
});
|
|
48
48
|
}
|
|
49
49
|
onSubmit() {
|
|
@@ -78,13 +78,13 @@ export class GioPolicyStudioFlowMessageFormDialogComponent {
|
|
|
78
78
|
});
|
|
79
79
|
}
|
|
80
80
|
}
|
|
81
|
-
GioPolicyStudioFlowMessageFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
82
|
-
GioPolicyStudioFlowMessageFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
83
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
81
|
+
GioPolicyStudioFlowMessageFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowMessageFormDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
82
|
+
GioPolicyStudioFlowMessageFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioFlowMessageFormDialogComponent, selector: "gio-ps-flow-message-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow'\n }}<button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>Flows allow you to apply different policies per event phases. For example you can reroute calls based on the URL specified.</p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with channel and operation if left blank.</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"channelOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Channel operator.</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Channel</mat-label>\n <input matInput formControlName=\"channel\" />\n <mat-hint>Publish or Subscribe channel. This is the path of your request.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Entrypoints</mat-label>\n <mat-select multiple formControlName=\"entrypoints\">\n <mat-option *ngFor=\"let entrypoint of entrypoints\" [value]=\"entrypoint.type\">{{ entrypoint.name }}</mat-option>\n </mat-select>\n <mat-hint>Entrypoints where your flow will be executed. They will all be executed if left empty.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Entrypoints supported operations</mat-label>\n <mat-select multiple formControlName=\"operations\">\n <mat-option value=\"PUBLISH\">Publish</mat-option>\n <mat-option value=\"SUBSCRIBE\">Subscribe</mat-option>\n </mat-select>\n <mat-hint>They will all be supported if left empty.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language.</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
|
|
83
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowMessageFormDialogComponent, decorators: [{
|
|
84
84
|
type: Component,
|
|
85
|
-
args: [{ selector: 'gio-ps-flow-message-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow'
|
|
85
|
+
args: [{ selector: 'gio-ps-flow-message-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow'\n }}<button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>Flows allow you to apply different policies per event phases. For example you can reroute calls based on the URL specified.</p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with channel and operation if left blank.</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"channelOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Channel operator.</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Channel</mat-label>\n <input matInput formControlName=\"channel\" />\n <mat-hint>Publish or Subscribe channel. This is the path of your request.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Entrypoints</mat-label>\n <mat-select multiple formControlName=\"entrypoints\">\n <mat-option *ngFor=\"let entrypoint of entrypoints\" [value]=\"entrypoint.type\">{{ entrypoint.name }}</mat-option>\n </mat-select>\n <mat-hint>Entrypoints where your flow will be executed. They will all be executed if left empty.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Entrypoints supported operations</mat-label>\n <mat-select multiple formControlName=\"operations\">\n <mat-option value=\"PUBLISH\">Publish</mat-option>\n <mat-option value=\"SUBSCRIBE\">Subscribe</mat-option>\n </mat-select>\n <mat-hint>They will all be supported if left empty.</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language.</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"] }]
|
|
86
86
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
87
87
|
type: Inject,
|
|
88
88
|
args: [MAT_DIALOG_DATA]
|
|
89
89
|
}] }]; } });
|
|
90
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7OztBQWdCN0MsTUFBTSxPQUFPLDZDQUE2QztJQU94RCxZQUNTLFNBQTJHLEVBQ3pGLGNBQXdEO1FBRDFFLGNBQVMsR0FBVCxTQUFTLENBQWtHO1FBUDdHLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUlsQyxTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQU14QyxJQUFJLENBQUMsV0FBVyxHQUFHLGNBQWMsRUFBRSxXQUFXLElBQUksRUFBRSxDQUFDO1FBRXJELElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxD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NEZEdERhLDZDQUE2QztrQkFMekQsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQWF4QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vLi4vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQ2hhbm5lbFNlbGVjdG9yLCBDb25kaXRpb25TZWxlY3RvciwgQ29ubmVjdG9ySW5mbyB9IGZyb20gJy4uLy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2dpby1wcy1mbG93LWZvcm0tZGlhbG9nLXJlc3VsdC5tb2RlbCc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEgPSB7XG4gIGZsb3c/OiBGbG93Vk07XG4gIGVudHJ5cG9pbnRzPzogQ29ubmVjdG9ySW5mb1tdO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQge1xuICBwdWJsaWMgZW50cnlwb2ludHM6IENvbm5lY3RvckluZm9bXSA9IFtdO1xuICBwdWJsaWMgZmxvd0Zvcm1Hcm91cD86IEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZXhpc3RpbmdGbG93PzogRmxvd1ZNO1xuICBwdWJsaWMgbW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgPSAnY3JlYXRlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmVudHJ5cG9pbnRzID0gZmxvd0RpYWxvZ0RhdGE/LmVudHJ5cG9pbnRzID8/IFtdO1xuXG4gICAgdGhpcy5leGlzdGluZ0Zsb3cgPSBjbG9uZURlZXAoZmxvd0RpYWxvZ0RhdGE/LmZsb3cpO1xuICAgIHRoaXMubW9kZSA9IHRoaXMuZXhpc3RpbmdGbG93ID8gJ2VkaXQnIDogJ2NyZWF0ZSc7XG5cbiAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93RGlhbG9nRGF0YT8uZmxvdz8uc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ0hBTk5FTCcpIGFzIENoYW5uZWxTZWxlY3RvcjtcbiAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvciA9IGZsb3dEaWFsb2dEYXRhPy5mbG93Py5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcblxuICAgIHRoaXMuZmxvd0Zvcm1Hcm91cCA9IG5ldyBGb3JtR3JvdXAoe1xuICAgICAgbmFtZTogbmV3IEZvcm1Db250cm9sKGZsb3dEaWFsb2dEYXRhPy5mbG93Py5uYW1lID8/ICcnKSxcbiAgICAgIGNoYW5uZWxPcGVyYXRvcjogbmV3IEZvcm1Db250cm9sKGNoYW5uZWxTZWxlY3Rvcj8uY2hhbm5lbE9wZXJhdG9yID8/ICdFUVVBTFMnKSxcbiAgICAgIGNoYW5uZWw6IG5ldyBGb3JtQ29udHJvbChjaGFubmVsU2VsZWN0b3I/LmNoYW5uZWwgPz8gJycpLFxuICAgICAgb3BlcmF0aW9uczogbmV3IEZvcm1Db250cm9sKGNoYW5uZWxTZWxlY3Rvcj8ub3BlcmF0aW9ucyA/PyBbXSksXG4gICAgICBlbnRyeXBvaW50czogbmV3IEZvcm1Db250cm9sKGNoYW5uZWxTZWxlY3Rvcj8uZW50cnlwb2ludHMgPz8gW10pLFxuICAgICAgY29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2woY29uZGl0aW9uU2VsZWN0b3I/LmNvbmRpdGlvbiA/PyAnJyksXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdWJtaXQoKTogdm9pZCB7XG4gICAgY29uc3QgY2hhbm5lbFNlbGVjdG9yVG9TYXZlOiBDaGFubmVsU2VsZWN0b3IgPSB7XG4gICAgICB0eXBlOiAnQ0hBTk5FTCcsXG4gICAgICBjaGFubmVsOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnY2hhbm5lbCcpPy52YWx1ZSxcbiAgICAgIGNoYW5uZWxPcGVyYXRvcjogdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ2NoYW5uZWxPcGVyYXRvcicpPy52YWx1ZSxcbiAgICAgIG9wZXJhdGlvbnM6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdvcGVyYXRpb25zJyk/LnZhbHVlLFxuICAgICAgZW50cnlwb2ludHM6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdlbnRyeXBvaW50cycpPy52YWx1ZSxcbiAgICB9O1xuXG4gICAgY29uc3QgY29uZGl0aW9uVmFsdWU6IHN0cmluZyA9IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdjb25kaXRpb24nKT8udmFsdWU7XG4gICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3JUb1NhdmU6IENvbmRpdGlvblNlbGVjdG9yIHwgdW5kZWZpbmVkID0gY29uZGl0aW9uVmFsdWVcbiAgICAgID8ge1xuICAgICAgICAgIHR5cGU6ICdDT05ESVRJT04nLFxuICAgICAgICAgIGNvbmRpdGlvbjogY29uZGl0aW9uVmFsdWUsXG4gICAgICAgIH1cbiAgICAgIDogdW5kZWZpbmVkO1xuXG4gICAgY29uc3QgZmxvd1RvU2F2ZTogRmxvd1ZNID0ge1xuICAgICAgLy8gTmV3IGlkIGZvciBuZXcgZmxvd1xuICAgICAgX2lkOiB1bmlxdWVJZCgnZmxvd18nKSxcbiAgICAgIC8vIElmIGV4aXN0aW5nIGZsb3csIGtlZXAgcm9vdCBwcm9wc1xuICAgICAgLi4udGhpcy5leGlzdGluZ0Zsb3csXG4gICAgICAvLyBNYXJrIGFzIGNoYW5nZWRcbiAgICAgIF9oYXNDaGFuZ2VkOiB0cnVlLFxuICAgICAgLy8gQWRkIGNoYW5nZXNcbiAgICAgIG5hbWU6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCduYW1lJyk/LnZhbHVlLFxuICAgICAgc2VsZWN0b3JzOiBjb25kaXRpb25TZWxlY3RvclRvU2F2ZSA/IFtjaGFubmVsU2VsZWN0b3JUb1NhdmUsIGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlXSA6IFtjaGFubmVsU2VsZWN0b3JUb1NhdmVdLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICB9O1xuXG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4uZmxvd1RvU2F2ZSxcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRpdGxlXCI+XG4gIHt7IG1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZSBhIG5ldyBmbG93JyA6ICdFZGl0IGZsb3cnIH19XG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiZmFsc2VcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJmbG93Rm9ybUdyb3VwXCIgY2xhc3M9XCJjb250ZW50XCIgW2Zvcm1Hcm91cF09XCJmbG93Rm9ybUdyb3VwXCI+XG4gIDxwPkZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgcGVyIGV2ZW50IHBoYXNlcy4gRm9yIGV4YW1wbGUgeW91IGNhbiByZXJvdXRlIGNhbGxzIGJhc2VkIG9uIHRoZSBVUkwgc3BlY2lmaWVkLjwvcD5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5GbG93IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgY2RrRm9jdXNJbml0aWFsIC8+XG4gICAgICA8bWF0LWhpbnQ+TmFtZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB3aXRoIGNoYW5uZWwgYW5kIG9wZXJhdGlvbiBpZiBsZWZ0IGJsYW5rLjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPk9wZXJhdG9yPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjaGFubmVsT3BlcmF0b3JcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJFUVVBTFNcIj5FcXVhbHM8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU1RBUlRTX1dJVEhcIj5TdGFydHMgd2l0aDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDxtYXQtaGludD5DaGFubmVsIG9wZXJhdG9yLjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+Q2hhbm5lbDwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNoYW5uZWxcIiAvPlxuICAgICAgPG1hdC1oaW50PlB1Ymxpc2ggb3IgU3Vic2NyaWJlIGNoYW5uZWwuIFRoaXMgaXMgdGhlIHBhdGggb2YgeW91ciByZXF1ZXN0LjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RW50cnlwb2ludHM8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IG11bHRpcGxlIGZvcm1Db250cm9sTmFtZT1cImVudHJ5cG9pbnRzXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBlbnRyeXBvaW50IG9mIGVudHJ5cG9pbnRzXCIgW3ZhbHVlXT1cImVudHJ5cG9pbnQudHlwZVwiPnt7IGVudHJ5cG9pbnQubmFtZSB9fTwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDxtYXQtaGludD5FbnRyeXBvaW50cyB3aGVyZSB5b3VyIGZsb3cgd2lsbCBiZSBleGVjdXRlZC4gVGhleSB3aWxsIGFsbCBiZSBleGVjdXRlZCBpZiBsZWZ0IGVtcHR5LjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RW50cnlwb2ludHMgc3VwcG9ydGVkIG9wZXJhdGlvbnM8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IG11bHRpcGxlIGZvcm1Db250cm9sTmFtZT1cIm9wZXJhdGlvbnNcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJQVUJMSVNIXCI+UHVibGlzaDwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTVUJTQ1JJQkVcIj5TdWJzY3JpYmU8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWhpbnQ+VGhleSB3aWxsIGFsbCBiZSBzdXBwb3J0ZWQgaWYgbGVmdCBlbXB0eS48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkNvbmRpdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiIC8+XG4gICAgICA8bWF0LWhpbnQ+Q29uZGl0aW9uIHRvIGV4ZWN1dGUgdGhlIGZsb3csIHN1cHBvcnRzIEV4cHJlc3Npb24gTGFuZ3VhZ2UuPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19jYW5jZWxCdG5cIiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+Q2FuY2VsPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19zYXZlQnRuXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgIHt7IG1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZScgOiAnU2F2ZScgfX1cbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
90
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbEQsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxNQUFNLFFBQVEsQ0FBQzs7Ozs7Ozs7Ozs7QUFnQjdDLE1BQU0sT0FBTyw2Q0FBNkM7SUFPeEQsWUFDUyxTQUEyRyxFQUN6RixjQUF3RDtRQUQxRSxjQUFTLEdBQVQsU0FBUyxDQUFrRztRQVA3RyxnQkFBVyxHQUFvQixFQUFFLENBQUM7UUFJbEMsU0FBSSxHQUFzQixRQUFRLENBQUM7UUFNeEMsSUFBSSxDQUFDLFdBQVcsR0FBRyxjQUFjLEVBQUUsV0FBVyxJQUFJLEVBQUUsQ0FBQztRQUVyRCxJQUFJLENBQUMsWUFBWSxHQUFHLFNB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Qyx1RUNsQzFELHloSEF1RkE7NEZEckRhLDZDQUE2QztrQkFMekQsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQWF4QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNsb25lRGVlcCwgdW5pcXVlSWQgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBGbG93Vk0gfSBmcm9tICcuLi8uLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBDaGFubmVsU2VsZWN0b3IsIENvbmRpdGlvblNlbGVjdG9yLCBDb25uZWN0b3JJbmZvIH0gZnJvbSAnLi4vLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSA9IHtcbiAgZmxvdz86IEZsb3dWTTtcbiAgZW50cnlwb2ludHM/OiBDb25uZWN0b3JJbmZvW107XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBlbnRyeXBvaW50czogQ29ubmVjdG9ySW5mb1tdID0gW107XG4gIHB1YmxpYyBmbG93Rm9ybUdyb3VwPzogVW50eXBlZEZvcm1Hcm91cDtcblxuICBwdWJsaWMgZXhpc3RpbmdGbG93PzogRmxvd1ZNO1xuICBwdWJsaWMgbW9kZTogJ2NyZWF0ZScgfCAnZWRpdCcgPSAnY3JlYXRlJztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmVudHJ5cG9pbnRzID0gZmxvd0RpYWxvZ0RhdGE/LmVudHJ5cG9pbnRzID8/IFtdO1xuXG4gICAgdGhpcy5leGlzdGluZ0Zsb3cgPSBjbG9uZURlZXAoZmxvd0RpYWxvZ0RhdGE/LmZsb3cpO1xuICAgIHRoaXMubW9kZSA9IHRoaXMuZXhpc3RpbmdGbG93ID8gJ2VkaXQnIDogJ2NyZWF0ZSc7XG5cbiAgICBjb25zdCBjaGFubmVsU2VsZWN0b3IgPSBmbG93RGlhbG9nRGF0YT8uZmxvdz8uc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ0hBTk5FTCcpIGFzIENoYW5uZWxTZWxlY3RvcjtcbiAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvciA9IGZsb3dEaWFsb2dEYXRhPy5mbG93Py5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcblxuICAgIHRoaXMuZmxvd0Zvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZmxvd0RpYWxvZ0RhdGE/LmZsb3c/Lm5hbWUgPz8gJycpLFxuICAgICAgY2hhbm5lbE9wZXJhdG9yOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNoYW5uZWxTZWxlY3Rvcj8uY2hhbm5lbE9wZXJhdG9yID8/ICdFUVVBTFMnKSxcbiAgICAgIGNoYW5uZWw6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woY2hhbm5lbFNlbGVjdG9yPy5jaGFubmVsID8/ICcnKSxcbiAgICAgIG9wZXJhdGlvbnM6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woY2hhbm5lbFNlbGVjdG9yPy5vcGVyYXRpb25zID8/IFtdKSxcbiAgICAgIGVudHJ5cG9pbnRzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNoYW5uZWxTZWxlY3Rvcj8uZW50cnlwb2ludHMgPz8gW10pLFxuICAgICAgY29uZGl0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGNvbmRpdGlvblNlbGVjdG9yPy5jb25kaXRpb24gPz8gJycpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIGNvbnN0IGNoYW5uZWxTZWxlY3RvclRvU2F2ZTogQ2hhbm5lbFNlbGVjdG9yID0ge1xuICAgICAgdHlwZTogJ0NIQU5ORUwnLFxuICAgICAgY2hhbm5lbDogdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ2NoYW5uZWwnKT8udmFsdWUsXG4gICAgICBjaGFubmVsT3BlcmF0b3I6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdjaGFubmVsT3BlcmF0b3InKT8udmFsdWUsXG4gICAgICBvcGVyYXRpb25zOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnb3BlcmF0aW9ucycpPy52YWx1ZSxcbiAgICAgIGVudHJ5cG9pbnRzOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnZW50cnlwb2ludHMnKT8udmFsdWUsXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlOiBzdHJpbmcgPSB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnY29uZGl0aW9uJyk/LnZhbHVlO1xuICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlOiBDb25kaXRpb25TZWxlY3RvciB8IHVuZGVmaW5lZCA9IGNvbmRpdGlvblZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICB0eXBlOiAnQ09ORElUSU9OJyxcbiAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvblZhbHVlLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZsb3dUb1NhdmU6IEZsb3dWTSA9IHtcbiAgICAgIC8vIE5ldyBpZCBmb3IgbmV3IGZsb3dcbiAgICAgIF9pZDogdW5pcXVlSWQoJ2Zsb3dfJyksXG4gICAgICAvLyBJZiBleGlzdGluZyBmbG93LCBrZWVwIHJvb3QgcHJvcHNcbiAgICAgIC4uLnRoaXMuZXhpc3RpbmdGbG93LFxuICAgICAgLy8gTWFyayBhcyBjaGFuZ2VkXG4gICAgICBfaGFzQ2hhbmdlZDogdHJ1ZSxcbiAgICAgIC8vIEFkZCBjaGFuZ2VzXG4gICAgICBuYW1lOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnbmFtZScpPy52YWx1ZSxcbiAgICAgIHNlbGVjdG9yczogY29uZGl0aW9uU2VsZWN0b3JUb1NhdmUgPyBbY2hhbm5lbFNlbGVjdG9yVG9TYXZlLCBjb25kaXRpb25TZWxlY3RvclRvU2F2ZV0gOiBbY2hhbm5lbFNlbGVjdG9yVG9TYXZlXSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIC4uLmZsb3dUb1NhdmUsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICB7eyBtb2RlID09PSAnY3JlYXRlJyA/ICdDcmVhdGUgYSBuZXcgZmxvdycgOiAnRWRpdCBmbG93J1xuICB9fTxidXR0b24gY2xhc3M9XCJ0aXRsZV9fY2xvc2VCdG5cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiZmxvd0Zvcm1Hcm91cFwiIGNsYXNzPVwiY29udGVudFwiIFtmb3JtR3JvdXBdPVwiZmxvd0Zvcm1Hcm91cFwiPlxuICA8cD5GbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIHBlciBldmVudCBwaGFzZXMuIEZvciBleGFtcGxlIHlvdSBjYW4gcmVyb3V0ZSBjYWxscyBiYXNlZCBvbiB0aGUgVVJMIHNwZWNpZmllZC48L3A+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RmxvdyBuYW1lPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIGNka0ZvY3VzSW5pdGlhbCAvPlxuICAgICAgPG1hdC1oaW50Pk5hbWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2l0aCBjaGFubmVsIGFuZCBvcGVyYXRpb24gaWYgbGVmdCBibGFuay48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5PcGVyYXRvcjwvbWF0LWxhYmVsPlxuICAgICAgPG1hdC1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY2hhbm5lbE9wZXJhdG9yXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiRVFVQUxTXCI+RXF1YWxzPC9tYXQtb3B0aW9uPlxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIlNUQVJUU19XSVRIXCI+U3RhcnRzIHdpdGg8L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWhpbnQ+Q2hhbm5lbCBvcGVyYXRvci48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkNoYW5uZWw8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjaGFubmVsXCIgLz5cbiAgICAgIDxtYXQtaGludD5QdWJsaXNoIG9yIFN1YnNjcmliZSBjaGFubmVsLiBUaGlzIGlzIHRoZSBwYXRoIG9mIHlvdXIgcmVxdWVzdC48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkVudHJ5cG9pbnRzPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBtdWx0aXBsZSBmb3JtQ29udHJvbE5hbWU9XCJlbnRyeXBvaW50c1wiPlxuICAgICAgICA8bWF0LW9wdGlvbiAqbmdGb3I9XCJsZXQgZW50cnlwb2ludCBvZiBlbnRyeXBvaW50c1wiIFt2YWx1ZV09XCJlbnRyeXBvaW50LnR5cGVcIj57eyBlbnRyeXBvaW50Lm5hbWUgfX08L21hdC1vcHRpb24+XG4gICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICA8bWF0LWhpbnQ+RW50cnlwb2ludHMgd2hlcmUgeW91ciBmbG93IHdpbGwgYmUgZXhlY3V0ZWQuIFRoZXkgd2lsbCBhbGwgYmUgZXhlY3V0ZWQgaWYgbGVmdCBlbXB0eS48L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkVudHJ5cG9pbnRzIHN1cHBvcnRlZCBvcGVyYXRpb25zPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBtdWx0aXBsZSBmb3JtQ29udHJvbE5hbWU9XCJvcGVyYXRpb25zXCI+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiUFVCTElTSFwiPlB1Ymxpc2g8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU1VCU0NSSUJFXCI+U3Vic2NyaWJlPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPG1hdC1oaW50PlRoZXkgd2lsbCBhbGwgYmUgc3VwcG9ydGVkIGlmIGxlZnQgZW1wdHkuPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5Db25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIiAvPlxuICAgICAgPG1hdC1oaW50PkNvbmRpdGlvbiB0byBleGVjdXRlIHRoZSBmbG93LCBzdXBwb3J0cyBFeHByZXNzaW9uIExhbmd1YWdlLjwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJmYWxzZVwiPkNhbmNlbDwvYnV0dG9uPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fc2F2ZUJ0blwiIGNvbG9yPVwicHJpbWFyeVwiIG1hdC1mbGF0LWJ1dHRvbiByb2xlPVwiZGlhbG9nXCIgKGNsaWNrKT1cIm9uU3VibWl0KClcIj5cbiAgICB7eyBtb2RlID09PSAnY3JlYXRlJyA/ICdDcmVhdGUnIDogJ1NhdmUnIH19XG4gIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
|
|
@@ -15,20 +15,20 @@
|
|
|
15
15
|
*/
|
|
16
16
|
import { Component, Inject } from '@angular/core';
|
|
17
17
|
import { MAT_DIALOG_DATA } from '@angular/material/dialog';
|
|
18
|
-
import {
|
|
18
|
+
import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
|
|
19
19
|
import { cloneDeep, uniqueId } from 'lodash';
|
|
20
20
|
import { HttpMethods } from '../../../models';
|
|
21
21
|
import * as i0 from "@angular/core";
|
|
22
22
|
import * as i1 from "@angular/material/dialog";
|
|
23
|
-
import * as i2 from "@angular/
|
|
24
|
-
import * as i3 from "@angular/
|
|
25
|
-
import * as i4 from "@angular/material/
|
|
26
|
-
import * as i5 from "@angular/material/
|
|
27
|
-
import * as i6 from "@angular/material/
|
|
28
|
-
import * as i7 from "@
|
|
29
|
-
import * as i8 from "@angular/
|
|
30
|
-
import * as i9 from "@angular/
|
|
31
|
-
import * as i10 from "@angular
|
|
23
|
+
import * as i2 from "@angular/common";
|
|
24
|
+
import * as i3 from "@angular/forms";
|
|
25
|
+
import * as i4 from "@angular/material/button";
|
|
26
|
+
import * as i5 from "@angular/material/form-field";
|
|
27
|
+
import * as i6 from "@angular/material/input";
|
|
28
|
+
import * as i7 from "@angular/material/select";
|
|
29
|
+
import * as i8 from "@angular/material/core";
|
|
30
|
+
import * as i9 from "@angular/material/icon";
|
|
31
|
+
import * as i10 from "@gravitee/ui-particles-angular";
|
|
32
32
|
const METHODS_AUTOCOMPLETE = ['ALL', ...HttpMethods];
|
|
33
33
|
export class GioPolicyStudioFlowProxyFormDialogComponent {
|
|
34
34
|
constructor(dialogRef, flowDialogData) {
|
|
@@ -39,12 +39,12 @@ export class GioPolicyStudioFlowProxyFormDialogComponent {
|
|
|
39
39
|
this.mode = this.existingFlow ? 'edit' : 'create';
|
|
40
40
|
const httpSelector = flowDialogData?.flow?.selectors?.find(s => s.type === 'HTTP');
|
|
41
41
|
const conditionSelector = flowDialogData?.flow?.selectors?.find(s => s.type === 'CONDITION');
|
|
42
|
-
this.flowFormGroup = new
|
|
43
|
-
name: new
|
|
44
|
-
pathOperator: new
|
|
45
|
-
path: new
|
|
46
|
-
methods: new
|
|
47
|
-
condition: new
|
|
42
|
+
this.flowFormGroup = new UntypedFormGroup({
|
|
43
|
+
name: new UntypedFormControl(flowDialogData?.flow?.name ?? ''),
|
|
44
|
+
pathOperator: new UntypedFormControl(httpSelector?.pathOperator ?? 'EQUALS'),
|
|
45
|
+
path: new UntypedFormControl(sanitizePathFormValue(httpSelector?.path)),
|
|
46
|
+
methods: new UntypedFormControl(sanitizeMethodFormValue(httpSelector?.methods)),
|
|
47
|
+
condition: new UntypedFormControl(conditionSelector?.condition ?? ''),
|
|
48
48
|
});
|
|
49
49
|
}
|
|
50
50
|
onSubmit() {
|
|
@@ -81,11 +81,11 @@ export class GioPolicyStudioFlowProxyFormDialogComponent {
|
|
|
81
81
|
validationCb(METHODS_AUTOCOMPLETE.map(m => `${m}`).includes(tag.toUpperCase()));
|
|
82
82
|
}
|
|
83
83
|
}
|
|
84
|
-
GioPolicyStudioFlowProxyFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "
|
|
85
|
-
GioPolicyStudioFlowProxyFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
|
|
86
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "
|
|
84
|
+
GioPolicyStudioFlowProxyFormDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowProxyFormDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
|
|
85
|
+
GioPolicyStudioFlowProxyFormDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioFlowProxyFormDialogComponent, selector: "gio-ps-flow-proxy-form-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <span matTextPrefix>/</span>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "component", type: i5.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i5.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: i5.MatPrefix, selector: "[matPrefix], [matIconPrefix], [matTextPrefix]", inputs: ["matTextPrefix"] }, { kind: "directive", type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator"], exportAs: ["matSelect"] }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.GioFormTagsInputComponent, selector: "gio-form-tags-input", inputs: ["aria-label", "addOnBlur", "tagValidationHook", "autocompleteOptions", "displayValueWith", "useAutocompleteOptionValueOnly", "placeholder", "required", "disabled"] }] });
|
|
86
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowProxyFormDialogComponent, decorators: [{
|
|
87
87
|
type: Component,
|
|
88
|
-
args: [{ selector: 'gio-ps-flow-proxy-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <span
|
|
88
|
+
args: [{ selector: 'gio-ps-flow-proxy-form-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n {{ mode === 'create' ? 'Create a new flow' : 'Edit flow' }}\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"false\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<mat-dialog-content *ngIf=\"flowFormGroup\" class=\"content\" [formGroup]=\"flowFormGroup\">\n <p>\n Flows allow you to apply different policies per HTTP path and/or method. For example you can reroute calls based on the URL specified.\n </p>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Flow name</mat-label>\n <input matInput formControlName=\"name\" cdkFocusInitial />\n <mat-hint>Names will be automatically generated with path and method if left blank</mat-hint>\n </mat-form-field>\n </div>\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Operator</mat-label>\n <mat-select formControlName=\"pathOperator\">\n <mat-option value=\"EQUALS\">Equals</mat-option>\n <mat-option value=\"STARTS_WITH\">Starts with</mat-option>\n </mat-select>\n <mat-hint>Path operator</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Path</mat-label>\n <span matTextPrefix>/</span>\n <input matInput formControlName=\"path\" />\n <mat-hint>Path</mat-hint>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Methods for your flow</mat-label>\n <gio-form-tags-input\n formControlName=\"methods\"\n [autocompleteOptions]=\"methods\"\n [tagValidationHook]=\"tagValidationHook\"\n ></gio-form-tags-input>\n </mat-form-field>\n </div>\n\n <div class=\"content__row\">\n <mat-form-field>\n <mat-label>Condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>Condition to execute the flow, supports Expression Language</mat-hint>\n </mat-form-field>\n </div>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"false\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSubmit()\">\n {{ mode === 'create' ? 'Create' : 'Save' }}\n </button>\n</mat-dialog-actions>\n", styles: [".title__closeBtn{top:0;right:-24px;float:right}.content__row{display:flex;align-items:flex-start;gap:16px}.content__row mat-form-field{flex:1 1 auto}\n"] }]
|
|
89
89
|
}], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
90
90
|
type: Inject,
|
|
91
91
|
args: [MAT_DIALOG_DATA]
|
|
@@ -112,4 +112,4 @@ const sanitizePathFormValue = (path) => {
|
|
|
112
112
|
}
|
|
113
113
|
return path ?? '';
|
|
114
114
|
};
|
|
115
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxXQUFXLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFNBQVMsRUFBRSxRQUFRLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFHN0MsT0FBTyxFQUFpQyxXQUFXLEVBQWdCLE1BQU0saUJBQWlCLENBQUM7Ozs7Ozs7Ozs7OztBQVMzRixNQUFNLG9CQUFvQixHQUFtQixDQUFDLEtBQUssRUFBRSxHQUFHLFdBQVcsQ0FBQyxDQUFDO0FBT3JFLE1BQU0sT0FBTywyQ0FBMkM7SUFPdEQsWUFDUyxTQUF5RyxFQUN2RixjQUFzRDtRQUR4RSxjQUFTLEdBQVQsU0FBUyxDQUFnRztRQUozRyxTQUFJLEdBQXNCLFFBQVEsQ0FBQztRQUNuQyxZQUFPLEdBQUcsb0JBQW9C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QUUsQ0FBQztBQUNwQixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vLi4vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZGl0aW9uU2VsZWN0b3IsIEh0dHBNZXRob2QsIEh0dHBNZXRob2RzLCBIdHRwU2VsZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQgfSBmcm9tICcuLi9naW8tcHMtZmxvdy1mb3JtLWRpYWxvZy1yZXN1bHQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSA9IHtcbiAgZmxvdz86IEZsb3dWTTtcbn07XG5cbnR5cGUgSHR0cE1ldGhvZFZNID0gSHR0cE1ldGhvZCB8ICdBTEwnO1xuXG5jb25zdCBNRVRIT0RTX0FVVE9DT01QTEVURTogSHR0cE1ldGhvZFZNW10gPSBbJ0FMTCcsIC4uLkh0dHBNZXRob2RzXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50IHtcbiAgcHVibGljIGZsb3dGb3JtR3JvdXA/OiBGb3JtR3JvdXA7XG5cbiAgcHVibGljIGV4aXN0aW5nRmxvdz86IEZsb3dWTTtcbiAgcHVibGljIG1vZGU6ICdjcmVhdGUnIHwgJ2VkaXQnID0gJ2NyZWF0ZSc7XG4gIHB1YmxpYyBtZXRob2RzID0gTUVUSE9EU19BVVRPQ09NUExFVEU7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZmxvd0RpYWxvZ0RhdGE6IEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmV4aXN0aW5nRmxvdyA9IGNsb25lRGVlcChmbG93RGlhbG9nRGF0YT8uZmxvdyk7XG4gICAgdGhpcy5tb2RlID0gdGhpcy5leGlzdGluZ0Zsb3cgPyAnZWRpdCcgOiAnY3JlYXRlJztcblxuICAgIGNvbnN0IGh0dHBTZWxlY3RvciA9IGZsb3dEaWFsb2dEYXRhPy5mbG93Py5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yO1xuICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yID0gZmxvd0RpYWxvZ0RhdGE/LmZsb3c/LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NPTkRJVElPTicpIGFzIENvbmRpdGlvblNlbGVjdG9yO1xuXG4gICAgdGhpcy5mbG93Rm9ybUdyb3VwID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgICBuYW1lOiBuZXcgRm9ybUNvbnRyb2woZmxvd0RpYWxvZ0RhdGE/LmZsb3c/Lm5hbWUgPz8gJycpLFxuICAgICAgcGF0aE9wZXJhdG9yOiBuZXcgRm9ybUNvbnRyb2woaHR0cFNlbGVjdG9yPy5wYXRoT3BlcmF0b3IgPz8gJ0VRVUFMUycpLFxuICAgICAgcGF0aDogbmV3IEZvcm1Db250cm9sKHNhbml0aXplUGF0aEZvcm1WYWx1ZShodHRwU2VsZWN0b3I/LnBhdGgpKSxcbiAgICAgIG1ldGhvZHM6IG5ldyBGb3JtQ29udHJvbChzYW5pdGl6ZU1ldGhvZEZvcm1WYWx1ZShodHRwU2VsZWN0b3I/Lm1ldGhvZHMpKSxcbiAgICAgIGNvbmRpdGlvbjogbmV3IEZvcm1Db250cm9sKGNvbmRpdGlvblNlbGVjdG9yPy5jb25kaXRpb24gPz8gJycpLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uU3VibWl0KCk6IHZvaWQge1xuICAgIGNvbnN0IGh0dHBTZWxlY3RvclRvU2F2ZTogSHR0cFNlbGVjdG9yID0ge1xuICAgICAgdHlwZTogJ0hUVFAnLFxuICAgICAgcGF0aDogc2FuaXRpemVQYXRoKHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdwYXRoJyk/LnZhbHVlKSxcbiAgICAgIHBhdGhPcGVyYXRvcjogdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ3BhdGhPcGVyYXRvcicpPy52YWx1ZSxcbiAgICAgIG1ldGhvZHM6IHNhbml0aXplTWV0aG9kcyh0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnbWV0aG9kcycpPy52YWx1ZSksXG4gICAgfTtcblxuICAgIGNvbnN0IGNvbmRpdGlvblZhbHVlOiBzdHJpbmcgPSB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnY29uZGl0aW9uJyk/LnZhbHVlO1xuICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlOiBDb25kaXRpb25TZWxlY3RvciB8IHVuZGVmaW5lZCA9IGNvbmRpdGlvblZhbHVlXG4gICAgICA/IHtcbiAgICAgICAgICB0eXBlOiAnQ09ORElUSU9OJyxcbiAgICAgICAgICBjb25kaXRpb246IGNvbmRpdGlvblZhbHVlLFxuICAgICAgICB9XG4gICAgICA6IHVuZGVmaW5lZDtcblxuICAgIGNvbnN0IGZsb3dUb1NhdmU6IEZsb3dWTSA9IHtcbiAgICAgIC8vIE5ldyBpZCBmb3IgbmV3IGZsb3dcbiAgICAgIF9pZDogdW5pcXVlSWQoJ2Zsb3dfJyksXG4gICAgICAvLyBJZiBleGlzdGluZyBmbG93LCBrZWVwIHJvb3QgcHJvcHNcbiAgICAgIC4uLnRoaXMuZXhpc3RpbmdGbG93LFxuICAgICAgLy8gTWFyayBhcyBjaGFuZ2VkXG4gICAgICBfaGFzQ2hhbmdlZDogdHJ1ZSxcbiAgICAgIC8vIEFkZCBjaGFuZ2VzXG4gICAgICBuYW1lOiB0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgnbmFtZScpPy52YWx1ZSxcbiAgICAgIHNlbGVjdG9yczogY29uZGl0aW9uU2VsZWN0b3JUb1NhdmUgPyBbaHR0cFNlbGVjdG9yVG9TYXZlLCBjb25kaXRpb25TZWxlY3RvclRvU2F2ZV0gOiBbaHR0cFNlbGVjdG9yVG9TYXZlXSxcbiAgICAgIGVuYWJsZWQ6IHRydWUsXG4gICAgfTtcblxuICAgIHRoaXMuZGlhbG9nUmVmLmNsb3NlKHtcbiAgICAgIC4uLmZsb3dUb1NhdmUsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgdGFnVmFsaWRhdGlvbkhvb2sodGFnOiBzdHJpbmcsIHZhbGlkYXRpb25DYjogKHNob3VsZEFkZFRhZzogYm9vbGVhbikgPT4gdm9pZCkge1xuICAgIHZhbGlkYXRpb25DYihNRVRIT0RTX0FVVE9DT01QTEVURS5tYXAobSA9PiBgJHttfWApLmluY2x1ZGVzKHRhZy50b1VwcGVyQ2FzZSgpKSk7XG4gIH1cbn1cblxuY29uc3Qgc2FuaXRpemVNZXRob2RzOiAodmFsdWU6IEh0dHBNZXRob2RWTVtdKSA9PiBIdHRwTWV0aG9kW10gPSAodmFsdWU/OiBIdHRwTWV0aG9kVk1bXSkgPT4ge1xuICBpZiAoIXZhbHVlIHx8IHZhbHVlLmZpbmQobSA9PiBtID09PSAnQUxMJykpIHJldHVybiBbXTtcbiAgcmV0dXJuIHZhbHVlIGFzIEh0dHBNZXRob2RbXTtcbn07XG5cbmNvbnN0IHNhbml0aXplTWV0aG9kRm9ybVZhbHVlOiAobWV0aG9kcz86IEh0dHBNZXRob2RbXSkgPT4gSHR0cE1ldGhvZFZNW10gPSAobWV0aG9kcz86IEh0dHBNZXRob2RbXSkgPT4ge1xuICBpZiAoIW1ldGhvZHMgfHwgbWV0aG9kcy5sZW5ndGggPT09IDApIHJldHVybiBbJ0FMTCddO1xuICByZXR1cm4gbWV0aG9kcztcbn07XG5cbmV4cG9ydCBjb25zdCBzYW5pdGl6ZVBhdGggPSAocGF0aDogc3RyaW5nKSA9PiB7XG4gIGlmICghcGF0aCB8fCAhcGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gYC8ke3BhdGh9YDtcbiAgfVxuICByZXR1cm4gcGF0aDtcbn07XG5cbmNvbnN0IHNhbml0aXplUGF0aEZvcm1WYWx1ZSA9IChwYXRoOiBzdHJpbmcgfCB1bmRlZmluZWQpID0+IHtcbiAgaWYgKHBhdGggJiYgcGF0aC5zdGFydHNXaXRoKCcvJykpIHtcbiAgICByZXR1cm4gcGF0aC5zdWJzdHJpbmcoMSk7XG4gIH1cbiAgcmV0dXJuIHBhdGggPz8gJyc7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRpdGxlXCI+XG4gIHt7IG1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZSBhIG5ldyBmbG93JyA6ICdFZGl0IGZsb3cnIH19XG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiZmFsc2VcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJmbG93Rm9ybUdyb3VwXCIgY2xhc3M9XCJjb250ZW50XCIgW2Zvcm1Hcm91cF09XCJmbG93Rm9ybUdyb3VwXCI+XG4gIDxwPlxuICAgIEZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgcGVyIEhUVFAgcGF0aCBhbmQvb3IgbWV0aG9kLiBGb3IgZXhhbXBsZSB5b3UgY2FuIHJlcm91dGUgY2FsbHMgYmFzZWQgb24gdGhlIFVSTCBzcGVjaWZpZWQuXG4gIDwvcD5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5GbG93IG5hbWU8L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCIgY2RrRm9jdXNJbml0aWFsIC8+XG4gICAgICA8bWF0LWhpbnQ+TmFtZXMgd2lsbCBiZSBhdXRvbWF0aWNhbGx5IGdlbmVyYXRlZCB3aXRoIHBhdGggYW5kIG1ldGhvZCBpZiBsZWZ0IGJsYW5rPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+T3BlcmF0b3I8L21hdC1sYWJlbD5cbiAgICAgIDxtYXQtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cInBhdGhPcGVyYXRvclwiPlxuICAgICAgICA8bWF0LW9wdGlvbiB2YWx1ZT1cIkVRVUFMU1wiPkVxdWFsczwvbWF0LW9wdGlvbj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJTVEFSVFNfV0lUSFwiPlN0YXJ0cyB3aXRoPC9tYXQtb3B0aW9uPlxuICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgPG1hdC1oaW50PlBhdGggb3BlcmF0b3I8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPlBhdGg8L21hdC1sYWJlbD5cbiAgICAgIDxzcGFuIG1hdFByZWZpeD4vPC9zcGFuPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cInBhdGhcIiAvPlxuICAgICAgPG1hdC1oaW50PlBhdGg8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPk1ldGhvZHMgZm9yIHlvdXIgZmxvdzwvbWF0LWxhYmVsPlxuICAgICAgPGdpby1mb3JtLXRhZ3MtaW5wdXRcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibWV0aG9kc1wiXG4gICAgICAgIFthdXRvY29tcGxldGVPcHRpb25zXT1cIm1ldGhvZHNcIlxuICAgICAgICBbdGFnVmFsaWRhdGlvbkhvb2tdPVwidGFnVmFsaWRhdGlvbkhvb2tcIlxuICAgICAgPjwvZ2lvLWZvcm0tdGFncy1pbnB1dD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiY29udGVudF9fcm93XCI+XG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5Db25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJjb25kaXRpb25cIiAvPlxuICAgICAgPG1hdC1oaW50PkNvbmRpdGlvbiB0byBleGVjdXRlIHRoZSBmbG93LCBzdXBwb3J0cyBFeHByZXNzaW9uIExhbmd1YWdlPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuICA8L2Rpdj5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19jYW5jZWxCdG5cIiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+Q2FuY2VsPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19zYXZlQnRuXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPlxuICAgIHt7IG1vZGUgPT09ICdjcmVhdGUnID8gJ0NyZWF0ZScgOiAnU2F2ZScgfX1cbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
115
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNsRCxPQUFPLEVBQWdCLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQ3pFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRzdDLE9BQU8sRUFBaUMsV0FBVyxFQUFnQixNQUFNLGlCQUFpQixDQUFDOzs7Ozs7Ozs7Ozs7QUFTM0YsTUFBTSxvQkFBb0IsR0FBbUIsQ0FBQyxLQUFLLEVBQUUsR0FBRyxXQUFXLENBQUMsQ0FBQztBQU9yRSxNQUFNLE9BQU8sMkNBQTJDO0lBT3RELFlBQ1MsU0FBeUcsRUFDdkYsY0FBc0Q7UUFEeEUsY0FBUyxHQUFULFNBQVMsQ0FBZ0c7UUFKM0csU0FBSSxHQUFzQixRQUFRLENBQUM7UUFDbkMsWUFBTyxHQUFHLG9CQUFvQixDQUFDO1FBTXBDLElBQUksQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLGNBQWMsRUFBRSxJQUFJLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDO1FBRWxELE1BQU0sWUFBWSxHQUFHLGNBQWMsRUFBRSxJQUFJLEVBQUUsU0FBUyxFQUFFLElBQUksQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLEtBQUssTUFBTSxDQUFpQixDQUFDO1FBQ25HLE1BQU0saUJBQWlCLEdBQUcsY0FBYyxFQUFFLElBQUksRUFBRSxTQUFTLEVBQUUsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksS0FBSyxXQUFXLENBQXNCLENBQUM7UUFFbEgsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLGdCQUFnQixDQUFDO1lBQ3hDLElBQUksRUFBRSxJQUFJLGtCQUFrQixDQUFDLGNBQWMsRUFBRSxJQUFJLEVBQUUsSUFBSSxJQUFJLEVBQUUsQ0FBQztZQUM5RCxZQUFZLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsWUFBWSxJQUFJLFFBQVEsQ0FBQztZQUM1RSxJQUFJLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxxQkFBcUIsQ0FBQyxZQUFZLEVBQUUsSUFBSSxDQUFDLENBQUM7WUFDdkUsT0FBTyxFQUFFLElBQUksa0JBQWtCLENBQUMsdUJBQXVCLENBQUMsWUFBWSxFQUFFLE9BQU8sQ0FBQyxDQUFDO1lBQy9FLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLGlCQUFpQixFQUFFLFNBQVMsSUFBSSxFQUFFLENBQUM7U0FDdEUsQ0FBQyxDQUFDO0lBQ0wsQ0FBQztJQUVNLFFBQVE7UUFDYixNQUFNLGtCQUFrQixHQUFpQjtZQUN2QyxJQUFJLEVBQUUsTUFBTTtZQUNaLElBQUksRUFBRSxZQUFZLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxDQUFDO1lBQzFELFlBQVksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxjQUFjLENBQUMsRUFBRSxLQUFLO1lBQzVELE9BQU8sRUFBRSxlQUFlLENBQUMsSUFBSSxDQUFDLGFBQWEsRUFBRSxHQUFHLENBQUMsU0FBUyxDQUFDLEVBQUUsS0FBSyxDQUFDO1NBQ3BFLENBQUM7UUFFRixNQUFNLGNBQWMsR0FBVyxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxXQUFXLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDM0UsTUFBTSx1QkFBdUIsR0FBa0MsY0FBYztZQUMzRSxDQUFDLENBQUM7Z0JBQ0UsSUFBSSxFQUFFLFdBQVc7Z0JBQ2pCLFNBQVMsRUFBRSxjQUFjO2FBQzFCO1lBQ0gsQ0FBQyxDQUFDLFNBQVMsQ0FBQztRQUVkLE1BQU0sVUFBVSxHQUFXO1lBQ3pCLHNCQUFzQjtZQUN0QixHQUFHLEVBQUUsUUFBUSxDQUFDLE9BQU8sQ0FBQztZQUN0QixvQ0FBb0M7WUFDcEMsR0FBRyxJQUFJLENBQUMsWUFBWTtZQUNwQixrQkFBa0I7WUFDbEIsV0FBVyxFQUFFLElBQUk7WUFDakIsY0FBYztZQUNkLElBQUksRUFBRSxJQUFJLENBQUMsYUFBYSxFQUFFLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRSxLQUFLO1lBQzVDLFNBQVMsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxrQkFBa0IsRUFBRSx1QkFBdUIsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDLGtCQUFrQixDQUFDO1lBQ3pHLE9BQU8sRUFBRSxJQUFJO1NBQ2QsQ0FBQztRQUVGLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25CLEdBQUcsVUFBVTtTQUNkLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxHQUFXLEVBQUUsWUFBNkM7UUFDakYsWUFBWSxDQUFDLG9CQUFvQixDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDLEdBQUcsQ0FBQyxFQUFFLENBQUMsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUNsRixDQUFDOzt5SUE5RFUsMkNBQTJDLDhDQVM1QyxlQUFlOzZIQVRkLDJDQUEyQyxxRUNyQ3hELGcrRkFpRkE7NEZENUNhLDJDQUEyQztrQkFMdkQsU0FBUzsrQkFDRSwrQkFBK0I7OzBCQWF0QyxNQUFNOzJCQUFDLGVBQWU7O0FBd0QzQixNQUFNLGVBQWUsR0FBNEMsQ0FBQyxLQUFzQixFQUFFLEVBQUU7SUFDMUYsSUFBSSxDQUFDLEtBQUssSUFBSSxLQUFLLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxLQUFLLEtBQUssQ0FBQztRQUFFLE9BQU8sRUFBRSxDQUFDO0lBQ3RELE9BQU8sS0FBcUIsQ0FBQztBQUMvQixDQUFDLENBQUM7QUFFRixNQUFNLHVCQUF1QixHQUErQyxDQUFDLE9BQXNCLEVBQUUsRUFBRTtJQUNyRyxJQUFJLENBQUMsT0FBTyxJQUFJLE9BQU8sQ0FBQyxNQUFNLEtBQUssQ0FBQztRQUFFLE9BQU8sQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUNyRCxPQUFPLE9BQU8sQ0FBQztBQUNqQixDQUFDLENBQUM7QUFFRixNQUFNLENBQUMsTUFBTSxZQUFZLEdBQUcsQ0FBQyxJQUFZLEVBQUUsRUFBRTtJQUMzQyxJQUFJLENBQUMsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNsQyxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7S0FDbkI7SUFDRCxPQUFPLElBQUksQ0FBQztBQUNkLENBQUMsQ0FBQztBQUVGLE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxJQUF3QixFQUFFLEVBQUU7SUFDekQsSUFBSSxJQUFJLElBQUksSUFBSSxDQUFDLFVBQVUsQ0FBQyxHQUFHLENBQUMsRUFBRTtRQUNoQyxPQUFPLElBQUksQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUM7S0FDMUI7SUFDRCxPQUFPLElBQUksSUFBSSxFQUFFLENBQUM7QUFDcEIsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBVbnR5cGVkRm9ybUNvbnRyb2wsIFVudHlwZWRGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIHVuaXF1ZUlkIH0gZnJvbSAnbG9kYXNoJztcblxuaW1wb3J0IHsgRmxvd1ZNIH0gZnJvbSAnLi4vLi4vLi4vZ2lvLXBvbGljeS1zdHVkaW8ubW9kZWwnO1xuaW1wb3J0IHsgQ29uZGl0aW9uU2VsZWN0b3IsIEh0dHBNZXRob2QsIEh0dHBNZXRob2RzLCBIdHRwU2VsZWN0b3IgfSBmcm9tICcuLi8uLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHQgfSBmcm9tICcuLi9naW8tcHMtZmxvdy1mb3JtLWRpYWxvZy1yZXN1bHQubW9kZWwnO1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSA9IHtcbiAgZmxvdz86IEZsb3dWTTtcbn07XG5cbnR5cGUgSHR0cE1ldGhvZFZNID0gSHR0cE1ldGhvZCB8ICdBTEwnO1xuXG5jb25zdCBNRVRIT0RTX0FVVE9DT01QTEVURTogSHR0cE1ldGhvZFZNW10gPSBbJ0FMTCcsIC4uLkh0dHBNZXRob2RzXTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1wcm94eS1mb3JtLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50IHtcbiAgcHVibGljIGZsb3dGb3JtR3JvdXA/OiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBleGlzdGluZ0Zsb3c/OiBGbG93Vk07XG4gIHB1YmxpYyBtb2RlOiAnY3JlYXRlJyB8ICdlZGl0JyA9ICdjcmVhdGUnO1xuICBwdWJsaWMgbWV0aG9kcyA9IE1FVEhPRFNfQVVUT0NPTVBMRVRFO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5leGlzdGluZ0Zsb3cgPSBjbG9uZURlZXAoZmxvd0RpYWxvZ0RhdGE/LmZsb3cpO1xuICAgIHRoaXMubW9kZSA9IHRoaXMuZXhpc3RpbmdGbG93ID8gJ2VkaXQnIDogJ2NyZWF0ZSc7XG5cbiAgICBjb25zdCBodHRwU2VsZWN0b3IgPSBmbG93RGlhbG9nRGF0YT8uZmxvdz8uc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnSFRUUCcpIGFzIEh0dHBTZWxlY3RvcjtcbiAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvciA9IGZsb3dEaWFsb2dEYXRhPy5mbG93Py5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcblxuICAgIHRoaXMuZmxvd0Zvcm1Hcm91cCA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIG5hbWU6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woZmxvd0RpYWxvZ0RhdGE/LmZsb3c/Lm5hbWUgPz8gJycpLFxuICAgICAgcGF0aE9wZXJhdG9yOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKGh0dHBTZWxlY3Rvcj8ucGF0aE9wZXJhdG9yID8/ICdFUVVBTFMnKSxcbiAgICAgIHBhdGg6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woc2FuaXRpemVQYXRoRm9ybVZhbHVlKGh0dHBTZWxlY3Rvcj8ucGF0aCkpLFxuICAgICAgbWV0aG9kczogbmV3IFVudHlwZWRGb3JtQ29udHJvbChzYW5pdGl6ZU1ldGhvZEZvcm1WYWx1ZShodHRwU2VsZWN0b3I/Lm1ldGhvZHMpKSxcbiAgICAgIGNvbmRpdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbChjb25kaXRpb25TZWxlY3Rvcj8uY29uZGl0aW9uID8/ICcnKSxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvblN1Ym1pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBodHRwU2VsZWN0b3JUb1NhdmU6IEh0dHBTZWxlY3RvciA9IHtcbiAgICAgIHR5cGU6ICdIVFRQJyxcbiAgICAgIHBhdGg6IHNhbml0aXplUGF0aCh0aGlzLmZsb3dGb3JtR3JvdXA/LmdldCgncGF0aCcpPy52YWx1ZSksXG4gICAgICBwYXRoT3BlcmF0b3I6IHRoaXMuZmxvd0Zvcm1Hcm91cD8uZ2V0KCdwYXRoT3BlcmF0b3InKT8udmFsdWUsXG4gICAgICBtZXRob2RzOiBzYW5pdGl6ZU1ldGhvZHModGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ21ldGhvZHMnKT8udmFsdWUpLFxuICAgIH07XG5cbiAgICBjb25zdCBjb25kaXRpb25WYWx1ZTogc3RyaW5nID0gdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ2NvbmRpdGlvbicpPy52YWx1ZTtcbiAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvclRvU2F2ZTogQ29uZGl0aW9uU2VsZWN0b3IgfCB1bmRlZmluZWQgPSBjb25kaXRpb25WYWx1ZVxuICAgICAgPyB7XG4gICAgICAgICAgdHlwZTogJ0NPTkRJVElPTicsXG4gICAgICAgICAgY29uZGl0aW9uOiBjb25kaXRpb25WYWx1ZSxcbiAgICAgICAgfVxuICAgICAgOiB1bmRlZmluZWQ7XG5cbiAgICBjb25zdCBmbG93VG9TYXZlOiBGbG93Vk0gPSB7XG4gICAgICAvLyBOZXcgaWQgZm9yIG5ldyBmbG93XG4gICAgICBfaWQ6IHVuaXF1ZUlkKCdmbG93XycpLFxuICAgICAgLy8gSWYgZXhpc3RpbmcgZmxvdywga2VlcCByb290IHByb3BzXG4gICAgICAuLi50aGlzLmV4aXN0aW5nRmxvdyxcbiAgICAgIC8vIE1hcmsgYXMgY2hhbmdlZFxuICAgICAgX2hhc0NoYW5nZWQ6IHRydWUsXG4gICAgICAvLyBBZGQgY2hhbmdlc1xuICAgICAgbmFtZTogdGhpcy5mbG93Rm9ybUdyb3VwPy5nZXQoJ25hbWUnKT8udmFsdWUsXG4gICAgICBzZWxlY3RvcnM6IGNvbmRpdGlvblNlbGVjdG9yVG9TYXZlID8gW2h0dHBTZWxlY3RvclRvU2F2ZSwgY29uZGl0aW9uU2VsZWN0b3JUb1NhdmVdIDogW2h0dHBTZWxlY3RvclRvU2F2ZV0sXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgIH07XG5cbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi5mbG93VG9TYXZlLFxuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIHRhZ1ZhbGlkYXRpb25Ib29rKHRhZzogc3RyaW5nLCB2YWxpZGF0aW9uQ2I6IChzaG91bGRBZGRUYWc6IGJvb2xlYW4pID0+IHZvaWQpIHtcbiAgICB2YWxpZGF0aW9uQ2IoTUVUSE9EU19BVVRPQ09NUExFVEUubWFwKG0gPT4gYCR7bX1gKS5pbmNsdWRlcyh0YWcudG9VcHBlckNhc2UoKSkpO1xuICB9XG59XG5cbmNvbnN0IHNhbml0aXplTWV0aG9kczogKHZhbHVlOiBIdHRwTWV0aG9kVk1bXSkgPT4gSHR0cE1ldGhvZFtdID0gKHZhbHVlPzogSHR0cE1ldGhvZFZNW10pID0+IHtcbiAgaWYgKCF2YWx1ZSB8fCB2YWx1ZS5maW5kKG0gPT4gbSA9PT0gJ0FMTCcpKSByZXR1cm4gW107XG4gIHJldHVybiB2YWx1ZSBhcyBIdHRwTWV0aG9kW107XG59O1xuXG5jb25zdCBzYW5pdGl6ZU1ldGhvZEZvcm1WYWx1ZTogKG1ldGhvZHM/OiBIdHRwTWV0aG9kW10pID0+IEh0dHBNZXRob2RWTVtdID0gKG1ldGhvZHM/OiBIdHRwTWV0aG9kW10pID0+IHtcbiAgaWYgKCFtZXRob2RzIHx8IG1ldGhvZHMubGVuZ3RoID09PSAwKSByZXR1cm4gWydBTEwnXTtcbiAgcmV0dXJuIG1ldGhvZHM7XG59O1xuXG5leHBvcnQgY29uc3Qgc2FuaXRpemVQYXRoID0gKHBhdGg6IHN0cmluZykgPT4ge1xuICBpZiAoIXBhdGggfHwgIXBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIGAvJHtwYXRofWA7XG4gIH1cbiAgcmV0dXJuIHBhdGg7XG59O1xuXG5jb25zdCBzYW5pdGl6ZVBhdGhGb3JtVmFsdWUgPSAocGF0aDogc3RyaW5nIHwgdW5kZWZpbmVkKSA9PiB7XG4gIGlmIChwYXRoICYmIHBhdGguc3RhcnRzV2l0aCgnLycpKSB7XG4gICAgcmV0dXJuIHBhdGguc3Vic3RyaW5nKDEpO1xuICB9XG4gIHJldHVybiBwYXRoID8/ICcnO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICB7eyBtb2RlID09PSAnY3JlYXRlJyA/ICdDcmVhdGUgYSBuZXcgZmxvdycgOiAnRWRpdCBmbG93JyB9fVxuXG4gIDxidXR0b24gY2xhc3M9XCJ0aXRsZV9fY2xvc2VCdG5cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiZmxvd0Zvcm1Hcm91cFwiIGNsYXNzPVwiY29udGVudFwiIFtmb3JtR3JvdXBdPVwiZmxvd0Zvcm1Hcm91cFwiPlxuICA8cD5cbiAgICBGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIHBlciBIVFRQIHBhdGggYW5kL29yIG1ldGhvZC4gRm9yIGV4YW1wbGUgeW91IGNhbiByZXJvdXRlIGNhbGxzIGJhc2VkIG9uIHRoZSBVUkwgc3BlY2lmaWVkLlxuICA8L3A+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+RmxvdyBuYW1lPC9tYXQtbGFiZWw+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibmFtZVwiIGNka0ZvY3VzSW5pdGlhbCAvPlxuICAgICAgPG1hdC1oaW50Pk5hbWVzIHdpbGwgYmUgYXV0b21hdGljYWxseSBnZW5lcmF0ZWQgd2l0aCBwYXRoIGFuZCBtZXRob2QgaWYgbGVmdCBibGFuazwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPk9wZXJhdG9yPC9tYXQtbGFiZWw+XG4gICAgICA8bWF0LXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJwYXRoT3BlcmF0b3JcIj5cbiAgICAgICAgPG1hdC1vcHRpb24gdmFsdWU9XCJFUVVBTFNcIj5FcXVhbHM8L21hdC1vcHRpb24+XG4gICAgICAgIDxtYXQtb3B0aW9uIHZhbHVlPVwiU1RBUlRTX1dJVEhcIj5TdGFydHMgd2l0aDwvbWF0LW9wdGlvbj5cbiAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgIDxtYXQtaGludD5QYXRoIG9wZXJhdG9yPC9tYXQtaGludD5cbiAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1sYWJlbD5QYXRoPC9tYXQtbGFiZWw+XG4gICAgICA8c3BhbiBtYXRUZXh0UHJlZml4Pi88L3NwYW4+XG4gICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwicGF0aFwiIC8+XG4gICAgICA8bWF0LWhpbnQ+UGF0aDwvbWF0LWhpbnQ+XG4gICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3Jvd1wiPlxuICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtbGFiZWw+TWV0aG9kcyBmb3IgeW91ciBmbG93PC9tYXQtbGFiZWw+XG4gICAgICA8Z2lvLWZvcm0tdGFncy1pbnB1dFxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJtZXRob2RzXCJcbiAgICAgICAgW2F1dG9jb21wbGV0ZU9wdGlvbnNdPVwibWV0aG9kc1wiXG4gICAgICAgIFt0YWdWYWxpZGF0aW9uSG9va109XCJ0YWdWYWxpZGF0aW9uSG9va1wiXG4gICAgICA+PC9naW8tZm9ybS10YWdzLWlucHV0PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJjb250ZW50X19yb3dcIj5cbiAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWxhYmVsPkNvbmRpdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiIC8+XG4gICAgICA8bWF0LWhpbnQ+Q29uZGl0aW9uIHRvIGV4ZWN1dGUgdGhlIGZsb3csIHN1cHBvcnRzIEV4cHJlc3Npb24gTGFuZ3VhZ2U8L21hdC1oaW50PlxuICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gIDwvZGl2PlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zXCIgYWxpZ249XCJlbmRcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiZmFsc2VcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX3NhdmVCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblN1Ym1pdCgpXCI+XG4gICAge3sgbW9kZSA9PT0gJ2NyZWF0ZScgPyAnQ3JlYXRlJyA6ICdTYXZlJyB9fVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|