@gravitee/ui-particles-angular 16.2.1-apim-11674-edit-ps-flows-for-llm-proxy-778b797 → 16.2.1-apim-11833-llm-proxy-ui-does-not-match-designs-2eb195a

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, debounceTime, takeUntil, filter, take, shareReplay, catchError, debounce } from 'rxjs/operators';
5
+ import { delay, tap, startWith, switchMap, map, distinctUntilChanged, takeUntil, filter, take, debounceTime, 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$3 from '@angular/common';
10
+ import * as i1$4 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 i2$1 from '@angular/cdk/a11y';
18
+ import * as i1$3 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$3 from '@angular/material/input';
26
+ import * as i2$2 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$2 from '@angular/platform-browser';
30
+ import * as i2$1 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 { MatInputHarness } from '@angular/material/input/testing';
34
- import * as i1$4 from '@angular/material/dialog';
33
+ import * as i1$5 from '@angular/material/dialog';
35
34
  import { MAT_DIALOG_DATA, MatDialogModule } from '@angular/material/dialog';
36
35
  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$4 from '@angular/material/tooltip';
40
+ import * as i2$3 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$5 from '@angular/cdk/clipboard';
44
+ import * as i1$6 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$6 from '@ngx-formly/core/json-schema';
52
- import * as i1$7 from '@ngx-formly/core';
51
+ import * as i1$7 from '@ngx-formly/core/json-schema';
52
+ import * as i1$8 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$8 from '@angular/common/http';
61
+ import * as i1$9 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$1(options)),
528
+ return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(map(options => sanitizeAutocompleteOptions(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$1(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));
538
+ return of(defaultAutocompleteFilter(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: i2$1.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: i1$3.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$3.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$4.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: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }], propDecorators: { ariaLabel: [{
565
+ }] }, { type: i0.ElementRef }, { type: i1$3.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$1 = (options, search) => {
599
+ const defaultAutocompleteFilter = (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$1(options)
604
+ return sanitizeAutocompleteOptions(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$1 = (options) => {
611
+ const sanitizeAutocompleteOptions = (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$2.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$1.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$2.DomSanitizer }] });
666
+ }], ctorParameters: () => [{ type: i1$1.MatIconRegistry }, { type: i2$1.DomSanitizer }] });
667
667
 
668
668
  /*
669
669
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
@@ -828,460 +828,6 @@ 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
-
1285
831
  /*
1286
832
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
1287
833
  *
@@ -1490,13 +1036,13 @@ class GioConfirmDialogComponent {
1490
1036
  this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';
1491
1037
  this.disableCancel = confirmDialogData?.disableCancel ?? false;
1492
1038
  }
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]" }] }); }
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]" }] }); }
1495
1041
  }
1496
1042
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmDialogComponent, decorators: [{
1497
1043
  type: Component,
1498
1044
  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"] }]
1499
- }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: undefined, decorators: [{
1045
+ }], ctorParameters: () => [{ type: i1$5.MatDialogRef }, { type: undefined, decorators: [{
1500
1046
  type: Inject,
1501
1047
  args: [MAT_DIALOG_DATA]
1502
1048
  }] }, { type: i0.Injector }] });
@@ -1600,7 +1146,7 @@ class GioConfirmAndValidateDialogComponent {
1600
1146
  this.isValid = toLower(confirmValue) === toLower(this.validationValue);
1601
1147
  }
1602
1148
  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 }); }
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" }] }); }
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" }] }); }
1604
1150
  }
1605
1151
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioConfirmAndValidateDialogComponent, decorators: [{
1606
1152
  type: Component,
@@ -1803,12 +1349,12 @@ class GioClipboardComponent {
1803
1349
  this.onCopied(true, this.tooltip);
1804
1350
  }
1805
1351
  }
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 }); }
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 }); }
1807
1353
  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 }); }
1808
1354
  }
1809
1355
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardComponent, decorators: [{
1810
1356
  type: Directive
1811
- }], ctorParameters: () => [{ type: i1$5.Clipboard }], propDecorators: { tooltip: [{
1357
+ }], ctorParameters: () => [{ type: i1$6.Clipboard }], propDecorators: { tooltip: [{
1812
1358
  type: ViewChild,
1813
1359
  args: ['tooltip']
1814
1360
  }], contentToCopy: [{
@@ -1856,7 +1402,7 @@ class GioClipboardCopyWrapperComponent extends GioClipboardComponent {
1856
1402
  >
1857
1403
  <mat-icon [inline]="true">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
1858
1404
  </button>
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"] }] }); }
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"] }] }); }
1860
1406
  }
1861
1407
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardCopyWrapperComponent, decorators: [{
1862
1408
  type: Component,
@@ -1918,7 +1464,7 @@ class GioClipboardCopyIconComponent extends GioClipboardComponent {
1918
1464
  >
1919
1465
  <mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>
1920
1466
  </button>
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"] }] }); }
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"] }] }); }
1922
1468
  }
1923
1469
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioClipboardCopyIconComponent, decorators: [{
1924
1470
  type: Component,
@@ -2040,7 +1586,7 @@ class GioElPromptComponent {
2040
1586
  }
2041
1587
  }
2042
1588
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioElPromptComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
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 }); }
2044
1590
  }
2045
1591
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioElPromptComponent, decorators: [{
2046
1592
  type: Component,
@@ -2490,7 +2036,7 @@ class GioFormHeadersComponent {
2490
2036
  const filterValue = value.toLowerCase();
2491
2037
  return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));
2492
2038
  }
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 }); }
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 }); }
2494
2040
  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: [
2495
2041
  {
2496
2042
  provide: NG_VALUE_ACCESSOR,
@@ -2502,7 +2048,7 @@ class GioFormHeadersComponent {
2502
2048
  useExisting: forwardRef(() => GioFormHeadersComponent),
2503
2049
  multi: true,
2504
2050
  },
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" }] }); }
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" }] }); }
2506
2052
  }
2507
2053
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormHeadersComponent, decorators: [{
2508
2054
  type: Component,
@@ -2518,7 +2064,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
2518
2064
  multi: true,
2519
2065
  },
2520
2066
  ], 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"] }]
2521
- }], ctorParameters: () => [{ type: i2$1.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { headerFieldMapper: [{
2067
+ }], ctorParameters: () => [{ type: i1$3.FocusMonitor }, { type: i0.ElementRef }], propDecorators: { headerFieldMapper: [{
2522
2068
  type: Input
2523
2069
  }], config: [{
2524
2070
  type: Input
@@ -2928,7 +2474,7 @@ class GioFormFilePickerComponent {
2928
2474
  this.onChangeCallback(this.fileValues.map(fileValue => fileValue.isNew ? new NewFile(fileValue.name, fileValue.dataUrl, fileValue.file) : fileValue.dataUrl));
2929
2475
  }
2930
2476
  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 }); }
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 }); }
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 }); }
2932
2478
  }
2933
2479
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormFilePickerComponent, decorators: [{
2934
2480
  type: Component,
@@ -3275,7 +2821,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
3275
2821
  */
3276
2822
  class GioBreadcrumbComponent {
3277
2823
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioBreadcrumbComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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"] }] }); }
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"] }] }); }
3279
2825
  }
3280
2826
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioBreadcrumbComponent, decorators: [{
3281
2827
  type: Component,
@@ -3418,9 +2964,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
3418
2964
  * limitations under the License.
3419
2965
  */
3420
2966
  class GioFormlyJsonSchemaService {
3421
- constructor(formlyJsonschema, builder) {
2967
+ constructor(formlyJsonschema) {
3422
2968
  this.formlyJsonschema = formlyJsonschema;
3423
- this.builder = builder;
3424
2969
  }
3425
2970
  toFormlyFieldConfig(jsonSchema, context) {
3426
2971
  return this.formlyJsonschema.toFieldConfig(jsonSchema, {
@@ -3470,6 +3015,7 @@ class GioFormlyJsonSchemaService {
3470
3015
  mappedField = {
3471
3016
  key: mappedField.key,
3472
3017
  type: mapSource.gioConfig?.uiType,
3018
+ wrappers: ['gio-currency-prefix'],
3473
3019
  props: {
3474
3020
  ...mappedField.props,
3475
3021
  ...mapSource.gioConfig?.uiTypeProps,
@@ -3526,6 +3072,15 @@ class GioFormlyJsonSchemaService {
3526
3072
  },
3527
3073
  };
3528
3074
  }
3075
+ if (mapSource.gioConfig?.currency) {
3076
+ mappedField.props = {
3077
+ ...mappedField.props,
3078
+ attributes: {
3079
+ ...mappedField.props?.attributes,
3080
+ currency: 1,
3081
+ },
3082
+ };
3083
+ }
3529
3084
  return mappedField;
3530
3085
  }
3531
3086
  bannerMap(mappedField, mapSource) {
@@ -3628,12 +3183,12 @@ class GioFormlyJsonSchemaService {
3628
3183
  }
3629
3184
  return mappedField;
3630
3185
  }
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 }); }
3186
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService, deps: [{ token: i1$7.FormlyJsonschema }], target: i0.ɵɵFactoryTarget.Injectable }); }
3632
3187
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService }); }
3633
3188
  }
3634
3189
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormlyJsonSchemaService, decorators: [{
3635
3190
  type: Injectable
3636
- }], ctorParameters: () => [{ type: i1$6.FormlyJsonschema }, { type: i1$7.FormlyFormBuilder }] });
3191
+ }], ctorParameters: () => [{ type: i1$7.FormlyJsonschema }] });
3637
3192
  const getBannerProperties = (banner) => {
3638
3193
  return {
3639
3194
  bannerText: banner.text,
@@ -3831,12 +3386,12 @@ class GioFormJsonSchemaComponent {
3831
3386
  }, 0);
3832
3387
  this.stateChanges$.next();
3833
3388
  }
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 }); }
3389
+ 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 }); }
3835
3390
  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: `
3836
3391
  @if (formGroup) {
3837
3392
  <formly-form [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>
3838
3393
  }
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 }); }
3394
+ `, isInline: true, styles: [""], dependencies: [{ kind: "component", type: i1$8.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush }); }
3840
3395
  }
3841
3396
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
3842
3397
  type: Component,
@@ -3845,7 +3400,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
3845
3400
  <formly-form [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>
3846
3401
  }
3847
3402
  `, changeDetection: ChangeDetectionStrategy.OnPush, standalone: false }]
3848
- }], ctorParameters: () => [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i1$2.NgControl, decorators: [{
3403
+ }], ctorParameters: () => [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.ChangeDetectorRef }, { type: i1$2.NgControl, decorators: [{
3849
3404
  type: Host
3850
3405
  }, {
3851
3406
  type: Optional
@@ -4763,7 +4318,7 @@ class GioMonacoEditorComponent {
4763
4318
  @if (loaded$ | async) {
4764
4319
  <div>Loading...</div>
4765
4320
  }
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 }); }
4321
+ `, 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 }); }
4767
4322
  }
4768
4323
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
4769
4324
  type: Component,
@@ -4903,7 +4458,7 @@ class GioMonacoEditorFormFieldDirective {
4903
4458
  this.hostGioMonacoEditorComponent.standaloneCodeEditor?.focus();
4904
4459
  }
4905
4460
  }
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 }); }
4461
+ 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 }); }
4907
4462
  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: [
4908
4463
  {
4909
4464
  provide: MatFormFieldControl,
@@ -4923,7 +4478,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
4923
4478
  ],
4924
4479
  standalone: false,
4925
4480
  }]
4926
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: GioMonacoEditorComponent, decorators: [{
4481
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: GioMonacoEditorComponent, decorators: [{
4927
4482
  type: Host
4928
4483
  }, {
4929
4484
  type: Self
@@ -5410,7 +4965,7 @@ class GioFormCronComponent {
5410
4965
  }, { emitEvent: false });
5411
4966
  }
5412
4967
  }
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 }); }
4968
+ 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 }); }
5414
4969
  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: [
5415
4970
  {
5416
4971
  provide: NG_VALUE_ACCESSOR,
@@ -5422,7 +4977,7 @@ class GioFormCronComponent {
5422
4977
  useExisting: forwardRef(() => GioFormCronComponent),
5423
4978
  multi: true,
5424
4979
  },
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"] }] }); }
4980
+ ], 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"] }] }); }
5426
4981
  }
5427
4982
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFormCronComponent, decorators: [{
5428
4983
  type: Component,
@@ -5438,7 +4993,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
5438
4993
  multi: true,
5439
4994
  },
5440
4995
  ], 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"] }]
5441
- }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i2$1.FocusMonitor }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { isDisabled: [{
4996
+ }], ctorParameters: () => [{ type: i0.ElementRef }, { type: i1$3.FocusMonitor }, { type: i0.NgZone }, { type: i0.ChangeDetectorRef }], propDecorators: { isDisabled: [{
5442
4997
  type: HostBinding,
5443
4998
  args: ['class.disabled']
5444
4999
  }], smallDisplay: [{
@@ -5630,7 +5185,7 @@ class GioFjsObjectTypeComponent extends FieldType {
5630
5185
  }
5631
5186
  </div>
5632
5187
  </div>
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"] }] }); }
5188
+ `, 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"] }] }); }
5634
5189
  }
5635
5190
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
5636
5191
  type: Component,
@@ -5732,7 +5287,7 @@ class GioFjsArrayTypeComponent extends FieldArrayType {
5732
5287
  </div>
5733
5288
  </div>
5734
5289
  </div>
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"] }] }); }
5290
+ `, 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"] }] }); }
5736
5291
  }
5737
5292
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
5738
5293
  type: Component,
@@ -5850,6 +5405,50 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
5850
5405
  args: [{ selector: 'gio-banner-wrapper', standalone: false, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"wrapper\">\n <div class=\"banner\">\n <div class=\"banner__icon\"><mat-icon svgIcon=\"gio:info\"></mat-icon></div>\n <div>\n <div class=\"banner__title\" [innerHTML]=\"props.bannerTitle\"></div>\n <div class=\"banner__text\" [innerHTML]=\"props.bannerText\"></div>\n </div>\n </div>\n <ng-container #fieldComponent></ng-container>\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)}::ng-deep gio-banner-wrapper ul{padding-inline-start:16px}.wrapper{padding:8px 0}.banner{display:flex;flex-direction:row;align-items:flex-start;padding:8px;border-radius:8px;margin-bottom:8px;background:#f7f7f8;gap:8px}.banner__icon{padding-top:2px}.banner__icon mat-icon{width:16px;height:16px;color:#da3b00}.banner__title{font-size:14px;font-weight:700;line-height:20px;font-family:Manrope,sans-serif;letter-spacing:.4px}.banner__text{font-size:14px;font-weight:500;line-height:22px;font-family:Manrope,sans-serif;letter-spacing:.4px;color:#322f2f}\n"] }]
5851
5406
  }] });
5852
5407
 
5408
+ /*
5409
+ * Copyright (C) 2025 The Gravitee team (http://gravitee.io)
5410
+ *
5411
+ * Licensed under the Apache License, Version 2.0 (the "License");
5412
+ * you may not use this file except in compliance with the License.
5413
+ * You may obtain a copy of the License at
5414
+ *
5415
+ * http://www.apache.org/licenses/LICENSE-2.0
5416
+ *
5417
+ * Unless required by applicable law or agreed to in writing, software
5418
+ * distributed under the License is distributed on an "AS IS" BASIS,
5419
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
5420
+ * See the License for the specific language governing permissions and
5421
+ * limitations under the License.
5422
+ */
5423
+ class GioCurrencyPrefixWrapperComponent extends FieldWrapper {
5424
+ constructor() {
5425
+ super(...arguments);
5426
+ this.hide = true;
5427
+ }
5428
+ ngAfterViewInit() {
5429
+ if (this.matPrefix) {
5430
+ this.props.prefix = this.matPrefix;
5431
+ }
5432
+ }
5433
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioCurrencyPrefixWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component }); }
5434
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "20.3.3", type: GioCurrencyPrefixWrapperComponent, isStandalone: false, selector: "gio-currency-prefix-wrapper", viewQueries: [{ propertyName: "matPrefix", first: true, predicate: ["matPrefix"], descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-container #fieldComponent></ng-container>\n\n<ng-template #matPrefix>\n <span class=\"currency-prefix\">&nbsp; $</span>\n</ng-template>\n", styles: [".currency-prefix{margin-left:8px;color:#0009}\n"] }); }
5435
+ }
5436
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioCurrencyPrefixWrapperComponent, decorators: [{
5437
+ type: Component,
5438
+ args: [{ selector: 'gio-currency-prefix-wrapper', standalone: false, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-container #fieldComponent></ng-container>\n\n<ng-template #matPrefix>\n <span class=\"currency-prefix\">&nbsp; $</span>\n</ng-template>\n", styles: [".currency-prefix{margin-left:8px;color:#0009}\n"] }]
5439
+ }], propDecorators: { matPrefix: [{
5440
+ type: ViewChild,
5441
+ args: ['matPrefix', { static: true }]
5442
+ }] } });
5443
+ function currencyPrefixExtension(field) {
5444
+ /*if (field.props?.attributes?.currency) {
5445
+ field.wrappers = [...(field.wrappers || []), 'gio-currency-prefix'];
5446
+ }*/
5447
+ if (field.props?.attributes?.currency) {
5448
+ field.wrappers = [...(field.wrappers || []), 'gio-currency-prefix'];
5449
+ }
5450
+ }
5451
+
5853
5452
  function bannerExtension(field) {
5854
5453
  if (!field.props || (field.wrappers && field.wrappers.indexOf('gio-with-banner') !== -1)) {
5855
5454
  return;
@@ -5911,7 +5510,7 @@ class GioFjsMultiSchemaTypeComponent extends FieldType {
5911
5510
  <formly-field [field]="f"></formly-field>
5912
5511
  }
5913
5512
  </div>
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"] }] }); }
5513
+ `, 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"] }] }); }
5915
5514
  }
5916
5515
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, decorators: [{
5917
5516
  type: Component,
@@ -5964,7 +5563,7 @@ class GioFjsToggleTypeComponent extends FieldType {
5964
5563
  [tabIndex]="props.tabindex"
5965
5564
  ></mat-slide-toggle>
5966
5565
  </gio-form-slide-toggle>
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"] }] }); }
5566
+ `, 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"] }] }); }
5968
5567
  }
5969
5568
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsToggleTypeComponent, decorators: [{
5970
5569
  type: Component,
@@ -6050,7 +5649,7 @@ class GioFjsHeadersTypeComponent extends FieldType {
6050
5649
  </div>
6051
5650
  }
6052
5651
  </div>
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"] }] }); }
5652
+ `, 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"] }] }); }
6054
5653
  }
6055
5654
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
6056
5655
  type: Component,
@@ -6324,9 +5923,10 @@ class GioFormJsonSchemaModule {
6324
5923
  GioFjsCronTypeComponent,
6325
5924
  GioBannerWrapperComponent,
6326
5925
  GioPasswordEyeWrapperComponent,
6327
- GioElHelperWrapperComponent], imports: [CommonModule,
5926
+ GioElHelperWrapperComponent,
5927
+ GioCurrencyPrefixWrapperComponent], imports: [CommonModule,
6328
5928
  A11yModule,
6329
- ReactiveFormsModule, i1$7.FormlyModule, FormlyMaterialModule,
5929
+ ReactiveFormsModule, i1$8.FormlyModule, FormlyMaterialModule,
6330
5930
  MatInputModule,
6331
5931
  GioIconsModule,
6332
5932
  GioFormSlideToggleModule,
@@ -6361,6 +5961,7 @@ class GioFormJsonSchemaModule {
6361
5961
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },
6362
5962
  { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },
6363
5963
  { name: 'gio-el-help', component: GioElHelperWrapperComponent },
5964
+ { name: 'gio-currency-prefix', component: GioCurrencyPrefixWrapperComponent },
6364
5965
  ],
6365
5966
  types: [
6366
5967
  { name: 'null', component: GioFjsNullTypeComponent, wrappers: ['form-field'] },
@@ -6389,6 +5990,7 @@ class GioFormJsonSchemaModule {
6389
5990
  { name: 'banner', extension: { onPopulate: bannerExtension } },
6390
5991
  { name: 'password-eye', extension: { onPopulate: passwordEyeExtension } },
6391
5992
  { name: 'el-help', extension: { onPopulate: elHelpExtension } },
5993
+ { name: 'gio-currency-prefix', extension: { onPopulate: currencyPrefixExtension } },
6392
5994
  ],
6393
5995
  extras: {
6394
5996
  checkExpressionOn: 'changeDetectionCheck',
@@ -6425,6 +6027,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6425
6027
  GioBannerWrapperComponent,
6426
6028
  GioPasswordEyeWrapperComponent,
6427
6029
  GioElHelperWrapperComponent,
6030
+ GioCurrencyPrefixWrapperComponent,
6428
6031
  ],
6429
6032
  imports: [
6430
6033
  CommonModule,
@@ -6451,6 +6054,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6451
6054
  { name: 'gio-with-banner', component: GioBannerWrapperComponent },
6452
6055
  { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },
6453
6056
  { name: 'gio-el-help', component: GioElHelperWrapperComponent },
6057
+ { name: 'gio-currency-prefix', component: GioCurrencyPrefixWrapperComponent },
6454
6058
  ],
6455
6059
  types: [
6456
6060
  { name: 'null', component: GioFjsNullTypeComponent, wrappers: ['form-field'] },
@@ -6479,6 +6083,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6479
6083
  { name: 'banner', extension: { onPopulate: bannerExtension } },
6480
6084
  { name: 'password-eye', extension: { onPopulate: passwordEyeExtension } },
6481
6085
  { name: 'el-help', extension: { onPopulate: elHelpExtension } },
6086
+ { name: 'gio-currency-prefix', extension: { onPopulate: currencyPrefixExtension } },
6482
6087
  ],
6483
6088
  extras: {
6484
6089
  checkExpressionOn: 'changeDetectionCheck',
@@ -6881,7 +6486,7 @@ class SafePipe {
6881
6486
  throw new Error(`Invalid safe type specified: ${type}`);
6882
6487
  }
6883
6488
  }
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 }); }
6489
+ 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 }); }
6885
6490
  static { this.ɵpipe = i0.ɵɵngDeclarePipe({ minVersion: "14.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, isStandalone: false, name: "safe" }); }
6886
6491
  }
6887
6492
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: SafePipe, decorators: [{
@@ -6890,7 +6495,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
6890
6495
  name: 'safe',
6891
6496
  standalone: false,
6892
6497
  }]
6893
- }], ctorParameters: () => [{ type: i2$2.DomSanitizer }] });
6498
+ }], ctorParameters: () => [{ type: i2$1.DomSanitizer }] });
6894
6499
 
6895
6500
  /*
6896
6501
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -6945,13 +6550,13 @@ class GioLicenseDialogComponent {
6945
6550
  onClose() {
6946
6551
  this.dialogRef.close();
6947
6552
  }
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" }] }); }
6553
+ 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 }); }
6554
+ 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" }] }); }
6950
6555
  }
6951
6556
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDialogComponent, decorators: [{
6952
6557
  type: Component,
6953
6558
  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"] }]
6954
- }], ctorParameters: () => [{ type: i1$4.MatDialogRef }, { type: undefined, decorators: [{
6559
+ }], ctorParameters: () => [{ type: i1$5.MatDialogRef }, { type: undefined, decorators: [{
6955
6560
  type: Inject,
6956
6561
  args: [MAT_DIALOG_DATA]
6957
6562
  }] }] });
@@ -7036,7 +6641,7 @@ class GioLicenseService {
7036
6641
  isExpired$() {
7037
6642
  return this.getLicense$().pipe(map(license => license?.isExpired === true));
7038
6643
  }
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 }); }
6644
+ 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 }); }
7040
6645
  static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, providedIn: 'root' }); }
7041
6646
  }
7042
6647
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseService, decorators: [{
@@ -7044,10 +6649,10 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
7044
6649
  args: [{
7045
6650
  providedIn: 'root',
7046
6651
  }]
7047
- }], ctorParameters: () => [{ type: i1$8.HttpClient }, { type: undefined, decorators: [{
6652
+ }], ctorParameters: () => [{ type: i1$9.HttpClient }, { type: undefined, decorators: [{
7048
6653
  type: Inject,
7049
6654
  args: ['LicenseConfiguration']
7050
- }] }, { type: i1$4.MatDialog }] });
6655
+ }] }, { type: i1$5.MatDialog }] });
7051
6656
 
7052
6657
  /*
7053
6658
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -7119,7 +6724,7 @@ class GioLicenseDirective {
7119
6724
  .subscribe();
7120
6725
  return false;
7121
6726
  }
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 }); }
6727
+ 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 }); }
7123
6728
  static { this.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "14.0.0", version: "20.3.3", type: GioLicenseDirective, isStandalone: false, selector: "[gioLicense]", inputs: { gioLicense: "gioLicense" }, ngImport: i0 }); }
7124
6729
  }
7125
6730
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseDirective, decorators: [{
@@ -7128,7 +6733,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
7128
6733
  selector: '[gioLicense]',
7129
6734
  standalone: false,
7130
6735
  }]
7131
- }], ctorParameters: () => [{ type: GioLicenseService }, { type: i1$4.MatDialog }, { type: i0.ElementRef }], propDecorators: { gioLicense: [{
6736
+ }], ctorParameters: () => [{ type: GioLicenseService }, { type: i1$5.MatDialog }, { type: i0.ElementRef }], propDecorators: { gioLicense: [{
7132
6737
  type: Input
7133
6738
  }] } });
7134
6739
 
@@ -7349,7 +6954,7 @@ class GioLicenseExpirationNotificationComponent {
7349
6954
  return new Date(date.toDateString()).valueOf();
7350
6955
  }
7351
6956
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseExpirationNotificationComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
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"] }] }); }
6957
+ 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"] }] }); }
7353
6958
  }
7354
6959
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioLicenseExpirationNotificationComponent, decorators: [{
7355
6960
  type: Component,
@@ -8134,7 +7739,7 @@ class GioMenuComponent {
8134
7739
  }
8135
7740
  }
8136
7741
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuComponent, deps: [{ token: GioMenuService }], target: i0.ɵɵFactoryTarget.Component }); }
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 }); }
7742
+ 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 }); }
8138
7743
  }
8139
7744
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuComponent, decorators: [{
8140
7745
  type: Component,
@@ -8340,7 +7945,7 @@ class GioMenuSearchComponent {
8340
7945
  return value.toLowerCase().replace(/\s/g, '');
8341
7946
  }
8342
7947
  static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuSearchComponent, deps: [{ token: GioMenuSearchService }], target: i0.ɵɵFactoryTarget.Component }); }
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" }] }); }
7948
+ 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" }] }); }
8344
7949
  }
8345
7950
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImport: i0, type: GioMenuSearchComponent, decorators: [{
8346
7951
  type: Component,
@@ -9151,5 +8756,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "20.3.3", ngImpor
9151
8756
  * Generated bundle index. Do not edit.
9152
8757
  */
9153
8758
 
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 };
8759
+ 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, computeStyles, isFormHeaderElConfig, isLicensePluginOptions, isPromptError, isPromptSuccess };
9155
8760
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map