@gravitee/ui-particles-angular 10.0.0 → 10.1.0-fix-license-service-e579501

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.
@@ -13,7 +13,7 @@
13
13
  * See the License for the specific language governing permissions and
14
14
  * limitations under the License.
15
15
  */
16
- import { Component, Inject, Injector } from '@angular/core';
16
+ import { Component, Inject } from '@angular/core';
17
17
  import { MAT_DIALOG_DATA } from '@angular/material/dialog';
18
18
  import { isObject, isString, toLower } from 'lodash';
19
19
  import * as i0 from "@angular/core";
@@ -36,11 +36,7 @@ export class GioConfirmAndValidateDialogComponent {
36
36
  }
37
37
  else if (isObject(confirmDialogData?.content)) {
38
38
  this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;
39
- // TODO: When Angular 16 ready use ngComponentOutletInputs
40
- this.contentComponentInjector = Injector.create({
41
- providers: [{ provide: 'contentComponentInputs', useValue: confirmDialogData?.content.componentInputs }],
42
- parent: parentInjector,
43
- });
39
+ this.contentComponentInputs = confirmDialogData?.content.componentInputs;
44
40
  }
45
41
  this.validationMessage = extendValidationMessage(confirmDialogData?.validationMessage ?? 'Please, type <code>confirm</code> to confirm.');
46
42
  this.validationValue = confirmDialogData?.validationValue ?? 'confirm';
@@ -51,11 +47,11 @@ export class GioConfirmAndValidateDialogComponent {
51
47
  this.isValid = toLower(confirmValue) === toLower(this.validationValue);
52
48
  }
53
49
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GioConfirmAndValidateDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
54
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GioConfirmAndValidateDialogComponent, selector: "gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
50
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GioConfirmAndValidateDialogComponent, selector: "gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6.MatLabel, selector: "mat-label" }, { kind: "component", type: i7.GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
55
51
  }
56
52
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GioConfirmAndValidateDialogComponent, decorators: [{
57
53
  type: Component,
58
- args: [{ selector: 'gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"] }]
54
+ args: [{ selector: 'gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"] }]
59
55
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
60
56
  type: Inject,
61
57
  args: [MAT_DIALOG_DATA]
@@ -63,4 +59,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
63
59
  const extendValidationMessage = (validationMessage) => {
64
60
  return validationMessage.replace('<code>', '<code class="gio-badge-warning">');
65
61
  };
66
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFFLFFBQVEsRUFBUSxNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFzQnJELE1BQU0sT0FBTyxvQ0FBb0M7SUFlL0MsWUFBcUMsaUJBQWtELEVBQW1CLGNBQXdCO1FBQXhCLG1CQUFjLEdBQWQsY0FBYyxDQUFVO1FBRjNILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHckIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsRUFBRSxLQUFLLElBQUksZUFBZSxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxjQUFjLENBQUM7UUFFL0MsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFpQixDQUFDO1NBQ3JEO2FBQU0sSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDekUsMERBQTBEO1lBQzFELElBQUksQ0FBQyx3QkFBd0IsR0FBRyxRQUFRLENBQUMsTUFBTSxDQUFDO2dCQUM5QyxTQUFTLEVBQUUsQ0FBQyxFQUFFLE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxRQUFRLEVBQUUsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLGVBQWUsRUFBRSxDQUFDO2dCQUN4RyxNQUFNLEVBQUUsY0FBYzthQUN2QixDQUFDLENBQUM7U0FDSjtRQUVELElBQUksQ0FBQyxpQkFBaUIsR0FBRyx1QkFBdUIsQ0FDOUMsaUJBQWlCLEVBQUUsaUJBQWlCLElBQUksK0NBQStDLENBQ3hGLENBQUM7UUFDRixJQUFJLENBQUMsZUFBZSxHQUFHLGlCQUFpQixFQUFFLGVBQWUsSUFBSSxTQUFTLENBQUM7UUFDdkUsSUFBSSxDQUFDLGFBQWEsR0FBRyxpQkFBaUIsRUFBRSxhQUFhLElBQUksU0FBUyxDQUFDO1FBQ25FLElBQUksQ0FBQyxZQUFZLEdBQUcsaUJBQWlCLEVBQUUsWUFBWSxJQUFJLFFBQVEsQ0FBQztJQUNsRSxDQUFDO0lBRU0sZUFBZSxDQUFDLFlBQW9CO1FBQ3pDLElBQUksQ0FBQyxPQUFPLEdBQUcsT0FBTyxDQUFDLFlBQVksQ0FBQyxLQUFLLE9BQU8sQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLENBQUM7SUFDekUsQ0FBQzsrR0F6Q1Usb0NBQW9DLGtCQWUzQixlQUFlO21HQWZ4QixvQ0FBb0MsdUVDdkNqRCx1cUVBMERBOzs0RkRuQmEsb0NBQW9DO2tCQUxoRCxTQUFTOytCQUNFLGlDQUFpQzs7MEJBbUI5QixNQUFNOzJCQUFDLGVBQWU7O0FBNkJyQyxNQUFNLHVCQUF1QixHQUFHLENBQUMsaUJBQXlCLEVBQUUsRUFBRTtJQUM1RCxPQUFPLGlCQUFpQixDQUFDLE9BQU8sQ0FBQyxRQUFRLEVBQUUsa0NBQWtDLENBQUMsQ0FBQztBQUNqRixDQUFDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgQ29tcG9uZW50LCBJbmplY3QsIEluamVjdG9yLCBUeXBlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNQVRfRElBTE9HX0RBVEEgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgaXNPYmplY3QsIGlzU3RyaW5nLCB0b0xvd2VyIH0gZnJvbSAnbG9kYXNoJztcblxuZXhwb3J0IHR5cGUgR2lvQ29uZmlybUFuZFZhbGlkYXRlRGlhbG9nRGF0YSA9IHtcbiAgdGl0bGU/OiBzdHJpbmc7XG4gIHdhcm5pbmc/OiBzdHJpbmc7XG4gIGNvbnRlbnQ/OlxuICAgIHwgc3RyaW5nXG4gICAgfCB7XG4gICAgICAgIGNvbXBvbmVudE91dGxldDogVHlwZTx1bmtub3duPjtcbiAgICAgICAgY29tcG9uZW50SW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gICAgICB9O1xuICB2YWxpZGF0aW9uTWVzc2FnZT86IHN0cmluZztcbiAgdmFsaWRhdGlvblZhbHVlPzogc3RyaW5nO1xuICBjb25maXJtQnV0dG9uPzogc3RyaW5nO1xuICBjYW5jZWxCdXR0b24/OiBzdHJpbmc7XG59O1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdnaW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nJyxcbiAgdGVtcGxhdGVVcmw6ICcuL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIEdpb0NvbmZpcm1BbmRWYWxpZGF0ZURpYWxvZ0NvbXBvbmVudCB7XG4gIHB1YmxpYyB0aXRsZTogc3RyaW5nO1xuICBwdWJsaWMgd2FybmluZz86IHN0cmluZztcbiAgcHVibGljIGNvbnRlbnQ/OiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50Q29tcG9uZW50T3V0bGV0PzogVHlwZTx1bmtub3duPjtcbiAgcHVibGljIGNvbnRlbnRDb21wb25lbnRJbnB1dHM/OiBSZWNvcmQ8c3RyaW5nLCB1bmtub3duPjtcbiAgcHVibGljIGNvbnRlbnRDb21wb25lbnRJbmplY3RvcjogSW5qZWN0b3I7XG4gIHB1YmxpYyB2YWxpZGF0aW9uTWVzc2FnZT86IHN0cmluZztcbiAgcHVibGljIHZhbGlkYXRpb25WYWx1ZTogc3RyaW5nO1xuICBwdWJsaWMgY29uZmlybUJ1dHRvbjogc3RyaW5nO1xuICBwdWJsaWMgY2FuY2VsQnV0dG9uOiBzdHJpbmc7XG5cbiAgcHVibGljIGNvbmZpcm1WYWx1ZT86IHN0cmluZztcbiAgcHVibGljIGlzVmFsaWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihASW5qZWN0KE1BVF9ESUFMT0dfREFUQSkgY29uZmlybURpYWxvZ0RhdGE6IEdpb0NvbmZpcm1BbmRWYWxpZGF0ZURpYWxvZ0RhdGEsIHByaXZhdGUgcmVhZG9ubHkgcGFyZW50SW5qZWN0b3I6IEluamVjdG9yKSB7XG4gICAgdGhpcy50aXRsZSA9IGNvbmZpcm1EaWFsb2dEYXRhPy50aXRsZSA/PyAnQXJlIHlvdSBzdXJlPyc7XG4gICAgdGhpcy53YXJuaW5nID0gY29uZmlybURpYWxvZ0RhdGE/Lndhcm5pbmc7XG4gICAgdGhpcy5jb250ZW50Q29tcG9uZW50SW5qZWN0b3IgPSBwYXJlbnRJbmplY3RvcjtcblxuICAgIGlmIChpc1N0cmluZyhjb25maXJtRGlhbG9nRGF0YT8uY29udGVudCkpIHtcbiAgICAgIHRoaXMuY29udGVudCA9IGNvbmZpcm1EaWFsb2dEYXRhPy5jb250ZW50IGFzIHN0cmluZztcbiAgICB9IGVsc2UgaWYgKGlzT2JqZWN0KGNvbmZpcm1EaWFsb2dEYXRhPy5jb250ZW50KSkge1xuICAgICAgdGhpcy5jb250ZW50Q29tcG9uZW50T3V0bGV0ID0gY29uZmlybURpYWxvZ0RhdGE/LmNvbnRlbnQuY29tcG9uZW50T3V0bGV0O1xuICAgICAgLy8gVE9ETzogV2hlbiBBbmd1bGFyIDE2IHJlYWR5IHVzZSBuZ0NvbXBvbmVudE91dGxldElucHV0c1xuICAgICAgdGhpcy5jb250ZW50Q29tcG9uZW50SW5qZWN0b3IgPSBJbmplY3Rvci5jcmVhdGUoe1xuICAgICAgICBwcm92aWRlcnM6IFt7IHByb3ZpZGU6ICdjb250ZW50Q29tcG9uZW50SW5wdXRzJywgdXNlVmFsdWU6IGNvbmZpcm1EaWFsb2dEYXRhPy5jb250ZW50LmNvbXBvbmVudElucHV0cyB9XSxcbiAgICAgICAgcGFyZW50OiBwYXJlbnRJbmplY3RvcixcbiAgICAgIH0pO1xuICAgIH1cblxuICAgIHRoaXMudmFsaWRhdGlvbk1lc3NhZ2UgPSBleHRlbmRWYWxpZGF0aW9uTWVzc2FnZShcbiAgICAgIGNvbmZpcm1EaWFsb2dEYXRhPy52YWxpZGF0aW9uTWVzc2FnZSA/PyAnUGxlYXNlLCB0eXBlIDxjb2RlPmNvbmZpcm08L2NvZGU+IHRvIGNvbmZpcm0uJyxcbiAgICApO1xuICAgIHRoaXMudmFsaWRhdGlvblZhbHVlID0gY29uZmlybURpYWxvZ0RhdGE/LnZhbGlkYXRpb25WYWx1ZSA/PyAnY29uZmlybSc7XG4gICAgdGhpcy5jb25maXJtQnV0dG9uID0gY29uZmlybURpYWxvZ0RhdGE/LmNvbmZpcm1CdXR0b24gPz8gJ0NvbmZpcm0nO1xuICAgIHRoaXMuY2FuY2VsQnV0dG9uID0gY29uZmlybURpYWxvZ0RhdGE/LmNhbmNlbEJ1dHRvbiA/PyAnQ2FuY2VsJztcbiAgfVxuXG4gIHB1YmxpYyBvbkNvbmZpcm1DaGFuZ2UoY29uZmlybVZhbHVlOiBzdHJpbmcpOiB2b2lkIHtcbiAgICB0aGlzLmlzVmFsaWQgPSB0b0xvd2VyKGNvbmZpcm1WYWx1ZSkgPT09IHRvTG93ZXIodGhpcy52YWxpZGF0aW9uVmFsdWUpO1xuICB9XG59XG5cbmNvbnN0IGV4dGVuZFZhbGlkYXRpb25NZXNzYWdlID0gKHZhbGlkYXRpb25NZXNzYWdlOiBzdHJpbmcpID0+IHtcbiAgcmV0dXJuIHZhbGlkYXRpb25NZXNzYWdlLnJlcGxhY2UoJzxjb2RlPicsICc8Y29kZSBjbGFzcz1cImdpby1iYWRnZS13YXJuaW5nXCI+Jyk7XG59O1xuIiwiPCEtLVxuXG4gICAgQ29weXJpZ2h0IChDKSAyMDE1IFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG5cbiAgICBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICAgIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAgICBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcblxuICAgICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG5cbiAgICBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gICAgZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICAgIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICAgIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAgICBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cblxuLS0+XG48aDIgbWF0LWRpYWxvZy10aXRsZSBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX190aXRsZVwiPnt7IHRpdGxlIH19PC9oMj5cblxuPG1hdC1kaWFsb2ctY29udGVudCBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19ib2R5XCI+XG4gIDxnaW8tYmFubmVyLXdhcm5pbmcgKm5nSWY9XCJ3YXJuaW5nXCI+PHNwYW4gW2lubmVySFRNTF09XCJ3YXJuaW5nXCI+PC9zcGFuPjwvZ2lvLWJhbm5lci13YXJuaW5nPlxuICA8cCBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19ib2R5X19jb250ZW50XCIgKm5nSWY9XCJjb250ZW50XCIgW2lubmVySFRNTF09XCJjb250ZW50XCI+PC9wPlxuXG4gIDxkaXYgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fYm9keV9fY29udGVudFwiICpuZ0lmPVwiY29udGVudENvbXBvbmVudE91dGxldFwiPlxuICAgIDxuZy1jb250YWluZXIgKm5nQ29tcG9uZW50T3V0bGV0PVwiY29udGVudENvbXBvbmVudE91dGxldDsgaW5qZWN0b3I6IGNvbnRlbnRDb21wb25lbnRJbmplY3RvclwiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8cCBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19ib2R5X192YWxpZGF0ZS1tZXNzYWdlXCIgW2lubmVySFRNTF09XCJ2YWxpZGF0aW9uTWVzc2FnZVwiPjwvcD5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29uZmlybS1kaWFsb2dfX2JvZHlfX3ZhbGlkYXRlLWlucHV0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgPG1hdC1sYWJlbD5Db25maXJtPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgY2RrRm9jdXNJbml0aWFsXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwidmFsaWRhdGlvblZhbHVlXCJcbiAgICAgIFtuZ01vZGVsXT1cImNvbmZpcm1WYWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNvbmZpcm1DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICByZXF1aXJlZFxuICAgICAgZGF0YS10ZXN0aWQ9XCJjb25maXJtLWlucHV0LWRpYWxvZ1wiXG4gICAgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCIgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fYWN0aW9uc1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fY29uZmlybS1idXR0b25cIlxuICAgIFtkaXNhYmxlZF09XCIhaXNWYWxpZFwiXG4gICAgY29sb3I9XCJ3YXJuXCJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgIGRhdGEtdGVzdGlkPVwiY29uZmlybS1kaWFsb2dcIlxuICA+XG4gICAge3sgY29uZmlybUJ1dHRvbiB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19jYW5jZWwtYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAge3sgY2FuY2VsQnV0dG9uIH19XG4gIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
62
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxFQUFrQixNQUFNLGVBQWUsQ0FBQztBQUNsRSxPQUFPLEVBQUUsZUFBZSxFQUFFLE1BQU0sMEJBQTBCLENBQUM7QUFDM0QsT0FBTyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDOzs7Ozs7Ozs7QUFzQnJELE1BQU0sT0FBTyxvQ0FBb0M7SUFlL0MsWUFBcUMsaUJBQWtELEVBQW1CLGNBQXdCO1FBQXhCLG1CQUFjLEdBQWQsY0FBYyxDQUFVO1FBRjNILFlBQU8sR0FBRyxLQUFLLENBQUM7UUFHckIsSUFBSSxDQUFDLEtBQUssR0FBRyxpQkFBaUIsRUFBRSxLQUFLLElBQUksZUFBZSxDQUFDO1FBQ3pELElBQUksQ0FBQyxPQUFPLEdBQUcsaUJBQWlCLEVBQUUsT0FBTyxDQUFDO1FBQzFDLElBQUksQ0FBQyx3QkFBd0IsR0FBRyxjQUFjLENBQUM7UUFFL0MsSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDeEMsSUFBSSxDQUFDLE9BQU8sR0FBRyxpQkFBaUIsRUFBRSxPQUFpQixDQUFDO1NBQ3JEO2FBQU0sSUFBSSxRQUFRLENBQUMsaUJBQWlCLEVBQUUsT0FBTyxDQUFDLEVBQUU7WUFDL0MsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7WUFDekUsSUFBSSxDQUFDLHNCQUFzQixHQUFHLGlCQUFpQixFQUFFLE9BQU8sQ0FBQyxlQUFlLENBQUM7U0FDMUU7UUFFRCxJQUFJLENBQUMsaUJBQWlCLEdBQUcsdUJBQXVCLENBQzlDLGlCQUFpQixFQUFFLGlCQUFpQixJQUFJLCtDQUErQyxDQUN4RixDQUFDO1FBQ0YsSUFBSSxDQUFDLGVBQWUsR0FBRyxpQkFBaUIsRUFBRSxlQUFlLElBQUksU0FBUyxDQUFDO1FBQ3ZFLElBQUksQ0FBQyxhQUFhLEdBQUcsaUJBQWlCLEVBQUUsYUFBYSxJQUFJLFNBQVMsQ0FBQztRQUNuRSxJQUFJLENBQUMsWUFBWSxHQUFHLGlCQUFpQixFQUFFLFlBQVksSUFBSSxRQUFRLENBQUM7SUFDbEUsQ0FBQztJQUVNLGVBQWUsQ0FBQyxZQUFvQjtRQUN6QyxJQUFJLENBQUMsT0FBTyxHQUFHLE9BQU8sQ0FBQyxZQUFZLENBQUMsS0FBSyxPQUFPLENBQUMsSUFBSSxDQUFDLGVBQWUsQ0FBQyxDQUFDO0lBQ3pFLENBQUM7K0dBckNVLG9DQUFvQyxrQkFlM0IsZUFBZTttR0FmeEIsb0NBQW9DLHVFQ3ZDakQsbXFFQTBEQTs7NEZEbkJhLG9DQUFvQztrQkFMaEQsU0FBUzsrQkFDRSxpQ0FBaUM7OzBCQW1COUIsTUFBTTsyQkFBQyxlQUFlOztBQXlCckMsTUFBTSx1QkFBdUIsR0FBRyxDQUFDLGlCQUF5QixFQUFFLEVBQUU7SUFDNUQsT0FBTyxpQkFBaUIsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLGtDQUFrQyxDQUFDLENBQUM7QUFDakYsQ0FBQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IENvbXBvbmVudCwgSW5qZWN0LCBJbmplY3RvciwgVHlwZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTUFUX0RJQUxPR19EQVRBIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGlzT2JqZWN0LCBpc1N0cmluZywgdG9Mb3dlciB9IGZyb20gJ2xvZGFzaCc7XG5cbmV4cG9ydCB0eXBlIEdpb0NvbmZpcm1BbmRWYWxpZGF0ZURpYWxvZ0RhdGEgPSB7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB3YXJuaW5nPzogc3RyaW5nO1xuICBjb250ZW50PzpcbiAgICB8IHN0cmluZ1xuICAgIHwge1xuICAgICAgICBjb21wb25lbnRPdXRsZXQ6IFR5cGU8dW5rbm93bj47XG4gICAgICAgIGNvbXBvbmVudElucHV0cz86IFJlY29yZDxzdHJpbmcsIHVua25vd24+O1xuICAgICAgfTtcbiAgdmFsaWRhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHZhbGlkYXRpb25WYWx1ZT86IHN0cmluZztcbiAgY29uZmlybUJ1dHRvbj86IHN0cmluZztcbiAgY2FuY2VsQnV0dG9uPzogc3RyaW5nO1xufTtcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZycsXG4gIHRlbXBsYXRlVXJsOiAnLi9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nLmNvbXBvbmVudC5odG1sJyxcbiAgc3R5bGVVcmxzOiBbJy4vZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQuc2NzcyddLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9Db25maXJtQW5kVmFsaWRhdGVEaWFsb2dDb21wb25lbnQge1xuICBwdWJsaWMgdGl0bGU6IHN0cmluZztcbiAgcHVibGljIHdhcm5pbmc/OiBzdHJpbmc7XG4gIHB1YmxpYyBjb250ZW50Pzogc3RyaW5nO1xuICBwdWJsaWMgY29udGVudENvbXBvbmVudE91dGxldD86IFR5cGU8dW5rbm93bj47XG4gIHB1YmxpYyBjb250ZW50Q29tcG9uZW50SW5wdXRzPzogUmVjb3JkPHN0cmluZywgdW5rbm93bj47XG4gIHB1YmxpYyBjb250ZW50Q29tcG9uZW50SW5qZWN0b3I6IEluamVjdG9yO1xuICBwdWJsaWMgdmFsaWRhdGlvbk1lc3NhZ2U/OiBzdHJpbmc7XG4gIHB1YmxpYyB2YWxpZGF0aW9uVmFsdWU6IHN0cmluZztcbiAgcHVibGljIGNvbmZpcm1CdXR0b246IHN0cmluZztcbiAgcHVibGljIGNhbmNlbEJ1dHRvbjogc3RyaW5nO1xuXG4gIHB1YmxpYyBjb25maXJtVmFsdWU/OiBzdHJpbmc7XG4gIHB1YmxpYyBpc1ZhbGlkID0gZmFsc2U7XG5cbiAgY29uc3RydWN0b3IoQEluamVjdChNQVRfRElBTE9HX0RBVEEpIGNvbmZpcm1EaWFsb2dEYXRhOiBHaW9Db25maXJtQW5kVmFsaWRhdGVEaWFsb2dEYXRhLCBwcml2YXRlIHJlYWRvbmx5IHBhcmVudEluamVjdG9yOiBJbmplY3Rvcikge1xuICAgIHRoaXMudGl0bGUgPSBjb25maXJtRGlhbG9nRGF0YT8udGl0bGUgPz8gJ0FyZSB5b3Ugc3VyZT8nO1xuICAgIHRoaXMud2FybmluZyA9IGNvbmZpcm1EaWFsb2dEYXRhPy53YXJuaW5nO1xuICAgIHRoaXMuY29udGVudENvbXBvbmVudEluamVjdG9yID0gcGFyZW50SW5qZWN0b3I7XG5cbiAgICBpZiAoaXNTdHJpbmcoY29uZmlybURpYWxvZ0RhdGE/LmNvbnRlbnQpKSB7XG4gICAgICB0aGlzLmNvbnRlbnQgPSBjb25maXJtRGlhbG9nRGF0YT8uY29udGVudCBhcyBzdHJpbmc7XG4gICAgfSBlbHNlIGlmIChpc09iamVjdChjb25maXJtRGlhbG9nRGF0YT8uY29udGVudCkpIHtcbiAgICAgIHRoaXMuY29udGVudENvbXBvbmVudE91dGxldCA9IGNvbmZpcm1EaWFsb2dEYXRhPy5jb250ZW50LmNvbXBvbmVudE91dGxldDtcbiAgICAgIHRoaXMuY29udGVudENvbXBvbmVudElucHV0cyA9IGNvbmZpcm1EaWFsb2dEYXRhPy5jb250ZW50LmNvbXBvbmVudElucHV0cztcbiAgICB9XG5cbiAgICB0aGlzLnZhbGlkYXRpb25NZXNzYWdlID0gZXh0ZW5kVmFsaWRhdGlvbk1lc3NhZ2UoXG4gICAgICBjb25maXJtRGlhbG9nRGF0YT8udmFsaWRhdGlvbk1lc3NhZ2UgPz8gJ1BsZWFzZSwgdHlwZSA8Y29kZT5jb25maXJtPC9jb2RlPiB0byBjb25maXJtLicsXG4gICAgKTtcbiAgICB0aGlzLnZhbGlkYXRpb25WYWx1ZSA9IGNvbmZpcm1EaWFsb2dEYXRhPy52YWxpZGF0aW9uVmFsdWUgPz8gJ2NvbmZpcm0nO1xuICAgIHRoaXMuY29uZmlybUJ1dHRvbiA9IGNvbmZpcm1EaWFsb2dEYXRhPy5jb25maXJtQnV0dG9uID8/ICdDb25maXJtJztcbiAgICB0aGlzLmNhbmNlbEJ1dHRvbiA9IGNvbmZpcm1EaWFsb2dEYXRhPy5jYW5jZWxCdXR0b24gPz8gJ0NhbmNlbCc7XG4gIH1cblxuICBwdWJsaWMgb25Db25maXJtQ2hhbmdlKGNvbmZpcm1WYWx1ZTogc3RyaW5nKTogdm9pZCB7XG4gICAgdGhpcy5pc1ZhbGlkID0gdG9Mb3dlcihjb25maXJtVmFsdWUpID09PSB0b0xvd2VyKHRoaXMudmFsaWRhdGlvblZhbHVlKTtcbiAgfVxufVxuXG5jb25zdCBleHRlbmRWYWxpZGF0aW9uTWVzc2FnZSA9ICh2YWxpZGF0aW9uTWVzc2FnZTogc3RyaW5nKSA9PiB7XG4gIHJldHVybiB2YWxpZGF0aW9uTWVzc2FnZS5yZXBsYWNlKCc8Y29kZT4nLCAnPGNvZGUgY2xhc3M9XCJnaW8tYmFkZ2Utd2FybmluZ1wiPicpO1xufTtcbiIsIjwhLS1cblxuICAgIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuXG4gICAgTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAgICB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gICAgWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG5cbiAgICAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuXG4gICAgVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICAgIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAgICBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAgICBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gICAgbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG5cbi0tPlxuPGgyIG1hdC1kaWFsb2ctdGl0bGUgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fdGl0bGVcIj57eyB0aXRsZSB9fTwvaDI+XG5cbjxtYXQtZGlhbG9nLWNvbnRlbnQgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fYm9keVwiPlxuICA8Z2lvLWJhbm5lci13YXJuaW5nICpuZ0lmPVwid2FybmluZ1wiPjxzcGFuIFtpbm5lckhUTUxdPVwid2FybmluZ1wiPjwvc3Bhbj48L2dpby1iYW5uZXItd2FybmluZz5cbiAgPHAgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fYm9keV9fY29udGVudFwiICpuZ0lmPVwiY29udGVudFwiIFtpbm5lckhUTUxdPVwiY29udGVudFwiPjwvcD5cblxuICA8ZGl2IGNsYXNzPVwiY29uZmlybS1kaWFsb2dfX2JvZHlfX2NvbnRlbnRcIiAqbmdJZj1cImNvbnRlbnRDb21wb25lbnRPdXRsZXRcIj5cbiAgICA8bmctY29udGFpbmVyICpuZ0NvbXBvbmVudE91dGxldD1cImNvbnRlbnRDb21wb25lbnRPdXRsZXQ7IGlucHV0czogY29udGVudENvbXBvbmVudElucHV0c1wiPjwvbmctY29udGFpbmVyPlxuICA8L2Rpdj5cblxuICA8cCBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19ib2R5X192YWxpZGF0ZS1tZXNzYWdlXCIgW2lubmVySFRNTF09XCJ2YWxpZGF0aW9uTWVzc2FnZVwiPjwvcD5cbiAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwiY29uZmlybS1kaWFsb2dfX2JvZHlfX3ZhbGlkYXRlLWlucHV0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIiBmbG9hdExhYmVsPVwiYWx3YXlzXCI+XG4gICAgPG1hdC1sYWJlbD5Db25maXJtPC9tYXQtbGFiZWw+XG4gICAgPGlucHV0XG4gICAgICBtYXRJbnB1dFxuICAgICAgY2RrRm9jdXNJbml0aWFsXG4gICAgICB0eXBlPVwidGV4dFwiXG4gICAgICBbcGxhY2Vob2xkZXJdPVwidmFsaWRhdGlvblZhbHVlXCJcbiAgICAgIFtuZ01vZGVsXT1cImNvbmZpcm1WYWx1ZVwiXG4gICAgICAobmdNb2RlbENoYW5nZSk9XCJvbkNvbmZpcm1DaGFuZ2UoJGV2ZW50KVwiXG4gICAgICByZXF1aXJlZFxuICAgICAgZGF0YS10ZXN0aWQ9XCJjb25maXJtLWlucHV0LWRpYWxvZ1wiXG4gICAgLz5cbiAgPC9tYXQtZm9ybS1maWVsZD5cbjwvbWF0LWRpYWxvZy1jb250ZW50PlxuXG48bWF0LWRpYWxvZy1hY3Rpb25zIGFsaWduPVwiZW5kXCIgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fYWN0aW9uc1wiPlxuICA8YnV0dG9uXG4gICAgY2xhc3M9XCJjb25maXJtLWRpYWxvZ19fY29uZmlybS1idXR0b25cIlxuICAgIFtkaXNhYmxlZF09XCIhaXNWYWxpZFwiXG4gICAgY29sb3I9XCJ3YXJuXCJcbiAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgIFttYXQtZGlhbG9nLWNsb3NlXT1cInRydWVcIlxuICAgIGRhdGEtdGVzdGlkPVwiY29uZmlybS1kaWFsb2dcIlxuICA+XG4gICAge3sgY29uZmlybUJ1dHRvbiB9fVxuICA8L2J1dHRvbj5cbiAgPGJ1dHRvbiBjbGFzcz1cImNvbmZpcm0tZGlhbG9nX19jYW5jZWwtYnV0dG9uXCIgbWF0LWZsYXQtYnV0dG9uIFttYXQtZGlhbG9nLWNsb3NlXT1cImZhbHNlXCI+XG4gICAge3sgY2FuY2VsQnV0dG9uIH19XG4gIDwvYnV0dG9uPlxuPC9tYXQtZGlhbG9nLWFjdGlvbnM+XG4iXX0=
@@ -17,7 +17,10 @@ export class GioLicenseService {
17
17
  return this.loadLicense$;
18
18
  }
19
19
  isMissingFeature$(licenseOptions) {
20
- if (licenseOptions?.feature == null || !licenseOptions?.feature) {
20
+ if (licenseOptions?.hasFeature === false) {
21
+ return of(true);
22
+ }
23
+ if (licenseOptions?.feature == null || !licenseOptions?.feature || licenseOptions?.hasFeature === true) {
21
24
  return of(false);
22
25
  }
23
26
  return this.isExpired$().pipe(switchMap(isExpired => {
@@ -97,4 +100,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImpo
97
100
  type: Inject,
98
101
  args: ['LicenseConfiguration']
99
102
  }] }, { type: i2.MatDialog }]; } });
100
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWxpY2Vuc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWxpY2Vuc2UvZ2lvLWxpY2Vuc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSxtREFBbUQsQ0FBQzs7OztBQTBDcEgsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNtQixJQUFnQixFQUVoQixvQkFBMEMsRUFDMUMsU0FBb0I7UUFIcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUVoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxjQUEwQztRQUNqRSxJQUFJLGNBQWMsRUFBRSxPQUFPLElBQUksSUFBSSxJQUFJLENBQUMsY0FBYyxFQUFFLE9BQU8sRUFBRTtZQUMvRCxPQUFPLEVBQUUsQ0FBQyxLQUFLLENBQUMsQ0FBQztTQUNsQjtR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QUksQ0FBQyxhQUFhLEVBQUUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsT0FBTyxFQUFFLEdBQUcsSUFBSSxDQUFDLEdBQUcsRUFBRSxDQUFDLENBQUMsQ0FBQztJQUN0RyxDQUFDOytHQXBHVSxpQkFBaUIsNENBS2xCLHNCQUFzQjttSEFMckIsaUJBQWlCLGNBRmhCLE1BQU07OzRGQUVQLGlCQUFpQjtrQkFIN0IsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkI7OzBCQU1JLE1BQU07MkJBQUMsc0JBQXNCIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAxNSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XG5pbXBvcnQgeyBJbmplY3QsIEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE9ic2VydmFibGUsIG9mIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBtYXAsIHNoYXJlUmVwbGF5LCBzd2l0Y2hNYXAgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xuaW1wb3J0IHsgaXNFbXB0eSB9IGZyb20gJ2xvZGFzaCc7XG5cbmltcG9ydCB7IEdpb0xpY2Vuc2VEaWFsb2dDb21wb25lbnQsIEdpb0xpY2Vuc2VEaWFsb2dEYXRhIH0gZnJvbSAnLi9naW8tbGljZW5zZS1kaWFsb2cvZ2lvLWxpY2Vuc2UtZGlhbG9nLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB0eXBlIExpY2Vuc2UgPSB7XG4gIHRpZXI6IHN0cmluZztcbiAgcGFja3M6IEFycmF5PHN0cmluZz47XG4gIGZlYXR1cmVzOiBBcnJheTxzdHJpbmc+O1xuICBleHBpcmVzQXQ/OiBEYXRlO1xuICBzY29wZT86IHN0cmluZztcbn07XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZUNvbmZpZ3VyYXRpb24ge1xuICByZXNvdXJjZVVSTDogc3RyaW5nO1xuICBmZWF0dXJlSW5mb0RhdGE6IFJlY29yZDxzdHJpbmcsIEZlYXR1cmVJbmZvPjtcbiAgdHJpYWxSZXNvdXJjZVVSTDogc3RyaW5nO1xuICB1dG1Tb3VyY2U/OiBzdHJpbmc7XG4gIHV0bUNhbXBhaWduPzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIFVUTSB7XG4gIHNvdXJjZTogc3RyaW5nO1xuICBtZWRpdW06IHN0cmluZztcbiAgY2FtcGFpZ246IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBMaWNlbnNlT3B0aW9ucyB7XG4gIC8vIFdlIHVzZWQgZmVhdHVyZSBuYW1lIGFzIHV0bV9tZWRpdW1cbiAgZmVhdHVyZT86IHN0cmluZztcbiAgLy8gT3B0aW9uYWwsIHVzZWZ1bCBpZiBuZWVkIGEgY29udGV4dCBpbiB1dG0gY2FtcGFpZ24gKHV0bV9jb250ZW50KVxuICBjb250ZXh0Pzogc3RyaW5nO1xufVxuXG5leHBvcnQgaW50ZXJmYWNlIEZlYXR1cmVJbmZvIHtcbiAgaW1hZ2U/OiBzdHJpbmc7XG4gIGRlc2NyaXB0aW9uPzogc3RyaW5nO1xuICB0aXRsZT86IHN0cmluZztcbiAgdHJpYWxCdXR0b25MYWJlbD86IHN0cmluZztcbiAgaGlkZURheXM/OiBib29sZWFuO1xufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2lvTGljZW5zZVNlcnZpY2Uge1xuICBwcml2YXRlIHJlYWRvbmx5IGxvYWRMaWNlbnNlJDogT2JzZXJ2YWJsZTxMaWNlbnNlPjtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHJlYWRvbmx5IGh0dHA6IEh0dHBDbGllbnQsXG4gICAgQEluamVjdCgnTGljZW5zZUNvbmZpZ3VyYXRpb24nKVxuICAgIHByaXZhdGUgcmVhZG9ubHkgbGljZW5zZUNvbmZpZ3VyYXRpb246IExpY2Vuc2VDb25maWd1cmF0aW9uLFxuICAgIHByaXZhdGUgcmVhZG9ubHkgbWF0RGlhbG9nOiBNYXREaWFsb2csXG4gICkge1xuICAgIHRoaXMubG9hZExpY2Vuc2UkID0gdGhpcy5odHRwLmdldDxMaWNlbnNlPihsaWNlbnNlQ29uZmlndXJhdGlvbi5yZXNvdXJjZVVSTCkucGlwZShzaGFyZVJlcGxheSgxKSk7XG4gIH1cblxuICBwdWJsaWMgZ2V0TGljZW5zZSQoKTogT2JzZXJ2YWJsZTxMaWNlbnNlPiB7XG4gICAgcmV0dXJuIHRoaXMubG9hZExpY2Vuc2UkO1xuICB9XG5cbiAgcHVibGljIGlzTWlzc2luZ0ZlYXR1cmUkKGxpY2Vuc2VPcHRpb25zOiBMaWNlbnNlT3B0aW9ucyB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmIChsaWNlbnNlT3B0aW9ucz8uZmVhdHVyZSA9PSBudWxsIHx8ICFsaWNlbnNlT3B0aW9ucz8uZmVhdHVyZSkge1xuICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXNFeHBpcmVkJCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaXNFeHBpcmVkID0+IHtcbiAgICAgICAgaWYgKGlzRXhwaXJlZCkge1xuICAgICAgICAgIHJldHVybiBvZihpc0V4cGlyZWQpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldExpY2Vuc2UkKCkucGlwZShtYXAobGljZW5zZSA9PiBsaWNlbnNlID09IG51bGwgfHwgIWxpY2Vuc2UuZmVhdHVyZXMuc29tZShmZWF0ID0+IGZlYXQgPT09IGxpY2Vuc2VPcHRpb25zLmZlYXR1cmUpKSk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGhhc0FsbEZlYXR1cmVzJChsaWNlbnNlT3B0aW9uczogTGljZW5zZU9wdGlvbnNbXSB8IHVuZGVmaW5lZCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIGlmICghbGljZW5zZU9wdGlvbnMgfHwgaXNFbXB0eShsaWNlbnNlT3B0aW9ucykpIHtcbiAgICAgIHJldHVybiBvZih0cnVlKTtcbiAgICB9XG4gICAgcmV0dXJuIHRoaXMuaXNFeHBpcmVkJCgpLnBpcGUoXG4gICAgICBzd2l0Y2hNYXAoaXNFeHBpcmVkID0+IHtcbiAgICAgICAgY29uc3QgZmVhdHVyZXNEZWZpbmVkID0gbGljZW5zZU9wdGlvbnMuc29tZShvID0+ICEhby5mZWF0dXJlKTtcbiAgICAgICAgaWYgKGlzRXhwaXJlZCAmJiBmZWF0dXJlc0RlZmluZWQpIHtcbiAgICAgICAgICByZXR1cm4gb2YoZmFsc2UpO1xuICAgICAgICB9XG4gICAgICAgIHJldHVybiB0aGlzLmdldExpY2Vuc2UkKCkucGlwZShcbiAgICAgICAgICBtYXAobGljZW5zZSA9PiBsaWNlbnNlICE9IG51bGwgJiYgbGljZW5zZU9wdGlvbnMuZXZlcnkobyA9PiBsaWNlbnNlLmZlYXR1cmVzLnNvbWUoZmVhdCA9PiBmZWF0ID09PSBvLmZlYXR1cmUpKSksXG4gICAgICAgICk7XG4gICAgICB9KSxcbiAgICApO1xuICB9XG5cbiAgcHVibGljIGdldEZlYXR1cmVJbmZvKGxpY2Vuc2VPcHRpb25zOiBMaWNlbnNlT3B0aW9ucyk6IEZlYXR1cmVJbmZvIHtcbiAgICBpZiAoIWxpY2Vuc2VPcHRpb25zLmZlYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZmVhdHVyZSBpcyB1bmRlZmluZWRgKTtcbiAgICB9XG4gICAgY29uc3QgZmVhdHVyZUluZm8gPSB0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLmZlYXR1cmVJbmZvRGF0YVtsaWNlbnNlT3B0aW9ucy5mZWF0dXJlXTtcbiAgICBpZiAoIWZlYXR1cmVJbmZvKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoXG4gICAgICAgIGBVbmtub3duIEZlYXR1cmUgdmFsdWUgJHtsaWNlbnNlT3B0aW9ucy5mZWF0dXJlfS4gRXhwZWN0ZWQgb25lIG9mICR7T2JqZWN0LmtleXModGhpcy5saWNlbnNlQ29uZmlndXJhdGlvbi5mZWF0dXJlSW5mb0RhdGEpfWAsXG4gICAgICApO1xuICAgIH1cbiAgICByZXR1cm4gZmVhdHVyZUluZm87XG4gIH1cblxuICBwdWJsaWMgZ2V0VHJpYWxVUkwobGljZW5zZU9wdGlvbnM6IExpY2Vuc2VPcHRpb25zKTogc3RyaW5nIHtcbiAgICBpZiAoIWxpY2Vuc2VPcHRpb25zLmZlYXR1cmUpIHtcbiAgICAgIHRocm93IG5ldyBFcnJvcihgZmVhdHVyZSBpcyB1bmRlZmluZWRgKTtcbiAgICB9XG4gICAgY29uc3QgdXJsUGFyYW1zID1cbiAgICAgIHRoaXMubGljZW5zZUNvbmZpZ3VyYXRpb24udXRtU291cmNlIHx8IHRoaXMubGljZW5zZUNvbmZpZ3VyYXRpb24udXRtQ2FtcGFpZ25cbiAgICAgICAgPyBgP3V0bV9zb3VyY2U9JHt0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLnV0bVNvdXJjZX0mdXRtX21lZGl1bT0ke2xpY2Vuc2VPcHRpb25zLmZlYXR1cmV9JnV0bV9jYW1wYWlnbj0ke3RoaXMubGljZW5zZUNvbmZpZ3VyYXRpb24udXRtQ2FtcGFpZ259YFxuICAgICAgICA6ICcnO1xuICAgIGNvbnN0IGNvbnRleHQgPSB1cmxQYXJhbXMubGVuZ3RoID4gMCAmJiBsaWNlbnNlT3B0aW9ucy5jb250ZXh0ID8gYCZ1dG1fY29udGVudD0ke2xpY2Vuc2VPcHRpb25zLmNvbnRleHR9YCA6ICcnO1xuICAgIHJldHVybiBgJHt0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLnRyaWFsUmVzb3VyY2VVUkx9JHt1cmxQYXJhbXN9JHtjb250ZXh0fWA7XG4gIH1cblxuICBwdWJsaWMgaXNPRU0kKCk6IE9ic2VydmFibGU8Ym9vbGVhbj4ge1xuICAgIHJldHVybiB0aGlzLmdldExpY2Vuc2UkKCkucGlwZShtYXAobGljZW5zZSA9PiBsaWNlbnNlICE9PSBudWxsICYmIGxpY2Vuc2UuZmVhdHVyZXMuaW5jbHVkZXMoJ29lbS1jdXN0b21pemF0aW9uJykpKTtcbiAgfVxuXG4gIHB1YmxpYyBvcGVuRGlhbG9nKGxpY2Vuc2VPcHRpb25zOiBMaWNlbnNlT3B0aW9ucywgZXZlbnQ/OiBFdmVudCkge1xuICAgIGV2ZW50Py5zdG9wUHJvcGFnYXRpb24oKTtcbiAgICBldmVudD8ucHJldmVudERlZmF1bHQoKTtcbiAgICBjb25zdCBmZWF0dXJlSW5mbyA9IHRoaXMuZ2V0RmVhdHVyZUluZm8obGljZW5zZU9wdGlvbnMpO1xuICAgIGNvbnN0IHRyaWFsVVJMID0gdGhpcy5nZXRUcmlhbFVSTChsaWNlbnNlT3B0aW9ucyk7XG4gICAgcmV0dXJuIHRoaXMubWF0RGlhbG9nXG4gICAgICAub3BlbjxHaW9MaWNlbnNlRGlhbG9nQ29tcG9uZW50LCBHaW9MaWNlbnNlRGlhbG9nRGF0YSwgYm9vbGVhbj4oR2lvTGljZW5zZURpYWxvZ0NvbXBvbmVudCwge1xuICAgICAgICBkYXRhOiB7XG4gICAgICAgICAgZmVhdHVyZUluZm8sXG4gICAgICAgICAgdHJpYWxVUkwsXG4gICAgICAgIH0sXG4gICAgICAgIHJvbGU6ICdhbGVydGRpYWxvZycsXG4gICAgICAgIGlkOiAnZ2lvTGljZW5zZURpYWxvZycsXG4gICAgICB9KVxuICAgICAgLmFmdGVyQ2xvc2VkKClcbiAgICAgIC5zdWJzY3JpYmUoKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRFeHBpcmVzQXQkKCk6IE9ic2VydmFibGU8RGF0ZSB8IHVuZGVmaW5lZD4ge1xuICAgIHJldHVybiB0aGlzLmdldExpY2Vuc2UkKCkucGlwZShtYXAobGljZW5zZSA9PiAobGljZW5zZS5leHBpcmVzQXQgPyBuZXcgRGF0ZShsaWNlbnNlLmV4cGlyZXNBdCkgOiB1bmRlZmluZWQpKSk7XG4gIH1cblxuICBwdWJsaWMgaXNFeHBpcmVkJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRFeHBpcmVzQXQkKCkucGlwZShtYXAoZXhwaXJlc0F0ID0+ICEhZXhwaXJlc0F0ICYmIGV4cGlyZXNBdC52YWx1ZU9mKCkgPCBEYXRlLm5vdygpKSk7XG4gIH1cbn1cbiJdfQ==
103
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLWxpY2Vuc2Uuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLWxpY2Vuc2UvZ2lvLWxpY2Vuc2Uuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQkEsT0FBTyxFQUFFLE1BQU0sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDbkQsT0FBTyxFQUFjLEVBQUUsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUN0QyxPQUFPLEVBQUUsR0FBRyxFQUFFLFdBQVcsRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUU3RCxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sUUFBUSxDQUFDO0FBRWpDLE9BQU8sRUFBRSx5QkFBeUIsRUFBd0IsTUFBTSxtREFBbUQsQ0FBQzs7OztBQTRDcEgsTUFBTSxPQUFPLGlCQUFpQjtJQUc1QixZQUNtQixJQUFnQixFQUVoQixvQkFBMEMsRUFDMUMsU0FBb0I7UUFIcEIsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUVoQix5QkFBb0IsR0FBcEIsb0JBQW9CLENBQXNCO1FBQzFDLGNBQVMsR0FBVCxTQUFTLENBQVc7UUFFckMsSUFBSSxDQUFDLFlBQVksR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBVSxvQkFBb0IsQ0FBQyxXQUFXLENBQUMsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQyxDQUFDLENBQUM7SUFDcEcsQ0FBQztJQUVNLFdBQVc7UUFDaEIsT0FBTyxJQUFJLENBQUMsWUFBWSxDQUFDO0lBQzNCLENBQUM7SUFFTSxpQkFBaUIsQ0FBQyxjQUEwQztRQUNqRSxJQUFJLGNBQWMsRUFBRSxVQUFVLEtBQUssS0FBSyxFQUFFO1lBQ3hDLE9BQU8sRUFBRSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQ2pCO1FBQ0QsSUFBSSxjQUFjLEVBQUUsT0FBTyxJ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QUFDLElBQUksSUFBSSxDQUFDLE9BQU8sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLENBQUMsQ0FBQyxDQUFDO0lBQ2hILENBQUM7SUFFTSxVQUFVO1FBQ2YsT0FBTyxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUMsSUFBSSxDQUFDLEdBQUcsQ0FBQyxTQUFTLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxTQUFTLElBQUksU0FBUyxDQUFDLE9BQU8sRUFBRSxHQUFHLElBQUksQ0FBQyxHQUFHLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDdEcsQ0FBQzsrR0F2R1UsaUJBQWlCLDRDQUtsQixzQkFBc0I7bUhBTHJCLGlCQUFpQixjQUZoQixNQUFNOzs0RkFFUCxpQkFBaUI7a0JBSDdCLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25COzswQkFNSSxNQUFNOzJCQUFDLHNCQUFzQiIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMTUgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKlxuICogICAgICAgICBodHRwOi8vd3d3LmFwYWNoZS5vcmcvbGljZW5zZXMvTElDRU5TRS0yLjBcbiAqXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuaW1wb3J0IHsgSW5qZWN0LCBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgbWFwLCBzaGFyZVJlcGxheSwgc3dpdGNoTWFwIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHsgTWF0RGlhbG9nIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcbmltcG9ydCB7IGlzRW1wdHkgfSBmcm9tICdsb2Rhc2gnO1xuXG5pbXBvcnQgeyBHaW9MaWNlbnNlRGlhbG9nQ29tcG9uZW50LCBHaW9MaWNlbnNlRGlhbG9nRGF0YSB9IGZyb20gJy4vZ2lvLWxpY2Vuc2UtZGlhbG9nL2dpby1saWNlbnNlLWRpYWxvZy5jb21wb25lbnQnO1xuXG5leHBvcnQgdHlwZSBMaWNlbnNlID0ge1xuICB0aWVyOiBzdHJpbmc7XG4gIHBhY2tzOiBBcnJheTxzdHJpbmc+O1xuICBmZWF0dXJlczogQXJyYXk8c3RyaW5nPjtcbiAgZXhwaXJlc0F0PzogRGF0ZTtcbiAgc2NvcGU/OiBzdHJpbmc7XG59O1xuXG5leHBvcnQgaW50ZXJmYWNlIExpY2Vuc2VDb25maWd1cmF0aW9uIHtcbiAgcmVzb3VyY2VVUkw6IHN0cmluZztcbiAgZmVhdHVyZUluZm9EYXRhOiBSZWNvcmQ8c3RyaW5nLCBGZWF0dXJlSW5mbz47XG4gIHRyaWFsUmVzb3VyY2VVUkw6IHN0cmluZztcbiAgdXRtU291cmNlPzogc3RyaW5nO1xuICB1dG1DYW1wYWlnbj86IHN0cmluZztcbn1cblxuZXhwb3J0IGludGVyZmFjZSBVVE0ge1xuICBzb3VyY2U6IHN0cmluZztcbiAgbWVkaXVtOiBzdHJpbmc7XG4gIGNhbXBhaWduOiBzdHJpbmc7XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgTGljZW5zZU9wdGlvbnMge1xuICAvLyBXZSB1c2VkIGZlYXR1cmUgbmFtZSBhcyB1dG1fbWVkaXVtXG4gIGZlYXR1cmU/OiBzdHJpbmc7XG4gIC8vIE9wdGlvbmFsLCB1c2VmdWwgaWYgbmVlZCBhIGNvbnRleHQgaW4gdXRtIGNhbXBhaWduICh1dG1fY29udGVudClcbiAgY29udGV4dD86IHN0cmluZztcbiAgLy8gT3B0aW9uYWwsIHVzZWZ1bCB0byBza2lwIHRoZSBsaWNlbnNlIHZhbGlkYXRpb25cbiAgaGFzRmVhdHVyZT86IGJvb2xlYW47XG59XG5cbmV4cG9ydCBpbnRlcmZhY2UgRmVhdHVyZUluZm8ge1xuICBpbWFnZT86IHN0cmluZztcbiAgZGVzY3JpcHRpb24/OiBzdHJpbmc7XG4gIHRpdGxlPzogc3RyaW5nO1xuICB0cmlhbEJ1dHRvbkxhYmVsPzogc3RyaW5nO1xuICBoaWRlRGF5cz86IGJvb2xlYW47XG59XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnLFxufSlcbmV4cG9ydCBjbGFzcyBHaW9MaWNlbnNlU2VydmljZSB7XG4gIHByaXZhdGUgcmVhZG9ubHkgbG9hZExpY2Vuc2UkOiBPYnNlcnZhYmxlPExpY2Vuc2U+O1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgcmVhZG9ubHkgaHR0cDogSHR0cENsaWVudCxcbiAgICBASW5qZWN0KCdMaWNlbnNlQ29uZmlndXJhdGlvbicpXG4gICAgcHJpdmF0ZSByZWFkb25seSBsaWNlbnNlQ29uZmlndXJhdGlvbjogTGljZW5zZUNvbmZpZ3VyYXRpb24sXG4gICAgcHJpdmF0ZSByZWFkb25seSBtYXREaWFsb2c6IE1hdERpYWxvZyxcbiAgKSB7XG4gICAgdGhpcy5sb2FkTGljZW5zZSQgPSB0aGlzLmh0dHAuZ2V0PExpY2Vuc2U+KGxpY2Vuc2VDb25maWd1cmF0aW9uLnJlc291cmNlVVJMKS5waXBlKHNoYXJlUmVwbGF5KDEpKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRMaWNlbnNlJCgpOiBPYnNlcnZhYmxlPExpY2Vuc2U+IHtcbiAgICByZXR1cm4gdGhpcy5sb2FkTGljZW5zZSQ7XG4gIH1cblxuICBwdWJsaWMgaXNNaXNzaW5nRmVhdHVyZSQobGljZW5zZU9wdGlvbnM6IExpY2Vuc2VPcHRpb25zIHwgdW5kZWZpbmVkKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgaWYgKGxpY2Vuc2VPcHRpb25zPy5oYXNGZWF0dXJlID09PSBmYWxzZSkge1xuICAgICAgcmV0dXJuIG9mKHRydWUpO1xuICAgIH1cbiAgICBpZiAobGljZW5zZU9wdGlvbnM/LmZlYXR1cmUgPT0gbnVsbCB8fCAhbGljZW5zZU9wdGlvbnM/LmZlYXR1cmUgfHwgbGljZW5zZU9wdGlvbnM/Lmhhc0ZlYXR1cmUgPT09IHRydWUpIHtcbiAgICAgIHJldHVybiBvZihmYWxzZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRXhwaXJlZCQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGlzRXhwaXJlZCA9PiB7XG4gICAgICAgIGlmIChpc0V4cGlyZWQpIHtcbiAgICAgICAgICByZXR1cm4gb2YoaXNFeHBpcmVkKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRMaWNlbnNlJCgpLnBpcGUobWFwKGxpY2Vuc2UgPT4gbGljZW5zZSA9PSBudWxsIHx8ICFsaWNlbnNlLmZlYXR1cmVzLnNvbWUoZmVhdCA9PiBmZWF0ID09PSBsaWNlbnNlT3B0aW9ucy5mZWF0dXJlKSkpO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBoYXNBbGxGZWF0dXJlcyQobGljZW5zZU9wdGlvbnM6IExpY2Vuc2VPcHRpb25zW10gfCB1bmRlZmluZWQpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICBpZiAoIWxpY2Vuc2VPcHRpb25zIHx8IGlzRW1wdHkobGljZW5zZU9wdGlvbnMpKSB7XG4gICAgICByZXR1cm4gb2YodHJ1ZSk7XG4gICAgfVxuICAgIHJldHVybiB0aGlzLmlzRXhwaXJlZCQoKS5waXBlKFxuICAgICAgc3dpdGNoTWFwKGlzRXhwaXJlZCA9PiB7XG4gICAgICAgIGNvbnN0IGZlYXR1cmVzRGVmaW5lZCA9IGxpY2Vuc2VPcHRpb25zLnNvbWUobyA9PiAhIW8uZmVhdHVyZSk7XG4gICAgICAgIGlmIChpc0V4cGlyZWQgJiYgZmVhdHVyZXNEZWZpbmVkKSB7XG4gICAgICAgICAgcmV0dXJuIG9mKGZhbHNlKTtcbiAgICAgICAgfVxuICAgICAgICByZXR1cm4gdGhpcy5nZXRMaWNlbnNlJCgpLnBpcGUoXG4gICAgICAgICAgbWFwKGxpY2Vuc2UgPT4gbGljZW5zZSAhPSBudWxsICYmIGxpY2Vuc2VPcHRpb25zLmV2ZXJ5KG8gPT4gbGljZW5zZS5mZWF0dXJlcy5zb21lKGZlYXQgPT4gZmVhdCA9PT0gby5mZWF0dXJlKSkpLFxuICAgICAgICApO1xuICAgICAgfSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBnZXRGZWF0dXJlSW5mbyhsaWNlbnNlT3B0aW9uczogTGljZW5zZU9wdGlvbnMpOiBGZWF0dXJlSW5mbyB7XG4gICAgaWYgKCFsaWNlbnNlT3B0aW9ucy5mZWF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZlYXR1cmUgaXMgdW5kZWZpbmVkYCk7XG4gICAgfVxuICAgIGNvbnN0IGZlYXR1cmVJbmZvID0gdGhpcy5saWNlbnNlQ29uZmlndXJhdGlvbi5mZWF0dXJlSW5mb0RhdGFbbGljZW5zZU9wdGlvbnMuZmVhdHVyZV07XG4gICAgaWYgKCFmZWF0dXJlSW5mbykge1xuICAgICAgdGhyb3cgbmV3IEVycm9yKFxuICAgICAgICBgVW5rbm93biBGZWF0dXJlIHZhbHVlICR7bGljZW5zZU9wdGlvbnMuZmVhdHVyZX0uIEV4cGVjdGVkIG9uZSBvZiAke09iamVjdC5rZXlzKHRoaXMubGljZW5zZUNvbmZpZ3VyYXRpb24uZmVhdHVyZUluZm9EYXRhKX1gLFxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuIGZlYXR1cmVJbmZvO1xuICB9XG5cbiAgcHVibGljIGdldFRyaWFsVVJMKGxpY2Vuc2VPcHRpb25zOiBMaWNlbnNlT3B0aW9ucyk6IHN0cmluZyB7XG4gICAgaWYgKCFsaWNlbnNlT3B0aW9ucy5mZWF0dXJlKSB7XG4gICAgICB0aHJvdyBuZXcgRXJyb3IoYGZlYXR1cmUgaXMgdW5kZWZpbmVkYCk7XG4gICAgfVxuICAgIGNvbnN0IHVybFBhcmFtcyA9XG4gICAgICB0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLnV0bVNvdXJjZSB8fCB0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLnV0bUNhbXBhaWduXG4gICAgICAgID8gYD91dG1fc291cmNlPSR7dGhpcy5saWNlbnNlQ29uZmlndXJhdGlvbi51dG1Tb3VyY2V9JnV0bV9tZWRpdW09JHtsaWNlbnNlT3B0aW9ucy5mZWF0dXJlfSZ1dG1fY2FtcGFpZ249JHt0aGlzLmxpY2Vuc2VDb25maWd1cmF0aW9uLnV0bUNhbXBhaWdufWBcbiAgICAgICAgOiAnJztcbiAgICBjb25zdCBjb250ZXh0ID0gdXJsUGFyYW1zLmxlbmd0aCA+IDAgJiYgbGljZW5zZU9wdGlvbnMuY29udGV4dCA/IGAmdXRtX2NvbnRlbnQ9JHtsaWNlbnNlT3B0aW9ucy5jb250ZXh0fWAgOiAnJztcbiAgICByZXR1cm4gYCR7dGhpcy5saWNlbnNlQ29uZmlndXJhdGlvbi50cmlhbFJlc291cmNlVVJMfSR7dXJsUGFyYW1zfSR7Y29udGV4dH1gO1xuICB9XG5cbiAgcHVibGljIGlzT0VNJCgpOiBPYnNlcnZhYmxlPGJvb2xlYW4+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaWNlbnNlJCgpLnBpcGUobWFwKGxpY2Vuc2UgPT4gbGljZW5zZSAhPT0gbnVsbCAmJiBsaWNlbnNlLmZlYXR1cmVzLmluY2x1ZGVzKCdvZW0tY3VzdG9taXphdGlvbicpKSk7XG4gIH1cblxuICBwdWJsaWMgb3BlbkRpYWxvZyhsaWNlbnNlT3B0aW9uczogTGljZW5zZU9wdGlvbnMsIGV2ZW50PzogRXZlbnQpIHtcbiAgICBldmVudD8uc3RvcFByb3BhZ2F0aW9uKCk7XG4gICAgZXZlbnQ/LnByZXZlbnREZWZhdWx0KCk7XG4gICAgY29uc3QgZmVhdHVyZUluZm8gPSB0aGlzLmdldEZlYXR1cmVJbmZvKGxpY2Vuc2VPcHRpb25zKTtcbiAgICBjb25zdCB0cmlhbFVSTCA9IHRoaXMuZ2V0VHJpYWxVUkwobGljZW5zZU9wdGlvbnMpO1xuICAgIHJldHVybiB0aGlzLm1hdERpYWxvZ1xuICAgICAgLm9wZW48R2lvTGljZW5zZURpYWxvZ0NvbXBvbmVudCwgR2lvTGljZW5zZURpYWxvZ0RhdGEsIGJvb2xlYW4+KEdpb0xpY2Vuc2VEaWFsb2dDb21wb25lbnQsIHtcbiAgICAgICAgZGF0YToge1xuICAgICAgICAgIGZlYXR1cmVJbmZvLFxuICAgICAgICAgIHRyaWFsVVJMLFxuICAgICAgICB9LFxuICAgICAgICByb2xlOiAnYWxlcnRkaWFsb2cnLFxuICAgICAgICBpZDogJ2dpb0xpY2Vuc2VEaWFsb2cnLFxuICAgICAgfSlcbiAgICAgIC5hZnRlckNsb3NlZCgpXG4gICAgICAuc3Vic2NyaWJlKCk7XG4gIH1cblxuICBwdWJsaWMgZ2V0RXhwaXJlc0F0JCgpOiBPYnNlcnZhYmxlPERhdGUgfCB1bmRlZmluZWQ+IHtcbiAgICByZXR1cm4gdGhpcy5nZXRMaWNlbnNlJCgpLnBpcGUobWFwKGxpY2Vuc2UgPT4gKGxpY2Vuc2UuZXhwaXJlc0F0ID8gbmV3IERhdGUobGljZW5zZS5leHBpcmVzQXQpIDogdW5kZWZpbmVkKSkpO1xuICB9XG5cbiAgcHVibGljIGlzRXhwaXJlZCQoKTogT2JzZXJ2YWJsZTxib29sZWFuPiB7XG4gICAgcmV0dXJuIHRoaXMuZ2V0RXhwaXJlc0F0JCgpLnBpcGUobWFwKGV4cGlyZXNBdCA9PiAhIWV4cGlyZXNBdCAmJiBleHBpcmVzQXQudmFsdWVPZigpIDwgRGF0ZS5ub3coKSkpO1xuICB9XG59XG4iXX0=
@@ -1333,11 +1333,7 @@ class GioConfirmAndValidateDialogComponent {
1333
1333
  }
1334
1334
  else if (isObject(confirmDialogData?.content)) {
1335
1335
  this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;
1336
- // TODO: When Angular 16 ready use ngComponentOutletInputs
1337
- this.contentComponentInjector = Injector.create({
1338
- providers: [{ provide: 'contentComponentInputs', useValue: confirmDialogData?.content.componentInputs }],
1339
- parent: parentInjector,
1340
- });
1336
+ this.contentComponentInputs = confirmDialogData?.content.componentInputs;
1341
1337
  }
1342
1338
  this.validationMessage = extendValidationMessage(confirmDialogData?.validationMessage ?? 'Please, type <code>confirm</code> to confirm.');
1343
1339
  this.validationValue = confirmDialogData?.validationValue ?? 'confirm';
@@ -1348,11 +1344,11 @@ class GioConfirmAndValidateDialogComponent {
1348
1344
  this.isValid = toLower(confirmValue) === toLower(this.validationValue);
1349
1345
  }
1350
1346
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GioConfirmAndValidateDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1351
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GioConfirmAndValidateDialogComponent, selector: "gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6$1.MatLabel, selector: "mat-label" }, { kind: "component", type: GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
1347
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: GioConfirmAndValidateDialogComponent, selector: "gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"], dependencies: [{ kind: "directive", type: i1.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.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: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i3$1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "directive", type: i1$3.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$3.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$3.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i1$3.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i6$1.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i6$1.MatLabel, selector: "mat-label" }, { kind: "component", type: GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
1352
1348
  }
1353
1349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: GioConfirmAndValidateDialogComponent, decorators: [{
1354
1350
  type: Component,
1355
- args: [{ selector: 'gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"] }]
1351
+ args: [{ selector: 'gio-confirm-and-validate-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=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n <gio-banner-warning *ngIf=\"warning\"><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n <p class=\"confirm-dialog__body__content\" *ngIf=\"content\" [innerHTML]=\"content\"></p>\n\n <div class=\"confirm-dialog__body__content\" *ngIf=\"contentComponentOutlet\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #e7e2fb);color:var(--gio-oem-palette--active-contrast, #100c27)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#606274;white-space:pre-wrap}.confirm-dialog__body__validate-message{margin-bottom:8px;white-space:pre-wrap}.confirm-dialog__body__validate-input{overflow:hidden;width:100%;height:62px;padding-top:4px}.confirm-dialog__actions{display:flex;flex-direction:row-reverse;justify-content:flex-start}\n"] }]
1356
1352
  }], ctorParameters: function () { return [{ type: undefined, decorators: [{
1357
1353
  type: Inject,
1358
1354
  args: [MAT_DIALOG_DATA]
@@ -4819,7 +4815,10 @@ class GioLicenseService {
4819
4815
  return this.loadLicense$;
4820
4816
  }
4821
4817
  isMissingFeature$(licenseOptions) {
4822
- if (licenseOptions?.feature == null || !licenseOptions?.feature) {
4818
+ if (licenseOptions?.hasFeature === false) {
4819
+ return of(true);
4820
+ }
4821
+ if (licenseOptions?.feature == null || !licenseOptions?.feature || licenseOptions?.hasFeature === true) {
4823
4822
  return of(false);
4824
4823
  }
4825
4824
  return this.isExpired$().pipe(switchMap(isExpired => {