@gravitee/ui-policy-studio-angular 7.20.0 → 7.21.0-improve-btn-d6b8d6c

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.
Files changed (22) hide show
  1. package/esm2020/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +3 -3
  2. package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +11 -3
  3. package/esm2020/lib/components/step-form/gio-ps-step-form.component.mjs +5 -3
  4. package/esm2020/lib/gio-policy-studio.component.mjs +2 -2
  5. package/esm2020/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.mjs +3 -1
  6. package/esm2020/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.mjs +3 -1
  7. package/esm2020/testing/lib/components/step-form/gio-ps-step-form.harness.mjs +6 -1
  8. package/esm2020/testing/lib/models/flow/Flow.fixture.mjs +41 -1
  9. package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs +42 -2
  10. package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
  11. package/fesm2015/gravitee-ui-policy-studio-angular.mjs +24 -15
  12. package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
  13. package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs +50 -1
  14. package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
  15. package/fesm2020/gravitee-ui-policy-studio-angular.mjs +18 -8
  16. package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
  17. package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +1 -0
  18. package/package.json +1 -1
  19. package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +1 -0
  20. package/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.d.ts +1 -0
  21. package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +2 -0
  22. package/testing/lib/models/flow/Flow.fixture.d.ts +2 -0
@@ -98,10 +98,10 @@ export class GioPolicyStudioDetailsPhaseComponent {
98
98
  }
99
99
  }
100
100
  GioPolicyStudioDetailsPhaseComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioDetailsPhaseComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
101
- GioPolicyStudioDetailsPhaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioDetailsPhaseComponent, selector: "gio-ps-flow-details-phase", inputs: { steps: "steps", name: "name", description: "description", startConnector: "startConnector", endConnector: "endConnector", apiType: "apiType", policies: "policies", policyExecutionPhase: "policyExecutionPhase" }, outputs: { stepsChange: "stepsChange" }, 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=\"header\">\n <span class=\"header__name\">\n {{ name }}\n </span>\n <span class=\"header__description\">\n {{ description }}\n </span>\n\n <span *ngIf=\"isDisabled\" class=\"header__infoIcon\" matTooltip=\"Policies might not be evaluated\" matTooltipPosition=\"before\">\n <mat-icon svgIcon=\"gio:info\"></mat-icon>\n </span>\n</div>\n\n<div *ngIf=\"!isDisabled; else disabledPhaseContent\" class=\"wrapper\">\n <div class=\"content\">\n <div *ngFor=\"let stepVM of stepsVM; first as isFirst\" class=\"content__step\">\n <!-- Connector -->\n <ng-container *ngIf=\"stepVM.type === 'connectors'\">\n <div class=\"content__step__connector\">\n <span *ngFor=\"let connector of stepVM.connectors\" class=\"gio-badge-white content__step__connector__badge\">\n <mat-icon *ngIf=\"connector.icon\" [svgIcon]=\"connector.icon\" class=\"content__step__connector__badge__icon\"></mat-icon>\n {{ connector.name }}\n </span>\n </div>\n\n <!-- Add policy button after first connector -->\n <ng-container *ngIf=\"isFirst\">\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(-1)\"><mat-icon svgIcon=\"gio:plus\"></mat-icon></button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </ng-container>\n\n <!-- Policy -->\n <ng-container *ngIf=\"stepVM.type === 'step'\">\n <gio-ps-flow-details-phase-step\n class=\"content__step__step\"\n [policies]=\"policies\"\n [step]=\"stepVM.step\"\n (stepChange)=\"onStepChange(stepVM.index, $event)\"\n (deleted)=\"onStepDeleted(stepVM.index)\"\n ></gio-ps-flow-details-phase-step>\n\n <!-- Add policy button -->\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(stepVM.index)\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon>\n </button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #disabledPhaseContent>\n <div class=\"disabledContent\">\n <gio-banner-warning>\n Policies might not be evaluated\n <span gioBannerBody> Your API entrypoints don't apply on this phase. To enable them, add an entrypoint supporting this phase. </span>\n </gio-banner-warning>\n </div>\n</ng-template>\n", styles: [":host{display:flex;overflow:hidden;min-height:199px;flex-direction:column;padding-top:16px;border:1px solid #d3d5dc;border-radius:8px;background-color:#fff}.header{display:flex;padding:0 16px;gap:8px}.header__name{flex:1 1 auto;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.header__description{flex:1 1 auto;font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}.wrapper{position:relative;flex:1 1 auto;overflow-y:auto}.content{position:absolute;display:flex;width:max-content;height:100%;align-items:center;padding:0 16px}.content__step{display:flex;align-items:center}.content__step__connector{display:flex;flex-direction:column;gap:8px}.content__step__connector__badge{border:1px solid #876fec;border-radius:16px}.content__step__connector__badge__icon{margin-right:4px}.content__step__rightArrow{width:16px;height:16px;margin:0 8px;color:#b4b5bb}.disabledContent{display:flex;flex-direction:column;padding:16px}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioPolicyStudioDetailsPhaseStepComponent, selector: "gio-ps-flow-details-phase-step", inputs: ["step", "policies"], outputs: ["stepChange", "deleted"] }, { type: i5.GioBannerWarningComponent, selector: "gio-banner-warning" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.GioBannerBodyDirective, selector: "[gioBannerBody]" }] });
101
+ GioPolicyStudioDetailsPhaseComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioDetailsPhaseComponent, selector: "gio-ps-flow-details-phase", inputs: { steps: "steps", name: "name", description: "description", startConnector: "startConnector", endConnector: "endConnector", apiType: "apiType", policies: "policies", policyExecutionPhase: "policyExecutionPhase" }, outputs: { stepsChange: "stepsChange" }, 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=\"header\">\n <span class=\"header__name\">\n {{ name }}\n </span>\n <span class=\"header__description\">\n {{ description }}\n </span>\n\n <span *ngIf=\"isDisabled\" class=\"header__infoIcon\" matTooltip=\"Policies might not be evaluated\" matTooltipPosition=\"before\">\n <mat-icon svgIcon=\"gio:info\"></mat-icon>\n </span>\n</div>\n\n<div *ngIf=\"!isDisabled; else disabledPhaseContent\" class=\"wrapper\">\n <div class=\"content\">\n <div *ngFor=\"let stepVM of stepsVM; first as isFirst\" class=\"content__step\">\n <!-- Connector -->\n <ng-container *ngIf=\"stepVM.type === 'connectors'\">\n <div class=\"content__step__connector\">\n <span *ngFor=\"let connector of stepVM.connectors\" class=\"gio-badge-white content__step__connector__badge\">\n <mat-icon *ngIf=\"connector.icon\" [svgIcon]=\"connector.icon\" class=\"content__step__connector__badge__icon\"></mat-icon>\n {{ connector.name }}\n </span>\n </div>\n\n <!-- Add policy button after first connector -->\n <ng-container *ngIf=\"isFirst\">\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(-1)\"><mat-icon svgIcon=\"gio:plus\"></mat-icon></button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </ng-container>\n\n <!-- Policy -->\n <ng-container *ngIf=\"stepVM.type === 'step'\">\n <div class=\"content__step__policy\">\n <div *ngIf=\"stepVM.step?.condition\" class=\"content__step__policy__condition\">\n <span class=\"gio-badge-neutral\" [matTooltip]=\"'Condition: ' + stepVM.step.condition\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon>{{ stepVM.step.condition }}</span\n >\n </div>\n <gio-ps-flow-details-phase-step\n class=\"content__step__step\"\n [policies]=\"policies\"\n [step]=\"stepVM.step\"\n (stepChange)=\"onStepChange(stepVM.index, $event)\"\n (deleted)=\"onStepDeleted(stepVM.index)\"\n ></gio-ps-flow-details-phase-step>\n </div>\n\n <!-- Add policy button -->\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(stepVM.index)\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon>\n </button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #disabledPhaseContent>\n <div class=\"disabledContent\">\n <gio-banner-warning>\n Policies might not be evaluated\n <span gioBannerBody> Your API entrypoints don't apply on this phase. To enable them, add an entrypoint supporting this phase. </span>\n </gio-banner-warning>\n </div>\n</ng-template>\n", styles: [":host{display:flex;overflow:hidden;min-height:199px;flex-direction:column;padding-top:16px;border:1px solid #d3d5dc;border-radius:8px;background-color:#fff}.header{display:flex;padding:0 16px;gap:8px}.header__name{flex:1 1 auto;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.header__description{flex:1 1 auto;font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}.wrapper{position:relative;flex:1 1 auto;overflow-y:auto}.content{position:absolute;display:flex;width:max-content;height:100%;align-items:center;padding:0 16px}.content__step{display:flex;align-items:center}.content__step__connector{display:flex;flex-direction:column;gap:8px}.content__step__connector__badge{border:1px solid #876fec;border-radius:16px}.content__step__connector__badge__icon{margin-right:4px}.content__step__rightArrow{width:16px;height:16px;margin:0 8px;color:#b4b5bb}.content__step__policy{position:relative;display:flex;flex-direction:row;align-items:center}.content__step__policy__condition{position:absolute;top:-32px;right:0;left:0;display:flex;flex-direction:column}.content__step__policy__condition span{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content__step__policy__condition span mat-icon{margin-right:4px}.disabledContent{display:flex;flex-direction:column;padding:16px}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioPolicyStudioDetailsPhaseStepComponent, selector: "gio-ps-flow-details-phase-step", inputs: ["step", "policies"], outputs: ["stepChange", "deleted"] }, { type: i5.GioBannerWarningComponent, selector: "gio-banner-warning" }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.GioBannerBodyDirective, selector: "[gioBannerBody]" }] });
102
102
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioDetailsPhaseComponent, decorators: [{
103
103
  type: Component,
104
- args: [{ selector: 'gio-ps-flow-details-phase', 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=\"header\">\n <span class=\"header__name\">\n {{ name }}\n </span>\n <span class=\"header__description\">\n {{ description }}\n </span>\n\n <span *ngIf=\"isDisabled\" class=\"header__infoIcon\" matTooltip=\"Policies might not be evaluated\" matTooltipPosition=\"before\">\n <mat-icon svgIcon=\"gio:info\"></mat-icon>\n </span>\n</div>\n\n<div *ngIf=\"!isDisabled; else disabledPhaseContent\" class=\"wrapper\">\n <div class=\"content\">\n <div *ngFor=\"let stepVM of stepsVM; first as isFirst\" class=\"content__step\">\n <!-- Connector -->\n <ng-container *ngIf=\"stepVM.type === 'connectors'\">\n <div class=\"content__step__connector\">\n <span *ngFor=\"let connector of stepVM.connectors\" class=\"gio-badge-white content__step__connector__badge\">\n <mat-icon *ngIf=\"connector.icon\" [svgIcon]=\"connector.icon\" class=\"content__step__connector__badge__icon\"></mat-icon>\n {{ connector.name }}\n </span>\n </div>\n\n <!-- Add policy button after first connector -->\n <ng-container *ngIf=\"isFirst\">\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(-1)\"><mat-icon svgIcon=\"gio:plus\"></mat-icon></button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </ng-container>\n\n <!-- Policy -->\n <ng-container *ngIf=\"stepVM.type === 'step'\">\n <gio-ps-flow-details-phase-step\n class=\"content__step__step\"\n [policies]=\"policies\"\n [step]=\"stepVM.step\"\n (stepChange)=\"onStepChange(stepVM.index, $event)\"\n (deleted)=\"onStepDeleted(stepVM.index)\"\n ></gio-ps-flow-details-phase-step>\n\n <!-- Add policy button -->\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(stepVM.index)\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon>\n </button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #disabledPhaseContent>\n <div class=\"disabledContent\">\n <gio-banner-warning>\n Policies might not be evaluated\n <span gioBannerBody> Your API entrypoints don't apply on this phase. To enable them, add an entrypoint supporting this phase. </span>\n </gio-banner-warning>\n </div>\n</ng-template>\n", styles: [":host{display:flex;overflow:hidden;min-height:199px;flex-direction:column;padding-top:16px;border:1px solid #d3d5dc;border-radius:8px;background-color:#fff}.header{display:flex;padding:0 16px;gap:8px}.header__name{flex:1 1 auto;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.header__description{flex:1 1 auto;font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}.wrapper{position:relative;flex:1 1 auto;overflow-y:auto}.content{position:absolute;display:flex;width:max-content;height:100%;align-items:center;padding:0 16px}.content__step{display:flex;align-items:center}.content__step__connector{display:flex;flex-direction:column;gap:8px}.content__step__connector__badge{border:1px solid #876fec;border-radius:16px}.content__step__connector__badge__icon{margin-right:4px}.content__step__rightArrow{width:16px;height:16px;margin:0 8px;color:#b4b5bb}.disabledContent{display:flex;flex-direction:column;padding:16px}\n"] }]
104
+ args: [{ selector: 'gio-ps-flow-details-phase', 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=\"header\">\n <span class=\"header__name\">\n {{ name }}\n </span>\n <span class=\"header__description\">\n {{ description }}\n </span>\n\n <span *ngIf=\"isDisabled\" class=\"header__infoIcon\" matTooltip=\"Policies might not be evaluated\" matTooltipPosition=\"before\">\n <mat-icon svgIcon=\"gio:info\"></mat-icon>\n </span>\n</div>\n\n<div *ngIf=\"!isDisabled; else disabledPhaseContent\" class=\"wrapper\">\n <div class=\"content\">\n <div *ngFor=\"let stepVM of stepsVM; first as isFirst\" class=\"content__step\">\n <!-- Connector -->\n <ng-container *ngIf=\"stepVM.type === 'connectors'\">\n <div class=\"content__step__connector\">\n <span *ngFor=\"let connector of stepVM.connectors\" class=\"gio-badge-white content__step__connector__badge\">\n <mat-icon *ngIf=\"connector.icon\" [svgIcon]=\"connector.icon\" class=\"content__step__connector__badge__icon\"></mat-icon>\n {{ connector.name }}\n </span>\n </div>\n\n <!-- Add policy button after first connector -->\n <ng-container *ngIf=\"isFirst\">\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(-1)\"><mat-icon svgIcon=\"gio:plus\"></mat-icon></button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </ng-container>\n\n <!-- Policy -->\n <ng-container *ngIf=\"stepVM.type === 'step'\">\n <div class=\"content__step__policy\">\n <div *ngIf=\"stepVM.step?.condition\" class=\"content__step__policy__condition\">\n <span class=\"gio-badge-neutral\" [matTooltip]=\"'Condition: ' + stepVM.step.condition\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon>{{ stepVM.step.condition }}</span\n >\n </div>\n <gio-ps-flow-details-phase-step\n class=\"content__step__step\"\n [policies]=\"policies\"\n [step]=\"stepVM.step\"\n (stepChange)=\"onStepChange(stepVM.index, $event)\"\n (deleted)=\"onStepDeleted(stepVM.index)\"\n ></gio-ps-flow-details-phase-step>\n </div>\n\n <!-- Add policy button -->\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n <button class=\"content__step__addBtn\" mat-icon-button (click)=\"onAddPolicy(stepVM.index)\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon>\n </button>\n <mat-icon class=\"content__step__rightArrow\" svgIcon=\"gio:arrow-right\"></mat-icon>\n </ng-container>\n </div>\n </div>\n</div>\n\n<ng-template #disabledPhaseContent>\n <div class=\"disabledContent\">\n <gio-banner-warning>\n Policies might not be evaluated\n <span gioBannerBody> Your API entrypoints don't apply on this phase. To enable them, add an entrypoint supporting this phase. </span>\n </gio-banner-warning>\n </div>\n</ng-template>\n", styles: [":host{display:flex;overflow:hidden;min-height:199px;flex-direction:column;padding-top:16px;border:1px solid #d3d5dc;border-radius:8px;background-color:#fff}.header{display:flex;padding:0 16px;gap:8px}.header__name{flex:1 1 auto;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.header__description{flex:1 1 auto;font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}.wrapper{position:relative;flex:1 1 auto;overflow-y:auto}.content{position:absolute;display:flex;width:max-content;height:100%;align-items:center;padding:0 16px}.content__step{display:flex;align-items:center}.content__step__connector{display:flex;flex-direction:column;gap:8px}.content__step__connector__badge{border:1px solid #876fec;border-radius:16px}.content__step__connector__badge__icon{margin-right:4px}.content__step__rightArrow{width:16px;height:16px;margin:0 8px;color:#b4b5bb}.content__step__policy{position:relative;display:flex;flex-direction:row;align-items:center}.content__step__policy__condition{position:absolute;top:-32px;right:0;left:0;display:flex;flex-direction:column}.content__step__policy__condition span{display:inline-block;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.content__step__policy__condition span mat-icon{margin-right:4px}.disabledContent{display:flex;flex-direction:column;padding:16px}\n"] }]
105
105
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { steps: [{
106
106
  type: Input
107
107
  }], name: [{
@@ -121,4 +121,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
121
121
  }], stepsChange: [{
122
122
  type: Output
123
123
  }] } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy1waGFzZS9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1kZXRhaWxzLXBoYXNlL2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSWpDLE9BQU8sRUFDTCw2Q0FBNkMsR0FHOUMsTUFBTSxxRUFBcUUsQ0FBQzs7Ozs7Ozs7O0FBcUI3RSxNQUFNLE9BQU8sb0NBQW9DO0lBZ0MvQyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBOUIxQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBU25CLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUdyQyxpQkFBWSxHQUFvQixFQUFFLENBQUM7UUFNbkMsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQU14QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFekMsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRTBCLENBQUM7SUFFOUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFP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LENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7O2tJQXhHVSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyw2VkM3Q2pELG95R0FnRkE7NEZEbkNhLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSwyQkFBMkI7Z0dBTTlCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEFwaVR5cGUsIENvbm5lY3RvckluZm8sIEV4ZWN1dGlvblBoYXNlLCBQb2xpY3ksIFN0ZXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dEYXRhLFxuICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQsXG59IGZyb20gJy4uL3BvbGljaWVzLWNhdGFsb2ctZGlhbG9nL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xuXG50eXBlIFN0ZXBWTSA9XG4gIHwge1xuICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnO1xuICAgICAgY29ubmVjdG9yczoge1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICBpY29uPzogc3RyaW5nO1xuICAgICAgfVtdO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAnc3RlcCc7XG4gICAgICBzdGVwOiBTdGVwO1xuICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0RldGFpbHNQaGFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGVwczogU3RlcFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydENvbm5lY3RvcjogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuZENvbm5lY3RvcjogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9saWN5RXhlY3V0aW9uUGhhc2UhOiBFeGVjdXRpb25QaGFzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHN0ZXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwW10+KCk7XG5cbiAgcHVibGljIHN0ZXBzVk06IFN0ZXBWTVtdID0gW107XG5cbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc3RlcHMgfHwgY2hhbmdlcy5zdGFydENvbm5lY3RvciB8fCBjaGFuZ2VzLmVuZENvbm5lY3Rvcikge1xuICAgICAgdGhpcy5zdGVwc1ZNID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnLFxuICAgICAgICAgIGNvbm5lY3RvcnM6IHRoaXMuc3RhcnRDb25uZWN0b3IubWFwKGNvbm5lY3RvciA9PiAoe1xuICAgICAgICAgICAgbmFtZTogY29ubmVjdG9yLm5hbWUsXG4gICAgICAgICAgICBpY29uOiBjb25uZWN0b3IuaWNvbixcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0sXG5cbiAgICAgICAgLi4uKHRoaXMuc3RlcHMgPz8gW10pLm1hcCgoc3RlcCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ3N0ZXAnIGFzIGNvbnN0LFxuICAgICAgICAgIHN0ZXA6IHN0ZXAsXG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgIH0pKSxcblxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnLFxuICAgICAgICAgIGNvbm5lY3RvcnM6IHRoaXMuZW5kQ29ubmVjdG9yLm1hcChjb25uZWN0b3IgPT4gKHtcbiAgICAgICAgICAgIG5hbWU6IGNvbm5lY3Rvci5uYW1lLFxuICAgICAgICAgICAgaWNvbjogY29ubmVjdG9yLmljb24sXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgLy8gRGlzYWJsZSBwaGFzZSBpZiB0aGVyZSBhcmUgbm90IHN0YXJ0ICYgZW5kIGNvbm5lY3RvcnNcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuc3RlcHNWTS5maWx0ZXIoc3RlcCA9PiBzdGVwLnR5cGUgPT09ICdjb25uZWN0b3JzJyAmJiAhaXNFbXB0eShzdGVwLmNvbm5lY3RvcnMpKS5sZW5ndGggPCAyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZFBvbGljeShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuPFxuICAgICAgICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEsXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdFxuICAgICAgPihHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHBvbGljaWVzOiB0aGlzLnBvbGljaWVzLFxuICAgICAgICAgIGV4ZWN1dGlvblBoYXNlOiB0aGlzLnBvbGljeUV4ZWN1dGlvblBoYXNlLFxuICAgICAgICAgIGFwaVR5cGU6IHRoaXMuYXBpVHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgaWQ6ICdnaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2cnLFxuICAgICAgICB3aWR0aDogJzEwMDBweCcsXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoc3RlcFRvQWRkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0ZXBzIHx8ICFzdGVwVG9BZGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIFN0ZXAgYWZ0ZXIgdGhlIGdpdmVuIGluZGV4XG4gICAgICAgIHRoaXMuc3RlcHNDaGFuZ2UuZW1pdChbLi4udGhpcy5zdGVwcy5zbGljZSgwLCBpbmRleCArIDEpLCBzdGVwVG9BZGQsIC4uLnRoaXMuc3RlcHMuc2xpY2UoaW5kZXggKyAxKV0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdGVwQ2hhbmdlKGluZGV4OiBudW1iZXIsIHN0ZXBUb0VkaXQ6IFN0ZXApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RlcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gUmVwbGFjZSB0aGUgc3RlcCBhdCB0aGUgZ2l2ZW4gaW5kZXhcbiAgICB0aGlzLnN0ZXBzQ2hhbmdlLmVtaXQoWy4uLnRoaXMuc3RlcHMuc2xpY2UoMCwgaW5kZXgpLCBzdGVwVG9FZGl0LCAuLi50aGlzLnN0ZXBzLnNsaWNlKGluZGV4ICsgMSldKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZXBEZWxldGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RlcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGVwc0NoYW5nZS5lbWl0KFsuLi50aGlzLnN0ZXBzLnNsaWNlKDAsIGluZGV4KSwgLi4udGhpcy5zdGVwcy5zbGljZShpbmRleCArIDEpXSk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxzcGFuIGNsYXNzPVwiaGVhZGVyX19uYW1lXCI+XG4gICAge3sgbmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiaGVhZGVyX19kZXNjcmlwdGlvblwiPlxuICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gIDwvc3Bhbj5cblxuICA8c3BhbiAqbmdJZj1cImlzRGlzYWJsZWRcIiBjbGFzcz1cImhlYWRlcl9faW5mb0ljb25cIiBtYXRUb29sdGlwPVwiUG9saWNpZXMgbWlnaHQgbm90IGJlIGV2YWx1YXRlZFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmluZm9cIj48L21hdC1pY29uPlxuICA8L3NwYW4+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFpc0Rpc2FibGVkOyBlbHNlIGRpc2FibGVkUGhhc2VDb250ZW50XCIgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcFZNIG9mIHN0ZXBzVk07IGZpcnN0IGFzIGlzRmlyc3RcIiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBcIj5cbiAgICAgIDwhLS0gQ29ubmVjdG9yIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBWTS50eXBlID09PSAnY29ubmVjdG9ycydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX2Nvbm5lY3RvclwiPlxuICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb25uZWN0b3Igb2Ygc3RlcFZNLmNvbm5lY3RvcnNcIiBjbGFzcz1cImdpby1iYWRnZS13aGl0ZSBjb250ZW50X19zdGVwX19jb25uZWN0b3JfX2JhZGdlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjb25uZWN0b3IuaWNvblwiIFtzdmdJY29uXT1cImNvbm5lY3Rvci5pY29uXCIgY2xhc3M9XCJjb250ZW50X19zdGVwX19jb25uZWN0b3JfX2JhZGdlX19pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIHt7IGNvbm5lY3Rvci5uYW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFkZCBwb2xpY3kgYnV0dG9uIGFmdGVyIGZpcnN0IGNvbm5lY3RvciAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlyc3RcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjb250ZW50X19zdGVwX19yaWdodEFycm93XCIgc3ZnSWNvbj1cImdpbzphcnJvdy1yaWdodFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX2FkZEJ0blwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25BZGRQb2xpY3koLTEpXCI+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86cGx1c1wiPjwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY29udGVudF9fc3RlcF9fcmlnaHRBcnJvd1wiIHN2Z0ljb249XCJnaW86YXJyb3ctcmlnaHRcIj48L21hdC1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFBvbGljeSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwVk0udHlwZSA9PT0gJ3N0ZXAnXCI+XG4gICAgICAgIDxnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLXN0ZXBcbiAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX3N0ZXBcIlxuICAgICAgICAgIFtwb2xpY2llc109XCJwb2xpY2llc1wiXG4gICAgICAgICAgW3N0ZXBdPVwic3RlcFZNLnN0ZXBcIlxuICAgICAgICAgIChzdGVwQ2hhbmdlKT1cIm9uU3RlcENoYW5nZShzdGVwVk0uaW5kZXgsICRldmVudClcIlxuICAgICAgICAgIChkZWxldGVkKT1cIm9uU3RlcERlbGV0ZWQoc3RlcFZNLmluZGV4KVwiXG4gICAgICAgID48L2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2Utc3RlcD5cblxuICAgICAgICA8IS0tIEFkZCBwb2xpY3kgYnV0dG9uIC0tPlxuICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjb250ZW50X19zdGVwX19yaWdodEFycm93XCIgc3ZnSWNvbj1cImdpbzphcnJvdy1yaWdodFwiPjwvbWF0LWljb24+XG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJjb250ZW50X19zdGVwX19hZGRCdG5cIiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQWRkUG9saWN5KHN0ZXBWTS5pbmRleClcIj5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9idXR0b24+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX3JpZ2h0QXJyb3dcIiBzdmdJY29uPVwiZ2lvOmFycm93LXJpZ2h0XCI+PC9tYXQtaWNvbj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2Rpc2FibGVkUGhhc2VDb250ZW50PlxuICA8ZGl2IGNsYXNzPVwiZGlzYWJsZWRDb250ZW50XCI+XG4gICAgPGdpby1iYW5uZXItd2FybmluZz5cbiAgICAgIFBvbGljaWVzIG1pZ2h0IG5vdCBiZSBldmFsdWF0ZWRcbiAgICAgIDxzcGFuIGdpb0Jhbm5lckJvZHk+IFlvdXIgQVBJIGVudHJ5cG9pbnRzIGRvbid0IGFwcGx5IG9uIHRoaXMgcGhhc2UuIFRvIGVuYWJsZSB0aGVtLCBhZGQgYW4gZW50cnlwb2ludCBzdXBwb3J0aW5nIHRoaXMgcGhhc2UuIDwvc3Bhbj5cbiAgICA8L2dpby1iYW5uZXItd2FybmluZz5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL2Zsb3ctZGV0YWlscy1waGFzZS9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvdy1kZXRhaWxzLXBoYXNlL2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2UuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWEsTUFBTSxFQUFpQixNQUFNLGVBQWUsQ0FBQztBQUNqRyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBSWpDLE9BQU8sRUFDTCw2Q0FBNkMsR0FHOUMsTUFBTSxxRUFBcUUsQ0FBQzs7Ozs7Ozs7O0FBcUI3RSxNQUFNLE9BQU8sb0NBQW9DO0lBZ0MvQyxZQUE2QixTQUFvQjtRQUFwQixjQUFTLEdBQVQsU0FBUyxDQUFXO1FBOUIxQyxVQUFLLEdBQVcsRUFBRSxDQUFDO1FBU25CLG1CQUFjLEdBQW9CLEVBQUUsQ0FBQztRQUdyQyxpQkFBWSxHQUFvQixFQUFFLENBQUM7UUFNbkMsYUFBUSxHQUFhLEVBQUUsQ0FBQztRQU14QixnQkFBVyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFekMsWUFBTyxHQUFhLEVBQUUsQ0FBQztRQUV2QixlQUFVLEdBQUcsS0FBSyxDQUFDO0lBRTBCLENBQUM7SUFFOUMsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLEtBQUssSUFBSSxPQUFP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LENBQUMsSUFBSSxDQUFDLENBQUMsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQUUsR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxLQUFLLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ3pGLENBQUM7O2tJQXhHVSxvQ0FBb0M7c0hBQXBDLG9DQUFvQyw2VkM3Q2pELCtxSEF1RkE7NEZEMUNhLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSwyQkFBMkI7Z0dBTTlCLEtBQUs7c0JBRFgsS0FBSztnQkFJQyxJQUFJO3NCQURWLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxjQUFjO3NCQURwQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsT0FBTztzQkFEYixLQUFLO2dCQUlDLFFBQVE7c0JBRGQsS0FBSztnQkFJQyxvQkFBb0I7c0JBRDFCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5cbmltcG9ydCB7IEFwaVR5cGUsIENvbm5lY3RvckluZm8sIEV4ZWN1dGlvblBoYXNlLCBQb2xpY3ksIFN0ZXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dEYXRhLFxuICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQsXG59IGZyb20gJy4uL3BvbGljaWVzLWNhdGFsb2ctZGlhbG9nL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQnO1xuXG50eXBlIFN0ZXBWTSA9XG4gIHwge1xuICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnO1xuICAgICAgY29ubmVjdG9yczoge1xuICAgICAgICBuYW1lPzogc3RyaW5nO1xuICAgICAgICBpY29uPzogc3RyaW5nO1xuICAgICAgfVtdO1xuICAgIH1cbiAgfCB7XG4gICAgICB0eXBlOiAnc3RlcCc7XG4gICAgICBzdGVwOiBTdGVwO1xuICAgICAgaW5kZXg6IG51bWJlcjtcbiAgICB9O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93LWRldGFpbHMtcGhhc2UuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0RldGFpbHNQaGFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGVwczogU3RlcFtdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIG5hbWUhOiBzdHJpbmc7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGRlc2NyaXB0aW9uITogc3RyaW5nO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzdGFydENvbm5lY3RvcjogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVuZENvbm5lY3RvcjogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5W10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgcG9saWN5RXhlY3V0aW9uUGhhc2UhOiBFeGVjdXRpb25QaGFzZTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHN0ZXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwW10+KCk7XG5cbiAgcHVibGljIHN0ZXBzVk06IFN0ZXBWTVtdID0gW107XG5cbiAgcHVibGljIGlzRGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IG1hdERpYWxvZzogTWF0RGlhbG9nKSB7fVxuXG4gIHB1YmxpYyBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKGNoYW5nZXMuc3RlcHMgfHwgY2hhbmdlcy5zdGFydENvbm5lY3RvciB8fCBjaGFuZ2VzLmVuZENvbm5lY3Rvcikge1xuICAgICAgdGhpcy5zdGVwc1ZNID0gW1xuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnLFxuICAgICAgICAgIGNvbm5lY3RvcnM6IHRoaXMuc3RhcnRDb25uZWN0b3IubWFwKGNvbm5lY3RvciA9PiAoe1xuICAgICAgICAgICAgbmFtZTogY29ubmVjdG9yLm5hbWUsXG4gICAgICAgICAgICBpY29uOiBjb25uZWN0b3IuaWNvbixcbiAgICAgICAgICB9KSksXG4gICAgICAgIH0sXG5cbiAgICAgICAgLi4uKHRoaXMuc3RlcHMgPz8gW10pLm1hcCgoc3RlcCwgaW5kZXgpID0+ICh7XG4gICAgICAgICAgdHlwZTogJ3N0ZXAnIGFzIGNvbnN0LFxuICAgICAgICAgIHN0ZXA6IHN0ZXAsXG4gICAgICAgICAgaW5kZXgsXG4gICAgICAgIH0pKSxcblxuICAgICAgICB7XG4gICAgICAgICAgdHlwZTogJ2Nvbm5lY3RvcnMnLFxuICAgICAgICAgIGNvbm5lY3RvcnM6IHRoaXMuZW5kQ29ubmVjdG9yLm1hcChjb25uZWN0b3IgPT4gKHtcbiAgICAgICAgICAgIG5hbWU6IGNvbm5lY3Rvci5uYW1lLFxuICAgICAgICAgICAgaWNvbjogY29ubmVjdG9yLmljb24sXG4gICAgICAgICAgfSkpLFxuICAgICAgICB9LFxuICAgICAgXTtcblxuICAgICAgLy8gRGlzYWJsZSBwaGFzZSBpZiB0aGVyZSBhcmUgbm90IHN0YXJ0ICYgZW5kIGNvbm5lY3RvcnNcbiAgICAgIHRoaXMuaXNEaXNhYmxlZCA9IHRoaXMuc3RlcHNWTS5maWx0ZXIoc3RlcCA9PiBzdGVwLnR5cGUgPT09ICdjb25uZWN0b3JzJyAmJiAhaXNFbXB0eShzdGVwLmNvbm5lY3RvcnMpKS5sZW5ndGggPCAyO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZFBvbGljeShpbmRleDogbnVtYmVyKTogdm9pZCB7XG4gICAgdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuPFxuICAgICAgICBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEsXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdFxuICAgICAgPihHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIHBvbGljaWVzOiB0aGlzLnBvbGljaWVzLFxuICAgICAgICAgIGV4ZWN1dGlvblBoYXNlOiB0aGlzLnBvbGljeUV4ZWN1dGlvblBoYXNlLFxuICAgICAgICAgIGFwaVR5cGU6IHRoaXMuYXBpVHlwZSxcbiAgICAgICAgfSxcbiAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgaWQ6ICdnaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2cnLFxuICAgICAgICB3aWR0aDogJzEwMDBweCcsXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoc3RlcFRvQWRkID0+IHtcbiAgICAgICAgaWYgKCF0aGlzLnN0ZXBzIHx8ICFzdGVwVG9BZGQpIHtcbiAgICAgICAgICByZXR1cm47XG4gICAgICAgIH1cbiAgICAgICAgLy8gQWRkIFN0ZXAgYWZ0ZXIgdGhlIGdpdmVuIGluZGV4XG4gICAgICAgIHRoaXMuc3RlcHNDaGFuZ2UuZW1pdChbLi4udGhpcy5zdGVwcy5zbGljZSgwLCBpbmRleCArIDEpLCBzdGVwVG9BZGQsIC4uLnRoaXMuc3RlcHMuc2xpY2UoaW5kZXggKyAxKV0pO1xuICAgICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25TdGVwQ2hhbmdlKGluZGV4OiBudW1iZXIsIHN0ZXBUb0VkaXQ6IFN0ZXApOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RlcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgLy8gUmVwbGFjZSB0aGUgc3RlcCBhdCB0aGUgZ2l2ZW4gaW5kZXhcbiAgICB0aGlzLnN0ZXBzQ2hhbmdlLmVtaXQoWy4uLnRoaXMuc3RlcHMuc2xpY2UoMCwgaW5kZXgpLCBzdGVwVG9FZGl0LCAuLi50aGlzLnN0ZXBzLnNsaWNlKGluZGV4ICsgMSldKTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZXBEZWxldGVkKGluZGV4OiBudW1iZXIpOiB2b2lkIHtcbiAgICBpZiAoIXRoaXMuc3RlcHMpIHtcbiAgICAgIHJldHVybjtcbiAgICB9XG4gICAgdGhpcy5zdGVwc0NoYW5nZS5lbWl0KFsuLi50aGlzLnN0ZXBzLnNsaWNlKDAsIGluZGV4KSwgLi4udGhpcy5zdGVwcy5zbGljZShpbmRleCArIDEpXSk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxzcGFuIGNsYXNzPVwiaGVhZGVyX19uYW1lXCI+XG4gICAge3sgbmFtZSB9fVxuICA8L3NwYW4+XG4gIDxzcGFuIGNsYXNzPVwiaGVhZGVyX19kZXNjcmlwdGlvblwiPlxuICAgIHt7IGRlc2NyaXB0aW9uIH19XG4gIDwvc3Bhbj5cblxuICA8c3BhbiAqbmdJZj1cImlzRGlzYWJsZWRcIiBjbGFzcz1cImhlYWRlcl9faW5mb0ljb25cIiBtYXRUb29sdGlwPVwiUG9saWNpZXMgbWlnaHQgbm90IGJlIGV2YWx1YXRlZFwiIG1hdFRvb2x0aXBQb3NpdGlvbj1cImJlZm9yZVwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmluZm9cIj48L21hdC1pY29uPlxuICA8L3NwYW4+XG48L2Rpdj5cblxuPGRpdiAqbmdJZj1cIiFpc0Rpc2FibGVkOyBlbHNlIGRpc2FibGVkUGhhc2VDb250ZW50XCIgY2xhc3M9XCJ3cmFwcGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJjb250ZW50XCI+XG4gICAgPGRpdiAqbmdGb3I9XCJsZXQgc3RlcFZNIG9mIHN0ZXBzVk07IGZpcnN0IGFzIGlzRmlyc3RcIiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBcIj5cbiAgICAgIDwhLS0gQ29ubmVjdG9yIC0tPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBWTS50eXBlID09PSAnY29ubmVjdG9ycydcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX2Nvbm5lY3RvclwiPlxuICAgICAgICAgIDxzcGFuICpuZ0Zvcj1cImxldCBjb25uZWN0b3Igb2Ygc3RlcFZNLmNvbm5lY3RvcnNcIiBjbGFzcz1cImdpby1iYWRnZS13aGl0ZSBjb250ZW50X19zdGVwX19jb25uZWN0b3JfX2JhZGdlXCI+XG4gICAgICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJjb25uZWN0b3IuaWNvblwiIFtzdmdJY29uXT1cImNvbm5lY3Rvci5pY29uXCIgY2xhc3M9XCJjb250ZW50X19zdGVwX19jb25uZWN0b3JfX2JhZGdlX19pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgICAgIHt7IGNvbm5lY3Rvci5uYW1lIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8IS0tIEFkZCBwb2xpY3kgYnV0dG9uIGFmdGVyIGZpcnN0IGNvbm5lY3RvciAtLT5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cImlzRmlyc3RcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJjb250ZW50X19zdGVwX19yaWdodEFycm93XCIgc3ZnSWNvbj1cImdpbzphcnJvdy1yaWdodFwiPjwvbWF0LWljb24+XG4gICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX2FkZEJ0blwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25BZGRQb2xpY3koLTEpXCI+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86cGx1c1wiPjwvbWF0LWljb24+PC9idXR0b24+XG4gICAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY29udGVudF9fc3RlcF9fcmlnaHRBcnJvd1wiIHN2Z0ljb249XCJnaW86YXJyb3ctcmlnaHRcIj48L21hdC1pY29uPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgIDwvbmctY29udGFpbmVyPlxuXG4gICAgICA8IS0tIFBvbGljeSAtLT5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwVk0udHlwZSA9PT0gJ3N0ZXAnXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb250ZW50X19zdGVwX19wb2xpY3lcIj5cbiAgICAgICAgICA8ZGl2ICpuZ0lmPVwic3RlcFZNLnN0ZXA/LmNvbmRpdGlvblwiIGNsYXNzPVwiY29udGVudF9fc3RlcF9fcG9saWN5X19jb25kaXRpb25cIj5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZ2lvLWJhZGdlLW5ldXRyYWxcIiBbbWF0VG9vbHRpcF09XCInQ29uZGl0aW9uOiAnICsgc3RlcFZNLnN0ZXAuY29uZGl0aW9uXCJcbiAgICAgICAgICAgICAgPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmlmXCI+PC9tYXQtaWNvbj57eyBzdGVwVk0uc3RlcC5jb25kaXRpb24gfX08L3NwYW5cbiAgICAgICAgICAgID5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8Z2lvLXBzLWZsb3ctZGV0YWlscy1waGFzZS1zdGVwXG4gICAgICAgICAgICBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX3N0ZXBcIlxuICAgICAgICAgICAgW3BvbGljaWVzXT1cInBvbGljaWVzXCJcbiAgICAgICAgICAgIFtzdGVwXT1cInN0ZXBWTS5zdGVwXCJcbiAgICAgICAgICAgIChzdGVwQ2hhbmdlKT1cIm9uU3RlcENoYW5nZShzdGVwVk0uaW5kZXgsICRldmVudClcIlxuICAgICAgICAgICAgKGRlbGV0ZWQpPVwib25TdGVwRGVsZXRlZChzdGVwVk0uaW5kZXgpXCJcbiAgICAgICAgICA+PC9naW8tcHMtZmxvdy1kZXRhaWxzLXBoYXNlLXN0ZXA+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDwhLS0gQWRkIHBvbGljeSBidXR0b24gLS0+XG4gICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX3JpZ2h0QXJyb3dcIiBzdmdJY29uPVwiZ2lvOmFycm93LXJpZ2h0XCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImNvbnRlbnRfX3N0ZXBfX2FkZEJ0blwiIG1hdC1pY29uLWJ1dHRvbiAoY2xpY2spPVwib25BZGRQb2xpY3koc3RlcFZNLmluZGV4KVwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnBsdXNcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgPG1hdC1pY29uIGNsYXNzPVwiY29udGVudF9fc3RlcF9fcmlnaHRBcnJvd1wiIHN2Z0ljb249XCJnaW86YXJyb3ctcmlnaHRcIj48L21hdC1pY29uPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjZGlzYWJsZWRQaGFzZUNvbnRlbnQ+XG4gIDxkaXYgY2xhc3M9XCJkaXNhYmxlZENvbnRlbnRcIj5cbiAgICA8Z2lvLWJhbm5lci13YXJuaW5nPlxuICAgICAgUG9saWNpZXMgbWlnaHQgbm90IGJlIGV2YWx1YXRlZFxuICAgICAgPHNwYW4gZ2lvQmFubmVyQm9keT4gWW91ciBBUEkgZW50cnlwb2ludHMgZG9uJ3QgYXBwbHkgb24gdGhpcyBwaGFzZS4gVG8gZW5hYmxlIHRoZW0sIGFkZCBhbiBlbnRyeXBvaW50IHN1cHBvcnRpbmcgdGhpcyBwaGFzZS4gPC9zcGFuPlxuICAgIDwvZ2lvLWJhbm5lci13YXJuaW5nPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -46,6 +46,8 @@ export class GioPolicyStudioFlowsMenuComponent {
46
46
  flows: flowGroup.flows.map(flow => {
47
47
  const badges = [];
48
48
  let pathOrChannelLabel = '';
49
+ let hasCondition = false;
50
+ // MESSAGE API - CHANNEL
49
51
  const channelSelector = flow.selectors?.find(s => s.type === 'CHANNEL');
50
52
  if (channelSelector) {
51
53
  const operationToBadge = {
@@ -61,6 +63,7 @@ export class GioPolicyStudioFlowsMenuComponent {
61
63
  operationBadges && badges.push(...operationBadges);
62
64
  pathOrChannelLabel = `${channelSelector.channel}${channelSelector.channelOperator === 'STARTS_WITH' ? '**' : ''}`;
63
65
  }
66
+ // HTTP API - HTTP
64
67
  const httpSelector = flow.selectors?.find(s => s.type === 'HTTP');
65
68
  if (httpSelector) {
66
69
  // Keep only 2 first http methods and add +X badge if there are more
@@ -82,12 +85,17 @@ export class GioPolicyStudioFlowsMenuComponent {
82
85
  }
83
86
  pathOrChannelLabel = `${httpSelector.path}${httpSelector.pathOperator === 'STARTS_WITH' ? '/**' : ''}`;
84
87
  }
88
+ const conditionSelector = flow.selectors?.find(s => s.type === 'CONDITION');
89
+ if (conditionSelector && conditionSelector.condition) {
90
+ hasCondition = true;
91
+ }
85
92
  return {
86
93
  ...flow,
87
94
  selected: this.selectedFlow?._id === flow._id,
88
95
  mouseOver: false,
89
96
  badges,
90
97
  pathOrChannelLabel,
98
+ hasCondition,
91
99
  };
92
100
  }),
93
101
  };
@@ -158,10 +166,10 @@ export class GioPolicyStudioFlowsMenuComponent {
158
166
  }
159
167
  }
160
168
  GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
161
- GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: { loading: "loading", apiType: "apiType", flowExecution: "flowExecution", flowsGroups: "flowsGroups", selectedFlow: "selectedFlow", entrypoints: "entrypoints" }, outputs: { selectedFlowChange: "selectedFlowChange", flowsGroupsChange: "flowsGroupsChange", flowExecutionChange: "flowExecutionChange" }, 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=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button\n class=\"header__configBtn_edit\"\n mat-stroked-button\n mat-icon-button\n [disabled]=\"loading\"\n (click)=\"onConfigureExecution(flowExecution)\"\n >\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span [attr.title]=\"flow.pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [":host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioLoaderComponent, selector: "gio-loader" }], directives: [{ type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
169
+ GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: { loading: "loading", apiType: "apiType", flowExecution: "flowExecution", flowsGroups: "flowsGroups", selectedFlow: "selectedFlow", entrypoints: "entrypoints" }, outputs: { selectedFlowChange: "selectedFlowChange", flowsGroupsChange: "flowsGroupsChange", flowExecutionChange: "flowExecutionChange" }, 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=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button\n class=\"header__configBtn_edit\"\n mat-stroked-button\n mat-icon-button\n [disabled]=\"loading\"\n (click)=\"onConfigureExecution(flowExecution)\"\n >\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span [attr.title]=\"flow.pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</span>\n </div>\n\n <span *ngIf=\"flow.hasCondition\" class=\"list__flowsGroup__flow__infos__conditionBadge gio-badge-neutral\" matTooltip=\"Conditioned\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon\n ></span>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [":host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;overflow:hidden;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.list__flowsGroup__flow__infos__conditionBadge{flex:0 0 auto}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioLoaderComponent, selector: "gio-loader" }], directives: [{ type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }] });
162
170
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, decorators: [{
163
171
  type: Component,
164
- args: [{ selector: 'gio-ps-flows-menu', 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=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button\n class=\"header__configBtn_edit\"\n mat-stroked-button\n mat-icon-button\n [disabled]=\"loading\"\n (click)=\"onConfigureExecution(flowExecution)\"\n >\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span [attr.title]=\"flow.pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</span>\n </div>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [":host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"] }]
172
+ args: [{ selector: 'gio-ps-flows-menu', 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=\"header\">\n <div class=\"header__label\">\n Flows <mat-icon svgIcon=\"gio:info\" matTooltip=\"Flows allow you to apply different policies on your API event phases\"></mat-icon>\n </div>\n <div class=\"header__configBtn\">\n <button\n class=\"header__configBtn_edit\"\n mat-stroked-button\n mat-icon-button\n [disabled]=\"loading\"\n (click)=\"onConfigureExecution(flowExecution)\"\n >\n <mat-icon svgIcon=\"gio:settings\"></mat-icon>\n </button>\n </div>\n</div>\n\n<div class=\"list\" *ngIf=\"!loading; else loadingList\">\n <div *ngFor=\"let flowsGroup of flowGroupMenuItems\" class=\"list__flowsGroup\">\n <div class=\"list__flowsGroup__header\">\n <div class=\"list__flowsGroup__header__label\">\n <mat-icon *ngIf=\"flowsGroup._icon\" [svgIcon]=\"flowsGroup._icon\"></mat-icon>\n <span>{{ flowsGroup.name }}</span>\n </div>\n <div class=\"list__flowsGroup__header__addBtn\">\n <button mat-icon-button (click)=\"onAddFlow(flowsGroup)\"><mat-icon svgIcon=\"gio:plus\" matTooltip=\"New flow\"></mat-icon></button>\n </div>\n </div>\n\n <div\n *ngFor=\"let flow of flowsGroup.flows\"\n class=\"list__flowsGroup__flow\"\n [class.selected]=\"flow.selected\"\n (click)=\"selectFlow(flowsGroup._id, flow._id)\"\n (mouseout)=\"flow.mouseOver = false\"\n (mouseover)=\"flow.mouseOver = true\"\n >\n <div *ngIf=\"flow.name\" class=\"list__flowsGroup__flow__name\" [attr.title]=\"flow.name\">\n {{ flow.name }}\n </div>\n <div class=\"list__flowsGroup__flow__infos\">\n <div class=\"list__flowsGroup__flow__infos__badges\">\n <span *ngFor=\"let badge of flow.badges\" class=\"list__flowsGroup__flow__infos__badges__badge\" [ngClass]=\"badge.class\">{{\n badge.label\n }}</span>\n </div>\n <div class=\"list__flowsGroup__flow__infos__pathOrChannelLabel\">\n <span [attr.title]=\"flow.pathOrChannelLabel\">{{ flow.pathOrChannelLabel }}</span>\n </div>\n\n <span *ngIf=\"flow.hasCondition\" class=\"list__flowsGroup__flow__infos__conditionBadge gio-badge-neutral\" matTooltip=\"Conditioned\"\n ><mat-icon svgIcon=\"gio:if\"></mat-icon\n ></span>\n </div>\n </div>\n </div>\n</div>\n\n<ng-template #loadingList>\n <div class=\"loadingList\">\n <gio-loader></gio-loader>\n </div>\n</ng-template>\n", styles: [":host{display:flex;height:100%;max-height:100%;flex-direction:column;padding-top:16px}.header{display:flex;align-items:center;padding:0 16px;margin-bottom:16px}.header__label{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;flex:1 1 auto;align-items:center;margin-bottom:0;gap:8px}.header__configBtn{margin-left:8px}.list{padding:0 16px;overflow-y:overlay}.list__flowsGroup{display:flex;flex-direction:column;padding-bottom:8px;gap:8px}.list__flowsGroup__header{display:flex;align-items:center;padding:8px 8px 8px 10px;border-radius:8px;background-color:#cdc5f7}.list__flowsGroup__header__label{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;display:flex;overflow:hidden;flex:1 1 auto;align-items:center;gap:8px}.list__flowsGroup__header__label>mat-icon{width:22px;height:22px;flex:0 0 auto}.list__flowsGroup__header__label>span{display:-webkit-box;overflow:hidden;flex:1 1 auto;-webkit-box-orient:vertical;-webkit-line-clamp:2}.list__flowsGroup__header__addBtn{margin-left:8px}.list__flowsGroup__flow{display:flex;overflow:hidden;height:68px;flex-direction:column;justify-content:center;padding:7px;border:1px solid #d3d5dc;border-radius:8px;gap:8px}.list__flowsGroup__flow:hover,.list__flowsGroup__flow.selected{padding:6px;border:2px solid #876fec;cursor:pointer}.list__flowsGroup__flow__name{overflow:hidden;padding-left:4px;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos{display:flex;align-items:center}.list__flowsGroup__flow__infos__badges{flex:0 0 auto}.list__flowsGroup__flow__infos__badges__badge{width:auto}.list__flowsGroup__flow__infos__pathOrChannelLabel{overflow:hidden;flex:1 1 auto;direction:rtl;text-align:left;text-overflow:ellipsis;white-space:nowrap}.list__flowsGroup__flow__infos__pathOrChannelLabel span{direction:ltr;unicode-bidi:bidi-override}.list__flowsGroup__flow__infos__conditionBadge{flex:0 0 auto}.loadingList{display:flex;height:100%;flex-direction:column;align-items:center;justify-content:center}\n"] }]
165
173
  }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { loading: [{
166
174
  type: Input
167
175
  }], apiType: [{
@@ -181,4 +189,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
181
189
  }], flowExecutionChange: [{
182
190
  type: Output
183
191
  }] } });
184
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFDTCw2Q0FBNkMsR0FFOUMsTUFBTSx3RkFBd0YsQ0FBQztBQUdoRyxPQUFPLEVBQ0wsMkNBQTJDLEdBRTVDLE1BQU0sb0ZBQW9GLENBQUM7QUFFNUYsT0FBTyxFQUNMLCtDQUErQyxHQUVoRCxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7OztBQXFCbkYsTUFBTSxPQUFPLGlDQUFpQztJQThCNUMsWUFBNkIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQTVCMUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVNoQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFHaEMsaUJBQVksR0FBWSxTQUFTLENBQUM7UUFHbEMsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBR2xDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsc0JBQWlCLEdBQUcsSUFBSSxZ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QUFFO2dCQUNKLGFBQWE7YUFDZDtZQUNELElBQUksRUFBRSxhQUFhO1lBQ25CLEVBQUUsRUFBRSw4QkFBOEI7U0FDbkMsQ0FDRjthQUNBLFdBQVcsRUFBRSxDQUFDO1FBRWpCLFlBQVk7YUFDVCxJQUFJLENBQ0gsR0FBRyxDQUFDLE1BQU0sQ0FBQyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE1BQU0sRUFBRTtnQkFDWCxPQUFPO2FBQ1I7WUFDRCxJQUFJLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQ3hDLENBQUMsQ0FBQyxDQUNIO2FBQ0EsU0FBUyxFQUFFLENBQUM7SUFDakIsQ0FBQzs7K0hBOUtVLGlDQUFpQzttSEFBakMsaUNBQWlDLG1ZQ3ZEOUMsKzFGQTZFQTs0RkR0QmEsaUNBQWlDO2tCQUw3QyxTQUFTOytCQUNFLG1CQUFtQjtnR0FNdEIsT0FBTztzQkFEYixLQUFLO2dCQUlDLE9BQU87c0JBRGIsS0FBSztnQkFJQyxhQUFhO3NCQURuQixLQUFLO2dCQUlDLFdBQVc7c0JBRGpCLEtBQUs7Z0JBSUMsWUFBWTtzQkFEbEIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLGtCQUFrQjtzQkFEeEIsTUFBTTtnQkFJQSxpQkFBaUI7c0JBRHZCLE1BQU07Z0JBSUEsbUJBQW1CO3NCQUR6QixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMiBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZyB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dHcm91cFZNLCBGbG93Vk0gfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBBcGlUeXBlLCBDaGFubmVsU2VsZWN0b3IsIENvbm5lY3RvckluZm8sIEZsb3dFeGVjdXRpb24sIEh0dHBTZWxlY3RvciwgT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1mb3JtLWRpYWxvZy1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBGbG93R3JvdXBNZW51Vk0gZXh0ZW5kcyBGbG93R3JvdXBWTSB7XG4gIGZsb3dzOiBGbG93TWVudVZNW107XG59XG5cbmludGVyZmFjZSBGbG93TWVudVZNIGV4dGVuZHMgRmxvd1ZNIHtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG1vdXNlT3ZlcjogYm9vbGVhbjtcbiAgYmFkZ2VzOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICB9W107XG4gIHBhdGhPckNoYW5uZWxMYWJlbDogc3RyaW5nO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvd3MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93PzogRmxvd1ZNID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50czogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dzR3JvdXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93R3JvdXBWTVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd0V4ZWN1dGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0V4ZWN1dGlvbj4oKTtcblxuICBwdWJsaWMgZmxvd0dyb3VwTWVudUl0ZW1zOiBGbG93R3JvdXBNZW51Vk1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5mbG93c0dyb3VwcyB8fCBjaGFuZ2VzLnNlbGVjdGVkRmxvdykge1xuICAgICAgdGhpcy5mbG93R3JvdXBNZW51SXRlbXMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3VwcykubWFwKGZsb3dHcm91cCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmxvd0dyb3VwLFxuICAgICAgICAgIGZsb3dzOiBmbG93R3JvdXAuZmxvd3MubWFwKGZsb3cgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFkZ2VzOiBGbG93TWVudVZNWydiYWRnZXMnXSA9IFtdO1xuICAgICAgICAgICAgbGV0IHBhdGhPckNoYW5uZWxMYWJlbCA9ICcnO1xuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDSEFOTkVMJykgYXMgQ2hhbm5lbFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxTZWxlY3Rvcikge1xuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25Ub0JhZGdlOiBSZWNvcmQ8T3BlcmF0aW9uLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgICAgIFBVQkxJU0g6ICdQVUInLFxuICAgICAgICAgICAgICAgIFNVQlNDUklCRTogJ1NVQicsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkJhZGdlcyA9IChjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucyA/PyBbXSlcbiAgICAgICAgICAgICAgICAubWFwKG9wZXJhdGlvbiA9PiAoe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IG9wZXJhdGlvblRvQmFkZ2Vbb3BlcmF0aW9uXSxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xuICAgICAgICAgICAgICBvcGVyYXRpb25CYWRnZXMgJiYgYmFkZ2VzLnB1c2goLi4ub3BlcmF0aW9uQmFkZ2VzKTtcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsID0gYCR7Y2hhbm5lbFNlbGVjdG9yLmNoYW5uZWx9JHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbE9wZXJhdG9yID09PSAnU1RBUlRTX1dJVEgnID8gJyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGh0dHBTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnSFRUUCcpIGFzIEh0dHBTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChodHRwU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgLy8gS2VlcCBvbmx5IDIgZmlyc3QgaHR0cCBtZXRob2RzIGFuZCBhZGQgK1ggYmFkZ2UgaWYgdGhlcmUgYXJlIG1vcmVcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNUb0tlZXAgPSBodHRwU2VsZWN0b3IubWV0aG9kcz8uc2xpY2UoMCwgMik7XG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzTGVuZ3RoID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/Lmxlbmd0aDtcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZHNUb0tlZXAgJiZcbiAgICAgICAgICAgICAgICBiYWRnZXMucHVzaCguLi5odHRwTWV0aG9kc1RvS2VlcC5tYXAobWV0aG9kID0+ICh7IGxhYmVsOiBtZXRob2QsIGNsYXNzOiBgZ2lvLW1ldGhvZC1iYWRnZS0ke21ldGhvZC50b0xvd2VyQ2FzZSgpfWAgfSkpKTtcbiAgICAgICAgICAgICAgaWYgKGh0dHBNZXRob2RzTGVuZ3RoICYmIGh0dHBNZXRob2RzTGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYCske2h0dHBNZXRob2RzTGVuZ3RoIC0gMn1gLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGh0dHBNZXRob2RzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQUxMJyxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsID0gYCR7aHR0cFNlbGVjdG9yLnBhdGh9JHtodHRwU2VsZWN0b3IucGF0aE9wZXJhdG9yID09PSAnU1RBUlRTX1dJVEgnID8gJy8qKicgOiAnJ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5mbG93LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEZsb3c/Ll9pZCA9PT0gZmxvdy5faWQsXG4gICAgICAgICAgICAgIG1vdXNlT3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgIGJhZGdlcyxcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RGbG93KGdyb3VwSWQ6IHN0cmluZywgZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93ID0gdGhpcy5mbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZ3JvdXBJZCk/LmZsb3dzLmZpbmQoZiA9PiBmLl9pZCA9PT0gZmxvd0lkKTtcbiAgICBpZiAoZmxvdykge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsb3dDaGFuZ2UuZW1pdChmbG93KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BZGRGbG93KGZsb3dHcm91cDogRmxvd0dyb3VwVk0pOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPVxuICAgICAgdGhpcy5hcGlUeXBlID09PSAnTUVTU0FHRSdcbiAgICAgICAgPyB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgICAgLm9wZW48XG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHRcbiAgICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZW50cnlwb2ludHM6IHRoaXMuZW50cnlwb2ludHMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgOiB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGNyZWF0ZWRPckVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFjcmVhdGVkT3JFZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZWRpdGVkRmxvd3NHcm91cHMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3Vwcyk7XG5cbiAgICAgICAgICBjb25zdCBmbG93c0dyb3VwVG9FZGl0ID0gZWRpdGVkRmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGZsb3dHcm91cC5faWQpO1xuICAgICAgICAgIGlmICghZmxvd3NHcm91cFRvRWRpdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGbG93IGdyb3VwICR7Zmxvd0dyb3VwLl9pZH0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZsb3dzR3JvdXBUb0VkaXQuZmxvd3MucHVzaChjcmVhdGVkT3JFZGl0ZWQpO1xuXG4gICAgICAgICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KGVkaXRlZEZsb3dzR3JvdXBzKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGNyZWF0ZWRPckVkaXRlZCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlndXJlRXhlY3V0aW9uKGZsb3dFeGVjdXRpb246IEZsb3dFeGVjdXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nRGF0YSwgRmxvd0V4ZWN1dGlvbiB8IHVuZGVmaW5lZD4oXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZmxvd0V4ZWN1dGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nJyxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFlZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93RXhlY3V0aW9uQ2hhbmdlLmVtaXQoZWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgRmxvd3MgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86aW5mb1wiIG1hdFRvb2x0aXA9XCJGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIG9uIHlvdXIgQVBJIGV2ZW50IHBoYXNlc1wiPjwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX2VkaXRcIlxuICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86c2V0dGluZ3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93R3JvdXBNZW51SXRlbXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIFthdHRyLnRpdGxlXT1cImZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXCI+e3sgZmxvdy5wYXRoT3JDaGFubmVsTGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTGlzdFwiPlxuICAgIDxnaW8tbG9hZGVyPjwvZ2lvLWxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
192
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRW5DLE9BQU8sRUFDTCw2Q0FBNkMsR0FFOUMsTUFBTSx3RkFBd0YsQ0FBQztBQUdoRyxPQUFPLEVBQ0wsMkNBQTJDLEdBRTVDLE1BQU0sb0ZBQW9GLENBQUM7QUFFNUYsT0FBTyxFQUNMLCtDQUErQyxHQUVoRCxNQUFNLDJFQUEyRSxDQUFDOzs7Ozs7OztBQXNCbkYsTUFBTSxPQUFPLGlDQUFpQztJQThCNUMsWUFBNkIsU0FBb0I7UUFBcEIsY0FBUyxHQUFULFNBQVMsQ0FBVztRQTVCMUMsWUFBTyxHQUFHLEtBQUssQ0FBQztRQVNoQixnQkFBVyxHQUFrQixFQUFFLENBQUM7UUFHaEMsaUJBQVksR0FBWSxTQUFTLENBQUM7UUFHbEMsZ0JBQVcsR0FBb0IsRUFBRSxDQUFDO1FBR2xDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFHaEQsc0JBQWlCLEdBQUcsSUFBSSxZ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aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IHRhcCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IGNsb25lRGVlcCB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0dyb3VwVk0sIEZsb3dWTSB9IGZyb20gJy4uLy4uL2dpby1wb2xpY3ktc3R1ZGlvLm1vZGVsJztcbmltcG9ydCB7IEFwaVR5cGUsIENoYW5uZWxTZWxlY3RvciwgQ29uZGl0aW9uU2VsZWN0b3IsIENvbm5lY3RvckluZm8sIEZsb3dFeGVjdXRpb24sIEh0dHBTZWxlY3RvciwgT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1mb3JtLWRpYWxvZy1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBGbG93R3JvdXBNZW51Vk0gZXh0ZW5kcyBGbG93R3JvdXBWTSB7XG4gIGZsb3dzOiBGbG93TWVudVZNW107XG59XG5cbmludGVyZmFjZSBGbG93TWVudVZNIGV4dGVuZHMgRmxvd1ZNIHtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG1vdXNlT3ZlcjogYm9vbGVhbjtcbiAgYmFkZ2VzOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICB9W107XG4gIHBhdGhPckNoYW5uZWxMYWJlbDogc3RyaW5nO1xuICBoYXNDb25kaXRpb246IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1mbG93cy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvRmxvd3NNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVudHJ5cG9pbnRzOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd1ZNPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dHcm91cFZNW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93RXhlY3V0aW9uPigpO1xuXG4gIHB1YmxpYyBmbG93R3JvdXBNZW51SXRlbXM6IEZsb3dHcm91cE1lbnVWTVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZsb3dzR3JvdXBzIHx8IGNoYW5nZXMuc2VsZWN0ZWRGbG93KSB7XG4gICAgICB0aGlzLmZsb3dHcm91cE1lbnVJdGVtcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKS5tYXAoZmxvd0dyb3VwID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5mbG93R3JvdXAsXG4gICAgICAgICAgZmxvd3M6IGZsb3dHcm91cC5mbG93cy5tYXAoZmxvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYWRnZXM6IEZsb3dNZW51Vk1bJ2JhZGdlcyddID0gW107XG4gICAgICAgICAgICBsZXQgcGF0aE9yQ2hhbm5lbExhYmVsID0gJyc7XG4gICAgICAgICAgICBsZXQgaGFzQ29uZGl0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIE1FU1NBR0UgQVBJIC0gQ0hBTk5FTFxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDSEFOTkVMJykgYXMgQ2hhbm5lbFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxTZWxlY3Rvcikge1xuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25Ub0JhZGdlOiBSZWNvcmQ8T3BlcmF0aW9uLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgICAgIFBVQkxJU0g6ICdQVUInLFxuICAgICAgICAgICAgICAgIFNVQlNDUklCRTogJ1NVQicsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkJhZGdlcyA9IChjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucyA/PyBbXSlcbiAgICAgICAgICAgICAgICAubWFwKG9wZXJhdGlvbiA9PiAoe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IG9wZXJhdGlvblRvQmFkZ2Vbb3BlcmF0aW9uXSxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pKVxuICAgICAgICAgICAgICAgIC5zb3J0KChhLCBiKSA9PiBhLmxhYmVsLmxvY2FsZUNvbXBhcmUoYi5sYWJlbCkpO1xuICAgICAgICAgICAgICBvcGVyYXRpb25CYWRnZXMgJiYgYmFkZ2VzLnB1c2goLi4ub3BlcmF0aW9uQmFkZ2VzKTtcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsID0gYCR7Y2hhbm5lbFNlbGVjdG9yLmNoYW5uZWx9JHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbE9wZXJhdG9yID09PSAnU1RBUlRTX1dJVEgnID8gJyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIC8vIEhUVFAgQVBJIC0gSFRUUFxuICAgICAgICAgICAgY29uc3QgaHR0cFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdIVFRQJykgYXMgSHR0cFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGh0dHBTZWxlY3Rvcikge1xuICAgICAgICAgICAgICAvLyBLZWVwIG9ubHkgMiBmaXJzdCBodHRwIG1ldGhvZHMgYW5kIGFkZCArWCBiYWRnZSBpZiB0aGVyZSBhcmUgbW9yZVxuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc1RvS2VlcCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5zbGljZSgwLCAyKTtcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNMZW5ndGggPSBodHRwU2VsZWN0b3IubWV0aG9kcz8ubGVuZ3RoO1xuICAgICAgICAgICAgICBodHRwTWV0aG9kc1RvS2VlcCAmJlxuICAgICAgICAgICAgICAgIGJhZGdlcy5wdXNoKC4uLmh0dHBNZXRob2RzVG9LZWVwLm1hcChtZXRob2QgPT4gKHsgbGFiZWw6IG1ldGhvZCwgY2xhc3M6IGBnaW8tbWV0aG9kLWJhZGdlLSR7bWV0aG9kLnRvTG93ZXJDYXNlKCl9YCB9KSkpO1xuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggJiYgaHR0cE1ldGhvZHNMZW5ndGggPiAyKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBgKyR7aHR0cE1ldGhvZHNMZW5ndGggLSAyfWAsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICBpZiAoaHR0cE1ldGhvZHNMZW5ndGggPT09IDApIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6ICdBTEwnLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtodHRwU2VsZWN0b3IucGF0aH0ke2h0dHBTZWxlY3Rvci5wYXRoT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnLyoqJyA6ICcnfWA7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIGNvbnN0IGNvbmRpdGlvblNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDT05ESVRJT04nKSBhcyBDb25kaXRpb25TZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChjb25kaXRpb25TZWxlY3RvciAmJiBjb25kaXRpb25TZWxlY3Rvci5jb25kaXRpb24pIHtcbiAgICAgICAgICAgICAgaGFzQ29uZGl0aW9uID0gdHJ1ZTtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAgICAgLi4uZmxvdyxcbiAgICAgICAgICAgICAgc2VsZWN0ZWQ6IHRoaXMuc2VsZWN0ZWRGbG93Py5faWQgPT09IGZsb3cuX2lkLFxuICAgICAgICAgICAgICBtb3VzZU92ZXI6IGZhbHNlLFxuICAgICAgICAgICAgICBiYWRnZXMsXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCxcbiAgICAgICAgICAgICAgaGFzQ29uZGl0aW9uLFxuICAgICAgICAgICAgfTtcbiAgICAgICAgICB9KSxcbiAgICAgICAgfTtcbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBzZWxlY3RGbG93KGdyb3VwSWQ6IHN0cmluZywgZmxvd0lkOiBzdHJpbmcpOiB2b2lkIHtcbiAgICBjb25zdCBmbG93ID0gdGhpcy5mbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZ3JvdXBJZCk/LmZsb3dzLmZpbmQoZiA9PiBmLl9pZCA9PT0gZmxvd0lkKTtcbiAgICBpZiAoZmxvdykge1xuICAgICAgdGhpcy5zZWxlY3RlZEZsb3dDaGFuZ2UuZW1pdChmbG93KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgb25BZGRGbG93KGZsb3dHcm91cDogRmxvd0dyb3VwVk0pOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPVxuICAgICAgdGhpcy5hcGlUeXBlID09PSAnTUVTU0FHRSdcbiAgICAgICAgPyB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgICAgLm9wZW48XG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0Zvcm1EaWFsb2dSZXN1bHRcbiAgICAgICAgICAgID4oR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LCB7XG4gICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgZW50cnlwb2ludHM6IHRoaXMuZW50cnlwb2ludHMsXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgOiB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgIClcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGNyZWF0ZWRPckVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFjcmVhdGVkT3JFZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgY29uc3QgZWRpdGVkRmxvd3NHcm91cHMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3Vwcyk7XG5cbiAgICAgICAgICBjb25zdCBmbG93c0dyb3VwVG9FZGl0ID0gZWRpdGVkRmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGZsb3dHcm91cC5faWQpO1xuICAgICAgICAgIGlmICghZmxvd3NHcm91cFRvRWRpdCkge1xuICAgICAgICAgICAgdGhyb3cgbmV3IEVycm9yKGBGbG93IGdyb3VwICR7Zmxvd0dyb3VwLl9pZH0gbm90IGZvdW5kYCk7XG4gICAgICAgICAgfVxuICAgICAgICAgIGZsb3dzR3JvdXBUb0VkaXQuZmxvd3MucHVzaChjcmVhdGVkT3JFZGl0ZWQpO1xuXG4gICAgICAgICAgdGhpcy5mbG93c0dyb3Vwc0NoYW5nZS5lbWl0KGVkaXRlZEZsb3dzR3JvdXBzKTtcbiAgICAgICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGNyZWF0ZWRPckVkaXRlZCk7XG4gICAgICAgIH0pLFxuICAgICAgKVxuICAgICAgLnN1YnNjcmliZSgpO1xuICB9XG5cbiAgcHVibGljIG9uQ29uZmlndXJlRXhlY3V0aW9uKGZsb3dFeGVjdXRpb246IEZsb3dFeGVjdXRpb24pOiB2b2lkIHtcbiAgICBjb25zdCBkaWFsb2dSZXN1bHQgPSB0aGlzLm1hdERpYWxvZ1xuICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nRGF0YSwgRmxvd0V4ZWN1dGlvbiB8IHVuZGVmaW5lZD4oXG4gICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICB7XG4gICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgZmxvd0V4ZWN1dGlvbixcbiAgICAgICAgICB9LFxuICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nJyxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFlZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93RXhlY3V0aW9uQ2hhbmdlLmVtaXQoZWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgRmxvd3MgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86aW5mb1wiIG1hdFRvb2x0aXA9XCJGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIG9uIHlvdXIgQVBJIGV2ZW50IHBoYXNlc1wiPjwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX2VkaXRcIlxuICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86c2V0dGluZ3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93R3JvdXBNZW51SXRlbXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPlxuICAgICAgICAgIDxzcGFuIFthdHRyLnRpdGxlXT1cImZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXCI+e3sgZmxvdy5wYXRoT3JDaGFubmVsTGFiZWwgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5oYXNDb25kaXRpb25cIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19jb25kaXRpb25CYWRnZSBnaW8tYmFkZ2UtbmV1dHJhbFwiIG1hdFRvb2x0aXA9XCJDb25kaXRpb25lZFwiXG4gICAgICAgICAgPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmlmXCI+PC9tYXQtaWNvblxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTGlzdFwiPlxuICAgIDxnaW8tbG9hZGVyPjwvZ2lvLWxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
@@ -47,12 +47,14 @@ export class GioPolicyStudioStepFormComponent {
47
47
  initStepForm() {
48
48
  this.stepForm = new FormGroup({
49
49
  description: new FormControl(this.step?.description),
50
+ condition: new FormControl(this.step?.condition),
50
51
  configuration: new FormControl(this.step?.configuration ?? {}),
51
52
  });
52
53
  this.stepForm.valueChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
53
54
  this.stepChange.emit({
54
55
  ...this.step,
55
56
  description: this.stepForm?.get('description')?.value,
57
+ condition: this.stepForm?.get('condition')?.value ?? undefined,
56
58
  configuration: this.stepForm?.get('configuration')?.value,
57
59
  });
58
60
  });
@@ -62,10 +64,10 @@ export class GioPolicyStudioStepFormComponent {
62
64
  }
63
65
  }
64
66
  GioPolicyStudioStepFormComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioStepFormComponent, deps: [{ token: i1.GioPolicyStudioService }], target: i0.ɵɵFactoryTarget.Component });
65
- GioPolicyStudioStepFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: { step: "step", policy: "policy" }, 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=\"policySchema$ | async as policySchema; else loadingTmpl\">\n <ng-container *ngIf=\"stepForm\" [formGroup]=\"stepForm\">\n <mat-form-field>\n <mat-label>Description</mat-label>\n <input matInput formControlName=\"description\" cdkFocusInitial />\n <mat-hint>Describe how your policy works.</mat-hint>\n </mat-form-field>\n\n <gio-form-json-schema [jsonSchema]=\"$any(policySchema)\" formControlName=\"configuration\"></gio-form-json-schema>\n </ng-container>\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 <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: [":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:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: ["jsonSchema", "options"] }, { type: i3.GioAsciidoctorComponent, selector: "gio-asciidoctor", inputs: ["content", "src"] }, { type: i3.GioLoaderComponent, selector: "gio-loader" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i4.AsyncPipe } });
67
+ GioPolicyStudioStepFormComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: { step: "step", policy: "policy" }, 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=\"policySchema$ | async as policySchema; else loadingTmpl\">\n <ng-container *ngIf=\"stepForm\" [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 <gio-form-json-schema [jsonSchema]=\"$any(policySchema)\" formControlName=\"configuration\"></gio-form-json-schema>\n </ng-container>\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 <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: [":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:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"], components: [{ type: i2.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i3.GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: ["jsonSchema", "options"] }, { type: i3.GioAsciidoctorComponent, selector: "gio-asciidoctor", inputs: ["content", "src"] }, { type: i3.GioLoaderComponent, selector: "gio-loader" }], directives: [{ type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i5.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i5.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.MatLabel, selector: "mat-label" }, { type: i6.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { type: i5.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i5.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i5.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }], pipes: { "async": i4.AsyncPipe } });
66
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioStepFormComponent, decorators: [{
67
69
  type: Component,
68
- args: [{ selector: 'gio-ps-step-form', 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=\"policySchema$ | async as policySchema; else loadingTmpl\">\n <ng-container *ngIf=\"stepForm\" [formGroup]=\"stepForm\">\n <mat-form-field>\n <mat-label>Description</mat-label>\n <input matInput formControlName=\"description\" cdkFocusInitial />\n <mat-hint>Describe how your policy works.</mat-hint>\n </mat-form-field>\n\n <gio-form-json-schema [jsonSchema]=\"$any(policySchema)\" formControlName=\"configuration\"></gio-form-json-schema>\n </ng-container>\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 <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: [":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:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] }]
70
+ args: [{ selector: 'gio-ps-step-form', 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=\"policySchema$ | async as policySchema; else loadingTmpl\">\n <ng-container *ngIf=\"stepForm\" [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 <gio-form-json-schema [jsonSchema]=\"$any(policySchema)\" formControlName=\"configuration\"></gio-form-json-schema>\n </ng-container>\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 <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: [":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:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}\n"] }]
69
71
  }], ctorParameters: function () { return [{ type: i1.GioPolicyStudioService }]; }, propDecorators: { step: [{
70
72
  type: Input
71
73
  }], policy: [{
@@ -75,4 +77,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
75
77
  }], isValid: [{
76
78
  type: Output
77
79
  }] } });
78
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFVM0MsTUFBTSxPQUFPLGdDQUFnQztJQW1CM0MsWUFBNkIsbUJBQTJDO1FBQTNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFYakUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPckMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ2dDLENBQUM7SUFFckUsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFGO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDNUIsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1lBQ3BELGFBQWEsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLGFBQWEsSUFBSSxFQUFFLENBQUM7U0FDL0QsQ0FBQyxDQUFDO1FBRUgsSUFBSSxDQUFDLFFBQVEsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsWUFBWSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUMsR0FBRyxFQUFFO1lBQzNFLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDO2dCQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJO2dCQUNaLFdBQVcsRUFBRSxJQUFJLENBQUMsUUFBUSxFQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUMsRUFBRSxLQUFLO2dCQUNyRCxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSzthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhIQXREVSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxvTEM1QjdDLHd3REFpREE7NEZEckJhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSxrQkFBa0I7NkdBTXJCLElBQUk7c0JBRFYsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIyIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1zdGVwLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvU3RlcEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXA/OiBTdGVwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2xpY3khOiBQb2xpY3k7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXNWYWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcG9saWN5U2NoZW1hJD86IE9ic2VydmFibGU8dW5rbm93bj47XG4gIHB1YmxpYyBwb2xpY3lEb2N1bWVudGF0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgc3RlcEZvcm0/OiBGb3JtR3JvdXA7XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBvbGljeVN0dWRpb1NlcnZpY2U6IEdpb1BvbGljeVN0dWRpb1NlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lTY2hlbWEodGhpcy5wb2xpY3kpO1xuICAgICAgdGhpcy5wb2xpY3lEb2N1bWVudGF0aW9uJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lEb2N1bWVudGF0aW9uKHRoaXMucG9saWN5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0U3RlcEZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0ZXBGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGVwPy5kZXNjcmlwdGlvbiksXG4gICAgICBjb25maWd1cmF0aW9uOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGVwPy5jb25maWd1cmF0aW9uID8/IHt9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuc3RlcEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RlcENoYW5nZS5lbWl0KHtcbiAgICAgICAgLi4udGhpcy5zdGVwLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdkZXNjcmlwdGlvbicpPy52YWx1ZSxcbiAgICAgICAgY29uZmlndXJhdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdjb25maWd1cmF0aW9uJyk/LnZhbHVlLFxuICAgICAgfSk7XG4gICAgfSk7XG5cbiAgICB0aGlzLnN0ZXBGb3JtLnN0YXR1c0NoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKS5zdWJzY3JpYmUodmFsaWQgPT4ge1xuICAgICAgdGhpcy5pc1ZhbGlkLmVtaXQodmFsaWQgPT09ICdWQUxJRCcpO1xuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAgICBcbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAgICBcbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICAgIFxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cblxuPGRpdiBjbGFzcz1cInNldHRpbmdzXCI+XG4gIDxkaXYgY2xhc3M9XCJzZXR0aW5nc19faGVhZGVyXCI+U2V0dGluZ3M8L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3NfX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9saWN5U2NoZW1hJCB8IGFzeW5jIGFzIHBvbGljeVNjaGVtYTsgZWxzZSBsb2FkaW5nVG1wbFwiPlxuICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInN0ZXBGb3JtXCIgW2Zvcm1Hcm91cF09XCJzdGVwRm9ybVwiPlxuICAgICAgICA8bWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgPG1hdC1sYWJlbD5EZXNjcmlwdGlvbjwvbWF0LWxhYmVsPlxuICAgICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJkZXNjcmlwdGlvblwiIGNka0ZvY3VzSW5pdGlhbCAvPlxuICAgICAgICAgIDxtYXQtaGludD5EZXNjcmliZSBob3cgeW91ciBwb2xpY3kgd29ya3MuPC9tYXQtaGludD5cbiAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cblxuICAgICAgICA8Z2lvLWZvcm0tanNvbi1zY2hlbWEgW2pzb25TY2hlbWFdPVwiJGFueShwb2xpY3lTY2hlbWEpXCIgZm9ybUNvbnRyb2xOYW1lPVwiY29uZmlndXJhdGlvblwiPjwvZ2lvLWZvcm0tanNvbi1zY2hlbWE+XG4gICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25cIj5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25fX2hlYWRlclwiPkRvY3VtZW50YXRpb248L2Rpdj5cblxuICA8ZGl2IGNsYXNzPVwiZG9jdW1lbnRhdGlvbl9fY29udGVudFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJwb2xpY3lEb2N1bWVudGF0aW9uJCB8IGFzeW5jIGFzIHBvbGljeURvY3VtZW50YXRpb247IGVsc2UgbG9hZGluZ1RtcGxcIj5cbiAgICAgIDxnaW8tYXNjaWlkb2N0b3IgW2NvbnRlbnRdPVwicG9saWN5RG9jdW1lbnRhdGlvblwiPjwvZ2lvLWFzY2lpZG9jdG9yPlxuICAgIDwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48bmctdGVtcGxhdGUgI2xvYWRpbmdUbXBsPlxuICA8Z2lvLWxvYWRlcj48L2dpby1sb2FkZXI+XG48L25nLXRlbXBsYXRlPlxuIl19
80
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wb2xpY3ktc3R1ZGlvLWFuZ3VsYXIvc3JjL2xpYi9jb21wb25lbnRzL3N0ZXAtZm9ybS9naW8tcHMtc3RlcC1mb3JtLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1mb3JtL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7Ozs7Ozs7Ozs7Ozs7O0dBY0c7QUFDSCxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQWdDLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7QUFDcEgsT0FBTyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN4RCxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDM0MsT0FBTyxFQUFjLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7QUFVM0MsTUFBTSxPQUFPLGdDQUFnQztJQW1CM0MsWUFBNkIsbUJBQTJDO1FBQTNDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFYakUsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFHdEMsWUFBTyxHQUFHLElBQUksWUFBWSxFQUFXLENBQUM7UUFPckMsaUJBQVksR0FBRyxJQUFJLE9BQU8sRUFBUSxDQUFDO0lBQ2dDLENBQUM7SUFFckUsV0FBVyxDQUFDLE9BQXNCO1FBQ3ZDLElBQUksT0FBTyxDQUFDLE1BQU0sRUFBRTtZQUNsQixJQUFJLENBQUMsYUFBYSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1lBQzNFLElBQUksQ0FBQyxvQkFBb0IsR0FBRyxJQUFJLENBQUMsbUJBQW1CLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1NBQzFGO0lBQ0gsQ0FBQztJQUVNLFFBQVE7UUFDYixJQUFJLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVNLFdBQVc7UUFDaEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFTyxZQUFZO1FBQ2xCLElBQUksQ0FBQyxRQUFRLEdBQUcsSUFBSSxTQUFTLENBQUM7WUFDNUIsV0FBVyxFQUFFLElBQUksV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsV0FBVyxDQUFDO1lBQ3BELFNBQVMsRUFBRSxJQUFJLFdBQVcsQ0FBQyxJQUFJLENBQUMsSUFBSSxFQUFFLFNBQVMsQ0FBQztZQUNoRCxhQUFhLEVBQUUsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxhQUFhLElBQUksRUFBRSxDQUFDO1NBQy9ELENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsWUFBWSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUMzRSxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQztnQkFDbkIsR0FBRyxJQUFJLENBQUMsSUFBSTtnQkFDWixXQUFXLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsYUFBYSxDQUFDLEVBQUUsS0FBSztnQkFDckQsU0FBUyxFQUFFLElBQUksQ0FBQyxRQUFRLEVBQUUsR0FBRyxDQUFDLFdBQVcsQ0FBQyxFQUFFLEtBQUssSUFBSSxTQUFTO2dCQUM5RCxhQUFhLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxHQUFHLENBQUMsZUFBZSxDQUFDLEVBQUUsS0FBSzthQUMxRCxDQUFDLENBQUM7UUFDTCxDQUFDLENBQUMsQ0FBQztRQUVILElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFO1lBQy9FLElBQUksQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLEtBQUssS0FBSyxPQUFPLENBQUMsQ0FBQztRQUN2QyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7OzhIQXhEVSxnQ0FBZ0M7a0hBQWhDLGdDQUFnQyxvTEM1QjdDLCtoRUF1REE7NEZEM0JhLGdDQUFnQztrQkFMNUMsU0FBUzsrQkFDRSxrQkFBa0I7NkdBTXJCLElBQUk7c0JBRFYsS0FBSztnQkFJQyxNQUFNO3NCQURaLEtBQUs7Z0JBSUMsVUFBVTtzQkFEaEIsTUFBTTtnQkFJQSxPQUFPO3NCQURiLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIyIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkNoYW5nZXMsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb1NlcnZpY2UgfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5zZXJ2aWNlJztcbmltcG9ydCB7IFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1zdGVwLWZvcm0nLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXN0ZXAtZm9ybS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1zdGVwLWZvcm0uY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvU3RlcEZvcm1Db21wb25lbnQgaW1wbGVtZW50cyBPbkNoYW5nZXMsIE9uSW5pdCwgT25EZXN0cm95IHtcbiAgQElucHV0KClcbiAgcHVibGljIHN0ZXA/OiBTdGVwO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBwb2xpY3khOiBQb2xpY3k7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzdGVwQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxTdGVwPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgaXNWYWxpZCA9IG5ldyBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4oKTtcblxuICBwdWJsaWMgcG9saWN5U2NoZW1hJD86IE9ic2VydmFibGU8dW5rbm93bj47XG4gIHB1YmxpYyBwb2xpY3lEb2N1bWVudGF0aW9uJD86IE9ic2VydmFibGU8c3RyaW5nPjtcblxuICBwdWJsaWMgc3RlcEZvcm0/OiBGb3JtR3JvdXA7XG5cbiAgcHJpdmF0ZSB1bnN1YnNjcmliZSQgPSBuZXcgU3ViamVjdDx2b2lkPigpO1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHJlYWRvbmx5IHBvbGljeVN0dWRpb1NlcnZpY2U6IEdpb1BvbGljeVN0dWRpb1NlcnZpY2UpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5wb2xpY3kpIHtcbiAgICAgIHRoaXMucG9saWN5U2NoZW1hJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lTY2hlbWEodGhpcy5wb2xpY3kpO1xuICAgICAgdGhpcy5wb2xpY3lEb2N1bWVudGF0aW9uJCA9IHRoaXMucG9saWN5U3R1ZGlvU2VydmljZS5nZXRQb2xpY3lEb2N1bWVudGF0aW9uKHRoaXMucG9saWN5KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgdGhpcy5pbml0U3RlcEZvcm0oKTtcbiAgfVxuXG4gIHB1YmxpYyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5uZXh0KCk7XG4gICAgdGhpcy51bnN1YnNjcmliZSQuY29tcGxldGUoKTtcbiAgfVxuXG4gIHByaXZhdGUgaW5pdFN0ZXBGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMuc3RlcEZvcm0gPSBuZXcgRm9ybUdyb3VwKHtcbiAgICAgIGRlc2NyaXB0aW9uOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGVwPy5kZXNjcmlwdGlvbiksXG4gICAgICBjb25kaXRpb246IG5ldyBGb3JtQ29udHJvbCh0aGlzLnN0ZXA/LmNvbmRpdGlvbiksXG4gICAgICBjb25maWd1cmF0aW9uOiBuZXcgRm9ybUNvbnRyb2wodGhpcy5zdGVwPy5jb25maWd1cmF0aW9uID8/IHt9KSxcbiAgICB9KTtcblxuICAgIHRoaXMuc3RlcEZvcm0udmFsdWVDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgIHRoaXMuc3RlcENoYW5nZS5lbWl0KHtcbiAgICAgICAgLi4udGhpcy5zdGVwLFxuICAgICAgICBkZXNjcmlwdGlvbjogdGhpcy5zdGVwRm9ybT8uZ2V0KCdkZXNjcmlwdGlvbicpPy52YWx1ZSxcbiAgICAgICAgY29uZGl0aW9uOiB0aGlzLnN0ZXBGb3JtPy5nZXQoJ2NvbmRpdGlvbicpPy52YWx1ZSA/PyB1bmRlZmluZWQsXG4gICAgICAgIGNvbmZpZ3VyYXRpb246IHRoaXMuc3RlcEZvcm0/LmdldCgnY29uZmlndXJhdGlvbicpPy52YWx1ZSxcbiAgICAgIH0pO1xuICAgIH0pO1xuXG4gICAgdGhpcy5zdGVwRm9ybS5zdGF0dXNDaGFuZ2VzLnBpcGUodGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSkuc3Vic2NyaWJlKHZhbGlkID0+IHtcbiAgICAgIHRoaXMuaXNWYWxpZC5lbWl0KHZhbGlkID09PSAnVkFMSUQnKTtcbiAgICB9KTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJzZXR0aW5nc1wiPlxuICA8ZGl2IGNsYXNzPVwic2V0dGluZ3NfX2hlYWRlclwiPlNldHRpbmdzPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cInNldHRpbmdzX19jb250ZW50XCI+XG4gICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInBvbGljeVNjaGVtYSQgfCBhc3luYyBhcyBwb2xpY3lTY2hlbWE7IGVsc2UgbG9hZGluZ1RtcGxcIj5cbiAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJzdGVwRm9ybVwiIFtmb3JtR3JvdXBdPVwic3RlcEZvcm1cIj5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+RGVzY3JpcHRpb248L21hdC1sYWJlbD5cbiAgICAgICAgICA8dGV4dGFyZWEgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiZGVzY3JpcHRpb25cIiBjZGtGb2N1c0luaXRpYWw+PC90ZXh0YXJlYT5cbiAgICAgICAgICA8bWF0LWhpbnQ+RGVzY3JpYmUgaG93IHlvdXIgcG9saWN5IHdvcmtzLjwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPG1hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgIDxtYXQtbGFiZWw+VHJpZ2dlciBjb25kaXRpb248L21hdC1sYWJlbD5cbiAgICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiY29uZGl0aW9uXCIgLz5cbiAgICAgICAgICA8bWF0LWhpbnQ+VGhlIGNvbmRpdGlvbiB0byBleGVjdXRlIHRoaXMgcG9saWN5LiBTdXBwb3J0cyBFeHByZXNzaW9uIExhbmd1YWdlLjwvbWF0LWhpbnQ+XG4gICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG5cbiAgICAgICAgPGdpby1mb3JtLWpzb24tc2NoZW1hIFtqc29uU2NoZW1hXT1cIiRhbnkocG9saWN5U2NoZW1hKVwiIGZvcm1Db250cm9sTmFtZT1cImNvbmZpZ3VyYXRpb25cIj48L2dpby1mb3JtLWpzb24tc2NoZW1hPlxuICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgPC9uZy1jb250YWluZXI+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uXCI+XG4gIDxkaXYgY2xhc3M9XCJkb2N1bWVudGF0aW9uX19oZWFkZXJcIj5Eb2N1bWVudGF0aW9uPC9kaXY+XG5cbiAgPGRpdiBjbGFzcz1cImRvY3VtZW50YXRpb25fX2NvbnRlbnRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwicG9saWN5RG9jdW1lbnRhdGlvbiQgfCBhc3luYyBhcyBwb2xpY3lEb2N1bWVudGF0aW9uOyBlbHNlIGxvYWRpbmdUbXBsXCI+XG4gICAgICA8Z2lvLWFzY2lpZG9jdG9yIFtjb250ZW50XT1cInBvbGljeURvY3VtZW50YXRpb25cIj48L2dpby1hc2NpaWRvY3Rvcj5cbiAgICA8L25nLWNvbnRhaW5lcj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nVG1wbD5cbiAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuPC9uZy10ZW1wbGF0ZT5cbiJdfQ==
@@ -141,10 +141,10 @@ export class GioPolicyStudioComponent {
141
141
  }
142
142
  }
143
143
  GioPolicyStudioComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioComponent, deps: [{ token: i1.GioPolicyStudioService }], target: i0.ɵɵFactoryTarget.Component });
144
- GioPolicyStudioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioComponent, selector: "gio-policy-studio", inputs: { apiType: "apiType", flowExecution: "flowExecution", entrypointsInfo: "entrypointsInfo", endpointsInfo: "endpointsInfo", commonFlows: "commonFlows", plans: "plans", policies: "policies", loading: "loading", policySchemaFetcher: "policySchemaFetcher", policyDocumentationFetcher: "policyDocumentationFetcher" }, outputs: { save: "save" }, usesOnChanges: true, 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\n<div class=\"header\">\n <div class=\"header__apiInfo\" *ngIf=\"!loading; else loadingApiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n <ng-template #loadingApiInfo>\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">&nbsp;</span>\n <span class=\"gio-badge-neutral\">&nbsp;</span>\n </div>\n </ng-template>\n\n <div class=\"header__btn\">\n <button *ngIf=\"!saving\" mat-stroked-button color=\"primary\" [disabled]=\"loading || disableSaveButton\" (click)=\"onSave()\">Save</button>\n <button *ngIf=\"saving\" mat-stroked-button color=\"primary\" disabled>Saving...</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: ["loading", "apiType", "flowExecution", "flowsGroups", "selectedFlow", "entrypoints"], outputs: ["selectedFlowChange", "flowsGroupsChange", "flowExecutionChange"] }, { type: i5.GioPolicyStudioDetailsComponent, selector: "gio-ps-flow-details", inputs: ["loading", "apiType", "flow", "entrypointsInfo", "endpointsInfo", "policies"], outputs: ["flowChange", "deleteFlow"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "titlecase": i6.TitleCasePipe } });
144
+ GioPolicyStudioComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioPolicyStudioComponent, selector: "gio-policy-studio", inputs: { apiType: "apiType", flowExecution: "flowExecution", entrypointsInfo: "entrypointsInfo", endpointsInfo: "endpointsInfo", commonFlows: "commonFlows", plans: "plans", policies: "policies", loading: "loading", policySchemaFetcher: "policySchemaFetcher", policyDocumentationFetcher: "policyDocumentationFetcher" }, outputs: { save: "save" }, usesOnChanges: true, 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\n<div class=\"header\">\n <div class=\"header__apiInfo\" *ngIf=\"!loading; else loadingApiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n <ng-template #loadingApiInfo>\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">&nbsp;</span>\n <span class=\"gio-badge-neutral\">&nbsp;</span>\n </div>\n </ng-template>\n\n <div class=\"header__btn\">\n <button *ngIf=\"!saving\" mat-stroked-button color=\"primary\" [disabled]=\"loading || disableSaveButton\" (click)=\"onSave()\">Save</button>\n <button *ngIf=\"saving\" mat-stroked-button color=\"primary\" disabled>Saving...</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;min-width:230px;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"], components: [{ type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i4.GioPolicyStudioFlowsMenuComponent, selector: "gio-ps-flows-menu", inputs: ["loading", "apiType", "flowExecution", "flowsGroups", "selectedFlow", "entrypoints"], outputs: ["selectedFlowChange", "flowsGroupsChange", "flowExecutionChange"] }, { type: i5.GioPolicyStudioDetailsComponent, selector: "gio-ps-flow-details", inputs: ["loading", "apiType", "flow", "entrypointsInfo", "endpointsInfo", "policies"], outputs: ["flowChange", "deleteFlow"] }], directives: [{ type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }], pipes: { "titlecase": i6.TitleCasePipe } });
145
145
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioPolicyStudioComponent, decorators: [{
146
146
  type: Component,
147
- args: [{ selector: 'gio-policy-studio', 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\n<div class=\"header\">\n <div class=\"header__apiInfo\" *ngIf=\"!loading; else loadingApiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n <ng-template #loadingApiInfo>\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">&nbsp;</span>\n <span class=\"gio-badge-neutral\">&nbsp;</span>\n </div>\n </ng-template>\n\n <div class=\"header__btn\">\n <button *ngIf=\"!saving\" mat-stroked-button color=\"primary\" [disabled]=\"loading || disableSaveButton\" (click)=\"onSave()\">Save</button>\n <button *ngIf=\"saving\" mat-stroked-button color=\"primary\" disabled>Saving...</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"] }]
147
+ args: [{ selector: 'gio-policy-studio', 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\n<div class=\"header\">\n <div class=\"header__apiInfo\" *ngIf=\"!loading; else loadingApiInfo\">\n <span class=\"gio-badge-primary\">\n {{ apiType | titlecase }}\n </span>\n <span\n class=\"gio-badge-neutral\"\n [matTooltip]=\"connectorsTooltip\"\n matTooltipPosition=\"right\"\n matTooltipClass=\"gio-policy-studio__tooltip-line-break\"\n >\n <mat-icon *ngFor=\"let entrypoint of entrypointsInfo\" class=\"gio-left\" [svgIcon]=\"entrypoint.icon\"></mat-icon>\n <mat-icon *ngFor=\"let endpoint of endpointsInfo\" class=\"gio-left\" [svgIcon]=\"endpoint.icon\"></mat-icon>\n </span>\n </div>\n <ng-template #loadingApiInfo>\n <div class=\"header__apiInfo\">\n <span class=\"gio-badge-primary\">&nbsp;</span>\n <span class=\"gio-badge-neutral\">&nbsp;</span>\n </div>\n </ng-template>\n\n <div class=\"header__btn\">\n <button *ngIf=\"!saving\" mat-stroked-button color=\"primary\" [disabled]=\"loading || disableSaveButton\" (click)=\"onSave()\">Save</button>\n <button *ngIf=\"saving\" mat-stroked-button color=\"primary\" disabled>Saving...</button>\n </div>\n</div>\n\n<div class=\"wrapper\">\n <div class=\"wrapper__flowsMenu\">\n <gio-ps-flows-menu\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flowExecution]=\"flowExecution\"\n [flowsGroups]=\"flowsGroups\"\n [entrypoints]=\"entrypointsInfo\"\n (flowsGroupsChange)=\"onFlowsGroupsChange($event)\"\n (flowExecutionChange)=\"onFlowExecutionChange($event)\"\n [(selectedFlow)]=\"selectedFlow\"\n ></gio-ps-flows-menu>\n </div>\n\n <div class=\"wrapper__flowDetails\">\n <gio-ps-flow-details\n [loading]=\"loading\"\n [apiType]=\"apiType\"\n [flow]=\"selectedFlow\"\n [entrypointsInfo]=\"entrypointsInfo\"\n [endpointsInfo]=\"endpointsInfo\"\n [policies]=\"policies\"\n (flowChange)=\"onSelectedFlowChange($event)\"\n (deleteFlow)=\"onDeleteSelectedFlow($event)\"\n ></gio-ps-flow-details>\n </div>\n</div>\n", styles: [":host{display:flex;height:100%;flex-direction:column;padding:16px;background-color:#fff}::ng-deep .gio-policy-studio__tooltip-line-break{white-space:pre-line}.header{display:flex;align-items:center;padding-bottom:16px}.header__apiInfo{flex:1 1 auto}.wrapper{display:flex;min-height:0;flex:1 1 auto;flex-direction:row;gap:16px}.wrapper__flowsMenu{overflow:hidden;min-width:230px;max-width:400px;flex:1 1 33%;border:1px solid #d3d5dc;border-radius:8px}.wrapper__flowDetails{overflow:hidden;flex:1 1 66%;border:1px solid #d3d5dc;border-radius:8px}\n"] }]
148
148
  }], ctorParameters: function () { return [{ type: i1.GioPolicyStudioService }]; }, propDecorators: { apiType: [{
149
149
  type: Input
150
150
  }], flowExecution: [{