@gravitee/ui-particles-angular 5.20.1-json-schema-code-editor-7ccffa8 → 5.20.1-sprite-icons-documentation-65888ab

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 (27) hide show
  1. package/esm2020/lib/gio-form-json-schema/gio-form-json-schema.module.mjs +6 -27
  2. package/esm2020/lib/gio-form-json-schema/gio-formly-json-schema.service.mjs +1 -4
  3. package/esm2020/lib/gio-form-json-schema/model/GioJsonSchema.mjs +1 -1
  4. package/esm2020/lib/gio-form-json-schema/wrappers/gio-form-field-wrapper.component.mjs +28 -0
  5. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.component.mjs +28 -26
  6. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.module.mjs +4 -5
  7. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.testing.component.mjs +17 -3
  8. package/esm2020/lib/gio-monaco-editor/services/gio-language-json.service.mjs +1 -2
  9. package/esm2020/lib/public-api.mjs +1 -2
  10. package/fesm2015/gravitee-ui-particles-angular.mjs +625 -832
  11. package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
  12. package/fesm2020/gravitee-ui-particles-angular.mjs +817 -1017
  13. package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -1
  14. package/lib/gio-form-json-schema/gio-form-json-schema.module.d.ts +13 -16
  15. package/lib/gio-form-json-schema/model/GioJsonSchema.d.ts +1 -4
  16. package/lib/gio-form-json-schema/wrappers/gio-form-field-wrapper.component.d.ts +6 -0
  17. package/lib/gio-monaco-editor/gio-monaco-editor.component.d.ts +8 -9
  18. package/lib/gio-monaco-editor/gio-monaco-editor.module.d.ts +4 -5
  19. package/lib/gio-monaco-editor/services/gio-language-json.service.d.ts +0 -1
  20. package/lib/public-api.d.ts +0 -1
  21. package/package.json +1 -1
  22. package/esm2020/lib/gio-form-json-schema/type-component/code-editor-type.component.mjs +0 -58
  23. package/esm2020/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.mjs +0 -28
  24. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.mjs +0 -149
  25. package/lib/gio-form-json-schema/type-component/code-editor-type.component.d.ts +0 -13
  26. package/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.d.ts +0 -6
  27. package/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.d.ts +0 -45
@@ -13,7 +13,7 @@ import { ComponentHarness, HarnessPredicate, parallel, TestKey } from '@angular/
13
13
  import { coerceBooleanProperty } from '@angular/cdk/coercion';
14
14
  import * as i3$1 from '@angular/material/form-field';
15
15
  import { MatFormFieldControl, MatFormFieldModule, MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';
16
- import { isEmpty, toLower, dropRight, isNil, isArray, remove, isObject, cloneDeep, uniqueId, set } from 'lodash';
16
+ import { isEmpty, toLower, dropRight, isNil, isArray, remove, isObject, cloneDeep, set, uniqueId } from 'lodash';
17
17
  import { startWith, map, distinctUntilChanged, tap, debounce, takeUntil, delay, filter, switchMap, debounceTime } from 'rxjs/operators';
18
18
  import * as i7 from '@angular/forms';
19
19
  import { FormsModule, FormArray, FormGroup, FormControl, NG_VALUE_ACCESSOR, ReactiveFormsModule, NgControl } from '@angular/forms';
@@ -47,7 +47,7 @@ import { toSvg } from 'jdenticon';
47
47
  import * as i1$3 from '@ngx-formly/core/json-schema';
48
48
  import * as i1$4 from '@ngx-formly/core';
49
49
  import { FieldType, FieldArrayType, FieldWrapper, FormlyModule } from '@ngx-formly/core';
50
- import { FieldType as FieldType$1, FormlyMaterialModule } from '@ngx-formly/material';
50
+ import { FormlyMaterialModule } from '@ngx-formly/material';
51
51
  import * as i3$2 from '@angular/material/slide-toggle';
52
52
  import { MatSlideToggle, MatSlideToggleModule } from '@angular/material/slide-toggle';
53
53
  import { TestBed } from '@angular/core/testing';
@@ -2823,9 +2823,6 @@ class GioFormlyJsonSchemaService {
2823
2823
  else if (mapSource.type === 'string' && mapSource.format === 'password') {
2824
2824
  mappedField.props = Object.assign(Object.assign({}, mappedField.props), { type: 'password' });
2825
2825
  }
2826
- else if (mapSource.type === 'string' && mapSource.format === 'gio-code-editor') {
2827
- mappedField.type = 'gio-code-editor';
2828
- }
2829
2826
  return mappedField;
2830
2827
  }
2831
2828
  bannerMap(mappedField, mapSource) {
@@ -3143,7 +3140,17 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3143
3140
  * See the License for the specific language governing permissions and
3144
3141
  * limitations under the License.
3145
3142
  */
3146
- const GIO_MONACO_EDITOR_CONFIG = new InjectionToken('gio-monaco-editor-config');
3143
+ class GioFjsNullTypeComponent extends FieldType {
3144
+ }
3145
+ GioFjsNullTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsNullTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3146
+ GioFjsNullTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsNullTypeComponent, selector: "gio-fjs-null-type", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
3147
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsNullTypeComponent, decorators: [{
3148
+ type: Component,
3149
+ args: [{
3150
+ selector: 'gio-fjs-null-type',
3151
+ template: ``,
3152
+ }]
3153
+ }] });
3147
3154
 
3148
3155
  /*
3149
3156
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
@@ -3160,53 +3167,39 @@ const GIO_MONACO_EDITOR_CONFIG = new InjectionToken('gio-monaco-editor-config');
3160
3167
  * See the License for the specific language governing permissions and
3161
3168
  * limitations under the License.
3162
3169
  */
3163
- class GioMonacoEditorService {
3164
- constructor() {
3165
- this.loaded$ = new ReplaySubject(1);
3166
- this.loaded = false;
3167
- }
3168
- loadEditor() {
3169
- if (this.loaded) {
3170
- // Already loaded, do nothing.
3171
- return Promise.resolve();
3172
- }
3173
- this.loaded = true;
3174
- return new Promise(resolve => {
3175
- // Monaco is already loaded
3176
- if (typeof window.monaco === 'object') {
3177
- resolve();
3178
- return;
3179
- }
3180
- const onGotAmdLoader = () => {
3181
- // Load Monaco
3182
- window.require.config({ paths: { vs: 'assets/monaco-editor/min/vs' } });
3183
- window.require(['vs/editor/editor.main'], () => {
3184
- resolve();
3185
- });
3186
- };
3187
- // Load AMD loader if necessary
3188
- if (!window.require) {
3189
- const loaderScript = document.createElement('script');
3190
- loaderScript.type = 'text/javascript';
3191
- loaderScript.src = 'assets/monaco-editor/min/vs/loader.js';
3192
- loaderScript.addEventListener('load', onGotAmdLoader);
3193
- document.body.appendChild(loaderScript);
3194
- }
3195
- else {
3196
- onGotAmdLoader();
3197
- }
3198
- }).then(() => {
3199
- this.loaded$.next({ monaco: window.monaco });
3200
- });
3201
- }
3170
+ class GioFjsObjectTypeComponent extends FieldType {
3202
3171
  }
3203
- GioMonacoEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3204
- GioMonacoEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, providedIn: 'root' });
3205
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, decorators: [{
3206
- type: Injectable,
3207
- args: [{
3208
- providedIn: 'root',
3209
- }]
3172
+ GioFjsObjectTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3173
+ GioFjsObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsObjectTypeComponent, selector: "gio-fjs-object-type", usesInheritance: true, ngImport: i0, template: `
3174
+ <div class="wrapper">
3175
+ <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3176
+ <p *ngIf="to.description">{{ to.description }}</p>
3177
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3178
+ <formly-validation-message [field]="field"></formly-validation-message>
3179
+ </div>
3180
+ <div class="wrapper__fields">
3181
+ <ng-container *ngFor="let f of field.fieldGroup">
3182
+ <formly-field *ngIf="f.type" class="wrapper__fields__field" [field]="f"></formly-field>
3183
+ </ng-container>
3184
+ </div>
3185
+ </div>
3186
+ `, 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:has(> .wrapper__fields__field:only-child):has(> .wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"], 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"] }] });
3187
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
3188
+ type: Component,
3189
+ args: [{ selector: 'gio-fjs-object-type', template: `
3190
+ <div class="wrapper">
3191
+ <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3192
+ <p *ngIf="to.description">{{ to.description }}</p>
3193
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3194
+ <formly-validation-message [field]="field"></formly-validation-message>
3195
+ </div>
3196
+ <div class="wrapper__fields">
3197
+ <ng-container *ngFor="let f of field.fieldGroup">
3198
+ <formly-field *ngIf="f.type" class="wrapper__fields__field" [field]="f"></formly-field>
3199
+ </ng-container>
3200
+ </div>
3201
+ </div>
3202
+ `, 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:has(> .wrapper__fields__field:only-child):has(> .wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"] }]
3210
3203
  }] });
3211
3204
 
3212
3205
  /*
@@ -3224,54 +3217,128 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3224
3217
  * See the License for the specific language governing permissions and
3225
3218
  * limitations under the License.
3226
3219
  */
3227
- class GioLanguageJsonService {
3228
- constructor(codeEditorService) {
3229
- this.codeEditorService = codeEditorService;
3230
- this.unsubscribe$ = new Subject();
3231
- codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {
3232
- this.setup(event.monaco);
3233
- });
3234
- }
3235
- ngOnDestroy() {
3236
- this.unsubscribe$.next();
3237
- this.unsubscribe$.complete();
3238
- }
3239
- setup(monaco) {
3240
- if (!monaco) {
3241
- throw new Error('Monaco is not loaded');
3242
- }
3243
- this.monaco = monaco;
3244
- const defaults = monaco.languages.json.jsonDefaults;
3245
- defaults.setDiagnosticsOptions({
3246
- validate: true,
3247
- allowComments: true,
3248
- });
3249
- }
3250
- addSchemas(id, definitions = []) {
3251
- if (!this.monaco) {
3252
- throw new Error('Monaco is not loaded');
3253
- }
3254
- const defaults = this.monaco.languages.json.jsonDefaults;
3255
- const options = defaults.diagnosticsOptions;
3256
- let schemas = definitions.map(({ uri, schema }) => ({
3257
- uri,
3258
- schema,
3259
- fileMatch: [id || '*.json'],
3260
- }));
3261
- if (options && options.schemas && options.schemas.length > 0) {
3262
- schemas = [...options.schemas, ...schemas];
3263
- }
3264
- defaults.setDiagnosticsOptions(Object.assign(Object.assign({}, options), { schemas: schemas }));
3220
+ class GioFjsArrayTypeComponent extends FieldArrayType {
3221
+ constructor() {
3222
+ super(...arguments);
3223
+ this.collapse = false;
3265
3224
  }
3266
3225
  }
3267
- GioLanguageJsonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, deps: [{ token: GioMonacoEditorService }], target: i0.ɵɵFactoryTarget.Injectable });
3268
- GioLanguageJsonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, providedIn: 'root' });
3269
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, decorators: [{
3270
- type: Injectable,
3271
- args: [{
3272
- providedIn: 'root',
3273
- }]
3274
- }], ctorParameters: function () { return [{ type: GioMonacoEditorService }]; } });
3226
+ GioFjsArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3227
+ GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsArrayTypeComponent, selector: "gio-fjs-array-type", usesInheritance: true, ngImport: i0, template: `
3228
+ <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3229
+ <div class="wrapper__header">
3230
+ <div class="wrapper__header__text">
3231
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3232
+ <p *ngIf="to.description">{{ to.description }}</p>
3233
+ </div>
3234
+ <div class="wrapper__header__collapse">
3235
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3236
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3237
+ </button>
3238
+ </div>
3239
+ </div>
3240
+
3241
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3242
+ <formly-validation-message [field]="field"></formly-validation-message>
3243
+ </div>
3244
+
3245
+ <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3246
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3247
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3248
+ <div class="wrapper__rows__row__remove">
3249
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3250
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3251
+ </button>
3252
+ </div>
3253
+ </div>
3254
+
3255
+ <div>
3256
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3257
+ </div>
3258
+ </div>
3259
+ </div>
3260
+ `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper.error{border-color:#ec4899}.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"] }] });
3261
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
3262
+ type: Component,
3263
+ args: [{ selector: 'gio-fjs-array-type', template: `
3264
+ <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3265
+ <div class="wrapper__header">
3266
+ <div class="wrapper__header__text">
3267
+ <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3268
+ <p *ngIf="to.description">{{ to.description }}</p>
3269
+ </div>
3270
+ <div class="wrapper__header__collapse">
3271
+ <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3272
+ <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3273
+ </button>
3274
+ </div>
3275
+ </div>
3276
+
3277
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3278
+ <formly-validation-message [field]="field"></formly-validation-message>
3279
+ </div>
3280
+
3281
+ <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3282
+ <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3283
+ <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3284
+ <div class="wrapper__rows__row__remove">
3285
+ <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3286
+ <mat-icon svgIcon="gio:cancel"></mat-icon>
3287
+ </button>
3288
+ </div>
3289
+ </div>
3290
+
3291
+ <div>
3292
+ <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3293
+ </div>
3294
+ </div>
3295
+ </div>
3296
+ `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper.error{border-color:#ec4899}.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"] }]
3297
+ }] });
3298
+
3299
+ function minItemsValidationMessage(error, field) {
3300
+ var _a;
3301
+ return `Should NOT have fewer than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.minItems} items`;
3302
+ }
3303
+ function maxItemsValidationMessage(error, field) {
3304
+ var _a;
3305
+ return `Should NOT have more than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.maxItems} items`;
3306
+ }
3307
+ function minLengthValidationMessage(error, field) {
3308
+ var _a;
3309
+ return `Should NOT be shorter than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.minLength} characters`;
3310
+ }
3311
+ function maxLengthValidationMessage(error, field) {
3312
+ var _a;
3313
+ return `Should NOT be longer than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.maxLength} characters`;
3314
+ }
3315
+ function minValidationMessage(error, field) {
3316
+ var _a;
3317
+ return `Should be >= ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.min}`;
3318
+ }
3319
+ function maxValidationMessage(error, field) {
3320
+ var _a;
3321
+ return `Should be <= ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.max}`;
3322
+ }
3323
+ function multipleOfValidationMessage(error, field) {
3324
+ var _a;
3325
+ return `Should be multiple of ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3326
+ }
3327
+ function exclusiveMinimumValidationMessage(error, field) {
3328
+ var _a;
3329
+ return `Should be > ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3330
+ }
3331
+ function exclusiveMaximumValidationMessage(error, field) {
3332
+ var _a;
3333
+ return `Should be < ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3334
+ }
3335
+ function constValidationMessage(error, field) {
3336
+ var _a;
3337
+ return `Should be equal to constant "${(_a = field.props) === null || _a === void 0 ? void 0 : _a.const}"`;
3338
+ }
3339
+ function typeValidationMessage({ schemaType }) {
3340
+ return `Should be "${schemaType[0]}".`;
3341
+ }
3275
3342
 
3276
3343
  /*
3277
3344
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
@@ -3288,589 +3355,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3288
3355
  * See the License for the specific language governing permissions and
3289
3356
  * limitations under the License.
3290
3357
  */
3291
- class GioMonacoEditorComponent {
3292
- constructor(hostElement, config, monacoEditorService, languageJsonService, changeDetectorRef, ngZone, ngControl) {
3293
- this.hostElement = hostElement;
3294
- this.config = config;
3295
- this.monacoEditorService = monacoEditorService;
3296
- this.languageJsonService = languageJsonService;
3297
- this.changeDetectorRef = changeDetectorRef;
3298
- this.ngZone = ngZone;
3299
- this.ngControl = ngControl;
3300
- this.options = {};
3301
- this.loaded$ = new ReplaySubject(1);
3302
- this.defaultOptions = {
3303
- contextmenu: false,
3304
- minimap: {
3305
- enabled: true,
3306
- },
3307
- automaticLayout: true,
3308
- scrollBeyondLastLine: false,
3309
- };
3310
- this.value = '';
3311
- this.readOnly = false;
3312
- this._onChange = () => ({});
3313
- this._onTouched = () => ({});
3314
- this.unsubscribe$ = new Subject();
3315
- if (this.ngControl) {
3316
- // Set the value accessor directly (instead of providing
3317
- // NG_VALUE_ACCESSOR) to avoid running into a circular import
3318
- this.ngControl.valueAccessor = this;
3319
- }
3320
- this.monacoEditorService.loadEditor();
3321
- }
3322
- ngAfterViewInit() {
3323
- // Wait until monaco editor is available
3324
- this.monacoEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(({ monaco }) => {
3325
- this.setupEditor(monaco);
3326
- this.loaded$.next(false);
3327
- this.changeDetectorRef.detectChanges();
3328
- });
3329
- }
3330
- ngOnDestroy() {
3331
- if (this.standaloneCodeEditor) {
3332
- this.standaloneCodeEditor.dispose();
3333
- this.standaloneCodeEditor = undefined;
3334
- }
3335
- if (this.textModel) {
3336
- this.textModel.dispose();
3337
- this.textModel = undefined;
3338
- }
3339
- this.unsubscribe$.next();
3340
- this.unsubscribe$.complete();
3341
- }
3342
- // From ControlValueAccessor interface
3343
- writeValue(_value) {
3344
- if (_value) {
3345
- this.value = _value;
3346
- }
3347
- if (this.textModel) {
3348
- this.textModel.setValue(this.value);
3349
- }
3350
- }
3351
- // From ControlValueAccessor interface
3352
- registerOnChange(fn) {
3353
- this._onChange = fn;
3354
- }
3355
- // From ControlValueAccessor interface
3356
- registerOnTouched(fn) {
3357
- this._onTouched = fn;
3358
- }
3359
- // From ControlValueAccessor interface
3360
- setDisabledState(isDisabled) {
3361
- this.readOnly = isDisabled;
3362
- }
3363
- setupEditor(monaco) {
3364
- var _a, _b, _c, _d, _e;
3365
- if (!this.hostElement) {
3366
- throw new Error('No editor ref found.');
3367
- }
3368
- const domElement = this.hostElement.nativeElement;
3369
- const settings = {
3370
- value: this.value,
3371
- language: (_b = (_a = this.languageConfig) === null || _a === void 0 ? void 0 : _a.language) !== null && _b !== void 0 ? _b : 'text',
3372
- uri: `code-${uniqueId()}`,
3373
- };
3374
- this.ngZone.runOutsideAngular(() => {
3375
- this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.parse(settings.uri));
3376
- });
3377
- const options = Object.assign({}, this.defaultOptions, this.options, {
3378
- readOnly: this.readOnly,
3379
- theme: (_c = this.config.theme) !== null && _c !== void 0 ? _c : 'vs',
3380
- model: this.textModel,
3381
- });
3382
- this.standaloneCodeEditor = monaco.editor.create(domElement, Object.assign({}, options));
3383
- (_d = this.textModel) === null || _d === void 0 ? void 0 : _d.onDidChangeContent(() => {
3384
- var _a;
3385
- const newValue = (_a = this.textModel) === null || _a === void 0 ? void 0 : _a.getValue();
3386
- this.ngZone.run(() => {
3387
- this.value = newValue !== null && newValue !== void 0 ? newValue : '';
3388
- this._onChange(newValue !== null && newValue !== void 0 ? newValue : '');
3389
- this._onTouched();
3390
- });
3391
- });
3392
- (_e = this.standaloneCodeEditor) === null || _e === void 0 ? void 0 : _e.onDidBlurEditorWidget(() => {
3393
- this.ngZone.run(() => {
3394
- this._onTouched();
3395
- });
3396
- });
3397
- this.setupLanguage(settings.uri, this.languageConfig);
3398
- }
3399
- setupLanguage(uri, languageConfig) {
3400
- if (!languageConfig) {
3401
- return;
3402
- }
3403
- const { language } = languageConfig;
3404
- if (language) {
3405
- const lang = language.toLowerCase();
3406
- switch (lang) {
3407
- case 'json':
3408
- if (languageConfig.schemas) {
3409
- this.languageJsonService.addSchemas(uri, languageConfig.schemas);
3410
- }
3411
- break;
3412
- default:
3413
- break;
3414
- }
3415
- }
3416
- }
3417
- }
3418
- GioMonacoEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, deps: [{ token: i0.ElementRef }, { token: GIO_MONACO_EDITOR_CONFIG }, { token: GioMonacoEditorService }, { token: GioLanguageJsonService }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }, { token: i7.NgControl, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Component });
3419
- GioMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options" }, ngImport: i0, template: ` <div *ngIf="loaded$ | async">Loading...</div>`, isInline: true, styles: [":host{display:block;height:100%;min-height:150px;transition:opacity .2s ease-out}:host-context(.hidden){opacity:0}\n"], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }], pipes: { "async": i2$1.AsyncPipe }, changeDetection: i0.ChangeDetectionStrategy.OnPush });
3420
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
3421
- type: Component,
3422
- args: [{ selector: 'gio-monaco-editor', template: ` <div *ngIf="loaded$ | async">Loading...</div>`, changeDetection: ChangeDetectionStrategy.OnPush, styles: [":host{display:block;height:100%;min-height:150px;transition:opacity .2s ease-out}:host-context(.hidden){opacity:0}\n"] }]
3423
- }], ctorParameters: function () {
3424
- return [{ type: i0.ElementRef }, { type: undefined, decorators: [{
3425
- type: Inject,
3426
- args: [GIO_MONACO_EDITOR_CONFIG]
3427
- }] }, { type: GioMonacoEditorService }, { type: GioLanguageJsonService }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }, { type: i7.NgControl, decorators: [{
3428
- type: Optional
3429
- }, {
3430
- type: Self
3431
- }] }];
3432
- }, propDecorators: { languageConfig: [{
3433
- type: Input
3434
- }], options: [{
3435
- type: Input
3436
- }] } });
3437
-
3438
- class GioMonacoEditorFormFieldDirective {
3439
- constructor(elementRef, focusMonitor, renderer, changeDetectorRef, hostGioMonacoEditorComponent) {
3440
- this.elementRef = elementRef;
3441
- this.focusMonitor = focusMonitor;
3442
- this.renderer = renderer;
3443
- this.changeDetectorRef = changeDetectorRef;
3444
- this.hostGioMonacoEditorComponent = hostGioMonacoEditorComponent;
3445
- this.stateChanges = new Subject();
3446
- this.id = `gio-monaco-editor-${GioMonacoEditorFormFieldDirective.nextId++}`;
3447
- this.userAriaDescribedBy = '';
3448
- this.ngControl = null;
3449
- this.focused = false;
3450
- this.errorState = false;
3451
- this.controlType = 'gio-monaco-editor';
3452
- // autofilled?: boolean | undefined;
3453
- this._placeholder = '';
3454
- this._required = false;
3455
- this._disabled = false;
3456
- this.maxHeight = 500;
3457
- this.unsubscribe$ = new Subject();
3458
- }
3459
- get value() {
3460
- var _a, _b;
3461
- return (_b = (_a = this.hostGioMonacoEditorComponent) === null || _a === void 0 ? void 0 : _a.value) !== null && _b !== void 0 ? _b : null;
3462
- }
3463
- set placeholder(placeholder) {
3464
- this._placeholder = placeholder;
3465
- this.stateChanges.next();
3466
- }
3467
- get placeholder() {
3468
- return this._placeholder;
3469
- }
3470
- set required(required) {
3471
- this._required = coerceBooleanProperty(required);
3472
- this.stateChanges.next();
3473
- }
3474
- get required() {
3475
- return this._required;
3476
- }
3477
- set disabled(disabled) {
3478
- this._disabled = coerceBooleanProperty(disabled);
3479
- if (this.focused) {
3480
- this.focused = false;
3481
- this.stateChanges.next();
3482
- }
3483
- }
3484
- get disabled() {
3485
- if (this.ngControl && this.ngControl.disabled !== null) {
3486
- return this.ngControl.disabled;
3487
- }
3488
- return this._disabled;
3489
- }
3490
- get empty() {
3491
- return !this.value;
3492
- }
3493
- get shouldLabelFloat() {
3494
- return this.focused || !this.empty;
3495
- }
3496
- get shouldHideEditor() {
3497
- return !this.shouldLabelFloat;
3498
- }
3499
- ngOnInit() {
3500
- var _a;
3501
- this.stateChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.changeDetectorRef.markForCheck());
3502
- this.focusMonitor
3503
- .monitor(this.elementRef.nativeElement, true)
3504
- .pipe(takeUntil(this.unsubscribe$))
3505
- .subscribe(origin => {
3506
- this.focused = !!origin;
3507
- this.stateChanges.next();
3508
- });
3509
- this.ngControl = (_a = this.hostGioMonacoEditorComponent) === null || _a === void 0 ? void 0 : _a.ngControl;
3510
- this.hostGioMonacoEditorComponent.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {
3511
- var _a;
3512
- // Auto resize editor
3513
- (_a = this.hostGioMonacoEditorComponent.standaloneCodeEditor) === null || _a === void 0 ? void 0 : _a.onDidContentSizeChange(() => {
3514
- var _a, _b, _c;
3515
- const height = Math.min((_b = (_a = this.hostGioMonacoEditorComponent.standaloneCodeEditor) === null || _a === void 0 ? void 0 : _a.getContentHeight()) !== null && _b !== void 0 ? _b : this.maxHeight, this.maxHeight);
3516
- this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${height}px`);
3517
- (_c = this.hostGioMonacoEditorComponent.standaloneCodeEditor) === null || _c === void 0 ? void 0 : _c.layout();
3518
- this.stateChanges.next();
3519
- });
3520
- });
3521
- }
3522
- ngDoCheck() {
3523
- if (this.ngControl) {
3524
- this.errorState = !!this.ngControl.invalid && !!this.ngControl.touched;
3525
- this.stateChanges.next();
3526
- }
3527
- }
3528
- ngOnDestroy() {
3529
- this.unsubscribe$.next();
3530
- this.unsubscribe$.complete();
3531
- this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);
3532
- }
3533
- setDescribedByIds(ids) {
3534
- this.userAriaDescribedBy = ids.join(' ');
3535
- }
3536
- onContainerClick(_event) {
3537
- var _a;
3538
- if (!this.focused) {
3539
- (_a = this.hostGioMonacoEditorComponent.standaloneCodeEditor) === null || _a === void 0 ? void 0 : _a.focus();
3540
- }
3541
- }
3542
- }
3543
- GioMonacoEditorFormFieldDirective.nextId = 0;
3544
- GioMonacoEditorFormFieldDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorFormFieldDirective, deps: [{ token: i0.ElementRef }, { token: i2$2.FocusMonitor }, { token: i0.Renderer2 }, { token: i0.ChangeDetectorRef }, { token: GioMonacoEditorComponent, host: true, optional: true, self: true }], target: i0.ɵɵFactoryTarget.Directive });
3545
- GioMonacoEditorFormFieldDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: { placeholder: "placeholder", required: "required", disabled: "disabled" }, host: { properties: { "id": "this.id", "attr.aria-describedBy": "this.userAriaDescribedBy", "class.hidden": "this.shouldHideEditor" } }, providers: [
3546
- {
3547
- provide: MatFormFieldControl,
3548
- useExisting: forwardRef(() => GioMonacoEditorFormFieldDirective),
3549
- },
3550
- ], ngImport: i0 });
3551
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorFormFieldDirective, decorators: [{
3552
- type: Directive,
3553
- args: [{
3554
- selector: '[gioMonacoEditorFormField]',
3555
- providers: [
3556
- {
3557
- provide: MatFormFieldControl,
3558
- useExisting: forwardRef(() => GioMonacoEditorFormFieldDirective),
3559
- },
3560
- ],
3561
- }]
3562
- }], ctorParameters: function () {
3563
- return [{ type: i0.ElementRef }, { type: i2$2.FocusMonitor }, { type: i0.Renderer2 }, { type: i0.ChangeDetectorRef }, { type: GioMonacoEditorComponent, decorators: [{
3564
- type: Host
3565
- }, {
3566
- type: Self
3567
- }, {
3568
- type: Optional
3569
- }] }];
3570
- }, propDecorators: { id: [{
3571
- type: HostBinding
3572
- }], userAriaDescribedBy: [{
3573
- type: HostBinding,
3574
- args: ['attr.aria-describedBy']
3575
- }], placeholder: [{
3576
- type: Input
3577
- }], required: [{
3578
- type: Input
3579
- }], disabled: [{
3580
- type: Input
3581
- }], shouldHideEditor: [{
3582
- type: HostBinding,
3583
- args: ['class.hidden']
3584
- }] } });
3585
-
3586
- /*
3587
- * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3588
- *
3589
- * Licensed under the Apache License, Version 2.0 (the "License");
3590
- * you may not use this file except in compliance with the License.
3591
- * You may obtain a copy of the License at
3592
- *
3593
- * http://www.apache.org/licenses/LICENSE-2.0
3594
- *
3595
- * Unless required by applicable law or agreed to in writing, software
3596
- * distributed under the License is distributed on an "AS IS" BASIS,
3597
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3598
- * See the License for the specific language governing permissions and
3599
- * limitations under the License.
3600
- */
3601
- class GioMonacoEditorModule {
3602
- static forRoot(config) {
3603
- return {
3604
- ngModule: GioMonacoEditorModule,
3605
- providers: [
3606
- {
3607
- provide: GIO_MONACO_EDITOR_CONFIG,
3608
- useValue: config,
3609
- },
3610
- ],
3611
- };
3612
- }
3613
- }
3614
- GioMonacoEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3615
- GioMonacoEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, declarations: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective], imports: [CommonModule, HttpClientModule, ReactiveFormsModule], exports: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective] });
3616
- GioMonacoEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, providers: [
3617
- {
3618
- provide: GIO_MONACO_EDITOR_CONFIG,
3619
- useValue: {},
3620
- },
3621
- ], imports: [[CommonModule, HttpClientModule, ReactiveFormsModule]] });
3622
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, decorators: [{
3623
- type: NgModule,
3624
- args: [{
3625
- imports: [CommonModule, HttpClientModule, ReactiveFormsModule],
3626
- declarations: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective],
3627
- exports: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective],
3628
- providers: [
3629
- {
3630
- provide: GIO_MONACO_EDITOR_CONFIG,
3631
- useValue: {},
3632
- },
3633
- ],
3634
- }]
3635
- }] });
3636
-
3637
- /*
3638
- * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3639
- *
3640
- * Licensed under the Apache License, Version 2.0 (the "License");
3641
- * you may not use this file except in compliance with the License.
3642
- * You may obtain a copy of the License at
3643
- *
3644
- * http://www.apache.org/licenses/LICENSE-2.0
3645
- *
3646
- * Unless required by applicable law or agreed to in writing, software
3647
- * distributed under the License is distributed on an "AS IS" BASIS,
3648
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3649
- * See the License for the specific language governing permissions and
3650
- * limitations under the License.
3651
- */
3652
- class GioFjsNullTypeComponent extends FieldType {
3653
- }
3654
- GioFjsNullTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsNullTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3655
- GioFjsNullTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsNullTypeComponent, selector: "gio-fjs-null-type", usesInheritance: true, ngImport: i0, template: ``, isInline: true });
3656
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsNullTypeComponent, decorators: [{
3657
- type: Component,
3658
- args: [{
3659
- selector: 'gio-fjs-null-type',
3660
- template: ``,
3661
- }]
3662
- }] });
3663
-
3664
- /*
3665
- * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3666
- *
3667
- * Licensed under the Apache License, Version 2.0 (the "License");
3668
- * you may not use this file except in compliance with the License.
3669
- * You may obtain a copy of the License at
3670
- *
3671
- * http://www.apache.org/licenses/LICENSE-2.0
3672
- *
3673
- * Unless required by applicable law or agreed to in writing, software
3674
- * distributed under the License is distributed on an "AS IS" BASIS,
3675
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3676
- * See the License for the specific language governing permissions and
3677
- * limitations under the License.
3678
- */
3679
- class GioFjsObjectTypeComponent extends FieldType {
3680
- }
3681
- GioFjsObjectTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3682
- GioFjsObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsObjectTypeComponent, selector: "gio-fjs-object-type", usesInheritance: true, ngImport: i0, template: `
3683
- <div class="wrapper">
3684
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3685
- <p *ngIf="to.description">{{ to.description }}</p>
3686
- <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3687
- <formly-validation-message [field]="field"></formly-validation-message>
3688
- </div>
3689
- <div class="wrapper__fields">
3690
- <ng-container *ngFor="let f of field.fieldGroup">
3691
- <formly-field *ngIf="f.type" class="wrapper__fields__field" [field]="f"></formly-field>
3692
- </ng-container>
3693
- </div>
3694
- </div>
3695
- `, 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:has(> .wrapper__fields__field:only-child):has(> .wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"], 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"] }] });
3696
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsObjectTypeComponent, decorators: [{
3697
- type: Component,
3698
- args: [{ selector: 'gio-fjs-object-type', template: `
3699
- <div class="wrapper">
3700
- <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3701
- <p *ngIf="to.description">{{ to.description }}</p>
3702
- <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3703
- <formly-validation-message [field]="field"></formly-validation-message>
3704
- </div>
3705
- <div class="wrapper__fields">
3706
- <ng-container *ngFor="let f of field.fieldGroup">
3707
- <formly-field *ngIf="f.type" class="wrapper__fields__field" [field]="f"></formly-field>
3708
- </ng-container>
3709
- </div>
3710
- </div>
3711
- `, 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:has(> .wrapper__fields__field:only-child):has(> .wrapper__fields__field:empty){display:none}.wrapper__fields__field:empty{display:none}.wrapper__fields__field+.wrapper__fields__field:not(:empty){display:block;margin-top:8px}\n"] }]
3712
- }] });
3713
-
3714
- /*
3715
- * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3716
- *
3717
- * Licensed under the Apache License, Version 2.0 (the "License");
3718
- * you may not use this file except in compliance with the License.
3719
- * You may obtain a copy of the License at
3720
- *
3721
- * http://www.apache.org/licenses/LICENSE-2.0
3722
- *
3723
- * Unless required by applicable law or agreed to in writing, software
3724
- * distributed under the License is distributed on an "AS IS" BASIS,
3725
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3726
- * See the License for the specific language governing permissions and
3727
- * limitations under the License.
3728
- */
3729
- class GioFjsArrayTypeComponent extends FieldArrayType {
3730
- constructor() {
3731
- super(...arguments);
3732
- this.collapse = false;
3733
- }
3734
- }
3735
- GioFjsArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3736
- GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsArrayTypeComponent, selector: "gio-fjs-array-type", usesInheritance: true, ngImport: i0, template: `
3737
- <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3738
- <div class="wrapper__header">
3739
- <div class="wrapper__header__text">
3740
- <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3741
- <p *ngIf="to.description">{{ to.description }}</p>
3742
- </div>
3743
- <div class="wrapper__header__collapse">
3744
- <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3745
- <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3746
- </button>
3747
- </div>
3748
- </div>
3749
-
3750
- <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3751
- <formly-validation-message [field]="field"></formly-validation-message>
3752
- </div>
3753
-
3754
- <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3755
- <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3756
- <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3757
- <div class="wrapper__rows__row__remove">
3758
- <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3759
- <mat-icon svgIcon="gio:cancel"></mat-icon>
3760
- </button>
3761
- </div>
3762
- </div>
3763
-
3764
- <div>
3765
- <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3766
- </div>
3767
- </div>
3768
- </div>
3769
- `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper.error{border-color:#ec4899}.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"] }] });
3770
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
3771
- type: Component,
3772
- args: [{ selector: 'gio-fjs-array-type', template: `
3773
- <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3774
- <div class="wrapper__header">
3775
- <div class="wrapper__header__text">
3776
- <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
3777
- <p *ngIf="to.description">{{ to.description }}</p>
3778
- </div>
3779
- <div class="wrapper__header__collapse">
3780
- <button type="button" mat-icon-button aria-label="Collapse" (click)="collapse = !collapse">
3781
- <mat-icon [class.collapse-open]="collapse" [class.collapse-close]="!collapse" svgIcon="gio:nav-arrow-down"></mat-icon>
3782
- </button>
3783
- </div>
3784
- </div>
3785
-
3786
- <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3787
- <formly-validation-message [field]="field"></formly-validation-message>
3788
- </div>
3789
-
3790
- <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3791
- <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3792
- <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3793
- <div class="wrapper__rows__row__remove">
3794
- <button type="button" mat-icon-button aria-label="Remove" (click)="remove(i)">
3795
- <mat-icon svgIcon="gio:cancel"></mat-icon>
3796
- </button>
3797
- </div>
3798
- </div>
3799
-
3800
- <div>
3801
- <button type="button" mat-stroked-button aria-label="Add" (click)="add()"><mat-icon svgIcon="gio:plus"></mat-icon> Add</button>
3802
- </div>
3803
- </div>
3804
- </div>
3805
- `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper.error{border-color:#ec4899}.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"] }]
3806
- }] });
3807
-
3808
- function minItemsValidationMessage(error, field) {
3809
- var _a;
3810
- return `Should NOT have fewer than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.minItems} items`;
3811
- }
3812
- function maxItemsValidationMessage(error, field) {
3813
- var _a;
3814
- return `Should NOT have more than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.maxItems} items`;
3815
- }
3816
- function minLengthValidationMessage(error, field) {
3817
- var _a;
3818
- return `Should NOT be shorter than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.minLength} characters`;
3819
- }
3820
- function maxLengthValidationMessage(error, field) {
3821
- var _a;
3822
- return `Should NOT be longer than ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.maxLength} characters`;
3823
- }
3824
- function minValidationMessage(error, field) {
3825
- var _a;
3826
- return `Should be >= ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.min}`;
3827
- }
3828
- function maxValidationMessage(error, field) {
3829
- var _a;
3830
- return `Should be <= ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.max}`;
3358
+ class GioFormFieldWrapperComponent extends FieldWrapper {
3831
3359
  }
3832
- function multipleOfValidationMessage(error, field) {
3833
- var _a;
3834
- return `Should be multiple of ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3835
- }
3836
- function exclusiveMinimumValidationMessage(error, field) {
3837
- var _a;
3838
- return `Should be > ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3839
- }
3840
- function exclusiveMaximumValidationMessage(error, field) {
3841
- var _a;
3842
- return `Should be < ${(_a = field.props) === null || _a === void 0 ? void 0 : _a.step}`;
3843
- }
3844
- function constValidationMessage(error, field) {
3845
- var _a;
3846
- return `Should be equal to constant "${(_a = field.props) === null || _a === void 0 ? void 0 : _a.const}"`;
3847
- }
3848
- function typeValidationMessage({ schemaType }) {
3849
- return `Should be "${schemaType[0]}".`;
3850
- }
3851
-
3852
- /*
3853
- * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3854
- *
3855
- * Licensed under the Apache License, Version 2.0 (the "License");
3856
- * you may not use this file except in compliance with the License.
3857
- * You may obtain a copy of the License at
3858
- *
3859
- * http://www.apache.org/licenses/LICENSE-2.0
3860
- *
3861
- * Unless required by applicable law or agreed to in writing, software
3862
- * distributed under the License is distributed on an "AS IS" BASIS,
3863
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3864
- * See the License for the specific language governing permissions and
3865
- * limitations under the License.
3866
- */
3867
- class GioBannerWrapperComponent extends FieldWrapper {
3868
- }
3869
- GioBannerWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBannerWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3870
- GioBannerWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioBannerWrapperComponent, selector: "gio-banner-wrapper", usesInheritance: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"wrapper\">\n <div class=\"banner\">\n <div class=\"banner__icon\"><mat-icon svgIcon=\"gio:info\"></mat-icon></div>\n <div>\n <div class=\"banner__title\" [innerHTML]=\"props.bannerTitle\"></div>\n <div class=\"banner__text\" [innerHTML]=\"props.bannerText\"></div>\n </div>\n </div>\n <ng-container #fieldComponent></ng-container>\n</div>\n", styles: ["::ng-deep gio-banner-wrapper ul{padding-inline-start:16px}.wrapper{padding:8px 0}.banner{display:flex;flex-direction:row;align-items:flex-start;padding:8px;border-radius:8px;margin-bottom:8px;background:#e7e8ef;gap:8px}.banner__icon{padding-top:2px}.banner__icon mat-icon{width:16px;height:16px;color:#6c59bd}.banner__title{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.banner__text{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}\n"], components: [{ type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
3871
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBannerWrapperComponent, decorators: [{
3360
+ GioFormFieldWrapperComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFieldWrapperComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3361
+ GioFormFieldWrapperComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFormFieldWrapperComponent, selector: "gio-form-field-wrapper", usesInheritance: true, ngImport: i0, template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"wrapper\">\n <div class=\"banner\">\n <div class=\"banner__icon\"><mat-icon svgIcon=\"gio:info\"></mat-icon></div>\n <div>\n <div class=\"banner__title\" [innerHTML]=\"props.bannerTitle\"></div>\n <div class=\"banner__text\" [innerHTML]=\"props.bannerText\"></div>\n </div>\n </div>\n <ng-container #fieldComponent></ng-container>\n</div>\n", styles: [".wrapper{padding:8px 0}.banner{display:flex;flex-direction:row;align-items:flex-start;padding:8px;border-radius:8px;margin-bottom:8px;background:#e7e8ef;gap:8px}.banner__icon{padding-top:2px}.banner__icon mat-icon{width:16px;height:16px;color:#6c59bd}.banner__title{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.banner__text{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}\n"], components: [{ type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }] });
3362
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFieldWrapperComponent, decorators: [{
3872
3363
  type: Component,
3873
- args: [{ selector: 'gio-banner-wrapper', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"wrapper\">\n <div class=\"banner\">\n <div class=\"banner__icon\"><mat-icon svgIcon=\"gio:info\"></mat-icon></div>\n <div>\n <div class=\"banner__title\" [innerHTML]=\"props.bannerTitle\"></div>\n <div class=\"banner__text\" [innerHTML]=\"props.bannerText\"></div>\n </div>\n </div>\n <ng-container #fieldComponent></ng-container>\n</div>\n", styles: ["::ng-deep gio-banner-wrapper ul{padding-inline-start:16px}.wrapper{padding:8px 0}.banner{display:flex;flex-direction:row;align-items:flex-start;padding:8px;border-radius:8px;margin-bottom:8px;background:#e7e8ef;gap:8px}.banner__icon{padding-top:2px}.banner__icon mat-icon{width:16px;height:16px;color:#6c59bd}.banner__title{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.banner__text{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}\n"] }]
3364
+ args: [{ selector: 'gio-form-field-wrapper', template: "<!--\n\n Copyright (C) 2023 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"wrapper\">\n <div class=\"banner\">\n <div class=\"banner__icon\"><mat-icon svgIcon=\"gio:info\"></mat-icon></div>\n <div>\n <div class=\"banner__title\" [innerHTML]=\"props.bannerTitle\"></div>\n <div class=\"banner__text\" [innerHTML]=\"props.bannerText\"></div>\n </div>\n </div>\n <ng-container #fieldComponent></ng-container>\n</div>\n", styles: [".wrapper{padding:8px 0}.banner{display:flex;flex-direction:row;align-items:flex-start;padding:8px;border-radius:8px;margin-bottom:8px;background:#e7e8ef;gap:8px}.banner__icon{padding-top:2px}.banner__icon mat-icon{width:16px;height:16px;color:#6c59bd}.banner__title{font:600 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px}.banner__text{font:400 14px/20px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;color:#606274}\n"] }]
3874
3365
  }] });
3875
3366
 
3876
3367
  function bannerExtension(field) {
@@ -4129,60 +3620,8 @@ function passwordEyeExtension(field) {
4129
3620
  }
4130
3621
  if (field.props.type === 'password') {
4131
3622
  field.wrappers = [...(field.wrappers || []), 'gio-password-eye'];
4132
- }
4133
- }
4134
-
4135
- /*
4136
- * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
4137
- *
4138
- * Licensed under the Apache License, Version 2.0 (the "License");
4139
- * you may not use this file except in compliance with the License.
4140
- * You may obtain a copy of the License at
4141
- *
4142
- * http://www.apache.org/licenses/LICENSE-2.0
4143
- *
4144
- * Unless required by applicable law or agreed to in writing, software
4145
- * distributed under the License is distributed on an "AS IS" BASIS,
4146
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
4147
- * See the License for the specific language governing permissions and
4148
- * limitations under the License.
4149
- */
4150
- class GioFjsCodeEditorTypeComponent extends FieldType$1 {
4151
- ngOnInit() {
4152
- this.languageConfig = undefined;
4153
- }
4154
- }
4155
- GioFjsCodeEditorTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsCodeEditorTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4156
- GioFjsCodeEditorTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsCodeEditorTypeComponent, selector: "gio-fjs-code-editor-type", usesInheritance: true, ngImport: i0, template: `
4157
- <gio-monaco-editor
4158
- gioMonacoEditorFormField
4159
- ngDefaultControl
4160
- [formControl]="formControl"
4161
- [languageConfig]="languageConfig"
4162
- ></gio-monaco-editor>
4163
- `, isInline: true, styles: ["gio-monaco-editor{min-height:38px}\n"], components: [{ type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: ["languageConfig", "options"] }], directives: [{ type: GioMonacoEditorFormFieldDirective, selector: "[gioMonacoEditorFormField]", inputs: ["placeholder", "required", "disabled"] }, { type: i7.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i7.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i7.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
4164
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsCodeEditorTypeComponent, decorators: [{
4165
- type: Component,
4166
- args: [{
4167
- selector: 'gio-fjs-code-editor-type',
4168
- template: `
4169
- <gio-monaco-editor
4170
- gioMonacoEditorFormField
4171
- ngDefaultControl
4172
- [formControl]="formControl"
4173
- [languageConfig]="languageConfig"
4174
- ></gio-monaco-editor>
4175
- `,
4176
- styles: [
4177
- `
4178
- gio-monaco-editor {
4179
- min-height: 38px;
4180
- }
4181
- `,
4182
- ],
4183
- changeDetection: ChangeDetectionStrategy.OnPush,
4184
- }]
4185
- }] });
3623
+ }
3624
+ }
4186
3625
 
4187
3626
  /*
4188
3627
  * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
@@ -4209,16 +3648,13 @@ GioFormJsonSchemaModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0",
4209
3648
  GioFjsArrayTypeComponent,
4210
3649
  GioFjsToggleTypeComponent,
4211
3650
  GioFjsHeadersTypeComponent,
4212
- GioFjsCodeEditorTypeComponent,
4213
- GioBannerWrapperComponent,
3651
+ GioFormFieldWrapperComponent,
4214
3652
  GioPasswordEyeWrapperComponent], imports: [CommonModule,
4215
3653
  A11yModule,
4216
3654
  ReactiveFormsModule, i1$4.FormlyModule, FormlyMaterialModule,
4217
- MatInputModule,
4218
3655
  GioIconsModule,
4219
3656
  GioFormSlideToggleModule,
4220
3657
  GioFormHeadersModule,
4221
- GioMonacoEditorModule,
4222
3658
  MatSlideToggleModule,
4223
3659
  MatButtonModule], exports: [GioFormJsonSchemaComponent, FormlyModule] });
4224
3660
  GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormJsonSchemaModule, providers: [GioFormlyJsonSchemaService], imports: [[
@@ -4242,7 +3678,7 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
4242
3678
  { name: 'const', message: constValidationMessage },
4243
3679
  ],
4244
3680
  wrappers: [
4245
- { name: 'gio-with-banner', component: GioBannerWrapperComponent },
3681
+ { name: 'gio-with-banner', component: GioFormFieldWrapperComponent },
4246
3682
  { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },
4247
3683
  ],
4248
3684
  types: [
@@ -4254,11 +3690,6 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
4254
3690
  name: 'toggle',
4255
3691
  component: GioFjsToggleTypeComponent,
4256
3692
  },
4257
- {
4258
- name: 'gio-code-editor',
4259
- component: GioFjsCodeEditorTypeComponent,
4260
- wrappers: ['form-field'],
4261
- },
4262
3693
  {
4263
3694
  name: 'gio-headers-array',
4264
3695
  component: GioFjsHeadersTypeComponent,
@@ -4273,11 +3704,9 @@ GioFormJsonSchemaModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0",
4273
3704
  },
4274
3705
  }),
4275
3706
  FormlyMaterialModule,
4276
- MatInputModule,
4277
3707
  GioIconsModule,
4278
3708
  GioFormSlideToggleModule,
4279
3709
  GioFormHeadersModule,
4280
- GioMonacoEditorModule,
4281
3710
  MatSlideToggleModule,
4282
3711
  MatButtonModule,
4283
3712
  ], FormlyModule] });
@@ -4292,8 +3721,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4292
3721
  GioFjsArrayTypeComponent,
4293
3722
  GioFjsToggleTypeComponent,
4294
3723
  GioFjsHeadersTypeComponent,
4295
- GioFjsCodeEditorTypeComponent,
4296
- GioBannerWrapperComponent,
3724
+ GioFormFieldWrapperComponent,
4297
3725
  GioPasswordEyeWrapperComponent,
4298
3726
  ],
4299
3727
  imports: [
@@ -4317,7 +3745,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4317
3745
  { name: 'const', message: constValidationMessage },
4318
3746
  ],
4319
3747
  wrappers: [
4320
- { name: 'gio-with-banner', component: GioBannerWrapperComponent },
3748
+ { name: 'gio-with-banner', component: GioFormFieldWrapperComponent },
4321
3749
  { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },
4322
3750
  ],
4323
3751
  types: [
@@ -4329,11 +3757,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4329
3757
  name: 'toggle',
4330
3758
  component: GioFjsToggleTypeComponent,
4331
3759
  },
4332
- {
4333
- name: 'gio-code-editor',
4334
- component: GioFjsCodeEditorTypeComponent,
4335
- wrappers: ['form-field'],
4336
- },
4337
3760
  {
4338
3761
  name: 'gio-headers-array',
4339
3762
  component: GioFjsHeadersTypeComponent,
@@ -4348,21 +3771,284 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4348
3771
  },
4349
3772
  }),
4350
3773
  FormlyMaterialModule,
4351
- MatInputModule,
4352
3774
  GioIconsModule,
4353
3775
  GioFormSlideToggleModule,
4354
3776
  GioFormHeadersModule,
4355
- GioMonacoEditorModule,
4356
3777
  MatSlideToggleModule,
4357
3778
  MatButtonModule,
4358
3779
  ],
4359
3780
  exports: [GioFormJsonSchemaComponent, FormlyModule],
4360
3781
  providers: [GioFormlyJsonSchemaService],
4361
3782
  }]
4362
- }] });
3783
+ }] });
3784
+
3785
+ /*
3786
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3787
+ *
3788
+ * Licensed under the Apache License, Version 2.0 (the "License");
3789
+ * you may not use this file except in compliance with the License.
3790
+ * You may obtain a copy of the License at
3791
+ *
3792
+ * http://www.apache.org/licenses/LICENSE-2.0
3793
+ *
3794
+ * Unless required by applicable law or agreed to in writing, software
3795
+ * distributed under the License is distributed on an "AS IS" BASIS,
3796
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3797
+ * See the License for the specific language governing permissions and
3798
+ * limitations under the License.
3799
+ */
3800
+ class GioBaseFormFocusInvalidDirective {
3801
+ constructor(hostElement, formGroupDirective) {
3802
+ this.hostElement = hostElement;
3803
+ this.formGroupDirective = formGroupDirective;
3804
+ }
3805
+ focusOnFirstInvalid() {
3806
+ const selector = '.ng-invalid[formControlName],input.ng-invalid,mat-select.ng-invalid,textarea.ng-invalid,.gio-ng-invalid';
3807
+ try {
3808
+ // Mark all controls as touched to display errors
3809
+ if (this.formGroupDirective) {
3810
+ this.formGroupDirective.control.markAllAsTouched();
3811
+ this.formGroupDirective.control.updateValueAndValidity();
3812
+ }
3813
+ const parentForm = this.hostElement.nativeElement.closest('form');
3814
+ const invalidFieldElements = parentForm === null || parentForm === void 0 ? void 0 : parentForm.querySelectorAll(selector);
3815
+ const invalidControl = this.getFirstInvalidControl(invalidFieldElements);
3816
+ if (invalidControl) {
3817
+ invalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });
3818
+ invalidControl.focus({ preventScroll: true });
3819
+ }
3820
+ }
3821
+ catch (error) {
3822
+ // Best effort. If the focus doesn't work it's not very important
3823
+ // 🧪 Useful to avoid som error in tests
3824
+ }
3825
+ }
3826
+ getFirstInvalidControl(invalidFieldElements, index = 0) {
3827
+ var _a;
3828
+ let invalidControl = invalidFieldElements === null || invalidFieldElements === void 0 ? void 0 : invalidFieldElements.item(index);
3829
+ const hasIgnoreAttribute = (_a = invalidControl === null || invalidControl === void 0 ? void 0 : invalidControl.attributes) === null || _a === void 0 ? void 0 : _a.getNamedItem(GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR);
3830
+ if (hasIgnoreAttribute) {
3831
+ invalidControl = this.getFirstInvalidControl(invalidFieldElements, index + 1);
3832
+ }
3833
+ return invalidControl;
3834
+ }
3835
+ }
3836
+ GioBaseFormFocusInvalidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBaseFormFocusInvalidDirective, deps: [{ token: i0.ElementRef }, { token: i7.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3837
+ GioBaseFormFocusInvalidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioBaseFormFocusInvalidDirective, ngImport: i0 });
3838
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBaseFormFocusInvalidDirective, decorators: [{
3839
+ type: Directive
3840
+ }], ctorParameters: function () {
3841
+ return [{ type: i0.ElementRef }, { type: i7.FormGroupDirective, decorators: [{
3842
+ type: Optional
3843
+ }] }];
3844
+ } });
3845
+ class GioFormFocusInvalidFormDirective extends GioBaseFormFocusInvalidDirective {
3846
+ onFormSubmit() {
3847
+ this.focusOnFirstInvalid();
3848
+ }
3849
+ }
3850
+ GioFormFocusInvalidFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3851
+ GioFormFocusInvalidFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormFocusInvalidFormDirective, selector: "form[gioFormFocusInvalid]", host: { listeners: { "submit": "onFormSubmit()" } }, usesInheritance: true, ngImport: i0 });
3852
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidFormDirective, decorators: [{
3853
+ type: Directive,
3854
+ args: [{
3855
+ selector: 'form[gioFormFocusInvalid]',
3856
+ }]
3857
+ }], propDecorators: { onFormSubmit: [{
3858
+ type: HostListener,
3859
+ args: ['submit']
3860
+ }] } });
3861
+ class GioButtonFocusInvalidButtonDirective extends GioBaseFormFocusInvalidDirective {
3862
+ onClick() {
3863
+ this.focusOnFirstInvalid();
3864
+ }
3865
+ }
3866
+ GioButtonFocusInvalidButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioButtonFocusInvalidButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
3867
+ GioButtonFocusInvalidButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioButtonFocusInvalidButtonDirective, selector: "button[gioFormFocusInvalid]", host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 });
3868
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioButtonFocusInvalidButtonDirective, decorators: [{
3869
+ type: Directive,
3870
+ args: [{
3871
+ selector: 'button[gioFormFocusInvalid]',
3872
+ }]
3873
+ }], propDecorators: { onClick: [{
3874
+ type: HostListener,
3875
+ args: ['click']
3876
+ }] } });
3877
+
3878
+ /*
3879
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3880
+ *
3881
+ * Licensed under the Apache License, Version 2.0 (the "License");
3882
+ * you may not use this file except in compliance with the License.
3883
+ * You may obtain a copy of the License at
3884
+ *
3885
+ * http://www.apache.org/licenses/LICENSE-2.0
3886
+ *
3887
+ * Unless required by applicable law or agreed to in writing, software
3888
+ * distributed under the License is distributed on an "AS IS" BASIS,
3889
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3890
+ * See the License for the specific language governing permissions and
3891
+ * limitations under the License.
3892
+ */
3893
+ class GioFormFocusInvalidModule {
3894
+ }
3895
+ GioFormFocusInvalidModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3896
+ GioFormFocusInvalidModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective], exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective] });
3897
+ GioFormFocusInvalidModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule });
3898
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, decorators: [{
3899
+ type: NgModule,
3900
+ args: [{
3901
+ declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],
3902
+ exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],
3903
+ }]
3904
+ }] });
3905
+
3906
+ /*
3907
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3908
+ *
3909
+ * Licensed under the Apache License, Version 2.0 (the "License");
3910
+ * you may not use this file except in compliance with the License.
3911
+ * You may obtain a copy of the License at
3912
+ *
3913
+ * http://www.apache.org/licenses/LICENSE-2.0
3914
+ *
3915
+ * Unless required by applicable law or agreed to in writing, software
3916
+ * distributed under the License is distributed on an "AS IS" BASIS,
3917
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3918
+ * See the License for the specific language governing permissions and
3919
+ * limitations under the License.
3920
+ */
3921
+ const GIO_MONACO_EDITOR_CONFIG = new InjectionToken('gio-monaco-editor-config');
3922
+
3923
+ /*
3924
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3925
+ *
3926
+ * Licensed under the Apache License, Version 2.0 (the "License");
3927
+ * you may not use this file except in compliance with the License.
3928
+ * You may obtain a copy of the License at
3929
+ *
3930
+ * http://www.apache.org/licenses/LICENSE-2.0
3931
+ *
3932
+ * Unless required by applicable law or agreed to in writing, software
3933
+ * distributed under the License is distributed on an "AS IS" BASIS,
3934
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3935
+ * See the License for the specific language governing permissions and
3936
+ * limitations under the License.
3937
+ */
3938
+ class GioMonacoEditorService {
3939
+ constructor() {
3940
+ this.loaded$ = new ReplaySubject(1);
3941
+ this.loaded = false;
3942
+ }
3943
+ loadEditor() {
3944
+ if (this.loaded) {
3945
+ // Already loaded, do nothing.
3946
+ return Promise.resolve();
3947
+ }
3948
+ this.loaded = true;
3949
+ return new Promise(resolve => {
3950
+ // Monaco is already loaded
3951
+ if (typeof window.monaco === 'object') {
3952
+ resolve();
3953
+ return;
3954
+ }
3955
+ const onGotAmdLoader = () => {
3956
+ // Load Monaco
3957
+ window.require.config({ paths: { vs: 'assets/monaco-editor/min/vs' } });
3958
+ window.require(['vs/editor/editor.main'], () => {
3959
+ resolve();
3960
+ });
3961
+ };
3962
+ // Load AMD loader if necessary
3963
+ if (!window.require) {
3964
+ const loaderScript = document.createElement('script');
3965
+ loaderScript.type = 'text/javascript';
3966
+ loaderScript.src = 'assets/monaco-editor/min/vs/loader.js';
3967
+ loaderScript.addEventListener('load', onGotAmdLoader);
3968
+ document.body.appendChild(loaderScript);
3969
+ }
3970
+ else {
3971
+ onGotAmdLoader();
3972
+ }
3973
+ }).then(() => {
3974
+ this.loaded$.next({ monaco: window.monaco });
3975
+ });
3976
+ }
3977
+ }
3978
+ GioMonacoEditorService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
3979
+ GioMonacoEditorService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, providedIn: 'root' });
3980
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorService, decorators: [{
3981
+ type: Injectable,
3982
+ args: [{
3983
+ providedIn: 'root',
3984
+ }]
3985
+ }] });
3986
+
3987
+ /*
3988
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3989
+ *
3990
+ * Licensed under the Apache License, Version 2.0 (the "License");
3991
+ * you may not use this file except in compliance with the License.
3992
+ * You may obtain a copy of the License at
3993
+ *
3994
+ * http://www.apache.org/licenses/LICENSE-2.0
3995
+ *
3996
+ * Unless required by applicable law or agreed to in writing, software
3997
+ * distributed under the License is distributed on an "AS IS" BASIS,
3998
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3999
+ * See the License for the specific language governing permissions and
4000
+ * limitations under the License.
4001
+ */
4002
+ class GioLanguageJsonService {
4003
+ constructor(codeEditorService) {
4004
+ this.unsubscribe$ = new Subject();
4005
+ codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {
4006
+ this.setup(event.monaco);
4007
+ });
4008
+ }
4009
+ ngOnDestroy() {
4010
+ this.unsubscribe$.next();
4011
+ this.unsubscribe$.complete();
4012
+ }
4013
+ setup(monaco) {
4014
+ if (!monaco) {
4015
+ throw new Error('Monaco is not loaded');
4016
+ }
4017
+ this.monaco = monaco;
4018
+ const defaults = monaco.languages.json.jsonDefaults;
4019
+ defaults.setDiagnosticsOptions({
4020
+ validate: true,
4021
+ allowComments: true,
4022
+ });
4023
+ }
4024
+ addSchemas(id, definitions = []) {
4025
+ if (!this.monaco) {
4026
+ throw new Error('Monaco is not loaded');
4027
+ }
4028
+ const defaults = this.monaco.languages.json.jsonDefaults;
4029
+ const options = defaults.diagnosticsOptions;
4030
+ let schemas = definitions.map(({ uri, schema }) => ({
4031
+ uri,
4032
+ schema,
4033
+ fileMatch: [id || '*.json'],
4034
+ }));
4035
+ if (options && options.schemas && options.schemas.length > 0) {
4036
+ schemas = [...options.schemas, ...schemas];
4037
+ }
4038
+ defaults.setDiagnosticsOptions(Object.assign(Object.assign({}, options), { schemas: schemas }));
4039
+ }
4040
+ }
4041
+ GioLanguageJsonService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, deps: [{ token: GioMonacoEditorService }], target: i0.ɵɵFactoryTarget.Injectable });
4042
+ GioLanguageJsonService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, providedIn: 'root' });
4043
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioLanguageJsonService, decorators: [{
4044
+ type: Injectable,
4045
+ args: [{
4046
+ providedIn: 'root',
4047
+ }]
4048
+ }], ctorParameters: function () { return [{ type: GioMonacoEditorService }]; } });
4363
4049
 
4364
4050
  /*
4365
- * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
4051
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
4366
4052
  *
4367
4053
  * Licensed under the Apache License, Version 2.0 (the "License");
4368
4054
  * you may not use this file except in compliance with the License.
@@ -4376,82 +4062,153 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4376
4062
  * See the License for the specific language governing permissions and
4377
4063
  * limitations under the License.
4378
4064
  */
4379
- class GioBaseFormFocusInvalidDirective {
4380
- constructor(hostElement, formGroupDirective) {
4065
+ class GioMonacoEditorComponent {
4066
+ constructor(config, monacoEditorService, languageJsonService, hostElement, changeDetectorRef, ngZone) {
4067
+ this.config = config;
4068
+ this.monacoEditorService = monacoEditorService;
4069
+ this.languageJsonService = languageJsonService;
4381
4070
  this.hostElement = hostElement;
4382
- this.formGroupDirective = formGroupDirective;
4071
+ this.changeDetectorRef = changeDetectorRef;
4072
+ this.ngZone = ngZone;
4073
+ this.options = {};
4074
+ this.id = uniqueId('gio-monaco-editor-');
4075
+ this.loading = true;
4076
+ this.defaultOptions = {
4077
+ contextmenu: false,
4078
+ minimap: {
4079
+ enabled: true,
4080
+ },
4081
+ automaticLayout: true,
4082
+ scrollBeyondLastLine: false,
4083
+ };
4084
+ this.value = '';
4085
+ this.readOnly = false;
4086
+ this._onChange = () => ({});
4087
+ this._onTouched = () => ({});
4088
+ this.unsubscribe$ = new Subject();
4089
+ this.monacoEditorService.loadEditor();
4383
4090
  }
4384
- focusOnFirstInvalid() {
4385
- const selector = '.ng-invalid[formControlName],input.ng-invalid,mat-select.ng-invalid,textarea.ng-invalid,.gio-ng-invalid';
4386
- try {
4387
- // Mark all controls as touched to display errors
4388
- if (this.formGroupDirective) {
4389
- this.formGroupDirective.control.markAllAsTouched();
4390
- this.formGroupDirective.control.updateValueAndValidity();
4391
- }
4392
- const parentForm = this.hostElement.nativeElement.closest('form');
4393
- const invalidFieldElements = parentForm === null || parentForm === void 0 ? void 0 : parentForm.querySelectorAll(selector);
4394
- const invalidControl = this.getFirstInvalidControl(invalidFieldElements);
4395
- if (invalidControl) {
4396
- invalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });
4397
- invalidControl.focus({ preventScroll: true });
4398
- }
4091
+ ngAfterViewInit() {
4092
+ // Wait until monaco editor is available
4093
+ this.monacoEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(({ monaco }) => {
4094
+ this.setupEditor(monaco);
4095
+ this.loading = false;
4096
+ this.changeDetectorRef.detectChanges();
4097
+ });
4098
+ }
4099
+ ngOnDestroy() {
4100
+ if (this.standaloneCodeEditor) {
4101
+ this.standaloneCodeEditor.dispose();
4102
+ this.standaloneCodeEditor = undefined;
4399
4103
  }
4400
- catch (error) {
4401
- // Best effort. If the focus doesn't work it's not very important
4402
- // 🧪 Useful to avoid som error in tests
4104
+ if (this.textModel) {
4105
+ this.textModel.dispose();
4106
+ this.textModel = undefined;
4403
4107
  }
4108
+ this.unsubscribe$.next();
4109
+ this.unsubscribe$.complete();
4404
4110
  }
4405
- getFirstInvalidControl(invalidFieldElements, index = 0) {
4406
- var _a;
4407
- let invalidControl = invalidFieldElements === null || invalidFieldElements === void 0 ? void 0 : invalidFieldElements.item(index);
4408
- const hasIgnoreAttribute = (_a = invalidControl === null || invalidControl === void 0 ? void 0 : invalidControl.attributes) === null || _a === void 0 ? void 0 : _a.getNamedItem(GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR);
4409
- if (hasIgnoreAttribute) {
4410
- invalidControl = this.getFirstInvalidControl(invalidFieldElements, index + 1);
4111
+ // From ControlValueAccessor interface
4112
+ writeValue(_value) {
4113
+ if (_value) {
4114
+ this.value = _value;
4115
+ }
4116
+ if (this.textModel) {
4117
+ this.textModel.setValue(this.value);
4411
4118
  }
4412
- return invalidControl;
4413
4119
  }
4414
- }
4415
- GioBaseFormFocusInvalidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBaseFormFocusInvalidDirective, deps: [{ token: i0.ElementRef }, { token: i7.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
4416
- GioBaseFormFocusInvalidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioBaseFormFocusInvalidDirective, ngImport: i0 });
4417
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioBaseFormFocusInvalidDirective, decorators: [{
4418
- type: Directive
4419
- }], ctorParameters: function () {
4420
- return [{ type: i0.ElementRef }, { type: i7.FormGroupDirective, decorators: [{
4421
- type: Optional
4422
- }] }];
4423
- } });
4424
- class GioFormFocusInvalidFormDirective extends GioBaseFormFocusInvalidDirective {
4425
- onFormSubmit() {
4426
- this.focusOnFirstInvalid();
4120
+ // From ControlValueAccessor interface
4121
+ registerOnChange(fn) {
4122
+ this._onChange = fn;
4427
4123
  }
4428
- }
4429
- GioFormFocusInvalidFormDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidFormDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4430
- GioFormFocusInvalidFormDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormFocusInvalidFormDirective, selector: "form[gioFormFocusInvalid]", host: { listeners: { "submit": "onFormSubmit()" } }, usesInheritance: true, ngImport: i0 });
4431
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidFormDirective, decorators: [{
4432
- type: Directive,
4433
- args: [{
4434
- selector: 'form[gioFormFocusInvalid]',
4435
- }]
4436
- }], propDecorators: { onFormSubmit: [{
4437
- type: HostListener,
4438
- args: ['submit']
4439
- }] } });
4440
- class GioButtonFocusInvalidButtonDirective extends GioBaseFormFocusInvalidDirective {
4441
- onClick() {
4442
- this.focusOnFirstInvalid();
4124
+ // From ControlValueAccessor interface
4125
+ registerOnTouched(fn) {
4126
+ this._onTouched = fn;
4127
+ }
4128
+ // From ControlValueAccessor interface
4129
+ setDisabledState(isDisabled) {
4130
+ this.readOnly = isDisabled;
4131
+ }
4132
+ setupEditor(monaco) {
4133
+ var _a, _b, _c, _d, _e;
4134
+ if (!this.hostElement) {
4135
+ throw new Error('No editor ref found.');
4136
+ }
4137
+ const domElement = this.hostElement.nativeElement;
4138
+ const settings = {
4139
+ value: this.value,
4140
+ language: (_b = (_a = this.languageConfig) === null || _a === void 0 ? void 0 : _a.language) !== null && _b !== void 0 ? _b : 'text',
4141
+ uri: `code-${uniqueId()}`,
4142
+ };
4143
+ this.ngZone.runOutsideAngular(() => {
4144
+ this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.parse(settings.uri));
4145
+ });
4146
+ const options = Object.assign({}, this.defaultOptions, this.options, {
4147
+ readOnly: this.readOnly,
4148
+ theme: (_c = this.config.theme) !== null && _c !== void 0 ? _c : 'vs',
4149
+ model: this.textModel,
4150
+ });
4151
+ this.standaloneCodeEditor = monaco.editor.create(domElement, Object.assign({}, options));
4152
+ (_d = this.textModel) === null || _d === void 0 ? void 0 : _d.onDidChangeContent(() => {
4153
+ var _a;
4154
+ const newValue = (_a = this.textModel) === null || _a === void 0 ? void 0 : _a.getValue();
4155
+ this.ngZone.run(() => {
4156
+ newValue && this._onChange(newValue);
4157
+ this._onTouched();
4158
+ });
4159
+ });
4160
+ (_e = this.standaloneCodeEditor) === null || _e === void 0 ? void 0 : _e.onDidBlurEditorWidget(() => {
4161
+ this.ngZone.run(() => {
4162
+ this._onTouched();
4163
+ });
4164
+ });
4165
+ this.setupLanguage(settings.uri, this.languageConfig);
4166
+ }
4167
+ setupLanguage(uri, languageConfig) {
4168
+ if (!languageConfig) {
4169
+ return;
4170
+ }
4171
+ const { language } = languageConfig;
4172
+ if (language) {
4173
+ const lang = language.toLowerCase();
4174
+ switch (lang) {
4175
+ case 'json':
4176
+ if (languageConfig.schemas) {
4177
+ this.languageJsonService.addSchemas(uri, languageConfig.schemas);
4178
+ }
4179
+ break;
4180
+ default:
4181
+ break;
4182
+ }
4183
+ }
4443
4184
  }
4444
4185
  }
4445
- GioButtonFocusInvalidButtonDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioButtonFocusInvalidButtonDirective, deps: null, target: i0.ɵɵFactoryTarget.Directive });
4446
- GioButtonFocusInvalidButtonDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioButtonFocusInvalidButtonDirective, selector: "button[gioFormFocusInvalid]", host: { listeners: { "click": "onClick()" } }, usesInheritance: true, ngImport: i0 });
4447
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioButtonFocusInvalidButtonDirective, decorators: [{
4448
- type: Directive,
4449
- args: [{
4450
- selector: 'button[gioFormFocusInvalid]',
4451
- }]
4452
- }], propDecorators: { onClick: [{
4453
- type: HostListener,
4454
- args: ['click']
4186
+ GioMonacoEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, deps: [{ token: GIO_MONACO_EDITOR_CONFIG }, { token: GioMonacoEditorService }, { token: GioLanguageJsonService }, { token: i0.ElementRef }, { token: i0.ChangeDetectorRef }, { token: i0.NgZone }], target: i0.ɵɵFactoryTarget.Component });
4187
+ GioMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options" }, providers: [
4188
+ {
4189
+ provide: NG_VALUE_ACCESSOR,
4190
+ useExisting: forwardRef(() => GioMonacoEditorComponent),
4191
+ multi: true,
4192
+ },
4193
+ ], ngImport: i0, template: ` <div *ngIf="loading">Loading...</div>`, isInline: true, styles: [":host{display:block;height:100%;min-height:150px}\n"], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4194
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
4195
+ type: Component,
4196
+ args: [{ selector: 'gio-monaco-editor', template: ` <div *ngIf="loading">Loading...</div>`, providers: [
4197
+ {
4198
+ provide: NG_VALUE_ACCESSOR,
4199
+ useExisting: forwardRef(() => GioMonacoEditorComponent),
4200
+ multi: true,
4201
+ },
4202
+ ], styles: [":host{display:block;height:100%;min-height:150px}\n"] }]
4203
+ }], ctorParameters: function () {
4204
+ return [{ type: undefined, decorators: [{
4205
+ type: Inject,
4206
+ args: [GIO_MONACO_EDITOR_CONFIG]
4207
+ }] }, { type: GioMonacoEditorService }, { type: GioLanguageJsonService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }];
4208
+ }, propDecorators: { languageConfig: [{
4209
+ type: Input
4210
+ }], options: [{
4211
+ type: Input
4455
4212
  }] } });
4456
4213
 
4457
4214
  /*
@@ -4469,16 +4226,39 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4469
4226
  * See the License for the specific language governing permissions and
4470
4227
  * limitations under the License.
4471
4228
  */
4472
- class GioFormFocusInvalidModule {
4229
+ class GioMonacoEditorModule {
4230
+ static forRoot(config) {
4231
+ return {
4232
+ ngModule: GioMonacoEditorModule,
4233
+ providers: [
4234
+ {
4235
+ provide: GIO_MONACO_EDITOR_CONFIG,
4236
+ useValue: config,
4237
+ },
4238
+ ],
4239
+ };
4240
+ }
4473
4241
  }
4474
- GioFormFocusInvalidModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4475
- GioFormFocusInvalidModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective], exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective] });
4476
- GioFormFocusInvalidModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule });
4477
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, decorators: [{
4242
+ GioMonacoEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
4243
+ GioMonacoEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, declarations: [GioMonacoEditorComponent], imports: [CommonModule, HttpClientModule, ReactiveFormsModule], exports: [GioMonacoEditorComponent] });
4244
+ GioMonacoEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, providers: [
4245
+ {
4246
+ provide: GIO_MONACO_EDITOR_CONFIG,
4247
+ useValue: {},
4248
+ },
4249
+ ], imports: [[CommonModule, HttpClientModule, ReactiveFormsModule]] });
4250
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, decorators: [{
4478
4251
  type: NgModule,
4479
4252
  args: [{
4480
- declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],
4481
- exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],
4253
+ imports: [CommonModule, HttpClientModule, ReactiveFormsModule],
4254
+ declarations: [GioMonacoEditorComponent],
4255
+ exports: [GioMonacoEditorComponent],
4256
+ providers: [
4257
+ {
4258
+ provide: GIO_MONACO_EDITOR_CONFIG,
4259
+ useValue: {},
4260
+ },
4261
+ ],
4482
4262
  }]
4483
4263
  }] });
4484
4264
 
@@ -4511,12 +4291,25 @@ class GioMonacoEditorTestingComponent extends GioMonacoEditorComponent {
4511
4291
  }
4512
4292
  }
4513
4293
  GioMonacoEditorTestingComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorTestingComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
4514
- GioMonacoEditorTestingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorTestingComponent, selector: "gio-monaco-editor", usesInheritance: true, ngImport: i0, template: '<input type="text" [value]="getValue" (input)="changeValue($any($event).target?.value)" />', isInline: true });
4294
+ GioMonacoEditorTestingComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorTestingComponent, selector: "gio-monaco-editor", providers: [
4295
+ {
4296
+ provide: NG_VALUE_ACCESSOR,
4297
+ useExisting: forwardRef(() => GioMonacoEditorTestingComponent),
4298
+ multi: true,
4299
+ },
4300
+ ], usesInheritance: true, ngImport: i0, template: '<input type="text" [value]="getValue" (input)="changeValue($any($event).target?.value)" />', isInline: true });
4515
4301
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorTestingComponent, decorators: [{
4516
4302
  type: Component,
4517
4303
  args: [{
4518
4304
  selector: 'gio-monaco-editor',
4519
4305
  template: '<input type="text" [value]="getValue" (input)="changeValue($any($event).target?.value)" />',
4306
+ providers: [
4307
+ {
4308
+ provide: NG_VALUE_ACCESSOR,
4309
+ useExisting: forwardRef(() => GioMonacoEditorTestingComponent),
4310
+ multi: true,
4311
+ },
4312
+ ],
4520
4313
  }]
4521
4314
  }] });
4522
4315
 
@@ -4656,5 +4449,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
4656
4449
  * Generated bundle index. Do not edit.
4657
4450
  */
4658
4451
 
4659
- export { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR, GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBaseFormFocusInvalidDirective, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioButtonFocusInvalidButtonDirective, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormFocusInvalidFormDirective, GioFormFocusInvalidIgnoreDirective, GioFormFocusInvalidModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioLoaderComponent, GioLoaderModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuListComponent, GioMenuModule, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoEditorHarness, GioMonacoEditorModule, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, NewFile };
4452
+ export { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR, GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBaseFormFocusInvalidDirective, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioButtonFocusInvalidButtonDirective, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormFocusInvalidFormDirective, GioFormFocusInvalidIgnoreDirective, GioFormFocusInvalidModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioLoaderComponent, GioLoaderModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuListComponent, GioMenuModule, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioMonacoEditorComponent, GioMonacoEditorHarness, GioMonacoEditorModule, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, NewFile };
4660
4453
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map