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

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 +22 -2
  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 +475 -67
  16. package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
  17. package/fesm2020/gravitee-ui-particles-angular.mjs +475 -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 +20 -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,9 @@ 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';
52
+ import 'json-schema';
50
53
 
51
54
  /*
52
55
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -1061,6 +1064,11 @@ class GioFormHeadersComponent {
1061
1064
  }
1062
1065
  // From ControlValueAccessor interface
1063
1066
  registerOnChange(fn) {
1067
+ const adaptOutputFn = this.adaptOutputFn;
1068
+ if (adaptOutputFn) {
1069
+ this._onChange = (headers) => fn(adaptOutputFn(headers));
1070
+ return;
1071
+ }
1064
1072
  this._onChange = fn;
1065
1073
  }
1066
1074
  // From ControlValueAccessor interface
@@ -1148,7 +1156,7 @@ class GioFormHeadersComponent {
1148
1156
  }
1149
1157
  }
1150
1158
  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: [
1159
+ 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
1160
  {
1153
1161
  provide: NG_VALUE_ACCESSOR,
1154
1162
  useExisting: forwardRef(() => GioFormHeadersComponent),
@@ -1164,7 +1172,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
1164
1172
  multi: true,
1165
1173
  },
1166
1174
  ], 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: [{
1175
+ }], ctorParameters: function () { return [{ type: i2$2.FocusMonitor }, { type: i0.ElementRef }]; }, propDecorators: { adaptOutputFn: [{
1176
+ type: Input
1177
+ }], disabled: [{
1168
1178
  type: HostBinding,
1169
1179
  args: ['class.disabled']
1170
1180
  }] } });
@@ -2778,9 +2788,69 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2778
2788
  * See the License for the specific language governing permissions and
2779
2789
  * limitations under the License.
2780
2790
  */
2781
- class GioFormJsonSchemaComponent {
2782
- constructor(formlyJsonschema, elRef, fm, ngControl) {
2791
+ class GioFormlyJsonSchemaService {
2792
+ constructor(formlyJsonschema, builder) {
2783
2793
  this.formlyJsonschema = formlyJsonschema;
2794
+ this.builder = builder;
2795
+ }
2796
+ toFormlyFieldConfig(jsonSchema) {
2797
+ return this.formlyJsonschema.toFieldConfig(jsonSchema, {
2798
+ map: (mappedField, mapSource) => {
2799
+ mappedField = this.uiTypeMap(mappedField, mapSource);
2800
+ mappedField = this.bannerMap(mappedField, mapSource);
2801
+ mappedField = this.toggleMap(mappedField, mapSource);
2802
+ return mappedField;
2803
+ },
2804
+ });
2805
+ }
2806
+ uiTypeMap(mappedField, mapSource) {
2807
+ mappedField.type = mapSource.gioConfig?.uiType ?? mappedField.type;
2808
+ return mappedField;
2809
+ }
2810
+ bannerMap(mappedField, mapSource) {
2811
+ mappedField.props = {
2812
+ ...mappedField.props,
2813
+ ...(mapSource.gioConfig?.banner ? getBannerProperties(mapSource.gioConfig.banner) : {}),
2814
+ };
2815
+ return mappedField;
2816
+ }
2817
+ toggleMap(mappedField, mapSource) {
2818
+ if (mapSource.type === 'boolean') {
2819
+ mappedField.type = 'toggle';
2820
+ }
2821
+ return mappedField;
2822
+ }
2823
+ }
2824
+ 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 });
2825
+ GioFormlyJsonSchemaService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormlyJsonSchemaService });
2826
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormlyJsonSchemaService, decorators: [{
2827
+ type: Injectable
2828
+ }], ctorParameters: function () { return [{ type: i1$3.FormlyJsonschema }, { type: i1$4.FormlyFormBuilder }]; } });
2829
+ const getBannerProperties = (banner) => {
2830
+ return {
2831
+ bannerText: banner.text,
2832
+ bannerTitle: 'title' in banner ? banner.title : undefined,
2833
+ };
2834
+ };
2835
+
2836
+ /*
2837
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
2838
+ *
2839
+ * Licensed under the Apache License, Version 2.0 (the "License");
2840
+ * you may not use this file except in compliance with the License.
2841
+ * You may obtain a copy of the License at
2842
+ *
2843
+ * http://www.apache.org/licenses/LICENSE-2.0
2844
+ *
2845
+ * Unless required by applicable law or agreed to in writing, software
2846
+ * distributed under the License is distributed on an "AS IS" BASIS,
2847
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2848
+ * See the License for the specific language governing permissions and
2849
+ * limitations under the License.
2850
+ */
2851
+ class GioFormJsonSchemaComponent {
2852
+ constructor(gioFormlyJsonSchema, elRef, fm, ngControl) {
2853
+ this.gioFormlyJsonSchema = gioFormlyJsonSchema;
2784
2854
  this.elRef = elRef;
2785
2855
  this.fm = fm;
2786
2856
  this.ngControl = ngControl;
@@ -2807,7 +2877,7 @@ class GioFormJsonSchemaComponent {
2807
2877
  }
2808
2878
  set jsonSchema(jsonSchema) {
2809
2879
  if (isObject(jsonSchema)) {
2810
- this.fields = [this.toFormlyFieldConfig(jsonSchema)];
2880
+ this.fields = [this.gioFormlyJsonSchema.toFormlyFieldConfig(jsonSchema)];
2811
2881
  }
2812
2882
  }
2813
2883
  ngOnInit() {
@@ -2848,36 +2918,13 @@ class GioFormJsonSchemaComponent {
2848
2918
  setDisabledState(_isDisabled) {
2849
2919
  throw new Error('Method not implemented.');
2850
2920
  }
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
2921
  }
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 });
2922
+ 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 });
2923
+ 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
2924
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaComponent, decorators: [{
2874
2925
  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: [{
2926
+ 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"] }]
2927
+ }], ctorParameters: function () { return [{ type: GioFormlyJsonSchemaService }, { type: i0.ElementRef }, { type: i2$2.FocusMonitor }, { type: i7.NgControl, decorators: [{
2881
2928
  type: Host
2882
2929
  }, {
2883
2930
  type: Optional
@@ -2887,6 +2934,146 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2887
2934
  type: Input
2888
2935
  }] } });
2889
2936
 
2937
+ /*
2938
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
2939
+ *
2940
+ * Licensed under the Apache License, Version 2.0 (the "License");
2941
+ * you may not use this file except in compliance with the License.
2942
+ * You may obtain a copy of the License at
2943
+ *
2944
+ * http://www.apache.org/licenses/LICENSE-2.0
2945
+ *
2946
+ * Unless required by applicable law or agreed to in writing, software
2947
+ * distributed under the License is distributed on an "AS IS" BASIS,
2948
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2949
+ * See the License for the specific language governing permissions and
2950
+ * limitations under the License.
2951
+ */
2952
+ class GioFormLabelComponent {
2953
+ }
2954
+ GioFormLabelComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormLabelComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
2955
+ 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 });
2956
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormLabelComponent, decorators: [{
2957
+ type: Component,
2958
+ args: [{
2959
+ selector: 'gio-form-label',
2960
+ template: `<ng-content></ng-content>`,
2961
+ }]
2962
+ }] });
2963
+ class GioFormPrefixDirective {
2964
+ }
2965
+ GioFormPrefixDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormPrefixDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2966
+ GioFormPrefixDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormPrefixDirective, selector: "[gioFormPrefix]", ngImport: i0 });
2967
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormPrefixDirective, decorators: [{
2968
+ type: Directive,
2969
+ args: [{
2970
+ selector: '[gioFormPrefix]',
2971
+ }]
2972
+ }] });
2973
+ class GioFormSlideToggleDirective {
2974
+ }
2975
+ GioFormSlideToggleDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleDirective, deps: [], target: i0.ɵɵFactoryTarget.Directive });
2976
+ GioFormSlideToggleDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormSlideToggleDirective, selector: "[gioFormSlideToggle]", ngImport: i0 });
2977
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleDirective, decorators: [{
2978
+ type: Directive,
2979
+ args: [{
2980
+ selector: '[gioFormSlideToggle]',
2981
+ }]
2982
+ }] });
2983
+
2984
+ /*
2985
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
2986
+ *
2987
+ * Licensed under the Apache License, Version 2.0 (the "License");
2988
+ * you may not use this file except in compliance with the License.
2989
+ * You may obtain a copy of the License at
2990
+ *
2991
+ * http://www.apache.org/licenses/LICENSE-2.0
2992
+ *
2993
+ * Unless required by applicable law or agreed to in writing, software
2994
+ * distributed under the License is distributed on an "AS IS" BASIS,
2995
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
2996
+ * See the License for the specific language governing permissions and
2997
+ * limitations under the License.
2998
+ */
2999
+ class GioFormSlideToggleComponent {
3000
+ constructor() {
3001
+ this.unsubscribe$ = new Subject();
3002
+ this.appearance = 'outline';
3003
+ this.innerMatSlideToggle = null;
3004
+ this.innerFormControlName = null;
3005
+ this.disabled = false;
3006
+ }
3007
+ ngAfterContentInit() {
3008
+ let isDisabled$ = undefined;
3009
+ // Check if disabled is delegated to inner FormControlName
3010
+ if (this.innerFormControlName) {
3011
+ isDisabled$ = this.innerFormControlName.statusChanges?.pipe(map(() => !!this.innerFormControlName?.disabled), startWith(!!this.innerFormControlName.disabled));
3012
+ }
3013
+ // If not, check state of inner MatSlideToggle
3014
+ else if (this.innerMatSlideToggle) {
3015
+ isDisabled$ = this.innerMatSlideToggle.change.pipe(map(event => event.source.disabled), startWith(this.innerMatSlideToggle.disabled));
3016
+ }
3017
+ if (isDisabled$) {
3018
+ isDisabled$.pipe(takeUntil(this.unsubscribe$)).subscribe(disabled => {
3019
+ this.disabled = disabled;
3020
+ });
3021
+ }
3022
+ }
3023
+ ngOnDestroy() {
3024
+ this.unsubscribe$.next();
3025
+ this.unsubscribe$.complete();
3026
+ }
3027
+ }
3028
+ GioFormSlideToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
3029
+ 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"] });
3030
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleComponent, decorators: [{
3031
+ type: Component,
3032
+ 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"] }]
3033
+ }], propDecorators: { appearance: [{
3034
+ type: Input
3035
+ }], innerMatSlideToggle: [{
3036
+ type: ContentChild,
3037
+ args: [MatSlideToggle, {
3038
+ static: false,
3039
+ }]
3040
+ }], innerFormControlName: [{
3041
+ type: ContentChild,
3042
+ args: [NgControl, {
3043
+ static: false,
3044
+ }]
3045
+ }] } });
3046
+
3047
+ /*
3048
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3049
+ *
3050
+ * Licensed under the Apache License, Version 2.0 (the "License");
3051
+ * you may not use this file except in compliance with the License.
3052
+ * You may obtain a copy of the License at
3053
+ *
3054
+ * http://www.apache.org/licenses/LICENSE-2.0
3055
+ *
3056
+ * Unless required by applicable law or agreed to in writing, software
3057
+ * distributed under the License is distributed on an "AS IS" BASIS,
3058
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3059
+ * See the License for the specific language governing permissions and
3060
+ * limitations under the License.
3061
+ */
3062
+ class GioFormSlideToggleModule {
3063
+ }
3064
+ GioFormSlideToggleModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3065
+ 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] });
3066
+ GioFormSlideToggleModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, imports: [[CommonModule]] });
3067
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormSlideToggleModule, decorators: [{
3068
+ type: NgModule,
3069
+ args: [{
3070
+ imports: [CommonModule],
3071
+ declarations: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective],
3072
+ exports: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective],
3073
+ entryComponents: [GioFormSlideToggleComponent],
3074
+ }]
3075
+ }] });
3076
+
2890
3077
  /*
2891
3078
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
2892
3079
  *
@@ -2942,24 +3129,28 @@ GioFjsObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
2942
3129
  <div class="wrapper">
2943
3130
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2944
3131
  <p *ngIf="to.description">{{ to.description }}</p>
2945
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3132
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2946
3133
  <formly-validation-message [field]="field"></formly-validation-message>
2947
3134
  </div>
2948
- <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3135
+ <div class="wrapper__fields">
3136
+ <formly-field *ngFor="let f of field.fieldGroup" class="wrapper__fields__field" [field]="f"></formly-field>
3137
+ </div>
2949
3138
  </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"] }] });
3139
+ `, 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
3140
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
2952
3141
  type: Component,
2953
3142
  args: [{ selector: 'gio-fjs-object-type', template: `
2954
3143
  <div class="wrapper">
2955
3144
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2956
3145
  <p *ngIf="to.description">{{ to.description }}</p>
2957
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3146
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2958
3147
  <formly-validation-message [field]="field"></formly-validation-message>
2959
3148
  </div>
2960
- <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3149
+ <div class="wrapper__fields">
3150
+ <formly-field *ngFor="let f of field.fieldGroup" class="wrapper__fields__field" [field]="f"></formly-field>
3151
+ </div>
2961
3152
  </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"] }]
3153
+ `, 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
3154
  }] });
2964
3155
 
2965
3156
  /*
@@ -2978,52 +3169,82 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
2978
3169
  * limitations under the License.
2979
3170
  */
2980
3171
  class GioFjsArrayTypeComponent extends FieldArrayType {
3172
+ constructor() {
3173
+ super(...arguments);
3174
+ this.collapse = false;
3175
+ }
2981
3176
  }
2982
3177
  GioFjsArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
2983
3178
  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
3179
  <div class="wrapper">
2985
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
2986
- <p *ngIf="to.description">{{ to.description }}</p>
3180
+ <div class="wrapper__header">
3181
+ <div class="wrapper__header__text">
3182
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3183
+ <p *ngIf="to.description">{{ to.description }}</p>
3184
+ </div>
3185
+ <div class="wrapper__header__collapse">
3186
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3187
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3188
+ </button>
3189
+ </div>
3190
+ </div>
2987
3191
 
2988
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3192
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
2989
3193
  <formly-validation-message [field]="field"></formly-validation-message>
2990
3194
  </div>
2991
3195
 
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>
3196
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3197
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3198
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3199
+ <div class="wrapper__rows__row__remove">
3200
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3201
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3202
+ </button>
3203
+ </div>
2996
3204
  </div>
2997
- </div>
2998
3205
 
2999
- <div>
3000
- <button class="btn btn-primary" type="button" (click)="add()">+</button>
3206
+ <div>
3207
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3208
+ </div>
3001
3209
  </div>
3002
3210
  </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"] }] });
3211
+ `, 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
3212
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
3005
3213
  type: Component,
3006
3214
  args: [{ selector: 'gio-fjs-array-type', template: `
3007
3215
  <div class="wrapper">
3008
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3009
- <p *ngIf="to.description">{{ to.description }}</p>
3216
+ <div class="wrapper__header">
3217
+ <div class="wrapper__header__text">
3218
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3219
+ <p *ngIf="to.description">{{ to.description }}</p>
3220
+ </div>
3221
+ <div class="wrapper__header__collapse">
3222
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3223
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3224
+ </button>
3225
+ </div>
3226
+ </div>
3010
3227
 
3011
- <div class="alert alert-danger" role="alert" *ngIf="showError && formControl.errors">
3228
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3012
3229
  <formly-validation-message [field]="field"></formly-validation-message>
3013
3230
  </div>
3014
3231
 
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>
3232
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3233
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3234
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3235
+ <div class="wrapper__rows__row__remove">
3236
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3237
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3238
+ </button>
3239
+ </div>
3019
3240
  </div>
3020
- </div>
3021
3241
 
3022
- <div>
3023
- <button class="btn btn-primary" type="button" (click)="add()">+</button>
3242
+ <div>
3243
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3244
+ </div>
3024
3245
  </div>
3025
3246
  </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"] }]
3247
+ `, 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
3248
  }] });
3028
3249
 
3029
3250
  function minItemsValidationMessage(error, field) {
@@ -3112,6 +3333,7 @@ function bannerExtension(field) {
3112
3333
  class GioFjsMultiSchemaTypeComponent extends FieldType {
3113
3334
  ngOnInit() {
3114
3335
  set(this.field, 'fieldGroup[0].props.appearance', 'fill');
3336
+ set(this.field, 'fieldGroup[0].props.label', 'Select option');
3115
3337
  }
3116
3338
  }
3117
3339
  GioFjsMultiSchemaTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
@@ -3119,24 +3341,159 @@ GioFjsMultiSchemaTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
3119
3341
  <div class="wrapper">
3120
3342
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3121
3343
  <p *ngIf="props.description">{{ props.description }}</p>
3122
- <div role="alert" *ngIf="showError && formControl.errors">
3344
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3123
3345
  <formly-validation-message [field]="field"></formly-validation-message>
3124
3346
  </div>
3125
3347
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3126
3348
  </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"] }] });
3349
+ `, 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
3350
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsMultiSchemaTypeComponent, decorators: [{
3129
3351
  type: Component,
3130
3352
  args: [{ selector: 'gio-fjs-multi-schema-type', template: `
3131
3353
  <div class="wrapper">
3132
3354
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3133
3355
  <p *ngIf="props.description">{{ props.description }}</p>
3134
- <div role="alert" *ngIf="showError && formControl.errors">
3356
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3135
3357
  <formly-validation-message [field]="field"></formly-validation-message>
3136
3358
  </div>
3137
3359
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
3138
3360
  </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"] }]
3361
+ `, 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"] }]
3362
+ }] });
3363
+
3364
+ /*
3365
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3366
+ *
3367
+ * Licensed under the Apache License, Version 2.0 (the "License");
3368
+ * you may not use this file except in compliance with the License.
3369
+ * You may obtain a copy of the License at
3370
+ *
3371
+ * http://www.apache.org/licenses/LICENSE-2.0
3372
+ *
3373
+ * Unless required by applicable law or agreed to in writing, software
3374
+ * distributed under the License is distributed on an "AS IS" BASIS,
3375
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3376
+ * See the License for the specific language governing permissions and
3377
+ * limitations under the License.
3378
+ */
3379
+ class GioFjsToggleTypeComponent extends FieldType {
3380
+ }
3381
+ GioFjsToggleTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsToggleTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3382
+ GioFjsToggleTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsToggleTypeComponent, selector: "gio-fjs-toggle-type", usesInheritance: true, ngImport: i0, template: `
3383
+ <gio-form-slide-toggle>
3384
+ <gio-form-label>{{ props.label }}</gio-form-label>
3385
+ {{ props.description }}
3386
+ <mat-slide-toggle
3387
+ gioFormSlideToggle
3388
+ [id]="id"
3389
+ [formControl]="formControl"
3390
+ [formlyAttributes]="field"
3391
+ [tabIndex]="props.tabindex"
3392
+ ></mat-slide-toggle>
3393
+ </gio-form-slide-toggle>
3394
+ `, 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"] }] });
3395
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsToggleTypeComponent, decorators: [{
3396
+ type: Component,
3397
+ args: [{
3398
+ selector: 'gio-fjs-toggle-type',
3399
+ template: `
3400
+ <gio-form-slide-toggle>
3401
+ <gio-form-label>{{ props.label }}</gio-form-label>
3402
+ {{ props.description }}
3403
+ <mat-slide-toggle
3404
+ gioFormSlideToggle
3405
+ [id]="id"
3406
+ [formControl]="formControl"
3407
+ [formlyAttributes]="field"
3408
+ [tabIndex]="props.tabindex"
3409
+ ></mat-slide-toggle>
3410
+ </gio-form-slide-toggle>
3411
+ `,
3412
+ }]
3413
+ }] });
3414
+
3415
+ /*
3416
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3417
+ *
3418
+ * Licensed under the Apache License, Version 2.0 (the "License");
3419
+ * you may not use this file except in compliance with the License.
3420
+ * You may obtain a copy of the License at
3421
+ *
3422
+ * http://www.apache.org/licenses/LICENSE-2.0
3423
+ *
3424
+ * Unless required by applicable law or agreed to in writing, software
3425
+ * distributed under the License is distributed on an "AS IS" BASIS,
3426
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3427
+ * See the License for the specific language governing permissions and
3428
+ * limitations under the License.
3429
+ */
3430
+ class GioFjsHeadersTypeComponent extends FieldType {
3431
+ constructor() {
3432
+ super(...arguments);
3433
+ this.defaultOptions = {
3434
+ props: {
3435
+ outputConfig: {
3436
+ keyName: 'name',
3437
+ valueName: 'value',
3438
+ },
3439
+ },
3440
+ };
3441
+ this.collapse = false;
3442
+ }
3443
+ get map() {
3444
+ return (headers) => [...(headers ?? [])].map(header => {
3445
+ return {
3446
+ [this.props.outputConfig.keyName]: header.key,
3447
+ [this.props.outputConfig.valueName]: header.value,
3448
+ };
3449
+ });
3450
+ }
3451
+ }
3452
+ GioFjsHeadersTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3453
+ GioFjsHeadersTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsHeadersTypeComponent, selector: "gio-fjs-headers-type", usesInheritance: true, ngImport: i0, template: `
3454
+ <div class="wrapper">
3455
+ <div class="wrapper__header">
3456
+ <div class="wrapper__header__text">
3457
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3458
+ <p *ngIf="to.description">{{ to.description }}</p>
3459
+ </div>
3460
+ <div class="wrapper__header__collapse">
3461
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3462
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3463
+ </button>
3464
+ </div>
3465
+ </div>
3466
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3467
+ <formly-validation-message [field]="field"></formly-validation-message>
3468
+ </div>
3469
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3470
+ <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
3471
+ </div>
3472
+ </div>
3473
+ `, 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"] }] });
3474
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsHeadersTypeComponent, decorators: [{
3475
+ type: Component,
3476
+ args: [{ selector: 'gio-fjs-headers-type', template: `
3477
+ <div class="wrapper">
3478
+ <div class="wrapper__header">
3479
+ <div class="wrapper__header__text">
3480
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3481
+ <p *ngIf="to.description">{{ to.description }}</p>
3482
+ </div>
3483
+ <div class="wrapper__header__collapse">
3484
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3485
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3486
+ </button>
3487
+ </div>
3488
+ </div>
3489
+ <div class="wrapper__error" *ngIf="showError && formControl.errors">
3490
+ <formly-validation-message [field]="field"></formly-validation-message>
3491
+ </div>
3492
+ <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3493
+ <gio-form-headers [adaptOutputFn]="map" [formControl]="formControl"></gio-form-headers>
3494
+ </div>
3495
+ </div>
3496
+ `, 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
3497
  }] });
3141
3498
 
3142
3499
  /*
@@ -3162,11 +3519,17 @@ GioFormJsonSchemaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
3162
3519
  GioFjsObjectTypeComponent,
3163
3520
  GioFjsMultiSchemaTypeComponent,
3164
3521
  GioFjsArrayTypeComponent,
3522
+ GioFjsToggleTypeComponent,
3523
+ GioFjsHeadersTypeComponent,
3165
3524
  GioFormFieldWrapperComponent], imports: [CommonModule,
3166
3525
  A11yModule,
3167
3526
  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: [[
3527
+ GioIconsModule,
3528
+ GioFormSlideToggleModule,
3529
+ GioFormHeadersModule,
3530
+ MatSlideToggleModule,
3531
+ MatButtonModule], exports: [GioFormJsonSchemaComponent, FormlyModule] });
3532
+ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, providers: [GioFormlyJsonSchemaService], imports: [[
3170
3533
  CommonModule,
3171
3534
  A11yModule,
3172
3535
  ReactiveFormsModule,
@@ -3192,6 +3555,14 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
3192
3555
  { name: 'array', component: GioFjsArrayTypeComponent },
3193
3556
  { name: 'object', component: GioFjsObjectTypeComponent },
3194
3557
  { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },
3558
+ {
3559
+ name: 'toggle',
3560
+ component: GioFjsToggleTypeComponent,
3561
+ },
3562
+ {
3563
+ name: 'gio-headers-array',
3564
+ component: GioFjsHeadersTypeComponent,
3565
+ },
3195
3566
  ],
3196
3567
  extensions: [{ name: 'banner', extension: { onPopulate: bannerExtension } }],
3197
3568
  extras: {
@@ -3200,6 +3571,10 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
3200
3571
  }),
3201
3572
  FormlyMaterialModule,
3202
3573
  GioIconsModule,
3574
+ GioFormSlideToggleModule,
3575
+ GioFormHeadersModule,
3576
+ MatSlideToggleModule,
3577
+ MatButtonModule,
3203
3578
  ], FormlyModule] });
3204
3579
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, decorators: [{
3205
3580
  type: NgModule,
@@ -3210,6 +3585,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3210
3585
  GioFjsObjectTypeComponent,
3211
3586
  GioFjsMultiSchemaTypeComponent,
3212
3587
  GioFjsArrayTypeComponent,
3588
+ GioFjsToggleTypeComponent,
3589
+ GioFjsHeadersTypeComponent,
3213
3590
  GioFormFieldWrapperComponent,
3214
3591
  ],
3215
3592
  imports: [
@@ -3238,6 +3615,14 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3238
3615
  { name: 'array', component: GioFjsArrayTypeComponent },
3239
3616
  { name: 'object', component: GioFjsObjectTypeComponent },
3240
3617
  { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },
3618
+ {
3619
+ name: 'toggle',
3620
+ component: GioFjsToggleTypeComponent,
3621
+ },
3622
+ {
3623
+ name: 'gio-headers-array',
3624
+ component: GioFjsHeadersTypeComponent,
3625
+ },
3241
3626
  ],
3242
3627
  extensions: [{ name: 'banner', extension: { onPopulate: bannerExtension } }],
3243
3628
  extras: {
@@ -3246,11 +3631,32 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3246
3631
  }),
3247
3632
  FormlyMaterialModule,
3248
3633
  GioIconsModule,
3634
+ GioFormSlideToggleModule,
3635
+ GioFormHeadersModule,
3636
+ MatSlideToggleModule,
3637
+ MatButtonModule,
3249
3638
  ],
3250
3639
  exports: [GioFormJsonSchemaComponent, FormlyModule],
3640
+ providers: [GioFormlyJsonSchemaService],
3251
3641
  }]
3252
3642
  }] });
3253
3643
 
3644
+ /*
3645
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3646
+ *
3647
+ * Licensed under the Apache License, Version 2.0 (the "License");
3648
+ * you may not use this file except in compliance with the License.
3649
+ * You may obtain a copy of the License at
3650
+ *
3651
+ * http://www.apache.org/licenses/LICENSE-2.0
3652
+ *
3653
+ * Unless required by applicable law or agreed to in writing, software
3654
+ * distributed under the License is distributed on an "AS IS" BASIS,
3655
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3656
+ * See the License for the specific language governing permissions and
3657
+ * limitations under the License.
3658
+ */
3659
+
3254
3660
  /*
3255
3661
  * Copyright (C) 2021 The Gravitee team (http://gravitee.io)
3256
3662
  *
@@ -3287,5 +3693,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3287
3693
  * Generated bundle index. Do not edit.
3288
3694
  */
3289
3695
 
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 };
3696
+ 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
3697
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map