@gravitee/ui-policy-studio-angular 7.52.0-renovate-angular-ac8cadc → 7.53.0-angular15-a856f7a

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 (74) hide show
  1. package/esm2020/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.mjs +4 -4
  2. package/esm2020/lib/components/flow-details/gio-ps-flow-details.component.mjs +14 -14
  3. package/esm2020/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.mjs +7 -7
  4. package/esm2020/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.mjs +13 -13
  5. package/esm2020/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.mjs +11 -11
  6. package/esm2020/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.mjs +20 -20
  7. package/esm2020/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.mjs +23 -23
  8. package/esm2020/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.mjs +23 -23
  9. package/esm2020/lib/components/flows-menu/gio-ps-flows-menu.component.mjs +12 -12
  10. package/esm2020/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.mjs +22 -22
  11. package/esm2020/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.mjs +12 -12
  12. package/esm2020/lib/components/step-form/gio-ps-step-form.component.mjs +15 -15
  13. package/esm2020/lib/gio-policy-studio.component.mjs +10 -10
  14. package/esm2020/lib/gio-policy-studio.module.mjs +33 -37
  15. package/esm2020/lib/gio-policy-studio.service.mjs +13 -9
  16. package/esm2020/testing/lib/components/flow-details/gio-ps-flow-details.harness.mjs +2 -2
  17. package/esm2020/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.mjs +2 -2
  18. package/esm2020/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.mjs +2 -2
  19. package/esm2020/testing/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.harness.mjs +4 -4
  20. package/esm2020/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.mjs +4 -4
  21. package/esm2020/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.mjs +4 -4
  22. package/esm2020/testing/lib/components/flows-menu/gio-ps-flows-menu.harness.mjs +2 -2
  23. package/esm2020/testing/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.harness.mjs +4 -4
  24. package/esm2020/testing/lib/components/step-form/gio-ps-step-form.harness.mjs +2 -2
  25. package/esm2020/testing/lib/gio-policy-studio.harness.mjs +3 -3
  26. package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs +43 -43
  27. package/fesm2015/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
  28. package/fesm2015/gravitee-ui-policy-studio-angular.mjs +166 -162
  29. package/fesm2015/gravitee-ui-policy-studio-angular.mjs.map +1 -1
  30. package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs +43 -43
  31. package/fesm2020/gravitee-ui-policy-studio-angular-testing.mjs.map +1 -1
  32. package/fesm2020/gravitee-ui-policy-studio-angular.mjs +166 -162
  33. package/fesm2020/gravitee-ui-policy-studio-angular.mjs.map +1 -1
  34. package/lib/components/filter-pipe/gio-flter-connectors-by-mode.pipe.d.ts +1 -1
  35. package/lib/components/flow-details/gio-ps-flow-details.component.d.ts +2 -2
  36. package/lib/components/flow-details-info-bar/gio-ps-flow-details-info-bar.component.d.ts +1 -1
  37. package/lib/components/flow-details-phase/gio-ps-flow-details-phase.component.d.ts +3 -3
  38. package/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.component.d.ts +2 -2
  39. package/lib/components/flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component.d.ts +5 -5
  40. package/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.component.d.ts +5 -5
  41. package/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component.d.ts +6 -6
  42. package/lib/components/flow-form-dialog/gio-ps-flow-form-dialog-result.model.d.ts +1 -1
  43. package/lib/components/flows-menu/gio-ps-flows-menu.component.d.ts +2 -2
  44. package/lib/components/policies-catalog-dialog/gio-ps-policies-catalog-dialog.component.d.ts +8 -8
  45. package/lib/components/step-edit-dialog/gio-ps-step-edit-dialog.component.d.ts +4 -4
  46. package/lib/components/step-form/gio-ps-step-form.component.d.ts +3 -3
  47. package/lib/gio-policy-studio.component.d.ts +1 -1
  48. package/lib/gio-policy-studio.module.d.ts +11 -11
  49. package/lib/gio-policy-studio.service.d.ts +3 -0
  50. package/lib/models/ConnectorsInfo.d.ts +1 -1
  51. package/lib/models/PolicySchemaFetcher.d.ts +2 -2
  52. package/lib/models/SaveOutput.d.ts +1 -1
  53. package/lib/models/flow/ApiType.d.ts +1 -1
  54. package/lib/models/flow/FlowExecution.d.ts +1 -1
  55. package/lib/models/flow/HttpMethod.d.ts +1 -1
  56. package/lib/models/flow/Selector.d.ts +4 -4
  57. package/lib/models/policy/Policy.d.ts +1 -1
  58. package/package.json +11 -11
  59. package/testing/lib/components/flow-details-phase/gio-ps-flow-details-phase.harness.d.ts +3 -3
  60. package/testing/lib/components/flow-details-phase-step/gio-ps-flow-details-phase-step.harness.d.ts +1 -1
  61. package/testing/lib/components/flow-form-dialog/flow-message-form-dialog/gio-ps-flow-message-form-dialog.harness.d.ts +1 -1
  62. package/testing/lib/components/flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.harness.d.ts +1 -1
  63. package/testing/lib/components/step-form/gio-ps-step-form.harness.d.ts +1 -1
  64. package/testing/lib/models/ConnectorsInfo.d.ts +1 -1
  65. package/testing/lib/models/PolicySchemaFetcher.d.ts +2 -2
  66. package/testing/lib/models/SaveOutput.d.ts +1 -1
  67. package/testing/lib/models/flow/ApiType.d.ts +1 -1
  68. package/testing/lib/models/flow/FlowExecution.d.ts +1 -1
  69. package/testing/lib/models/flow/HttpMethod.d.ts +1 -1
  70. package/testing/lib/models/flow/Selector.d.ts +4 -4
  71. package/testing/lib/models/policy/Policy.d.ts +1 -1
  72. package/testing/package.json +0 -10
  73. /package/{gravitee-ui-policy-studio-angular.d.ts → index.d.ts} +0 -0
  74. /package/testing/{gravitee-ui-policy-studio-angular-testing.d.ts → index.d.ts} +0 -0
@@ -21,12 +21,12 @@ import { GioPolicyStudioFlowMessageFormDialogComponent, } from '../flow-form-dia
21
21
  import { GioPolicyStudioFlowProxyFormDialogComponent, } from '../flow-form-dialog/flow-proxy-form-dialog/gio-ps-flow-proxy-form-dialog.component';
22
22
  import { GioPolicyStudioFlowExecutionFormDialogComponent, } from '../flow-execution-form-dialog/gio-ps-flow-execution-form-dialog.component';
23
23
  import * as i0 from "@angular/core";
24
- import * as i1 from "@angular/material/dialog";
25
- import * as i2 from "@angular/material/icon";
26
- import * as i3 from "@angular/material/button";
27
- import * as i4 from "@gravitee/ui-particles-angular";
28
- import * as i5 from "@angular/material/tooltip";
29
- import * as i6 from "@angular/common";
24
+ import * as i1 from "@angular/material/legacy-dialog";
25
+ import * as i2 from "@angular/common";
26
+ import * as i3 from "@angular/material/legacy-button";
27
+ import * as i4 from "@angular/material/legacy-tooltip";
28
+ import * as i5 from "@angular/material/icon";
29
+ import * as i6 from "@gravitee/ui-particles-angular";
30
30
  export class GioPolicyStudioFlowsMenuComponent {
31
31
  constructor(matDialog) {
32
32
  this.matDialog = matDialog;
@@ -172,12 +172,12 @@ export class GioPolicyStudioFlowsMenuComponent {
172
172
  .subscribe();
173
173
  }
174
174
  }
175
- GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, deps: [{ token: i1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
176
- GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", 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 *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\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: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;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"] }] });
177
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, decorators: [{
175
+ GioPolicyStudioFlowsMenuComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, deps: [{ token: i1.MatLegacyDialog }], target: i0.ɵɵFactoryTarget.Component });
176
+ GioPolicyStudioFlowsMenuComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", 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 *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\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: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;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-size:16px;font-weight:600;line-height:24px;font-family: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-size:14px;font-weight:600;line-height:20px;font-family: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"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatLegacyButton, 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"] }, { kind: "directive", type: i4.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i6.GioLoaderComponent, selector: "gio-loader" }] });
177
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioFlowsMenuComponent, decorators: [{
178
178
  type: Component,
179
- 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 *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\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: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;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"] }]
180
- }], ctorParameters: function () { return [{ type: i1.MatDialog }]; }, propDecorators: { loading: [{
179
+ 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 *ngIf=\"flow.pathOrChannelLabel; else emptyPathOrChannelLabel\" [attr.title]=\"flow.pathOrChannelLabel\">{{\n flow.pathOrChannelLabel\n }}</span>\n <ng-template #emptyPathOrChannelLabel>\n <em>Empty</em>\n </ng-template>\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: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}:host{display:flex;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-size:16px;font-weight:600;line-height:24px;font-family: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-size:14px;font-weight:600;line-height:20px;font-family: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"] }]
180
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialog }]; }, propDecorators: { loading: [{
181
181
  type: Input
182
182
  }], apiType: [{
183
183
  type: Input
@@ -196,4 +196,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImpor
196
196
  }], flowExecutionChange: [{
197
197
  type: Output
198
198
  }] } });
199
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFHaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFDTCwrQ0FBK0MsR0FFaEQsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7QUFzQm5GLE1BQU0sT0FBTyxpQ0FBaUM7SUE4QjVDLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QjFDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFTaEIsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBR2xDLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUdsQyx1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RSxtQkFBbUI7Z0dBTXRCLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgdGFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgY2xvbmVEZWVwLCBpc0VtcHR5IH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEdJT19ESUFMT0dfV0lEVEggfSBmcm9tICdAZ3Jhdml0ZWUvdWktcGFydGljbGVzLWFuZ3VsYXInO1xuXG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZmxvdy1tZXNzYWdlLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEZsb3dHcm91cFZNLCBGbG93Vk0gfSBmcm9tICcuLi8uLi9naW8tcG9saWN5LXN0dWRpby5tb2RlbCc7XG5pbXBvcnQgeyBBcGlUeXBlLCBDaGFubmVsU2VsZWN0b3IsIENvbmRpdGlvblNlbGVjdG9yLCBDb25uZWN0b3JJbmZvLCBGbG93RXhlY3V0aW9uLCBIdHRwU2VsZWN0b3IsIE9wZXJhdGlvbiB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5pbXBvcnQge1xuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93UHJveHlGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LXByb3h5LWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LXByb3h5LWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdCB9IGZyb20gJy4uL2Zsb3ctZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZm9ybS1kaWFsb2ctcmVzdWx0Lm1vZGVsJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LFxuICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsXG59IGZyb20gJy4uL2Zsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nL2dpby1wcy1mbG93LWV4ZWN1dGlvbi1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuXG5pbnRlcmZhY2UgRmxvd0dyb3VwTWVudVZNIGV4dGVuZHMgRmxvd0dyb3VwVk0ge1xuICBmbG93czogRmxvd01lbnVWTVtdO1xufVxuXG5pbnRlcmZhY2UgRmxvd01lbnVWTSBleHRlbmRzIEZsb3dWTSB7XG4gIHNlbGVjdGVkOiBib29sZWFuO1xuICBtb3VzZU92ZXI6IGJvb2xlYW47XG4gIGJhZGdlczoge1xuICAgIGxhYmVsOiBzdHJpbmc7XG4gICAgY2xhc3M6IHN0cmluZztcbiAgfVtdO1xuICBwYXRoT3JDaGFubmVsTGFiZWw6IHN0cmluZztcbiAgaGFzQ29uZGl0aW9uOiBib29sZWFuO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtZmxvd3MtbWVudScsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb0Zsb3dzTWVudUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uQ2hhbmdlcyB7XG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBsb2FkaW5nID0gZmFsc2U7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGFwaVR5cGUhOiBBcGlUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uITogRmxvd0V4ZWN1dGlvbjtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHM6IEZsb3dHcm91cFZNW10gPSBbXTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgc2VsZWN0ZWRGbG93PzogRmxvd1ZNID0gdW5kZWZpbmVkO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBlbnRyeXBvaW50czogQ29ubmVjdG9ySW5mb1tdID0gW107XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3dDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dWTT4oKTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIGZsb3dzR3JvdXBzQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93R3JvdXBWTVtdPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd0V4ZWN1dGlvbkNoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd0V4ZWN1dGlvbj4oKTtcblxuICBwdWJsaWMgZmxvd0dyb3VwTWVudUl0ZW1zOiBGbG93R3JvdXBNZW51Vk1bXSA9IFtdO1xuXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2cpIHt9XG5cbiAgcHVibGljIG5nT25DaGFuZ2VzKGNoYW5nZXM6IFNpbXBsZUNoYW5nZXMpOiB2b2lkIHtcbiAgICBpZiAoY2hhbmdlcy5mbG93c0dyb3VwcyB8fCBjaGFuZ2VzLnNlbGVjdGVkRmxvdykge1xuICAgICAgdGhpcy5mbG93R3JvdXBNZW51SXRlbXMgPSBjbG9uZURlZXAodGhpcy5mbG93c0dyb3VwcykubWFwKGZsb3dHcm91cCA9PiB7XG4gICAgICAgIHJldHVybiB7XG4gICAgICAgICAgLi4uZmxvd0dyb3VwLFxuICAgICAgICAgIGZsb3dzOiBmbG93R3JvdXAuZmxvd3MubWFwKGZsb3cgPT4ge1xuICAgICAgICAgICAgY29uc3QgYmFkZ2VzOiBGbG93TWVudVZNWydiYWRnZXMnXSA9IFtdO1xuICAgICAgICAgICAgbGV0IHBhdGhPckNoYW5uZWxMYWJlbCA9ICcnO1xuICAgICAgICAgICAgbGV0IGhhc0NvbmRpdGlvbiA9IGZhbHNlO1xuXG4gICAgICAgICAgICAvLyBNRVNTQUdFIEFQSSAtIENIQU5ORUxcbiAgICAgICAgICAgIGNvbnN0IGNoYW5uZWxTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ0hBTk5FTCcpIGFzIENoYW5uZWxTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChjaGFubmVsU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uVG9CYWRnZTogUmVjb3JkPE9wZXJhdGlvbiwgc3RyaW5nPiA9IHtcbiAgICAgICAgICAgICAgICBQVUJMSVNIOiAnUFVCJyxcbiAgICAgICAgICAgICAgICBTVUJTQ1JJQkU6ICdTVUInLFxuICAgICAgICAgICAgICB9O1xuICAgICAgICAgICAgICAvLyBJZiBubyBvcGVyYXRpb25zIGFyZSBzZWxlY3RlZCwgYWxsIG9wZXJhdGlvbnMgYXJlIHZhbGlkXG4gICAgICAgICAgICAgIGNvbnN0IG9wZXJhdGlvbkJhZGdlcyA9IChcbiAgICAgICAgICAgICAgICAhY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnMgfHwgaXNFbXB0eShjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucylcbiAgICAgICAgICAgICAgICAgID8gKFsnUFVCTElTSCcsICdTVUJTQ1JJQkUnXSBhcyBjb25zdClcbiAgICAgICAgICAgICAgICAgIDogY2hhbm5lbFNlbGVjdG9yLm9wZXJhdGlvbnNcbiAgICAgICAgICAgICAgKVxuICAgICAgICAgICAgICAgIC5tYXAob3BlcmF0aW9uID0+ICh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogb3BlcmF0aW9uVG9CYWRnZVtvcGVyYXRpb25dLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSkpXG4gICAgICAgICAgICAgICAgLnNvcnQoKGEsIGIpID0+IGEubGFiZWwubG9jYWxlQ29tcGFyZShiLmxhYmVsKSk7XG4gICAgICAgICAgICAgIG9wZXJhdGlvbkJhZGdlcyAmJiBiYWRnZXMucHVzaCguLi5vcGVyYXRpb25CYWRnZXMpO1xuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwgPSBgJHtjaGFubmVsU2VsZWN0b3IuY2hhbm5lbH0ke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsT3BlcmF0b3IgPT09ICdTVEFSVFNfV0lUSCcgPyAnKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgLy8gSFRUUCBBUEkgLSBIVFRQXG4gICAgICAgICAgICBjb25zdCBodHRwU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0hUVFAnKSBhcyBIdHRwU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoaHR0cFNlbGVjdG9yKSB7XG4gICAgICAgICAgICAgIC8vIEtlZXAgb25seSAyIGZpcnN0IGh0dHAgbWV0aG9kcyBhbmQgYWRkICtYIGJhZGdlIGlmIHRoZXJlIGFyZSBtb3JlXG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzVG9LZWVwID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/LnNsaWNlKDAsIDIpO1xuICAgICAgICAgICAgICBjb25zdCBodHRwTWV0aG9kc0xlbmd0aCA9IGh0dHBTZWxlY3Rvci5tZXRob2RzPy5sZW5ndGg7XG4gICAgICAgICAgICAgIGh0dHBNZXRob2RzVG9LZWVwICYmXG4gICAgICAgICAgICAgICAgYmFkZ2VzLnB1c2goLi4uaHR0cE1ldGhvZHNUb0tlZXAubWFwKG1ldGhvZCA9PiAoeyBsYWJlbDogbWV0aG9kLCBjbGFzczogYGdpby1tZXRob2QtYmFkZ2UtJHttZXRob2QudG9Mb3dlckNhc2UoKX1gIH0pKSk7XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCAmJiBodHRwTWV0aG9kc0xlbmd0aCA+IDIpIHtcbiAgICAgICAgICAgICAgICBiYWRnZXM/LnB1c2goe1xuICAgICAgICAgICAgICAgICAgbGFiZWw6IGArJHtodHRwTWV0aG9kc0xlbmd0aCAtIDJ9YCxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG4gICAgICAgICAgICAgIGlmIChodHRwTWV0aG9kc0xlbmd0aCA9PT0gMCkge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogJ0FMTCcsXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KTtcbiAgICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2h0dHBTZWxlY3Rvci5wYXRofSR7aHR0cFNlbGVjdG9yLnBhdGhPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcvKionIDogJyd9YDtcbiAgICAgICAgICAgIH1cblxuICAgICAgICAgICAgY29uc3QgY29uZGl0aW9uU2VsZWN0b3IgPSBmbG93LnNlbGVjdG9ycz8uZmluZChzID0+IHMudHlwZSA9PT0gJ0NPTkRJVElPTicpIGFzIENvbmRpdGlvblNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNvbmRpdGlvblNlbGVjdG9yICYmIGNvbmRpdGlvblNlbGVjdG9yLmNvbmRpdGlvbikge1xuICAgICAgICAgICAgICBoYXNDb25kaXRpb24gPSB0cnVlO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICByZXR1cm4ge1xuICAgICAgICAgICAgICAuLi5mbG93LFxuICAgICAgICAgICAgICBzZWxlY3RlZDogdGhpcy5zZWxlY3RlZEZsb3c/Ll9pZCA9PT0gZmxvdy5faWQsXG4gICAgICAgICAgICAgIG1vdXNlT3ZlcjogZmFsc2UsXG4gICAgICAgICAgICAgIGJhZGdlcyxcbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsLFxuICAgICAgICAgICAgICBoYXNDb25kaXRpb24sXG4gICAgICAgICAgICB9O1xuICAgICAgICAgIH0pLFxuICAgICAgICB9O1xuICAgICAgfSk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIHNlbGVjdEZsb3coZ3JvdXBJZDogc3RyaW5nLCBmbG93SWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IGZsb3cgPSB0aGlzLmZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBncm91cElkKT8uZmxvd3MuZmluZChmID0+IGYuX2lkID09PSBmbG93SWQpO1xuICAgIGlmIChmbG93KSB7XG4gICAgICB0aGlzLnNlbGVjdGVkRmxvd0NoYW5nZS5lbWl0KGZsb3cpO1xuICAgIH1cbiAgfVxuXG4gIHB1YmxpYyBvbkFkZEZsb3coZmxvd0dyb3VwOiBGbG93R3JvdXBWTSk6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9XG4gICAgICB0aGlzLmFwaVR5cGUgPT09ICdNRVNTQUdFJ1xuICAgICAgICA/IHRoaXMubWF0RGlhbG9nXG4gICAgICAgICAgICAub3BlbjxcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nQ29tcG9uZW50LFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dEYXRhLFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdFxuICAgICAgICAgICAgPihHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgICAgICAgZGF0YToge1xuICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICBlbnRyeXBvaW50czogdGhpcy5lbnRyeXBvaW50cyxcbiAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgfSlcbiAgICAgICAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAgIDogdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLCBHaW9Qb2xpY3lTdHVkaW9GbG93Rm9ybURpYWxvZ1Jlc3VsdD4oXG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgIHtcbiAgICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgICBmbG93OiB1bmRlZmluZWQsXG4gICAgICAgICAgICAgICAgfSxcbiAgICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICAgIGlkOiAnZ2lvUHNGbG93Rm9ybURpYWxvZycsXG4gICAgICAgICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgKVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoY3JlYXRlZE9yRWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWNyZWF0ZWRPckVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICBjb25zdCBlZGl0ZWRGbG93c0dyb3VwcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKTtcblxuICAgICAgICAgIGNvbnN0IGZsb3dzR3JvdXBUb0VkaXQgPSBlZGl0ZWRGbG93c0dyb3Vwcy5maW5kKGZnID0+IGZnLl9pZCA9PT0gZmxvd0dyb3VwLl9pZCk7XG4gICAgICAgICAgaWYgKCFmbG93c0dyb3VwVG9FZGl0KSB7XG4gICAgICAgICAgICB0aHJvdyBuZXcgRXJyb3IoYEZsb3cgZ3JvdXAgJHtmbG93R3JvdXAuX2lkfSBub3QgZm91bmRgKTtcbiAgICAgICAgICB9XG4gICAgICAgICAgZmxvd3NHcm91cFRvRWRpdC5mbG93cy5wdXNoKGNyZWF0ZWRPckVkaXRlZCk7XG5cbiAgICAgICAgICB0aGlzLmZsb3dzR3JvdXBzQ2hhbmdlLmVtaXQoZWRpdGVkRmxvd3NHcm91cHMpO1xuICAgICAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoY3JlYXRlZE9yRWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgb25Db25maWd1cmVFeGVjdXRpb24oZmxvd0V4ZWN1dGlvbjogRmxvd0V4ZWN1dGlvbik6IHZvaWQge1xuICAgIGNvbnN0IGRpYWxvZ1Jlc3VsdCA9IHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dEYXRhLCBGbG93RXhlY3V0aW9uIHwgdW5kZWZpbmVkPihcbiAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgIHtcbiAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICBmbG93RXhlY3V0aW9uLFxuICAgICAgICAgIH0sXG4gICAgICAgICAgcm9sZTogJ2FsZXJ0ZGlhbG9nJyxcbiAgICAgICAgICBpZDogJ2dpb1BzRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2cnLFxuICAgICAgICAgIHdpZHRoOiBHSU9fRElBTE9HX1dJRFRILk1FRElVTSxcbiAgICAgICAgfSxcbiAgICAgIClcbiAgICAgIC5hZnRlckNsb3NlZCgpO1xuXG4gICAgZGlhbG9nUmVzdWx0XG4gICAgICAucGlwZShcbiAgICAgICAgdGFwKGVkaXRlZCA9PiB7XG4gICAgICAgICAgaWYgKCFlZGl0ZWQpIHtcbiAgICAgICAgICAgIHJldHVybjtcbiAgICAgICAgICB9XG4gICAgICAgICAgdGhpcy5mbG93RXhlY3V0aW9uQ2hhbmdlLmVtaXQoZWRpdGVkKTtcbiAgICAgICAgfSksXG4gICAgICApXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICAgIFxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICAgIFxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gICAgXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuXG48ZGl2IGNsYXNzPVwiaGVhZGVyXCI+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2xhYmVsXCI+XG4gICAgRmxvd3MgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86aW5mb1wiIG1hdFRvb2x0aXA9XCJGbG93cyBhbGxvdyB5b3UgdG8gYXBwbHkgZGlmZmVyZW50IHBvbGljaWVzIG9uIHlvdXIgQVBJIGV2ZW50IHBoYXNlc1wiPjwvbWF0LWljb24+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5cIj5cbiAgICA8YnV0dG9uXG4gICAgICBjbGFzcz1cImhlYWRlcl9fY29uZmlnQnRuX2VkaXRcIlxuICAgICAgbWF0LXN0cm9rZWQtYnV0dG9uXG4gICAgICBtYXQtaWNvbi1idXR0b25cbiAgICAgIFtkaXNhYmxlZF09XCJsb2FkaW5nXCJcbiAgICAgIChjbGljayk9XCJvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uKVwiXG4gICAgPlxuICAgICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86c2V0dGluZ3NcIj48L21hdC1pY29uPlxuICAgIDwvYnV0dG9uPlxuICA8L2Rpdj5cbjwvZGl2PlxuXG48ZGl2IGNsYXNzPVwibGlzdFwiICpuZ0lmPVwiIWxvYWRpbmc7IGVsc2UgbG9hZGluZ0xpc3RcIj5cbiAgPGRpdiAqbmdGb3I9XCJsZXQgZmxvd3NHcm91cCBvZiBmbG93R3JvdXBNZW51SXRlbXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBcIj5cbiAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyXCI+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19sYWJlbFwiPlxuICAgICAgICA8bWF0LWljb24gKm5nSWY9XCJmbG93c0dyb3VwLl9pY29uXCIgW3N2Z0ljb25dPVwiZmxvd3NHcm91cC5faWNvblwiPjwvbWF0LWljb24+XG4gICAgICAgIDxzcGFuPnt7IGZsb3dzR3JvdXAubmFtZSB9fTwvc3Bhbj5cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2hlYWRlcl9fYWRkQnRuXCI+XG4gICAgICAgIDxidXR0b24gbWF0LWljb24tYnV0dG9uIChjbGljayk9XCJvbkFkZEZsb3coZmxvd3NHcm91cClcIj48bWF0LWljb24gc3ZnSWNvbj1cImdpbzpwbHVzXCIgbWF0VG9vbHRpcD1cIk5ldyBmbG93XCI+PC9tYXQtaWNvbj48L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuXG4gICAgPGRpdlxuICAgICAgKm5nRm9yPVwibGV0IGZsb3cgb2YgZmxvd3NHcm91cC5mbG93c1wiXG4gICAgICBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dcIlxuICAgICAgW2NsYXNzLnNlbGVjdGVkXT1cImZsb3cuc2VsZWN0ZWRcIlxuICAgICAgKGNsaWNrKT1cInNlbGVjdEZsb3coZmxvd3NHcm91cC5faWQsIGZsb3cuX2lkKVwiXG4gICAgICAobW91c2VvdXQpPVwiZmxvdy5tb3VzZU92ZXIgPSBmYWxzZVwiXG4gICAgICAobW91c2VvdmVyKT1cImZsb3cubW91c2VPdmVyID0gdHJ1ZVwiXG4gICAgPlxuICAgICAgPGRpdiAqbmdJZj1cImZsb3cubmFtZVwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19fbmFtZVwiIFthdHRyLnRpdGxlXT1cImZsb3cubmFtZVwiPlxuICAgICAgICB7eyBmbG93Lm5hbWUgfX1cbiAgICAgIDwvZGl2PlxuICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zXCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzXCI+XG4gICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGJhZGdlIG9mIGZsb3cuYmFkZ2VzXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fYmFkZ2VzX19iYWRnZVwiIFtuZ0NsYXNzXT1cImJhZGdlLmNsYXNzXCI+e3tcbiAgICAgICAgICAgIGJhZGdlLmxhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuICAgICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX3BhdGhPckNoYW5uZWxMYWJlbFwiPlxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5wYXRoT3JDaGFubmVsTGFiZWw7IGVsc2UgZW1wdHlQYXRoT3JDaGFubmVsTGFiZWxcIiBbYXR0ci50aXRsZV09XCJmbG93LnBhdGhPckNoYW5uZWxMYWJlbFwiPnt7XG4gICAgICAgICAgICBmbG93LnBhdGhPckNoYW5uZWxMYWJlbFxuICAgICAgICAgIH19PC9zcGFuPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSAjZW1wdHlQYXRoT3JDaGFubmVsTGFiZWw+XG4gICAgICAgICAgICA8ZW0+RW1wdHk8L2VtPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxzcGFuICpuZ0lmPVwiZmxvdy5oYXNDb25kaXRpb25cIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19jb25kaXRpb25CYWRnZSBnaW8tYmFkZ2UtbmV1dHJhbFwiIG1hdFRvb2x0aXA9XCJDb25kaXRpb25lZFwiXG4gICAgICAgICAgPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmlmXCI+PC9tYXQtaWNvblxuICAgICAgICA+PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxuZy10ZW1wbGF0ZSAjbG9hZGluZ0xpc3Q+XG4gIDxkaXYgY2xhc3M9XCJsb2FkaW5nTGlzdFwiPlxuICAgIDxnaW8tbG9hZGVyPjwvZ2lvLWxvYWRlcj5cbiAgPC9kaXY+XG48L25nLXRlbXBsYXRlPlxuIl19
199
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9mbG93cy1tZW51L2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvZmxvd3MtbWVudS9naW8tcHMtZmxvd3MtbWVudS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBYSxNQUFNLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBRWpHLE9BQU8sRUFBRSxHQUFHLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNyQyxPQUFPLEVBQUUsU0FBUyxFQUFFLE9BQU8sRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUM1QyxPQUFPLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUVsRSxPQUFPLEVBQ0wsNkNBQTZDLEdBRTlDLE1BQU0sd0ZBQXdGLENBQUM7QUFHaEcsT0FBTyxFQUNMLDJDQUEyQyxHQUU1QyxNQUFNLG9GQUFvRixDQUFDO0FBRTVGLE9BQU8sRUFDTCwrQ0FBK0MsR0FFaEQsTUFBTSwyRUFBMkUsQ0FBQzs7Ozs7Ozs7QUFzQm5GLE1BQU0sT0FBTyxpQ0FBaUM7SUE4QjVDLFlBQTZCLFNBQW9CO1FBQXBCLGNBQVMsR0FBVCxTQUFTLENBQVc7UUE1QjFDLFlBQU8sR0FBRyxLQUFLLENBQUM7UUFTaEIsZ0JBQVcsR0FBa0IsRUFBRSxDQUFDO1FBR2hDLGlCQUFZLEdBQVksU0FBUyxDQUFDO1FBR2xDLGdCQUFXLEdBQW9CLEVBQUUsQ0FBQztRQUdsQyx1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RSxtQkFBbUI7c0dBTXRCLE9BQU87c0JBRGIsS0FBSztnQkFJQyxPQUFPO3NCQURiLEtBQUs7Z0JBSUMsYUFBYTtzQkFEbkIsS0FBSztnQkFJQyxXQUFXO3NCQURqQixLQUFLO2dCQUlDLFlBQVk7c0JBRGxCLEtBQUs7Z0JBSUMsV0FBVztzQkFEakIsS0FBSztnQkFJQyxrQkFBa0I7c0JBRHhCLE1BQU07Z0JBSUEsaUJBQWlCO3NCQUR2QixNQUFNO2dCQUlBLG1CQUFtQjtzQkFEekIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjIgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uQ2hhbmdlcywgT3V0cHV0LCBTaW1wbGVDaGFuZ2VzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRMZWdhY3lEaWFsb2cgYXMgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5pbXBvcnQgeyB0YXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBjbG9uZURlZXAsIGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgR0lPX0RJQUxPR19XSURUSCB9IGZyb20gJ0BncmF2aXRlZS91aS1wYXJ0aWNsZXMtYW5ndWxhcic7XG5cbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd01lc3NhZ2VGb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9mbG93LW1lc3NhZ2UtZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctbWVzc2FnZS1mb3JtLWRpYWxvZy5jb21wb25lbnQnO1xuaW1wb3J0IHsgRmxvd0dyb3VwVk0sIEZsb3dWTSB9IGZyb20gJy4uLy4uL2dpby1wb2xpY3ktc3R1ZGlvLm1vZGVsJztcbmltcG9ydCB7IEFwaVR5cGUsIENoYW5uZWxTZWxlY3RvciwgQ29uZGl0aW9uU2VsZWN0b3IsIENvbm5lY3RvckluZm8sIEZsb3dFeGVjdXRpb24sIEh0dHBTZWxlY3RvciwgT3BlcmF0aW9uIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcbmltcG9ydCB7XG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dQcm94eUZvcm1EaWFsb2dEYXRhLFxufSBmcm9tICcuLi9mbG93LWZvcm0tZGlhbG9nL2Zsb3ctcHJveHktZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctcHJveHktZm9ybS1kaWFsb2cuY29tcG9uZW50JztcbmltcG9ydCB7IEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0IH0gZnJvbSAnLi4vZmxvdy1mb3JtLWRpYWxvZy9naW8tcHMtZmxvdy1mb3JtLWRpYWxvZy1yZXN1bHQubW9kZWwnO1xuaW1wb3J0IHtcbiAgR2lvUG9saWN5U3R1ZGlvRmxvd0V4ZWN1dGlvbkZvcm1EaWFsb2dDb21wb25lbnQsXG4gIEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nRGF0YSxcbn0gZnJvbSAnLi4vZmxvdy1leGVjdXRpb24tZm9ybS1kaWFsb2cvZ2lvLXBzLWZsb3ctZXhlY3V0aW9uLWZvcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5cbmludGVyZmFjZSBGbG93R3JvdXBNZW51Vk0gZXh0ZW5kcyBGbG93R3JvdXBWTSB7XG4gIGZsb3dzOiBGbG93TWVudVZNW107XG59XG5cbmludGVyZmFjZSBGbG93TWVudVZNIGV4dGVuZHMgRmxvd1ZNIHtcbiAgc2VsZWN0ZWQ6IGJvb2xlYW47XG4gIG1vdXNlT3ZlcjogYm9vbGVhbjtcbiAgYmFkZ2VzOiB7XG4gICAgbGFiZWw6IHN0cmluZztcbiAgICBjbGFzczogc3RyaW5nO1xuICB9W107XG4gIHBhdGhPckNoYW5uZWxMYWJlbDogc3RyaW5nO1xuICBoYXNDb25kaXRpb246IGJvb2xlYW47XG59XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1mbG93cy1tZW51JyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1mbG93cy1tZW51LmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLWZsb3dzLW1lbnUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvRmxvd3NNZW51Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzIHtcbiAgQElucHV0KClcbiAgcHVibGljIGxvYWRpbmcgPSBmYWxzZTtcblxuICBASW5wdXQoKVxuICBwdWJsaWMgYXBpVHlwZSE6IEFwaVR5cGU7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGZsb3dFeGVjdXRpb24hOiBGbG93RXhlY3V0aW9uO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBmbG93c0dyb3VwczogRmxvd0dyb3VwVk1bXSA9IFtdO1xuXG4gIEBJbnB1dCgpXG4gIHB1YmxpYyBzZWxlY3RlZEZsb3c/OiBGbG93Vk0gPSB1bmRlZmluZWQ7XG5cbiAgQElucHV0KClcbiAgcHVibGljIGVudHJ5cG9pbnRzOiBDb25uZWN0b3JJbmZvW10gPSBbXTtcblxuICBAT3V0cHV0KClcbiAgcHVibGljIHNlbGVjdGVkRmxvd0NoYW5nZSA9IG5ldyBFdmVudEVtaXR0ZXI8Rmxvd1ZNPigpO1xuXG4gIEBPdXRwdXQoKVxuICBwdWJsaWMgZmxvd3NHcm91cHNDaGFuZ2UgPSBuZXcgRXZlbnRFbWl0dGVyPEZsb3dHcm91cFZNW10+KCk7XG5cbiAgQE91dHB1dCgpXG4gIHB1YmxpYyBmbG93RXhlY3V0aW9uQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGbG93RXhlY3V0aW9uPigpO1xuXG4gIHB1YmxpYyBmbG93R3JvdXBNZW51SXRlbXM6IEZsb3dHcm91cE1lbnVWTVtdID0gW107XG5cbiAgY29uc3RydWN0b3IocHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZykge31cblxuICBwdWJsaWMgbmdPbkNoYW5nZXMoY2hhbmdlczogU2ltcGxlQ2hhbmdlcyk6IHZvaWQge1xuICAgIGlmIChjaGFuZ2VzLmZsb3dzR3JvdXBzIHx8IGNoYW5nZXMuc2VsZWN0ZWRGbG93KSB7XG4gICAgICB0aGlzLmZsb3dHcm91cE1lbnVJdGVtcyA9IGNsb25lRGVlcCh0aGlzLmZsb3dzR3JvdXBzKS5tYXAoZmxvd0dyb3VwID0+IHtcbiAgICAgICAgcmV0dXJuIHtcbiAgICAgICAgICAuLi5mbG93R3JvdXAsXG4gICAgICAgICAgZmxvd3M6IGZsb3dHcm91cC5mbG93cy5tYXAoZmxvdyA9PiB7XG4gICAgICAgICAgICBjb25zdCBiYWRnZXM6IEZsb3dNZW51Vk1bJ2JhZGdlcyddID0gW107XG4gICAgICAgICAgICBsZXQgcGF0aE9yQ2hhbm5lbExhYmVsID0gJyc7XG4gICAgICAgICAgICBsZXQgaGFzQ29uZGl0aW9uID0gZmFsc2U7XG5cbiAgICAgICAgICAgIC8vIE1FU1NBR0UgQVBJIC0gQ0hBTk5FTFxuICAgICAgICAgICAgY29uc3QgY2hhbm5lbFNlbGVjdG9yID0gZmxvdy5zZWxlY3RvcnM/LmZpbmQocyA9PiBzLnR5cGUgPT09ICdDSEFOTkVMJykgYXMgQ2hhbm5lbFNlbGVjdG9yO1xuICAgICAgICAgICAgaWYgKGNoYW5uZWxTZWxlY3Rvcikge1xuICAgICAgICAgICAgICBjb25zdCBvcGVyYXRpb25Ub0JhZGdlOiBSZWNvcmQ8T3BlcmF0aW9uLCBzdHJpbmc+ID0ge1xuICAgICAgICAgICAgICAgIFBVQkxJU0g6ICdQVUInLFxuICAgICAgICAgICAgICAgIFNVQlNDUklCRTogJ1NVQicsXG4gICAgICAgICAgICAgIH07XG4gICAgICAgICAgICAgIC8vIElmIG5vIG9wZXJhdGlvbnMgYXJlIHNlbGVjdGVkLCBhbGwgb3BlcmF0aW9ucyBhcmUgdmFsaWRcbiAgICAgICAgICAgICAgY29uc3Qgb3BlcmF0aW9uQmFkZ2VzID0gKFxuICAgICAgICAgICAgICAgICFjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9ucyB8fCBpc0VtcHR5KGNoYW5uZWxTZWxlY3Rvci5vcGVyYXRpb25zKVxuICAgICAgICAgICAgICAgICAgPyAoWydQVUJMSVNIJywgJ1NVQlNDUklCRSddIGFzIGNvbnN0KVxuICAgICAgICAgICAgICAgICAgOiBjaGFubmVsU2VsZWN0b3Iub3BlcmF0aW9uc1xuICAgICAgICAgICAgICApXG4gICAgICAgICAgICAgICAgLm1hcChvcGVyYXRpb24gPT4gKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiBvcGVyYXRpb25Ub0JhZGdlW29wZXJhdGlvbl0sXG4gICAgICAgICAgICAgICAgICBjbGFzczogJ2dpby1iYWRnZS1uZXV0cmFsJyxcbiAgICAgICAgICAgICAgICB9KSlcbiAgICAgICAgICAgICAgICAuc29ydCgoYSwgYikgPT4gYS5sYWJlbC5sb2NhbGVDb21wYXJlKGIubGFiZWwpKTtcbiAgICAgICAgICAgICAgb3BlcmF0aW9uQmFkZ2VzICYmIGJhZGdlcy5wdXNoKC4uLm9wZXJhdGlvbkJhZGdlcyk7XG4gICAgICAgICAgICAgIHBhdGhPckNoYW5uZWxMYWJlbCA9IGAke2NoYW5uZWxTZWxlY3Rvci5jaGFubmVsfSR7Y2hhbm5lbFNlbGVjdG9yLmNoYW5uZWxPcGVyYXRvciA9PT0gJ1NUQVJUU19XSVRIJyA/ICcqKicgOiAnJ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICAvLyBIVFRQIEFQSSAtIEhUVFBcbiAgICAgICAgICAgIGNvbnN0IGh0dHBTZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnSFRUUCcpIGFzIEh0dHBTZWxlY3RvcjtcbiAgICAgICAgICAgIGlmIChodHRwU2VsZWN0b3IpIHtcbiAgICAgICAgICAgICAgLy8gS2VlcCBvbmx5IDIgZmlyc3QgaHR0cCBtZXRob2RzIGFuZCBhZGQgK1ggYmFkZ2UgaWYgdGhlcmUgYXJlIG1vcmVcbiAgICAgICAgICAgICAgY29uc3QgaHR0cE1ldGhvZHNUb0tlZXAgPSBodHRwU2VsZWN0b3IubWV0aG9kcz8uc2xpY2UoMCwgMik7XG4gICAgICAgICAgICAgIGNvbnN0IGh0dHBNZXRob2RzTGVuZ3RoID0gaHR0cFNlbGVjdG9yLm1ldGhvZHM/Lmxlbmd0aDtcbiAgICAgICAgICAgICAgaHR0cE1ldGhvZHNUb0tlZXAgJiZcbiAgICAgICAgICAgICAgICBiYWRnZXMucHVzaCguLi5odHRwTWV0aG9kc1RvS2VlcC5tYXAobWV0aG9kID0+ICh7IGxhYmVsOiBtZXRob2QsIGNsYXNzOiBgZ2lvLW1ldGhvZC1iYWRnZS0ke21ldGhvZC50b0xvd2VyQ2FzZSgpfWAgfSkpKTtcbiAgICAgICAgICAgICAgaWYgKGh0dHBNZXRob2RzTGVuZ3RoICYmIGh0dHBNZXRob2RzTGVuZ3RoID4gMikge1xuICAgICAgICAgICAgICAgIGJhZGdlcz8ucHVzaCh7XG4gICAgICAgICAgICAgICAgICBsYWJlbDogYCske2h0dHBNZXRob2RzTGVuZ3RoIC0gMn1gLFxuICAgICAgICAgICAgICAgICAgY2xhc3M6ICdnaW8tYmFkZ2UtbmV1dHJhbCcsXG4gICAgICAgICAgICAgICAgfSk7XG4gICAgICAgICAgICAgIH1cbiAgICAgICAgICAgICAgaWYgKGh0dHBNZXRob2RzTGVuZ3RoID09PSAwKSB7XG4gICAgICAgICAgICAgICAgYmFkZ2VzPy5wdXNoKHtcbiAgICAgICAgICAgICAgICAgIGxhYmVsOiAnQUxMJyxcbiAgICAgICAgICAgICAgICAgIGNsYXNzOiAnZ2lvLWJhZGdlLW5ldXRyYWwnLFxuICAgICAgICAgICAgICAgIH0pO1xuICAgICAgICAgICAgICB9XG5cbiAgICAgICAgICAgICAgcGF0aE9yQ2hhbm5lbExhYmVsID0gYCR7aHR0cFNlbGVjdG9yLnBhdGh9JHtodHRwU2VsZWN0b3IucGF0aE9wZXJhdG9yID09PSAnU1RBUlRTX1dJVEgnID8gJy8qKicgOiAnJ31gO1xuICAgICAgICAgICAgfVxuXG4gICAgICAgICAgICBjb25zdCBjb25kaXRpb25TZWxlY3RvciA9IGZsb3cuc2VsZWN0b3JzPy5maW5kKHMgPT4gcy50eXBlID09PSAnQ09ORElUSU9OJykgYXMgQ29uZGl0aW9uU2VsZWN0b3I7XG4gICAgICAgICAgICBpZiAoY29uZGl0aW9uU2VsZWN0b3IgJiYgY29uZGl0aW9uU2VsZWN0b3IuY29uZGl0aW9uKSB7XG4gICAgICAgICAgICAgIGhhc0NvbmRpdGlvbiA9IHRydWU7XG4gICAgICAgICAgICB9XG5cbiAgICAgICAgICAgIHJldHVybiB7XG4gICAgICAgICAgICAgIC4uLmZsb3csXG4gICAgICAgICAgICAgIHNlbGVjdGVkOiB0aGlzLnNlbGVjdGVkRmxvdz8uX2lkID09PSBmbG93Ll9pZCxcbiAgICAgICAgICAgICAgbW91c2VPdmVyOiBmYWxzZSxcbiAgICAgICAgICAgICAgYmFkZ2VzLFxuICAgICAgICAgICAgICBwYXRoT3JDaGFubmVsTGFiZWwsXG4gICAgICAgICAgICAgIGhhc0NvbmRpdGlvbixcbiAgICAgICAgICAgIH07XG4gICAgICAgICAgfSksXG4gICAgICAgIH07XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBwdWJsaWMgc2VsZWN0Rmxvdyhncm91cElkOiBzdHJpbmcsIGZsb3dJZDogc3RyaW5nKTogdm9pZCB7XG4gICAgY29uc3QgZmxvdyA9IHRoaXMuZmxvd3NHcm91cHMuZmluZChmZyA9PiBmZy5faWQgPT09IGdyb3VwSWQpPy5mbG93cy5maW5kKGYgPT4gZi5faWQgPT09IGZsb3dJZCk7XG4gICAgaWYgKGZsb3cpIHtcbiAgICAgIHRoaXMuc2VsZWN0ZWRGbG93Q2hhbmdlLmVtaXQoZmxvdyk7XG4gICAgfVxuICB9XG5cbiAgcHVibGljIG9uQWRkRmxvdyhmbG93R3JvdXA6IEZsb3dHcm91cFZNKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVzdWx0ID1cbiAgICAgIHRoaXMuYXBpVHlwZSA9PT0gJ01FU1NBR0UnXG4gICAgICAgID8gdGhpcy5tYXREaWFsb2dcbiAgICAgICAgICAgIC5vcGVuPFxuICAgICAgICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93TWVzc2FnZUZvcm1EaWFsb2dDb21wb25lbnQsXG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0RhdGEsXG4gICAgICAgICAgICAgIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0XG4gICAgICAgICAgICA+KEdpb1BvbGljeVN0dWRpb0Zsb3dNZXNzYWdlRm9ybURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgICAgICAgZmxvdzogdW5kZWZpbmVkLFxuICAgICAgICAgICAgICAgIGVudHJ5cG9pbnRzOiB0aGlzLmVudHJ5cG9pbnRzLFxuICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgICAgICBpZDogJ2dpb1BzRmxvd0Zvcm1EaWFsb2cnLFxuICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICB9KVxuICAgICAgICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgICAgOiB0aGlzLm1hdERpYWxvZ1xuICAgICAgICAgICAgLm9wZW48R2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0RhdGEsIEdpb1BvbGljeVN0dWRpb0Zsb3dGb3JtRGlhbG9nUmVzdWx0PihcbiAgICAgICAgICAgICAgR2lvUG9saWN5U3R1ZGlvRmxvd1Byb3h5Rm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAgICAgICAge1xuICAgICAgICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgICAgICAgIGZsb3c6IHVuZGVmaW5lZCxcbiAgICAgICAgICAgICAgICB9LFxuICAgICAgICAgICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgICAgICAgICAgaWQ6ICdnaW9Qc0Zsb3dGb3JtRGlhbG9nJyxcbiAgICAgICAgICAgICAgICB3aWR0aDogR0lPX0RJQUxPR19XSURUSC5NRURJVU0sXG4gICAgICAgICAgICAgIH0sXG4gICAgICAgICAgICApXG4gICAgICAgICAgICAuYWZ0ZXJDbG9zZWQoKTtcblxuICAgIGRpYWxvZ1Jlc3VsdFxuICAgICAgLnBpcGUoXG4gICAgICAgIHRhcChjcmVhdGVkT3JFZGl0ZWQgPT4ge1xuICAgICAgICAgIGlmICghY3JlYXRlZE9yRWRpdGVkKSB7XG4gICAgICAgICAgICByZXR1cm47XG4gICAgICAgICAgfVxuICAgICAgICAgIGNvbnN0IGVkaXRlZEZsb3dzR3JvdXBzID0gY2xvbmVEZWVwKHRoaXMuZmxvd3NHcm91cHMpO1xuXG4gICAgICAgICAgY29uc3QgZmxvd3NHcm91cFRvRWRpdCA9IGVkaXRlZEZsb3dzR3JvdXBzLmZpbmQoZmcgPT4gZmcuX2lkID09PSBmbG93R3JvdXAuX2lkKTtcbiAgICAgICAgICBpZiAoIWZsb3dzR3JvdXBUb0VkaXQpIHtcbiAgICAgICAgICAgIHRocm93IG5ldyBFcnJvcihgRmxvdyBncm91cCAke2Zsb3dHcm91cC5faWR9IG5vdCBmb3VuZGApO1xuICAgICAgICAgIH1cbiAgICAgICAgICBmbG93c0dyb3VwVG9FZGl0LmZsb3dzLnB1c2goY3JlYXRlZE9yRWRpdGVkKTtcblxuICAgICAgICAgIHRoaXMuZmxvd3NHcm91cHNDaGFuZ2UuZW1pdChlZGl0ZWRGbG93c0dyb3Vwcyk7XG4gICAgICAgICAgdGhpcy5zZWxlY3RlZEZsb3dDaGFuZ2UuZW1pdChjcmVhdGVkT3JFZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbmZpZ3VyZUV4ZWN1dGlvbihmbG93RXhlY3V0aW9uOiBGbG93RXhlY3V0aW9uKTogdm9pZCB7XG4gICAgY29uc3QgZGlhbG9nUmVzdWx0ID0gdGhpcy5tYXREaWFsb2dcbiAgICAgIC5vcGVuPEdpb1BvbGljeVN0dWRpb0Zsb3dFeGVjdXRpb25Gb3JtRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0RhdGEsIEZsb3dFeGVjdXRpb24gfCB1bmRlZmluZWQ+KFxuICAgICAgICBHaW9Qb2xpY3lTdHVkaW9GbG93RXhlY3V0aW9uRm9ybURpYWxvZ0NvbXBvbmVudCxcbiAgICAgICAge1xuICAgICAgICAgIGRhdGE6IHtcbiAgICAgICAgICAgIGZsb3dFeGVjdXRpb24sXG4gICAgICAgICAgfSxcbiAgICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICAgIGlkOiAnZ2lvUHNGbG93RXhlY3V0aW9uRm9ybURpYWxvZycsXG4gICAgICAgICAgd2lkdGg6IEdJT19ESUFMT0dfV0lEVEguTUVESVVNLFxuICAgICAgICB9LFxuICAgICAgKVxuICAgICAgLmFmdGVyQ2xvc2VkKCk7XG5cbiAgICBkaWFsb2dSZXN1bHRcbiAgICAgIC5waXBlKFxuICAgICAgICB0YXAoZWRpdGVkID0+IHtcbiAgICAgICAgICBpZiAoIWVkaXRlZCkge1xuICAgICAgICAgICAgcmV0dXJuO1xuICAgICAgICAgIH1cbiAgICAgICAgICB0aGlzLmZsb3dFeGVjdXRpb25DaGFuZ2UuZW1pdChlZGl0ZWQpO1xuICAgICAgICB9KSxcbiAgICAgIClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gICAgXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gICAgXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAgICBcbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG5cbjxkaXYgY2xhc3M9XCJoZWFkZXJcIj5cbiAgPGRpdiBjbGFzcz1cImhlYWRlcl9fbGFiZWxcIj5cbiAgICBGbG93cyA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzppbmZvXCIgbWF0VG9vbHRpcD1cIkZsb3dzIGFsbG93IHlvdSB0byBhcHBseSBkaWZmZXJlbnQgcG9saWNpZXMgb24geW91ciBBUEkgZXZlbnQgcGhhc2VzXCI+PC9tYXQtaWNvbj5cbiAgPC9kaXY+XG4gIDxkaXYgY2xhc3M9XCJoZWFkZXJfX2NvbmZpZ0J0blwiPlxuICAgIDxidXR0b25cbiAgICAgIGNsYXNzPVwiaGVhZGVyX19jb25maWdCdG5fZWRpdFwiXG4gICAgICBtYXQtc3Ryb2tlZC1idXR0b25cbiAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgW2Rpc2FibGVkXT1cImxvYWRpbmdcIlxuICAgICAgKGNsaWNrKT1cIm9uQ29uZmlndXJlRXhlY3V0aW9uKGZsb3dFeGVjdXRpb24pXCJcbiAgICA+XG4gICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpzZXR0aW5nc1wiPjwvbWF0LWljb24+XG4gICAgPC9idXR0b24+XG4gIDwvZGl2PlxuPC9kaXY+XG5cbjxkaXYgY2xhc3M9XCJsaXN0XCIgKm5nSWY9XCIhbG9hZGluZzsgZWxzZSBsb2FkaW5nTGlzdFwiPlxuICA8ZGl2ICpuZ0Zvcj1cImxldCBmbG93c0dyb3VwIG9mIGZsb3dHcm91cE1lbnVJdGVtc1wiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cFwiPlxuICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19oZWFkZXJcIj5cbiAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19oZWFkZXJfX2xhYmVsXCI+XG4gICAgICAgIDxtYXQtaWNvbiAqbmdJZj1cImZsb3dzR3JvdXAuX2ljb25cIiBbc3ZnSWNvbl09XCJmbG93c0dyb3VwLl9pY29uXCI+PC9tYXQtaWNvbj5cbiAgICAgICAgPHNwYW4+e3sgZmxvd3NHcm91cC5uYW1lIH19PC9zcGFuPlxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9faGVhZGVyX19hZGRCdG5cIj5cbiAgICAgICAgPGJ1dHRvbiBtYXQtaWNvbi1idXR0b24gKGNsaWNrKT1cIm9uQWRkRmxvdyhmbG93c0dyb3VwKVwiPjxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOnBsdXNcIiBtYXRUb29sdGlwPVwiTmV3IGZsb3dcIj48L21hdC1pY29uPjwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2XG4gICAgICAqbmdGb3I9XCJsZXQgZmxvdyBvZiBmbG93c0dyb3VwLmZsb3dzXCJcbiAgICAgIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd1wiXG4gICAgICBbY2xhc3Muc2VsZWN0ZWRdPVwiZmxvdy5zZWxlY3RlZFwiXG4gICAgICAoY2xpY2spPVwic2VsZWN0RmxvdyhmbG93c0dyb3VwLl9pZCwgZmxvdy5faWQpXCJcbiAgICAgIChtb3VzZW91dCk9XCJmbG93Lm1vdXNlT3ZlciA9IGZhbHNlXCJcbiAgICAgIChtb3VzZW92ZXIpPVwiZmxvdy5tb3VzZU92ZXIgPSB0cnVlXCJcbiAgICA+XG4gICAgICA8ZGl2ICpuZ0lmPVwiZmxvdy5uYW1lXCIgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19uYW1lXCIgW2F0dHIudGl0bGVdPVwiZmxvdy5uYW1lXCI+XG4gICAgICAgIHt7IGZsb3cubmFtZSB9fVxuICAgICAgPC9kaXY+XG4gICAgICA8ZGl2IGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NcIj5cbiAgICAgICAgPGRpdiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19iYWRnZXNcIj5cbiAgICAgICAgICA8c3BhbiAqbmdGb3I9XCJsZXQgYmFkZ2Ugb2YgZmxvdy5iYWRnZXNcIiBjbGFzcz1cImxpc3RfX2Zsb3dzR3JvdXBfX2Zsb3dfX2luZm9zX19iYWRnZXNfX2JhZGdlXCIgW25nQ2xhc3NdPVwiYmFkZ2UuY2xhc3NcIj57e1xuICAgICAgICAgICAgYmFkZ2UubGFiZWxcbiAgICAgICAgICB9fTwvc3Bhbj5cbiAgICAgICAgPC9kaXY+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJsaXN0X19mbG93c0dyb3VwX19mbG93X19pbmZvc19fcGF0aE9yQ2hhbm5lbExhYmVsXCI+XG4gICAgICAgICAgPHNwYW4gKm5nSWY9XCJmbG93LnBhdGhPckNoYW5uZWxMYWJlbDsgZWxzZSBlbXB0eVBhdGhPckNoYW5uZWxMYWJlbFwiIFthdHRyLnRpdGxlXT1cImZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXCI+e3tcbiAgICAgICAgICAgIGZsb3cucGF0aE9yQ2hhbm5lbExhYmVsXG4gICAgICAgICAgfX08L3NwYW4+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlICNlbXB0eVBhdGhPckNoYW5uZWxMYWJlbD5cbiAgICAgICAgICAgIDxlbT5FbXB0eTwvZW0+XG4gICAgICAgICAgPC9uZy10ZW1wbGF0ZT5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPHNwYW4gKm5nSWY9XCJmbG93Lmhhc0NvbmRpdGlvblwiIGNsYXNzPVwibGlzdF9fZmxvd3NHcm91cF9fZmxvd19faW5mb3NfX2NvbmRpdGlvbkJhZGdlIGdpby1iYWRnZS1uZXV0cmFsXCIgbWF0VG9vbHRpcD1cIkNvbmRpdGlvbmVkXCJcbiAgICAgICAgICA+PG1hdC1pY29uIHN2Z0ljb249XCJnaW86aWZcIj48L21hdC1pY29uXG4gICAgICAgID48L3NwYW4+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj5cbiAgPC9kaXY+XG48L2Rpdj5cblxuPG5nLXRlbXBsYXRlICNsb2FkaW5nTGlzdD5cbiAgPGRpdiBjbGFzcz1cImxvYWRpbmdMaXN0XCI+XG4gICAgPGdpby1sb2FkZXI+PC9naW8tbG9hZGVyPlxuICA8L2Rpdj5cbjwvbmctdGVtcGxhdGU+XG4iXX0=
@@ -14,23 +14,23 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Component, Inject } from '@angular/core';
17
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
17
+ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
18
18
  import { toLower, uniq } from 'lodash';
19
- import { FormControl, FormGroup } from '@angular/forms';
19
+ import { UntypedFormControl, UntypedFormGroup } from '@angular/forms';
20
20
  import { startWith, takeUntil } from 'rxjs/operators';
21
21
  import { Subject } from 'rxjs';
22
22
  import * as i0 from "@angular/core";
23
- import * as i1 from "@angular/material/dialog";
24
- import * as i2 from "@angular/material/button";
25
- import * as i3 from "@angular/material/icon";
26
- import * as i4 from "@angular/material/form-field";
27
- import * as i5 from "@angular/material/chips";
28
- import * as i6 from "@gravitee/ui-particles-angular";
29
- import * as i7 from "../step-form/gio-ps-step-form.component";
30
- import * as i8 from "@angular/common";
31
- import * as i9 from "@angular/forms";
32
- import * as i10 from "@angular/material/input";
33
- import * as i11 from "@angular/material/tooltip";
23
+ import * as i1 from "@angular/material/legacy-dialog";
24
+ import * as i2 from "@angular/common";
25
+ import * as i3 from "@angular/forms";
26
+ import * as i4 from "@angular/material/legacy-button";
27
+ import * as i5 from "@angular/material/legacy-tooltip";
28
+ import * as i6 from "@angular/material/legacy-form-field";
29
+ import * as i7 from "@angular/material/legacy-input";
30
+ import * as i8 from "@angular/material/legacy-chips";
31
+ import * as i9 from "@angular/material/icon";
32
+ import * as i10 from "@gravitee/ui-particles-angular";
33
+ import * as i11 from "../step-form/gio-ps-step-form.component";
34
34
  const executionPhaseLabels = {
35
35
  REQUEST: 'Request',
36
36
  RESPONSE: 'Response',
@@ -43,9 +43,9 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
43
43
  this.policies = [];
44
44
  this.categories = [];
45
45
  this.isValid = false;
46
- this.filtersForm = new FormGroup({
47
- categories: new FormControl([]),
48
- search: new FormControl(''),
46
+ this.filtersForm = new UntypedFormGroup({
47
+ categories: new UntypedFormControl([]),
48
+ search: new UntypedFormControl(''),
49
49
  });
50
50
  this.allPolicies = [];
51
51
  this.unsubscribe$ = new Subject();
@@ -112,13 +112,13 @@ export class GioPolicyStudioPoliciesCatalogDialogComponent {
112
112
  this.isUnlicensed = false;
113
113
  }
114
114
  }
115
- GioPolicyStudioPoliciesCatalogDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
116
- GioPolicyStudioPoliciesCatalogDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GioPolicyStudioPoliciesCatalogDialogComponent, selector: "gio-ps-policies-catalog-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-list\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip\n *ngFor=\"let category of categories\"\n [selected]=\"category\"\n [value]=\"category\"\n #chip=\"matChip\"\n (click)=\"chip.toggleSelected(true)\"\n >{{ category | titlecase }}</mat-chip\n >\n </mat-chip-list>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], components: [{ type: i2.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: i3.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i5.MatChipList, selector: "mat-chip-list", inputs: ["errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { type: i6.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { type: i2.MatAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { type: i7.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i8.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i9.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i9.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i4.MatLabel, selector: "mat-label" }, { type: i10.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: i9.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: i9.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i9.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i8.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i5.MatChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { type: i11.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { type: i6.GioBannerActionDirective, selector: "[gioBannerAction]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }], pipes: { "titlecase": i8.TitleCasePipe } });
117
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, decorators: [{
115
+ GioPolicyStudioPoliciesCatalogDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
116
+ GioPolicyStudioPoliciesCatalogDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioPoliciesCatalogDialogComponent, selector: "gio-ps-policies-catalog-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-list\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip\n *ngFor=\"let category of categories\"\n [selected]=\"category\"\n [value]=\"category\"\n #chip=\"matChip\"\n (click)=\"chip.toggleSelected(true)\"\n >{{ category | titlecase }}</mat-chip\n >\n </mat-chip-list>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i4.MatLegacyButton, 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"] }, { kind: "component", type: i4.MatLegacyAnchor, selector: "a[mat-button], a[mat-raised-button], a[mat-icon-button], a[mat-fab], a[mat-mini-fab], a[mat-stroked-button], a[mat-flat-button]", inputs: ["disabled", "disableRipple", "color", "tabIndex"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i5.MatLegacyTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatLegacyFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLegacyLabel, selector: "mat-label" }, { kind: "directive", type: i6.MatLegacySuffix, selector: "[matSuffix]" }, { kind: "directive", type: i7.MatLegacyInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", exportAs: ["matInput"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatLegacyDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i8.MatLegacyChipList, selector: "mat-chip-list", inputs: ["role", "aria-describedby", "errorStateMatcher", "multiple", "compareWith", "value", "required", "placeholder", "disabled", "aria-orientation", "selectable", "tabIndex"], outputs: ["change", "valueChange"], exportAs: ["matChipList"] }, { kind: "directive", type: i8.MatLegacyChip, selector: "mat-basic-chip, [mat-basic-chip], mat-chip, [mat-chip]", inputs: ["color", "disableRipple", "tabIndex", "role", "selected", "value", "selectable", "disabled", "removable"], outputs: ["selectionChange", "destroyed", "removed"], exportAs: ["matChip"] }, { kind: "component", type: i9.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i10.GioBannerComponent, selector: "gio-banner", inputs: ["type", "icon", "collapsible"] }, { kind: "directive", type: i10.GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "directive", type: i10.GioBannerActionDirective, selector: "[gioBannerAction]" }, { kind: "component", type: i11.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }] });
117
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioPoliciesCatalogDialogComponent, decorators: [{
118
118
  type: Component,
119
- args: [{ selector: 'gio-ps-policies-catalog-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-list\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip\n *ngFor=\"let category of categories\"\n [selected]=\"category\"\n [value]=\"category\"\n #chip=\"matChip\"\n (click)=\"chip.toggleSelected(true)\"\n >{{ category | titlecase }}</mat-chip\n >\n </mat-chip-list>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
120
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
119
+ args: [{ selector: 'gio-ps-policies-catalog-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n Policies for <span class=\"title__phase\">{{ executionPhaseLabel }}</span> phase\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n</h2>\n\n<ng-container>\n <mat-dialog-content *ngIf=\"!selectedPolicy\" class=\"policiesCatalog\">\n <div class=\"policiesCatalog__filters\" [formGroup]=\"filtersForm\">\n <mat-form-field class=\"policiesCatalog__filters__search\" appearance=\"outline\">\n <mat-label>Search</mat-label>\n <input matInput formControlName=\"search\" />\n <button\n matSuffix\n mat-icon-button\n aria-label=\"Clear\"\n *ngIf=\"filtersForm.get('search')?.value\"\n (click)=\"filtersForm.get('search')?.setValue('')\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </mat-form-field>\n <mat-chip-list\n *ngIf=\"categories.length > 1\"\n class=\"policiesCatalog__filters__categories\"\n aria-label=\"Categories selection\"\n multiple\n formControlName=\"categories\"\n >\n <mat-chip\n *ngFor=\"let category of categories\"\n [selected]=\"category\"\n [value]=\"category\"\n #chip=\"matChip\"\n (click)=\"chip.toggleSelected(true)\"\n >{{ category | titlecase }}</mat-chip\n >\n </mat-chip-list>\n </div>\n\n <div *ngIf=\"policies.length; else emptyPoliciesTpl\" class=\"policiesCatalog__list\">\n <div *ngFor=\"let policy of policies\" class=\"policiesCatalog__list__policy\">\n <div class=\"policiesCatalog__list__policy__head\">\n <mat-icon class=\"policiesCatalog__list__policy__head__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"policy.name\" class=\"policiesCatalog__list__policy__head__name\">{{ policy.name }}</span>\n </div>\n\n <div class=\"policiesCatalog__list__policy__enterprise\" *ngIf=\"policy.deployed === false\">\n <mat-icon\n class=\"policiesCatalog__list__policy__enterprise__lock\"\n [svgIcon]=\"'gio:lock'\"\n matTooltip=\"This policy is only available for users with an enterprise license.\"\n ></mat-icon>\n </div>\n\n <div *ngIf=\"policy.description\" class=\"policiesCatalog__list__policy__description\">{{ policy.description }}</div>\n\n <button class=\"policiesCatalog__list__policy__selectBtn\" mat-stroked-button role=\"dialog\" (click)=\"onSelectPolicy(policy)\">\n Select\n </button>\n </div>\n </div>\n </mat-dialog-content>\n</ng-container>\n\n<ng-template #emptyPoliciesTpl>\n <mat-dialog-content class=\"emptyPoliciesCatalog\">No policies available.</mat-dialog-content>\n</ng-template>\n\n<mat-dialog-content *ngIf=\"selectedPolicy\" class=\"policyForm\">\n <button class=\"policyForm__goBackBtn\" mat-stroked-button (click)=\"onGoBack()\">\n <mat-icon svgIcon=\"gio:arrow-left\"></mat-icon>\n Go back\n </button>\n\n <gio-banner *ngIf=\"isUnlicensed\" type=\"error\" icon=\"gio:universe\">\n This policy is only available for users with an enterprise license.\n <span gioBannerBody>Request a license to upgrade your account and unlock this policy</span>\n <div gioBannerAction>\n <a *ngIf=\"trialUrl\" mat-stroked-button [href]=\"trialUrl\" target=\"_blank\">Request upgrade</a>\n </div>\n </gio-banner>\n\n <div class=\"policyForm__info\">\n <div class=\"policyForm__info__head\">\n <mat-icon class=\"policyForm__info__head__icon\" [svgIcon]=\"selectedPolicy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"selectedPolicy.name\" class=\"policyForm__info__head__name\">{{ selectedPolicy.name }}</span>\n </div>\n\n <div *ngIf=\"selectedPolicy.description\" class=\"policyForm__info__description\">{{ selectedPolicy.description }}</div>\n </div>\n\n <gio-ps-step-form [policy]=\"selectedPolicy\" (stepChange)=\"onStepChange($event)\" (isValid)=\"onIsValid($event)\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button\n *ngIf=\"selectedPolicy\"\n class=\"actions__addBtn\"\n color=\"primary\"\n mat-flat-button\n role=\"dialog\"\n [disabled]=\"!isValid || isUnlicensed\"\n (click)=\"onAddPolicy()\"\n >\n Add policy\n </button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__closeBtn{top:-20px;right:-20px;float:right}.policiesCatalog__filters{display:flex;flex-direction:column;padding:0 0 8px;gap:8px}.policiesCatalog__filters__search{width:100%;height:54px;padding-bottom:0}.policiesCatalog__list{--grid-layout-gap: 16px;--grid-column-count: 3;--grid-item-min-width: 200px;--gap-count: calc(var(--grid-column-count) - 1);--total-gap-width: calc(var(--gap-count) * var(--grid-layout-gap));--grid-item-max-width: calc((100% - var(--total-gap-width)) / var(--grid-column-count));display:grid;grid-gap:var(--grid-layout-gap);grid-template-columns:repeat(auto-fill,minmax(max(var(--grid-item-min-width),var(--grid-item-max-width)),1fr))}.policiesCatalog__list__policy{position:relative;display:flex;flex-direction:column;align-items:flex-start;justify-content:space-between;padding:16px;border:1px solid #d3d5dc;border-radius:8px;gap:4px}.policiesCatalog__list__policy__head{display:flex;max-width:95%;align-items:center}.policiesCatalog__list__policy__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policiesCatalog__list__policy__head__name{overflow:hidden;flex:1 1 auto;text-overflow:ellipsis;white-space:nowrap}.policiesCatalog__list__policy__enterprise{position:absolute;top:0;right:0;padding:8px 8px 8px 16px;border-radius:0 8px 0 38px;background:#e7e8ef;color:#6c59bd}.policiesCatalog__list__policy__enterprise__lock{min-width:16px;max-width:16px;color:#6c59bd}.policiesCatalog__list__policy__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;display:-webkit-box;overflow:hidden;-webkit-box-orient:vertical;color:#606274;-webkit-line-clamp:2}.policiesCatalog__list__policy__description:empty{display:none}.policiesCatalog__list__policy__selectBtn{margin-top:8px}.policyForm__goBackBtn{margin:16px 0}.policyForm__info{display:flex;max-width:100%;flex-direction:column;align-items:flex-start;padding-bottom:16px;gap:4px}.policyForm__info__head{display:flex;align-items:center}.policyForm__info__head__icon{min-width:24px;flex:1 1 24px;margin-right:8px}.policyForm__info__head__name{flex:1 1 auto}.policyForm__info__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
120
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
121
121
  type: Inject,
122
122
  args: [MAT_DIALOG_DATA]
123
123
  }] }]; } });
124
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFnQixlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUN6RSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsV0FBVyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsU0FBUyxFQUFFLE1BQU0sZ0JBQWdCLENBQUM7QUFDdEQsT0FBTyxFQUFFLE9BQU8sRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7Ozs7Ozs7OztBQWEvQixNQUFNLG9CQUFvQixHQUFtQztJQUMzRCxPQUFPLEVBQUUsU0FBUztJQUNsQixRQUFRLEVBQUUsVUFBVTtJQUNwQixlQUFlLEVBQUUsU0FBUztJQUMxQixnQkFBZ0IsRUFBRSxXQUFXO0NBQzlCLENBQUM7QUFXRixNQUFNLE9BQU8sNkNBQTZDO0lBNEJ4RCxZQUNTLFNBQWtILEVBQ2hHLGNBQXdE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OzhIQTlCZCw2Q0FBNkMsc0VDakQxRCx1cEtBa0lBOzJGRGpGYSw2Q0FBNkM7a0JBTHpELFNBQVM7K0JBQ0UsZ0NBQWdDOzswQkFrQ3ZDLE1BQU07MkJBQUMsZUFBZSIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXREaWFsb2dSZWYsIE1BVF9ESUFMT0dfREFUQSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2RpYWxvZyc7XG5pbXBvcnQgeyB0b0xvd2VyLCB1bmlxIH0gZnJvbSAnbG9kYXNoJztcbmltcG9ydCB7IEZvcm1Db250cm9sLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5pbXBvcnQgeyBzdGFydFdpdGgsIHRha2VVbnRpbCB9IGZyb20gJ3J4anMvb3BlcmF0b3JzJztcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcblxuaW1wb3J0IHsgQXBpVHlwZSwgRXhlY3V0aW9uUGhhc2UsIFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0RhdGEgPSB7XG4gIHBvbGljaWVzOiBQb2xpY3lbXTtcbiAgZXhlY3V0aW9uUGhhc2U6IEV4ZWN1dGlvblBoYXNlO1xuICBhcGlUeXBlOiBBcGlUeXBlO1xuICB0cmlhbFVybD86IHN0cmluZztcbn07XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdCA9IHVuZGVmaW5lZCB8IFN0ZXA7XG5cbmNvbnN0IGV4ZWN1dGlvblBoYXNlTGFiZWxzOiBSZWNvcmQ8RXhlY3V0aW9uUGhhc2UsIHN0cmluZz4gPSB7XG4gIFJFUVVFU1Q6ICdSZXF1ZXN0JyxcbiAgUkVTUE9OU0U6ICdSZXNwb25zZScsXG4gIE1FU1NBR0VfUkVRVUVTVDogJ1B1Ymxpc2gnLFxuICBNRVNTQUdFX1JFU1BPTlNFOiAnU3Vic2NyaWJlJyxcbn07XG5cbnR5cGUgUG9saWN5Vk0gPSBQb2xpY3kgJiB7XG4gIGNhdGVnb3J5OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tcHMtcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uRGVzdHJveSB7XG4gIHB1YmxpYyBwb2xpY2llczogUG9saWN5Vk1bXSA9IFtdO1xuXG4gIHB1YmxpYyBleGVjdXRpb25QaGFzZUxhYmVsITogc3RyaW5nO1xuXG4gIHB1YmxpYyBzZWxlY3RlZFBvbGljeT86IFBvbGljeTtcblxuICBwdWJsaWMgc3RlcFRvQWRkPzogU3RlcDtcblxuICBwdWJsaWMgY2F0ZWdvcmllczogc3RyaW5nW10gPSBbXTtcblxuICBwdWJsaWMgaXNWYWxpZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBzZWxlY3RlZENhdGVnb3JpZXNDb250cm9sPzogRm9ybUNvbnRyb2w7XG5cbiAgcHVibGljIGZpbHRlcnNGb3JtID0gbmV3IEZvcm1Hcm91cCh7XG4gICAgY2F0ZWdvcmllczogbmV3IEZvcm1Db250cm9sKFtdKSxcbiAgICBzZWFyY2g6IG5ldyBGb3JtQ29udHJvbCgnJyksXG4gIH0pO1xuXG4gIHByaXZhdGUgYWxsUG9saWNpZXM6IFBvbGljeVZNW10gPSBbXTtcblxuICBwcml2YXRlIHVuc3Vic2NyaWJlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG5cbiAgcHVibGljIGlzVW5saWNlbnNlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyB0cmlhbFVybD86IHN0cmluZztcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nQ29tcG9uZW50LCBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvUG9saWNpZXNDYXRhbG9nRGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5leGVjdXRpb25QaGFzZUxhYmVsID0gZXhlY3V0aW9uUGhhc2VMYWJlbHNbZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2VdO1xuXG4gICAgdGhpcy5hbGxQb2xpY2llcyA9IGZsb3dEaWFsb2dEYXRhLnBvbGljaWVzXG4gICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgIGlmIChmbG93RGlhbG9nRGF0YS5hcGlUeXBlID09PSAnUFJPWFknKSB7XG4gICAgICAgICAgcmV0dXJuIHBvbGljeS5wcm94eT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiBwb2xpY3kubWVzc2FnZT8uaW5jbHVkZXMoZmxvd0RpYWxvZ0RhdGEuZXhlY3V0aW9uUGhhc2UpO1xuICAgICAgfSlcbiAgICAgIC5tYXAocG9saWN5ID0+ICh7XG4gICAgICAgIC4uLnBvbGljeSxcbiAgICAgICAgY2F0ZWdvcnk6IHBvbGljeS5jYXRlZ29yeSA/PyAnT3RoZXJzJyxcbiAgICAgIH0pKTtcblxuICAgIHRoaXMuY2F0ZWdvcmllcyA9IHVuaXEodGhpcy5hbGxQb2xpY2llcy5tYXAocG9saWN5ID0+IHBvbGljeS5jYXRlZ29yeS50b0xvd2VyQ2FzZSgpKSkuc29ydCgoYSwgYikgPT4gYS5sb2NhbGVDb21wYXJlKGIpKTtcbiAgICBjb25zdCBvdGhlcnNJbmRleCA9IHRoaXMuY2F0ZWdvcmllcy5pbmRleE9mKCdvdGhlcnMnKTtcbiAgICBpZiAob3RoZXJzSW5kZXggIT09IC0xKSB7XG4gICAgICB0aGlzLmNhdGVnb3JpZXMucHVzaCh0aGlzLmNhdGVnb3JpZXMuc3BsaWNlKG90aGVyc0luZGV4LCAxKVswXSk7XG4gICAgfVxuXG4gICAgdGhpcy5maWx0ZXJzRm9ybS52YWx1ZUNoYW5nZXNcbiAgICAgIC5waXBlKHN0YXJ0V2l0aCh0aGlzLmZpbHRlcnNGb3JtLnZhbHVlKSwgdGFrZVVudGlsKHRoaXMudW5zdWJzY3JpYmUkKSlcbiAgICAgIC5zdWJzY3JpYmUoKHsgY2F0ZWdvcmllcywgc2VhcmNoIH06IHsgY2F0ZWdvcmllcz86IHN0cmluZ1tdOyBzZWFyY2g/OiBzdHJpbmcgfSkgPT4ge1xuICAgICAgICBjb25zdCBzZWxlY3RlZENhdGVnb3JpZXMgPSBjYXRlZ29yaWVzICYmIGNhdGVnb3JpZXMubGVuZ3RoID4gMCA/IGNhdGVnb3JpZXMgOiB0aGlzLmNhdGVnb3JpZXM7XG4gICAgICAgIHRoaXMucG9saWNpZXMgPSB0aGlzLmFsbFBvbGljaWVzXG4gICAgICAgICAgLmZpbHRlcihwb2xpY3kgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlbGVjdGVkQ2F0ZWdvcmllcy5tYXAodG9Mb3dlcikuaW5jbHVkZXModG9Mb3dlcihwb2xpY3kuY2F0ZWdvcnkpKTtcbiAgICAgICAgICB9KVxuICAgICAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgICAgIHJldHVybiBzZWFyY2ggPyB0b0xvd2VyKHBvbGljeS5uYW1lKS5pbmNsdWRlcyh0b0xvd2VyKHNlYXJjaCkpIDogdHJ1ZTtcbiAgICAgICAgICB9KTtcbiAgICAgIH0pO1xuXG4gICAgdGhpcy50cmlhbFVybCA9IGZsb3dEaWFsb2dEYXRhLnRyaWFsVXJsO1xuICB9XG5cbiAgcHVibGljIG5nT25EZXN0cm95KCk6IHZvaWQge1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLm5leHQoKTtcbiAgICB0aGlzLnVuc3Vic2NyaWJlJC5jb21wbGV0ZSgpO1xuICB9XG5cbiAgcHVibGljIG9uU2VsZWN0UG9saWN5KHBvbGljeTogUG9saWN5KSB7XG4gICAgaWYgKHBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2UpIHtcbiAgICAgIHRoaXMuaXNVbmxpY2Vuc2VkID0gdHJ1ZTtcbiAgICB9XG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHBvbGljeTtcbiAgfVxuXG4gIHB1YmxpYyBvblN0ZXBDaGFuZ2Uoc3RlcDogU3RlcCkge1xuICAgIHRoaXMuc3RlcFRvQWRkID0gc3RlcDtcbiAgfVxuXG4gIHB1YmxpYyBvbklzVmFsaWQoaXNWYWxpZDogYm9vbGVhbikge1xuICAgIHRoaXMuaXNWYWxpZCA9IGlzVmFsaWQ7XG4gIH1cblxuICBwdWJsaWMgb25BZGRQb2xpY3koKSB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4udGhpcy5zdGVwVG9BZGQsXG4gICAgICBuYW1lOiB0aGlzLnNlbGVjdGVkUG9saWN5Py5uYW1lLFxuICAgICAgZW5hYmxlZDogdHJ1ZSxcbiAgICAgIHBvbGljeTogdGhpcy5zZWxlY3RlZFBvbGljeT8uaWQsXG4gICAgfSk7XG4gIH1cblxuICBwdWJsaWMgb25Hb0JhY2soKSB7XG4gICAgLy8gUmVzZXQgdG8gaW5pdGlhbCB2YWx1ZVxuICAgIHRoaXMuc2VsZWN0ZWRQb2xpY3kgPSB1bmRlZmluZWQ7XG4gICAgdGhpcy5pc1ZhbGlkID0gZmFsc2U7XG4gICAgdGhpcy5pc1VubGljZW5zZWQgPSBmYWxzZTtcbiAgfVxufVxuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cInRpdGxlXCI+XG4gIFBvbGljaWVzIGZvciA8c3BhbiBjbGFzcz1cInRpdGxlX19waGFzZVwiPnt7IGV4ZWN1dGlvblBoYXNlTGFiZWwgfX08L3NwYW4+IHBoYXNlXG5cbiAgPGJ1dHRvbiBjbGFzcz1cInRpdGxlX19jbG9zZUJ0blwiIG1hdC1pY29uLWJ1dHRvbiBhcmlhLWxhYmVsPVwiQ2xvc2UgZGlhbG9nXCIgW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86Y2FuY2VsXCI+PC9tYXQtaWNvbj5cbiAgPC9idXR0b24+XG48L2gyPlxuXG48bmctY29udGFpbmVyPlxuICA8bWF0LWRpYWxvZy1jb250ZW50ICpuZ0lmPVwiIXNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dcIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzXCIgW2Zvcm1Hcm91cF09XCJmaWx0ZXJzRm9ybVwiPlxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19zZWFyY2hcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxuICAgICAgICA8bWF0LWxhYmVsPlNlYXJjaDwvbWF0LWxhYmVsPlxuICAgICAgICA8aW5wdXQgbWF0SW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwic2VhcmNoXCIgLz5cbiAgICAgICAgPGJ1dHRvblxuICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgIG1hdC1pY29uLWJ1dHRvblxuICAgICAgICAgIGFyaWEtbGFiZWw9XCJDbGVhclwiXG4gICAgICAgICAgKm5nSWY9XCJmaWx0ZXJzRm9ybS5nZXQoJ3NlYXJjaCcpPy52YWx1ZVwiXG4gICAgICAgICAgKGNsaWNrKT1cImZpbHRlcnNGb3JtLmdldCgnc2VhcmNoJyk/LnNldFZhbHVlKCcnKVwiXG4gICAgICAgID5cbiAgICAgICAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICA8bWF0LWNoaXAtbGlzdFxuICAgICAgICAqbmdJZj1cImNhdGVnb3JpZXMubGVuZ3RoID4gMVwiXG4gICAgICAgIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19maWx0ZXJzX19jYXRlZ29yaWVzXCJcbiAgICAgICAgYXJpYS1sYWJlbD1cIkNhdGVnb3JpZXMgc2VsZWN0aW9uXCJcbiAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiY2F0ZWdvcmllc1wiXG4gICAgICA+XG4gICAgICAgIDxtYXQtY2hpcFxuICAgICAgICAgICpuZ0Zvcj1cImxldCBjYXRlZ29yeSBvZiBjYXRlZ29yaWVzXCJcbiAgICAgICAgICBbc2VsZWN0ZWRdPVwiY2F0ZWdvcnlcIlxuICAgICAgICAgIFt2YWx1ZV09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgI2NoaXA9XCJtYXRDaGlwXCJcbiAgICAgICAgICAoY2xpY2spPVwiY2hpcC50b2dnbGVTZWxlY3RlZCh0cnVlKVwiXG4gICAgICAgICAgPnt7IGNhdGVnb3J5IHwgdGl0bGVjYXNlIH19PC9tYXQtY2hpcFxuICAgICAgICA+XG4gICAgICA8L21hdC1jaGlwLWxpc3Q+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwicG9saWNpZXMubGVuZ3RoOyBlbHNlIGVtcHR5UG9saWNpZXNUcGxcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdFwiPlxuICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgcG9saWN5IG9mIHBvbGljaWVzXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeVwiPlxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2hlYWRcIj5cbiAgICAgICAgICA8bWF0LWljb24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9faWNvblwiIFtzdmdJY29uXT1cInBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgICAgICA8c3BhbiAqbmdJZj1cInBvbGljeS5uYW1lXCIgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZF9fbmFtZVwiPnt7IHBvbGljeS5uYW1lIH19PC9zcGFuPlxuICAgICAgICA8L2Rpdj5cblxuICAgICAgICA8ZGl2IGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VcIiAqbmdJZj1cInBvbGljeS5kZXBsb3llZCA9PT0gZmFsc2VcIj5cbiAgICAgICAgICA8bWF0LWljb25cbiAgICAgICAgICAgIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2VudGVycHJpc2VfX2xvY2tcIlxuICAgICAgICAgICAgW3N2Z0ljb25dPVwiJ2dpbzpsb2NrJ1wiXG4gICAgICAgICAgICBtYXRUb29sdGlwPVwiVGhpcyBwb2xpY3kgaXMgb25seSBhdmFpbGFibGUgZm9yIHVzZXJzIHdpdGggYW4gZW50ZXJwcmlzZSBsaWNlbnNlLlwiXG4gICAgICAgICAgPjwvbWF0LWljb24+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgKm5nSWY9XCJwb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19kZXNjcmlwdGlvblwiPnt7IHBvbGljeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuXG4gICAgICAgIDxidXR0b24gY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fc2VsZWN0QnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TZWxlY3RQb2xpY3kocG9saWN5KVwiPlxuICAgICAgICAgIFNlbGVjdFxuICAgICAgICA8L2J1dHRvbj5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICA8L21hdC1kaWFsb2ctY29udGVudD5cbjwvbmctY29udGFpbmVyPlxuXG48bmctdGVtcGxhdGUgI2VtcHR5UG9saWNpZXNUcGw+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJlbXB0eVBvbGljaWVzQ2F0YWxvZ1wiPk5vIHBvbGljaWVzIGF2YWlsYWJsZS48L21hdC1kaWFsb2ctY29udGVudD5cbjwvbmctdGVtcGxhdGU+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCJzZWxlY3RlZFBvbGljeVwiIGNsYXNzPVwicG9saWN5Rm9ybVwiPlxuICA8YnV0dG9uIGNsYXNzPVwicG9saWN5Rm9ybV9fZ29CYWNrQnRuXCIgbWF0LXN0cm9rZWQtYnV0dG9uIChjbGljayk9XCJvbkdvQmFjaygpXCI+XG4gICAgPG1hdC1pY29uIHN2Z0ljb249XCJnaW86YXJyb3ctbGVmdFwiPjwvbWF0LWljb24+XG4gICAgR28gYmFja1xuICA8L2J1dHRvbj5cblxuICA8Z2lvLWJhbm5lciAqbmdJZj1cImlzVW5saWNlbnNlZFwiIHR5cGU9XCJlcnJvclwiIGljb249XCJnaW86dW5pdmVyc2VcIj5cbiAgICBUaGlzIHBvbGljeSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdXNlcnMgd2l0aCBhbiBlbnRlcnByaXNlIGxpY2Vuc2UuXG4gICAgPHNwYW4gZ2lvQmFubmVyQm9keT5SZXF1ZXN0IGEgbGljZW5zZSB0byB1cGdyYWRlIHlvdXIgYWNjb3VudCBhbmQgdW5sb2NrIHRoaXMgcG9saWN5PC9zcGFuPlxuICAgIDxkaXYgZ2lvQmFubmVyQWN0aW9uPlxuICAgICAgPGEgKm5nSWY9XCJ0cmlhbFVybFwiIG1hdC1zdHJva2VkLWJ1dHRvbiBbaHJlZl09XCJ0cmlhbFVybFwiIHRhcmdldD1cIl9ibGFua1wiPlJlcXVlc3QgdXBncmFkZTwvYT5cbiAgICA8L2Rpdj5cbiAgPC9naW8tYmFubmVyPlxuXG4gIDxkaXYgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvXCI+XG4gICAgPGRpdiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRcIj5cbiAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2hlYWRfX2ljb25cIiBbc3ZnSWNvbl09XCJzZWxlY3RlZFBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kubmFtZVwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZF9fbmFtZVwiPnt7IHNlbGVjdGVkUG9saWN5Lm5hbWUgfX08L3NwYW4+XG4gICAgPC9kaXY+XG5cbiAgICA8ZGl2ICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb25cIiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9fX2Rlc2NyaXB0aW9uXCI+e3sgc2VsZWN0ZWRQb2xpY3kuZGVzY3JpcHRpb24gfX08L2Rpdj5cbiAgPC9kaXY+XG5cbiAgPGdpby1wcy1zdGVwLWZvcm0gW3BvbGljeV09XCJzZWxlY3RlZFBvbGljeVwiIChzdGVwQ2hhbmdlKT1cIm9uU3RlcENoYW5nZSgkZXZlbnQpXCIgKGlzVmFsaWQpPVwib25Jc1ZhbGlkKCRldmVudClcIj48L2dpby1wcy1zdGVwLWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvblxuICAgICpuZ0lmPVwic2VsZWN0ZWRQb2xpY3lcIlxuICAgIGNsYXNzPVwiYWN0aW9uc19fYWRkQnRuXCJcbiAgICBjb2xvcj1cInByaW1hcnlcIlxuICAgIG1hdC1mbGF0LWJ1dHRvblxuICAgIHJvbGU9XCJkaWFsb2dcIlxuICAgIFtkaXNhYmxlZF09XCIhaXNWYWxpZCB8fCBpc1VubGljZW5zZWRcIlxuICAgIChjbGljayk9XCJvbkFkZFBvbGljeSgpXCJcbiAgPlxuICAgIEFkZCBwb2xpY3lcbiAgPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==
124
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvcG9saWNpZXMtY2F0YWxvZy1kaWFsb2cvZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFDN0QsT0FBTyxFQUFzQyxzQkFBc0IsSUFBSSxlQUFlLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQztBQUNoSSxPQUFPLEVBQUUsT0FBTyxFQUFFLElBQUksRUFBRSxNQUFNLFFBQVEsQ0FBQztBQUN2QyxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUN0RSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQ3RELE9BQU8sRUFBRSxPQUFPLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7Ozs7QUFhL0IsTUFBTSxvQkFBb0IsR0FBbUM7SUFDM0QsT0FBTyxFQUFFLFNBQVM7SUFDbEIsUUFBUSxFQUFFLFVBQVU7SUFDcEIsZUFBZSxFQUFFLFNBQVM7SUFDMUIsZ0JBQWdCLEVBQUUsV0FBVztDQUM5QixDQUFDO0FBV0YsTUFBTSxPQUFPLDZDQUE2QztJQTRCeEQsWUFDUyxT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R1UsNkNBQTZDLG9EQThCOUMsZUFBZTsrSEE5QmQsNkNBQTZDLHNFQ2pEMUQsdXBLQWtJQTs0RkRqRmEsNkNBQTZDO2tCQUx6RCxTQUFTOytCQUNFLGdDQUFnQzs7MEJBa0N2QyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIE9uRGVzdHJveSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTWF0TGVnYWN5RGlhbG9nUmVmIGFzIE1hdERpYWxvZ1JlZiwgTUFUX0xFR0FDWV9ESUFMT0dfREFUQSBhcyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9sZWdhY3ktZGlhbG9nJztcbmltcG9ydCB7IHRvTG93ZXIsIHVuaXEgfSBmcm9tICdsb2Rhc2gnO1xuaW1wb3J0IHsgVW50eXBlZEZvcm1Db250cm9sLCBVbnR5cGVkRm9ybUdyb3VwIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgc3RhcnRXaXRoLCB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBTdWJqZWN0IH0gZnJvbSAncnhqcyc7XG5cbmltcG9ydCB7IEFwaVR5cGUsIEV4ZWN1dGlvblBoYXNlLCBQb2xpY3ksIFN0ZXAgfSBmcm9tICcuLi8uLi9tb2RlbHMnO1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dEYXRhID0ge1xuICBwb2xpY2llczogUG9saWN5W107XG4gIGV4ZWN1dGlvblBoYXNlOiBFeGVjdXRpb25QaGFzZTtcbiAgYXBpVHlwZTogQXBpVHlwZTtcbiAgdHJpYWxVcmw/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dSZXN1bHQgPSB1bmRlZmluZWQgfCBTdGVwO1xuXG5jb25zdCBleGVjdXRpb25QaGFzZUxhYmVsczogUmVjb3JkPEV4ZWN1dGlvblBoYXNlLCBzdHJpbmc+ID0ge1xuICBSRVFVRVNUOiAnUmVxdWVzdCcsXG4gIFJFU1BPTlNFOiAnUmVzcG9uc2UnLFxuICBNRVNTQUdFX1JFUVVFU1Q6ICdQdWJsaXNoJyxcbiAgTUVTU0FHRV9SRVNQT05TRTogJ1N1YnNjcmliZScsXG59O1xuXG50eXBlIFBvbGljeVZNID0gUG9saWN5ICYge1xuICBjYXRlZ29yeTogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLXBvbGljaWVzLWNhdGFsb2ctZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL2dpby1wcy1wb2xpY2llcy1jYXRhbG9nLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xuICBwdWJsaWMgcG9saWNpZXM6IFBvbGljeVZNW10gPSBbXTtcblxuICBwdWJsaWMgZXhlY3V0aW9uUGhhc2VMYWJlbCE6IHN0cmluZztcblxuICBwdWJsaWMgc2VsZWN0ZWRQb2xpY3k/OiBQb2xpY3k7XG5cbiAgcHVibGljIHN0ZXBUb0FkZD86IFN0ZXA7XG5cbiAgcHVibGljIGNhdGVnb3JpZXM6IHN0cmluZ1tdID0gW107XG5cbiAgcHVibGljIGlzVmFsaWQgPSBmYWxzZTtcblxuICBwdWJsaWMgc2VsZWN0ZWRDYXRlZ29yaWVzQ29udHJvbD86IFVudHlwZWRGb3JtQ29udHJvbDtcblxuICBwdWJsaWMgZmlsdGVyc0Zvcm0gPSBuZXcgVW50eXBlZEZvcm1Hcm91cCh7XG4gICAgY2F0ZWdvcmllczogbmV3IFVudHlwZWRGb3JtQ29udHJvbChbXSksXG4gICAgc2VhcmNoOiBuZXcgVW50eXBlZEZvcm1Db250cm9sKCcnKSxcbiAgfSk7XG5cbiAgcHJpdmF0ZSBhbGxQb2xpY2llczogUG9saWN5Vk1bXSA9IFtdO1xuXG4gIHByaXZhdGUgdW5zdWJzY3JpYmUkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcblxuICBwdWJsaWMgaXNVbmxpY2Vuc2VkID0gZmFsc2U7XG5cbiAgcHVibGljIHRyaWFsVXJsPzogc3RyaW5nO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb1BvbGljaWVzQ2F0YWxvZ0RpYWxvZ1Jlc3VsdD4sXG4gICAgQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGZsb3dEaWFsb2dEYXRhOiBHaW9Qb2xpY3lTdHVkaW9Qb2xpY2llc0NhdGFsb2dEaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLmV4ZWN1dGlvblBoYXNlTGFiZWwgPSBleGVjdXRpb25QaGFzZUxhYmVsc1tmbG93RGlhbG9nRGF0YS5leGVjdXRpb25QaGFzZV07XG5cbiAgICB0aGlzLmFsbFBvbGljaWVzID0gZmxvd0RpYWxvZ0RhdGEucG9saWNpZXNcbiAgICAgIC5maWx0ZXIocG9saWN5ID0+IHtcbiAgICAgICAgaWYgKGZsb3dEaWFsb2dEYXRhLmFwaVR5cGUgPT09ICdQUk9YWScpIHtcbiAgICAgICAgICByZXR1cm4gcG9saWN5LnByb3h5Py5pbmNsdWRlcyhmbG93RGlhbG9nRGF0YS5leGVjdXRpb25QaGFzZSk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIHBvbGljeS5tZXNzYWdlPy5pbmNsdWRlcyhmbG93RGlhbG9nRGF0YS5leGVjdXRpb25QaGFzZSk7XG4gICAgICB9KVxuICAgICAgLm1hcChwb2xpY3kgPT4gKHtcbiAgICAgICAgLi4ucG9saWN5LFxuICAgICAgICBjYXRlZ29yeTogcG9saWN5LmNhdGVnb3J5ID8/ICdPdGhlcnMnLFxuICAgICAgfSkpO1xuXG4gICAgdGhpcy5jYXRlZ29yaWVzID0gdW5pcSh0aGlzLmFsbFBvbGljaWVzLm1hcChwb2xpY3kgPT4gcG9saWN5LmNhdGVnb3J5LnRvTG93ZXJDYXNlKCkpKS5zb3J0KChhLCBiKSA9PiBhLmxvY2FsZUNvbXBhcmUoYikpO1xuICAgIGNvbnN0IG90aGVyc0luZGV4ID0gdGhpcy5jYXRlZ29yaWVzLmluZGV4T2YoJ290aGVycycpO1xuICAgIGlmIChvdGhlcnNJbmRleCAhPT0gLTEpIHtcbiAgICAgIHRoaXMuY2F0ZWdvcmllcy5wdXNoKHRoaXMuY2F0ZWdvcmllcy5zcGxpY2Uob3RoZXJzSW5kZXgsIDEpWzBdKTtcbiAgICB9XG5cbiAgICB0aGlzLmZpbHRlcnNGb3JtLnZhbHVlQ2hhbmdlc1xuICAgICAgLnBpcGUoc3RhcnRXaXRoKHRoaXMuZmlsdGVyc0Zvcm0udmFsdWUpLCB0YWtlVW50aWwodGhpcy51bnN1YnNjcmliZSQpKVxuICAgICAgLnN1YnNjcmliZSgoeyBjYXRlZ29yaWVzLCBzZWFyY2ggfTogeyBjYXRlZ29yaWVzPzogc3RyaW5nW107IHNlYXJjaD86IHN0cmluZyB9KSA9PiB7XG4gICAgICAgIGNvbnN0IHNlbGVjdGVkQ2F0ZWdvcmllcyA9IGNhdGVnb3JpZXMgJiYgY2F0ZWdvcmllcy5sZW5ndGggPiAwID8gY2F0ZWdvcmllcyA6IHRoaXMuY2F0ZWdvcmllcztcbiAgICAgICAgdGhpcy5wb2xpY2llcyA9IHRoaXMuYWxsUG9saWNpZXNcbiAgICAgICAgICAuZmlsdGVyKHBvbGljeSA9PiB7XG4gICAgICAgICAgICByZXR1cm4gc2VsZWN0ZWRDYXRlZ29yaWVzLm1hcCh0b0xvd2VyKS5pbmNsdWRlcyh0b0xvd2VyKHBvbGljeS5jYXRlZ29yeSkpO1xuICAgICAgICAgIH0pXG4gICAgICAgICAgLmZpbHRlcihwb2xpY3kgPT4ge1xuICAgICAgICAgICAgcmV0dXJuIHNlYXJjaCA/IHRvTG93ZXIocG9saWN5Lm5hbWUpLmluY2x1ZGVzKHRvTG93ZXIoc2VhcmNoKSkgOiB0cnVlO1xuICAgICAgICAgIH0pO1xuICAgICAgfSk7XG5cbiAgICB0aGlzLnRyaWFsVXJsID0gZmxvd0RpYWxvZ0RhdGEudHJpYWxVcmw7XG4gIH1cblxuICBwdWJsaWMgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgdGhpcy51bnN1YnNjcmliZSQubmV4dCgpO1xuICAgIHRoaXMudW5zdWJzY3JpYmUkLmNvbXBsZXRlKCk7XG4gIH1cblxuICBwdWJsaWMgb25TZWxlY3RQb2xpY3kocG9saWN5OiBQb2xpY3kpIHtcbiAgICBpZiAocG9saWN5LmRlcGxveWVkID09PSBmYWxzZSkge1xuICAgICAgdGhpcy5pc1VubGljZW5zZWQgPSB0cnVlO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkUG9saWN5ID0gcG9saWN5O1xuICB9XG5cbiAgcHVibGljIG9uU3RlcENoYW5nZShzdGVwOiBTdGVwKSB7XG4gICAgdGhpcy5zdGVwVG9BZGQgPSBzdGVwO1xuICB9XG5cbiAgcHVibGljIG9uSXNWYWxpZChpc1ZhbGlkOiBib29sZWFuKSB7XG4gICAgdGhpcy5pc1ZhbGlkID0gaXNWYWxpZDtcbiAgfVxuXG4gIHB1YmxpYyBvbkFkZFBvbGljeSgpIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi50aGlzLnN0ZXBUb0FkZCxcbiAgICAgIG5hbWU6IHRoaXMuc2VsZWN0ZWRQb2xpY3k/Lm5hbWUsXG4gICAgICBlbmFibGVkOiB0cnVlLFxuICAgICAgcG9saWN5OiB0aGlzLnNlbGVjdGVkUG9saWN5Py5pZCxcbiAgICB9KTtcbiAgfVxuXG4gIHB1YmxpYyBvbkdvQmFjaygpIHtcbiAgICAvLyBSZXNldCB0byBpbml0aWFsIHZhbHVlXG4gICAgdGhpcy5zZWxlY3RlZFBvbGljeSA9IHVuZGVmaW5lZDtcbiAgICB0aGlzLmlzVmFsaWQgPSBmYWxzZTtcbiAgICB0aGlzLmlzVW5saWNlbnNlZCA9IGZhbHNlO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgUG9saWNpZXMgZm9yIDxzcGFuIGNsYXNzPVwidGl0bGVfX3BoYXNlXCI+e3sgZXhlY3V0aW9uUGhhc2VMYWJlbCB9fTwvc3Bhbj4gcGhhc2VcblxuICA8YnV0dG9uIGNsYXNzPVwidGl0bGVfX2Nsb3NlQnRuXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cbjwvaDI+XG5cbjxuZy1jb250YWluZXI+XG4gIDxtYXQtZGlhbG9nLWNvbnRlbnQgKm5nSWY9XCIhc2VsZWN0ZWRQb2xpY3lcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ1wiPlxuICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2ZpbHRlcnNcIiBbZm9ybUdyb3VwXT1cImZpbHRlcnNGb3JtXCI+XG4gICAgICA8bWF0LWZvcm0tZmllbGQgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2ZpbHRlcnNfX3NlYXJjaFwiIGFwcGVhcmFuY2U9XCJvdXRsaW5lXCI+XG4gICAgICAgIDxtYXQtbGFiZWw+U2VhcmNoPC9tYXQtbGFiZWw+XG4gICAgICAgIDxpbnB1dCBtYXRJbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJzZWFyY2hcIiAvPlxuICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgbWF0U3VmZml4XG4gICAgICAgICAgbWF0LWljb24tYnV0dG9uXG4gICAgICAgICAgYXJpYS1sYWJlbD1cIkNsZWFyXCJcbiAgICAgICAgICAqbmdJZj1cImZpbHRlcnNGb3JtLmdldCgnc2VhcmNoJyk/LnZhbHVlXCJcbiAgICAgICAgICAoY2xpY2spPVwiZmlsdGVyc0Zvcm0uZ2V0KCdzZWFyY2gnKT8uc2V0VmFsdWUoJycpXCJcbiAgICAgICAgPlxuICAgICAgICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgIDxtYXQtY2hpcC1saXN0XG4gICAgICAgICpuZ0lmPVwiY2F0ZWdvcmllcy5sZW5ndGggPiAxXCJcbiAgICAgICAgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2ZpbHRlcnNfX2NhdGVnb3JpZXNcIlxuICAgICAgICBhcmlhLWxhYmVsPVwiQ2F0ZWdvcmllcyBzZWxlY3Rpb25cIlxuICAgICAgICBtdWx0aXBsZVxuICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJjYXRlZ29yaWVzXCJcbiAgICAgID5cbiAgICAgICAgPG1hdC1jaGlwXG4gICAgICAgICAgKm5nRm9yPVwibGV0IGNhdGVnb3J5IG9mIGNhdGVnb3JpZXNcIlxuICAgICAgICAgIFtzZWxlY3RlZF09XCJjYXRlZ29yeVwiXG4gICAgICAgICAgW3ZhbHVlXT1cImNhdGVnb3J5XCJcbiAgICAgICAgICAjY2hpcD1cIm1hdENoaXBcIlxuICAgICAgICAgIChjbGljayk9XCJjaGlwLnRvZ2dsZVNlbGVjdGVkKHRydWUpXCJcbiAgICAgICAgICA+e3sgY2F0ZWdvcnkgfCB0aXRsZWNhc2UgfX08L21hdC1jaGlwXG4gICAgICAgID5cbiAgICAgIDwvbWF0LWNoaXAtbGlzdD5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJwb2xpY2llcy5sZW5ndGg7IGVsc2UgZW1wdHlQb2xpY2llc1RwbFwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0XCI+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBwb2xpY3kgb2YgcG9saWNpZXNcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5XCI+XG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9faGVhZFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19oZWFkX19pY29uXCIgW3N2Z0ljb25dPVwicG9saWN5Lmljb24gPz8gJ2dpbzpwdXp6bGUnXCI+PC9tYXQtaWNvbj5cblxuICAgICAgICAgIDxzcGFuICpuZ0lmPVwicG9saWN5Lm5hbWVcIiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19oZWFkX19uYW1lXCI+e3sgcG9saWN5Lm5hbWUgfX08L3NwYW4+XG4gICAgICAgIDwvZGl2PlxuXG4gICAgICAgIDxkaXYgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fZW50ZXJwcmlzZVwiICpuZ0lmPVwicG9saWN5LmRlcGxveWVkID09PSBmYWxzZVwiPlxuICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgY2xhc3M9XCJwb2xpY2llc0NhdGFsb2dfX2xpc3RfX3BvbGljeV9fZW50ZXJwcmlzZV9fbG9ja1wiXG4gICAgICAgICAgICBbc3ZnSWNvbl09XCInZ2lvOmxvY2snXCJcbiAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJUaGlzIHBvbGljeSBpcyBvbmx5IGF2YWlsYWJsZSBmb3IgdXNlcnMgd2l0aCBhbiBlbnRlcnByaXNlIGxpY2Vuc2UuXCJcbiAgICAgICAgICA+PC9tYXQtaWNvbj5cbiAgICAgICAgPC9kaXY+XG5cbiAgICAgICAgPGRpdiAqbmdJZj1cInBvbGljeS5kZXNjcmlwdGlvblwiIGNsYXNzPVwicG9saWNpZXNDYXRhbG9nX19saXN0X19wb2xpY3lfX2Rlc2NyaXB0aW9uXCI+e3sgcG9saWN5LmRlc2NyaXB0aW9uIH19PC9kaXY+XG5cbiAgICAgICAgPGJ1dHRvbiBjbGFzcz1cInBvbGljaWVzQ2F0YWxvZ19fbGlzdF9fcG9saWN5X19zZWxlY3RCdG5cIiBtYXQtc3Ryb2tlZC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblNlbGVjdFBvbGljeShwb2xpY3kpXCI+XG4gICAgICAgICAgU2VsZWN0XG4gICAgICAgIDwvYnV0dG9uPlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvbWF0LWRpYWxvZy1jb250ZW50PlxuPC9uZy1jb250YWluZXI+XG5cbjxuZy10ZW1wbGF0ZSAjZW1wdHlQb2xpY2llc1RwbD5cbiAgPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImVtcHR5UG9saWNpZXNDYXRhbG9nXCI+Tm8gcG9saWNpZXMgYXZhaWxhYmxlLjwvbWF0LWRpYWxvZy1jb250ZW50PlxuPC9uZy10ZW1wbGF0ZT5cblxuPG1hdC1kaWFsb2ctY29udGVudCAqbmdJZj1cInNlbGVjdGVkUG9saWN5XCIgY2xhc3M9XCJwb2xpY3lGb3JtXCI+XG4gIDxidXR0b24gY2xhc3M9XCJwb2xpY3lGb3JtX19nb0JhY2tCdG5cIiBtYXQtc3Ryb2tlZC1idXR0b24gKGNsaWNrKT1cIm9uR29CYWNrKClcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzphcnJvdy1sZWZ0XCI+PC9tYXQtaWNvbj5cbiAgICBHbyBiYWNrXG4gIDwvYnV0dG9uPlxuXG4gIDxnaW8tYmFubmVyICpuZ0lmPVwiaXNVbmxpY2Vuc2VkXCIgdHlwZT1cImVycm9yXCIgaWNvbj1cImdpbzp1bml2ZXJzZVwiPlxuICAgIFRoaXMgcG9saWN5IGlzIG9ubHkgYXZhaWxhYmxlIGZvciB1c2VycyB3aXRoIGFuIGVudGVycHJpc2UgbGljZW5zZS5cbiAgICA8c3BhbiBnaW9CYW5uZXJCb2R5PlJlcXVlc3QgYSBsaWNlbnNlIHRvIHVwZ3JhZGUgeW91ciBhY2NvdW50IGFuZCB1bmxvY2sgdGhpcyBwb2xpY3k8L3NwYW4+XG4gICAgPGRpdiBnaW9CYW5uZXJBY3Rpb24+XG4gICAgICA8YSAqbmdJZj1cInRyaWFsVXJsXCIgbWF0LXN0cm9rZWQtYnV0dG9uIFtocmVmXT1cInRyaWFsVXJsXCIgdGFyZ2V0PVwiX2JsYW5rXCI+UmVxdWVzdCB1cGdyYWRlPC9hPlxuICAgIDwvZGl2PlxuICA8L2dpby1iYW5uZXI+XG5cbiAgPGRpdiBjbGFzcz1cInBvbGljeUZvcm1fX2luZm9cIj5cbiAgICA8ZGl2IGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZFwiPlxuICAgICAgPG1hdC1pY29uIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19faGVhZF9faWNvblwiIFtzdmdJY29uXT1cInNlbGVjdGVkUG9saWN5Lmljb24gPz8gJ2dpbzpwdXp6bGUnXCI+PC9tYXQtaWNvbj5cblxuICAgICAgPHNwYW4gKm5nSWY9XCJzZWxlY3RlZFBvbGljeS5uYW1lXCIgY2xhc3M9XCJwb2xpY3lGb3JtX19pbmZvX19oZWFkX19uYW1lXCI+e3sgc2VsZWN0ZWRQb2xpY3kubmFtZSB9fTwvc3Bhbj5cbiAgICA8L2Rpdj5cblxuICAgIDxkaXYgKm5nSWY9XCJzZWxlY3RlZFBvbGljeS5kZXNjcmlwdGlvblwiIGNsYXNzPVwicG9saWN5Rm9ybV9faW5mb19fZGVzY3JpcHRpb25cIj57eyBzZWxlY3RlZFBvbGljeS5kZXNjcmlwdGlvbiB9fTwvZGl2PlxuICA8L2Rpdj5cblxuICA8Z2lvLXBzLXN0ZXAtZm9ybSBbcG9saWN5XT1cInNlbGVjdGVkUG9saWN5XCIgKHN0ZXBDaGFuZ2UpPVwib25TdGVwQ2hhbmdlKCRldmVudClcIiAoaXNWYWxpZCk9XCJvbklzVmFsaWQoJGV2ZW50KVwiPjwvZ2lvLXBzLXN0ZXAtZm9ybT5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGNsYXNzPVwiYWN0aW9uc1wiIGFsaWduPVwiZW5kXCI+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19jYW5jZWxCdG5cIiBtYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cIlwiPkNhbmNlbDwvYnV0dG9uPlxuICA8YnV0dG9uXG4gICAgKm5nSWY9XCJzZWxlY3RlZFBvbGljeVwiXG4gICAgY2xhc3M9XCJhY3Rpb25zX19hZGRCdG5cIlxuICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgbWF0LWZsYXQtYnV0dG9uXG4gICAgcm9sZT1cImRpYWxvZ1wiXG4gICAgW2Rpc2FibGVkXT1cIiFpc1ZhbGlkIHx8IGlzVW5saWNlbnNlZFwiXG4gICAgKGNsaWNrKT1cIm9uQWRkUG9saWN5KClcIlxuICA+XG4gICAgQWRkIHBvbGljeVxuICA8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
@@ -14,13 +14,13 @@
14
14
  * limitations under the License.
15
15
  */
16
16
  import { Component, Inject } from '@angular/core';
17
- import { MAT_DIALOG_DATA } from '@angular/material/dialog';
17
+ import { MAT_LEGACY_DIALOG_DATA as MAT_DIALOG_DATA } from '@angular/material/legacy-dialog';
18
18
  import * as i0 from "@angular/core";
19
- import * as i1 from "@angular/material/dialog";
20
- import * as i2 from "@angular/material/icon";
21
- import * as i3 from "@angular/material/button";
22
- import * as i4 from "../step-form/gio-ps-step-form.component";
23
- import * as i5 from "@angular/common";
19
+ import * as i1 from "@angular/material/legacy-dialog";
20
+ import * as i2 from "@angular/common";
21
+ import * as i3 from "@angular/material/legacy-button";
22
+ import * as i4 from "@angular/material/icon";
23
+ import * as i5 from "../step-form/gio-ps-step-form.component";
24
24
  export class GioPolicyStudioStepEditDialogComponent {
25
25
  constructor(dialogRef, flowDialogData) {
26
26
  this.dialogRef = dialogRef;
@@ -34,13 +34,13 @@ export class GioPolicyStudioStepEditDialogComponent {
34
34
  });
35
35
  }
36
36
  }
37
- GioPolicyStudioStepEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, deps: [{ token: i1.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
38
- GioPolicyStudioStepEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.4.0", type: GioPolicyStudioStepEditDialogComponent, selector: "gio-ps-step-edit-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:-20px;right:-20px;float:right}.title__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\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.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }], directives: [{ type: i1.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i1.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { type: i1.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { type: i1.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]" }] });
39
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.4.0", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, decorators: [{
37
+ GioPolicyStudioStepEditDialogComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, deps: [{ token: i1.MatLegacyDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component });
38
+ GioPolicyStudioStepEditDialogComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: GioPolicyStudioStepEditDialogComponent, selector: "gio-ps-step-edit-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:-20px;right:-20px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.MatLegacyButton, 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"] }, { kind: "directive", type: i1.MatLegacyDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1.MatLegacyDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1.MatLegacyDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1.MatLegacyDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "component", type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.GioPolicyStudioStepFormComponent, selector: "gio-ps-step-form", inputs: ["step", "policy"], outputs: ["stepChange", "isValid"] }] });
39
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: GioPolicyStudioStepEditDialogComponent, decorators: [{
40
40
  type: Component,
41
- args: [{ selector: 'gio-ps-step-edit-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:-20px;right:-20px;float:right}.title__description{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
42
- }], ctorParameters: function () { return [{ type: i1.MatDialogRef }, { type: undefined, decorators: [{
41
+ args: [{ selector: 'gio-ps-step-edit-dialog', template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"title\">\n <mat-icon class=\"title__icon\" [svgIcon]=\"policy.icon ?? 'gio:puzzle'\"></mat-icon>\n\n <span *ngIf=\"step.name\" class=\"title__name\">{{ step.name }}</span>\n\n <button class=\"title__closeBtn\" mat-icon-button aria-label=\"Close dialog\" [mat-dialog-close]=\"\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n\n <div class=\"title__description\">\n {{ policy.description }}\n </div>\n</h2>\n\n<mat-dialog-content class=\"content\">\n <gio-ps-step-form [policy]=\"policy\" [(step)]=\"step\" (isValid)=\"isValid = $event\"></gio-ps-step-form>\n</mat-dialog-content>\n\n<mat-dialog-actions class=\"actions\" align=\"end\">\n <button class=\"actions__cancelBtn\" mat-button [mat-dialog-close]=\"\">Cancel</button>\n <button class=\"actions__saveBtn\" color=\"primary\" mat-flat-button role=\"dialog\" (click)=\"onSave()\" [disabled]=\"!isValid\">Save</button>\n</mat-dialog-actions>\n", styles: [".gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.title__icon{margin-right:8px}.title__closeBtn{top:-20px;right:-20px;float:right}.title__description{font-size:12px;font-weight:400;line-height:16px;font-family:Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#606274}\n"] }]
42
+ }], ctorParameters: function () { return [{ type: i1.MatLegacyDialogRef }, { type: undefined, decorators: [{
43
43
  type: Inject,
44
44
  args: [MAT_DIALOG_DATA]
45
45
  }] }]; } });
46
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zdGVwLWVkaXQtZGlhbG9nL2dpby1wcy1zdGVwLWVkaXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1lZGl0LWRpYWxvZy9naW8tcHMtc3RlcC1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBZ0IsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7Ozs7Ozs7QUFnQnpFLE1BQU0sT0FBTyxzQ0FBc0M7SUFNakQsWUFDUyxTQUFvRyxFQUNsRixjQUFpRDtRQURuRSxjQUFTLEdBQVQsU0FBUyxDQUEyRjtRQUh0RyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTXJCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7bUlBbEJVLHNDQUFzQyw4Q0FRdkMsZUFBZTt1SEFSZCxzQ0FBc0MsK0RDaENuRCwra0RBdUNBOzJGRFBhLHNDQUFzQztrQkFMbEQsU0FBUzsrQkFDRSx5QkFBeUI7OzBCQVloQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdERpYWxvZ1JlZiwgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuaW1wb3J0IHsgUG9saWN5LCBTdGVwIH0gZnJvbSAnLi4vLi4vbW9kZWxzJztcblxuZXhwb3J0IHR5cGUgR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dEYXRhID0ge1xuICBwb2xpY3k6IFBvbGljeTtcbiAgc3RlcDogU3RlcDtcbn07XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1N0ZXBFZGl0RGlhbG9nUmVzdWx0ID0gdW5kZWZpbmVkIHwgU3RlcDtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cnLFxuICB0ZW1wbGF0ZVVybDogJy4vZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tcHMtc3RlcC1lZGl0LWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyBwb2xpY3khOiBQb2xpY3k7XG4gIHB1YmxpYyBzdGVwITogU3RlcDtcblxuICBwdWJsaWMgaXNWYWxpZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHB1YmxpYyBkaWFsb2dSZWY6IE1hdERpYWxvZ1JlZjxHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ0NvbXBvbmVudCwgR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dSZXN1bHQ+LFxuICAgIEBJbmplY3QoTUFUX0RJQUxPR19EQVRBKSBmbG93RGlhbG9nRGF0YTogR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dEYXRhLFxuICApIHtcbiAgICB0aGlzLnBvbGljeSA9IGZsb3dEaWFsb2dEYXRhLnBvbGljeTtcbiAgICB0aGlzLnN0ZXAgPSBmbG93RGlhbG9nRGF0YS5zdGVwO1xuICB9XG5cbiAgcHVibGljIG9uU2F2ZSgpOiB2b2lkIHtcbiAgICB0aGlzLmRpYWxvZ1JlZi5jbG9zZSh7XG4gICAgICAuLi50aGlzLnN0ZXAsXG4gICAgfSk7XG4gIH1cbn1cbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJ0aXRsZVwiPlxuICA8bWF0LWljb24gY2xhc3M9XCJ0aXRsZV9faWNvblwiIFtzdmdJY29uXT1cInBvbGljeS5pY29uID8/ICdnaW86cHV6emxlJ1wiPjwvbWF0LWljb24+XG5cbiAgPHNwYW4gKm5nSWY9XCJzdGVwLm5hbWVcIiBjbGFzcz1cInRpdGxlX19uYW1lXCI+e3sgc3RlcC5uYW1lIH19PC9zcGFuPlxuXG4gIDxidXR0b24gY2xhc3M9XCJ0aXRsZV9fY2xvc2VCdG5cIiBtYXQtaWNvbi1idXR0b24gYXJpYS1sYWJlbD1cIkNsb3NlIGRpYWxvZ1wiIFttYXQtZGlhbG9nLWNsb3NlXT1cIlwiPlxuICAgIDxtYXQtaWNvbiBzdmdJY29uPVwiZ2lvOmNhbmNlbFwiPjwvbWF0LWljb24+XG4gIDwvYnV0dG9uPlxuXG4gIDxkaXYgY2xhc3M9XCJ0aXRsZV9fZGVzY3JpcHRpb25cIj5cbiAgICB7eyBwb2xpY3kuZGVzY3JpcHRpb24gfX1cbiAgPC9kaXY+XG48L2gyPlxuXG48bWF0LWRpYWxvZy1jb250ZW50IGNsYXNzPVwiY29udGVudFwiPlxuICA8Z2lvLXBzLXN0ZXAtZm9ybSBbcG9saWN5XT1cInBvbGljeVwiIFsoc3RlcCldPVwic3RlcFwiIChpc1ZhbGlkKT1cImlzVmFsaWQgPSAkZXZlbnRcIj48L2dpby1wcy1zdGVwLWZvcm0+XG48L21hdC1kaWFsb2ctY29udGVudD5cblxuPG1hdC1kaWFsb2ctYWN0aW9ucyBjbGFzcz1cImFjdGlvbnNcIiBhbGlnbj1cImVuZFwiPlxuICA8YnV0dG9uIGNsYXNzPVwiYWN0aW9uc19fY2FuY2VsQnRuXCIgbWF0LWJ1dHRvbiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5DYW5jZWw8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX3NhdmVCdG5cIiBjb2xvcj1cInByaW1hcnlcIiBtYXQtZmxhdC1idXR0b24gcm9sZT1cImRpYWxvZ1wiIChjbGljayk9XCJvblNhdmUoKVwiIFtkaXNhYmxlZF09XCIhaXNWYWxpZFwiPlNhdmU8L2J1dHRvbj5cbjwvbWF0LWRpYWxvZy1hY3Rpb25zPlxuIl19
46
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcG9saWN5LXN0dWRpby1hbmd1bGFyL3NyYy9saWIvY29tcG9uZW50cy9zdGVwLWVkaXQtZGlhbG9nL2dpby1wcy1zdGVwLWVkaXQtZGlhbG9nLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBvbGljeS1zdHVkaW8tYW5ndWxhci9zcmMvbGliL2NvbXBvbmVudHMvc3RlcC1lZGl0LWRpYWxvZy9naW8tcHMtc3RlcC1lZGl0LWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ2xELE9BQU8sRUFBc0Msc0JBQXNCLElBQUksZUFBZSxFQUFFLE1BQU0saUNBQWlDLENBQUM7Ozs7Ozs7QUFnQmhJLE1BQU0sT0FBTyxzQ0FBc0M7SUFNakQsWUFDUyxTQUFvRyxFQUNsRixjQUFpRDtRQURuRSxjQUFTLEdBQVQsU0FBUyxDQUEyRjtRQUh0RyxZQUFPLEdBQUcsS0FBSyxDQUFDO1FBTXJCLElBQUksQ0FBQyxNQUFNLEdBQUcsY0FBYyxDQUFDLE1BQU0sQ0FBQztRQUNwQyxJQUFJLENBQUMsSUFBSSxHQUFHLGNBQWMsQ0FBQyxJQUFJLENBQUM7SUFDbEMsQ0FBQztJQUVNLE1BQU07UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQztZQUNuQixHQUFHLElBQUksQ0FBQyxJQUFJO1NBQ2IsQ0FBQyxDQUFDO0lBQ0wsQ0FBQzs7b0lBbEJVLHNDQUFzQyxvREFRdkMsZUFBZTt3SEFSZCxzQ0FBc0MsK0RDaENuRCwra0RBdUNBOzRGRFBhLHNDQUFzQztrQkFMbEQsU0FBUzsrQkFDRSx5QkFBeUI7OzBCQVloQyxNQUFNOzJCQUFDLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE1hdExlZ2FjeURpYWxvZ1JlZiBhcyBNYXREaWFsb2dSZWYsIE1BVF9MRUdBQ1lfRElBTE9HX0RBVEEgYXMgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbGVnYWN5LWRpYWxvZyc7XG5cbmltcG9ydCB7IFBvbGljeSwgU3RlcCB9IGZyb20gJy4uLy4uL21vZGVscyc7XG5cbmV4cG9ydCB0eXBlIEdpb1BvbGljeVN0dWRpb1N0ZXBFZGl0RGlhbG9nRGF0YSA9IHtcbiAgcG9saWN5OiBQb2xpY3k7XG4gIHN0ZXA6IFN0ZXA7XG59O1xuXG5leHBvcnQgdHlwZSBHaW9Qb2xpY3lTdHVkaW9TdGVwRWRpdERpYWxvZ1Jlc3VsdCA9IHVuZGVmaW5lZCB8IFN0ZXA7XG5cbkBDb21wb25lbnQoe1xuICBzZWxlY3RvcjogJ2dpby1wcy1zdGVwLWVkaXQtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1wcy1zdGVwLWVkaXQtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLXBzLXN0ZXAtZWRpdC1kaWFsb2cuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgR2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dDb21wb25lbnQge1xuICBwdWJsaWMgcG9saWN5ITogUG9saWN5O1xuICBwdWJsaWMgc3RlcCE6IFN0ZXA7XG5cbiAgcHVibGljIGlzVmFsaWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwdWJsaWMgZGlhbG9nUmVmOiBNYXREaWFsb2dSZWY8R2lvUG9saWN5U3R1ZGlvU3RlcEVkaXREaWFsb2dDb21wb25lbnQsIEdpb1BvbGljeVN0dWRpb1N0ZXBFZGl0RGlhbG9nUmVzdWx0PixcbiAgICBASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgZmxvd0RpYWxvZ0RhdGE6IEdpb1BvbGljeVN0dWRpb1N0ZXBFZGl0RGlhbG9nRGF0YSxcbiAgKSB7XG4gICAgdGhpcy5wb2xpY3kgPSBmbG93RGlhbG9nRGF0YS5wb2xpY3k7XG4gICAgdGhpcy5zdGVwID0gZmxvd0RpYWxvZ0RhdGEuc3RlcDtcbiAgfVxuXG4gIHB1YmxpYyBvblNhdmUoKTogdm9pZCB7XG4gICAgdGhpcy5kaWFsb2dSZWYuY2xvc2Uoe1xuICAgICAgLi4udGhpcy5zdGVwLFxuICAgIH0pO1xuICB9XG59XG4iLCI8IS0tXG5cbiAgICBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcblxuICAgIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gICAgeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICAgIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuXG4gICAgICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcblxuICAgIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAgICBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gICAgV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gICAgU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICAgIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuXG4tLT5cbjxoMiBtYXQtZGlhbG9nLXRpdGxlIGNsYXNzPVwidGl0bGVcIj5cbiAgPG1hdC1pY29uIGNsYXNzPVwidGl0bGVfX2ljb25cIiBbc3ZnSWNvbl09XCJwb2xpY3kuaWNvbiA/PyAnZ2lvOnB1enpsZSdcIj48L21hdC1pY29uPlxuXG4gIDxzcGFuICpuZ0lmPVwic3RlcC5uYW1lXCIgY2xhc3M9XCJ0aXRsZV9fbmFtZVwiPnt7IHN0ZXAubmFtZSB9fTwvc3Bhbj5cblxuICA8YnV0dG9uIGNsYXNzPVwidGl0bGVfX2Nsb3NlQnRuXCIgbWF0LWljb24tYnV0dG9uIGFyaWEtbGFiZWw9XCJDbG9zZSBkaWFsb2dcIiBbbWF0LWRpYWxvZy1jbG9zZV09XCJcIj5cbiAgICA8bWF0LWljb24gc3ZnSWNvbj1cImdpbzpjYW5jZWxcIj48L21hdC1pY29uPlxuICA8L2J1dHRvbj5cblxuICA8ZGl2IGNsYXNzPVwidGl0bGVfX2Rlc2NyaXB0aW9uXCI+XG4gICAge3sgcG9saWN5LmRlc2NyaXB0aW9uIH19XG4gIDwvZGl2PlxuPC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImNvbnRlbnRcIj5cbiAgPGdpby1wcy1zdGVwLWZvcm0gW3BvbGljeV09XCJwb2xpY3lcIiBbKHN0ZXApXT1cInN0ZXBcIiAoaXNWYWxpZCk9XCJpc1ZhbGlkID0gJGV2ZW50XCI+PC9naW8tcHMtc3RlcC1mb3JtPlxuPC9tYXQtZGlhbG9nLWNvbnRlbnQ+XG5cbjxtYXQtZGlhbG9nLWFjdGlvbnMgY2xhc3M9XCJhY3Rpb25zXCIgYWxpZ249XCJlbmRcIj5cbiAgPGJ1dHRvbiBjbGFzcz1cImFjdGlvbnNfX2NhbmNlbEJ0blwiIG1hdC1idXR0b24gW21hdC1kaWFsb2ctY2xvc2VdPVwiXCI+Q2FuY2VsPC9idXR0b24+XG4gIDxidXR0b24gY2xhc3M9XCJhY3Rpb25zX19zYXZlQnRuXCIgY29sb3I9XCJwcmltYXJ5XCIgbWF0LWZsYXQtYnV0dG9uIHJvbGU9XCJkaWFsb2dcIiAoY2xpY2spPVwib25TYXZlKClcIiBbZGlzYWJsZWRdPVwiIWlzVmFsaWRcIj5TYXZlPC9idXR0b24+XG48L21hdC1kaWFsb2ctYWN0aW9ucz5cbiJdfQ==