@gravitee/ui-particles-angular 16.2.0 → 16.2.1-apim-11674-edit-ps-flows-for-llm-proxy-fe880ee

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.
@@ -2,12 +2,12 @@ import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
3
  import { EventEmitter, HostListener, HostBinding, Output, Input, Component, NgModule, ViewChild, Optional, Self, ChangeDetectionStrategy, Directive, Injector, Inject, Injectable, inject, signal, computed, ViewContainerRef, forwardRef, ContentChildren, Host, ContentChild, InjectionToken, effect, Pipe, ViewEncapsulation } from '@angular/core';
4
4
  import { of, Subject, fromEvent, ReplaySubject, merge, Observable, BehaviorSubject, timer } from 'rxjs';
5
- import { delay, tap, startWith, switchMap, map, distinctUntilChanged, takeUntil, filter, take, debounceTime, shareReplay, catchError, debounce } from 'rxjs/operators';
5
+ import { delay, tap, startWith, switchMap, map, distinctUntilChanged, debounceTime, takeUntil, filter, take, shareReplay, catchError, debounce } from 'rxjs/operators';
6
6
  import * as i1 from '@angular/material/card';
7
7
  import { MatCardModule } from '@angular/material/card';
8
8
  import * as i2 from '@angular/material/button';
9
9
  import { MatButtonModule, MatButton, MatIconButton } from '@angular/material/button';
10
- import * as i1$4 from '@angular/common';
10
+ import * as i1$3 from '@angular/common';
11
11
  import { CommonModule } from '@angular/common';
12
12
  import { ComponentHarness, HarnessPredicate, parallel, TestKey } from '@angular/cdk/testing';
13
13
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
@@ -15,7 +15,7 @@ import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS
15
15
  import { isEmpty, isString, isObject, toLower, get, dropRight, isNil, isArray, remove, set, castArray, isEqual, cloneDeep, uniqueId, range, has, some, filter as filter$1, intersection } from 'lodash';
16
16
  import * as i1$2 from '@angular/forms';
17
17
  import { FormsModule, FormGroup, FormControl, Validators, ReactiveFormsModule, UntypedFormArray, UntypedFormGroup, UntypedFormControl, NG_VALUE_ACCESSOR, NG_VALIDATORS, NgControl } from '@angular/forms';
18
- import * as i1$3 from '@angular/cdk/a11y';
18
+ import * as i2$1 from '@angular/cdk/a11y';
19
19
  import { A11yModule } from '@angular/cdk/a11y';
20
20
  import * as i3 from '@angular/material/chips';
21
21
  import { MatChipsModule } from '@angular/material/chips';
@@ -23,33 +23,33 @@ import * as i1$1 from '@angular/material/icon';
23
23
  import { MatIconModule } from '@angular/material/icon';
24
24
  import * as i5 from '@angular/material/autocomplete';
25
25
  import { MatAutocompleteModule } from '@angular/material/autocomplete';
26
- import * as i2$2 from '@angular/material/input';
26
+ import * as i2$3 from '@angular/material/input';
27
27
  import { MatInputModule, MatInput } from '@angular/material/input';
28
28
  import * as i5$1 from '@angular/material/select';
29
29
  import { MatSelectModule } from '@angular/material/select';
30
- import * as i2$1 from '@angular/platform-browser';
30
+ import * as i2$2 from '@angular/platform-browser';
31
31
  import { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';
32
32
  import { MatChipGridHarness, MatChipHarness } from '@angular/material/chips/testing';
33
- import * as i1$5 from '@angular/material/dialog';
33
+ import { MatInputHarness } from '@angular/material/input/testing';
34
+ import * as i1$4 from '@angular/material/dialog';
34
35
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
35
36
  import { MatButtonHarness } from '@angular/material/button/testing';
36
- import { MatInputHarness } from '@angular/material/input/testing';
37
37
  import * as i3$3 from '@angular/cdk/text-field';
38
38
  import * as i3$2 from '@angular/material/progress-bar';
39
39
  import { MatProgressBarModule } from '@angular/material/progress-bar';
40
- import * as i2$3 from '@angular/material/tooltip';
40
+ import * as i2$4 from '@angular/material/tooltip';
41
41
  import { MatTooltipModule } from '@angular/material/tooltip';
42
42
  import * as i3$1 from '@angular/material/core';
43
43
  import { MatRippleModule, MatOptionModule } from '@angular/material/core';
44
- import * as i1$6 from '@angular/cdk/clipboard';
44
+ import * as i1$5 from '@angular/cdk/clipboard';
45
45
  import { ClipboardModule } from '@angular/cdk/clipboard';
46
46
  import { Overlay, OverlayPositionBuilder } from '@angular/cdk/overlay';
47
47
  import { TemplatePortal } from '@angular/cdk/portal';
48
48
  import * as i3$4 from 'ngx-file-helpers';
49
49
  import { ReadMode, NgxFileHelpersModule } from 'ngx-file-helpers';
50
50
  import { toSvg } from 'jdenticon';
51
- import * as i1$7 from '@ngx-formly/core/json-schema';
52
- import * as i1$8 from '@ngx-formly/core';
51
+ import * as i1$6 from '@ngx-formly/core/json-schema';
52
+ import * as i1$7 from '@ngx-formly/core';
53
53
  import { FieldType, FieldArrayType, FieldWrapper, FormlyModule } from '@ngx-formly/core';
54
54
  import { FieldType as FieldType$1, FormlyMaterialModule } from '@ngx-formly/material';
55
55
  import * as i5$2 from '@angular/material/slide-toggle';
@@ -58,7 +58,7 @@ import * as i3$5 from '@angular/material/button-toggle';
58
58
  import { MatButtonToggleModule } from '@angular/material/button-toggle';
59
59
  import Cronstrue from 'cronstrue/i18n';
60
60
  import { TestBed } from '@angular/core/testing';
61
- import * as i1$9 from '@angular/common/http';
61
+ import * as i1$8 from '@angular/common/http';
62
62
  import { MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing';
63
63
  import { MatSelectHarness } from '@angular/material/select/testing';
64
64
 
@@ -525,7 +525,7 @@ class GioFormTagsInputComponent {
525
525
  this.loading = true;
526
526
  }), switchMap(() => {
527
527
  if (typeof this._autocompleteOptions === 'function') {
528
- return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(map(options => sanitizeAutocompleteOptions(options)),
528
+ return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(map(options => sanitizeAutocompleteOptions$1(options)),
529
529
  // Add options to displayValueCache to avoid call on select
530
530
  tap(groups => {
531
531
  groups.forEach(group => {
@@ -535,20 +535,20 @@ class GioFormTagsInputComponent {
535
535
  });
536
536
  }));
537
537
  }
538
- return of(defaultAutocompleteFilter(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));
538
+ return of(defaultAutocompleteFilter$1(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));
539
539
  }), tap(() => {
540
540
  this.loading = false;
541
541
  }), distinctUntilChanged());
542
542
  this.changeDetectorRef.detectChanges();
543
543
  }
544
544
  }
545
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormTagsInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i1$3.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
545
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormTagsInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2$1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
546
546
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormTagsInputComponent, isStandalone: false, selector: "gio-form-tags-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], addOnBlur: "addOnBlur", tagValidationHook: "tagValidationHook", autocompleteOptions: "autocompleteOptions", displayValueWith: "displayValueWith", useAutocompleteOptionValueOnly: "useAutocompleteOptionValueOnly", placeholder: "placeholder", required: "required", disabled: "disabled" }, outputs: { tagClicked: "tagClicked" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
547
547
  {
548
548
  provide: MatFormFieldControl,
549
549
  useExisting: GioFormTagsInputComponent,
550
550
  },
551
- ], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<mat-chip-grid #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n @for (tag of value; track tag) {\n <mat-chip-row [removable]=\"!disabled\" (removed)=\"removeChipToFormControl(tag)\" [disabled]=\"disabled\" (click)=\"tagClicked.emit(tag)\">\n @if (_displayValueWith) {\n {{ _displayValueWith(tag) | async }}\n } @else {\n {{ tag }}\n }\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n <input\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n </mat-autocomplete>\n</mat-chip-grid>\n", styles: ["::ng-deep gio-form-tags-input .mat-mdc-standard-chip{height:unset!important;min-height:var(--mat-chip-container-height)}::ng-deep gio-form-tags-input .mat-mdc-standard-chip .mdc-evolution-chip__text-label{white-space:normal}.loader-option{display:flex}.loader-option gio-loader{width:24px}\n"], dependencies: [{ kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: GioLoaderComponent, selector: "gio-loader" }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
551
+ ], viewQueries: [{ propertyName: "tagInput", first: true, predicate: ["tagInput"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<mat-chip-grid #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n @for (tag of value; track tag) {\n <mat-chip-row [removable]=\"!disabled\" (removed)=\"removeChipToFormControl(tag)\" [disabled]=\"disabled\" (click)=\"tagClicked.emit(tag)\">\n @if (_displayValueWith) {\n {{ _displayValueWith(tag) | async }}\n } @else {\n {{ tag }}\n }\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n <input\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n </mat-autocomplete>\n</mat-chip-grid>\n", styles: ["::ng-deep gio-form-tags-input .mat-mdc-standard-chip{height:unset!important;min-height:var(--mat-chip-container-height)}::ng-deep gio-form-tags-input .mat-mdc-standard-chip .mdc-evolution-chip__text-label{white-space:normal}.loader-option{display:flex}.loader-option gio-loader{width:24px}\n"], dependencies: [{ kind: "component", type: i3.MatChipGrid, selector: "mat-chip-grid", inputs: ["disabled", "placeholder", "required", "value", "errorStateMatcher"], outputs: ["change", "valueChange"] }, { kind: "directive", type: i3.MatChipInput, selector: "input[matChipInputFor]", inputs: ["matChipInputFor", "matChipInputAddOnBlur", "matChipInputSeparatorKeyCodes", "placeholder", "id", "disabled", "readonly", "matChipInputDisabledInteractive"], outputs: ["matChipInputTokenEnd"], exportAs: ["matChipInput", "matChipInputFor"] }, { kind: "directive", type: i3.MatChipRemove, selector: "[matChipRemove]" }, { kind: "component", type: i3.MatChipRow, selector: "mat-chip-row, [mat-chip-row], mat-basic-chip-row, [mat-basic-chip-row]", inputs: ["editable"], outputs: ["edited"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: GioLoaderComponent, selector: "gio-loader" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
552
552
  }
553
553
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormTagsInputComponent, decorators: [{
554
554
  type: Component,
@@ -562,7 +562,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
562
562
  type: Optional
563
563
  }, {
564
564
  type: Self
565
- }] }, { type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.ChangeDetectorRef }], propDecorators: { ariaLabel: [{
565
+ }] }, { type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }], propDecorators: { ariaLabel: [{
566
566
  type: Input,
567
567
  args: ['aria-label']
568
568
  }], addOnBlur: [{
@@ -596,19 +596,19 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
596
596
  type: HostBinding,
597
597
  args: ['attr.aria-describedby']
598
598
  }] } });
599
- const defaultAutocompleteFilter = (options, search) => {
599
+ const defaultAutocompleteFilter$1 = (options, search) => {
600
600
  const optionsFilter = (options, search) => {
601
601
  return options.filter(option => option.label.toLowerCase().includes((search ?? '').toLowerCase()) ||
602
602
  option.value.toLowerCase().includes((search ?? '').toLowerCase()));
603
603
  };
604
- return sanitizeAutocompleteOptions(options)
604
+ return sanitizeAutocompleteOptions$1(options)
605
605
  .map(group => ({
606
606
  groupLabel: group.groupLabel,
607
607
  groupOptions: optionsFilter(group.groupOptions, search),
608
608
  }))
609
609
  .filter(group => group.groupOptions.length > 0);
610
610
  };
611
- const sanitizeAutocompleteOptions = (options) => {
611
+ const sanitizeAutocompleteOptions$1 = (options) => {
612
612
  const sanitizeFlatOptions = (flatOptions) => flatOptions.map(option => {
613
613
  if (option && typeof option !== 'string' && 'value' in option && 'label' in option) {
614
614
  return option;
@@ -653,7 +653,7 @@ class GioIconsModule {
653
653
  constructor(matIconRegistry, sanitizer) {
654
654
  matIconRegistry.addSvgIconSetInNamespace('gio', sanitizer.bypassSecurityTrustResourceUrl('assets/gio-icons.svg'));
655
655
  }
656
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioIconsModule, deps: [{ token: i1$1.MatIconRegistry }, { token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.NgModule }); }
656
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioIconsModule, deps: [{ token: i1$1.MatIconRegistry }, { token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.NgModule }); }
657
657
  static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: GioIconsModule, imports: [CommonModule, MatIconModule], exports: [MatIconModule] }); }
658
658
  static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioIconsModule, imports: [CommonModule, MatIconModule, MatIconModule] }); }
659
659
  }
@@ -663,7 +663,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
663
663
  imports: [CommonModule, MatIconModule],
664
664
  exports: [MatIconModule],
665
665
  }]
666
- }], ctorParameters: () => [{ type: i1$1.MatIconRegistry }, { type: i2$1.DomSanitizer }] });
666
+ }], ctorParameters: () => [{ type: i1$1.MatIconRegistry }, { type: i2$2.DomSanitizer }] });
667
667
 
668
668
  /*
669
669
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
@@ -828,6 +828,460 @@ class GioFormTagsInputHarness extends ComponentHarness {
828
828
  }
829
829
  }
830
830
 
831
+ class GioFormAutocompleteInputComponent {
832
+ static { this.nextId = 0; }
833
+ set autocompleteInputOptions(v) {
834
+ this._autocompleteInputOptions = v;
835
+ }
836
+ set input(v) {
837
+ if (v) {
838
+ this.fm.monitor(v.nativeElement).subscribe(origin => {
839
+ if (origin) {
840
+ this.initAutocomplete();
841
+ }
842
+ });
843
+ }
844
+ else if (this._input) {
845
+ this.fm.stopMonitoring(this._input.nativeElement);
846
+ }
847
+ this._input = v;
848
+ }
849
+ get value() {
850
+ return this._value;
851
+ }
852
+ set value(_value) {
853
+ this._value = _value;
854
+ this._onChange(_value);
855
+ this.updateInputValue();
856
+ this.stateChanges.next();
857
+ }
858
+ get placeholder() {
859
+ return this._placeholder;
860
+ }
861
+ set placeholder(plh) {
862
+ this._placeholder = plh;
863
+ this.stateChanges.next();
864
+ }
865
+ get empty() {
866
+ return isEmpty(this.value) && isEmpty(this._input?.nativeElement?.value);
867
+ }
868
+ get shouldLabelFloat() {
869
+ return this.focused || !this.empty;
870
+ }
871
+ get required() {
872
+ return this._required;
873
+ }
874
+ set required(req) {
875
+ this._required = coerceBooleanProperty(req);
876
+ this.stateChanges.next();
877
+ }
878
+ get disabled() {
879
+ return this._disabled || (this.ngControl && this.ngControl.disabled === true);
880
+ }
881
+ set disabled(dis) {
882
+ this._disabled = coerceBooleanProperty(dis);
883
+ this.stateChanges.next();
884
+ }
885
+ get errorState() {
886
+ return (this.touched && ((this.required && this.empty) || (this.ngControl && this.ngControl.touched === true && !!this.ngControl.errors)));
887
+ }
888
+ constructor(ngControl, elRef, fm, changeDetectorRef) {
889
+ this.ngControl = ngControl;
890
+ this.elRef = elRef;
891
+ this.fm = fm;
892
+ this.changeDetectorRef = changeDetectorRef;
893
+ this._onChange = () => ({});
894
+ this._onTouched = () => ({});
895
+ this.touched = false;
896
+ this.ariaLabel = '';
897
+ this._input = null;
898
+ this.loading = false;
899
+ this.inputValue = '';
900
+ this._value = null;
901
+ this.stateChanges = new Subject();
902
+ this.id = `gio-form-autocomplete-input-${GioFormAutocompleteInputComponent.nextId++}`;
903
+ this._placeholder = '';
904
+ this.focused = false;
905
+ this._required = false;
906
+ this._disabled = false;
907
+ this.controlType = 'gio-form-autocomplete-input';
908
+ this.describedBy = '';
909
+ if (this.ngControl != null) {
910
+ this.ngControl.valueAccessor = this;
911
+ }
912
+ fm.monitor(elRef.nativeElement, true).subscribe(origin => {
913
+ this.focused = !!origin;
914
+ this._onTouched();
915
+ this.touched = true;
916
+ this.stateChanges.next();
917
+ });
918
+ }
919
+ ngDoCheck() {
920
+ if (this.ngControl != null && this.touched !== this.ngControl.touched) {
921
+ this.touched = this.ngControl.touched === true;
922
+ this.stateChanges.next();
923
+ }
924
+ }
925
+ ngOnDestroy() {
926
+ this.stateChanges.complete();
927
+ this.fm.stopMonitoring(this.elRef.nativeElement);
928
+ if (this._input) {
929
+ this.fm.stopMonitoring(this._input.nativeElement);
930
+ }
931
+ }
932
+ setDisabledState(isDisabled) {
933
+ this.disabled = isDisabled;
934
+ }
935
+ writeValue(value) {
936
+ this._value = value;
937
+ this.updateInputValue();
938
+ this.changeDetectorRef.detectChanges();
939
+ this.changeDetectorRef.markForCheck();
940
+ this.stateChanges.next();
941
+ }
942
+ registerOnChange(fn) {
943
+ this._onChange = fn;
944
+ }
945
+ registerOnTouched(fn) {
946
+ this._onTouched = fn;
947
+ }
948
+ setDescribedByIds(ids) {
949
+ this.describedBy = ids.join(' ');
950
+ }
951
+ onContainerClick(_event) {
952
+ if (this._input) {
953
+ this._input.nativeElement.focus();
954
+ }
955
+ }
956
+ onAutocompleteInputSelect(event) {
957
+ this.value = event.option.value;
958
+ }
959
+ onInputChange(value) {
960
+ this.inputValue = value;
961
+ }
962
+ getDisplayValue(value) {
963
+ if (this.displayWith) {
964
+ return this.displayWith(value);
965
+ }
966
+ return value;
967
+ }
968
+ updateInputValue() {
969
+ if (this._value) {
970
+ this.inputValue = this.getDisplayValue(this._value);
971
+ }
972
+ else {
973
+ this.inputValue = '';
974
+ }
975
+ }
976
+ initAutocomplete() {
977
+ if (this._autocompleteInputOptions && this._input?.nativeElement) {
978
+ this.autocompleteInputFilteredOptions$ = fromEvent(this._input.nativeElement, 'input').pipe(startWith(''), debounceTime(300), tap(() => {
979
+ this.loading = true;
980
+ }), switchMap(() => {
981
+ const searchValue = this._input?.nativeElement.value ?? '';
982
+ if (typeof this._autocompleteInputOptions === 'function') {
983
+ return this._autocompleteInputOptions(searchValue).pipe(map(options => sanitizeAutocompleteOptions(options)));
984
+ }
985
+ return of(defaultAutocompleteFilter(this._autocompleteInputOptions ?? [], searchValue));
986
+ }), tap(() => {
987
+ this.loading = false;
988
+ }), distinctUntilChanged());
989
+ this.changeDetectorRef.detectChanges();
990
+ }
991
+ }
992
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputComponent, deps: [{ token: i1$2.NgControl, optional: true, self: true }, { token: i0.ElementRef }, { token: i2$1.FocusMonitor }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
993
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormAutocompleteInputComponent, isStandalone: false, selector: "gio-form-autocomplete-input", inputs: { ariaLabel: ["aria-label", "ariaLabel"], autocompleteInputOptions: "autocompleteInputOptions", displayWith: "displayWith", placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "class.floating": "this.shouldLabelFloat", "attr.aria-describedby": "this.describedBy" } }, providers: [
994
+ {
995
+ provide: MatFormFieldControl,
996
+ useExisting: GioFormAutocompleteInputComponent,
997
+ },
998
+ ], viewQueries: [{ propertyName: "input", first: true, predicate: ["input"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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 Copyright (C) 2025 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<input\n #input\n type=\"text\"\n matInput\n [attr.aria-label]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matAutocomplete]=\"auto\"\n [value]=\"inputValue\"\n (input)=\"onInputChange($any($event.target).value)\"\n/>\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteInputSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteInputFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n</mat-autocomplete>\n", styles: [":host{display:block}input{width:100%;padding:0;border:none;background:transparent;font:inherit;outline:none}input:disabled{cursor:not-allowed}.loader-option{display:flex;justify-content:center;padding:8px 0}::ng-deep gio-form-autocomplete-input .mat-mdc-standard-chip{height:unset!important;min-height:var(--mat-chip-container-height)}::ng-deep gio-form-autocomplete-input .mat-mdc-standard-chip .mdc-evolution-chip__text-label{white-space:normal}\n"], dependencies: [{ kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "component", type: i5.MatOptgroup, selector: "mat-optgroup", inputs: ["label", "disabled"], exportAs: ["matOptgroup"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: GioLoaderComponent, selector: "gio-loader" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
999
+ }
1000
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputComponent, decorators: [{
1001
+ type: Component,
1002
+ args: [{ selector: 'gio-form-autocomplete-input', changeDetection: ChangeDetectionStrategy.OnPush, providers: [
1003
+ {
1004
+ provide: MatFormFieldControl,
1005
+ useExisting: GioFormAutocompleteInputComponent,
1006
+ },
1007
+ ], standalone: false, template: "<!--\n\n Copyright (C) 2025 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 Copyright (C) 2025 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<input\n #input\n type=\"text\"\n matInput\n [attr.aria-label]=\"ariaLabel\"\n [placeholder]=\"placeholder\"\n [disabled]=\"disabled\"\n [matAutocomplete]=\"auto\"\n [value]=\"inputValue\"\n (input)=\"onInputChange($any($event.target).value)\"\n/>\n<mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteInputSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteInputFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n</mat-autocomplete>\n", styles: [":host{display:block}input{width:100%;padding:0;border:none;background:transparent;font:inherit;outline:none}input:disabled{cursor:not-allowed}.loader-option{display:flex;justify-content:center;padding:8px 0}::ng-deep gio-form-autocomplete-input .mat-mdc-standard-chip{height:unset!important;min-height:var(--mat-chip-container-height)}::ng-deep gio-form-autocomplete-input .mat-mdc-standard-chip .mdc-evolution-chip__text-label{white-space:normal}\n"] }]
1008
+ }], ctorParameters: () => [{ type: i1$2.NgControl, decorators: [{
1009
+ type: Optional
1010
+ }, {
1011
+ type: Self
1012
+ }] }, { type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }], propDecorators: { ariaLabel: [{
1013
+ type: Input,
1014
+ args: ['aria-label']
1015
+ }], autocompleteInputOptions: [{
1016
+ type: Input
1017
+ }], displayWith: [{
1018
+ type: Input
1019
+ }], input: [{
1020
+ type: ViewChild,
1021
+ args: ['input']
1022
+ }], id: [{
1023
+ type: HostBinding,
1024
+ args: ['id']
1025
+ }], placeholder: [{
1026
+ type: Input
1027
+ }], shouldLabelFloat: [{
1028
+ type: HostBinding,
1029
+ args: ['class.floating']
1030
+ }], required: [{
1031
+ type: Input
1032
+ }], disabled: [{
1033
+ type: Input
1034
+ }], describedBy: [{
1035
+ type: HostBinding,
1036
+ args: ['attr.aria-describedby']
1037
+ }] } });
1038
+ const defaultAutocompleteFilter = (options, search) => {
1039
+ const optionsFilter = (options, search) => {
1040
+ return options.filter(option => option.label.toLowerCase().includes((search ?? '').toLowerCase()) ||
1041
+ option.value.toLowerCase().includes((search ?? '').toLowerCase()));
1042
+ };
1043
+ return sanitizeAutocompleteOptions(options)
1044
+ .map(group => ({
1045
+ groupLabel: group.groupLabel,
1046
+ groupOptions: optionsFilter(group.groupOptions, search),
1047
+ }))
1048
+ .filter(group => group.groupOptions.length > 0);
1049
+ };
1050
+ const sanitizeAutocompleteOptions = (options) => {
1051
+ const sanitizeFlatOptions = (flatOptions) => flatOptions.map(option => {
1052
+ if (option && typeof option !== 'string' && 'value' in option && 'label' in option) {
1053
+ return option;
1054
+ }
1055
+ return { value: option, label: option };
1056
+ });
1057
+ if (Array.isArray(options) &&
1058
+ (options.length === 0 || typeof options[0] === 'string' || ('value' in options[0] && 'label' in options[0]))) {
1059
+ const optionsFlat = options;
1060
+ return [
1061
+ {
1062
+ groupOptions: sanitizeFlatOptions(optionsFlat),
1063
+ },
1064
+ ];
1065
+ }
1066
+ else {
1067
+ const optionsGrouped = options;
1068
+ return optionsGrouped.map(group => ({
1069
+ groupLabel: group.groupLabel,
1070
+ groupOptions: sanitizeFlatOptions(group.groupOptions),
1071
+ }));
1072
+ }
1073
+ };
1074
+
1075
+ /*
1076
+ * Copyright (C) 2025 The Gravitee team (http://gravitee.io)
1077
+ *
1078
+ * Licensed under the Apache License, Version 2.0 (the "License");
1079
+ * you may not use this file except in compliance with the License.
1080
+ * You may obtain a copy of the License at
1081
+ *
1082
+ * http://www.apache.org/licenses/LICENSE-2.0
1083
+ *
1084
+ * Unless required by applicable law or agreed to in writing, software
1085
+ * distributed under the License is distributed on an "AS IS" BASIS,
1086
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1087
+ * See the License for the specific language governing permissions and
1088
+ * limitations under the License.
1089
+ */
1090
+ class GioFormAutocompleteInputModule {
1091
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
1092
+ static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputModule, declarations: [GioFormAutocompleteInputComponent], imports: [CommonModule, A11yModule, MatInputModule, FormsModule, MatAutocompleteModule, GioLoaderModule], exports: [GioFormAutocompleteInputComponent] }); }
1093
+ static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputModule, imports: [CommonModule, A11yModule, MatInputModule, FormsModule, MatAutocompleteModule, GioLoaderModule] }); }
1094
+ }
1095
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormAutocompleteInputModule, decorators: [{
1096
+ type: NgModule,
1097
+ args: [{
1098
+ imports: [CommonModule, A11yModule, MatInputModule, FormsModule, MatAutocompleteModule, GioLoaderModule],
1099
+ declarations: [GioFormAutocompleteInputComponent],
1100
+ exports: [GioFormAutocompleteInputComponent],
1101
+ }]
1102
+ }] });
1103
+
1104
+ /*
1105
+ * Copyright (C) 2025 The Gravitee team (http://gravitee.io)
1106
+ *
1107
+ * Licensed under the Apache License, Version 2.0 (the "License");
1108
+ * you may not use this file except in compliance with the License.
1109
+ * You may obtain a copy of the License at
1110
+ *
1111
+ * http://www.apache.org/licenses/LICENSE-2.0
1112
+ *
1113
+ * Unless required by applicable law or agreed to in writing, software
1114
+ * distributed under the License is distributed on an "AS IS" BASIS,
1115
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1116
+ * See the License for the specific language governing permissions and
1117
+ * limitations under the License.
1118
+ */
1119
+ class GioFormAutocompleteInputHarness extends ComponentHarness {
1120
+ constructor() {
1121
+ super(...arguments);
1122
+ // public static with(options: GioFormAutocompleteInputHarnessFilters = {}): HarnessPredicate<GioFormAutocompleteInputHarness> {
1123
+ // return new HarnessPredicate(GioFormAutocompleteInputHarness, options);
1124
+ // }
1125
+ this.getInput = this.locatorFor(MatInputHarness);
1126
+ this.getAutocomplete = this.locatorForOptional(MatAutocompleteHarness);
1127
+ }
1128
+ static { this.hostSelector = 'gio-form-autocomplete-input'; }
1129
+ static with(options = {}) {
1130
+ return new HarnessPredicate(GioFormAutocompleteInputHarness, options);
1131
+ }
1132
+ /**
1133
+ * Gets the current value of the input
1134
+ */
1135
+ async getValue() {
1136
+ const input = await this.getInput();
1137
+ try {
1138
+ const host = await input.host();
1139
+ const value = await host.getProperty('value');
1140
+ if (value !== null && value !== undefined) {
1141
+ return value;
1142
+ }
1143
+ }
1144
+ catch (e) {
1145
+ // Ignore and try next approach
1146
+ }
1147
+ try {
1148
+ return await input.getValue();
1149
+ }
1150
+ catch (e) {
1151
+ return '';
1152
+ }
1153
+ }
1154
+ async setValue(value) {
1155
+ const input = await this.getInput();
1156
+ await input.focus();
1157
+ await input.setValue('');
1158
+ await input.setValue(value);
1159
+ try {
1160
+ const host = await input.host();
1161
+ await host.dispatchEvent('input', { bubbles: true });
1162
+ await host.dispatchEvent('change', { bubbles: true });
1163
+ }
1164
+ catch {
1165
+ // Ignore if dispatch fails
1166
+ }
1167
+ }
1168
+ /**
1169
+ * Types text into the input (triggers input events)
1170
+ */
1171
+ async type(text) {
1172
+ const input = await this.getInput();
1173
+ await input.focus();
1174
+ await input.setValue('');
1175
+ await input.setValue(text);
1176
+ try {
1177
+ const host = await input.host();
1178
+ await host.dispatchEvent('input');
1179
+ await host.dispatchEvent('change');
1180
+ }
1181
+ catch {
1182
+ // Ignore
1183
+ }
1184
+ }
1185
+ /**
1186
+ * Focuses the input
1187
+ */
1188
+ async focus() {
1189
+ const input = await this.getInput();
1190
+ await input.focus();
1191
+ }
1192
+ /**
1193
+ * Blurs the input
1194
+ */
1195
+ async blur() {
1196
+ const input = await this.getInput();
1197
+ await input.blur();
1198
+ }
1199
+ /**
1200
+ * Checks if the input is focused
1201
+ */
1202
+ async isFocused() {
1203
+ const input = await this.getInput();
1204
+ return input.isFocused();
1205
+ }
1206
+ /**
1207
+ * Checks if the input is disabled
1208
+ */
1209
+ async isDisabled() {
1210
+ const input = await this.getInput();
1211
+ return input.isDisabled();
1212
+ }
1213
+ /**
1214
+ * Gets the placeholder of the input
1215
+ */
1216
+ async getPlaceholder() {
1217
+ const input = await this.getInput();
1218
+ return input.getPlaceholder();
1219
+ }
1220
+ /**
1221
+ * Opens the autocomplete panel
1222
+ */
1223
+ async openAutocomplete() {
1224
+ await this.focus();
1225
+ }
1226
+ /**
1227
+ * Checks if the autocomplete panel is open
1228
+ */
1229
+ async isAutocompleteOpen() {
1230
+ const autocomplete = await this.getAutocomplete();
1231
+ return autocomplete ? autocomplete.isOpen() : false;
1232
+ }
1233
+ /**
1234
+ * Gets all autocomplete options
1235
+ */
1236
+ async getAutocompleteOptions() {
1237
+ const autocomplete = await this.getAutocomplete();
1238
+ if (!autocomplete) {
1239
+ return [];
1240
+ }
1241
+ const options = await autocomplete.getOptions();
1242
+ return Promise.all(options.map(option => option.getText()));
1243
+ }
1244
+ /**
1245
+ * Selects an autocomplete option by text
1246
+ */
1247
+ async selectOption(text) {
1248
+ const autocomplete = await this.getAutocomplete();
1249
+ if (!autocomplete) {
1250
+ throw Error('Autocomplete panel is not available');
1251
+ }
1252
+ await autocomplete.selectOption({ text });
1253
+ }
1254
+ /**
1255
+ * Checks if the input is in an error state
1256
+ */
1257
+ async hasError() {
1258
+ const host = await this.host();
1259
+ const classes = await host.getAttribute('class');
1260
+ return classes?.includes('ng-invalid') ?? false;
1261
+ }
1262
+ /**
1263
+ * Gets the aria-label of the input
1264
+ */
1265
+ async getAriaLabel() {
1266
+ const input = await this.getInput();
1267
+ const inputElement = await input.host();
1268
+ return inputElement.getAttribute('aria-label');
1269
+ }
1270
+ /**
1271
+ * Types text into the input (triggers input events)
1272
+ */
1273
+ /**
1274
+ * Clears the input value
1275
+ */
1276
+ async clear() {
1277
+ const input = await this.getInput();
1278
+ await input.setValue('');
1279
+ }
1280
+ async getMatAutocompleteHarness() {
1281
+ return this.getAutocomplete();
1282
+ }
1283
+ }
1284
+
831
1285
  /*
832
1286
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
833
1287
  *
@@ -1036,13 +1490,13 @@ class GioConfirmDialogComponent {
1036
1490
  this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';
1037
1491
  this.disableCancel = confirmDialogData?.disableCancel ?? false;
1038
1492
  }
1039
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmDialogComponent, deps: [{ token: i1$5.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1040
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioConfirmDialogComponent, isStandalone: false, selector: "gio-confirm-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if (content) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <p [innerHTML]=\"content\"></p>\n </mat-dialog-content>\n}\n\n@if (contentComponentOutlet) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </mat-dialog-content>\n}\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n @if (!disableCancel) {\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n }\n <button\n class=\"confirm-dialog__confirm-button\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\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, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.confirm-dialog__content{color:#322f2f}\n"], dependencies: [{ kind: "directive", type: i1$4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
1493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmDialogComponent, deps: [{ token: i1$4.MatDialogRef }, { token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1494
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioConfirmDialogComponent, isStandalone: false, selector: "gio-confirm-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if (content) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <p [innerHTML]=\"content\"></p>\n </mat-dialog-content>\n}\n\n@if (contentComponentOutlet) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </mat-dialog-content>\n}\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n @if (!disableCancel) {\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n }\n <button\n class=\"confirm-dialog__confirm-button\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\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, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.confirm-dialog__content{color:#322f2f}\n"], dependencies: [{ kind: "directive", type: i1$3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }] }); }
1041
1495
  }
1042
1496
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmDialogComponent, decorators: [{
1043
1497
  type: Component,
1044
1498
  args: [{ selector: 'gio-confirm-dialog', standalone: false, template: "<!--\n\n Copyright (C) 2025 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@if (content) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <p [innerHTML]=\"content\"></p>\n </mat-dialog-content>\n}\n\n@if (contentComponentOutlet) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </mat-dialog-content>\n}\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n @if (!disableCancel) {\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n }\n <button\n class=\"confirm-dialog__confirm-button\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\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, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.confirm-dialog__content{color:#322f2f}\n"] }]
1045
- }], ctorParameters: () => [{ type: i1$5.MatDialogRef }, { type: undefined, decorators: [{
1499
+ }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: undefined, decorators: [{
1046
1500
  type: Inject,
1047
1501
  args: [MAT_DIALOG_DATA]
1048
1502
  }] }, { type: i0.Injector }] });
@@ -1146,7 +1600,7 @@ class GioConfirmAndValidateDialogComponent {
1146
1600
  this.isValid = toLower(confirmValue) === toLower(this.validationValue);
1147
1601
  }
1148
1602
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmAndValidateDialogComponent, deps: [{ token: MAT_DIALOG_DATA }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component }); }
1149
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioConfirmAndValidateDialogComponent, isStandalone: false, selector: "gio-confirm-and-validate-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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 @if (warning) {\n <gio-banner-warning><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n }\n @if (content) {\n <p class=\"confirm-dialog__body__content\" [innerHTML]=\"content\"></p>\n }\n\n @if (contentComponentOutlet) {\n <div class=\"confirm-dialog__body__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n }\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, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#322f2f;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$4.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$5.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$5.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$5.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "component", type: GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
1603
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioConfirmAndValidateDialogComponent, isStandalone: false, selector: "gio-confirm-and-validate-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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 @if (warning) {\n <gio-banner-warning><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n }\n @if (content) {\n <p class=\"confirm-dialog__body__content\" [innerHTML]=\"content\"></p>\n }\n\n @if (contentComponentOutlet) {\n <div class=\"confirm-dialog__body__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n }\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, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.confirm-dialog__title{white-space:pre-wrap}.confirm-dialog__body__content{color:#322f2f;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$3.NgComponentOutlet, selector: "[ngComponentOutlet]", inputs: ["ngComponentOutlet", "ngComponentOutletInputs", "ngComponentOutletInjector", "ngComponentOutletEnvironmentInjector", "ngComponentOutletContent", "ngComponentOutletNgModule", "ngComponentOutletNgModuleFactory"], exportAs: ["ngComponentOutlet"] }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { kind: "directive", type: i1$2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i1$4.MatDialogClose, selector: "[mat-dialog-close], [matDialogClose]", inputs: ["aria-label", "type", "mat-dialog-close", "matDialogClose"], exportAs: ["matDialogClose"] }, { kind: "directive", type: i1$4.MatDialogTitle, selector: "[mat-dialog-title], [matDialogTitle]", inputs: ["id"], exportAs: ["matDialogTitle"] }, { kind: "directive", type: i1$4.MatDialogActions, selector: "[mat-dialog-actions], mat-dialog-actions, [matDialogActions]", inputs: ["align"] }, { kind: "directive", type: i1$4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "component", type: GioBannerWarningComponent, selector: "gio-banner-warning" }] }); }
1150
1604
  }
1151
1605
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmAndValidateDialogComponent, decorators: [{
1152
1606
  type: Component,
@@ -1349,12 +1803,12 @@ class GioClipboardComponent {
1349
1803
  this.onCopied(true, this.tooltip);
1350
1804
  }
1351
1805
  }
1352
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardComponent, deps: [{ token: i1$6.Clipboard }], target: i0.ɵɵFactoryTarget.Directive }); }
1806
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardComponent, deps: [{ token: i1$5.Clipboard }], target: i0.ɵɵFactoryTarget.Directive }); }
1353
1807
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: GioClipboardComponent, isStandalone: true, inputs: { contentToCopy: "contentToCopy", alwaysVisible: "alwaysVisible", tabIndex: "tabIndex" }, viewQueries: [{ propertyName: "tooltip", first: true, predicate: ["tooltip"], descendants: true }], ngImport: i0 }); }
1354
1808
  }
1355
1809
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardComponent, decorators: [{
1356
1810
  type: Directive
1357
- }], ctorParameters: () => [{ type: i1$6.Clipboard }], propDecorators: { tooltip: [{
1811
+ }], ctorParameters: () => [{ type: i1$5.Clipboard }], propDecorators: { tooltip: [{
1358
1812
  type: ViewChild,
1359
1813
  args: ['tooltip']
1360
1814
  }], contentToCopy: [{
@@ -1402,7 +1856,7 @@ class GioClipboardCopyWrapperComponent extends GioClipboardComponent {
1402
1856
  >
1403
1857
  <mat-icon [inline]="true">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
1404
1858
  </button>
1405
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.right{padding:0;border:none;margin-left:4px;background:none;color:#5c5959;cursor:pointer;outline:inherit}.right:not(.clicked,.always-visible){opacity:0}.right.clicked{color:#da3b00;opacity:1}:host(:hover,:focus) .right{opacity:1}:host(:hover,:focus) .right:hover,:host(:hover,:focus) .right:focus{color:#da3b00}\n"], dependencies: [{ kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i1$6.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }] }); }
1859
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.right{padding:0;border:none;margin-left:4px;background:none;color:#5c5959;cursor:pointer;outline:inherit}.right:not(.clicked,.always-visible){opacity:0}.right.clicked{color:#da3b00;opacity:1}:host(:hover,:focus) .right{opacity:1}:host(:hover,:focus) .right:hover,:host(:hover,:focus) .right:focus{color:#da3b00}\n"], dependencies: [{ kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i1$5.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }] }); }
1406
1860
  }
1407
1861
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardCopyWrapperComponent, decorators: [{
1408
1862
  type: Component,
@@ -1464,7 +1918,7 @@ class GioClipboardCopyIconComponent extends GioClipboardComponent {
1464
1918
  >
1465
1919
  <mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
1466
1920
  </button>
1467
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host-context(.mat-mdc-form-field-icon-suffix){padding:12px}.btn{padding:0;border:none;margin-left:4px;background:none;color:#5c5959;cursor:pointer;outline:inherit}.btn.clicked,.btn:hover,.btn:focus{color:#da3b00}\n"], dependencies: [{ kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i1$6.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }] }); }
1921
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host-context(.mat-mdc-form-field-icon-suffix){padding:12px}.btn{padding:0;border:none;margin-left:4px;background:none;color:#5c5959;cursor:pointer;outline:inherit}.btn.clicked,.btn:hover,.btn:focus{color:#da3b00}\n"], dependencies: [{ kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "directive", type: i3$1.MatRipple, selector: "[mat-ripple], [matRipple]", inputs: ["matRippleColor", "matRippleUnbounded", "matRippleCentered", "matRippleRadius", "matRippleAnimation", "matRippleDisabled", "matRippleTrigger"], exportAs: ["matRipple"] }, { kind: "directive", type: i1$5.CdkCopyToClipboard, selector: "[cdkCopyToClipboard]", inputs: ["cdkCopyToClipboard", "cdkCopyToClipboardAttempts"], outputs: ["cdkCopyToClipboardCopied"] }] }); }
1468
1922
  }
1469
1923
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardCopyIconComponent, decorators: [{
1470
1924
  type: Component,
@@ -1586,7 +2040,7 @@ class GioElPromptComponent {
1586
2040
  }
1587
2041
  }
1588
2042
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioElPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
1589
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioElPromptComponent, isStandalone: true, selector: "gio-el-prompt", inputs: { responseState: "responseState" }, viewQueries: [{ propertyName: "myInput", first: true, predicate: ["promptArea"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<h5>EL Assistant</h5>\n\n<div class=\"aiRequestForm\" [formGroup]=\"aiRequestFormGroup\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>Describe the EL you want to generate</mat-label>\n <textarea #promptArea matInput formControlName=\"prompt\"></textarea>\n <mat-hint [align]=\"'end'\">{{ prompt?.value?.length || 0 }}/{{ maxPromptSize }}</mat-hint>\n </mat-form-field>\n\n @if (prompt?.touched && prompt?.hasError('maxlength')) {\n <gio-banner-error> Your prompt is too long. It should be less than {{ maxPromptSize }} characters. </gio-banner-error>\n }\n\n <button mat-raised-button [disabled]=\"aiRequestFormGroup.invalid\" (click)=\"sendPromptToIA()\">\n <mat-icon svgIcon=\"gio:magic-wand\" />\n Ask Newt AI\n </button>\n</div>\n\n<div class=\"ai-card__content__response\">\n @if (responseState() === 'loading') {\n <mat-progress-bar mode=\"indeterminate\" class=\"loading\" />\n }\n @if (el(); as expression) {\n <gio-banner-success>\n <code gioClipboardCopyWrapper [contentToCopy]=\"expression\" [alwaysVisible]=\"true\">{{ expression }}</code>\n </gio-banner-success>\n @if (showFeedback()) {\n <gio-banner-info>\n <div class=\"feedback-container\">\n <span class=\"feedback-question\">Was the answer helpful?</span>\n <div class=\"feedback-buttons\">\n <button\n mat-icon-button\n (click)=\"submitFeedback('helpful')\"\n matTooltip=\"Yes, this was helpful\"\n class=\"feedback-button feedback-button--helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n (click)=\"submitFeedback('not-helpful')\"\n matTooltip=\"No, this was not helpful\"\n class=\"feedback-button feedback-button--not-helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-down\"></mat-icon>\n </button>\n </div>\n </div>\n </gio-banner-info>\n }\n }\n @if (errorMessage(); as message) {\n <gio-banner-error>\n Error\n <span gioBannerBody> {{ message }} </span>\n </gio-banner-error>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:flex;width:400px;flex-direction:column;padding:12px;border-radius:4px;background-color:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.aiRequestForm{display:flex;flex-direction:column;gap:8px}.banner__wrapper__title{width:100%}.banner-success-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between}code{overflow-wrap:anywhere}gio-banner-error{overflow-wrap:anywhere}.feedback-container{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}.feedback-question{flex:1}.feedback-buttons{display:flex;align-items:center;gap:8px}.feedback-button{transition:all .2s ease-in-out}.feedback-button:hover{transform:scale(1.1)}.feedback-button--helpful{color:#22b374}.feedback-button--helpful:hover{background-color:#8dffce66}.feedback-button--not-helpful{color:#dd1d1f}.feedback-button--not-helpful:hover{background-color:#ffcfd066}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$2.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: GioBannerModule }, { kind: "component", type: GioBannerErrorComponent, selector: "gio-banner-error" }, { kind: "component", type: GioBannerInfoComponent, selector: "gio-banner-info" }, { kind: "component", type: GioBannerSuccessComponent, selector: "gio-banner-success" }, { kind: "directive", type: GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "ngmodule", type: GioClipboardModule }, { kind: "component", type: GioClipboardCopyWrapperComponent, selector: "[gioClipboardCopyWrapper]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2043
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioElPromptComponent, isStandalone: true, selector: "gio-el-prompt", inputs: { responseState: "responseState" }, viewQueries: [{ propertyName: "myInput", first: true, predicate: ["promptArea"], descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<h5>EL Assistant</h5>\n\n<div class=\"aiRequestForm\" [formGroup]=\"aiRequestFormGroup\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>Describe the EL you want to generate</mat-label>\n <textarea #promptArea matInput formControlName=\"prompt\"></textarea>\n <mat-hint [align]=\"'end'\">{{ prompt?.value?.length || 0 }}/{{ maxPromptSize }}</mat-hint>\n </mat-form-field>\n\n @if (prompt?.touched && prompt?.hasError('maxlength')) {\n <gio-banner-error> Your prompt is too long. It should be less than {{ maxPromptSize }} characters. </gio-banner-error>\n }\n\n <button mat-raised-button [disabled]=\"aiRequestFormGroup.invalid\" (click)=\"sendPromptToIA()\">\n <mat-icon svgIcon=\"gio:magic-wand\" />\n Ask Newt AI\n </button>\n</div>\n\n<div class=\"ai-card__content__response\">\n @if (responseState() === 'loading') {\n <mat-progress-bar mode=\"indeterminate\" class=\"loading\" />\n }\n @if (el(); as expression) {\n <gio-banner-success>\n <code gioClipboardCopyWrapper [contentToCopy]=\"expression\" [alwaysVisible]=\"true\">{{ expression }}</code>\n </gio-banner-success>\n @if (showFeedback()) {\n <gio-banner-info>\n <div class=\"feedback-container\">\n <span class=\"feedback-question\">Was the answer helpful?</span>\n <div class=\"feedback-buttons\">\n <button\n mat-icon-button\n (click)=\"submitFeedback('helpful')\"\n matTooltip=\"Yes, this was helpful\"\n class=\"feedback-button feedback-button--helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n (click)=\"submitFeedback('not-helpful')\"\n matTooltip=\"No, this was not helpful\"\n class=\"feedback-button feedback-button--not-helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-down\"></mat-icon>\n </button>\n </div>\n </div>\n </gio-banner-info>\n }\n }\n @if (errorMessage(); as message) {\n <gio-banner-error>\n Error\n <span gioBannerBody> {{ message }} </span>\n </gio-banner-error>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:flex;width:400px;flex-direction:column;padding:12px;border-radius:4px;background-color:#fff;box-shadow:0 2px 4px -1px #0003,0 4px 5px #00000024,0 1px 10px #0000001f}.aiRequestForm{display:flex;flex-direction:column;gap:8px}.banner__wrapper__title{width:100%}.banner-success-content{display:flex;flex-direction:row;align-items:center;justify-content:space-between}code{overflow-wrap:anywhere}gio-banner-error{overflow-wrap:anywhere}.feedback-container{display:flex;width:100%;align-items:center;justify-content:space-between;gap:16px}.feedback-question{flex:1}.feedback-buttons{display:flex;align-items:center;gap:8px}.feedback-button{transition:all .2s ease-in-out}.feedback-button:hover{transform:scale(1.1)}.feedback-button--helpful{color:#22b374}.feedback-button--helpful:hover{background-color:#8dffce66}.feedback-button--not-helpful{color:#dd1d1f}.feedback-button--not-helpful:hover{background-color:#ffcfd066}\n"], dependencies: [{ kind: "ngmodule", type: ReactiveFormsModule }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "ngmodule", type: MatFormFieldModule }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "directive", type: i2$3.MatHint, selector: "mat-hint", inputs: ["align", "id"] }, { kind: "directive", type: MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: MatProgressBarModule }, { kind: "component", type: i3$2.MatProgressBar, selector: "mat-progress-bar", inputs: ["color", "value", "bufferValue", "mode"], outputs: ["animationEnd"], exportAs: ["matProgressBar"] }, { kind: "ngmodule", type: MatTooltipModule }, { kind: "directive", type: i2$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "ngmodule", type: GioIconsModule }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "ngmodule", type: GioBannerModule }, { kind: "component", type: GioBannerErrorComponent, selector: "gio-banner-error" }, { kind: "component", type: GioBannerInfoComponent, selector: "gio-banner-info" }, { kind: "component", type: GioBannerSuccessComponent, selector: "gio-banner-success" }, { kind: "directive", type: GioBannerBodyDirective, selector: "[gioBannerBody]" }, { kind: "ngmodule", type: GioClipboardModule }, { kind: "component", type: GioClipboardCopyWrapperComponent, selector: "[gioClipboardCopyWrapper]" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
1590
2044
  }
1591
2045
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioElPromptComponent, decorators: [{
1592
2046
  type: Component,
@@ -2036,7 +2490,7 @@ class GioFormHeadersComponent {
2036
2490
  const filterValue = value.toLowerCase();
2037
2491
  return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));
2038
2492
  }
2039
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i1$3.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2493
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i2$1.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component }); }
2040
2494
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormHeadersComponent, isStandalone: false, selector: "gio-form-headers", inputs: { headerFieldMapper: "headerFieldMapper", config: "config", autocompleteDisabled: "autocompleteDisabled" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
2041
2495
  {
2042
2496
  provide: NG_VALUE_ACCESSOR,
@@ -2048,7 +2502,7 @@ class GioFormHeadersComponent {
2048
2502
  useExisting: forwardRef(() => GioFormHeadersComponent),
2049
2503
  multi: true,
2050
2504
  },
2051
- ], 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<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:block;overflow:hidden}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:#8a8383}.label:empty{display:none}.gio-form-headers__table__header-row__td-value__button{display:block}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;min-height:32px;flex-direction:row;align-items:baseline;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field textarea,.gio-form-headers__table__header-row__td-value__field textarea{overflow:auto;width:100%;height:16px;padding:0;border:none;background:transparent;box-shadow:none;outline:none;resize:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;background-color:#fff;opacity:.9}:host(.disabled) .label{color:#d2cecd}\n"], dependencies: [{ kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i2$2.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: GioElAssistantComponent, selector: "gio-el-assistant" }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }] }); }
2505
+ ], 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<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:block;overflow:hidden}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:#8a8383}.label:empty{display:none}.gio-form-headers__table__header-row__td-value__button{display:block}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;min-height:32px;flex-direction:row;align-items:baseline;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field textarea,.gio-form-headers__table__header-row__td-value__field textarea{overflow:auto;width:100%;height:16px;padding:0;border:none;background:transparent;box-shadow:none;outline:none;resize:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;background-color:#fff;opacity:.9}:host(.disabled) .label{color:#d2cecd}\n"], dependencies: [{ kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i2$3.MatError, selector: "mat-error, [matError]", inputs: ["id"] }, { kind: "directive", type: i3$3.CdkTextareaAutosize, selector: "textarea[cdkTextareaAutosize]", inputs: ["cdkAutosizeMinRows", "cdkAutosizeMaxRows", "cdkTextareaAutosize", "placeholder"], exportAs: ["cdkTextareaAutosize"] }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i1$2.FormGroupName, selector: "[formGroupName]", inputs: ["formGroupName"] }, { kind: "directive", type: i1$2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: GioElAssistantComponent, selector: "gio-el-assistant" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }] }); }
2052
2506
  }
2053
2507
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormHeadersComponent, decorators: [{
2054
2508
  type: Component,
@@ -2064,7 +2518,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
2064
2518
  multi: true,
2065
2519
  },
2066
2520
  ], standalone: false, 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<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:block;overflow:hidden}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:#8a8383}.label:empty{display:none}.gio-form-headers__table__header-row__td-value__button{display:block}.gio-form-headers__table{width:100%}.gio-form-headers__table__header-row__td-key,.gio-form-headers__table__header-row__td-value{position:relative;width:50%}.gio-form-headers__table__header-row__td-key__field,.gio-form-headers__table__header-row__td-value__field{display:flex;overflow:hidden;width:100%;min-height:32px;flex-direction:row;align-items:baseline;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field textarea,.gio-form-headers__table__header-row__td-value__field textarea{overflow:auto;width:100%;height:16px;padding:0;border:none;background:transparent;box-shadow:none;outline:none;resize:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-form-headers__table__header-row__td-key__field:focus-within,.gio-form-headers__table__header-row__td-value__field:focus-within{z-index:100;height:auto;background-color:#fff}.gio-form-headers__table__header-row__td-key__field:focus-within *,.gio-form-headers__table__header-row__td-value__field:focus-within *{max-height:none}.gio-form-headers__table__header-row__td-remove{width:32px;height:32px;padding:0}.gio-form-headers__table__header-row:hover .gio-form-headers__table__header-row__td-value__button{z-index:110;background-color:#fff;opacity:.9}:host(.disabled) .label{color:#d2cecd}\n"] }]
2067
- }], ctorParameters: () => [{ type: i1$3.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { headerFieldMapper: [{
2521
+ }], ctorParameters: () => [{ type: i2$1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { headerFieldMapper: [{
2068
2522
  type: Input
2069
2523
  }], config: [{
2070
2524
  type: Input
@@ -2474,7 +2928,7 @@ class GioFormFilePickerComponent {
2474
2928
  this.onChangeCallback(this.fileValues.map(fileValue => fileValue.isNew ? new NewFile(fileValue.name, fileValue.dataUrl, fileValue.file) : fileValue.dataUrl));
2475
2929
  }
2476
2930
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormFilePickerComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1$2.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component }); }
2477
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormFilePickerComponent, isStandalone: false, selector: "gio-form-file-picker", inputs: { multiple: "multiple", accept: "accept", disabled: "disabled" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<ng-content select=\"gio-form-file-picker-label\"></ng-content>\n@if (!isDisabled) {\n <div\n class=\"file-picker\"\n ngxFileDropzone\n [readMode]=\"readMode\"\n (fileDrop)=\"onFileDropped($event)\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragOver($event)\"\n (blur)=\"dragHover = false\"\n >\n @if (!isComplete) {\n <div\n class=\"file-picker__add-button\"\n [class.complete]=\"isComplete\"\n [class.error]=\"!isValid\"\n [class.drag-hover]=\"dragHover\"\n ngxFilePicker\n [accept]=\"accept\"\n [readMode]=\"readMode\"\n [multiple]=\"multiple\"\n (filePick)=\"onFilePicked($event)\"\n (click)=\"onTouched()\"\n >\n <div #addButton class=\"file-picker__add-button__content\"><ng-content select=\"gio-form-file-picker-add-button\"></ng-content></div>\n @if (addButton.children.length === 0) {\n <gio-form-file-picker-add-button></gio-form-file-picker-add-button>\n }\n </div>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview\" [class.drag-hover]=\"dragHover\" [class.error]=\"!isValid\">\n <a class=\"file-picker__preview__delete\" (click)=\"onRemoveFile(fileValue)\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </a>\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n} @else {\n <div class=\"file-picker disabled\">\n @if (fileValues.length === 0) {\n <span class=\"file-picker__preview-empty disabled\">\n @if (previewEmpty.children.length === 0) {\n <gio-form-file-picker-empty class=\"file-picker__preview-empty__default\"></gio-form-file-picker-empty>\n }\n <span #previewEmpty><ng-content select=\"gio-form-file-picker-empty\"></ng-content></span>\n </span>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview disabled\">\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template #filePreview let-fileValue=\"fileValue\">\n @if (fileValue.isImage) {\n <div class=\"file-picker__preview__image\" [style.background-image]=\"'url(' + fileValue.dataUrl + ')'\"></div>\n }\n @if (!fileValue.isImage) {\n <div class=\"file-picker__preview__file\">\n <span class=\"file-picker__preview__file__name\">{{ fileValue.name }}</span>\n </div>\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:inline-flex;flex-direction:column}.file-picker{display:inline-flex;flex:1 1 auto;flex-flow:row wrap;justify-content:center;padding:4px 0;gap:8px}.file-picker__add-button{min-width:130px;min-height:130px;flex:1 1 auto;border:2px dashed #322f2f;border-radius:6px;margin:4px 0;cursor:pointer}.file-picker__add-button:hover,.file-picker__add-button.drag-hover{border:2px dashed #ffa685;background-color:#0000000a}.file-picker__add-button.drag-hover{pointer-events:none}.file-picker__add-button.complete{padding:6px 0;border:none}.file-picker__add-button.error{border:2px dashed #dd1d1f}.file-picker__preview,.file-picker__preview-empty{position:relative;display:flex;min-width:130px;min-height:130px;flex:0 0 130px;flex-flow:column nowrap;justify-content:space-between;padding:6px 0;border:2px solid #322f2f;border-radius:6px;margin:4px 0;inline-size:fit-content}.file-picker__preview.drag-hover,.file-picker__preview-empty.drag-hover{pointer-events:none}.file-picker__preview__image,.file-picker__preview-empty__image{width:100%;height:100%;background-position-x:center;background-position-y:center;background-repeat:no-repeat;background-size:contain}.file-picker__preview__file,.file-picker__preview-empty__file{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;place-content:center center;text-align:center;font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.file-picker__preview__file code,.file-picker__preview-empty__file code{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.file-picker__preview__file__name,.file-picker__preview-empty__file__name{position:absolute;padding:4px;overflow-wrap:anywhere}.file-picker__preview.disabled,.file-picker__preview-empty.disabled{border:2px solid rgba(0,0,0,.12)}.file-picker__preview.error{border:2px solid #dd1d1f}.file-picker__preview__delete{position:absolute;z-index:200;top:0;right:0;width:24px;height:24px;border-radius:3px;background-color:#f7f7f8b3;color:#1e1b1b;cursor:pointer}.file-picker__preview__delete:hover{color:#ff8a00}.file-picker__preview-empty__default{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$4.FileDropzoneDirective, selector: "[ngxFileDropzone]", outputs: ["fileDrop"], exportAs: ["ngxFileDropzone"] }, { kind: "directive", type: i3$4.FilePickerDirective, selector: "[ngxFilePicker]", inputs: ["accept", "multiple"], outputs: ["filePick"], exportAs: ["ngxFilePicker"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioFormFilePickerAddButtonComponent, selector: "gio-form-file-picker-add-button" }, { kind: "component", type: GioFormFilePickerEmptyComponent, selector: "gio-form-file-picker-empty" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2931
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormFilePickerComponent, isStandalone: false, selector: "gio-form-file-picker", inputs: { multiple: "multiple", accept: "accept", disabled: "disabled" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<ng-content select=\"gio-form-file-picker-label\"></ng-content>\n@if (!isDisabled) {\n <div\n class=\"file-picker\"\n ngxFileDropzone\n [readMode]=\"readMode\"\n (fileDrop)=\"onFileDropped($event)\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragOver($event)\"\n (blur)=\"dragHover = false\"\n >\n @if (!isComplete) {\n <div\n class=\"file-picker__add-button\"\n [class.complete]=\"isComplete\"\n [class.error]=\"!isValid\"\n [class.drag-hover]=\"dragHover\"\n ngxFilePicker\n [accept]=\"accept\"\n [readMode]=\"readMode\"\n [multiple]=\"multiple\"\n (filePick)=\"onFilePicked($event)\"\n (click)=\"onTouched()\"\n >\n <div #addButton class=\"file-picker__add-button__content\"><ng-content select=\"gio-form-file-picker-add-button\"></ng-content></div>\n @if (addButton.children.length === 0) {\n <gio-form-file-picker-add-button></gio-form-file-picker-add-button>\n }\n </div>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview\" [class.drag-hover]=\"dragHover\" [class.error]=\"!isValid\">\n <a class=\"file-picker__preview__delete\" (click)=\"onRemoveFile(fileValue)\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </a>\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n} @else {\n <div class=\"file-picker disabled\">\n @if (fileValues.length === 0) {\n <span class=\"file-picker__preview-empty disabled\">\n @if (previewEmpty.children.length === 0) {\n <gio-form-file-picker-empty class=\"file-picker__preview-empty__default\"></gio-form-file-picker-empty>\n }\n <span #previewEmpty><ng-content select=\"gio-form-file-picker-empty\"></ng-content></span>\n </span>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview disabled\">\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template #filePreview let-fileValue=\"fileValue\">\n @if (fileValue.isImage) {\n <div class=\"file-picker__preview__image\" [style.background-image]=\"'url(' + fileValue.dataUrl + ')'\"></div>\n }\n @if (!fileValue.isImage) {\n <div class=\"file-picker__preview__file\">\n <span class=\"file-picker__preview__file__name\">{{ fileValue.name }}</span>\n </div>\n }\n</ng-template>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:inline-flex;flex-direction:column}.file-picker{display:inline-flex;flex:1 1 auto;flex-flow:row wrap;justify-content:center;padding:4px 0;gap:8px}.file-picker__add-button{min-width:130px;min-height:130px;flex:1 1 auto;border:2px dashed #322f2f;border-radius:6px;margin:4px 0;cursor:pointer}.file-picker__add-button:hover,.file-picker__add-button.drag-hover{border:2px dashed #ffa685;background-color:#0000000a}.file-picker__add-button.drag-hover{pointer-events:none}.file-picker__add-button.complete{padding:6px 0;border:none}.file-picker__add-button.error{border:2px dashed #dd1d1f}.file-picker__preview,.file-picker__preview-empty{position:relative;display:flex;min-width:130px;min-height:130px;flex:0 0 130px;flex-flow:column nowrap;justify-content:space-between;padding:6px 0;border:2px solid #322f2f;border-radius:6px;margin:4px 0;inline-size:fit-content}.file-picker__preview.drag-hover,.file-picker__preview-empty.drag-hover{pointer-events:none}.file-picker__preview__image,.file-picker__preview-empty__image{width:100%;height:100%;background-position-x:center;background-position-y:center;background-repeat:no-repeat;background-size:contain}.file-picker__preview__file,.file-picker__preview-empty__file{display:flex;flex:1 1 auto;flex-direction:column;align-items:center;place-content:center center;text-align:center;font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.file-picker__preview__file code,.file-picker__preview-empty__file code{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.file-picker__preview__file__name,.file-picker__preview-empty__file__name{position:absolute;padding:4px;overflow-wrap:anywhere}.file-picker__preview.disabled,.file-picker__preview-empty.disabled{border:2px solid rgba(0,0,0,.12)}.file-picker__preview.error{border:2px solid #dd1d1f}.file-picker__preview__delete{position:absolute;z-index:200;top:0;right:0;width:24px;height:24px;border-radius:3px;background-color:#f7f7f8b3;color:#1e1b1b;cursor:pointer}.file-picker__preview__delete:hover{color:#ff8a00}.file-picker__preview-empty__default{text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "directive", type: i3$4.FileDropzoneDirective, selector: "[ngxFileDropzone]", outputs: ["fileDrop"], exportAs: ["ngxFileDropzone"] }, { kind: "directive", type: i3$4.FilePickerDirective, selector: "[ngxFilePicker]", inputs: ["accept", "multiple"], outputs: ["filePick"], exportAs: ["ngxFilePicker"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioFormFilePickerAddButtonComponent, selector: "gio-form-file-picker-add-button" }, { kind: "component", type: GioFormFilePickerEmptyComponent, selector: "gio-form-file-picker-empty" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
2478
2932
  }
2479
2933
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormFilePickerComponent, decorators: [{
2480
2934
  type: Component,
@@ -2821,7 +3275,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
2821
3275
  */
2822
3276
  class GioBreadcrumbComponent {
2823
3277
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
2824
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioBreadcrumbComponent, isStandalone: false, selector: "gio-breadcrumb", queries: [{ propertyName: "itemDirectives", predicate: GioBreadcrumbItemDirective }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"gio-breadcrumb\">\n @for (item of itemDirectives; track item; let first = $first) {\n @if (!first) {\n <mat-icon svgIcon=\"gio:nav-arrow-right\" class=\"gio-breadcrumb__icon\"></mat-icon>\n }\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-breadcrumb{display:flex;flex-flow:wrap;align-items:center;margin:2px;color:#322f2f}.gio-breadcrumb__icon{width:12px;height:12px;margin:0 6px;color:#8a8383;line-height:12px}::ng-deep .gio-breadcrumb>*:last-child{color:#da3b00;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1$4.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
3278
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioBreadcrumbComponent, isStandalone: false, selector: "gio-breadcrumb", queries: [{ propertyName: "itemDirectives", predicate: GioBreadcrumbItemDirective }], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"gio-breadcrumb\">\n @for (item of itemDirectives; track item; let first = $first) {\n @if (!first) {\n <mat-icon svgIcon=\"gio:nav-arrow-right\" class=\"gio-breadcrumb__icon\"></mat-icon>\n }\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n }\n</div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-breadcrumb{display:flex;flex-flow:wrap;align-items:center;margin:2px;color:#322f2f}.gio-breadcrumb__icon{width:12px;height:12px;margin:0 6px;color:#8a8383;line-height:12px}::ng-deep .gio-breadcrumb>*:last-child{color:#da3b00;font-weight:700}\n"], dependencies: [{ kind: "directive", type: i1$3.NgTemplateOutlet, selector: "[ngTemplateOutlet]", inputs: ["ngTemplateOutletContext", "ngTemplateOutlet", "ngTemplateOutletInjector"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
2825
3279
  }
2826
3280
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioBreadcrumbComponent, decorators: [{
2827
3281
  type: Component,
@@ -3174,12 +3628,12 @@ class GioFormlyJsonSchemaService {
3174
3628
  }
3175
3629
  return mappedField;
3176
3630
  }
3177
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService, deps: [{ token: i1$7.FormlyJsonschema }, { token: i1$8.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
3631
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService, deps: [{ token: i1$6.FormlyJsonschema }, { token: i1$7.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable }); }
3178
3632
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService }); }
3179
3633
  }
3180
3634
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService, decorators: [{
3181
3635
  type: Injectable
3182
- }], ctorParameters: () => [{ type: i1$7.FormlyJsonschema }, { type: i1$8.FormlyFormBuilder }] });
3636
+ }], ctorParameters: () => [{ type: i1$6.FormlyJsonschema }, { type: i1$7.FormlyFormBuilder }] });
3183
3637
  const getBannerProperties = (banner) => {
3184
3638
  return {
3185
3639
  bannerText: banner.text,
@@ -3377,12 +3831,12 @@ class GioFormJsonSchemaComponent {
3377
3831
  }, 0);
3378
3832
  this.stateChanges$.next();
3379
3833
  }
3380
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: GioFormlyJsonSchemaService }, { token: i0.ElementRef }, { token: i1$3.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: i1$2.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
3834
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: GioFormlyJsonSchemaService }, { token: i0.ElementRef }, { token: i2$1.FocusMonitor }, { token: i0.ChangeDetectorRef }, { token: i1$2.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component }); }
3381
3835
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormJsonSchemaComponent, isStandalone: false, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", context: "context", options: "options" }, outputs: { ready: "ready" }, host: { properties: { "attr.gioFormFocusInvalidIgnore": "this.gioFormFocusInvalidIgnore" } }, usesOnChanges: true, ngImport: i0, template: `
3382
3836
  @if (formGroup) {
3383
3837
  <formly-form [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>
3384
3838
  }
3385
- `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: i1$8.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3839
+ `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: i1$7.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3386
3840
  }
3387
3841
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
3388
3842
  type: Component,
@@ -3391,7 +3845,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
3391
3845
  <formly-form [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>
3392
3846
  }
3393
3847
  `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false }]
3394
- }], ctorParameters: () => [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i1$2.NgControl, decorators: [{
3848
+ }], ctorParameters: () => [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i1$2.NgControl, decorators: [{
3395
3849
  type: Host
3396
3850
  }, {
3397
3851
  type: Optional
@@ -4309,7 +4763,7 @@ class GioMonacoEditorComponent {
4309
4763
  @if (loaded$ | async) {
4310
4764
  <div>Loading...</div>
4311
4765
  }
4312
- `, isInline: true, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host.single-line{display:flex;height:24px;min-height:24px;align-items:center}:host-context(.hidden){opacity:0}\n"], dependencies: [{ kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4766
+ `, isInline: true, styles: [":host{display:block;height:100%;min-height:150px;pointer-events:auto;transition:opacity .2s ease-out}:host.single-line{display:flex;height:24px;min-height:24px;align-items:center}:host-context(.hidden){opacity:0}\n"], dependencies: [{ kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
4313
4767
  }
4314
4768
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
4315
4769
  type: Component,
@@ -4449,7 +4903,7 @@ class GioMonacoEditorFormFieldDirective {
4449
4903
  this.hostGioMonacoEditorComponent.standaloneCodeEditor?.focus();
4450
4904
  }
4451
4905
  }
4452
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMonacoEditorFormFieldDirective, deps: [{ token: i0.ElementRef }, { token: i1$3.FocusMonitor }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: GioMonacoEditorComponent, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
4906
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMonacoEditorFormFieldDirective, deps: [{ token: i0.ElementRef }, { token: i2$1.FocusMonitor }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: GioMonacoEditorComponent, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive }); }
4453
4907
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: GioMonacoEditorFormFieldDirective, isStandalone: false, selector: "[gioMonacoEditorFormField]", inputs: { placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "attr.aria-describedBy": "this.userAriaDescribedBy", "class.hidden": "this.shouldHideEditor" } }, providers: [
4454
4908
  {
4455
4909
  provide: MatFormFieldControl,
@@ -4469,7 +4923,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
4469
4923
  ],
4470
4924
  standalone: false,
4471
4925
  }]
4472
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: GioMonacoEditorComponent, decorators: [{
4926
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: GioMonacoEditorComponent, decorators: [{
4473
4927
  type: Host
4474
4928
  }, {
4475
4929
  type: Self
@@ -4956,7 +5410,7 @@ class GioFormCronComponent {
4956
5410
  }, { emitEvent: false });
4957
5411
  }
4958
5412
  }
4959
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormCronComponent, deps: [{ token: i0.ElementRef }, { token: i1$3.FocusMonitor }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
5413
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormCronComponent, deps: [{ token: i0.ElementRef }, { token: i2$1.FocusMonitor }, { token: i0.NgZone }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component }); }
4960
5414
  static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioFormCronComponent, isStandalone: false, selector: "gio-form-cron", host: { properties: { "class.disabled": "this.isDisabled", "class.smallDisplay": "this.smallDisplay" } }, providers: [
4961
5415
  {
4962
5416
  provide: NG_VALUE_ACCESSOR,
@@ -4968,7 +5422,7 @@ class GioFormCronComponent {
4968
5422
  useExisting: forwardRef(() => GioFormCronComponent),
4969
5423
  multi: true,
4970
5424
  },
4971
- ], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"label\"><ng-content select=\"gio-form-cron-label\"></ng-content></div>\n<div class=\"wrapper\" [class.smallDisplay]=\"smallDisplay\" [class.disabled]=\"isDisabled\">\n @if (internalFormGroup) {\n <ng-container [formGroup]=\"internalFormGroup\">\n <div class=\"menu\">\n <mat-button-toggle-group\n class=\"gio-button-toggle-group menu__mode\"\n name=\"mode\"\n aria-label=\"Cron mode\"\n formControlName=\"mode\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n <mat-button-toggle value=\"secondly\" matTooltip=\"Secondly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 's' : 'Secondly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"minutely\" matTooltip=\"Minutely\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'm' : 'Minutely'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"hourly\" matTooltip=\"Hourly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'h' : 'Hourly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"daily\" matTooltip=\"Daily\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'D' : 'Daily'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"weekly\" matTooltip=\"Weekly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'W' : 'Weekly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"monthly\" matTooltip=\"Monthly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'M' : 'Monthly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"custom\" matTooltip=\"Custom\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'C' : 'Custom'\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n @if (value && !isDisabled) {\n <button mat-button aria-label=\"Clear\" matTooltip=\"Clear\" type=\"button\" (click)=\"onClear({ touched: true })\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </div>\n @switch (internalFormGroup.get('mode')?.value) {\n @case ('secondly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Second</mat-label>\n <mat-select formControlName=\"secondInterval\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('minutely') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minuteInterval\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('hourly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hourInterval\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('daily') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayInterval\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('weekly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-medium\">\n <mat-label>Day of the week</mat-label>\n <mat-select formControlName=\"dayOfWeek\">\n @for (day of daysOfWeek; track day; let index = $index) {\n <mat-option [value]=\"index\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('monthly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">On the </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayOfMonth\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> of every month at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('custom') {\n <div class=\"modeForm\">\n <mat-form-field class=\"modeForm__field-custom\">\n <mat-label>Cron expression</mat-label>\n <input matInput formControlName=\"customExpression\" placeholder=\"* * * * * *\" />\n </mat-form-field>\n </div>\n }\n }\n @if (value) {\n <div class=\"preview\">\n @if (internalFormGroup.get('mode')?.value !== 'custom') {\n <span class=\"preview__value\">\n {{ value }}\n </span>\n }\n <span class=\"preview__hint\">{{ expressionDescription }}</span>\n </div>\n } @else {\n <div class=\"placeholder\">No cron expression defined.</div>\n }\n </ng-container>\n }\n</div>\n<div class=\"hint\"><ng-content select=\"gio-form-cron-hint\"></ng-content></div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:flex;min-width:342px;flex-direction:column}::ng-deep gio-form-cron{--mat-form-field-container-height: 48px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 12px;--mat-form-field-filled-with-label-container-padding-top: 12px;--mat-form-field-filled-with-label-container-padding-bottom: 12px}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:var(--mat-form-field-outlined-label-text-color)}.label:empty{display:none}.wrapper{display:inline-flex;flex-direction:column;padding:8px;border:1px solid var(--mat-form-field-outlined-outline-color);border-radius:4px}.wrapper:hover:not(.disabled){padding:8px;border:1px solid var(--mat-form-field-outlined-hover-outline-color)}.wrapper .menu{display:inline-flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper .menu__mode{border:none;margin-bottom:0}.wrapper .modeForm{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:8px;column-gap:4px}.wrapper .modeForm__field-small,.wrapper .modeForm__field-medium,.wrapper .modeForm__field-custom{display:inline-block;height:52px}.wrapper .modeForm__field-small{width:124px}.wrapper .modeForm__field-medium{width:158px}.wrapper .modeForm__field-custom{width:100%}.wrapper .preview,.wrapper .placeholder{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:4px;background-color:#f7f7f8;color:#000}.wrapper .preview__hint,.wrapper .placeholder{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.wrapper.disabled .preview,.wrapper.disabled .placeholder{opacity:.4}.hint{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-top:2px;padding-left:10px}.hint:empty{display:none}:host(.ng-invalid.ng-touched) .wrapper{padding:8px;border-width:1px;border-color:var(--mat-form-field-outlined-error-outline-color)}:host(.ng-invalid.ng-touched) .wrapper .preview,:host(.ng-invalid.ng-touched) .wrapper .placeholder{color:#dd1d1f}:host(.ng-invalid.ng-touched) .label,:host(.ng-invalid.ng-touched) .hint{color:var(--mat-form-field-outlined-error-outline-color)}:host(.disabled) .wrapper{border-color:#f7f7f8}:host(.disabled) .wrapper,:host(.disabled) .hint,:host(.disabled) .label{color:#d2cecd}\n"], dependencies: [{ kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i2$2.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$2.MatLabel, selector: "mat-label" }, { kind: "component", type: i5$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$3.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
5425
+ ], ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"label\"><ng-content select=\"gio-form-cron-label\"></ng-content></div>\n<div class=\"wrapper\" [class.smallDisplay]=\"smallDisplay\" [class.disabled]=\"isDisabled\">\n @if (internalFormGroup) {\n <ng-container [formGroup]=\"internalFormGroup\">\n <div class=\"menu\">\n <mat-button-toggle-group\n class=\"gio-button-toggle-group menu__mode\"\n name=\"mode\"\n aria-label=\"Cron mode\"\n formControlName=\"mode\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n <mat-button-toggle value=\"secondly\" matTooltip=\"Secondly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 's' : 'Secondly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"minutely\" matTooltip=\"Minutely\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'm' : 'Minutely'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"hourly\" matTooltip=\"Hourly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'h' : 'Hourly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"daily\" matTooltip=\"Daily\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'D' : 'Daily'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"weekly\" matTooltip=\"Weekly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'W' : 'Weekly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"monthly\" matTooltip=\"Monthly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'M' : 'Monthly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"custom\" matTooltip=\"Custom\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'C' : 'Custom'\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n @if (value && !isDisabled) {\n <button mat-button aria-label=\"Clear\" matTooltip=\"Clear\" type=\"button\" (click)=\"onClear({ touched: true })\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </div>\n @switch (internalFormGroup.get('mode')?.value) {\n @case ('secondly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Second</mat-label>\n <mat-select formControlName=\"secondInterval\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('minutely') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minuteInterval\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('hourly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hourInterval\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('daily') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayInterval\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('weekly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-medium\">\n <mat-label>Day of the week</mat-label>\n <mat-select formControlName=\"dayOfWeek\">\n @for (day of daysOfWeek; track day; let index = $index) {\n <mat-option [value]=\"index\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('monthly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">On the </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayOfMonth\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> of every month at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('custom') {\n <div class=\"modeForm\">\n <mat-form-field class=\"modeForm__field-custom\">\n <mat-label>Cron expression</mat-label>\n <input matInput formControlName=\"customExpression\" placeholder=\"* * * * * *\" />\n </mat-form-field>\n </div>\n }\n }\n @if (value) {\n <div class=\"preview\">\n @if (internalFormGroup.get('mode')?.value !== 'custom') {\n <span class=\"preview__value\">\n {{ value }}\n </span>\n }\n <span class=\"preview__hint\">{{ expressionDescription }}</span>\n </div>\n } @else {\n <div class=\"placeholder\">No cron expression defined.</div>\n }\n </ng-container>\n }\n</div>\n<div class=\"hint\"><ng-content select=\"gio-form-cron-hint\"></ng-content></div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:flex;min-width:342px;flex-direction:column}::ng-deep gio-form-cron{--mat-form-field-container-height: 48px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 12px;--mat-form-field-filled-with-label-container-padding-top: 12px;--mat-form-field-filled-with-label-container-padding-bottom: 12px}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:var(--mat-form-field-outlined-label-text-color)}.label:empty{display:none}.wrapper{display:inline-flex;flex-direction:column;padding:8px;border:1px solid var(--mat-form-field-outlined-outline-color);border-radius:4px}.wrapper:hover:not(.disabled){padding:8px;border:1px solid var(--mat-form-field-outlined-hover-outline-color)}.wrapper .menu{display:inline-flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper .menu__mode{border:none;margin-bottom:0}.wrapper .modeForm{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:8px;column-gap:4px}.wrapper .modeForm__field-small,.wrapper .modeForm__field-medium,.wrapper .modeForm__field-custom{display:inline-block;height:52px}.wrapper .modeForm__field-small{width:124px}.wrapper .modeForm__field-medium{width:158px}.wrapper .modeForm__field-custom{width:100%}.wrapper .preview,.wrapper .placeholder{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:4px;background-color:#f7f7f8;color:#000}.wrapper .preview__hint,.wrapper .placeholder{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.wrapper.disabled .preview,.wrapper.disabled .placeholder{opacity:.4}.hint{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-top:2px;padding-left:10px}.hint:empty{display:none}:host(.ng-invalid.ng-touched) .wrapper{padding:8px;border-width:1px;border-color:var(--mat-form-field-outlined-error-outline-color)}:host(.ng-invalid.ng-touched) .wrapper .preview,:host(.ng-invalid.ng-touched) .wrapper .placeholder{color:#dd1d1f}:host(.ng-invalid.ng-touched) .label,:host(.ng-invalid.ng-touched) .hint{color:var(--mat-form-field-outlined-error-outline-color)}:host(.disabled) .wrapper{border-color:#f7f7f8}:host(.disabled) .wrapper,:host(.disabled) .hint,:host(.disabled) .label{color:#d2cecd}\n"], dependencies: [{ kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "directive", type: i3$5.MatButtonToggleGroup, selector: "mat-button-toggle-group", inputs: ["appearance", "name", "vertical", "value", "multiple", "disabled", "disabledInteractive", "hideSingleSelectionIndicator", "hideMultipleSelectionIndicator"], outputs: ["valueChange", "change"], exportAs: ["matButtonToggleGroup"] }, { kind: "component", type: i3$5.MatButtonToggle, selector: "mat-button-toggle", inputs: ["aria-label", "aria-labelledby", "id", "name", "value", "tabIndex", "disableRipple", "appearance", "checked", "disabled", "disabledInteractive"], outputs: ["change"], exportAs: ["matButtonToggle"] }, { kind: "component", type: i2$3.MatFormField, selector: "mat-form-field", inputs: ["hideRequiredMarker", "color", "floatLabel", "appearance", "subscriptSizing", "hintLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i2$3.MatLabel, selector: "mat-label" }, { kind: "component", type: i5$1.MatSelect, selector: "mat-select", inputs: ["aria-describedby", "panelClass", "disabled", "disableRipple", "tabIndex", "hideSingleSelectionIndicator", "placeholder", "required", "multiple", "disableOptionCentering", "compareWith", "value", "aria-label", "aria-labelledby", "errorStateMatcher", "typeaheadDebounceInterval", "sortComparator", "id", "panelWidth", "canSelectNullableOptions"], outputs: ["openedChange", "opened", "closed", "selectionChange", "valueChange"], exportAs: ["matSelect"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "directive", type: i2$4.MatTooltip, selector: "[matTooltip]", inputs: ["matTooltipPosition", "matTooltipPositionAtOrigin", "matTooltipDisabled", "matTooltipShowDelay", "matTooltipHideDelay", "matTooltipTouchGestures", "matTooltip", "matTooltipClass"], exportAs: ["matTooltip"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
4972
5426
  }
4973
5427
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormCronComponent, decorators: [{
4974
5428
  type: Component,
@@ -4984,7 +5438,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
4984
5438
  multi: true,
4985
5439
  },
4986
5440
  ], standalone: false, template: "<!--\n\n Copyright (C) 2025 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<div class=\"label\"><ng-content select=\"gio-form-cron-label\"></ng-content></div>\n<div class=\"wrapper\" [class.smallDisplay]=\"smallDisplay\" [class.disabled]=\"isDisabled\">\n @if (internalFormGroup) {\n <ng-container [formGroup]=\"internalFormGroup\">\n <div class=\"menu\">\n <mat-button-toggle-group\n class=\"gio-button-toggle-group menu__mode\"\n name=\"mode\"\n aria-label=\"Cron mode\"\n formControlName=\"mode\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n <mat-button-toggle value=\"secondly\" matTooltip=\"Secondly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 's' : 'Secondly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"minutely\" matTooltip=\"Minutely\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'm' : 'Minutely'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"hourly\" matTooltip=\"Hourly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'h' : 'Hourly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"daily\" matTooltip=\"Daily\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'D' : 'Daily'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"weekly\" matTooltip=\"Weekly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'W' : 'Weekly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"monthly\" matTooltip=\"Monthly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'M' : 'Monthly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"custom\" matTooltip=\"Custom\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'C' : 'Custom'\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n @if (value && !isDisabled) {\n <button mat-button aria-label=\"Clear\" matTooltip=\"Clear\" type=\"button\" (click)=\"onClear({ touched: true })\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </div>\n @switch (internalFormGroup.get('mode')?.value) {\n @case ('secondly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Second</mat-label>\n <mat-select formControlName=\"secondInterval\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('minutely') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minuteInterval\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('hourly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hourInterval\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('daily') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayInterval\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('weekly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-medium\">\n <mat-label>Day of the week</mat-label>\n <mat-select formControlName=\"dayOfWeek\">\n @for (day of daysOfWeek; track day; let index = $index) {\n <mat-option [value]=\"index\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('monthly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">On the </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayOfMonth\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> of every month at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('custom') {\n <div class=\"modeForm\">\n <mat-form-field class=\"modeForm__field-custom\">\n <mat-label>Cron expression</mat-label>\n <input matInput formControlName=\"customExpression\" placeholder=\"* * * * * *\" />\n </mat-form-field>\n </div>\n }\n }\n @if (value) {\n <div class=\"preview\">\n @if (internalFormGroup.get('mode')?.value !== 'custom') {\n <span class=\"preview__value\">\n {{ value }}\n </span>\n }\n <span class=\"preview__hint\">{{ expressionDescription }}</span>\n </div>\n } @else {\n <div class=\"placeholder\">No cron expression defined.</div>\n }\n </ng-container>\n }\n</div>\n<div class=\"hint\"><ng-content select=\"gio-form-cron-hint\"></ng-content></div>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}:host{display:flex;min-width:342px;flex-direction:column}::ng-deep gio-form-cron{--mat-form-field-container-height: 48px;--mat-form-field-filled-label-display: none;--mat-form-field-container-vertical-padding: 12px;--mat-form-field-filled-with-label-container-padding-top: 12px;--mat-form-field-filled-with-label-container-padding-bottom: 12px}.label{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-left:10px;color:var(--mat-form-field-outlined-label-text-color)}.label:empty{display:none}.wrapper{display:inline-flex;flex-direction:column;padding:8px;border:1px solid var(--mat-form-field-outlined-outline-color);border-radius:4px}.wrapper:hover:not(.disabled){padding:8px;border:1px solid var(--mat-form-field-outlined-hover-outline-color)}.wrapper .menu{display:inline-flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper .menu__mode{border:none;margin-bottom:0}.wrapper .modeForm{display:flex;flex-wrap:wrap;align-items:center;margin-bottom:8px;column-gap:4px}.wrapper .modeForm__field-small,.wrapper .modeForm__field-medium,.wrapper .modeForm__field-custom{display:inline-block;height:52px}.wrapper .modeForm__field-small{width:124px}.wrapper .modeForm__field-medium{width:158px}.wrapper .modeForm__field-custom{width:100%}.wrapper .preview,.wrapper .placeholder{display:flex;flex-direction:column;align-items:center;padding:8px;border-radius:4px;background-color:#f7f7f8;color:#000}.wrapper .preview__hint,.wrapper .placeholder{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}.wrapper.disabled .preview,.wrapper.disabled .placeholder{opacity:.4}.hint{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;padding-top:2px;padding-left:10px}.hint:empty{display:none}:host(.ng-invalid.ng-touched) .wrapper{padding:8px;border-width:1px;border-color:var(--mat-form-field-outlined-error-outline-color)}:host(.ng-invalid.ng-touched) .wrapper .preview,:host(.ng-invalid.ng-touched) .wrapper .placeholder{color:#dd1d1f}:host(.ng-invalid.ng-touched) .label,:host(.ng-invalid.ng-touched) .hint{color:var(--mat-form-field-outlined-error-outline-color)}:host(.disabled) .wrapper{border-color:#f7f7f8}:host(.disabled) .wrapper,:host(.disabled) .hint,:host(.disabled) .label{color:#d2cecd}\n"] }]
4987
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { isDisabled: [{
5441
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { isDisabled: [{
4988
5442
  type: HostBinding,
4989
5443
  args: ['class.disabled']
4990
5444
  }], smallDisplay: [{
@@ -5176,7 +5630,7 @@ class GioFjsObjectTypeComponent extends FieldType {
5176
5630
  }
5177
5631
  </div>
5178
5632
  </div>
5179
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{display:flex;flex-direction:column}.wrapper__title{font-size:18px;font-weight:600;line-height:24px;font-family:Kanit,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}.wrapper__fields{padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper__fields.noUiBorder{padding:0;border:none}.wrapper__fields:empty{display:none}.wrapper__fields:has(>.wrapper__fields__field:only-child):has(>.wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"], dependencies: [{ kind: "component", type: i1$8.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$8.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }] }); }
5633
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{display:flex;flex-direction:column}.wrapper__title{font-size:18px;font-weight:600;line-height:24px;font-family:Kanit,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}.wrapper__fields{padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper__fields.noUiBorder{padding:0;border:none}.wrapper__fields:empty{display:none}.wrapper__fields:has(>.wrapper__fields__field:only-child):has(>.wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"], dependencies: [{ kind: "component", type: i1$7.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$7.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }] }); }
5180
5634
  }
5181
5635
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
5182
5636
  type: Component,
@@ -5278,7 +5732,7 @@ class GioFjsArrayTypeComponent extends FieldArrayType {
5278
5732
  </div>
5279
5733
  </div>
5280
5734
  </div>
5281
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper.noUiBorder{padding:0;border:none}.wrapper.error{border-color:#dd1d1f}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}.wrapper__rows__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper__rows__row+.wrapper__rows__row{padding-top:3px;border-top:1px solid #d2cecd;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"], dependencies: [{ kind: "component", type: i1$8.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$8.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
5735
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper.noUiBorder{padding:0;border:none}.wrapper.error{border-color:#dd1d1f}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}.wrapper__rows__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper__rows__row+.wrapper__rows__row{padding-top:3px;border-top:1px solid #d2cecd;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"], dependencies: [{ kind: "component", type: i1$7.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$7.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
5282
5736
  }
5283
5737
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
5284
5738
  type: Component,
@@ -5457,7 +5911,7 @@ class GioFjsMultiSchemaTypeComponent extends FieldType {
5457
5911
  <formly-field [field]="f"></formly-field>
5458
5912
  }
5459
5913
  </div>
5460
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper__title{font-family:Kanit,Helvetica Neue,sans-serif;font-size:16px;font-weight:500;line-height:24px;font-size:14px;font-weight:700;line-height:20px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:4px}.wrapper:empty{display:none}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}\n"], dependencies: [{ kind: "component", type: i1$8.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$8.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }] }); }
5914
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper__title{font-family:Kanit,Helvetica Neue,sans-serif;font-size:16px;font-weight:500;line-height:24px;font-size:14px;font-weight:700;line-height:20px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:4px}.wrapper:empty{display:none}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}\n"], dependencies: [{ kind: "component", type: i1$7.FormlyField, selector: "formly-field", inputs: ["field"] }, { kind: "component", type: i1$7.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }] }); }
5461
5915
  }
5462
5916
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, decorators: [{
5463
5917
  type: Component,
@@ -5510,7 +5964,7 @@ class GioFjsToggleTypeComponent extends FieldType {
5510
5964
  [tabIndex]="props.tabindex"
5511
5965
  ></mat-slide-toggle>
5512
5966
  </gio-form-slide-toggle>
5513
- `, isInline: true, dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$8.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: GioFormSlideToggleComponent, selector: "gio-form-slide-toggle", inputs: ["appearance"] }, { kind: "component", type: GioFormLabelComponent, selector: "gio-form-label" }, { kind: "directive", type: GioFormSlideToggleDirective, selector: "[gioFormSlideToggle]" }, { kind: "component", type: i5$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
5967
+ `, isInline: true, dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$7.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }, { kind: "component", type: GioFormSlideToggleComponent, selector: "gio-form-slide-toggle", inputs: ["appearance"] }, { kind: "component", type: GioFormLabelComponent, selector: "gio-form-label" }, { kind: "directive", type: GioFormSlideToggleDirective, selector: "[gioFormSlideToggle]" }, { kind: "component", type: i5$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "color", "disabled", "disableRipple", "tabIndex", "checked", "hideIcon", "disabledInteractive"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }] }); }
5514
5968
  }
5515
5969
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsToggleTypeComponent, decorators: [{
5516
5970
  type: Component,
@@ -5596,7 +6050,7 @@ class GioFjsHeadersTypeComponent extends FieldType {
5596
6050
  </div>
5597
6051
  }
5598
6052
  </div>
5599
- `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}\n"], dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i1$8.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["headerFieldMapper", "config", "autocompleteDisabled"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
6053
+ `, isInline: true, styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d2cecd;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;color:#dd1d1f}\n"], dependencies: [{ kind: "directive", type: i1$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "component", type: i1$7.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["headerFieldMapper", "config", "autocompleteDisabled"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }] }); }
5600
6054
  }
5601
6055
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
5602
6056
  type: Component,
@@ -5872,7 +6326,7 @@ class GioFormJsonSchemaModule {
5872
6326
  GioPasswordEyeWrapperComponent,
5873
6327
  GioElHelperWrapperComponent], imports: [CommonModule,
5874
6328
  A11yModule,
5875
- ReactiveFormsModule, i1$8.FormlyModule, FormlyMaterialModule,
6329
+ ReactiveFormsModule, i1$7.FormlyModule, FormlyMaterialModule,
5876
6330
  MatInputModule,
5877
6331
  GioIconsModule,
5878
6332
  GioFormSlideToggleModule,
@@ -6427,7 +6881,7 @@ class SafePipe {
6427
6881
  throw new Error(`Invalid safe type specified: ${type}`);
6428
6882
  }
6429
6883
  }
6430
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, deps: [{ token: i2$1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
6884
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, deps: [{ token: i2$2.DomSanitizer }], target: i0.ɵɵFactoryTarget.Pipe }); }
6431
6885
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, isStandalone: false, name: "safe" }); }
6432
6886
  }
6433
6887
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, decorators: [{
@@ -6436,7 +6890,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6436
6890
  name: 'safe',
6437
6891
  standalone: false,
6438
6892
  }]
6439
- }], ctorParameters: () => [{ type: i2$1.DomSanitizer }] });
6893
+ }], ctorParameters: () => [{ type: i2$2.DomSanitizer }] });
6440
6894
 
6441
6895
  /*
6442
6896
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -6491,13 +6945,13 @@ class GioLicenseDialogComponent {
6491
6945
  onClose() {
6492
6946
  this.dialogRef.close();
6493
6947
  }
6494
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDialogComponent, deps: [{ token: i1$5.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
6495
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioLicenseDialogComponent, isStandalone: false, selector: "gio-license-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"gio-license-dialog__title\">\n <mat-icon class=\"gio-license-dialog__title__cancel\"></mat-icon>\n <button mat-icon-button [attr.aria-label]=\"'Close'\" (click)=\"onClose()\">\n <mat-icon class=\"gio-license-dialog__title__cancel\" svgIcon=\"gio:cancel\"> </mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"gio-license-dialog__content\">\n <img class=\"gio-license-dialog__content__image\" [src]=\"featureInfo.image\" [alt]=\"featureInfo.title || 'Unlock Gravitee Enterprise'\" />\n <h2 class=\"gio-license-dialog__content__title\" [innerHTML]=\"featureInfo.title || 'Unlock Gravitee Enterprise' | safe: 'html'\"></h2>\n <div class=\"gio-license-dialog__content__description\" [innerHTML]=\"featureInfo.description | safe: 'html'\"></div>\n <div class=\"gio-license-dialog__content__action\">\n <a class=\"gio-license-dialog__content__action__button\" mat-stroked-button color=\"primary\" target=\"_blank\" [href]=\"trialURL\">\n {{ featureInfo.trialButtonLabel || 'Request an enterprise license' }} <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </a>\n @if (!featureInfo.hideDays) {\n <div class=\"gio-license-dialog__content__action__info\">14 days trial</div>\n }\n </div>\n</mat-dialog-content>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-license-dialog__title{display:flex;justify-content:space-between}.gio-license-dialog__title__cancel{width:24px;height:24px;color:#8a8383}.gio-license-dialog__content{display:flex;width:600px;flex-direction:column;align-items:center;justify-content:center;padding:0}.gio-license-dialog__content__title{margin:0 0 24px;font-size:26px;font-weight:600;line-height:36px;font-family:Kanit,Helvetica Neue,sans-serif;letter-spacing:normal}.gio-license-dialog__content__description{padding:0 50px 32px;color:#322f2f;font-weight:500;line-height:24px;text-align:center}.gio-license-dialog__content__action{display:flex;flex-direction:column;align-items:center;padding:0 40px 16px}.gio-license-dialog__content__action__button{width:250px}.gio-license-dialog__content__action__info{margin-top:10px;color:#322f2f;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$5.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: SafePipe, name: "safe" }] }); }
6948
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDialogComponent, deps: [{ token: i1$4.MatDialogRef }, { token: MAT_DIALOG_DATA }], target: i0.ɵɵFactoryTarget.Component }); }
6949
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioLicenseDialogComponent, isStandalone: false, selector: "gio-license-dialog", ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<div class=\"gio-license-dialog__title\">\n <mat-icon class=\"gio-license-dialog__title__cancel\"></mat-icon>\n <button mat-icon-button [attr.aria-label]=\"'Close'\" (click)=\"onClose()\">\n <mat-icon class=\"gio-license-dialog__title__cancel\" svgIcon=\"gio:cancel\"> </mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"gio-license-dialog__content\">\n <img class=\"gio-license-dialog__content__image\" [src]=\"featureInfo.image\" [alt]=\"featureInfo.title || 'Unlock Gravitee Enterprise'\" />\n <h2 class=\"gio-license-dialog__content__title\" [innerHTML]=\"featureInfo.title || 'Unlock Gravitee Enterprise' | safe: 'html'\"></h2>\n <div class=\"gio-license-dialog__content__description\" [innerHTML]=\"featureInfo.description | safe: 'html'\"></div>\n <div class=\"gio-license-dialog__content__action\">\n <a class=\"gio-license-dialog__content__action__button\" mat-stroked-button color=\"primary\" target=\"_blank\" [href]=\"trialURL\">\n {{ featureInfo.trialButtonLabel || 'Request an enterprise license' }} <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </a>\n @if (!featureInfo.hideDays) {\n <div class=\"gio-license-dialog__content__action__info\">14 days trial</div>\n }\n </div>\n</mat-dialog-content>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-license-dialog__title{display:flex;justify-content:space-between}.gio-license-dialog__title__cancel{width:24px;height:24px;color:#8a8383}.gio-license-dialog__content{display:flex;width:600px;flex-direction:column;align-items:center;justify-content:center;padding:0}.gio-license-dialog__content__title{margin:0 0 24px;font-size:26px;font-weight:600;line-height:36px;font-family:Kanit,Helvetica Neue,sans-serif;letter-spacing:normal}.gio-license-dialog__content__description{padding:0 50px 32px;color:#322f2f;font-weight:500;line-height:24px;text-align:center}.gio-license-dialog__content__action{display:flex;flex-direction:column;align-items:center;padding:0 40px 16px}.gio-license-dialog__content__action__button{width:250px}.gio-license-dialog__content__action__info{margin-top:10px;color:#322f2f;text-align:center}\n"], dependencies: [{ kind: "directive", type: i1$4.MatDialogContent, selector: "[mat-dialog-content], mat-dialog-content, [matDialogContent]" }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i2.MatButton, selector: " button[matButton], a[matButton], button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button], a[mat-button], a[mat-raised-button], a[mat-flat-button], a[mat-stroked-button] ", inputs: ["matButton"], exportAs: ["matButton", "matAnchor"] }, { kind: "component", type: i2.MatIconButton, selector: "button[mat-icon-button], a[mat-icon-button], button[matIconButton], a[matIconButton]", exportAs: ["matButton", "matAnchor"] }, { kind: "pipe", type: SafePipe, name: "safe" }] }); }
6496
6950
  }
6497
6951
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDialogComponent, decorators: [{
6498
6952
  type: Component,
6499
6953
  args: [{ selector: 'gio-license-dialog', standalone: false, template: "<!--\n\n Copyright (C) 2025 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<div class=\"gio-license-dialog__title\">\n <mat-icon class=\"gio-license-dialog__title__cancel\"></mat-icon>\n <button mat-icon-button [attr.aria-label]=\"'Close'\" (click)=\"onClose()\">\n <mat-icon class=\"gio-license-dialog__title__cancel\" svgIcon=\"gio:cancel\"> </mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"gio-license-dialog__content\">\n <img class=\"gio-license-dialog__content__image\" [src]=\"featureInfo.image\" [alt]=\"featureInfo.title || 'Unlock Gravitee Enterprise'\" />\n <h2 class=\"gio-license-dialog__content__title\" [innerHTML]=\"featureInfo.title || 'Unlock Gravitee Enterprise' | safe: 'html'\"></h2>\n <div class=\"gio-license-dialog__content__description\" [innerHTML]=\"featureInfo.description | safe: 'html'\"></div>\n <div class=\"gio-license-dialog__content__action\">\n <a class=\"gio-license-dialog__content__action__button\" mat-stroked-button color=\"primary\" target=\"_blank\" [href]=\"trialURL\">\n {{ featureInfo.trialButtonLabel || 'Request an enterprise license' }} <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </a>\n @if (!featureInfo.hideDays) {\n <div class=\"gio-license-dialog__content__action__info\">14 days trial</div>\n }\n </div>\n</mat-dialog-content>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-license-dialog__title{display:flex;justify-content:space-between}.gio-license-dialog__title__cancel{width:24px;height:24px;color:#8a8383}.gio-license-dialog__content{display:flex;width:600px;flex-direction:column;align-items:center;justify-content:center;padding:0}.gio-license-dialog__content__title{margin:0 0 24px;font-size:26px;font-weight:600;line-height:36px;font-family:Kanit,Helvetica Neue,sans-serif;letter-spacing:normal}.gio-license-dialog__content__description{padding:0 50px 32px;color:#322f2f;font-weight:500;line-height:24px;text-align:center}.gio-license-dialog__content__action{display:flex;flex-direction:column;align-items:center;padding:0 40px 16px}.gio-license-dialog__content__action__button{width:250px}.gio-license-dialog__content__action__info{margin-top:10px;color:#322f2f;text-align:center}\n"] }]
6500
- }], ctorParameters: () => [{ type: i1$5.MatDialogRef }, { type: undefined, decorators: [{
6954
+ }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: undefined, decorators: [{
6501
6955
  type: Inject,
6502
6956
  args: [MAT_DIALOG_DATA]
6503
6957
  }] }] });
@@ -6582,7 +7036,7 @@ class GioLicenseService {
6582
7036
  isExpired$() {
6583
7037
  return this.getLicense$().pipe(map(license => license?.isExpired === true));
6584
7038
  }
6585
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, deps: [{ token: i1$9.HttpClient }, { token: 'LicenseConfiguration' }, { token: i1$5.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
7039
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, deps: [{ token: i1$8.HttpClient }, { token: 'LicenseConfiguration' }, { token: i1$4.MatDialog }], target: i0.ɵɵFactoryTarget.Injectable }); }
6586
7040
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, providedIn: 'root' }); }
6587
7041
  }
6588
7042
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, decorators: [{
@@ -6590,10 +7044,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6590
7044
  args: [{
6591
7045
  providedIn: 'root',
6592
7046
  }]
6593
- }], ctorParameters: () => [{ type: i1$9.HttpClient }, { type: undefined, decorators: [{
7047
+ }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: undefined, decorators: [{
6594
7048
  type: Inject,
6595
7049
  args: ['LicenseConfiguration']
6596
- }] }, { type: i1$5.MatDialog }] });
7050
+ }] }, { type: i1$4.MatDialog }] });
6597
7051
 
6598
7052
  /*
6599
7053
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -6665,7 +7119,7 @@ class GioLicenseDirective {
6665
7119
  .subscribe();
6666
7120
  return false;
6667
7121
  }
6668
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDirective, deps: [{ token: GioLicenseService }, { token: i1$5.MatDialog }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
7122
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDirective, deps: [{ token: GioLicenseService }, { token: i1$4.MatDialog }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Directive }); }
6669
7123
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: GioLicenseDirective, isStandalone: false, selector: "[gioLicense]", inputs: { gioLicense: "gioLicense" }, ngImport: i0 }); }
6670
7124
  }
6671
7125
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDirective, decorators: [{
@@ -6674,7 +7128,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6674
7128
  selector: '[gioLicense]',
6675
7129
  standalone: false,
6676
7130
  }]
6677
- }], ctorParameters: () => [{ type: GioLicenseService }, { type: i1$5.MatDialog }, { type: i0.ElementRef }], propDecorators: { gioLicense: [{
7131
+ }], ctorParameters: () => [{ type: GioLicenseService }, { type: i1$4.MatDialog }, { type: i0.ElementRef }], propDecorators: { gioLicense: [{
6678
7132
  type: Input
6679
7133
  }] } });
6680
7134
 
@@ -6895,7 +7349,7 @@ class GioLicenseExpirationNotificationComponent {
6895
7349
  return new Date(date.toDateString()).valueOf();
6896
7350
  }
6897
7351
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseExpirationNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
6898
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioLicenseExpirationNotificationComponent, isStandalone: false, selector: "gio-license-expiration-notification", inputs: { expirationDate: "expirationDate", showCallToAction: "showCallToAction", callToActionMessage: "callToActionMessage", link: "link", inError: "inError" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if (expirationDate && daysRemaining <= 30) {\n <div class=\"status\" rel=\"noopener\">\n <div [ngClass]=\"'status__title ' + statusColor\">\n <div class=\"status__title__text\">\n {{ title }}\n <img src=\"assets/license-expiration-notification-background.svg\" />\n </div>\n </div>\n @if (showCallToAction) {\n <a class=\"status__action\" [href]=\"link ?? 'https://www.gravitee.io/contact-us-licence'\" target=\"_blank\">\n <div class=\"status__action__text\">{{ callToActionMessage ?? 'Contact Gravitee' }}</div>\n <mat-icon svgIcon=\"gio:right-circle\" class=\"status__action__icon\"></mat-icon>\n </a>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.status{position:relative;display:flex;width:192px;height:152px;flex-direction:column;padding:0;border-radius:4px;color:#1e1b1b;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border:none;background:#fff;text-decoration:none}.status--disabled{cursor:not-allowed}.status__sub-tile{height:56px;margin-top:16px}.status__title img{position:absolute;top:0;right:0}.status__title.red{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#ffcfd0;color:#881d1e}.status__title.red img{filter:invert(21%) sepia(96%) saturate(2923%) hue-rotate(316deg) brightness(75%) contrast(116%)}.status__title.blue{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#e9f6ff;color:#006fb9}.status__title.blue img{filter:invert(27%) sepia(98%) saturate(1450%) hue-rotate(183deg) brightness(91%) contrast(102%)}.status__title.orange{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#ffd8aa;color:#a5610f}.status__title.orange img{filter:invert(23%) sepia(92%) saturate(1610%) hue-rotate(357deg) brightness(103%) contrast(94%)}.status__title__text{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin:24px 12px;text-align:left}.status__action{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;display:flex;width:100%;align-items:center;justify-content:space-between;padding:20px 12px;color:#1e1b1b;font-weight:700;text-decoration:none}.status__action__icon{width:20px;height:20px}:host-context(.gio-menu__reduced) .status{display:none}\n"], dependencies: [{ kind: "directive", type: i1$4.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
7352
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioLicenseExpirationNotificationComponent, isStandalone: false, selector: "gio-license-expiration-notification", inputs: { expirationDate: "expirationDate", showCallToAction: "showCallToAction", callToActionMessage: "callToActionMessage", link: "link", inError: "inError" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if (expirationDate && daysRemaining <= 30) {\n <div class=\"status\" rel=\"noopener\">\n <div [ngClass]=\"'status__title ' + statusColor\">\n <div class=\"status__title__text\">\n {{ title }}\n <img src=\"assets/license-expiration-notification-background.svg\" />\n </div>\n </div>\n @if (showCallToAction) {\n <a class=\"status__action\" [href]=\"link ?? 'https://www.gravitee.io/contact-us-licence'\" target=\"_blank\">\n <div class=\"status__action__text\">{{ callToActionMessage ?? 'Contact Gravitee' }}</div>\n <mat-icon svgIcon=\"gio:right-circle\" class=\"status__action__icon\"></mat-icon>\n </a>\n }\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.status{position:relative;display:flex;width:192px;height:152px;flex-direction:column;padding:0;border-radius:4px;color:#1e1b1b;box-shadow:0 3px 1px -2px #0003,0 2px 2px #00000024,0 1px 5px #0000001f;border:none;background:#fff;text-decoration:none}.status--disabled{cursor:not-allowed}.status__sub-tile{height:56px;margin-top:16px}.status__title img{position:absolute;top:0;right:0}.status__title.red{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#ffcfd0;color:#881d1e}.status__title.red img{filter:invert(21%) sepia(96%) saturate(2923%) hue-rotate(316deg) brightness(75%) contrast(116%)}.status__title.blue{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#e9f6ff;color:#006fb9}.status__title.blue img{filter:invert(27%) sepia(98%) saturate(1450%) hue-rotate(183deg) brightness(91%) contrast(102%)}.status__title.orange{display:flex;width:inherit;flex:1 1 100%;align-items:center;border-radius:4px;background:#ffd8aa;color:#a5610f}.status__title.orange img{filter:invert(23%) sepia(92%) saturate(1610%) hue-rotate(357deg) brightness(103%) contrast(94%)}.status__title__text{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;margin:24px 12px;text-align:left}.status__action{font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal;display:flex;width:100%;align-items:center;justify-content:space-between;padding:20px 12px;color:#1e1b1b;font-weight:700;text-decoration:none}.status__action__icon{width:20px;height:20px}:host-context(.gio-menu__reduced) .status{display:none}\n"], dependencies: [{ kind: "directive", type: i1$3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] }); }
6899
7353
  }
6900
7354
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseExpirationNotificationComponent, decorators: [{
6901
7355
  type: Component,
@@ -7680,7 +8134,7 @@ class GioMenuComponent {
7680
8134
  }
7681
8135
  }
7682
8136
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuComponent, deps: [{ token: GioMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
7683
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioMenuComponent, isStandalone: false, selector: "gio-menu", inputs: { reduced: "reduced" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if ({ reduced: reduce$ | async }; as context) {\n <div class=\"gio-menu\" [class.gio-menu__reduced]=\"context.reduced\" (mouseleave)=\"onMouseLeave(context.reduced)\">\n <ng-content select=\"gio-menu-header\"></ng-content>\n <ng-content select=\"gio-menu-list\"></ng-content>\n <ng-content select=\"gio-menu-license-expiration-notification\"></ng-content>\n <ng-content select=\"gio-menu-footer\"></ng-content>\n <gio-menu-footer>\n <gio-menu-item\n tabIndex=\"1\"\n type=\"button\"\n class=\"gio-menu-footer__collapse\"\n [icon]=\"context.reduced ? 'gio:expande' : 'gio:collapse'\"\n (click)=\"reduceMenu(context.reduced)\"\n [outlined]=\"true\"\n >Collapse menu</gio-menu-item\n >\n </gio-menu-footer>\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-menu{display:flex;width:224px;height:100%;flex-direction:column;justify-content:flex-start;padding:16px 0 0;background:var(--gio-oem-palette--background, #1e1b1b)}.gio-menu__reduced{width:76px}\n"], dependencies: [{ kind: "component", type: GioMenuItemComponent, selector: "gio-menu-item", inputs: ["icon", "iconRight", "active", "outlined"] }, { kind: "component", type: GioMenuFooterComponent, selector: "gio-menu-footer" }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
8137
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioMenuComponent, isStandalone: false, selector: "gio-menu", inputs: { reduced: "reduced" }, usesOnChanges: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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@if ({ reduced: reduce$ | async }; as context) {\n <div class=\"gio-menu\" [class.gio-menu__reduced]=\"context.reduced\" (mouseleave)=\"onMouseLeave(context.reduced)\">\n <ng-content select=\"gio-menu-header\"></ng-content>\n <ng-content select=\"gio-menu-list\"></ng-content>\n <ng-content select=\"gio-menu-license-expiration-notification\"></ng-content>\n <ng-content select=\"gio-menu-footer\"></ng-content>\n <gio-menu-footer>\n <gio-menu-item\n tabIndex=\"1\"\n type=\"button\"\n class=\"gio-menu-footer__collapse\"\n [icon]=\"context.reduced ? 'gio:expande' : 'gio:collapse'\"\n (click)=\"reduceMenu(context.reduced)\"\n [outlined]=\"true\"\n >Collapse menu</gio-menu-item\n >\n </gio-menu-footer>\n </div>\n}\n", styles: ["@charset \"UTF-8\";.gio-menu{display:flex;width:224px;height:100%;flex-direction:column;justify-content:flex-start;padding:16px 0 0;background:var(--gio-oem-palette--background, #1e1b1b)}.gio-menu__reduced{width:76px}\n"], dependencies: [{ kind: "component", type: GioMenuItemComponent, selector: "gio-menu-item", inputs: ["icon", "iconRight", "active", "outlined"] }, { kind: "component", type: GioMenuFooterComponent, selector: "gio-menu-footer" }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }], encapsulation: i0.ViewEncapsulation.None }); }
7684
8138
  }
7685
8139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuComponent, decorators: [{
7686
8140
  type: Component,
@@ -7886,7 +8340,7 @@ class GioMenuSearchComponent {
7886
8340
  return value.toLowerCase().replace(/\s/g, '');
7887
8341
  }
7888
8342
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuSearchComponent, deps: [{ token: GioMenuSearchService }], target: i0.ɵɵFactoryTarget.Component }); }
7889
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioMenuSearchComponent, isStandalone: false, selector: "gio-menu-search", outputs: { valueChanges: "valueChanges" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<form>\n <div class=\"gio-menu-search\">\n <div class=\"gio-menu-search__input-container\">\n <input\n matInput\n class=\"gio-menu-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keydown.enter)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"gio-menu-search__icon-container\">\n <mat-icon svgIcon=\"gio:search\" class=\"gio-menu-search__icon\"></mat-icon>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"192\"\n [hideSingleSelectionIndicator]=\"true\"\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onSelectionChange($event)\"\n >\n @for (item of filteredItems$ | async; track item) {\n <mat-option [value]=\"item\">\n <div class=\"gio-menu-search__item\">\n <div class=\"gio-menu-search__item__name\">{{ item.name }}</div>\n <div class=\"gio-menu-search__item__category\">{{ item.category }}</div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n</form>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-menu-search{display:flex;flex-direction:row;border:3px solid color-mix(in srgb,var(--gio-oem-palette--background, #1e1b1b) 75%,var(--gio-oem-palette--background-contrast, #fff));border-radius:4px;margin-bottom:16px}.gio-menu-search__input-container,.gio-menu-search__icon-container{display:flex;height:44px;align-items:center}.gio-menu-search__input-container{width:160px}.gio-menu-search__icon-container{width:32px}.gio-menu-search__input{width:100%;flex:1;padding:14px 10px;border:none;background-color:transparent;color:var(--gio-oem-palette--background-contrast, #fff);outline:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-menu-search__input::placeholder{color:var(--gio-oem-palette--background-contrast, #fff)}.gio-menu-search__icon{color:#b2aaa9}.gio-menu-search__item{display:flex;height:55px;flex-direction:column;justify-content:center}.gio-menu-search__item__name{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-menu-search__item__category{color:#fe733f;font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}\n"], dependencies: [{ kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$2.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1$4.AsyncPipe, name: "async" }] }); }
8343
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "20.3.3", type: GioMenuSearchComponent, isStandalone: false, selector: "gio-menu-search", outputs: { valueChanges: "valueChanges" }, ngImport: i0, template: "<!--\n\n Copyright (C) 2025 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<form>\n <div class=\"gio-menu-search\">\n <div class=\"gio-menu-search__input-container\">\n <input\n matInput\n class=\"gio-menu-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keydown.enter)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"gio-menu-search__icon-container\">\n <mat-icon svgIcon=\"gio:search\" class=\"gio-menu-search__icon\"></mat-icon>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"192\"\n [hideSingleSelectionIndicator]=\"true\"\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onSelectionChange($event)\"\n >\n @for (item of filteredItems$ | async; track item) {\n <mat-option [value]=\"item\">\n <div class=\"gio-menu-search__item\">\n <div class=\"gio-menu-search__item__name\">{{ item.name }}</div>\n <div class=\"gio-menu-search__item__category\">{{ item.category }}</div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n</form>\n", styles: ["@charset \"UTF-8\";.gio-top-bar-menu .gio-badge-accent{background-color:var(--gio-oem-palette--active, #ffc2ac);color:var(--gio-oem-palette--active-contrast, #1e1b1b)}.gio-menu-search{display:flex;flex-direction:row;border:3px solid color-mix(in srgb,var(--gio-oem-palette--background, #1e1b1b) 75%,var(--gio-oem-palette--background-contrast, #fff));border-radius:4px;margin-bottom:16px}.gio-menu-search__input-container,.gio-menu-search__icon-container{display:flex;height:44px;align-items:center}.gio-menu-search__input-container{width:160px}.gio-menu-search__icon-container{width:32px}.gio-menu-search__input{width:100%;flex:1;padding:14px 10px;border:none;background-color:transparent;color:var(--gio-oem-palette--background-contrast, #fff);outline:none;font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-menu-search__input::placeholder{color:var(--gio-oem-palette--background-contrast, #fff)}.gio-menu-search__icon{color:#b2aaa9}.gio-menu-search__item{display:flex;height:55px;flex-direction:column;justify-content:center}.gio-menu-search__item__name{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px}.gio-menu-search__item__category{color:#fe733f;font-size:12px;font-weight:400;line-height:16px;font-family:Manrope,sans-serif;letter-spacing:normal}\n"], dependencies: [{ kind: "component", type: i5.MatAutocomplete, selector: "mat-autocomplete", inputs: ["aria-label", "aria-labelledby", "displayWith", "autoActiveFirstOption", "autoSelectActiveOption", "requireSelection", "panelWidth", "disableRipple", "class", "hideSingleSelectionIndicator"], outputs: ["optionSelected", "opened", "closed", "optionActivated"], exportAs: ["matAutocomplete"] }, { kind: "component", type: i5.MatOption, selector: "mat-option", inputs: ["value", "id", "disabled"], outputs: ["onSelectionChange"], exportAs: ["matOption"] }, { kind: "directive", type: i5.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", inputs: ["matAutocomplete", "matAutocompletePosition", "matAutocompleteConnectedTo", "autocomplete", "matAutocompleteDisabled"], exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i2$3.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly", "disabledInteractive"], exportAs: ["matInput"] }, { kind: "directive", type: i1$2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$2.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$2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { kind: "pipe", type: i1$3.AsyncPipe, name: "async" }] }); }
7890
8344
  }
7891
8345
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuSearchComponent, decorators: [{
7892
8346
  type: Component,
@@ -8498,6 +8952,40 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
8498
8952
  * limitations under the License.
8499
8953
  */
8500
8954
 
8955
+ /*
8956
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
8957
+ *
8958
+ * Licensed under the Apache License, Version 2.0 (the "License");
8959
+ * you may not use this file except in compliance with the License.
8960
+ * You may obtain a copy of the License at
8961
+ *
8962
+ * http://www.apache.org/licenses/LICENSE-2.0
8963
+ *
8964
+ * Unless required by applicable law or agreed to in writing, software
8965
+ * distributed under the License is distributed on an "AS IS" BASIS,
8966
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
8967
+ * See the License for the specific language governing permissions and
8968
+ * limitations under the License.
8969
+ */
8970
+ const computeStyles = (theme) => {
8971
+ const backgroundStyle = computeStyleAndContrastByPrefix('background', theme.menuBackground);
8972
+ const activeStyle = computeStyleAndContrastByPrefix('active', theme.menuActive);
8973
+ let subMenu = [];
8974
+ // If the menu background is defined, then define the sub-menu color
8975
+ if (theme.menuBackground) {
8976
+ subMenu = [{ key: `--gio-oem-palette--sub-menu`, value: `color-mix(in srgb, ${theme.menuBackground} 80%, black)` }];
8977
+ }
8978
+ return [...backgroundStyle, ...activeStyle, ...subMenu];
8979
+ };
8980
+ const computeStyleAndContrastByPrefix = (prefix, color) => {
8981
+ if (!color) {
8982
+ return [];
8983
+ }
8984
+ const paletteColor = { key: `--gio-oem-palette--${prefix}`, value: color };
8985
+ const paletteColorContrast = { key: `--gio-oem-palette--${prefix}-contrast`, value: '#fff' };
8986
+ return [paletteColor, paletteColorContrast];
8987
+ };
8988
+
8501
8989
  /*
8502
8990
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
8503
8991
  *
@@ -8663,5 +9151,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
8663
9151
  * Generated bundle index. Do not edit.
8664
9152
  */
8665
9153
 
8666
- export { ConfigureTestingGioMonacoEditor, GIO_DIALOG_WIDTH, GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR, GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBaseFormFocusInvalidDirective, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioButtonFocusInvalidButtonDirective, GioCardEmptyStateComponent, GioCardEmptyStateModule, GioClipboardCopyIconComponent, GioClipboardCopyWrapperComponent, GioClipboardModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioElAssistantComponent, GioElPromptComponent, GioElService, GioFormCronComponent, GioFormCronHarness, GioFormCronHintComponent, GioFormCronLabelComponent, GioFormCronModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormFocusInvalidFormDirective, GioFormFocusInvalidIgnoreDirective, GioFormFocusInvalidModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersLabelComponent, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSelectionInlineCardComponent, GioFormSelectionInlineCardContentComponent, GioFormSelectionInlineCardHarness, GioFormSelectionInlineCardSubtitleComponent, GioFormSelectionInlineCardTitleComponent, GioFormSelectionInlineComponent, GioFormSelectionInlineHarness, GioFormSelectionInlineModule, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioLicenseDialogComponent, GioLicenseDialogModule, GioLicenseDirective, GioLicenseExpirationNotificationComponent, GioLicenseExpirationNotificationHarness, GioLicenseExpirationNotificationModule, GioLicenseModule, GioLicenseService, GioLicenseTestingModule, GioLoaderComponent, GioLoaderModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuLicenseExpirationNotificationComponent, GioMenuListComponent, GioMenuModule, GioMenuSearchComponent, GioMenuSearchHarness, GioMenuSearchService, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioMonacoClipboardCopyComponent, GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoEditorHarness, GioMonacoEditorModule, GioPopoverComponent, GioPrismJsService, GioSafePipeModule, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, LICENSE_CONFIGURATION_TESTING, NewFile, OEM_LICENSE_CONFIGURATION_TESTING, PopoverTriggerDirective, SafePipe, cleanLocalStorageReduceState, isFormHeaderElConfig, isLicensePluginOptions, isPromptError, isPromptSuccess };
9154
+ export { ConfigureTestingGioMonacoEditor, GIO_DIALOG_WIDTH, GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR, GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBaseFormFocusInvalidDirective, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioButtonFocusInvalidButtonDirective, GioCardEmptyStateComponent, GioCardEmptyStateModule, GioClipboardCopyIconComponent, GioClipboardCopyWrapperComponent, GioClipboardModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioElAssistantComponent, GioElPromptComponent, GioElService, GioFormAutocompleteInputComponent, GioFormAutocompleteInputHarness, GioFormAutocompleteInputModule, GioFormCronComponent, GioFormCronHarness, GioFormCronHintComponent, GioFormCronLabelComponent, GioFormCronModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormFocusInvalidFormDirective, GioFormFocusInvalidIgnoreDirective, GioFormFocusInvalidModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersLabelComponent, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSelectionInlineCardComponent, GioFormSelectionInlineCardContentComponent, GioFormSelectionInlineCardHarness, GioFormSelectionInlineCardSubtitleComponent, GioFormSelectionInlineCardTitleComponent, GioFormSelectionInlineComponent, GioFormSelectionInlineHarness, GioFormSelectionInlineModule, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioLicenseDialogComponent, GioLicenseDialogModule, GioLicenseDirective, GioLicenseExpirationNotificationComponent, GioLicenseExpirationNotificationHarness, GioLicenseExpirationNotificationModule, GioLicenseModule, GioLicenseService, GioLicenseTestingModule, GioLoaderComponent, GioLoaderModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuLicenseExpirationNotificationComponent, GioMenuListComponent, GioMenuModule, GioMenuSearchComponent, GioMenuSearchHarness, GioMenuSearchService, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioMonacoClipboardCopyComponent, GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoEditorHarness, GioMonacoEditorModule, GioPopoverComponent, GioPrismJsService, GioSafePipeModule, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, LICENSE_CONFIGURATION_TESTING, NewFile, OEM_LICENSE_CONFIGURATION_TESTING, PopoverTriggerDirective, SafePipe, cleanLocalStorageReduceState, computeStyles, isFormHeaderElConfig, isLicensePluginOptions, isPromptError, isPromptSuccess };
8667
9155
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map