@gravitee/ui-policy-studio-angular 13.10.2 → 13.11.0-improvement-9cef003
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/lib/components/flow-details/gio-ps-flow-details.component.mjs +3 -3
- package/esm2022/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +29 -3
- package/esm2022/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +31 -3
- package/esm2022/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +4 -3
- package/esm2022/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +4 -3
- package/esm2022/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +4 -3
- package/esm2022/lib/components/step-form/gio-ps-step-form.component.mjs +6 -2
- package/esm2022/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.mjs +25 -1
- package/esm2022/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.mjs +13 -1
- package/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs +36 -0
- package/fesm2022/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
- package/fesm2022/gravitee-ui-policy-studio-angular.mjs +74 -13
- package/fesm2022/gravitee-ui-policy-studio-angular.mjs.map +1 -1
- package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +3 -0
- package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +11 -2
- package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +1 -0
- package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +3 -1
- package/lib/components/step-form/gio-ps-step-form.component.d.ts +3 -2
- package/package.json +1 -1
- package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +15 -0
- package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +3 -0
package/esm2022/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs
CHANGED
|
@@ -60,6 +60,7 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
|
|
|
60
60
|
this.unsubscribe$ = new Subject();
|
|
61
61
|
this.isUnlicensed = false;
|
|
62
62
|
this.flowPhase = flowDialogData.flowPhase;
|
|
63
|
+
this.apiType = flowDialogData.apiType;
|
|
63
64
|
this.flowPhaseLabel = flowPhaseLabels[flowDialogData.flowPhase];
|
|
64
65
|
this.allPolicies = flowDialogData.genericPolicies
|
|
65
66
|
.filter(genericPolicy => {
|
|
@@ -140,7 +141,7 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
|
|
|
140
141
|
this.isUnlicensed = false;
|
|
141
142
|
}
|
|
142
143
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
143
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioPoliciesCatalogDialogComponent, isStandalone: true, selector: "gio-ps-policies-catalog-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 Policies for <span class=\"title__phase\">{{ flowPhaseLabel }}</span> phase\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<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matIconSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\"\n >{{ category | titlecase }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n\n <span\n *ngIf=\"policy.genericPolicy.type === 'SHARED_POLICY_GROUP'\"\n class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\"\n matTooltip=\"Shared Policy Group\"\n >\n <mat-icon svgIcon=\"gio:users\"></mat-icon>\n </span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <div class=\"emptyPoliciesCatalog\">No policies available.</div>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n\n <span *ngIf=\"selectedPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form\n [genericPolicy]=\"selectedPolicy\"\n [flowPhase]=\"flowPhase\"\n (stepChange)=\"onStepChange($event)\"\n (isValid)=\"onIsValid($event)\"\n ></gio-ps-step-form>\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\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-24px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;align-items:center;align-self:stretch}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:0 0 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__head__badge{float:left}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { 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.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i6.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i6.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.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: "ngmodule", type: GioBannerModule }, { kind: "component", type: i8.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { kind: "directive", type: i8.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "directive", type: i8.GioBannerActionDirective, selector: "[gioBannerAction]" }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["readOnly", "step", "flowPhase", "genericPolicy"], outputs: ["stepChange", "isValid"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
144
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioPoliciesCatalogDialogComponent, isStandalone: true, selector: "gio-ps-policies-catalog-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 Policies for <span class=\"title__phase\">{{ flowPhaseLabel }}</span> phase\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<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" cdkFocusInitial />\n <button\n matIconSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\"\n >{{ category | titlecase }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n\n <span\n *ngIf=\"policy.genericPolicy.type === 'SHARED_POLICY_GROUP'\"\n class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\"\n matTooltip=\"Shared Policy Group\"\n >\n <mat-icon svgIcon=\"gio:users\"></mat-icon>\n </span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <div class=\"emptyPoliciesCatalog\">No policies available.</div>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n\n <span *ngIf=\"selectedPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form\n [genericPolicy]=\"selectedPolicy\"\n [flowPhase]=\"flowPhase\"\n [apiType]=\"apiType\"\n (stepChange)=\"onStepChange($event)\"\n (isValid)=\"onIsValid($event)\"\n ></gio-ps-step-form>\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\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-24px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;align-items:center;align-self:stretch}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:0 0 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__head__badge{float:left}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: MatButtonModule }, { kind: "component", type: i4.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button]", exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i4.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i4.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: MatFormFieldModule }, { 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.MatSuffix, selector: "[matSuffix], [matIconSuffix], [matTextSuffix]", inputs: ["matTextSuffix"] }, { kind: "ngmodule", type: MatChipsModule }, { kind: "component", type: i6.MatChipListbox, selector: "mat-chip-listbox", inputs: ["multiple", "aria-orientation", "selectable", "compareWith", "required", "hideSingleSelectionIndicator", "value"], outputs: ["change"] }, { kind: "component", type: i6.MatChipOption, selector: "mat-basic-chip-option, [mat-basic-chip-option], mat-chip-option, [mat-chip-option]", inputs: ["selectable", "selected"], outputs: ["selectionChange"] }, { kind: "ngmodule", type: MatInputModule }, { kind: "directive", type: i7.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: "ngmodule", type: GioBannerModule }, { kind: "component", type: i8.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { kind: "directive", type: i8.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "directive", type: i8.GioBannerActionDirective, selector: "[gioBannerAction]" }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["readOnly", "step", "flowPhase", "apiType", "genericPolicy"], outputs: ["stepChange", "isValid"] }, { kind: "directive", type: MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }] }); }
|
|
144
145
|
}
|
|
145
146
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, decorators: [{
|
|
146
147
|
type: Component,
|
|
@@ -156,9 +157,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
156
157
|
GioIconsModule,
|
|
157
158
|
GioPolicyStudioStepFormComponent,
|
|
158
159
|
MatTooltip,
|
|
159
|
-
], selector: 'gio-ps-policies-catalog-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 Policies for <span class=\"title__phase\">{{ flowPhaseLabel }}</span> phase\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<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matIconSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\"\n >{{ category | titlecase }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n\n <span\n *ngIf=\"policy.genericPolicy.type === 'SHARED_POLICY_GROUP'\"\n class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\"\n matTooltip=\"Shared Policy Group\"\n >\n <mat-icon svgIcon=\"gio:users\"></mat-icon>\n </span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <div class=\"emptyPoliciesCatalog\">No policies available.</div>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n\n <span *ngIf=\"selectedPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form\n [genericPolicy]=\"selectedPolicy\"\n [flowPhase]=\"flowPhase\"\n (stepChange)=\"onStepChange($event)\"\n (isValid)=\"onIsValid($event)\"\n ></gio-ps-step-form>\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\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-24px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;align-items:center;align-self:stretch}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:0 0 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__head__badge{float:left}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
160
|
+
], selector: 'gio-ps-policies-catalog-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 Policies for <span class=\"title__phase\">{{ flowPhaseLabel }}</span> phase\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<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" cdkFocusInitial />\n <button\n matIconSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-listbox\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip-option *ngFor=\"let category of categories\" [selected]=\"category\" [value]=\"category\"\n >{{ category | titlecase }}\n </mat-chip-option>\n </mat-chip-listbox>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n\n <span\n *ngIf=\"policy.genericPolicy.type === 'SHARED_POLICY_GROUP'\"\n class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\"\n matTooltip=\"Shared Policy Group\"\n >\n <mat-icon svgIcon=\"gio:users\"></mat-icon>\n </span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <div class=\"emptyPoliciesCatalog\">No policies available.</div>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n\n <span *ngIf=\"selectedPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form\n [genericPolicy]=\"selectedPolicy\"\n [flowPhase]=\"flowPhase\"\n [apiType]=\"apiType\"\n (stepChange)=\"onStepChange($event)\"\n (isValid)=\"onIsValid($event)\"\n ></gio-ps-step-form>\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\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:0;right:-24px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;align-items:center;align-self:stretch}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:0 0 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__head__badge{float:left}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
160
161
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
161
162
|
type: Inject,
|
|
162
163
|
args: [MAT_DIALOG_DATA]
|
|
163
164
|
}] }] });
|
|
164
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFnQixlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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QUN6QixDQUFDO0lBRU0sV0FBVztRQUNoQixJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxTQUFTO1lBQ2pCLElBQUksRUFBRSxJQUFJLENBQUMsY0FBYyxFQUFFLElBQUk7WUFDL0IsT0FBTyxFQUFFLElBQUk7WUFDYixNQUFNLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxRQUFRO1NBQ3RDLENBQUMsQ0FBQztJQUNMLENBQUM7SUFFTSxRQUFRO1FBQ2IseUJBQXlCO1FBQ3pCLElBQUksQ0FBQyxjQUFjLEdBQUcsU0FBUyxDQUFDO1FBQ2hDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ3JCLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO0lBQzVCLENBQUM7OEdBeEhVLDZDQUE2Qyw4Q0E2QjlDLGVBQWU7a0dBN0JkLDZDQUE2QywwRkMvRTFELDZuTEE4SUEsbWhGRC9FSSxZQUFZLDRUQUNaLG1CQUFtQixtMkJBQ25CLGVBQWUscWZBQ2YsZUFBZSwrbkJBQ2Ysa0JBQWtCLDJhQUNsQixjQUFjLDhjQUNkLGNBQWMsMFdBQ2QsZUFBZSxpVUFDZixjQUFjLG9MQUNkLGdDQUFnQyw2SkFDaEMsVUFBVTs7MkZBTUQsNkNBQTZDO2tCQW5CekQsU0FBUztpQ0FDSSxJQUFJLFdBQ1A7d0JBQ1AsWUFBWTt3QkFDWixtQkFBbUI7d0JBQ25CLGVBQWU7d0JBQ2YsZUFBZTt3QkFDZixrQkFBa0I7d0JBQ2xCLGNBQWM7d0JBQ2QsY0FBYzt3QkFDZCxlQUFlO3dCQUNmLGNBQWM7d0JBQ2QsZ0NBQWdDO3dCQUNoQyxVQUFVO3FCQUNYLFlBQ1MsZ0NBQWdDOzswQkFpQ3ZDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSwgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRvTG93ZXIsIHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBHaW9CYW5uZXJNb2R1bGUsIEdpb0ljb25zTW9kdWxlIH0gZnJvbSAnQGdyYXZpdGVlL3VpLXBhcnRpY2xlcy1hbmd1bGFyJztcbmltcG9ydCB7IE1hdENoaXBzTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvY2hpcHMnO1xuaW1wb3J0IHsgTWF0VG9vbHRpcCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuXG5pbXBvcnQgeyBBcGlUeXBlLCBGbG93UGhhc2UsIEdlbmVyaWNQb2xpY3ksIGlzUG9saWN5LCBpc1NoYXJlZFBvbGljeUdyb3VwUG9saWN5LCBTdGVwIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb1N0ZXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nRGF0YSA9IHtcbiAgZ2VuZXJpY1BvbGljaWVzOiBHZW5lcmljUG9saWN5W107XG4gIGZsb3dQaGFzZTogRmxvd1BoYXNlO1xuICBhcGlUeXBlOiBBcGlUeXBlO1xuICB0cmlhbFVybD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdCA9IHVuZGVmaW5lZCB8IFN0ZXA7XG5cbmNvbnN0IGZsb3dQaGFzZUxhYmVsczogUmVjb3JkPEZsb3dQaGFzZSwgc3RyaW5nPiA9IHtcbiAgUkVRVUVTVDogJ1JlcXVlc3QnLFxuICBSRVNQT05TRTogJ1Jlc3BvbnNlJyxcbiAgUFVCTElTSDogJ1B1Ymxpc2gnLFxuICBTVUJTQ1JJQkU6ICdTdWJzY3JpYmUnLFxuICBDT05ORUNUOiAnQ29ubmVjdCcsXG4gIElOVEVSQUNUOiAnSW50ZXJhY3QnLFxufTtcblxudHlwZSBQb2xpY3lWTSA9IHtcbiAgX2lkOiBzdHJpbmc7XG4gIGdlbmVyaWNQb2xpY3k6IEdlbmVyaWNQb2xpY3k7XG4gIG5hbWU6IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIGljb24/OiBzdHJpbmc7XG4gIGRlcGxveWVkPzogYm9vbGVhbjtcbiAgY2F0ZWdvcnk6IHN0cmluZztcbn07XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0QnV0dG9uTW9kdWxlLFxuICAgIE1hdERpYWxvZ01vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0Q2hpcHNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgR2lvQmFubmVyTW9kdWxlLFxuICAgIEdpb0ljb25zTW9kdWxlLFxuICAgIEdpb1BvbGljeVN0dWRpb1N0ZXBGb3JtQ29tcG9uZW50LFxuICAgIE1hdFRvb2x0aXAsXG4gIF0sXG4gIHNlbGVjdG9yOiAnZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcG9saWNpZXM6IFBvbGljeVZNW10gPSBbXTtcblxuICBwdWJsaWMgZmxvd1BoYXNlITogRmxvd1BoYXNlO1xuICBwdWJsaWMgZmxvd1BoYXNlTGFiZWwhOiBzdHJpbmc7XG5cbiAgcHVibGljIHNlbGVjdGVkUG9saWN5PzogR2VuZXJpY1BvbGljeTtcblxuICBwdWJsaWMgc3RlcFRvQWRkPzogU3RlcDtcblxuICBwdWJsaWMgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgaXNWYWxpZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBmaWx0ZXJzRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICBjYXRlZ29yaWVzOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKFtdKSxcbiAgICBzZWFyY2g6IG5ldyBVbnR5cGVkRm9ybUNvbnRyb2woJycpLFxuICB9KTtcblxuICBwcml2YXRlIGFsbFBvbGljaWVzOiBQb2xpY3lWTVtdID0gW107XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuXG4gIHB1YmxpYyBpc1VubGljZW5zZWQgPSBmYWxzZTtcblxuICBwdWJsaWMgdHJpYWxVcmw/OiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nUmVzdWx0PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZmxvd0RpYWxvZ0RhdGE6IEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMuZmxvd1BoYXNlID0gZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlO1xuICAgIHRoaXMuZmxvd1BoYXNlTGFiZWwgPSBmbG93UGhhc2VMYWJlbHNbZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlXTtcblxuICAgIHRoaXMuYWxsUG9saWNpZXMgPSBmbG93RGlhbG9nRGF0YS5nZW5lcmljUG9saWNpZXNcbiAgICAgIC5maWx0ZXIoZ2VuZXJpY1BvbGljeSA9PiB7XG4gICAgICAgIGlmIChpc1BvbGljeShnZW5lcmljUG9saWN5KSkge1xuICAgICAgICAgIHN3aXRjaCAoZmxvd0RpYWxvZ0RhdGEuYXBpVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnUFJPWFknOlxuICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJpY1BvbGljeS5mbG93UGhhc2VDb21wYXRpYmlsaXR5Py5IVFRQX1BST1hZPy5pbmNsdWRlcyhmbG93RGlhbG9nRGF0YS5mbG93UGhhc2UpO1xuICAgICAgICAgICAgY2FzZSAnTUVTU0FHRSc6XG4gICAgICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmZsb3dQaGFzZUNvbXBhdGliaWxpdHk/LkhUVFBfTUVTU0FHRT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlKTtcbiAgICAgICAgICAgIGNhc2UgJ05BVElWRSc6XG4gICAgICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmZsb3dQaGFzZUNvbXBhdGliaWxpdHk/Lk5BVElWRV9LQUZLQT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBBUEkgdHlwZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeShnZW5lcmljUG9saWN5KSkge1xuICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmFwaVR5cGUgPT09IGZsb3dEaWFsb2dEYXRhLmFwaVR5cGUgJiYgZ2VuZXJpY1BvbGljeS5waGFzZSA9PT0gZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdCBleHBlY3RlZFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcG9saWN5IHR5cGUnKTtcbiAgICAgIH0pXG4gICAgICAubWFwKHBvbGljeSA9PiAoe1xuICAgICAgICBjYXRlZ29yeTogcG9saWN5LmNhdGVnb3J5ID8/ICdPdGhlcnMnLFxuICAgICAgICBfaWQ6IHBvbGljeS5faWQsXG4gICAgICAgIG5hbWU6IHBvbGljeS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcG9saWN5LmRlc2NyaXB0aW9uLFxuICAgICAgICBpY29uOiBpc1BvbGljeShwb2xpY3kpID8gcG9saWN5Lmljb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGRlcGxveWVkOiBpc1BvbGljeShwb2xpY3kpID8gcG9saWN5LmRlcGxveWVkIDogdW5kZWZpbmVkLFxuICAgICAgICBnZW5lcmljUG9saWN5OiBwb2xpY3ksXG4gICAgICB9KSk7XG5cbiAgICB0aGlzLmNhdGVnb3JpZXMgPSB1bmlxKHRoaXMuYWxsUG9saWNpZXMubWFwKHBvbGljeSA9PiBwb2xpY3kuY2F0ZWdvcnkudG9Mb3dlckNhc2UoKSkpLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG4gICAgY29uc3Qgb3RoZXJzSW5kZXggPSB0aGlzLmNhdGVnb3JpZXMuaW5kZXhPZignb3RoZXJzJyk7XG4gICAgaWYgKG90aGVyc0luZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5jYXRlZ29yaWVzLnNwbGljZShvdGhlcnNJbmRleCwgMSlbMF0pO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJzRm9ybS52YWx1ZSksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGNhdGVnb3JpZXMsIHNlYXJjaCB9OiB7IGNhdGVnb3JpZXM/OiBzdHJpbmdbXTsgc2VhcmNoPzogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBjYXRlZ29yaWVzIDogdGhpcy5jYXRlZ29yaWVzO1xuICAgICAgICB0aGlzLnBvbGljaWVzID0gdGhpcy5hbGxQb2xpY2llc1xuICAgICAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENhdGVnb3JpZXMubWFwKHRvTG93ZXIpLmluY2x1ZGVzKHRvTG93ZXIocG9saWN5LmNhdGVnb3J5KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2VhcmNoID8gdG9Mb3dlcihwb2xpY3kubmFtZSkuaW5jbHVkZXModG9Mb3dlcihzZWFyY2gpKSA6IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudHJpYWxVcmwgPSBmbG93RGlhbG9nRGF0YS50cmlhbFVybDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdFBvbGljeShwb2xpY3k6IFBvbGljeVZNKSB7XG4gICAgaWYgKHBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXNVbmxpY2Vuc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHBvbGljeS5nZW5lcmljUG9saWN5O1xuICB9XG5cbiAgcHVibGljIG9uU3RlcENoYW5nZShzdGVwOiBTdGVwKSB7XG4gICAgdGhpcy5zdGVwVG9BZGQgPSBzdGVwO1xuICB9XG5cbiAgcHVibGljIG9uSXNWYWxpZChpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gaXNWYWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZFBvbGljeSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi50aGlzLnN0ZXBUb0FkZCxcbiAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRQb2xpY3k/Lm5hbWUsXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgcG9saWN5OiB0aGlzLnNlbGVjdGVkUG9saWN5Py5wb2xpY3lJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdvQmFjaygpIHtcbiAgICAvLyBSZXNldCB0byBpbml0aWFsIHZhbHVlXG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmlzVmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzVW5saWNlbnNlZCA9IGZhbHNlO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgUG9saWNpZXMgZm9yIDxzcGFuIGNsYXNzPVwidGl0bGVfX3BoYXNlXCI+e3sgZmxvd1BoYXNlTGFiZWwgfX08L3NwYW4+IHBoYXNlXG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bmctY29udGFpbmVyPlxuICA8bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIXNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19zZWFyY2hcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdEljb25TdWZmaXhcbiAgICAgICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgICAgICBhcmlhLWxhYmVsPVwiQ2xlYXJcIlxuICAgICAgICAgICpuZ0lmPVwiZmlsdGVyc0Zvcm0uZ2V0KCdzZWFyY2gnKT8udmFsdWVcIlxuICAgICAgICAgIChjbGljayk9XCJmaWx0ZXJzRm9ybS5nZXQoJ3NlYXJjaCcpPy5zZXRWYWx1ZSgnJylcIlxuICAgICAgICA+XG4gICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgPG1hdC1jaGlwLWxpc3Rib3hcbiAgICAgICAgKm5nSWY9XCJjYXRlZ29yaWVzLmxlbmd0aCA+IDFcIlxuICAgICAgICBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fZmlsdGVyc19fY2F0ZWdvcmllc1wiXG4gICAgICAgIGFyaWEtbGFiZWw9XCJDYXRlZ29yaWVzIHNlbGVjdGlvblwiXG4gICAgICAgIG11bHRpcGxlXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNhdGVnb3JpZXNcIlxuICAgICAgPlxuICAgICAgICA8bWF0LWNoaXAtb3B0aW9uICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCIgW3NlbGVjdGVkXT1cImNhdGVnb3J5XCIgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICA+e3sgY2F0ZWdvcnkgfCB0aXRsZWNhc2UgfX1cbiAgICAgICAgPC9tYXQtY2hpcC1vcHRpb24+XG4gICAgICA8L21hdC1jaGlwLWxpc3Rib3g+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicG9saWNpZXMubGVuZ3RoOyBlbHNlIGVtcHR5UG9saWNpZXNUcGxcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHBvbGljaWVzXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9faWNvblwiIFtzdmdJY29uXT1cInBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvbGljeS5uYW1lXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9fbmFtZVwiPnt7IHBvbGljeS5uYW1lIH19PC9zcGFuPlxuXG4gICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICpuZ0lmPVwicG9saWN5LmdlbmVyaWNQb2xpY3kudHlwZSA9PT0gJ1NIQVJFRF9QT0xJQ1lfR1JPVVAnXCJcbiAgICAgICAgICAgIGNsYXNzPVwiZ2lvLWJhZGdlLW5ldXRyYWwgcG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX2JhZGdlXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJTaGFyZWQgUG9saWN5IEdyb3VwXCJcbiAgICAgICAgICA+XG4gICAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzp1c2Vyc1wiPjwvbWF0LWljb24+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VcIiAqbmdJZj1cInBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2VcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VfX2xvY2tcIlxuICAgICAgICAgICAgW3N2Z0ljb25dPVwiJ2dpbzpsb2NrJ1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiVGhpcyBwb2xpY3kgaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZXJzIHdpdGggYW4gZW50ZXJwcmlzZSBsaWNlbnNlLlwiXG4gICAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJwb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19kZXNjcmlwdGlvblwiPnt7IHBvbGljeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fc2VsZWN0QnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TZWxlY3RQb2xpY3kocG9saWN5KVwiPlxuICAgICAgICAgIFNlbGVjdFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UG9saWNpZXNUcGw+XG4gIDxkaXYgY2xhc3M9XCJlbXB0eVBvbGljaWVzQ2F0YWxvZ1wiPk5vIHBvbGljaWVzIGF2YWlsYWJsZS48L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJzZWxlY3RlZFBvbGljeVwiIGNsYXNzPVwicG9saWN5Rm9ybVwiPlxuICA8YnV0dG9uIGNsYXNzPVwicG9saWN5Rm9ybV9fZ29CYWNrQnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJvbkdvQmFjaygpXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86YXJyb3ctbGVmdFwiPjwvbWF0LWljb24+XG4gICAgR28gYmFja1xuICA8L2J1dHRvbj5cblxuICA8Z2lvLWJhbm5lciAqbmdJZj1cImlzVW5saWNlbnNlZFwiIHR5cGU9XCJlcnJvclwiIGljb249XCJnaW86dW5pdmVyc2VcIj5cbiAgICBUaGlzIHBvbGljeSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdXNlcnMgd2l0aCBhbiBlbnRlcnByaXNlIGxpY2Vuc2UuXG4gICAgPHNwYW4gZ2lvQmFubmVyQm9keT5SZXF1ZXN0IGEgbGljZW5zZSB0byB1cGdyYWRlIHlvdXIgYWNjb3VudCBhbmQgdW5sb2NrIHRoaXMgcG9saWN5PC9zcGFuPlxuICAgIDxkaXYgZ2lvQmFubmVyQWN0aW9uPlxuICAgICAgPGEgKm5nSWY9XCJ0cmlhbFVybFwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbaHJlZl09XCJ0cmlhbFVybFwiIHRhcmdldD1cIl9ibGFua1wiPlJlcXVlc3QgdXBncmFkZTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9naW8tYmFubmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJzZWxlY3RlZFBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZF9fbmFtZVwiPnt7IHNlbGVjdGVkUG9saWN5Lm5hbWUgfX08L3NwYW4+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kudHlwZSA9PT0gJ1NIQVJFRF9QT0xJQ1lfR1JPVVAnXCIgY2xhc3M9XCJnaW8tYmFkZ2UtbmV1dHJhbCBwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9fYmFkZ2VcIj5cbiAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86dXNlcnNcIj48L21hdC1pY29uPiZuYnNwO1NoYXJlZCBQb2xpY3kgR3JvdXBcbiAgICAgIDwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFBvbGljeS5kZXNjcmlwdGlvblwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19fZGVzY3JpcHRpb25cIj57eyBzZWxlY3RlZFBvbGljeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8Z2lvLXBzLXN0ZXAtZm9ybVxuICAgIFtnZW5lcmljUG9saWN5XT1cInNlbGVjdGVkUG9saWN5XCJcbiAgICBbZmxvd1BoYXNlXT1cImZsb3dQaGFzZVwiXG4gICAgKHN0ZXBDaGFuZ2UpPVwib25TdGVwQ2hhbmdlKCRldmVudClcIlxuICAgIChpc1ZhbGlkKT1cIm9uSXNWYWxpZCgkZXZlbnQpXCJcbiAgPjwvZ2lvLXBzLXN0ZXAtZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19jYW5jZWxCdG5cIiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIlwiPkNhbmNlbDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJzZWxlY3RlZFBvbGljeVwiXG4gICAgY2xhc3M9XCJhY3Rpb25zX19hZGRCdG5cIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkIHx8IGlzVW5saWNlbnNlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWRkUG9saWN5KClcIlxuICA+XG4gICAgQWRkIHBvbGljeVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
165
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFnQixlQUFlLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDMUYsT0FBTyxFQUFFLE9BQU8sRUFBRSxJQUFJLEVBQUUsTUFBTSxRQUFRLENBQUM7QUFDdkMsT0FBTyxFQUFFLG1CQUFtQixFQUFFLGtCQUFrQixFQUFFLGdCQUFnQixFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0YsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxZQUFZLEVBQUUsTUFBTSxpQkFBaUIsQ0FBQztBQUMvQyxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxN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QUMsT0FBZ0I7UUFDL0IsSUFBSSxDQUFDLE9BQU8sR0FBRyxPQUFPLENBQUM7SUFDekIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUM7WUFDbkIsR0FBRyxJQUFJLENBQUMsU0FBUztZQUNqQixJQUFJLEVBQUUsSUFBSSxDQUFDLGNBQWMsRUFBRSxJQUFJO1lBQy9CLE9BQU8sRUFBRSxJQUFJO1lBQ2IsTUFBTSxFQUFFLElBQUksQ0FBQyxjQUFjLEVBQUUsUUFBUTtTQUN0QyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0sUUFBUTtRQUNiLHlCQUF5QjtRQUN6QixJQUFJLENBQUMsY0FBYyxHQUFHLFNBQVMsQ0FBQztRQUNoQyxJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztRQUNyQixJQUFJLENBQUMsWUFBWSxHQUFHLEtBQUssQ0FBQztJQUM1QixDQUFDOzhHQTNIVSw2Q0FBNkMsOENBK0I5QyxlQUFlO2tHQS9CZCw2Q0FBNkMsMEZDL0UxRCx3cUxBK0lBLG1oRkRoRkksWUFBWSw0VEFDWixtQkFBbUIsbTJCQUNuQixlQUFlLHFmQUNmLGVBQWUsK25CQUNmLGtCQUFrQiwyYUFDbEIsY0FBYyw4Y0FDZCxjQUFjLDBXQUNkLGVBQWUsaVVBQ2YsY0FBYyxvTEFDZCxnQ0FBZ0Msd0tBQ2hDLFVBQVU7OzJGQU1ELDZDQUE2QztrQkFuQnpELFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixlQUFlO3dCQUNmLGVBQWU7d0JBQ2Ysa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGNBQWM7d0JBQ2QsZUFBZTt3QkFDZixjQUFjO3dCQUNkLGdDQUFnQzt3QkFDaEMsVUFBVTtxQkFDWCxZQUNTLGdDQUFnQzs7MEJBbUN2QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0b0xvd2VyLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IHN0YXJ0V2l0aCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQ29tbW9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcbmltcG9ydCB7IE1hdEJ1dHRvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2J1dHRvbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgR2lvQmFubmVyTW9kdWxlLCBHaW9JY29uc01vZHVsZSB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBNYXRDaGlwc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2NoaXBzJztcbmltcG9ydCB7IE1hdFRvb2x0aXAgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90b29sdGlwJztcblxuaW1wb3J0IHsgQXBpVHlwZSwgRmxvd1BoYXNlLCBHZW5lcmljUG9saWN5LCBpc1BvbGljeSwgaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9TdGVwRm9ybUNvbXBvbmVudCB9IGZyb20gJy4uL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEgPSB7XG4gIGdlbmVyaWNQb2xpY2llczogR2VuZXJpY1BvbGljeVtdO1xuICBmbG93UGhhc2U6IEZsb3dQaGFzZTtcbiAgYXBpVHlwZTogQXBpVHlwZTtcbiAgdHJpYWxVcmw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQgPSB1bmRlZmluZWQgfCBTdGVwO1xuXG5jb25zdCBmbG93UGhhc2VMYWJlbHM6IFJlY29yZDxGbG93UGhhc2UsIHN0cmluZz4gPSB7XG4gIFJFUVVFU1Q6ICdSZXF1ZXN0JyxcbiAgUkVTUE9OU0U6ICdSZXNwb25zZScsXG4gIFBVQkxJU0g6ICdQdWJsaXNoJyxcbiAgU1VCU0NSSUJFOiAnU3Vic2NyaWJlJyxcbiAgQ09OTkVDVDogJ0Nvbm5lY3QnLFxuICBJTlRFUkFDVDogJ0ludGVyYWN0Jyxcbn07XG5cbnR5cGUgUG9saWN5Vk0gPSB7XG4gIF9pZDogc3RyaW5nO1xuICBnZW5lcmljUG9saWN5OiBHZW5lcmljUG9saWN5O1xuICBuYW1lOiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICBpY29uPzogc3RyaW5nO1xuICBkZXBsb3llZD86IGJvb2xlYW47XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdENoaXBzTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIEdpb0Jhbm5lck1vZHVsZSxcbiAgICBHaW9JY29uc01vZHVsZSxcbiAgICBHaW9Qb2xpY3lTdHVkaW9TdGVwRm9ybUNvbXBvbmVudCxcbiAgICBNYXRUb29sdGlwLFxuICBdLFxuICBzZWxlY3RvcjogJ2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nQ29tcG9uZW50IGltcGxlbWVudHMgT25EZXN0cm95IHtcbiAgcHVibGljIHBvbGljaWVzOiBQb2xpY3lWTVtdID0gW107XG5cbiAgcHVibGljIGZsb3dQaGFzZSE6IEZsb3dQaGFzZTtcbiAgcHVibGljIGZsb3dQaGFzZUxhYmVsITogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFBvbGljeT86IEdlbmVyaWNQb2xpY3k7XG5cbiAgcHVibGljIHN0ZXBUb0FkZD86IFN0ZXA7XG5cbiAgcHVibGljIGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIGlzVmFsaWQgPSBmYWxzZTtcblxuICBwdWJsaWMgZmlsdGVyc0Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgY2F0ZWdvcmllczogbmV3IFVudHlwZWRGb3JtQ29udHJvbChbXSksXG4gICAgc2VhcmNoOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBhbGxQb2xpY2llczogUG9saWN5Vk1bXSA9IFtdO1xuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgaXNVbmxpY2Vuc2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHRyaWFsVXJsPzogc3RyaW5nO1xuXG4gIHB1YmxpYyBhcGlUeXBlOiBBcGlUeXBlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmZsb3dQaGFzZSA9IGZsb3dEaWFsb2dEYXRhLmZsb3dQaGFzZTtcbiAgICB0aGlzLmFwaVR5cGUgPSBmbG93RGlhbG9nRGF0YS5hcGlUeXBlO1xuICAgIHRoaXMuZmxvd1BoYXNlTGFiZWwgPSBmbG93UGhhc2VMYWJlbHNbZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlXTtcblxuICAgIHRoaXMuYWxsUG9saWNpZXMgPSBmbG93RGlhbG9nRGF0YS5nZW5lcmljUG9saWNpZXNcbiAgICAgIC5maWx0ZXIoZ2VuZXJpY1BvbGljeSA9PiB7XG4gICAgICAgIGlmIChpc1BvbGljeShnZW5lcmljUG9saWN5KSkge1xuICAgICAgICAgIHN3aXRjaCAoZmxvd0RpYWxvZ0RhdGEuYXBpVHlwZSkge1xuICAgICAgICAgICAgY2FzZSAnUFJPWFknOlxuICAgICAgICAgICAgICByZXR1cm4gZ2VuZXJpY1BvbGljeS5mbG93UGhhc2VDb21wYXRpYmlsaXR5Py5IVFRQX1BST1hZPy5pbmNsdWRlcyhmbG93RGlhbG9nRGF0YS5mbG93UGhhc2UpO1xuICAgICAgICAgICAgY2FzZSAnTUVTU0FHRSc6XG4gICAgICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmZsb3dQaGFzZUNvbXBhdGliaWxpdHk/LkhUVFBfTUVTU0FHRT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlKTtcbiAgICAgICAgICAgIGNhc2UgJ05BVElWRSc6XG4gICAgICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmZsb3dQaGFzZUNvbXBhdGliaWxpdHk/Lk5BVElWRV9LQUZLQT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlKTtcbiAgICAgICAgICAgIGRlZmF1bHQ6XG4gICAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcignVW5rbm93biBBUEkgdHlwZScpO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgICBpZiAoaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeShnZW5lcmljUG9saWN5KSkge1xuICAgICAgICAgIHJldHVybiBnZW5lcmljUG9saWN5LmFwaVR5cGUgPT09IGZsb3dEaWFsb2dEYXRhLmFwaVR5cGUgJiYgZ2VuZXJpY1BvbGljeS5waGFzZSA9PT0gZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlO1xuICAgICAgICB9XG4gICAgICAgIC8vIE5vdCBleHBlY3RlZFxuICAgICAgICB0aHJvdyBuZXcgRXJyb3IoJ1Vua25vd24gcG9saWN5IHR5cGUnKTtcbiAgICAgIH0pXG4gICAgICAubWFwKHBvbGljeSA9PiAoe1xuICAgICAgICBjYXRlZ29yeTogcG9saWN5LmNhdGVnb3J5ID8/ICdPdGhlcnMnLFxuICAgICAgICBfaWQ6IHBvbGljeS5faWQsXG4gICAgICAgIG5hbWU6IHBvbGljeS5uYW1lLFxuICAgICAgICBkZXNjcmlwdGlvbjogcG9saWN5LmRlc2NyaXB0aW9uLFxuICAgICAgICBpY29uOiBpc1BvbGljeShwb2xpY3kpID8gcG9saWN5Lmljb24gOiB1bmRlZmluZWQsXG4gICAgICAgIGRlcGxveWVkOiBpc1BvbGljeShwb2xpY3kpID8gcG9saWN5LmRlcGxveWVkIDogdW5kZWZpbmVkLFxuICAgICAgICBnZW5lcmljUG9saWN5OiBwb2xpY3ksXG4gICAgICB9KSk7XG5cbiAgICB0aGlzLmNhdGVnb3JpZXMgPSB1bmlxKHRoaXMuYWxsUG9saWNpZXMubWFwKHBvbGljeSA9PiBwb2xpY3kuY2F0ZWdvcnkudG9Mb3dlckNhc2UoKSkpLnNvcnQoKGEsIGIpID0+IGEubG9jYWxlQ29tcGFyZShiKSk7XG4gICAgY29uc3Qgb3RoZXJzSW5kZXggPSB0aGlzLmNhdGVnb3JpZXMuaW5kZXhPZignb3RoZXJzJyk7XG4gICAgaWYgKG90aGVyc0luZGV4ICE9PSAtMSkge1xuICAgICAgdGhpcy5jYXRlZ29yaWVzLnB1c2godGhpcy5jYXRlZ29yaWVzLnNwbGljZShvdGhlcnNJbmRleCwgMSlbMF0pO1xuICAgIH1cblxuICAgIHRoaXMuZmlsdGVyc0Zvcm0udmFsdWVDaGFuZ2VzXG4gICAgICAucGlwZShzdGFydFdpdGgodGhpcy5maWx0ZXJzRm9ybS52YWx1ZSksIHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpXG4gICAgICAuc3Vic2NyaWJlKCh7IGNhdGVnb3JpZXMsIHNlYXJjaCB9OiB7IGNhdGVnb3JpZXM/OiBzdHJpbmdbXTsgc2VhcmNoPzogc3RyaW5nIH0pID0+IHtcbiAgICAgICAgY29uc3Qgc2VsZWN0ZWRDYXRlZ29yaWVzID0gY2F0ZWdvcmllcyAmJiBjYXRlZ29yaWVzLmxlbmd0aCA+IDAgPyBjYXRlZ29yaWVzIDogdGhpcy5jYXRlZ29yaWVzO1xuICAgICAgICB0aGlzLnBvbGljaWVzID0gdGhpcy5hbGxQb2xpY2llc1xuICAgICAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWxlY3RlZENhdGVnb3JpZXMubWFwKHRvTG93ZXIpLmluY2x1ZGVzKHRvTG93ZXIocG9saWN5LmNhdGVnb3J5KSk7XG4gICAgICAgICAgfSlcbiAgICAgICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2VhcmNoID8gdG9Mb3dlcihwb2xpY3kubmFtZSkuaW5jbHVkZXModG9Mb3dlcihzZWFyY2gpKSA6IHRydWU7XG4gICAgICAgICAgfSk7XG4gICAgICB9KTtcblxuICAgIHRoaXMudHJpYWxVcmwgPSBmbG93RGlhbG9nRGF0YS50cmlhbFVybDtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvblNlbGVjdFBvbGljeShwb2xpY3k6IFBvbGljeVZNKSB7XG4gICAgaWYgKHBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXNVbmxpY2Vuc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHBvbGljeS5nZW5lcmljUG9saWN5O1xuICB9XG5cbiAgcHVibGljIG9uU3RlcENoYW5nZShzdGVwOiBTdGVwKSB7XG4gICAgdGhpcy5zdGVwVG9BZGQgPSBzdGVwO1xuICB9XG5cbiAgcHVibGljIG9uSXNWYWxpZChpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gaXNWYWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZFBvbGljeSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi50aGlzLnN0ZXBUb0FkZCxcbiAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRQb2xpY3k/Lm5hbWUsXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgcG9saWN5OiB0aGlzLnNlbGVjdGVkUG9saWN5Py5wb2xpY3lJZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdvQmFjaygpIHtcbiAgICAvLyBSZXNldCB0byBpbml0aWFsIHZhbHVlXG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmlzVmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzVW5saWNlbnNlZCA9IGZhbHNlO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgUG9saWNpZXMgZm9yIDxzcGFuIGNsYXNzPVwidGl0bGVfX3BoYXNlXCI+e3sgZmxvd1BoYXNlTGFiZWwgfX08L3NwYW4+IHBoYXNlXG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bmctY29udGFpbmVyPlxuICA8bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIXNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19zZWFyY2hcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgY2RrRm9jdXNJbml0aWFsIC8+XG4gICAgICAgIDxidXR0b25cbiAgICAgICAgICBtYXRJY29uU3VmZml4XG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAqbmdJZj1cImZpbHRlcnNGb3JtLmdldCgnc2VhcmNoJyk/LnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyc0Zvcm0uZ2V0KCdzZWFyY2gnKT8uc2V0VmFsdWUoJycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtY2hpcC1saXN0Ym94XG4gICAgICAgICpuZ0lmPVwiY2F0ZWdvcmllcy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2ZpbHRlcnNfX2NhdGVnb3JpZXNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2F0ZWdvcmllcyBzZWxlY3Rpb25cIlxuICAgICAgICBtdWx0aXBsZVxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYXRlZ29yaWVzXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwLW9wdGlvbiAqbmdGb3I9XCJsZXQgY2F0ZWdvcnkgb2YgY2F0ZWdvcmllc1wiIFtzZWxlY3RlZF09XCJjYXRlZ29yeVwiIFt2YWx1ZV09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgPnt7IGNhdGVnb3J5IHwgdGl0bGVjYXNlIH19XG4gICAgICAgIDwvbWF0LWNoaXAtb3B0aW9uPlxuICAgICAgPC9tYXQtY2hpcC1saXN0Ym94PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdiAqbmdJZj1cInBvbGljaWVzLmxlbmd0aDsgZWxzZSBlbXB0eVBvbGljaWVzVHBsXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RcIj5cbiAgICAgIDxkaXYgKm5nRm9yPVwibGV0IHBvbGljeSBvZiBwb2xpY2llc1wiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19oZWFkXCI+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJwb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJwb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX25hbWVcIj57eyBwb2xpY3kubmFtZSB9fTwvc3Bhbj5cblxuICAgICAgICAgIDxzcGFuXG4gICAgICAgICAgICAqbmdJZj1cInBvbGljeS5nZW5lcmljUG9saWN5LnR5cGUgPT09ICdTSEFSRURfUE9MSUNZX0dST1VQJ1wiXG4gICAgICAgICAgICBjbGFzcz1cImdpby1iYWRnZS1uZXV0cmFsIHBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19oZWFkX19iYWRnZVwiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiU2hhcmVkIFBvbGljeSBHcm91cFwiXG4gICAgICAgICAgPlxuICAgICAgICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86dXNlcnNcIj48L21hdC1pY29uPlxuICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19lbnRlcnByaXNlXCIgKm5nSWY9XCJwb2xpY3kuZGVwbG95ZWQgPT09IGZhbHNlXCI+XG4gICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19lbnRlcnByaXNlX19sb2NrXCJcbiAgICAgICAgICAgIFtzdmdJY29uXT1cIidnaW86bG9jaydcIlxuICAgICAgICAgICAgbWF0VG9vbHRpcD1cIlRoaXMgcG9saWN5IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB1c2VycyB3aXRoIGFuIGVudGVycHJpc2UgbGljZW5zZS5cIlxuICAgICAgICAgID48L21hdC1pY29uPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2ICpuZ0lmPVwicG9saWN5LmRlc2NyaXB0aW9uXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fZGVzY3JpcHRpb25cIj57eyBwb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cblxuICAgICAgICA8YnV0dG9uIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX3NlbGVjdEJ0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiByb2xlPVwiZGlhbG9nXCIgKGNsaWNrKT1cIm9uU2VsZWN0UG9saWN5KHBvbGljeSlcIj5cbiAgICAgICAgICBTZWxlY3RcbiAgICAgICAgPC9idXR0b24+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG48L25nLWNvbnRhaW5lcj5cblxuPG5nLXRlbXBsYXRlICNlbXB0eVBvbGljaWVzVHBsPlxuICA8ZGl2IGNsYXNzPVwiZW1wdHlQb2xpY2llc0NhdGFsb2dcIj5ObyBwb2xpY2llcyBhdmFpbGFibGUuPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuXG48bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lcIiBjbGFzcz1cInBvbGljeUZvcm1cIj5cbiAgPGJ1dHRvbiBjbGFzcz1cInBvbGljeUZvcm1fX2dvQmFja0J0blwiIG1hdC1zdHJva2VkLWJ1dHRvbiAoY2xpY2spPVwib25Hb0JhY2soKVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmFycm93LWxlZnRcIj48L21hdC1pY29uPlxuICAgIEdvIGJhY2tcbiAgPC9idXR0b24+XG5cbiAgPGdpby1iYW5uZXIgKm5nSWY9XCJpc1VubGljZW5zZWRcIiB0eXBlPVwiZXJyb3JcIiBpY29uPVwiZ2lvOnVuaXZlcnNlXCI+XG4gICAgVGhpcyBwb2xpY3kgaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZXJzIHdpdGggYW4gZW50ZXJwcmlzZSBsaWNlbnNlLlxuICAgIDxzcGFuIGdpb0Jhbm5lckJvZHk+UmVxdWVzdCBhIGxpY2Vuc2UgdG8gdXBncmFkZSB5b3VyIGFjY291bnQgYW5kIHVubG9jayB0aGlzIHBvbGljeTwvc3Bhbj5cbiAgICA8ZGl2IGdpb0Jhbm5lckFjdGlvbj5cbiAgICAgIDxhICpuZ0lmPVwidHJpYWxVcmxcIiBtYXQtc3Ryb2tlZC1idXR0b24gW2hyZWZdPVwidHJpYWxVcmxcIiB0YXJnZXQ9XCJfYmxhbmtcIj5SZXF1ZXN0IHVwZ3JhZGU8L2E+XG4gICAgPC9kaXY+XG4gIDwvZ2lvLWJhbm5lcj5cblxuICA8ZGl2IGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19oZWFkXCI+XG4gICAgICA8bWF0LWljb24gY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19oZWFkX19pY29uXCIgW3N2Z0ljb25dPVwic2VsZWN0ZWRQb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUG9saWN5Lm5hbWVcIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX25hbWVcIj57eyBzZWxlY3RlZFBvbGljeS5uYW1lIH19PC9zcGFuPlxuXG4gICAgICA8c3BhbiAqbmdJZj1cInNlbGVjdGVkUG9saWN5LnR5cGUgPT09ICdTSEFSRURfUE9MSUNZX0dST1VQJ1wiIGNsYXNzPVwiZ2lvLWJhZGdlLW5ldXRyYWwgcG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRfX2JhZGdlXCI+XG4gICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnVzZXJzXCI+PC9tYXQtaWNvbj4mbmJzcDtTaGFyZWQgUG9saWN5IEdyb3VwXG4gICAgICA8L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2Rlc2NyaXB0aW9uXCI+e3sgc2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGdpby1wcy1zdGVwLWZvcm1cbiAgICBbZ2VuZXJpY1BvbGljeV09XCJzZWxlY3RlZFBvbGljeVwiXG4gICAgW2Zsb3dQaGFzZV09XCJmbG93UGhhc2VcIlxuICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgIChzdGVwQ2hhbmdlKT1cIm9uU3RlcENoYW5nZSgkZXZlbnQpXCJcbiAgICAoaXNWYWxpZCk9XCJvbklzVmFsaWQoJGV2ZW50KVwiXG4gID48L2dpby1wcy1zdGVwLWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lcIlxuICAgIGNsYXNzPVwiYWN0aW9uc19fYWRkQnRuXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIFtkaXNhYmxlZF09XCIhaXNWYWxpZCB8fCBpc1VubGljZW5zZWRcIlxuICAgIChjbGljayk9XCJvbkFkZFBvbGljeSgpXCJcbiAgPlxuICAgIEFkZCBwb2xpY3lcbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
|
|
@@ -30,6 +30,7 @@ export class GioPolicyStudioStepEditDialogComponent {
|
|
|
30
30
|
this.isValid = false;
|
|
31
31
|
this.readOnly = false;
|
|
32
32
|
this.flowPhase = flowDialogData.flowPhase;
|
|
33
|
+
this.apiType = flowDialogData.apiType;
|
|
33
34
|
this.genericPolicy = flowDialogData.genericPolicy;
|
|
34
35
|
this.step = flowDialogData.step;
|
|
35
36
|
this.readOnly = Boolean(flowDialogData.readOnly);
|
|
@@ -40,13 +41,13 @@ export class GioPolicyStudioStepEditDialogComponent {
|
|
|
40
41
|
});
|
|
41
42
|
}
|
|
42
43
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
43
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioStepEditDialogComponent, isStandalone: true, selector: "gio-ps-step-edit-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 <mat-icon class=\"title__icon\" [svgIcon]=\"genericPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">\n {{ step.name }}\n <span *ngIf=\"genericPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span></span\n >\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\n <div class=\"title__description\">\n {{ genericPolicy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form\n [readOnly]=\"readOnly\"\n [genericPolicy]=\"genericPolicy\"\n [flowPhase]=\"flowPhase\"\n [(step)]=\"step\"\n (isValid)=\"isValid = $event\"\n ></gio-ps-step-form>\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)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-24px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["readOnly", "step", "flowPhase", "genericPolicy"], outputs: ["stepChange", "isValid"] }] }); }
|
|
44
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.0", type: GioPolicyStudioStepEditDialogComponent, isStandalone: true, selector: "gio-ps-step-edit-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 <mat-icon class=\"title__icon\" [svgIcon]=\"genericPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">\n {{ step.name }}\n <span *ngIf=\"genericPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span></span\n >\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\n <div class=\"title__description\">\n {{ genericPolicy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form\n [readOnly]=\"readOnly\"\n [genericPolicy]=\"genericPolicy\"\n [flowPhase]=\"flowPhase\"\n [apiType]=\"apiType\"\n [(step)]=\"step\"\n (isValid)=\"isValid = $event\"\n ></gio-ps-step-form>\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)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-24px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "ngmodule", type: MatButtonModule }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i3.MatIconButton, selector: "button[mat-icon-button]", exportAs: ["matButton"] }, { kind: "ngmodule", type: MatDialogModule }, { 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.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["readOnly", "step", "flowPhase", "apiType", "genericPolicy"], outputs: ["stepChange", "isValid"] }] }); }
|
|
44
45
|
}
|
|
45
46
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, decorators: [{
|
|
46
47
|
type: Component,
|
|
47
|
-
args: [{ standalone: true, imports: [CommonModule, MatButtonModule, MatDialogModule, GioIconsModule, GioPolicyStudioStepFormComponent], selector: 'gio-ps-step-edit-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 <mat-icon class=\"title__icon\" [svgIcon]=\"genericPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">\n {{ step.name }}\n <span *ngIf=\"genericPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span></span\n >\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\n <div class=\"title__description\">\n {{ genericPolicy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form\n [readOnly]=\"readOnly\"\n [genericPolicy]=\"genericPolicy\"\n [flowPhase]=\"flowPhase\"\n [(step)]=\"step\"\n (isValid)=\"isValid = $event\"\n ></gio-ps-step-form>\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)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-24px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
48
|
+
args: [{ standalone: true, imports: [CommonModule, MatButtonModule, MatDialogModule, GioIconsModule, GioPolicyStudioStepFormComponent], selector: 'gio-ps-step-edit-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 <mat-icon class=\"title__icon\" [svgIcon]=\"genericPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">\n {{ step.name }}\n <span *ngIf=\"genericPolicy.type === 'SHARED_POLICY_GROUP'\" class=\"gio-badge-neutral policiesCatalog__list__policy__head__badge\">\n <mat-icon svgIcon=\"gio:users\"></mat-icon> Shared Policy Group\n </span></span\n >\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\n <div class=\"title__description\">\n {{ genericPolicy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form\n [readOnly]=\"readOnly\"\n [genericPolicy]=\"genericPolicy\"\n [flowPhase]=\"flowPhase\"\n [apiType]=\"apiType\"\n [(step)]=\"step\"\n (isValid)=\"isValid = $event\"\n ></gio-ps-step-form>\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)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:0;right:-24px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
|
|
48
49
|
}], ctorParameters: () => [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
|
|
49
50
|
type: Inject,
|
|
50
51
|
args: [MAT_DIALOG_DATA]
|
|
51
52
|
}] }] });
|
|
52
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
53
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zdGVwLWVkaXQtZGlhbG9nL2dpby1wcy1zdGVwLWVkaXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1lZGl0LWRpYWxvZy9naW8tcHMtc3RlcC1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBQzFGLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNoRSxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDO0FBRzNELE9BQU8sRUFBRSxnQ0FBZ0MsRUFBRSxNQUFNLHlDQUF5QyxDQUFDOzs7Ozs7QUFtQjNGLE1BQU0sT0FBTyxzQ0FBc0M7SUFTakQsWUFDUyxTQUFvRyxFQUNsRixjQUFpRDtRQURuRSxjQUFTLEdBQVQsU0FBUyxDQUEyRjtRQUp0RyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBQ2hCLGFBQVEsR0FBRyxLQUFLLENBQUM7UUFNdEIsSUFBSSxDQUFDLFNBQVMsR0FBRyxjQUFjLENBQUMsU0FBUyxDQUFDO1FBQzFDLElBQUksQ0FBQyxPQUFPLEdBQUcsY0FBYyxDQUFDLE9BQU8sQ0FBQztRQUN0QyxJQUFJLENBQUMsYUFBYSxHQUFHLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDbEQsSUFBSSxDQUFDLElBQUksR0FBRyxjQUFjLENBQUMsSUFBSSxDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLEdBQUcsT0FBTyxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNuRCxDQUFDO0lBRU0sTUFBTTtRQUNYLElBQUksQ0FBQyxTQUFTLENBQUMsS0FBSyxDQUFDO1lBQ25CLEdBQUcsSUFBSSxDQUFDLElBQUk7U0FDYixDQUFDLENBQUM7SUFDTCxDQUFDOzhHQXhCVSxzQ0FBc0MsOENBV3ZDLGVBQWU7a0dBWGQsc0NBQXNDLG1GQ3pDbkQsazhEQW1EQSw2Y0RmWSxZQUFZLGtJQUFFLGVBQWUsd1VBQUUsZUFBZSwrbkJBQUUsY0FBYyxvTEFBRSxnQ0FBZ0M7OzJGQUsvRixzQ0FBc0M7a0JBUGxELFNBQVM7aUNBQ0ksSUFBSSxXQUNQLENBQUMsWUFBWSxFQUFFLGVBQWUsRUFBRSxlQUFlLEVBQUUsY0FBYyxFQUFFLGdDQUFnQyxDQUFDLFlBQ2pHLHlCQUF5Qjs7MEJBZWhDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nUmVmLCBNQVRfRElBTE9HX0RBVEEsIE1hdERpYWxvZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyBHaW9JY29uc01vZHVsZSB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0QnV0dG9uTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvYnV0dG9uJztcblxuaW1wb3J0IHsgRmxvd1BoYXNlLCBTdGVwLCBHZW5lcmljUG9saWN5LCBBcGlUeXBlIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb1N0ZXBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50JztcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dEYXRhID0ge1xuICBnZW5lcmljUG9saWN5OiBHZW5lcmljUG9saWN5O1xuICBzdGVwOiBTdGVwO1xuICBmbG93UGhhc2U6IEZsb3dQaGFzZTtcbiAgYXBpVHlwZTogQXBpVHlwZTtcbiAgcmVhZE9ubHk/OiBib29sZWFuO1xufTtcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dSZXN1bHQgPSB1bmRlZmluZWQgfCBTdGVwO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW0NvbW1vbk1vZHVsZSwgTWF0QnV0dG9uTW9kdWxlLCBNYXREaWFsb2dNb2R1bGUsIEdpb0ljb25zTW9kdWxlLCBHaW9Qb2xpY3lTdHVkaW9TdGVwRm9ybUNvbXBvbmVudF0sXG4gIHNlbGVjdG9yOiAnZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtc3RlcC1lZGl0LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBnZW5lcmljUG9saWN5ITogR2VuZXJpY1BvbGljeTtcbiAgcHVibGljIHN0ZXAhOiBTdGVwO1xuICBwdWJsaWMgZmxvd1BoYXNlITogRmxvd1BoYXNlO1xuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgcHVibGljIGlzVmFsaWQgPSBmYWxzZTtcbiAgcHVibGljIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHVibGljIGRpYWxvZ1JlZjogTWF0RGlhbG9nUmVmPEdpb1BvbGljeVN0dWRpb1N0ZXBFZGl0RGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ0RhdGEsXG4gICkge1xuICAgIHRoaXMuZmxvd1BoYXNlID0gZmxvd0RpYWxvZ0RhdGEuZmxvd1BoYXNlO1xuICAgIHRoaXMuYXBpVHlwZSA9IGZsb3dEaWFsb2dEYXRhLmFwaVR5cGU7XG4gICAgdGhpcy5nZW5lcmljUG9saWN5ID0gZmxvd0RpYWxvZ0RhdGEuZ2VuZXJpY1BvbGljeTtcbiAgICB0aGlzLnN0ZXAgPSBmbG93RGlhbG9nRGF0YS5zdGVwO1xuICAgIHRoaXMucmVhZE9ubHkgPSBCb29sZWFuKGZsb3dEaWFsb2dEYXRhLnJlYWRPbmx5KTtcbiAgfVxuXG4gIHB1YmxpYyBvblNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4udGhpcy5zdGVwLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgPG1hdC1pY29uIGNsYXNzPVwidGl0bGVfX2ljb25cIiBbc3ZnSWNvbl09XCJnZW5lcmljUG9saWN5Lmljb24gPz8gJ2dpbzpwdXp6bGUnXCI+PC9tYXQtaWNvbj5cblxuICA8c3BhbiAqbmdJZj1cInN0ZXAubmFtZVwiIGNsYXNzPVwidGl0bGVfX25hbWVcIj5cbiAgICB7eyBzdGVwLm5hbWUgfX1cbiAgICA8c3BhbiAqbmdJZj1cImdlbmVyaWNQb2xpY3kudHlwZSA9PT0gJ1NIQVJFRF9QT0xJQ1lfR1JPVVAnXCIgY2xhc3M9XCJnaW8tYmFkZ2UtbmV1dHJhbCBwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9fYmFkZ2VcIj5cbiAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnVzZXJzXCI+PC9tYXQtaWNvbj4mbmJzcDtTaGFyZWQgUG9saWN5IEdyb3VwXG4gICAgPC9zcGFuPjwvc3BhblxuICA+XG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG5cbiAgPGRpdiBjbGFzcz1cInRpdGxlX19kZXNjcmlwdGlvblwiPlxuICAgIHt7IGdlbmVyaWNQb2xpY3kuZGVzY3JpcHRpb24gfX1cbiAgPC9kaXY+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiY29udGVudFwiPlxuICA8Z2lvLXBzLXN0ZXAtZm9ybVxuICAgIFtyZWFkT25seV09XCJyZWFkT25seVwiXG4gICAgW2dlbmVyaWNQb2xpY3ldPVwiZ2VuZXJpY1BvbGljeVwiXG4gICAgW2Zsb3dQaGFzZV09XCJmbG93UGhhc2VcIlxuICAgIFthcGlUeXBlXT1cImFwaVR5cGVcIlxuICAgIFsoc3RlcCldPVwic3RlcFwiXG4gICAgKGlzVmFsaWQpPVwiaXNWYWxpZCA9ICRldmVudFwiXG4gID48L2dpby1wcy1zdGVwLWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX3NhdmVCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblNhdmUoKVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZFwiPlNhdmU8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
|
|
@@ -61,6 +61,7 @@ export class GioPolicyStudioStepFormComponent {
|
|
|
61
61
|
if (changes.flowPhase) {
|
|
62
62
|
this.context = {
|
|
63
63
|
flowPhase: this.flowPhase,
|
|
64
|
+
apiType: this.apiType,
|
|
64
65
|
};
|
|
65
66
|
this.isMessage = this.flowPhase === 'PUBLISH' || this.flowPhase === 'SUBSCRIBE';
|
|
66
67
|
}
|
|
@@ -109,7 +110,7 @@ export class GioPolicyStudioStepFormComponent {
|
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
112
|
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioStepFormComponent, deps: [{ token: i1.GioPolicyStudioService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
112
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GioPolicyStudioStepFormComponent, isStandalone: true, selector: "gio-ps-step-form", inputs: { readOnly: "readOnly", step: "step", flowPhase: "flowPhase", genericPolicy: "genericPolicy" }, outputs: { stepChange: "stepChange", isValid: "isValid" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 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\n<div class=\"settings\">\n <div class=\"settings__header\">Settings</div>\n\n <div class=\"settings__content\">\n <ng-container *ngIf=\"stepForm && (policySchema$ | async) as policySchema; else loadingTmpl\" [formGroup]=\"stepForm\">\n <mat-form-field>\n <mat-label>Description</mat-label>\n <textarea matInput formControlName=\"description\" cdkFocusInitial></textarea>\n <mat-hint>Describe how your policy works.</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Trigger condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>The condition to execute this policy. Supports Expression Language.</mat-hint>\n </mat-form-field>\n\n @if (isMessage) {\n <mat-form-field>\n <mat-label>Message trigger condition</mat-label>\n <input matInput formControlName=\"messageCondition\" />\n <mat-hint>The condition to execute this policy on message. Supports Expression Language.</mat-hint>\n </mat-form-field>\n }\n\n <gio-form-json-schema\n *ngIf=\"policySchema\"\n [jsonSchema]=\"$any(policySchema)\"\n [context]=\"context\"\n (ready)=\"onJsonSchemaReady($event)\"\n formControlName=\"configuration\"\n ></gio-form-json-schema>\n </ng-container>\n </div>\n</div>\n\n<div class=\"documentation\">\n <div class=\"documentation__header\">Documentation</div>\n\n <div class=\"documentation__content\">\n <gio-banner-warning *ngIf=\"infoBanner\">\n Prerequisite message\n <span gioBannerBody>{{ infoBanner }}</span>\n </gio-banner-warning>\n <ng-container *ngIf=\"policyDocumentation$ | async as policyDocumentation; else loadingTmpl\">\n <gio-asciidoctor [content]=\"policyDocumentation\"></gio-asciidoctor>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTmpl>\n <gio-loader></gio-loader>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;flex-direction:row;border:1px solid #d3d5dc;border-radius:8px}.settings{display:flex;flex:0 0 50%;flex-direction:column}.settings__header{border-right:1px solid #d3d5dc}.settings__content{display:flex;flex:1 1 auto;flex-direction:column;padding:16px;border-right:1px solid #d3d5dc}.documentation{display:flex;overflow:auto;flex:0 0 50%;flex-direction:column}.documentation__content{overflow:auto;flex:1 1 auto;padding:16px}.settings__header,.documentation__header{padding:16px;border-bottom:1px solid #d3d5dc;font-size:14px;font-weight:500;line-height:20px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: 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: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: GioFormJsonSchemaModule }, { kind: "component", type: i6.GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: ["jsonSchema", "context", "options"], outputs: ["ready"] }, { kind: "ngmodule", type: GioAsciidoctorModule }, { kind: "component", type: i7.GioAsciidoctorComponent, selector: "gio-asciidoctor", inputs: ["content", "src"] }, { kind: "ngmodule", type: GioLoaderModule }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }, { kind: "ngmodule", type: GioBannerModule }, { kind: "component", type: i6.GioBannerWarningComponent, selector: "gio-banner-warning" }, { kind: "directive", type: i6.GioBannerBodyDirective, selector: "[gioBannerBody]" }] }); }
|
|
113
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "18.2.0", type: GioPolicyStudioStepFormComponent, isStandalone: true, selector: "gio-ps-step-form", inputs: { readOnly: "readOnly", step: "step", flowPhase: "flowPhase", apiType: "apiType", genericPolicy: "genericPolicy" }, outputs: { stepChange: "stepChange", isValid: "isValid" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 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\n<div class=\"settings\">\n <div class=\"settings__header\">Settings</div>\n\n <div class=\"settings__content\">\n <ng-container *ngIf=\"stepForm && (policySchema$ | async) as policySchema; else loadingTmpl\" [formGroup]=\"stepForm\">\n <mat-form-field>\n <mat-label>Description</mat-label>\n <textarea matInput formControlName=\"description\" cdkFocusInitial></textarea>\n <mat-hint>Describe how your policy works.</mat-hint>\n </mat-form-field>\n\n <mat-form-field>\n <mat-label>Trigger condition</mat-label>\n <input matInput formControlName=\"condition\" />\n <mat-hint>The condition to execute this policy. Supports Expression Language.</mat-hint>\n </mat-form-field>\n\n @if (isMessage) {\n <mat-form-field>\n <mat-label>Message trigger condition</mat-label>\n <input matInput formControlName=\"messageCondition\" />\n <mat-hint>The condition to execute this policy on message. Supports Expression Language.</mat-hint>\n </mat-form-field>\n }\n\n <gio-form-json-schema\n *ngIf=\"policySchema\"\n [jsonSchema]=\"$any(policySchema)\"\n [context]=\"context\"\n (ready)=\"onJsonSchemaReady($event)\"\n formControlName=\"configuration\"\n ></gio-form-json-schema>\n </ng-container>\n </div>\n</div>\n\n<div class=\"documentation\">\n <div class=\"documentation__header\">Documentation</div>\n\n <div class=\"documentation__content\">\n <gio-banner-warning *ngIf=\"infoBanner\">\n Prerequisite message\n <span gioBannerBody>{{ infoBanner }}</span>\n </gio-banner-warning>\n <ng-container *ngIf=\"policyDocumentation$ | async as policyDocumentation; else loadingTmpl\">\n <gio-asciidoctor [content]=\"policyDocumentation\"></gio-asciidoctor>\n </ng-container>\n </div>\n</div>\n\n<ng-template #loadingTmpl>\n <gio-loader></gio-loader>\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;flex-direction:row;border:1px solid #d3d5dc;border-radius:8px}.settings{display:flex;flex:0 0 50%;flex-direction:column}.settings__header{border-right:1px solid #d3d5dc}.settings__content{display:flex;flex:1 1 auto;flex-direction:column;padding:16px;border-right:1px solid #d3d5dc}.documentation{display:flex;overflow:auto;flex:0 0 50%;flex-direction:column}.documentation__content{overflow:auto;flex:1 1 auto;padding:16px}.settings__header,.documentation__header{padding:16px;border-bottom:1px solid #d3d5dc;font-size:14px;font-weight:500;line-height:20px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }, { kind: "ngmodule", type: ReactiveFormsModule }, { 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: "ngmodule", type: MatInputModule }, { kind: "directive", type: i4.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: 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: "ngmodule", type: MatFormFieldModule }, { kind: "ngmodule", type: GioFormJsonSchemaModule }, { kind: "component", type: i6.GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: ["jsonSchema", "context", "options"], outputs: ["ready"] }, { kind: "ngmodule", type: GioAsciidoctorModule }, { kind: "component", type: i7.GioAsciidoctorComponent, selector: "gio-asciidoctor", inputs: ["content", "src"] }, { kind: "ngmodule", type: GioLoaderModule }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }, { kind: "ngmodule", type: GioBannerModule }, { kind: "component", type: i6.GioBannerWarningComponent, selector: "gio-banner-warning" }, { kind: "directive", type: i6.GioBannerBodyDirective, selector: "[gioBannerBody]" }] }); }
|
|
113
114
|
}
|
|
114
115
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImport: i0, type: GioPolicyStudioStepFormComponent, decorators: [{
|
|
115
116
|
type: Component,
|
|
@@ -130,6 +131,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
130
131
|
}], flowPhase: [{
|
|
131
132
|
type: Input,
|
|
132
133
|
args: [{ required: true }]
|
|
134
|
+
}], apiType: [{
|
|
135
|
+
type: Input,
|
|
136
|
+
args: [{ required: true }]
|
|
133
137
|
}], genericPolicy: [{
|
|
134
138
|
type: Input
|
|
135
139
|
}], stepChange: [{
|
|
@@ -137,4 +141,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.0", ngImpor
|
|
|
137
141
|
}], isValid: [{
|
|
138
142
|
type: Output
|
|
139
143
|
}] } });
|
|
140
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUd2QixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLGdEQUFnRCxDQUFDO0FBRXRGLE9BQU8sRUFBYSxRQUFRLEVBQUUseUJBQXlCLEVBQVEsUUFBUSxFQUFpQixNQUFNLGNBQWMsQ0FBQzs7Ozs7Ozs7O0FBbUI3RyxNQUFNLE9BQU8sZ0NBQWdDO0lBNkIzQyxZQUE2QixtQkFBMkM7UUFBM0Msd0JBQW1CLEdBQW5CLG1CQUFtQixDQUF3QjtRQTNCakUsYUFBUSxHQUFHLEtBQUssQ0FBQztRQVlqQixlQUFVLEdBQUcsSUFBSSxZQUFZLEVBQVEsQ0FBQztRQUd0QyxZQUFPLEdBQUcsSUFBSSxZQUFZLEVBQVcsQ0FBQztRQVVyQyxpQkFBWSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDcEMsY0FBUyxHQUFHLEtBQUssQ0FBQztJQUNrRCxDQUFDO0lBRXJFLFdBQVcsQ0FBQyxPQUFzQjtRQUN2QyxJQUFJLE9BQU8sQ0FBQyxhQUFhLEVBQUUsQ0FBQztZQUMxQixJQUFJLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsZUFBZSxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQzlGLEdBQUcsQ0FBQyxNQUFNLENBQUMsRUFBRTtvQkFDWCxJQUFJLDBCQUEwQixDQUFDLGFBQWEsQ0FBQyxNQUF1QixDQUFDLEVBQUUsQ0FBQzt3QkFDdEUsT0FBTyxNQUF1QixDQUFDO29CQUNqQyxDQUFDO29CQUNELE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUMsQ0FBQyxDQUNILENBQUM7Z0JBRUYsSUFBSSxDQUFDLG9CQUFvQixHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxzQkFBc0IsQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUM1RyxHQUFHLENBQUMsR0FBRyxDQUFDLEVBQUUsQ0FBQyxDQUFDLE9BQU8sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUFDLEdBQUcsQ0FBQyxDQUFDLEVBQ2hFLFVBQVUsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxFQUFFLENBQUMsNkJBQTZCLENBQUMsQ0FBQyxDQUNwRCxDQUFDO1lBQ0osQ0FBQztZQUNELElBQUkseUJBQXlCLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxFQUFFLENBQUM7Z0JBQ2xELElBQUksQ0FBQyxhQUFhLEdBQUcsRUFBRSxDQUFDLEVBQUUsQ0FBQyxDQUFDO2dCQUU1QixJQUFJLENBQUMsb0JBQW9CLEdBQUcsRUFBRSxDQUFDLEdBQUcsQ0FBQyxDQUFDO2dCQUVwQyxJQUFJLENBQUMsVUFBVSxHQUFHLElBQUksQ0FBQyxhQUFhLENBQUMsbUJBQW1CLENBQUM7WUFDM0QsQ0FBQztRQUNILENBQUM7UUFDRCxJQUFJLE9BQU8sQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUN0QixJQUFJLENBQUMsT0FBTyxHQUFHO2dCQUNiLFNBQVMsRUFBRSxJQUFJLENBQUMsU0FBUzthQUMxQixDQUFDO1lBQ0YsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxLQUFLLFNBQVMsSUFBSSxJQUFJLENBQUMsU0FBUyxLQUFLLFdBQVcsQ0FBQztRQUNsRixDQUFDO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxnQkFBZ0IsQ0FBQztZQUNuQyxXQUFXLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFdBQVcsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1lBQy9GLFNBQVMsRUFBRSxJQUFJLGtCQUFrQixDQUFDLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUyxFQUFFLFFBQVEsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLENBQUM7WUFDM0YsZ0JBQWdCLEVBQUUsSUFBSSxXQUFXLENBQXFCLEVBQUUsS0FBSyxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsUUFBUSxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsQ0FBQztZQUN0SCxhQUFhLEVBQUUsSUFBSSxrQkFBa0IsQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxDQUFDO1NBQ3BHLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzRSxJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7UUFDeEIsQ0FBQyxDQUFDLENBQUM7UUFFSCxJQUFJLENBQUMsUUFBUSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsQ0FBQyxDQUFDLFNBQVMsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMvRSxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxLQUFLLEtBQUssT0FBTyxDQUFDLENBQUM7UUFDdkMsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDO0lBRU0saUJBQWlCLENBQUMsT0FBZ0I7UUFDdkMsNENBQTRDO1FBQzVDLElBQUksT0FBTyxFQUFFLENBQUM7WUFDWixJQUFJLENBQUMsY0FBYyxFQUFFLENBQUM7WUFFdEIsSUFBSSxJQUFJLENBQUMsUUFBUSxFQUFFLE1BQU0sS0FBSyxPQUFPLEVBQUUsQ0FBQztnQkFDdEMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUM7WUFDMUIsQ0FBQztRQUNILENBQUM7SUFDSCxDQUFDO0lBRU0sY0FBYztRQUNuQixJQUFJLGFBQWEsR0FBRyxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxlQUFlLENBQUMsRUFBRSxLQUFLLENBQUM7UUFFL0QsSUFBSSx5QkFBeUIsQ0FBQyxJQUFJLENBQUMsYUFBYSxDQUFDLEVBQUUsQ0FBQztZQUNsRCxhQUFhLEdBQUcsRUFBRSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsYUFBYSxDQUFDLG1CQUFtQixFQUFFLENBQUM7UUFDbEYsQ0FBQztRQUVELElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO1lBQ25CLEdBQUcsSUFBSSxDQUFDLElBQUk7WUFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSztZQUNyRCxTQUFTLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsV0FBVyxDQUFDLEVBQUUsS0FBSyxJQUFJLFNBQVM7WUFDOUQsZ0JBQWdCLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsa0JBQWtCLENBQUMsRUFBRSxLQUFLLElBQUksU0FBUztZQUM1RSxhQUFhO1NBQ2QsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs4R0FuSFUsZ0NBQWdDO2tHQUFoQyxnQ0FBZ0Msb1FDcEQ3QywrakZBdUVBLDQyQkRoQ0ksWUFBWSx1TEFDWixtQkFBbUIsbTJCQUNuQixjQUFjLDhzQkFDZCxrQkFBa0IsOEJBQ2xCLHVCQUF1Qiw4TEFDdkIsb0JBQW9CLGdKQUNwQixlQUFlLDBHQUNmLGVBQWU7OzJGQU1OLGdDQUFnQztrQkFoQjVDLFNBQVM7aUNBQ0ksSUFBSSxXQUNQO3dCQUNQLFlBQVk7d0JBQ1osbUJBQW1CO3dCQUNuQixjQUFjO3dCQUNkLGtCQUFrQjt3QkFDbEIsdUJBQXVCO3dCQUN2QixvQkFBb0I7d0JBQ3BCLGVBQWU7d0JBQ2YsZUFBZTtxQkFDaEIsWUFDUyxrQkFBa0I7MkZBTXJCLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsU0FBUztzQkFEZixLQUFLO3VCQUFDLEVBQUUsUUFBUSxFQUFFLElBQUksRUFBRTtnQkFJbEIsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxVQUFVO3NCQURoQixNQUFNO2dCQUlBLE9BQU87c0JBRGIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgRm9ybUNvbnRyb2wsIFJlYWN0aXZlRm9ybXNNb2R1bGUsIFVudHlwZWRGb3JtQ29udHJvbCwgVW50eXBlZEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IGNhdGNoRXJyb3IsIG1hcCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSwgb2YsIFN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCB7XG4gIEdpb0Jhbm5lck1vZHVsZSxcbiAgR2lvRm9ybUpzb25TY2hlbWFDb21wb25lbnQsXG4gIEdpb0Zvcm1Kc29uU2NoZW1hTW9kdWxlLFxuICBHaW9Kc29uU2NoZW1hLFxuICBHaW9Kc29uU2NoZW1hQ29udGV4dCxcbiAgR2lvTG9hZGVyTW9kdWxlLFxufSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuaW1wb3J0IHsgTWF0Rm9ybUZpZWxkTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZm9ybS1maWVsZCc7XG5pbXBvcnQgeyBNYXRJbnB1dE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2lucHV0JztcbmltcG9ydCB7IEdpb0FzY2lpZG9jdG9yTW9kdWxlIH0gZnJvbSAnQGdyYXZpdGVlL3VpLXBhcnRpY2xlcy1hbmd1bGFyL2dpby1hc2NpaWRvY3Rvcic7XG5cbmltcG9ydCB7IEZsb3dQaGFzZSwgaXNQb2xpY3ksIGlzU2hhcmVkUG9saWN5R3JvdXBQb2xpY3ksIFN0ZXAsIHRvUG9saWN5LCBHZW5lcmljUG9saWN5IH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9wb2xpY3ktc3R1ZGlvL2dpby1wb2xpY3ktc3R1ZGlvLnNlcnZpY2UnO1xuXG5AQ29tcG9uZW50KHtcbiAgc3RhbmRhbG9uZTogdHJ1ZSxcbiAgaW1wb3J0czogW1xuICAgIENvbW1vbk1vZHVsZSxcbiAgICBSZWFjdGl2ZUZvcm1zTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdEZvcm1GaWVsZE1vZHVsZSxcbiAgICBHaW9Gb3JtSnNvblNjaGVtYU1vZHVsZSxcbiAgICBHaW9Bc2NpaWRvY3Rvck1vZHVsZSxcbiAgICBHaW9Mb2FkZXJNb2R1bGUsXG4gICAgR2lvQmFubmVyTW9kdWxlLFxuICBdLFxuICBzZWxlY3RvcjogJ2dpby1wcy1zdGVwLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvU3RlcEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHJlYWRPbmx5ID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXA/OiBTdGVwO1xuXG4gIEBJbnB1dCh7IHJlcXVpcmVkOiB0cnVlIH0pXG4gIHB1YmxpYyBmbG93UGhhc2UhOiBGbG93UGhhc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdlbmVyaWNQb2xpY3khOiBHZW5lcmljUG9saWN5O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc3RlcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGlzVmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHBvbGljeVNjaGVtYSQ/OiBPYnNlcnZhYmxlPEdpb0pzb25TY2hlbWEgfCBudWxsIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIHBvbGljeURvY3VtZW50YXRpb24kPzogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwdWJsaWMgaW5mb0Jhbm5lcj86IHN0cmluZztcblxuICBwdWJsaWMgc3RlcEZvcm0/OiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb250ZXh0PzogR2lvSnNvblNjaGVtYUNvbnRleHQ7XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgaXNNZXNzYWdlID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcG9saWN5U3R1ZGlvU2VydmljZTogR2lvUG9saWN5U3R1ZGlvU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmdlbmVyaWNQb2xpY3kpIHtcbiAgICAgIGlmIChpc1BvbGljeSh0aGlzLmdlbmVyaWNQb2xpY3kpKSB7XG4gICAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lTY2hlbWEodG9Qb2xpY3kodGhpcy5nZW5lcmljUG9saWN5KSkucGlwZShcbiAgICAgICAgICBtYXAoc2NoZW1hID0+IHtcbiAgICAgICAgICAgIGlmIChHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudC5pc0Rpc3BsYXlhYmxlKHNjaGVtYSBhcyBHaW9Kc29uU2NoZW1hKSkge1xuICAgICAgICAgICAgICByZXR1cm4gc2NoZW1hIGFzIEdpb0pzb25TY2hlbWE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5wb2xpY3lEb2N1bWVudGF0aW9uJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lEb2N1bWVudGF0aW9uKHRvUG9saWN5KHRoaXMuZ2VuZXJpY1BvbGljeSkpLnBpcGUoXG4gICAgICAgICAgbWFwKGRvYyA9PiAoaXNFbXB0eShkb2MpID8gJ05vIGRvY3VtZW50YXRpb24gYXZhaWxhYmxlLicgOiBkb2MpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCdObyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZS4nKSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeSh0aGlzLmdlbmVyaWNQb2xpY3kpKSB7XG4gICAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IG9mKHt9KTtcblxuICAgICAgICB0aGlzLnBvbGljeURvY3VtZW50YXRpb24kID0gb2YoJyAnKTtcblxuICAgICAgICB0aGlzLmluZm9CYW5uZXIgPSB0aGlzLmdlbmVyaWNQb2xpY3kucHJlcmVxdWlzaXRlTWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZmxvd1BoYXNlKSB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAgIGZsb3dQaGFzZTogdGhpcy5mbG93UGhhc2UsXG4gICAgICB9O1xuICAgICAgdGhpcy5pc01lc3NhZ2UgPSB0aGlzLmZsb3dQaGFzZSA9PT0gJ1BVQkxJU0gnIHx8IHRoaXMuZmxvd1BoYXNlID09PSAnU1VCU0NSSUJFJztcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0U3RlcEZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0ZXBGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcEZvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgICBkZXNjcmlwdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0ZXA/LmRlc2NyaXB0aW9uLCBkaXNhYmxlZDogdGhpcy5yZWFkT25seSB9KSxcbiAgICAgIGNvbmRpdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0ZXA/LmNvbmRpdGlvbiwgZGlzYWJsZWQ6IHRoaXMucmVhZE9ubHkgfSksXG4gICAgICBtZXNzYWdlQ29uZGl0aW9uOiBuZXcgRm9ybUNvbnRyb2w8c3RyaW5nIHwgdW5kZWZpbmVkPih7IHZhbHVlOiB0aGlzLnN0ZXA/Lm1lc3NhZ2VDb25kaXRpb24sIGRpc2FibGVkOiB0aGlzLnJlYWRPbmx5IH0pLFxuICAgICAgY29uZmlndXJhdGlvbjogbmV3IFVudHlwZWRGb3JtQ29udHJvbCh7IHZhbHVlOiB0aGlzLnN0ZXA/LmNvbmZpZ3VyYXRpb24sIGRpc2FibGVkOiB0aGlzLnJlYWRPbmx5IH0pLFxuICAgIH0pO1xuXG4gICAgdGhpcy5zdGVwRm9ybS52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUoKCkgPT4ge1xuICAgICAgdGhpcy5lbWl0U3RlcENoYW5nZSgpO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGVwRm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAgICAgIHRoaXMuaXNWYWxpZC5lbWl0KHZhbGlkID09PSAnVkFMSUQnKTtcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkpzb25TY2hlbWFSZWFkeShpc1JlYWR5OiBib29sZWFuKSB7XG4gICAgLy8gV2hlbiByZWFkeSBhbmQgaWYgdGhlIGZvcm0gaXMgdmFsaWQsIGVtaXRcbiAgICBpZiAoaXNSZWFkeSkge1xuICAgICAgdGhpcy5lbWl0U3RlcENoYW5nZSgpO1xuXG4gICAgICBpZiAodGhpcy5zdGVwRm9ybT8uc3RhdHVzID09PSAnVkFMSUQnKSB7XG4gICAgICAgIHRoaXMuaXNWYWxpZC5lbWl0KHRydWUpO1xuICAgICAgfVxuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBlbWl0U3RlcENoYW5nZSgpOiB2b2lkIHtcbiAgICBsZXQgY29uZmlndXJhdGlvbiA9IHRoaXMuc3RlcEZvcm0/LmdldCgnY29uZmlndXJhdGlvbicpPy52YWx1ZTtcblxuICAgIGlmIChpc1NoYXJlZFBvbGljeUdyb3VwUG9saWN5KHRoaXMuZ2VuZXJpY1BvbGljeSkpIHtcbiAgICAgIGNvbmZpZ3VyYXRpb24gPSB7IHNoYXJlZFBvbGljeUdyb3VwSWQ6IHRoaXMuZ2VuZXJpY1BvbGljeS5zaGFyZWRQb2xpY3lHcm91cElkIH07XG4gICAgfVxuXG4gICAgdGhpcy5zdGVwQ2hhbmdlLmVtaXQoe1xuICAgICAgLi4udGhpcy5zdGVwLFxuICAgICAgZGVzY3JpcHRpb246IHRoaXMuc3RlcEZvcm0/LmdldCgnZGVzY3JpcHRpb24nKT8udmFsdWUsXG4gICAgICBjb25kaXRpb246IHRoaXMuc3RlcEZvcm0/LmdldCgnY29uZGl0aW9uJyk/LnZhbHVlID8/IHVuZGVmaW5lZCxcbiAgICAgIG1lc3NhZ2VDb25kaXRpb246IHRoaXMuc3RlcEZvcm0/LmdldCgnbWVzc2FnZUNvbmRpdGlvbicpPy52YWx1ZSA/PyB1bmRlZmluZWQsXG4gICAgICBjb25maWd1cmF0aW9uLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAgICBcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgICBcbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICAgIFxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cblxuPGRpdiBjbGFzcz1cInNldHRpbmdzXCI+XG4gIDxkaXYgY2xhc3M9XCJzZXR0aW5nc19faGVhZGVyXCI+U2V0dGluZ3M8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3NfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwic3RlcEZvcm0gJiYgKHBvbGljeVNjaGVtYSQgfCBhc3luYykgYXMgcG9saWN5U2NoZW1hOyBlbHNlIGxvYWRpbmdUbXBsXCIgW2Zvcm1Hcm91cF09XCJzdGVwRm9ybVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICA8bWF0LWxhYmVsPkRlc2NyaXB0aW9uPC9tYXQtbGFiZWw+XG4gICAgICAgIDx0ZXh0YXJlYSBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIGNka0ZvY3VzSW5pdGlhbD48L3RleHRhcmVhPlxuICAgICAgICA8bWF0LWhpbnQ+RGVzY3JpYmUgaG93IHlvdXIgcG9saWN5IHdvcmtzLjwvbWF0LWhpbnQ+XG4gICAgICA8L21hdC1mb3JtLWZpZWxkPlxuXG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+VHJpZ2dlciBjb25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgICAgPGlucHV0IG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImNvbmRpdGlvblwiIC8+XG4gICAgICAgIDxtYXQtaGludD5UaGUgY29uZGl0aW9uIHRvIGV4ZWN1dGUgdGhpcyBwb2xpY3kuIFN1cHBvcnRzIEV4cHJlc3Npb24gTGFuZ3VhZ2UuPC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIEBpZiAoaXNNZXNzYWdlKSB7XG4gICAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICA8bWF0LWxhYmVsPk1lc3NhZ2UgdHJpZ2dlciBjb25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwibWVzc2FnZUNvbmRpdGlvblwiIC8+XG4gICAgICAgICAgPG1hdC1oaW50PlRoZSBjb25kaXRpb24gdG8gZXhlY3V0ZSB0aGlzIHBvbGljeSBvbiBtZXNzYWdlLiBTdXBwb3J0cyBFeHByZXNzaW9uIExhbmd1YWdlLjwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICB9XG5cbiAgICAgIDxnaW8tZm9ybS1qc29uLXNjaGVtYVxuICAgICAgICAqbmdJZj1cInBvbGljeVNjaGVtYVwiXG4gICAgICAgIFtqc29uU2NoZW1hXT1cIiRhbnkocG9saWN5U2NoZW1hKVwiXG4gICAgICAgIFtjb250ZXh0XT1cImNvbnRleHRcIlxuICAgICAgICAocmVhZHkpPVwib25Kc29uU2NoZW1hUmVhZHkoJGV2ZW50KVwiXG4gICAgICAgIGZvcm1Db250cm9sTmFtZT1cImNvbmZpZ3VyYXRpb25cIlxuICAgICAgPjwvZ2lvLWZvcm0tanNvbi1zY2hlbWE+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uX19oZWFkZXJcIj5Eb2N1bWVudGF0aW9uPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25fX2NvbnRlbnRcIj5cbiAgICA8Z2lvLWJhbm5lci13YXJuaW5nICpuZ0lmPVwiaW5mb0Jhbm5lclwiPlxuICAgICAgUHJlcmVxdWlzaXRlIG1lc3NhZ2VcbiAgICAgIDxzcGFuIGdpb0Jhbm5lckJvZHk+e3sgaW5mb0Jhbm5lciB9fTwvc3Bhbj5cbiAgICA8L2dpby1iYW5uZXItd2FybmluZz5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9saWN5RG9jdW1lbnRhdGlvbiQgfCBhc3luYyBhcyBwb2xpY3lEb2N1bWVudGF0aW9uOyBlbHNlIGxvYWRpbmdUbXBsXCI+XG4gICAgICA8Z2lvLWFzY2lpZG9jdG9yIFtjb250ZW50XT1cInBvbGljeURvY3VtZW50YXRpb25cIj48L2dpby1hc2NpaWRvY3Rvcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVG1wbD5cbiAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
|
|
144
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxtQkFBbUIsRUFBRSxrQkFBa0IsRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hHLE9BQU8sRUFBRSxVQUFVLEVBQUUsR0FBRyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzVELE9BQU8sRUFBYyxFQUFFLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9DLE9BQU8sRUFDTCxlQUFlLEVBQ2YsMEJBQTBCLEVBQzFCLHVCQUF1QixFQUd2QixlQUFlLEdBQ2hCLE1BQU0sZ0NBQWdDLENBQUM7QUFDeEMsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUNqQyxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFDL0MsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sOEJBQThCLENBQUM7QUFDbEUsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxN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QUNTLGtCQUFrQjsyRkFNckIsUUFBUTtzQkFEZCxLQUFLO2dCQUlDLElBQUk7c0JBRFYsS0FBSztnQkFJQyxTQUFTO3NCQURmLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFO2dCQUlsQixhQUFhO3NCQURuQixLQUFLO2dCQUlDLFVBQVU7c0JBRGhCLE1BQU07Z0JBSUEsT0FBTztzQkFEYixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIE9uSW5pdCwgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBGb3JtQ29udHJvbCwgUmVhY3RpdmVGb3Jtc01vZHVsZSwgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgY2F0Y2hFcnJvciwgbWFwLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiwgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHtcbiAgR2lvQmFubmVyTW9kdWxlLFxuICBHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudCxcbiAgR2lvRm9ybUpzb25TY2hlbWFNb2R1bGUsXG4gIEdpb0pzb25TY2hlbWEsXG4gIEdpb0pzb25TY2hlbWFDb250ZXh0LFxuICBHaW9Mb2FkZXJNb2R1bGUsXG59IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XG5pbXBvcnQgeyBNYXRGb3JtRmllbGRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9mb3JtLWZpZWxkJztcbmltcG9ydCB7IE1hdElucHV0TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvaW5wdXQnO1xuaW1wb3J0IHsgR2lvQXNjaWlkb2N0b3JNb2R1bGUgfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXIvZ2lvLWFzY2lpZG9jdG9yJztcblxuaW1wb3J0IHsgRmxvd1BoYXNlLCBpc1BvbGljeSwgaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeSwgU3RlcCwgdG9Qb2xpY3ksIEdlbmVyaWNQb2xpY3ksIEFwaVR5cGUgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHsgR2lvUG9saWN5U3R1ZGlvU2VydmljZSB9IGZyb20gJy4uLy4uL3BvbGljeS1zdHVkaW8vZ2lvLXBvbGljeS1zdHVkaW8uc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICBzdGFuZGFsb25lOiB0cnVlLFxuICBpbXBvcnRzOiBbXG4gICAgQ29tbW9uTW9kdWxlLFxuICAgIFJlYWN0aXZlRm9ybXNNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIEdpb0Zvcm1Kc29uU2NoZW1hTW9kdWxlLFxuICAgIEdpb0FzY2lpZG9jdG9yTW9kdWxlLFxuICAgIEdpb0xvYWRlck1vZHVsZSxcbiAgICBHaW9CYW5uZXJNb2R1bGUsXG4gIF0sXG4gIHNlbGVjdG9yOiAnZ2lvLXBzLXN0ZXAtZm9ybScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9TdGVwRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcywgT25Jbml0LCBPbkRlc3Ryb3kge1xuICBASW5wdXQoKVxuICBwdWJsaWMgcmVhZE9ubHkgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc3RlcD86IFN0ZXA7XG5cbiAgQElucHV0KHsgcmVxdWlyZWQ6IHRydWUgfSlcbiAgcHVibGljIGZsb3dQaGFzZSE6IEZsb3dQaGFzZTtcblxuICBASW5wdXQoeyByZXF1aXJlZDogdHJ1ZSB9KVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGdlbmVyaWNQb2xpY3khOiBHZW5lcmljUG9saWN5O1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgc3RlcENoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8U3RlcD4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGlzVmFsaWQgPSBuZXcgRXZlbnRFbWl0dGVyPGJvb2xlYW4+KCk7XG5cbiAgcHVibGljIHBvbGljeVNjaGVtYSQ/OiBPYnNlcnZhYmxlPEdpb0pzb25TY2hlbWEgfCBudWxsIHwgdW5kZWZpbmVkPjtcbiAgcHVibGljIHBvbGljeURvY3VtZW50YXRpb24kPzogT2JzZXJ2YWJsZTxzdHJpbmc+O1xuICBwdWJsaWMgaW5mb0Jhbm5lcj86IHN0cmluZztcblxuICBwdWJsaWMgc3RlcEZvcm0/OiBVbnR5cGVkRm9ybUdyb3VwO1xuXG4gIHB1YmxpYyBjb250ZXh0PzogR2lvSnNvblNjaGVtYUNvbnRleHQ7XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBwdWJsaWMgaXNNZXNzYWdlID0gZmFsc2U7XG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgcG9saWN5U3R1ZGlvU2VydmljZTogR2lvUG9saWN5U3R1ZGlvU2VydmljZSkge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmdlbmVyaWNQb2xpY3kpIHtcbiAgICAgIGlmIChpc1BvbGljeSh0aGlzLmdlbmVyaWNQb2xpY3kpKSB7XG4gICAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lTY2hlbWEodG9Qb2xpY3kodGhpcy5nZW5lcmljUG9saWN5KSkucGlwZShcbiAgICAgICAgICBtYXAoc2NoZW1hID0+IHtcbiAgICAgICAgICAgIGlmIChHaW9Gb3JtSnNvblNjaGVtYUNvbXBvbmVudC5pc0Rpc3BsYXlhYmxlKHNjaGVtYSBhcyBHaW9Kc29uU2NoZW1hKSkge1xuICAgICAgICAgICAgICByZXR1cm4gc2NoZW1hIGFzIEdpb0pzb25TY2hlbWE7XG4gICAgICAgICAgICB9XG4gICAgICAgICAgICByZXR1cm4ge307XG4gICAgICAgICAgfSksXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5wb2xpY3lEb2N1bWVudGF0aW9uJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lEb2N1bWVudGF0aW9uKHRvUG9saWN5KHRoaXMuZ2VuZXJpY1BvbGljeSkpLnBpcGUoXG4gICAgICAgICAgbWFwKGRvYyA9PiAoaXNFbXB0eShkb2MpID8gJ05vIGRvY3VtZW50YXRpb24gYXZhaWxhYmxlLicgOiBkb2MpKSxcbiAgICAgICAgICBjYXRjaEVycm9yKCgpID0+IG9mKCdObyBkb2N1bWVudGF0aW9uIGF2YWlsYWJsZS4nKSksXG4gICAgICAgICk7XG4gICAgICB9XG4gICAgICBpZiAoaXNTaGFyZWRQb2xpY3lHcm91cFBvbGljeSh0aGlzLmdlbmVyaWNQb2xpY3kpKSB7XG4gICAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IG9mKHt9KTtcblxuICAgICAgICB0aGlzLnBvbGljeURvY3VtZW50YXRpb24kID0gb2YoJyAnKTtcblxuICAgICAgICB0aGlzLmluZm9CYW5uZXIgPSB0aGlzLmdlbmVyaWNQb2xpY3kucHJlcmVxdWlzaXRlTWVzc2FnZTtcbiAgICAgIH1cbiAgICB9XG4gICAgaWYgKGNoYW5nZXMuZmxvd1BoYXNlKSB7XG4gICAgICB0aGlzLmNvbnRleHQgPSB7XG4gICAgICAgIGZsb3dQaGFzZTogdGhpcy5mbG93UGhhc2UsXG4gICAgICAgIGFwaVR5cGU6IHRoaXMuYXBpVHlwZSxcbiAgICAgIH07XG4gICAgICB0aGlzLmlzTWVzc2FnZSA9IHRoaXMuZmxvd1BoYXNlID09PSAnUFVCTElTSCcgfHwgdGhpcy5mbG93UGhhc2UgPT09ICdTVUJTQ1JJQkUnO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICB0aGlzLmluaXRTdGVwRm9ybSgpO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHJpdmF0ZSBpbml0U3RlcEZvcm0oKTogdm9pZCB7XG4gICAgdGhpcy5zdGVwRm9ybSA9IG5ldyBVbnR5cGVkRm9ybUdyb3VwKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuc3RlcD8uZGVzY3JpcHRpb24sIGRpc2FibGVkOiB0aGlzLnJlYWRPbmx5IH0pLFxuICAgICAgY29uZGl0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuc3RlcD8uY29uZGl0aW9uLCBkaXNhYmxlZDogdGhpcy5yZWFkT25seSB9KSxcbiAgICAgIG1lc3NhZ2VDb25kaXRpb246IG5ldyBGb3JtQ29udHJvbDxzdHJpbmcgfCB1bmRlZmluZWQ+KHsgdmFsdWU6IHRoaXMuc3RlcD8ubWVzc2FnZUNvbmRpdGlvbiwgZGlzYWJsZWQ6IHRoaXMucmVhZE9ubHkgfSksXG4gICAgICBjb25maWd1cmF0aW9uOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKHsgdmFsdWU6IHRoaXMuc3RlcD8uY29uZmlndXJhdGlvbiwgZGlzYWJsZWQ6IHRoaXMucmVhZE9ubHkgfSksXG4gICAgfSk7XG5cbiAgICB0aGlzLnN0ZXBGb3JtLnZhbHVlQ2hhbmdlcy5waXBlKHRha2VVbnRpbCh0aGlzLnVuc3Vic2NyaWJlJCkpLnN1YnNjcmliZSgoKSA9PiB7XG4gICAgICB0aGlzLmVtaXRTdGVwQ2hhbmdlKCk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0ZXBGb3JtLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUodmFsaWQgPT4ge1xuICAgICAgdGhpcy5pc1ZhbGlkLmVtaXQodmFsaWQgPT09ICdWQUxJRCcpO1xuICAgIH0pO1xuICB9XG5cbiAgcHVibGljIG9uSnNvblNjaGVtYVJlYWR5KGlzUmVhZHk6IGJvb2xlYW4pIHtcbiAgICAvLyBXaGVuIHJlYWR5IGFuZCBpZiB0aGUgZm9ybSBpcyB2YWxpZCwgZW1pdFxuICAgIGlmIChpc1JlYWR5KSB7XG4gICAgICB0aGlzLmVtaXRTdGVwQ2hhbmdlKCk7XG5cbiAgICAgIGlmICh0aGlzLnN0ZXBGb3JtPy5zdGF0dXMgPT09ICdWQUxJRCcpIHtcbiAgICAgICAgdGhpcy5pc1ZhbGlkLmVtaXQodHJ1ZSk7XG4gICAgICB9XG4gICAgfVxuICB9XG5cbiAgcHVibGljIGVtaXRTdGVwQ2hhbmdlKCk6IHZvaWQge1xuICAgIGxldCBjb25maWd1cmF0aW9uID0gdGhpcy5zdGVwRm9ybT8uZ2V0KCdjb25maWd1cmF0aW9uJyk/LnZhbHVlO1xuXG4gICAgaWYgKGlzU2hhcmVkUG9saWN5R3JvdXBQb2xpY3kodGhpcy5nZW5lcmljUG9saWN5KSkge1xuICAgICAgY29uZmlndXJhdGlvbiA9IHsgc2hhcmVkUG9saWN5R3JvdXBJZDogdGhpcy5nZW5lcmljUG9saWN5LnNoYXJlZFBvbGljeUdyb3VwSWQgfTtcbiAgICB9XG5cbiAgICB0aGlzLnN0ZXBDaGFuZ2UuZW1pdCh7XG4gICAgICAuLi50aGlzLnN0ZXAsXG4gICAgICBkZXNjcmlwdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdkZXNjcmlwdGlvbicpPy52YWx1ZSxcbiAgICAgIGNvbmRpdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdjb25kaXRpb24nKT8udmFsdWUgPz8gdW5kZWZpbmVkLFxuICAgICAgbWVzc2FnZUNvbmRpdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdtZXNzYWdlQ29uZGl0aW9uJyk/LnZhbHVlID8/IHVuZGVmaW5lZCxcbiAgICAgIGNvbmZpZ3VyYXRpb24sXG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwic2V0dGluZ3NcIj5cbiAgPGRpdiBjbGFzcz1cInNldHRpbmdzX19oZWFkZXJcIj5TZXR0aW5nczwvZGl2PlxuXG4gIDxkaXYgY2xhc3M9XCJzZXR0aW5nc19fY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwRm9ybSAmJiAocG9saWN5U2NoZW1hJCB8IGFzeW5jKSBhcyBwb2xpY3lTY2hlbWE7IGVsc2UgbG9hZGluZ1RtcGxcIiBbZm9ybUdyb3VwXT1cInN0ZXBGb3JtXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgIDxtYXQtbGFiZWw+RGVzY3JpcHRpb248L21hdC1sYWJlbD5cbiAgICAgICAgPHRleHRhcmVhIG1hdElucHV0IGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgY2RrRm9jdXNJbml0aWFsPjwvdGV4dGFyZWE+XG4gICAgICAgIDxtYXQtaGludD5EZXNjcmliZSBob3cgeW91ciBwb2xpY3kgd29ya3MuPC9tYXQtaGludD5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgIDxtYXQtZm9ybS1maWVsZD5cbiAgICAgICAgPG1hdC1sYWJlbD5UcmlnZ2VyIGNvbmRpdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29uZGl0aW9uXCIgLz5cbiAgICAgICAgPG1hdC1oaW50PlRoZSBjb25kaXRpb24gdG8gZXhlY3V0ZSB0aGlzIHBvbGljeS4gU3VwcG9ydHMgRXhwcmVzc2lvbiBMYW5ndWFnZS48L21hdC1oaW50PlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgQGlmIChpc01lc3NhZ2UpIHtcbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+TWVzc2FnZSB0cmlnZ2VyIGNvbmRpdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJtZXNzYWdlQ29uZGl0aW9uXCIgLz5cbiAgICAgICAgICA8bWF0LWhpbnQ+VGhlIGNvbmRpdGlvbiB0byBleGVjdXRlIHRoaXMgcG9saWN5IG9uIG1lc3NhZ2UuIFN1cHBvcnRzIEV4cHJlc3Npb24gTGFuZ3VhZ2UuPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIH1cblxuICAgICAgPGdpby1mb3JtLWpzb24tc2NoZW1hXG4gICAgICAgICpuZ0lmPVwicG9saWN5U2NoZW1hXCJcbiAgICAgICAgW2pzb25TY2hlbWFdPVwiJGFueShwb2xpY3lTY2hlbWEpXCJcbiAgICAgICAgW2NvbnRleHRdPVwiY29udGV4dFwiXG4gICAgICAgIChyZWFkeSk9XCJvbkpzb25TY2hlbWFSZWFkeSgkZXZlbnQpXCJcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY29uZmlndXJhdGlvblwiXG4gICAgICA+PC9naW8tZm9ybS1qc29uLXNjaGVtYT5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25fX2hlYWRlclwiPkRvY3VtZW50YXRpb248L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRhdGlvbl9fY29udGVudFwiPlxuICAgIDxnaW8tYmFubmVyLXdhcm5pbmcgKm5nSWY9XCJpbmZvQmFubmVyXCI+XG4gICAgICBQcmVyZXF1aXNpdGUgbWVzc2FnZVxuICAgICAgPHNwYW4gZ2lvQmFubmVyQm9keT57eyBpbmZvQmFubmVyIH19PC9zcGFuPlxuICAgIDwvZ2lvLWJhbm5lci13YXJuaW5nPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2xpY3lEb2N1bWVudGF0aW9uJCB8IGFzeW5jIGFzIHBvbGljeURvY3VtZW50YXRpb247IGVsc2UgbG9hZGluZ1RtcGxcIj5cbiAgICAgIDxnaW8tYXNjaWlkb2N0b3IgW2NvbnRlbnRdPVwicG9saWN5RG9jdW1lbnRhdGlvblwiPjwvZ2lvLWFzY2lpZG9jdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdUbXBsPlxuICA8Z2lvLWxvYWRlcj48L2dpby1sb2FkZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
|