@gravitee/ui-particles-angular 5.9.0 → 5.10.0-js-toggle-4785329

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (32) hide show
  1. package/esm2020/lib/gio-form-headers/gio-form-headers.component.mjs +11 -4
  2. package/esm2020/lib/gio-form-json-schema/gio-form-json-schema.component.mjs +10 -33
  3. package/esm2020/lib/gio-form-json-schema/gio-form-json-schema.module.mjs +43 -3
  4. package/esm2020/lib/gio-form-json-schema/gio-formly-json-schema.service.mjs +64 -0
  5. package/esm2020/lib/gio-form-json-schema/model/GioJsonSchema.mjs +16 -1
  6. package/esm2020/lib/gio-form-json-schema/type-component/array-type.component.mjs +57 -25
  7. package/esm2020/lib/gio-form-json-schema/type-component/headers-type.component.mjs +93 -0
  8. package/esm2020/lib/gio-form-json-schema/type-component/multischema-type.component.mjs +6 -5
  9. package/esm2020/lib/gio-form-json-schema/type-component/object-type.component.mjs +11 -7
  10. package/esm2020/lib/gio-form-json-schema/type-component/toggle-type.component.mjs +59 -0
  11. package/esm2020/lib/gio-form-slide-toogle/gio-form-label.directive.mjs +49 -0
  12. package/esm2020/lib/gio-form-slide-toogle/gio-form-slide-toggle.component.mjs +69 -0
  13. package/esm2020/lib/gio-form-slide-toogle/gio-form-slide-toggle.module.mjs +35 -0
  14. package/esm2020/lib/public-api.mjs +4 -1
  15. package/fesm2015/gravitee-ui-particles-angular.mjs +458 -67
  16. package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
  17. package/fesm2020/gravitee-ui-particles-angular.mjs +474 -69
  18. package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -1
  19. package/lib/gio-form-headers/gio-form-headers.component.d.ts +4 -2
  20. package/lib/gio-form-json-schema/gio-form-json-schema.component.d.ts +3 -5
  21. package/lib/gio-form-json-schema/gio-form-json-schema.module.d.ts +14 -8
  22. package/lib/gio-form-json-schema/gio-formly-json-schema.service.d.ts +15 -0
  23. package/lib/gio-form-json-schema/model/GioJsonSchema.d.ts +19 -11
  24. package/lib/gio-form-json-schema/type-component/array-type.component.d.ts +1 -0
  25. package/lib/gio-form-json-schema/type-component/headers-type.component.d.ts +19 -0
  26. package/lib/gio-form-json-schema/type-component/toggle-type.component.d.ts +8 -0
  27. package/lib/gio-form-slide-toogle/gio-form-label.directive.d.ts +13 -0
  28. package/lib/gio-form-slide-toogle/gio-form-slide-toggle.component.d.ts +15 -0
  29. package/lib/gio-form-slide-toogle/gio-form-slide-toggle.module.d.ts +9 -0
  30. package/lib/public-api.d.ts +3 -0
  31. package/package.json +1 -1
  32. package/src/scss/mat-override/mat-table.scss +3 -3
@@ -1,6 +1,6 @@
1
1
  import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Component, HostBinding, Input, Output, HostListener, NgModule, Optional, Self, ViewChild, Directive, Inject, forwardRef, ChangeDetectionStrategy, Injectable, ViewEncapsulation, ContentChildren, Host } from '@angular/core';
3
+ import { EventEmitter, Component, HostBinding, Input, Output, HostListener, NgModule, Optional, Self, ViewChild, Directive, Inject, forwardRef, ChangeDetectionStrategy, Injectable, ViewEncapsulation, ContentChildren, Host, ContentChild } from '@angular/core';
4
4
  import { timer, Subject, fromEvent, of, BehaviorSubject } from 'rxjs';
5
5
  import * as i1 from '@angular/material/card';
6
6
  import { MatCardModule } from '@angular/material/card';
@@ -15,7 +15,7 @@ import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS
15
15
  import { isEmpty, toLower, dropRight, isNil, isArray, remove, isObject, cloneDeep, set } from 'lodash';
16
16
  import { startWith, map, distinctUntilChanged, tap, debounce, takeUntil, delay, filter, switchMap } from 'rxjs/operators';
17
17
  import * as i7 from '@angular/forms';
18
- import { FormsModule, FormArray, FormGroup, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule } from '@angular/forms';
18
+ import { FormsModule, FormArray, FormGroup, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, NgControl } from '@angular/forms';
19
19
  import * as i2$2 from '@angular/cdk/a11y';
20
20
  import { A11yModule } from '@angular/cdk/a11y';
21
21
  import * as i3 from '@angular/material/chips';
@@ -47,6 +47,8 @@ import * as i1$3 from '@ngx-formly/core/json-schema';
47
47
  import * as i1$4 from '@ngx-formly/core';
48
48
  import { FieldType, FieldArrayType, FieldWrapper, FormlyModule } from '@ngx-formly/core';
49
49
  import { FormlyMaterialModule } from '@ngx-formly/material';
50
+ import * as i3$2 from '@angular/material/slide-toggle';
51
+ import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
50
52
 
51
53
  /*
52
54
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -1061,6 +1063,11 @@ class GioFormHeadersComponent {
1061
1063
  }
1062
1064
  // From ControlValueAccessor interface
1063
1065
  registerOnChange(fn) {
1066
+ const adaptOutputFn = this.adaptOutputFn;
1067
+ if (adaptOutputFn) {
1068
+ this._onChange = (headers) => fn(adaptOutputFn(headers));
1069
+ return;
1070
+ }
1064
1071
  this._onChange = fn;
1065
1072
  }
1066
1073
  // From ControlValueAccessor interface
@@ -1148,7 +1155,7 @@ class GioFormHeadersComponent {
1148
1155
  }
1149
1156
  }
1150
1157
  GioFormHeadersComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormHeadersComponent, deps: [{ token: i2$2.FocusMonitor }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
1151
- GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", host: { properties: { "class.disabled": "this.disabled" } }, providers: [
1158
+ GioFormHeadersComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: { adaptOutputFn: "adaptOutputFn" }, host: { properties: { "class.disabled": "this.disabled" } }, providers: [
1152
1159
  {
1153
1160
  provide: NG_VALUE_ACCESSOR,
1154
1161
  useExisting: forwardRef(() => GioFormHeadersComponent),
@@ -1164,7 +1171,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1164
1171
  multi: true,
1165
1172
  },
1166
1173
  ], 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<table class=\"gio-form-headers__table gio-table-light\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n <tr\n *ngFor=\"let control of headersFormArray.controls; index as headerIndex\"\n class=\"gio-form-headers__table__header-row\"\n [formGroupName]=\"headerIndex\"\n >\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-key__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n ></textarea>\n </mat-form-field>\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n <mat-option *ngFor=\"let headerName of getFilteredHeaderNames(headerIndex, control.value) | async\" [value]=\"headerName\">{{\n headerName\n }}</mat-option>\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <mat-form-field class=\"gio-form-headers__table__header-row__td-value__field\" [floatLabel]=\"'never'\" appearance=\"standard\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n </mat-form-field>\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n *ngIf=\"headersFormArray.controls.length - 1 !== headerIndex\"\n mat-icon-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </td>\n </tr>\n </tbody>\n</table>\n", styles: [":host{display:block;overflow:hidden}.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%;max-height:32px;flex-direction:column;justify-content:center;padding-bottom:0}.gio-form-headers__table__header-row__td-key__field *,.gio-form-headers__table__header-row__td-value__field *{top:0;overflow:hidden;max-height:32px}.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-key__button,.gio-form-headers__table__header-row__td-value__button{position:absolute;top:3px;right:3px;display: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;display:block;background-color:#fff;opacity:.9}::ng-deep gio-form-headers .gio-form-headers__table__header-row .mat-form-field-infix{width:inherit}\n"] }]
1167
- }], ctorParameters: function () { return [{ type: i2$2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { disabled: [{
1174
+ }], ctorParameters: function () { return [{ type: i2$2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { adaptOutputFn: [{
1175
+ type: Input
1176
+ }], disabled: [{
1168
1177
  type: HostBinding,
1169
1178
  args: ['class.disabled']
1170
1179
  }] } });
@@ -2778,9 +2787,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2778
2787
  * See the License for the specific language governing permissions and
2779
2788
  * limitations under the License.
2780
2789
  */
2781
- class GioFormJsonSchemaComponent {
2782
- constructor(formlyJsonschema, elRef, fm, ngControl) {
2790
+ class GioFormlyJsonSchemaService {
2791
+ constructor(formlyJsonschema, builder) {
2783
2792
  this.formlyJsonschema = formlyJsonschema;
2793
+ this.builder = builder;
2794
+ }
2795
+ toFormlyFieldConfig(jsonSchema) {
2796
+ return this.formlyJsonschema.toFieldConfig(jsonSchema, {
2797
+ map: (mappedField, mapSource) => {
2798
+ mappedField = this.uiTypeMap(mappedField, mapSource);
2799
+ mappedField = this.bannerMap(mappedField, mapSource);
2800
+ mappedField = this.toggleMap(mappedField, mapSource);
2801
+ return mappedField;
2802
+ },
2803
+ });
2804
+ }
2805
+ uiTypeMap(mappedField, mapSource) {
2806
+ mappedField.type = mapSource.gioConfig?.uiType ?? mappedField.type;
2807
+ return mappedField;
2808
+ }
2809
+ bannerMap(mappedField, mapSource) {
2810
+ mappedField.props = {
2811
+ ...mappedField.props,
2812
+ ...(mapSource.gioConfig?.banner ? getBannerProperties(mapSource.gioConfig.banner) : {}),
2813
+ };
2814
+ return mappedField;
2815
+ }
2816
+ toggleMap(mappedField, mapSource) {
2817
+ if (mapSource.type === 'boolean') {
2818
+ mappedField.type = 'toggle';
2819
+ }
2820
+ return mappedField;
2821
+ }
2822
+ }
2823
+ GioFormlyJsonSchemaService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormlyJsonSchemaService, deps: [{ token: i1$3.FormlyJsonschema }, { token: i1$4.FormlyFormBuilder }], target: i0.ɵɵFactoryTarget.Injectable });
2824
+ GioFormlyJsonSchemaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormlyJsonSchemaService });
2825
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormlyJsonSchemaService, decorators: [{
2826
+ type: Injectable
2827
+ }], ctorParameters: function () { return [{ type: i1$3.FormlyJsonschema }, { type: i1$4.FormlyFormBuilder }]; } });
2828
+ const getBannerProperties = (banner) => {
2829
+ return {
2830
+ bannerText: banner.text,
2831
+ bannerTitle: 'title' in banner ? banner.title : undefined,
2832
+ };
2833
+ };
2834
+
2835
+ /*
2836
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
2837
+ *
2838
+ * Licensed under the Apache License, Version 2.0 (the "License");
2839
+ * you may not use this file except in compliance with the License.
2840
+ * You may obtain a copy of the License at
2841
+ *
2842
+ * http://www.apache.org/licenses/LICENSE-2.0
2843
+ *
2844
+ * Unless required by applicable law or agreed to in writing, software
2845
+ * distributed under the License is distributed on an "AS IS" BASIS,
2846
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2847
+ * See the License for the specific language governing permissions and
2848
+ * limitations under the License.
2849
+ */
2850
+ class GioFormJsonSchemaComponent {
2851
+ constructor(gioFormlyJsonSchema, elRef, fm, ngControl) {
2852
+ this.gioFormlyJsonSchema = gioFormlyJsonSchema;
2784
2853
  this.elRef = elRef;
2785
2854
  this.fm = fm;
2786
2855
  this.ngControl = ngControl;
@@ -2807,7 +2876,7 @@ class GioFormJsonSchemaComponent {
2807
2876
  }
2808
2877
  set jsonSchema(jsonSchema) {
2809
2878
  if (isObject(jsonSchema)) {
2810
- this.fields = [this.toFormlyFieldConfig(jsonSchema)];
2879
+ this.fields = [this.gioFormlyJsonSchema.toFormlyFieldConfig(jsonSchema)];
2811
2880
  }
2812
2881
  }
2813
2882
  ngOnInit() {
@@ -2848,36 +2917,13 @@ class GioFormJsonSchemaComponent {
2848
2917
  setDisabledState(_isDisabled) {
2849
2918
  throw new Error('Method not implemented.');
2850
2919
  }
2851
- toFormlyFieldConfig(jsonSchema) {
2852
- return this.formlyJsonschema.toFieldConfig(jsonSchema, {
2853
- map: (mappedField, mapSource) => {
2854
- // Casting fields into our specific type
2855
- const gioMapSource = mapSource;
2856
- mappedField.props = {
2857
- ...mappedField.props,
2858
- ...(gioMapSource.gioConfig?.banner ? this.getBannerProperties(gioMapSource.gioConfig.banner) : {}),
2859
- };
2860
- return mappedField;
2861
- },
2862
- });
2863
- }
2864
- getBannerProperties(banner) {
2865
- return {
2866
- bannerText: banner.text,
2867
- bannerTitle: 'title' in banner ? banner.title : undefined,
2868
- };
2869
- }
2870
2920
  }
2871
- GioFormJsonSchemaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: i1$3.FormlyJsonschema }, { token: i0.ElementRef }, { token: i2$2.FocusMonitor }, { token: i7.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2872
- GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, components: [{ type: i1$4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
2921
+ GioFormJsonSchemaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, deps: [{ token: GioFormlyJsonSchemaService }, { token: i0.ElementRef }, { token: i2$2.FocusMonitor }, { token: i7.NgControl, host: true, optional: true }], target: i0.ɵɵFactoryTarget.Component });
2922
+ GioFormJsonSchemaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormJsonSchemaComponent, selector: "gio-form-json-schema", inputs: { jsonSchema: "jsonSchema", options: "options" }, ngImport: i0, template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, isInline: true, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"], components: [{ type: i1$4.FormlyForm, selector: "formly-form", inputs: ["form", "model", "fields", "options"], outputs: ["modelChange"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
2873
2923
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
2874
2924
  type: Component,
2875
- args: [{
2876
- selector: 'gio-form-json-schema',
2877
- template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`,
2878
- changeDetection: ChangeDetectionStrategy.OnPush,
2879
- }]
2880
- }], ctorParameters: function () { return [{ type: i1$3.FormlyJsonschema }, { type: i0.ElementRef }, { type: i2$2.FocusMonitor }, { type: i7.NgControl, decorators: [{
2925
+ args: [{ selector: 'gio-form-json-schema', template: `<formly-form *ngIf="formGroup" [fields]="fields" [options]="options" [form]="formGroup" [model]="model"></formly-form>`, styles: ["::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-outline:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)){padding-bottom:0}::ng-deep gio-form-json-schema .mat-form-field.mat-form-field-appearance-fill:not(::ng-deep :has(mat-hint),::ng-deep :has(mat-error)) .mat-form-field-wrapper{margin-bottom:-1.34375em}\n"] }]
2926
+ }], ctorParameters: function () { return [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i2$2.FocusMonitor }, { type: i7.NgControl, decorators: [{
2881
2927
  type: Host
2882
2928
  }, {
2883
2929
  type: Optional
@@ -2887,6 +2933,146 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2887
2933
  type: Input
2888
2934
  }] } });
2889
2935
 
2936
+ /*
2937
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
2938
+ *
2939
+ * Licensed under the Apache License, Version 2.0 (the "License");
2940
+ * you may not use this file except in compliance with the License.
2941
+ * You may obtain a copy of the License at
2942
+ *
2943
+ * http://www.apache.org/licenses/LICENSE-2.0
2944
+ *
2945
+ * Unless required by applicable law or agreed to in writing, software
2946
+ * distributed under the License is distributed on an "AS IS" BASIS,
2947
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2948
+ * See the License for the specific language governing permissions and
2949
+ * limitations under the License.
2950
+ */
2951
+ class GioFormLabelComponent {
2952
+ }
2953
+ GioFormLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2954
+ GioFormLabelComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormLabelComponent, selector: "gio-form-label", ngImport: i0, template: `<ng-content></ng-content>`, isInline: true });
2955
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormLabelComponent, decorators: [{
2956
+ type: Component,
2957
+ args: [{
2958
+ selector: 'gio-form-label',
2959
+ template: `<ng-content></ng-content>`,
2960
+ }]
2961
+ }] });
2962
+ class GioFormPrefixDirective {
2963
+ }
2964
+ GioFormPrefixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2965
+ GioFormPrefixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormPrefixDirective, selector: "[gioFormPrefix]", ngImport: i0 });
2966
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormPrefixDirective, decorators: [{
2967
+ type: Directive,
2968
+ args: [{
2969
+ selector: '[gioFormPrefix]',
2970
+ }]
2971
+ }] });
2972
+ class GioFormSlideToggleDirective {
2973
+ }
2974
+ GioFormSlideToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2975
+ GioFormSlideToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormSlideToggleDirective, selector: "[gioFormSlideToggle]", ngImport: i0 });
2976
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleDirective, decorators: [{
2977
+ type: Directive,
2978
+ args: [{
2979
+ selector: '[gioFormSlideToggle]',
2980
+ }]
2981
+ }] });
2982
+
2983
+ /*
2984
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
2985
+ *
2986
+ * Licensed under the Apache License, Version 2.0 (the "License");
2987
+ * you may not use this file except in compliance with the License.
2988
+ * You may obtain a copy of the License at
2989
+ *
2990
+ * http://www.apache.org/licenses/LICENSE-2.0
2991
+ *
2992
+ * Unless required by applicable law or agreed to in writing, software
2993
+ * distributed under the License is distributed on an "AS IS" BASIS,
2994
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2995
+ * See the License for the specific language governing permissions and
2996
+ * limitations under the License.
2997
+ */
2998
+ class GioFormSlideToggleComponent {
2999
+ constructor() {
3000
+ this.unsubscribe$ = new Subject();
3001
+ this.appearance = 'outline';
3002
+ this.innerMatSlideToggle = null;
3003
+ this.innerFormControlName = null;
3004
+ this.disabled = false;
3005
+ }
3006
+ ngAfterContentInit() {
3007
+ let isDisabled$ = undefined;
3008
+ // Check if disabled is delegated to inner FormControlName
3009
+ if (this.innerFormControlName) {
3010
+ isDisabled$ = this.innerFormControlName.statusChanges?.pipe(map(() => !!this.innerFormControlName?.disabled), startWith(!!this.innerFormControlName.disabled));
3011
+ }
3012
+ // If not, check state of inner MatSlideToggle
3013
+ else if (this.innerMatSlideToggle) {
3014
+ isDisabled$ = this.innerMatSlideToggle.change.pipe(map(event => event.source.disabled), startWith(this.innerMatSlideToggle.disabled));
3015
+ }
3016
+ if (isDisabled$) {
3017
+ isDisabled$.pipe(takeUntil(this.unsubscribe$)).subscribe(disabled => {
3018
+ this.disabled = disabled;
3019
+ });
3020
+ }
3021
+ }
3022
+ ngOnDestroy() {
3023
+ this.unsubscribe$.next();
3024
+ this.unsubscribe$.complete();
3025
+ }
3026
+ }
3027
+ GioFormSlideToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3028
+ GioFormSlideToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormSlideToggleComponent, selector: "gio-form-slide-toggle", inputs: { appearance: "appearance" }, queries: [{ propertyName: "innerMatSlideToggle", first: true, predicate: MatSlideToggle, descendants: true }, { propertyName: "innerFormControlName", first: true, predicate: NgControl, descendants: true }], ngImport: i0, template: "<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n class=\"form-slide-toggle\"\n [class.appearance-standard]=\"appearance === 'standard'\"\n [class.appearance-fill]=\"appearance === 'fill'\"\n [class.appearance-outline]=\"appearance === 'outline'\"\n>\n <div class=\"form-slide-toggle__icon\">\n <ng-content select=\"[gioFormPrefix]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field\">\n <div class=\"form-slide-toggle__field__mat-slide-toggle\">\n <ng-content select=\"[gioFormSlideToggle]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field__text\" [class.disabled]=\"disabled\">\n <span class=\"form-slide-toggle__field__text__label-1\">\n <ng-content select=\"gio-form-label\"></ng-content>\n </span>\n <span class=\"form-slide-toggle__field__text__label-2\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host{display:inline-block;padding:4px 0}::ng-deep gio-form-slide-toggle div.form-slide-toggle__icon .mat-icon{font-size:150%;line-height:1.125}.form-slide-toggle{display:flex;min-height:60px;align-items:center}.form-slide-toggle.appearance-fill,.form-slide-toggle.appearance-outline{padding:0 .75em}.form-slide-toggle__icon{padding-right:8px}.form-slide-toggle__icon:empty{display:none}.form-slide-toggle__field{display:flex;min-width:180px;flex:1 1 auto;flex-direction:row;align-items:center;justify-content:flex-start}.form-slide-toggle__field__text{display:flex;flex:1 1 100%;flex-direction:column;padding-left:14px}.form-slide-toggle__field__text__label-1{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.form-slide-toggle__field__text__label-2{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.form-slide-toggle__field__text.disabled{color:#00000061}\n"] });
3029
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleComponent, decorators: [{
3030
+ type: Component,
3031
+ args: [{ selector: 'gio-form-slide-toggle', 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\n class=\"form-slide-toggle\"\n [class.appearance-standard]=\"appearance === 'standard'\"\n [class.appearance-fill]=\"appearance === 'fill'\"\n [class.appearance-outline]=\"appearance === 'outline'\"\n>\n <div class=\"form-slide-toggle__icon\">\n <ng-content select=\"[gioFormPrefix]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field\">\n <div class=\"form-slide-toggle__field__mat-slide-toggle\">\n <ng-content select=\"[gioFormSlideToggle]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field__text\" [class.disabled]=\"disabled\">\n <span class=\"form-slide-toggle__field__text__label-1\">\n <ng-content select=\"gio-form-label\"></ng-content>\n </span>\n <span class=\"form-slide-toggle__field__text__label-2\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</div>\n", styles: [":host{display:inline-block;padding:4px 0}::ng-deep gio-form-slide-toggle div.form-slide-toggle__icon .mat-icon{font-size:150%;line-height:1.125}.form-slide-toggle{display:flex;min-height:60px;align-items:center}.form-slide-toggle.appearance-fill,.form-slide-toggle.appearance-outline{padding:0 .75em}.form-slide-toggle__icon{padding-right:8px}.form-slide-toggle__icon:empty{display:none}.form-slide-toggle__field{display:flex;min-width:180px;flex:1 1 auto;flex-direction:row;align-items:center;justify-content:flex-start}.form-slide-toggle__field__text{display:flex;flex:1 1 100%;flex-direction:column;padding-left:14px}.form-slide-toggle__field__text__label-1{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.form-slide-toggle__field__text__label-2{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.form-slide-toggle__field__text.disabled{color:#00000061}\n"] }]
3032
+ }], propDecorators: { appearance: [{
3033
+ type: Input
3034
+ }], innerMatSlideToggle: [{
3035
+ type: ContentChild,
3036
+ args: [MatSlideToggle, {
3037
+ static: false,
3038
+ }]
3039
+ }], innerFormControlName: [{
3040
+ type: ContentChild,
3041
+ args: [NgControl, {
3042
+ static: false,
3043
+ }]
3044
+ }] } });
3045
+
3046
+ /*
3047
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3048
+ *
3049
+ * Licensed under the Apache License, Version 2.0 (the "License");
3050
+ * you may not use this file except in compliance with the License.
3051
+ * You may obtain a copy of the License at
3052
+ *
3053
+ * http://www.apache.org/licenses/LICENSE-2.0
3054
+ *
3055
+ * Unless required by applicable law or agreed to in writing, software
3056
+ * distributed under the License is distributed on an "AS IS" BASIS,
3057
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3058
+ * See the License for the specific language governing permissions and
3059
+ * limitations under the License.
3060
+ */
3061
+ class GioFormSlideToggleModule {
3062
+ }
3063
+ GioFormSlideToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3064
+ GioFormSlideToggleModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, declarations: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective], imports: [CommonModule], exports: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective] });
3065
+ GioFormSlideToggleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, imports: [[CommonModule]] });
3066
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, decorators: [{
3067
+ type: NgModule,
3068
+ args: [{
3069
+ imports: [CommonModule],
3070
+ declarations: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective],
3071
+ exports: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective],
3072
+ entryComponents: [GioFormSlideToggleComponent],
3073
+ }]
3074
+ }] });
3075
+
2890
3076
  /*
2891
3077
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
2892
3078
  *
@@ -2942,24 +3128,28 @@ GioFjsObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
2942
3128
  <div class="wrapper">
2943
3129
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2944
3130
  <p *ngIf="to.description">{{ to.description }}</p>
2945
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3131
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2946
3132
  <formly-validation-message [field]="field"></formly-validation-message>
2947
3133
  </div>
2948
- <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3134
+ <div class="wrapper__fields">
3135
+ <formly-field *ngFor="let f of field.fieldGroup" class="wrapper__fields__field" [field]="f"></formly-field>
3136
+ </div>
2949
3137
  </div>
2950
- `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper formly-field+formly-field{margin-top:8px}\n"], components: [{ type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3138
+ `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column}.wrapper__title{font:600 18px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.wrapper__fields{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__fields:empty{display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"], components: [{ type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
2951
3139
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
2952
3140
  type: Component,
2953
3141
  args: [{ selector: 'gio-fjs-object-type', template: `
2954
3142
  <div class="wrapper">
2955
3143
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2956
3144
  <p *ngIf="to.description">{{ to.description }}</p>
2957
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3145
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2958
3146
  <formly-validation-message [field]="field"></formly-validation-message>
2959
3147
  </div>
2960
- <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3148
+ <div class="wrapper__fields">
3149
+ <formly-field *ngFor="let f of field.fieldGroup" class="wrapper__fields__field" [field]="f"></formly-field>
3150
+ </div>
2961
3151
  </div>
2962
- `, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper formly-field+formly-field{margin-top:8px}\n"] }]
3152
+ `, styles: [".wrapper{display:flex;flex-direction:column}.wrapper__title{font:600 18px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.wrapper__fields{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__fields:empty{display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"] }]
2963
3153
  }] });
2964
3154
 
2965
3155
  /*
@@ -2978,52 +3168,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2978
3168
  * limitations under the License.
2979
3169
  */
2980
3170
  class GioFjsArrayTypeComponent extends FieldArrayType {
3171
+ constructor() {
3172
+ super(...arguments);
3173
+ this.collapse = false;
3174
+ }
2981
3175
  }
2982
3176
  GioFjsArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2983
3177
  GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsArrayTypeComponent, selector: "gio-fjs-array-type", usesInheritance: true, ngImport: i0, template: `
2984
3178
  <div class="wrapper">
2985
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2986
- <p *ngIf="to.description">{{ to.description }}</p>
3179
+ <div class="wrapper__header">
3180
+ <div class="wrapper__header__text">
3181
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3182
+ <p *ngIf="to.description">{{ to.description }}</p>
3183
+ </div>
3184
+ <div class="wrapper__header__collapse">
3185
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3186
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3187
+ </button>
3188
+ </div>
3189
+ </div>
2987
3190
 
2988
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3191
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2989
3192
  <formly-validation-message [field]="field"></formly-validation-message>
2990
3193
  </div>
2991
3194
 
2992
- <div *ngFor="let field of field.fieldGroup; let i = index" class="row">
2993
- <formly-field [field]="field"></formly-field>
2994
- <div>
2995
- <button class="btn btn-danger" type="button" (click)="remove(i)">-</button>
3195
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3196
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3197
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3198
+ <div class="wrapper__rows__row__remove">
3199
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3200
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3201
+ </button>
3202
+ </div>
2996
3203
  </div>
2997
- </div>
2998
3204
 
2999
- <div>
3000
- <button class="btn btn-primary" type="button" (click)="add()">+</button>
3205
+ <div>
3206
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3207
+ </div>
3001
3208
  </div>
3002
3209
  </div>
3003
- `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper formly-field+formly-field{display:block;margin-top:8px}\n"], components: [{ type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3210
+ `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,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:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.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 #d3d5dc;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3004
3211
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
3005
3212
  type: Component,
3006
3213
  args: [{ selector: 'gio-fjs-array-type', template: `
3007
3214
  <div class="wrapper">
3008
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3009
- <p *ngIf="to.description">{{ to.description }}</p>
3215
+ <div class="wrapper__header">
3216
+ <div class="wrapper__header__text">
3217
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3218
+ <p *ngIf="to.description">{{ to.description }}</p>
3219
+ </div>
3220
+ <div class="wrapper__header__collapse">
3221
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3222
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3223
+ </button>
3224
+ </div>
3225
+ </div>
3010
3226
 
3011
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3227
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3012
3228
  <formly-validation-message [field]="field"></formly-validation-message>
3013
3229
  </div>
3014
3230
 
3015
- <div *ngFor="let field of field.fieldGroup; let i = index" class="row">
3016
- <formly-field [field]="field"></formly-field>
3017
- <div>
3018
- <button class="btn btn-danger" type="button" (click)="remove(i)">-</button>
3231
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3232
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3233
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3234
+ <div class="wrapper__rows__row__remove">
3235
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3236
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3237
+ </button>
3238
+ </div>
3019
3239
  </div>
3020
- </div>
3021
3240
 
3022
- <div>
3023
- <button class="btn btn-primary" type="button" (click)="add()">+</button>
3241
+ <div>
3242
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3243
+ </div>
3024
3244
  </div>
3025
3245
  </div>
3026
- `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:16px}.wrapper:empty{display:none}.wrapper formly-field+formly-field{display:block;margin-top:8px}\n"] }]
3246
+ `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,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:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.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 #d3d5dc;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"] }]
3027
3247
  }] });
3028
3248
 
3029
3249
  function minItemsValidationMessage(error, field) {
@@ -3112,6 +3332,7 @@ function bannerExtension(field) {
3112
3332
  class GioFjsMultiSchemaTypeComponent extends FieldType {
3113
3333
  ngOnInit() {
3114
3334
  set(this.field, 'fieldGroup[0].props.appearance', 'fill');
3335
+ set(this.field, 'fieldGroup[0].props.label', 'Select option');
3115
3336
  }
3116
3337
  }
3117
3338
  GioFjsMultiSchemaTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -3119,24 +3340,159 @@ GioFjsMultiSchemaTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
3119
3340
  <div class="wrapper">
3120
3341
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3121
3342
  <p *ngIf="props.description">{{ props.description }}</p>
3122
- <div role="alert" *ngIf="showError && formControl.errors">
3343
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3123
3344
  <formly-validation-message [field]="field"></formly-validation-message>
3124
3345
  </div>
3125
3346
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3126
3347
  </div>
3127
- `, isInline: true, styles: ["::ng-deep gio-fjs-multi-schema-type div.wrapper formly-field:first-child mat-form-field{padding-bottom:0}.wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;margin-bottom:4px}.wrapper:empty{display:none}\n"], components: [{ type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3348
+ `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font-size:16px;font-weight:500;line-height:24px;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:4px}.wrapper:empty{display:none}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3128
3349
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, decorators: [{
3129
3350
  type: Component,
3130
3351
  args: [{ selector: 'gio-fjs-multi-schema-type', template: `
3131
3352
  <div class="wrapper">
3132
3353
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3133
3354
  <p *ngIf="props.description">{{ props.description }}</p>
3134
- <div role="alert" *ngIf="showError && formControl.errors">
3355
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3135
3356
  <formly-validation-message [field]="field"></formly-validation-message>
3136
3357
  </div>
3137
3358
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3138
3359
  </div>
3139
- `, styles: ["::ng-deep gio-fjs-multi-schema-type div.wrapper formly-field:first-child mat-form-field{padding-bottom:0}.wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font-size:16px;font-weight:500;letter-spacing:.4px;line-height:24px;margin-bottom:4px}.wrapper:empty{display:none}\n"] }]
3360
+ `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__title{font-size:16px;font-weight:500;line-height:24px;font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:4px}.wrapper:empty{display:none}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"] }]
3361
+ }] });
3362
+
3363
+ /*
3364
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3365
+ *
3366
+ * Licensed under the Apache License, Version 2.0 (the "License");
3367
+ * you may not use this file except in compliance with the License.
3368
+ * You may obtain a copy of the License at
3369
+ *
3370
+ * http://www.apache.org/licenses/LICENSE-2.0
3371
+ *
3372
+ * Unless required by applicable law or agreed to in writing, software
3373
+ * distributed under the License is distributed on an "AS IS" BASIS,
3374
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3375
+ * See the License for the specific language governing permissions and
3376
+ * limitations under the License.
3377
+ */
3378
+ class GioFjsToggleTypeComponent extends FieldType {
3379
+ }
3380
+ GioFjsToggleTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsToggleTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3381
+ GioFjsToggleTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsToggleTypeComponent, selector: "gio-fjs-toggle-type", usesInheritance: true, ngImport: i0, template: `
3382
+ <gio-form-slide-toggle>
3383
+ <gio-form-label>{{ props.label }}</gio-form-label>
3384
+ {{ props.description }}
3385
+ <mat-slide-toggle
3386
+ gioFormSlideToggle
3387
+ [id]="id"
3388
+ [formControl]="formControl"
3389
+ [formlyAttributes]="field"
3390
+ [tabIndex]="props.tabindex"
3391
+ ></mat-slide-toggle>
3392
+ </gio-form-slide-toggle>
3393
+ `, isInline: true, components: [{ type: GioFormSlideToggleComponent, selector: "gio-form-slide-toggle", inputs: ["appearance"] }, { type: GioFormLabelComponent, selector: "gio-form-label" }, { type: i3$2.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }], directives: [{ type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i1$4.ɵFormlyAttributes, selector: "[formlyAttributes]", inputs: ["formlyAttributes", "id"] }] });
3394
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsToggleTypeComponent, decorators: [{
3395
+ type: Component,
3396
+ args: [{
3397
+ selector: 'gio-fjs-toggle-type',
3398
+ template: `
3399
+ <gio-form-slide-toggle>
3400
+ <gio-form-label>{{ props.label }}</gio-form-label>
3401
+ {{ props.description }}
3402
+ <mat-slide-toggle
3403
+ gioFormSlideToggle
3404
+ [id]="id"
3405
+ [formControl]="formControl"
3406
+ [formlyAttributes]="field"
3407
+ [tabIndex]="props.tabindex"
3408
+ ></mat-slide-toggle>
3409
+ </gio-form-slide-toggle>
3410
+ `,
3411
+ }]
3412
+ }] });
3413
+
3414
+ /*
3415
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3416
+ *
3417
+ * Licensed under the Apache License, Version 2.0 (the "License");
3418
+ * you may not use this file except in compliance with the License.
3419
+ * You may obtain a copy of the License at
3420
+ *
3421
+ * http://www.apache.org/licenses/LICENSE-2.0
3422
+ *
3423
+ * Unless required by applicable law or agreed to in writing, software
3424
+ * distributed under the License is distributed on an "AS IS" BASIS,
3425
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3426
+ * See the License for the specific language governing permissions and
3427
+ * limitations under the License.
3428
+ */
3429
+ class GioFjsHeadersTypeComponent extends FieldType {
3430
+ constructor() {
3431
+ super(...arguments);
3432
+ this.defaultOptions = {
3433
+ props: {
3434
+ outputConfig: {
3435
+ keyName: 'name',
3436
+ valueName: 'value',
3437
+ },
3438
+ },
3439
+ };
3440
+ this.collapse = false;
3441
+ }
3442
+ get map() {
3443
+ return (headers) => [...(headers ?? [])].map(header => {
3444
+ return {
3445
+ [this.props.outputConfig.keyName]: header.key,
3446
+ [this.props.outputConfig.valueName]: header.value,
3447
+ };
3448
+ });
3449
+ }
3450
+ }
3451
+ GioFjsHeadersTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3452
+ GioFjsHeadersTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsHeadersTypeComponent, selector: "gio-fjs-headers-type", usesInheritance: true, ngImport: i0, template: `
3453
+ <div class="wrapper">
3454
+ <div class="wrapper__header">
3455
+ <div class="wrapper__header__text">
3456
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3457
+ <p *ngIf="to.description">{{ to.description }}</p>
3458
+ </div>
3459
+ <div class="wrapper__header__collapse">
3460
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3461
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3462
+ </button>
3463
+ </div>
3464
+ </div>
3465
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3466
+ <formly-validation-message [field]="field"></formly-validation-message>
3467
+ </div>
3468
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3469
+ <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
3470
+ </div>
3471
+ </div>
3472
+ `, isInline: true, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,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:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: GioFormHeadersComponent, selector: "gio-form-headers", inputs: ["adaptOutputFn"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }] });
3473
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
3474
+ type: Component,
3475
+ args: [{ selector: 'gio-fjs-headers-type', template: `
3476
+ <div class="wrapper">
3477
+ <div class="wrapper__header">
3478
+ <div class="wrapper__header__text">
3479
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3480
+ <p *ngIf="to.description">{{ to.description }}</p>
3481
+ </div>
3482
+ <div class="wrapper__header__collapse">
3483
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3484
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3485
+ </button>
3486
+ </div>
3487
+ </div>
3488
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3489
+ <formly-validation-message [field]="field"></formly-validation-message>
3490
+ </div>
3491
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3492
+ <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
3493
+ </div>
3494
+ </div>
3495
+ `, styles: [".wrapper{display:flex;flex-direction:column;padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,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:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}\n"] }]
3140
3496
  }] });
3141
3497
 
3142
3498
  /*
@@ -3162,11 +3518,17 @@ GioFormJsonSchemaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
3162
3518
  GioFjsObjectTypeComponent,
3163
3519
  GioFjsMultiSchemaTypeComponent,
3164
3520
  GioFjsArrayTypeComponent,
3521
+ GioFjsToggleTypeComponent,
3522
+ GioFjsHeadersTypeComponent,
3165
3523
  GioFormFieldWrapperComponent], imports: [CommonModule,
3166
3524
  A11yModule,
3167
3525
  ReactiveFormsModule, i1$4.FormlyModule, FormlyMaterialModule,
3168
- GioIconsModule], exports: [GioFormJsonSchemaComponent, FormlyModule] });
3169
- GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, imports: [[
3526
+ GioIconsModule,
3527
+ GioFormSlideToggleModule,
3528
+ GioFormHeadersModule,
3529
+ MatSlideToggleModule,
3530
+ MatButtonModule], exports: [GioFormJsonSchemaComponent, FormlyModule] });
3531
+ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, providers: [GioFormlyJsonSchemaService], imports: [[
3170
3532
  CommonModule,
3171
3533
  A11yModule,
3172
3534
  ReactiveFormsModule,
@@ -3192,6 +3554,14 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
3192
3554
  { name: 'array', component: GioFjsArrayTypeComponent },
3193
3555
  { name: 'object', component: GioFjsObjectTypeComponent },
3194
3556
  { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },
3557
+ {
3558
+ name: 'toggle',
3559
+ component: GioFjsToggleTypeComponent,
3560
+ },
3561
+ {
3562
+ name: 'gio-headers-array',
3563
+ component: GioFjsHeadersTypeComponent,
3564
+ },
3195
3565
  ],
3196
3566
  extensions: [{ name: 'banner', extension: { onPopulate: bannerExtension } }],
3197
3567
  extras: {
@@ -3200,6 +3570,10 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
3200
3570
  }),
3201
3571
  FormlyMaterialModule,
3202
3572
  GioIconsModule,
3573
+ GioFormSlideToggleModule,
3574
+ GioFormHeadersModule,
3575
+ MatSlideToggleModule,
3576
+ MatButtonModule,
3203
3577
  ], FormlyModule] });
3204
3578
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, decorators: [{
3205
3579
  type: NgModule,
@@ -3210,6 +3584,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3210
3584
  GioFjsObjectTypeComponent,
3211
3585
  GioFjsMultiSchemaTypeComponent,
3212
3586
  GioFjsArrayTypeComponent,
3587
+ GioFjsToggleTypeComponent,
3588
+ GioFjsHeadersTypeComponent,
3213
3589
  GioFormFieldWrapperComponent,
3214
3590
  ],
3215
3591
  imports: [
@@ -3238,6 +3614,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3238
3614
  { name: 'array', component: GioFjsArrayTypeComponent },
3239
3615
  { name: 'object', component: GioFjsObjectTypeComponent },
3240
3616
  { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },
3617
+ {
3618
+ name: 'toggle',
3619
+ component: GioFjsToggleTypeComponent,
3620
+ },
3621
+ {
3622
+ name: 'gio-headers-array',
3623
+ component: GioFjsHeadersTypeComponent,
3624
+ },
3241
3625
  ],
3242
3626
  extensions: [{ name: 'banner', extension: { onPopulate: bannerExtension } }],
3243
3627
  extras: {
@@ -3246,11 +3630,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3246
3630
  }),
3247
3631
  FormlyMaterialModule,
3248
3632
  GioIconsModule,
3633
+ GioFormSlideToggleModule,
3634
+ GioFormHeadersModule,
3635
+ MatSlideToggleModule,
3636
+ MatButtonModule,
3249
3637
  ],
3250
3638
  exports: [GioFormJsonSchemaComponent, FormlyModule],
3639
+ providers: [GioFormlyJsonSchemaService],
3251
3640
  }]
3252
3641
  }] });
3253
3642
 
3643
+ /*
3644
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3645
+ *
3646
+ * Licensed under the Apache License, Version 2.0 (the "License");
3647
+ * you may not use this file except in compliance with the License.
3648
+ * You may obtain a copy of the License at
3649
+ *
3650
+ * http://www.apache.org/licenses/LICENSE-2.0
3651
+ *
3652
+ * Unless required by applicable law or agreed to in writing, software
3653
+ * distributed under the License is distributed on an "AS IS" BASIS,
3654
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3655
+ * See the License for the specific language governing permissions and
3656
+ * limitations under the License.
3657
+ */
3658
+
3254
3659
  /*
3255
3660
  * Copyright (C) 2021 The Gravitee team (http://gravitee.io)
3256
3661
  *
@@ -3287,5 +3692,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3287
3692
  * Generated bundle index. Do not edit.
3288
3693
  */
3289
3694
 
3290
- export { GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuListComponent, GioMenuModule, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, NewFile };
3695
+ export { GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuListComponent, GioMenuModule, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, NewFile };
3291
3696
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map