@gravitee/ui-particles-angular 5.11.0-monaco-editor-3a68003 → 5.11.0-monaco-editor-c729a02

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 (25) hide show
  1. package/esm2020/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.mjs +61 -0
  2. package/esm2020/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.mjs +31 -0
  3. package/esm2020/lib/gio-form-json-schema/gio-form-json-schema.component.mjs +7 -2
  4. package/esm2020/lib/gio-form-json-schema/type-component/array-type.component.mjs +9 -9
  5. package/esm2020/lib/gio-form-json-schema/type-component/multischema-type.component.mjs +3 -3
  6. package/esm2020/lib/gio-form-json-schema/type-component/object-type.component.mjs +3 -3
  7. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.component.mjs +41 -21
  8. package/esm2020/lib/gio-monaco-editor/gio-monaco-editor.module.mjs +25 -2
  9. package/esm2020/lib/gio-monaco-editor/models/GioMonacoEditorConfig.mjs +18 -0
  10. package/esm2020/lib/gio-monaco-editor/models/MonacoEditorTheme.mjs +2 -0
  11. package/esm2020/lib/gio-monaco-editor/services/gio-monaco-editor.service.mjs +8 -6
  12. package/esm2020/lib/public-api.mjs +3 -1
  13. package/fesm2015/gravitee-ui-particles-angular.mjs +194 -42
  14. package/fesm2015/gravitee-ui-particles-angular.mjs.map +1 -1
  15. package/fesm2020/gravitee-ui-particles-angular.mjs +191 -40
  16. package/fesm2020/gravitee-ui-particles-angular.mjs.map +1 -1
  17. package/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.d.ts +11 -0
  18. package/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.d.ts +7 -0
  19. package/lib/gio-monaco-editor/gio-monaco-editor.component.d.ts +8 -5
  20. package/lib/gio-monaco-editor/gio-monaco-editor.module.d.ts +8 -0
  21. package/lib/gio-monaco-editor/models/GioMonacoEditorConfig.d.ts +6 -0
  22. package/lib/gio-monaco-editor/models/MonacoEditorTheme.d.ts +1 -0
  23. package/lib/gio-monaco-editor/services/gio-monaco-editor.service.d.ts +1 -3
  24. package/lib/public-api.d.ts +2 -0
  25. package/package.json +1 -1
@@ -0,0 +1,18 @@
1
+ /*
2
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3
+ *
4
+ * Licensed under the Apache License, Version 2.0 (the "License");
5
+ * you may not use this file except in compliance with the License.
6
+ * You may obtain a copy of the License at
7
+ *
8
+ * http://www.apache.org/licenses/LICENSE-2.0
9
+ *
10
+ * Unless required by applicable law or agreed to in writing, software
11
+ * distributed under the License is distributed on an "AS IS" BASIS,
12
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ * See the License for the specific language governing permissions and
14
+ * limitations under the License.
15
+ */
16
+ import { InjectionToken } from '@angular/core';
17
+ export const GIO_MONACO_EDITOR_CONFIG = new InjectionToken('gio-monaco-editor-config');
18
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiR2lvTW9uYWNvRWRpdG9yQ29uZmlnLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdWktcGFydGljbGVzLWFuZ3VsYXIvc3JjL2xpYi9naW8tbW9uYWNvLWVkaXRvci9tb2RlbHMvR2lvTW9uYWNvRWRpdG9yQ29uZmlnLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBOzs7Ozs7Ozs7Ozs7OztHQWNHO0FBQ0gsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQVEvQyxNQUFNLENBQUMsTUFBTSx3QkFBd0IsR0FBRyxJQUFJLGNBQWMsQ0FBd0IsMEJBQTBCLENBQUMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qXG4gKiBDb3B5cmlnaHQgKEMpIDIwMjMgVGhlIEdyYXZpdGVlIHRlYW0gKGh0dHA6Ly9ncmF2aXRlZS5pbylcbiAqIFxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICogXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICogXG4gKiBVbmxlc3MgcmVxdWlyZWQgYnkgYXBwbGljYWJsZSBsYXcgb3IgYWdyZWVkIHRvIGluIHdyaXRpbmcsIHNvZnR3YXJlXG4gKiBkaXN0cmlidXRlZCB1bmRlciB0aGUgTGljZW5zZSBpcyBkaXN0cmlidXRlZCBvbiBhbiBcIkFTIElTXCIgQkFTSVMsXG4gKiBXSVRIT1VUIFdBUlJBTlRJRVMgT1IgQ09ORElUSU9OUyBPRiBBTlkgS0lORCwgZWl0aGVyIGV4cHJlc3Mgb3IgaW1wbGllZC5cbiAqIFNlZSB0aGUgTGljZW5zZSBmb3IgdGhlIHNwZWNpZmljIGxhbmd1YWdlIGdvdmVybmluZyBwZXJtaXNzaW9ucyBhbmRcbiAqIGxpbWl0YXRpb25zIHVuZGVyIHRoZSBMaWNlbnNlLlxuICovXG5pbXBvcnQgeyBJbmplY3Rpb25Ub2tlbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5pbXBvcnQgeyBNb25hY29FZGl0b3JUaGVtZSB9IGZyb20gJy4vTW9uYWNvRWRpdG9yVGhlbWUnO1xuXG5leHBvcnQgdHlwZSBHaW9Nb25hY29FZGl0b3JDb25maWcgPSB7XG4gIHRoZW1lPzogTW9uYWNvRWRpdG9yVGhlbWU7XG59O1xuXG5leHBvcnQgY29uc3QgR0lPX01PTkFDT19FRElUT1JfQ09ORklHID0gbmV3IEluamVjdGlvblRva2VuPEdpb01vbmFjb0VkaXRvckNvbmZpZz4oJ2dpby1tb25hY28tZWRpdG9yLWNvbmZpZycpO1xuIl19
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiTW9uYWNvRWRpdG9yVGhlbWUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy91aS1wYXJ0aWNsZXMtYW5ndWxhci9zcmMvbGliL2dpby1tb25hY28tZWRpdG9yL21vZGVscy9Nb25hY29FZGl0b3JUaGVtZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICogXG4gKiBMaWNlbnNlZCB1bmRlciB0aGUgQXBhY2hlIExpY2Vuc2UsIFZlcnNpb24gMi4wICh0aGUgXCJMaWNlbnNlXCIpO1xuICogeW91IG1heSBub3QgdXNlIHRoaXMgZmlsZSBleGNlcHQgaW4gY29tcGxpYW5jZSB3aXRoIHRoZSBMaWNlbnNlLlxuICogWW91IG1heSBvYnRhaW4gYSBjb3B5IG9mIHRoZSBMaWNlbnNlIGF0XG4gKiBcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKiBcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmV4cG9ydCB0eXBlIE1vbmFjb0VkaXRvclRoZW1lID0gYHZzYCB8IGB2cy1kYXJrYCB8IGBoYy1ibGFja2AgfCAnaGMtbGlnaHQnO1xuIl19
@@ -15,16 +15,18 @@
15
15
  */
16
16
  import { Injectable } from '@angular/core';
17
17
  import { ReplaySubject } from 'rxjs';
18
- import { filter, shareReplay } from 'rxjs/operators';
19
18
  import * as i0 from "@angular/core";
20
19
  export class GioMonacoEditorService {
21
20
  constructor() {
22
- this.loaded$ = new ReplaySubject();
23
- }
24
- loadedChange$() {
25
- return this.loaded$.pipe(filter(event => !!event.monaco), shareReplay(1));
21
+ this.loaded$ = new ReplaySubject(1);
22
+ this.loaded = false;
26
23
  }
27
24
  loadEditor() {
25
+ if (this.loaded) {
26
+ // Already loaded, do nothing.
27
+ return Promise.resolve();
28
+ }
29
+ this.loaded = true;
28
30
  return new Promise(resolve => {
29
31
  // Monaco is already loaded
30
32
  if (typeof window.monaco === 'object') {
@@ -62,4 +64,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
62
64
  providedIn: 'root',
63
65
  }]
64
66
  }] });
65
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLW1vbmFjby1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLW1vbmFjby1lZGl0b3Ivc2VydmljZXMvZ2lvLW1vbmFjby1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQztBQUVyQyxPQUFPLEVBQUUsTUFBTSxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDOztBQWFyRCxNQUFNLE9BQU8sc0JBQXNCO0lBSG5DO1FBSVMsWUFBTyxHQUFHLElBQUksYUFBYSxFQUE2QixDQUFDO0tBd0NqRTtJQXRDUSxhQUFhO1FBQ2xCLE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQ3RCLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLEVBQy9CLFdBQVcsQ0FBQyxDQUFDLENBQUMsQ0FDZixDQUFDO0lBQ0osQ0FBQztJQUVNLFVBQVU7UUFDZixPQUFPLElBQUksT0FBTyxDQUFPLE9BQU8sQ0FBQyxFQUFFO1lBQ2pDLDJCQUEyQjtZQUMzQixJQUFJLE9BQU8sTUFBTSxDQUFDLE1BQU0sS0FBSyxRQUFRLEVBQUU7Z0JBQ3JDLE9BQU8sRUFBRSxDQUFDO2dCQUNWLE9BQU87YUFDUjtZQUVELE1BQU0sY0FBYyxHQUFHLEdBQUcsRUFBRTtnQkFDMUIsY0FBYztnQkFDZCxNQUFNLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxFQUFFLEtBQUssRUFBRSxFQUFFLEVBQUUsRUFBRSw2QkFBNkIsRUFBRSxFQUFFLENBQUMsQ0FBQztnQkFFeEUsTUFBTSxDQUFDLE9BQU8sQ0FBQyxDQUFDLHVCQUF1QixDQUFDLEVBQUUsR0FBRyxFQUFFO29CQUM3QyxPQUFPLEVBQUUsQ0FBQztnQkFDWixDQUFDLENBQUMsQ0FBQztZQUNMLENBQUMsQ0FBQztZQUVGLCtCQUErQjtZQUMvQixJQUFJLENBQUMsTUFBTSxDQUFDLE9BQU8sRUFBRTtnQkFDbkIsTUFBTSxZQUFZLEdBQUcsUUFBUSxDQUFDLGFBQWEsQ0FBQyxRQUFRLENBQUMsQ0FBQztnQkFDdEQsWUFBWSxDQUFDLElBQUksR0FBRyxpQkFBaUIsQ0FBQztnQkFDdEMsWUFBWSxDQUFDLEdBQUcsR0FBRyx1Q0FBdUMsQ0FBQztnQkFDM0QsWUFBWSxDQUFDLGdCQUFnQixDQUFDLE1BQU0sRUFBRSxjQUFjLENBQUMsQ0FBQztnQkFDdEQsUUFBUSxDQUFDLElBQUksQ0FBQyxXQUFXLENBQUMsWUFBWSxDQUFDLENBQUM7YUFDekM7aUJBQU07Z0JBQ0wsY0FBYyxFQUFFLENBQUM7YUFDbEI7UUFDSCxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFO1lBQ1gsSUFBSSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsRUFBRSxNQUFNLEVBQUUsTUFBTSxDQUFDLE1BQU0sRUFBRSxDQUFDLENBQUM7UUFDL0MsQ0FBQyxDQUFDLENBQUM7SUFDTCxDQUFDOztvSEF4Q1Usc0JBQXNCO3dIQUF0QixzQkFBc0IsY0FGckIsTUFBTTs0RkFFUCxzQkFBc0I7a0JBSGxDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMyBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbmltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFJlcGxheVN1YmplY3QgfSBmcm9tICdyeGpzJztcbmltcG9ydCBNb25hY28gZnJvbSAnbW9uYWNvLWVkaXRvcic7XG5pbXBvcnQgeyBmaWx0ZXIsIHNoYXJlUmVwbGF5IH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuXG5kZWNsYXJlIGdsb2JhbCB7XG4gIGludGVyZmFjZSBXaW5kb3cge1xuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XG4gICAgcmVxdWlyZTogYW55O1xuICAgIG1vbmFjbzogdHlwZW9mIE1vbmFjbztcbiAgfVxufVxuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290Jyxcbn0pXG5leHBvcnQgY2xhc3MgR2lvTW9uYWNvRWRpdG9yU2VydmljZSB7XG4gIHB1YmxpYyBsb2FkZWQkID0gbmV3IFJlcGxheVN1YmplY3Q8eyBtb25hY286IHR5cGVvZiBNb25hY28gfT4oKTtcblxuICBwdWJsaWMgbG9hZGVkQ2hhbmdlJCgpIHtcbiAgICByZXR1cm4gdGhpcy5sb2FkZWQkLnBpcGUoXG4gICAgICBmaWx0ZXIoZXZlbnQgPT4gISFldmVudC5tb25hY28pLFxuICAgICAgc2hhcmVSZXBsYXkoMSksXG4gICAgKTtcbiAgfVxuXG4gIHB1YmxpYyBsb2FkRWRpdG9yKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIC8vIE1vbmFjbyBpcyBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cubW9uYWNvID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb25Hb3RBbWRMb2FkZXIgPSAoKSA9PiB7XG4gICAgICAgIC8vIExvYWQgTW9uYWNvXG4gICAgICAgIHdpbmRvdy5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7IHZzOiAnYXNzZXRzL21vbmFjby1lZGl0b3IvbWluL3ZzJyB9IH0pO1xuXG4gICAgICAgIHdpbmRvdy5yZXF1aXJlKFsndnMvZWRpdG9yL2VkaXRvci5tYWluJ10sICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgLy8gTG9hZCBBTUQgbG9hZGVyIGlmIG5lY2Vzc2FyeVxuICAgICAgaWYgKCF3aW5kb3cucmVxdWlyZSkge1xuICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9ICdhc3NldHMvbW9uYWNvLWVkaXRvci9taW4vdnMvbG9hZGVyLmpzJztcbiAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uR290QW1kTG9hZGVyKCk7XG4gICAgICB9XG4gICAgfSkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRlZCQubmV4dCh7IG1vbmFjbzogd2luZG93Lm1vbmFjbyB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
67
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZ2lvLW1vbmFjby1lZGl0b3Iuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvZ2lvLW1vbmFjby1lZGl0b3Ivc2VydmljZXMvZ2lvLW1vbmFjby1lZGl0b3Iuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNILE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDM0MsT0FBTyxFQUFFLGFBQWEsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7QUFjckMsTUFBTSxPQUFPLHNCQUFzQjtJQUhuQztRQUlTLFlBQU8sR0FBRyxJQUFJLGFBQWEsQ0FBNEIsQ0FBQyxDQUFDLENBQUM7UUFDekQsV0FBTSxHQUFHLEtBQUssQ0FBQztLQXVDeEI7SUFyQ1EsVUFBVTtRQUNmLElBQUksSUFBSSxDQUFDLE1BQU0sRUFBRTtZQUNmLDhCQUE4QjtZQUM5QixPQUFPLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztTQUMxQjtRQUNELElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1FBRW5CLE9BQU8sSUFBSSxPQUFPLENBQU8sT0FBTyxDQUFDLEVBQUU7WUFDakMsMkJBQTJCO1lBQzNCLElBQUksT0FBTyxNQUFNLENBQUMsTUFBTSxLQUFLLFFBQVEsRUFBRTtnQkFDckMsT0FBTyxFQUFFLENBQUM7Z0JBQ1YsT0FBTzthQUNSO1lBRUQsTUFBTSxjQUFjLEdBQUcsR0FBRyxFQUFFO2dCQUMxQixjQUFjO2dCQUNkLE1BQU0sQ0FBQyxPQUFPLENBQUMsTUFBTSxDQUFDLEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxFQUFFLDZCQUE2QixFQUFFLEVBQUUsQ0FBQyxDQUFDO2dCQUV4RSxNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsdUJBQXVCLENBQUMsRUFBRSxHQUFHLEVBQUU7b0JBQzdDLE9BQU8sRUFBRSxDQUFDO2dCQUNaLENBQUMsQ0FBQyxDQUFDO1lBQ0wsQ0FBQyxDQUFDO1lBRUYsK0JBQStCO1lBQy9CLElBQUksQ0FBQyxNQUFNLENBQUMsT0FBTyxFQUFFO2dCQUNuQixNQUFNLFlBQVksR0FBRyxRQUFRLENBQUMsYUFBYSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2dCQUN0RCxZQUFZLENBQUMsSUFBSSxHQUFHLGlCQUFpQixDQUFDO2dCQUN0QyxZQUFZLENBQUMsR0FBRyxHQUFHLHVDQUF1QyxDQUFDO2dCQUMzRCxZQUFZLENBQUMsZ0JBQWdCLENBQUMsTUFBTSxFQUFFLGNBQWMsQ0FBQyxDQUFDO2dCQUN0RCxRQUFRLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxZQUFZLENBQUMsQ0FBQzthQUN6QztpQkFBTTtnQkFDTCxjQUFjLEVBQUUsQ0FBQzthQUNsQjtRQUNILENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUU7WUFDWCxJQUFJLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxFQUFFLE1BQU0sRUFBRSxNQUFNLENBQUMsTUFBTSxFQUFFLENBQUMsQ0FBQztRQUMvQyxDQUFDLENBQUMsQ0FBQztJQUNMLENBQUM7O29IQXhDVSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIzIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgUmVwbGF5U3ViamVjdCB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IE1vbmFjbyBmcm9tICdtb25hY28tZWRpdG9yJztcblxuZGVjbGFyZSBnbG9iYWwge1xuICBpbnRlcmZhY2UgV2luZG93IHtcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxuICAgIHJlcXVpcmU6IGFueTtcbiAgICBtb25hY286IHR5cGVvZiBNb25hY287XG4gIH1cbn1cblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEdpb01vbmFjb0VkaXRvclNlcnZpY2Uge1xuICBwdWJsaWMgbG9hZGVkJCA9IG5ldyBSZXBsYXlTdWJqZWN0PHsgbW9uYWNvOiB0eXBlb2YgTW9uYWNvIH0+KDEpO1xuICBwcml2YXRlIGxvYWRlZCA9IGZhbHNlO1xuXG4gIHB1YmxpYyBsb2FkRWRpdG9yKCk6IFByb21pc2U8dm9pZD4ge1xuICAgIGlmICh0aGlzLmxvYWRlZCkge1xuICAgICAgLy8gQWxyZWFkeSBsb2FkZWQsIGRvIG5vdGhpbmcuXG4gICAgICByZXR1cm4gUHJvbWlzZS5yZXNvbHZlKCk7XG4gICAgfVxuICAgIHRoaXMubG9hZGVkID0gdHJ1ZTtcblxuICAgIHJldHVybiBuZXcgUHJvbWlzZTx2b2lkPihyZXNvbHZlID0+IHtcbiAgICAgIC8vIE1vbmFjbyBpcyBhbHJlYWR5IGxvYWRlZFxuICAgICAgaWYgKHR5cGVvZiB3aW5kb3cubW9uYWNvID09PSAnb2JqZWN0Jykge1xuICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIHJldHVybjtcbiAgICAgIH1cblxuICAgICAgY29uc3Qgb25Hb3RBbWRMb2FkZXIgPSAoKSA9PiB7XG4gICAgICAgIC8vIExvYWQgTW9uYWNvXG4gICAgICAgIHdpbmRvdy5yZXF1aXJlLmNvbmZpZyh7IHBhdGhzOiB7IHZzOiAnYXNzZXRzL21vbmFjby1lZGl0b3IvbWluL3ZzJyB9IH0pO1xuXG4gICAgICAgIHdpbmRvdy5yZXF1aXJlKFsndnMvZWRpdG9yL2VkaXRvci5tYWluJ10sICgpID0+IHtcbiAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgIH0pO1xuICAgICAgfTtcblxuICAgICAgLy8gTG9hZCBBTUQgbG9hZGVyIGlmIG5lY2Vzc2FyeVxuICAgICAgaWYgKCF3aW5kb3cucmVxdWlyZSkge1xuICAgICAgICBjb25zdCBsb2FkZXJTY3JpcHQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgbG9hZGVyU2NyaXB0LnR5cGUgPSAndGV4dC9qYXZhc2NyaXB0JztcbiAgICAgICAgbG9hZGVyU2NyaXB0LnNyYyA9ICdhc3NldHMvbW9uYWNvLWVkaXRvci9taW4vdnMvbG9hZGVyLmpzJztcbiAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgIGRvY3VtZW50LmJvZHkuYXBwZW5kQ2hpbGQobG9hZGVyU2NyaXB0KTtcbiAgICAgIH0gZWxzZSB7XG4gICAgICAgIG9uR290QW1kTG9hZGVyKCk7XG4gICAgICB9XG4gICAgfSkudGhlbigoKSA9PiB7XG4gICAgICB0aGlzLmxvYWRlZCQubmV4dCh7IG1vbmFjbzogd2luZG93Lm1vbmFjbyB9KTtcbiAgICB9KTtcbiAgfVxufVxuIl19
@@ -47,7 +47,9 @@ export * from './gio-form-json-schema/model/GioJsonSchema';
47
47
  export * from './gio-form-slide-toogle/gio-form-slide-toggle.component';
48
48
  export * from './gio-form-slide-toogle/gio-form-slide-toggle.module';
49
49
  export * from './gio-form-slide-toogle/gio-form-label.directive';
50
+ export * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive';
51
+ export * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.module';
50
52
  export * from './gio-monaco-editor/gio-monaco-editor.component';
51
53
  export * from './gio-monaco-editor/gio-monaco-editor.module';
52
54
  export * from './gio-monaco-editor/gio-monaco-editor.harness';
53
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNIOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDJFQUEyRSxDQUFDO0FBRTFGLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDhDQUE4QyxDQUFDO0FBQzdELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxuICogQ29weXJpZ2h0IChDKSAyMDIxIFRoZSBHcmF2aXRlZSB0ZWFtIChodHRwOi8vZ3Jhdml0ZWUuaW8pXG4gKlxuICogTGljZW5zZWQgdW5kZXIgdGhlIEFwYWNoZSBMaWNlbnNlLCBWZXJzaW9uIDIuMCAodGhlIFwiTGljZW5zZVwiKTtcbiAqIHlvdSBtYXkgbm90IHVzZSB0aGlzIGZpbGUgZXhjZXB0IGluIGNvbXBsaWFuY2Ugd2l0aCB0aGUgTGljZW5zZS5cbiAqIFlvdSBtYXkgb2J0YWluIGEgY29weSBvZiB0aGUgTGljZW5zZSBhdFxuICpcbiAqICAgICAgICAgaHR0cDovL3d3dy5hcGFjaGUub3JnL2xpY2Vuc2VzL0xJQ0VOU0UtMi4wXG4gKlxuICogVW5sZXNzIHJlcXVpcmVkIGJ5IGFwcGxpY2FibGUgbGF3IG9yIGFncmVlZCB0byBpbiB3cml0aW5nLCBzb2Z0d2FyZVxuICogZGlzdHJpYnV0ZWQgdW5kZXIgdGhlIExpY2Vuc2UgaXMgZGlzdHJpYnV0ZWQgb24gYW4gXCJBUyBJU1wiIEJBU0lTLFxuICogV0lUSE9VVCBXQVJSQU5USUVTIE9SIENPTkRJVElPTlMgT0YgQU5ZIEtJTkQsIGVpdGhlciBleHByZXNzIG9yIGltcGxpZWQuXG4gKiBTZWUgdGhlIExpY2Vuc2UgZm9yIHRoZSBzcGVjaWZpYyBsYW5ndWFnZSBnb3Zlcm5pbmcgcGVybWlzc2lvbnMgYW5kXG4gKiBsaW1pdGF0aW9ucyB1bmRlciB0aGUgTGljZW5zZS5cbiAqL1xuLypcbiAqIFB1YmxpYyBBUEkgU3VyZmFjZVxuICovXG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLXNhdmUtYmFyL2dpby1zYXZlLWJhci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tc2F2ZS1iYXIvZ2lvLXNhdmUtYmFyLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1zYXZlLWJhci9naW8tc2F2ZS1iYXIuaGFybmVzcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC9naW8tZm9ybS10YWdzLWlucHV0LmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS10YWdzLWlucHV0L2dpby1mb3JtLXRhZ3MtaW5wdXQuaGFybmVzcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWJhbm5lci9naW8tYmFubmVyLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1iYW5uZXIvZ2lvLWJhbm5lci5tb2R1bGUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1jb25maXJtLWRpYWxvZy9naW8tY29uZmlybS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWNvbmZpcm0tZGlhbG9nL2dpby1jb25maXJtLWRpYWxvZy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tY29uZmlybS1kaWFsb2cvZ2lvLWNvbmZpcm0tZGlhbG9nLmhhcm5lc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nLmhhcm5lc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1pY29ucy9naW8taWNvbnMubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0taGVhZGVycy9naW8tZm9ybS1oZWFkZXJzLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5oYXJuZXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1maWxlLXBpY2tlcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLW1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tc3VibWVudSc7XG5leHBvcnQgKiBmcm9tICcuL2dpby10b3AtYmFyJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWF2YXRhcic7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWJyZWFkY3J1bWInO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1tYXQtY29uZmlnJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1qc29uLXNjaGVtYS9naW8tZm9ybS1qc29uLXNjaGVtYS5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1qc29uLXNjaGVtYS9tb2RlbC9HaW9Kc29uU2NoZW1hJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1zbGlkZS10b29nbGUvZ2lvLWZvcm0tc2xpZGUtdG9nZ2xlLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLXNsaWRlLXRvb2dsZS9naW8tZm9ybS1zbGlkZS10b2dnbGUubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tc2xpZGUtdG9vZ2xlL2dpby1mb3JtLWxhYmVsLmRpcmVjdGl2ZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLW1vbmFjby1lZGl0b3IvZ2lvLW1vbmFjby1lZGl0b3IuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLW1vbmFjby1lZGl0b3IvZ2lvLW1vbmFjby1lZGl0b3IubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLW1vbmFjby1lZGl0b3IvZ2lvLW1vbmFjby1lZGl0b3IuaGFybmVzcyc7XG4iXX0=
55
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3Byb2plY3RzL3VpLXBhcnRpY2xlcy1hbmd1bGFyL3NyYy9saWIvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7Ozs7Ozs7Ozs7Ozs7R0FjRztBQUNIOztHQUVHO0FBRUgsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELGNBQWMscUNBQXFDLENBQUM7QUFFcEQsY0FBYyxxREFBcUQsQ0FBQztBQUNwRSxjQUFjLGtEQUFrRCxDQUFDO0FBQ2pFLGNBQWMsbURBQW1ELENBQUM7QUFFbEUsY0FBYyxtQ0FBbUMsQ0FBQztBQUNsRCxjQUFjLGdDQUFnQyxDQUFDO0FBRS9DLGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxnREFBZ0QsQ0FBQztBQUMvRCxjQUFjLGlEQUFpRCxDQUFDO0FBRWhFLGNBQWMsNkVBQTZFLENBQUM7QUFDNUYsY0FBYywwRUFBMEUsQ0FBQztBQUN6RixjQUFjLDJFQUEyRSxDQUFDO0FBRTFGLGNBQWMsOEJBQThCLENBQUM7QUFFN0MsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLDRDQUE0QyxDQUFDO0FBQzNELGNBQWMsNkNBQTZDLENBQUM7QUFFNUQsY0FBYyx3QkFBd0IsQ0FBQztBQUV2QyxjQUFjLFlBQVksQ0FBQztBQUMzQixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGVBQWUsQ0FBQztBQUM5QixjQUFjLGNBQWMsQ0FBQztBQUU3QixjQUFjLGtCQUFrQixDQUFDO0FBRWpDLGNBQWMsa0JBQWtCLENBQUM7QUFFakMsY0FBYyx1REFBdUQsQ0FBQztBQUN0RSxjQUFjLG9EQUFvRCxDQUFDO0FBQ25FLGNBQWMsNENBQTRDLENBQUM7QUFFM0QsY0FBYyx5REFBeUQsQ0FBQztBQUN4RSxjQUFjLHNEQUFzRCxDQUFDO0FBQ3JFLGNBQWMsa0RBQWtELENBQUM7QUFFakUsY0FBYyx1RUFBdUUsQ0FBQztBQUN0RixjQUFjLG9FQUFvRSxDQUFDO0FBRW5GLGNBQWMsaURBQWlELENBQUM7QUFDaEUsY0FBYyw4Q0FBOEMsQ0FBQztBQUM3RCxjQUFjLCtDQUErQyxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiLypcbiAqIENvcHlyaWdodCAoQykgMjAyMSBUaGUgR3Jhdml0ZWUgdGVhbSAoaHR0cDovL2dyYXZpdGVlLmlvKVxuICpcbiAqIExpY2Vuc2VkIHVuZGVyIHRoZSBBcGFjaGUgTGljZW5zZSwgVmVyc2lvbiAyLjAgKHRoZSBcIkxpY2Vuc2VcIik7XG4gKiB5b3UgbWF5IG5vdCB1c2UgdGhpcyBmaWxlIGV4Y2VwdCBpbiBjb21wbGlhbmNlIHdpdGggdGhlIExpY2Vuc2UuXG4gKiBZb3UgbWF5IG9idGFpbiBhIGNvcHkgb2YgdGhlIExpY2Vuc2UgYXRcbiAqXG4gKiAgICAgICAgIGh0dHA6Ly93d3cuYXBhY2hlLm9yZy9saWNlbnNlcy9MSUNFTlNFLTIuMFxuICpcbiAqIFVubGVzcyByZXF1aXJlZCBieSBhcHBsaWNhYmxlIGxhdyBvciBhZ3JlZWQgdG8gaW4gd3JpdGluZywgc29mdHdhcmVcbiAqIGRpc3RyaWJ1dGVkIHVuZGVyIHRoZSBMaWNlbnNlIGlzIGRpc3RyaWJ1dGVkIG9uIGFuIFwiQVMgSVNcIiBCQVNJUyxcbiAqIFdJVEhPVVQgV0FSUkFOVElFUyBPUiBDT05ESVRJT05TIE9GIEFOWSBLSU5ELCBlaXRoZXIgZXhwcmVzcyBvciBpbXBsaWVkLlxuICogU2VlIHRoZSBMaWNlbnNlIGZvciB0aGUgc3BlY2lmaWMgbGFuZ3VhZ2UgZ292ZXJuaW5nIHBlcm1pc3Npb25zIGFuZFxuICogbGltaXRhdGlvbnMgdW5kZXIgdGhlIExpY2Vuc2UuXG4gKi9cbi8qXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2VcbiAqL1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1zYXZlLWJhci9naW8tc2F2ZS1iYXIuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLXNhdmUtYmFyL2dpby1zYXZlLWJhci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tc2F2ZS1iYXIvZ2lvLXNhdmUtYmFyLmhhcm5lc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLXRhZ3MtaW5wdXQvZ2lvLWZvcm0tdGFncy1pbnB1dC5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS10YWdzLWlucHV0L2dpby1mb3JtLXRhZ3MtaW5wdXQubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tdGFncy1pbnB1dC9naW8tZm9ybS10YWdzLWlucHV0Lmhhcm5lc3MnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1iYW5uZXIvZ2lvLWJhbm5lci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tYmFubmVyL2dpby1iYW5uZXIubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tY29uZmlybS1kaWFsb2cvZ2lvLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1jb25maXJtLWRpYWxvZy9naW8tY29uZmlybS1kaWFsb2cubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWNvbmZpcm0tZGlhbG9nL2dpby1jb25maXJtLWRpYWxvZy5oYXJuZXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy9naW8tY29uZmlybS1hbmQtdmFsaWRhdGUtZGlhbG9nLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1jb25maXJtLWFuZC12YWxpZGF0ZS1kaWFsb2cvZ2lvLWNvbmZpcm0tYW5kLXZhbGlkYXRlLWRpYWxvZy5oYXJuZXNzJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8taWNvbnMvZ2lvLWljb25zLm1vZHVsZSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0taGVhZGVycy9naW8tZm9ybS1oZWFkZXJzLmNvbXBvbmVudCc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLWhlYWRlcnMvZ2lvLWZvcm0taGVhZGVycy5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1oZWFkZXJzL2dpby1mb3JtLWhlYWRlcnMuaGFybmVzcyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tZmlsZS1waWNrZXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1tZW51JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLXN1Ym1lbnUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tdG9wLWJhcic7XG5leHBvcnQgKiBmcm9tICcuL2dpby1hdmF0YXInO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1icmVhZGNydW1iJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tbWF0LWNvbmZpZyc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEvZ2lvLWZvcm0tanNvbi1zY2hlbWEuY29tcG9uZW50JztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEvZ2lvLWZvcm0tanNvbi1zY2hlbWEubW9kdWxlJztcbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tanNvbi1zY2hlbWEvbW9kZWwvR2lvSnNvblNjaGVtYSc7XG5cbmV4cG9ydCAqIGZyb20gJy4vZ2lvLWZvcm0tc2xpZGUtdG9vZ2xlL2dpby1mb3JtLXNsaWRlLXRvZ2dsZS5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1zbGlkZS10b29nbGUvZ2lvLWZvcm0tc2xpZGUtdG9nZ2xlLm1vZHVsZSc7XG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLXNsaWRlLXRvb2dsZS9naW8tZm9ybS1sYWJlbC5kaXJlY3RpdmUnO1xuXG5leHBvcnQgKiBmcm9tICcuL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQvZ2lvLWZvcm0tZm9jdXMtZmlyc3QtaW52YWxpZC5kaXJlY3RpdmUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tZm9ybS1mb2N1cy1maXJzdC1pbnZhbGlkL2dpby1mb3JtLWZvY3VzLWZpcnN0LWludmFsaWQubW9kdWxlJztcblxuZXhwb3J0ICogZnJvbSAnLi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5jb21wb25lbnQnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5tb2R1bGUnO1xuZXhwb3J0ICogZnJvbSAnLi9naW8tbW9uYWNvLWVkaXRvci9naW8tbW9uYWNvLWVkaXRvci5oYXJuZXNzJztcbiJdfQ==
@@ -1,6 +1,6 @@
1
1
  import { trigger, transition, style, animate } from '@angular/animations';
2
2
  import * as i0 from '@angular/core';
3
- import { EventEmitter, Component, HostBinding, Input, Output, HostListener, NgModule, Optional, Self, ViewChild, Directive, Inject, forwardRef, ChangeDetectionStrategy, Injectable, ViewEncapsulation, ContentChildren, Host, ContentChild } from '@angular/core';
3
+ import { EventEmitter, Component, HostBinding, Input, Output, HostListener, NgModule, Optional, Self, ViewChild, Directive, Inject, forwardRef, ChangeDetectionStrategy, Injectable, ViewEncapsulation, ContentChildren, Host, ContentChild, InjectionToken } from '@angular/core';
4
4
  import { timer, Subject, fromEvent, of, BehaviorSubject, ReplaySubject } from 'rxjs';
5
5
  import * as i1 from '@angular/material/card';
6
6
  import { MatCardModule } from '@angular/material/card';
@@ -13,8 +13,8 @@ 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, set } from 'lodash';
17
- import { startWith, map, distinctUntilChanged, tap, debounce, takeUntil, delay, filter, switchMap, shareReplay } from 'rxjs/operators';
16
+ import { isEmpty, toLower, dropRight, isNil, isArray, remove, isObject, cloneDeep, set, uniqueId } from 'lodash';
17
+ import { startWith, map, distinctUntilChanged, tap, debounce, takeUntil, delay, filter, switchMap } 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';
20
20
  import * as i2$2 from '@angular/cdk/a11y';
@@ -2845,6 +2845,10 @@ class GioFormJsonSchemaComponent {
2845
2845
  }
2846
2846
  }
2847
2847
  ngOnInit() {
2848
+ var _a, _b, _c;
2849
+ // When the parent form is touched, mark all the sub formGroup as touched
2850
+ const parentControl = (_b = (_a = this.ngControl) === null || _a === void 0 ? void 0 : _a.control) === null || _b === void 0 ? void 0 : _b.parent;
2851
+ (_c = parentControl === null || parentControl === void 0 ? void 0 : parentControl.statusChanges) === null || _c === void 0 ? void 0 : _c.pipe(takeUntil(this.unsubscribe$), map(() => parentControl === null || parentControl === void 0 ? void 0 : parentControl.touched), filter(touched => touched === true), tap(() => this.formGroup.markAllAsTouched())).subscribe();
2848
2852
  this.formGroup.statusChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(status => {
2849
2853
  var _a, _b, _c, _d;
2850
2854
  if (status === 'VALID') {
@@ -3098,7 +3102,7 @@ GioFjsObjectTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.
3098
3102
  <div class="wrapper">
3099
3103
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3100
3104
  <p *ngIf="to.description">{{ to.description }}</p>
3101
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3105
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3102
3106
  <formly-validation-message [field]="field"></formly-validation-message>
3103
3107
  </div>
3104
3108
  <div class="wrapper__fields">
@@ -3112,7 +3116,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3112
3116
  <div class="wrapper">
3113
3117
  <div class="wrapper__title" *ngIf="to.label">{{ to.label }}</div>
3114
3118
  <p *ngIf="to.description">{{ to.description }}</p>
3115
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3119
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3116
3120
  <formly-validation-message [field]="field"></formly-validation-message>
3117
3121
  </div>
3118
3122
  <div class="wrapper__fields">
@@ -3145,7 +3149,7 @@ class GioFjsArrayTypeComponent extends FieldArrayType {
3145
3149
  }
3146
3150
  GioFjsArrayTypeComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, deps: null, target: i0.ɵɵFactoryTarget.Component });
3147
3151
  GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioFjsArrayTypeComponent, selector: "gio-fjs-array-type", usesInheritance: true, ngImport: i0, template: `
3148
- <div class="wrapper">
3152
+ <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3149
3153
  <div class="wrapper__header">
3150
3154
  <div class="wrapper__header__text">
3151
3155
  <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
@@ -3158,11 +3162,11 @@ GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
3158
3162
  </div>
3159
3163
  </div>
3160
3164
 
3161
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3165
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3162
3166
  <formly-validation-message [field]="field"></formly-validation-message>
3163
3167
  </div>
3164
3168
 
3165
- <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3169
+ <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3166
3170
  <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3167
3171
  <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3168
3172
  <div class="wrapper__rows__row__remove">
@@ -3177,11 +3181,11 @@ GioFjsArrayTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
3177
3181
  </div>
3178
3182
  </div>
3179
3183
  </div>
3180
- `, isInline: true, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.wrapper__rows__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper__rows__row+.wrapper__rows__row{padding-top:3px;border-top:1px solid #d3d5dc;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"], components: [{ type: i2.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i1$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i1$4.ɵFormlyValidationMessage, selector: "formly-validation-message", inputs: ["field"] }, { type: i1$4.FormlyField, selector: "formly-field", inputs: ["field"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
3184
+ `, 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"] }] });
3181
3185
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFjsArrayTypeComponent, decorators: [{
3182
3186
  type: Component,
3183
3187
  args: [{ selector: 'gio-fjs-array-type', template: `
3184
- <div class="wrapper">
3188
+ <div class="wrapper" [class.error]="formControl.touched && formControl.invalid">
3185
3189
  <div class="wrapper__header">
3186
3190
  <div class="wrapper__header__text">
3187
3191
  <div class="wrapper__header__text__title" *ngIf="to.label">{{ to.label }}</div>
@@ -3194,11 +3198,11 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3194
3198
  </div>
3195
3199
  </div>
3196
3200
 
3197
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3201
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3198
3202
  <formly-validation-message [field]="field"></formly-validation-message>
3199
3203
  </div>
3200
3204
 
3201
- <div *ngIf="!collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3205
+ <div [hidden]="collapse" class="wrapper__rows" [class.collapse-open]="collapse" [class.collapse-close]="!collapse">
3202
3206
  <div *ngFor="let field of field.fieldGroup; let i = index" class="wrapper__rows__row">
3203
3207
  <formly-field class="wrapper__rows__row__field" [field]="field"></formly-field>
3204
3208
  <div class="wrapper__rows__row__remove">
@@ -3213,7 +3217,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3213
3217
  </div>
3214
3218
  </div>
3215
3219
  </div>
3216
- `, styles: [".wrapper{padding:8px;border:1px solid #d3d5dc;border-radius:8px}.wrapper:empty{display:none}.wrapper__header{display:flex}.wrapper__header__text{flex:1 1 auto}.wrapper__header__text__title{font:600 16px/24px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:.4px;margin-bottom:8px}.wrapper__header__collapse{flex:0 0 auto}.wrapper__header__collapse .collapse-open{transform:rotate(180deg);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__header__collapse .collapse-close{transform:rotate(0);transition:transform 225ms cubic-bezier(.4,0,.2,1)}.wrapper__error{font:400 12px/16px Golos UI,Roboto,Helvetica Neue,sans-serif;letter-spacing:normal;color:#ec4899}.wrapper__rows__row{display:flex;align-items:center;justify-content:space-between;margin-bottom:4px}.wrapper__rows__row+.wrapper__rows__row{padding-top:3px;border-top:1px solid #d3d5dc;margin-top:4px}.wrapper__rows__row__field{flex:1 1 auto}.wrapper__rows__row__remove{flex:0 0 auto}\n"] }]
3220
+ `, 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"] }]
3217
3221
  }] });
3218
3222
 
3219
3223
  function minItemsValidationMessage(error, field) {
@@ -3320,7 +3324,7 @@ GioFjsMultiSchemaTypeComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "
3320
3324
  <div class="wrapper">
3321
3325
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3322
3326
  <p *ngIf="props.description">{{ props.description }}</p>
3323
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3327
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3324
3328
  <formly-validation-message [field]="field"></formly-validation-message>
3325
3329
  </div>
3326
3330
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
@@ -3332,7 +3336,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3332
3336
  <div class="wrapper">
3333
3337
  <div class="wrapper__title" *ngIf="props.label">{{ props.label }}</div>
3334
3338
  <p *ngIf="props.description">{{ props.description }}</p>
3335
- <div class="wrapper__error" *ngIf="showError && formControl.errors">
3339
+ <div class="wrapper__error gio-ng-invalid" *ngIf="showError && formControl.errors">
3336
3340
  <formly-validation-message [field]="field"></formly-validation-message>
3337
3341
  </div>
3338
3342
  <formly-field *ngFor="let f of field.fieldGroup" [field]="f"></formly-field>
@@ -3620,6 +3624,111 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3620
3624
  }]
3621
3625
  }] });
3622
3626
 
3627
+ /*
3628
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3629
+ *
3630
+ * Licensed under the Apache License, Version 2.0 (the "License");
3631
+ * you may not use this file except in compliance with the License.
3632
+ * You may obtain a copy of the License at
3633
+ *
3634
+ * http://www.apache.org/licenses/LICENSE-2.0
3635
+ *
3636
+ * Unless required by applicable law or agreed to in writing, software
3637
+ * distributed under the License is distributed on an "AS IS" BASIS,
3638
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3639
+ * See the License for the specific language governing permissions and
3640
+ * limitations under the License.
3641
+ */
3642
+ class GioFormFocusInvalidDirective {
3643
+ constructor(renderer, formGroupDirective) {
3644
+ this.renderer = renderer;
3645
+ this.formGroupDirective = formGroupDirective;
3646
+ }
3647
+ onFormSubmit() {
3648
+ const selector = '.ng-invalid[formControlName],input.ng-invalid,mat-select.ng-invalid,textarea.ng-invalid,.gio-ng-invalid';
3649
+ try {
3650
+ let invalidControl = this.renderer.selectRootElement(selector, true);
3651
+ // If the form is a GioFormJsonSchema, we need to focus the first invalid control inside
3652
+ if (invalidControl.tagName === 'GIO-FORM-JSON-SCHEMA') {
3653
+ invalidControl = invalidControl.querySelector(selector);
3654
+ }
3655
+ if (invalidControl) {
3656
+ // Mark all controls as touched to display errors
3657
+ if (this.formGroupDirective) {
3658
+ this.formGroupDirective.control.markAllAsTouched();
3659
+ this.formGroupDirective.control.updateValueAndValidity();
3660
+ }
3661
+ invalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });
3662
+ invalidControl.focus({ preventScroll: true });
3663
+ }
3664
+ }
3665
+ catch (error) {
3666
+ // Best effort. If the focus doesn't work it's not very important
3667
+ // 🧪 Useful to avoid som error in tests
3668
+ }
3669
+ }
3670
+ }
3671
+ GioFormFocusInvalidDirective.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidDirective, deps: [{ token: i0.Renderer2 }, { token: i7.FormGroupDirective, optional: true }], target: i0.ɵɵFactoryTarget.Directive });
3672
+ GioFormFocusInvalidDirective.ɵdir = i0.ɵɵngDeclareDirective({ minVersion: "12.0.0", version: "13.3.12", type: GioFormFocusInvalidDirective, selector: "form[gioFormFocusInvalid]", host: { listeners: { "submit": "onFormSubmit()" } }, ngImport: i0 });
3673
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidDirective, decorators: [{
3674
+ type: Directive,
3675
+ args: [{
3676
+ selector: 'form[gioFormFocusInvalid]',
3677
+ }]
3678
+ }], ctorParameters: function () {
3679
+ return [{ type: i0.Renderer2 }, { type: i7.FormGroupDirective, decorators: [{
3680
+ type: Optional
3681
+ }] }];
3682
+ }, propDecorators: { onFormSubmit: [{
3683
+ type: HostListener,
3684
+ args: ['submit']
3685
+ }] } });
3686
+
3687
+ /*
3688
+ * Copyright (C) 2015 The Gravitee team (http://gravitee.io)
3689
+ *
3690
+ * Licensed under the Apache License, Version 2.0 (the "License");
3691
+ * you may not use this file except in compliance with the License.
3692
+ * You may obtain a copy of the License at
3693
+ *
3694
+ * http://www.apache.org/licenses/LICENSE-2.0
3695
+ *
3696
+ * Unless required by applicable law or agreed to in writing, software
3697
+ * distributed under the License is distributed on an "AS IS" BASIS,
3698
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3699
+ * See the License for the specific language governing permissions and
3700
+ * limitations under the License.
3701
+ */
3702
+ class GioFormFocusInvalidModule {
3703
+ }
3704
+ GioFormFocusInvalidModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3705
+ GioFormFocusInvalidModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, declarations: [GioFormFocusInvalidDirective], exports: [GioFormFocusInvalidDirective] });
3706
+ GioFormFocusInvalidModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule });
3707
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioFormFocusInvalidModule, decorators: [{
3708
+ type: NgModule,
3709
+ args: [{
3710
+ declarations: [GioFormFocusInvalidDirective],
3711
+ exports: [GioFormFocusInvalidDirective],
3712
+ }]
3713
+ }] });
3714
+
3715
+ /*
3716
+ * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3717
+ *
3718
+ * Licensed under the Apache License, Version 2.0 (the "License");
3719
+ * you may not use this file except in compliance with the License.
3720
+ * You may obtain a copy of the License at
3721
+ *
3722
+ * http://www.apache.org/licenses/LICENSE-2.0
3723
+ *
3724
+ * Unless required by applicable law or agreed to in writing, software
3725
+ * distributed under the License is distributed on an "AS IS" BASIS,
3726
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
3727
+ * See the License for the specific language governing permissions and
3728
+ * limitations under the License.
3729
+ */
3730
+ const GIO_MONACO_EDITOR_CONFIG = new InjectionToken('gio-monaco-editor-config');
3731
+
3623
3732
  /*
3624
3733
  * Copyright (C) 2023 The Gravitee team (http://gravitee.io)
3625
3734
  *
@@ -3637,12 +3746,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3637
3746
  */
3638
3747
  class GioMonacoEditorService {
3639
3748
  constructor() {
3640
- this.loaded$ = new ReplaySubject();
3641
- }
3642
- loadedChange$() {
3643
- return this.loaded$.pipe(filter(event => !!event.monaco), shareReplay(1));
3749
+ this.loaded$ = new ReplaySubject(1);
3750
+ this.loaded = false;
3644
3751
  }
3645
3752
  loadEditor() {
3753
+ if (this.loaded) {
3754
+ // Already loaded, do nothing.
3755
+ return Promise.resolve();
3756
+ }
3757
+ this.loaded = true;
3646
3758
  return new Promise(resolve => {
3647
3759
  // Monaco is already loaded
3648
3760
  if (typeof window.monaco === 'object') {
@@ -3760,18 +3872,23 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3760
3872
  * limitations under the License.
3761
3873
  */
3762
3874
  class GioMonacoEditorComponent {
3763
- constructor(monacoEditorService, languageJsonService, hostElement) {
3875
+ constructor(config, monacoEditorService, languageJsonService, hostElement, changeDetectorRef, ngZone) {
3876
+ this.config = config;
3764
3877
  this.monacoEditorService = monacoEditorService;
3765
3878
  this.languageJsonService = languageJsonService;
3766
3879
  this.hostElement = hostElement;
3880
+ this.changeDetectorRef = changeDetectorRef;
3881
+ this.ngZone = ngZone;
3767
3882
  this.options = {};
3768
- this.theme = 'vs';
3883
+ this.id = uniqueId('gio-monaco-editor-');
3769
3884
  this.loading = true;
3770
3885
  this.defaultOptions = {
3771
3886
  contextmenu: false,
3772
3887
  minimap: {
3773
3888
  enabled: true,
3774
3889
  },
3890
+ automaticLayout: true,
3891
+ scrollBeyondLastLine: false,
3775
3892
  };
3776
3893
  this.value = '';
3777
3894
  this.readOnly = false;
@@ -3785,6 +3902,7 @@ class GioMonacoEditorComponent {
3785
3902
  this.monacoEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(({ monaco }) => {
3786
3903
  this.setupEditor(monaco);
3787
3904
  this.loading = false;
3905
+ this.changeDetectorRef.detectChanges();
3788
3906
  });
3789
3907
  }
3790
3908
  ngOnDestroy() {
@@ -3804,6 +3922,9 @@ class GioMonacoEditorComponent {
3804
3922
  if (_value) {
3805
3923
  this.value = _value;
3806
3924
  }
3925
+ if (this.textModel) {
3926
+ this.textModel.setValue(this.value);
3927
+ }
3807
3928
  }
3808
3929
  // From ControlValueAccessor interface
3809
3930
  registerOnChange(fn) {
@@ -3818,7 +3939,7 @@ class GioMonacoEditorComponent {
3818
3939
  this.readOnly = isDisabled;
3819
3940
  }
3820
3941
  setupEditor(monaco) {
3821
- var _a, _b, _c;
3942
+ var _a, _b, _c, _d, _e;
3822
3943
  if (!this.hostElement) {
3823
3944
  throw new Error('No editor ref found.');
3824
3945
  }
@@ -3826,23 +3947,29 @@ class GioMonacoEditorComponent {
3826
3947
  const settings = {
3827
3948
  value: this.value,
3828
3949
  language: (_b = (_a = this.languageConfig) === null || _a === void 0 ? void 0 : _a.language) !== null && _b !== void 0 ? _b : 'text',
3829
- uri: `code-${Date.now()}`,
3950
+ uri: `code-${uniqueId()}`,
3830
3951
  };
3831
- this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.file(settings.uri));
3952
+ this.ngZone.runOutsideAngular(() => {
3953
+ this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.parse(settings.uri));
3954
+ });
3832
3955
  const options = Object.assign({}, this.defaultOptions, this.options, {
3833
3956
  readOnly: this.readOnly,
3834
- theme: this.theme,
3957
+ theme: (_c = this.config.theme) !== null && _c !== void 0 ? _c : 'vs',
3835
3958
  model: this.textModel,
3836
3959
  });
3837
- setTimeout(() => {
3838
- // Fix browser freeze during storybook navigation 🤷‍♂️
3839
- this.standaloneCodeEditor = monaco.editor.create(domElement, options);
3840
- }, 100);
3841
- (_c = this.textModel) === null || _c === void 0 ? void 0 : _c.onDidChangeContent(() => {
3960
+ this.standaloneCodeEditor = monaco.editor.create(domElement, Object.assign({}, options));
3961
+ (_d = this.textModel) === null || _d === void 0 ? void 0 : _d.onDidChangeContent(() => {
3842
3962
  var _a;
3843
3963
  const newValue = (_a = this.textModel) === null || _a === void 0 ? void 0 : _a.getValue();
3844
- newValue && this._onChange(newValue);
3845
- this._onTouched();
3964
+ this.ngZone.run(() => {
3965
+ newValue && this._onChange(newValue);
3966
+ this._onTouched();
3967
+ });
3968
+ });
3969
+ (_e = this.standaloneCodeEditor) === null || _e === void 0 ? void 0 : _e.onDidBlurEditorWidget(() => {
3970
+ this.ngZone.run(() => {
3971
+ this._onTouched();
3972
+ });
3846
3973
  });
3847
3974
  this.setupLanguage(settings.uri, this.languageConfig);
3848
3975
  }
@@ -3865,29 +3992,32 @@ class GioMonacoEditorComponent {
3865
3992
  }
3866
3993
  }
3867
3994
  }
3868
- GioMonacoEditorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, deps: [{ token: GioMonacoEditorService }, { token: GioLanguageJsonService }, { token: i0.ElementRef }], target: i0.ɵɵFactoryTarget.Component });
3869
- GioMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options", theme: "theme" }, providers: [
3995
+ 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 });
3996
+ GioMonacoEditorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.12", type: GioMonacoEditorComponent, selector: "gio-monaco-editor", inputs: { languageConfig: "languageConfig", options: "options" }, providers: [
3870
3997
  {
3871
3998
  provide: NG_VALUE_ACCESSOR,
3872
3999
  useExisting: forwardRef(() => GioMonacoEditorComponent),
3873
4000
  multi: true,
3874
4001
  },
3875
- ], ngImport: i0, template: '<div *ngIf="loading">Loading...</div>', isInline: true, styles: [":host{display:block;min-height:150px}\n"], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }] });
4002
+ ], 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"] }] });
3876
4003
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorComponent, decorators: [{
3877
4004
  type: Component,
3878
- args: [{ selector: 'gio-monaco-editor', template: '<div *ngIf="loading">Loading...</div>', providers: [
4005
+ args: [{ selector: 'gio-monaco-editor', template: ` <div *ngIf="loading">Loading...</div>`, providers: [
3879
4006
  {
3880
4007
  provide: NG_VALUE_ACCESSOR,
3881
4008
  useExisting: forwardRef(() => GioMonacoEditorComponent),
3882
4009
  multi: true,
3883
4010
  },
3884
- ], styles: [":host{display:block;min-height:150px}\n"] }]
3885
- }], ctorParameters: function () { return [{ type: GioMonacoEditorService }, { type: GioLanguageJsonService }, { type: i0.ElementRef }]; }, propDecorators: { languageConfig: [{
4011
+ ], styles: [":host{display:block;height:100%;min-height:150px}\n"] }]
4012
+ }], ctorParameters: function () {
4013
+ return [{ type: undefined, decorators: [{
4014
+ type: Inject,
4015
+ args: [GIO_MONACO_EDITOR_CONFIG]
4016
+ }] }, { type: GioMonacoEditorService }, { type: GioLanguageJsonService }, { type: i0.ElementRef }, { type: i0.ChangeDetectorRef }, { type: i0.NgZone }];
4017
+ }, propDecorators: { languageConfig: [{
3886
4018
  type: Input
3887
4019
  }], options: [{
3888
4020
  type: Input
3889
- }], theme: [{
3890
- type: Input
3891
4021
  }] } });
3892
4022
 
3893
4023
  /*
@@ -3906,16 +4036,38 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImpo
3906
4036
  * limitations under the License.
3907
4037
  */
3908
4038
  class GioMonacoEditorModule {
4039
+ static forRoot(config) {
4040
+ return {
4041
+ ngModule: GioMonacoEditorModule,
4042
+ providers: [
4043
+ {
4044
+ provide: GIO_MONACO_EDITOR_CONFIG,
4045
+ useValue: config,
4046
+ },
4047
+ ],
4048
+ };
4049
+ }
3909
4050
  }
3910
4051
  GioMonacoEditorModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
3911
4052
  GioMonacoEditorModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, declarations: [GioMonacoEditorComponent], imports: [CommonModule, HttpClientModule, ReactiveFormsModule], exports: [GioMonacoEditorComponent] });
3912
- GioMonacoEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, imports: [[CommonModule, HttpClientModule, ReactiveFormsModule]] });
4053
+ GioMonacoEditorModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, providers: [
4054
+ {
4055
+ provide: GIO_MONACO_EDITOR_CONFIG,
4056
+ useValue: {},
4057
+ },
4058
+ ], imports: [[CommonModule, HttpClientModule, ReactiveFormsModule]] });
3913
4059
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.12", ngImport: i0, type: GioMonacoEditorModule, decorators: [{
3914
4060
  type: NgModule,
3915
4061
  args: [{
3916
4062
  imports: [CommonModule, HttpClientModule, ReactiveFormsModule],
3917
4063
  declarations: [GioMonacoEditorComponent],
3918
4064
  exports: [GioMonacoEditorComponent],
4065
+ providers: [
4066
+ {
4067
+ provide: GIO_MONACO_EDITOR_CONFIG,
4068
+ useValue: {},
4069
+ },
4070
+ ],
3919
4071
  }]
3920
4072
  }] });
3921
4073
 
@@ -4048,5 +4200,5 @@ GioMonacoEditorHarness.hostSelector = 'gio-monaco-editor';
4048
4200
  * Generated bundle index. Do not edit.
4049
4201
  */
4050
4202
 
4051
- export { GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, GioMatConfigModule, GioMenuComponent, GioMenuFooterComponent, GioMenuHeaderComponent, GioMenuItemComponent, GioMenuListComponent, GioMenuModule, GioMenuSelectorComponent, GioMenuSelectorHarness, GioMenuService, GioMonacoEditorComponent, GioMonacoEditorHarness, GioMonacoEditorModule, GioSaveBarComponent, GioSaveBarHarness, GioSaveBarModule, GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuModule, GioSubmenuTitleDirective, GioTopBarComponent, GioTopBarContentComponent, GioTopBarLinkComponent, GioTopBarLinkModule, GioTopBarMenuComponent, GioTopBarMenuModule, GioTopBarModule, NewFile };
4203
+ export { GioAvatarComponent, GioAvatarModule, GioBannerActionDirective, GioBannerBodyDirective, GioBannerComponent, GioBannerErrorComponent, GioBannerInfoComponent, GioBannerModule, GioBannerSuccessComponent, GioBannerWarningComponent, GioBreadcrumbComponent, GioBreadcrumbItemDirective, GioBreadcrumbModule, GioConfirmAndValidateDialogComponent, GioConfirmAndValidateDialogHarness, GioConfirmAndValidateDialogModule, GioConfirmDialogComponent, GioConfirmDialogHarness, GioConfirmDialogModule, GioFormFilePickerAddButtonComponent, GioFormFilePickerComponent, GioFormFilePickerEmptyComponent, GioFormFilePickerInputHarness, GioFormFilePickerLabelComponent, GioFormFilePickerModule, GioFormFocusInvalidDirective, GioFormFocusInvalidModule, GioFormHeadersComponent, GioFormHeadersHarness, GioFormHeadersModule, GioFormJsonSchemaComponent, GioFormJsonSchemaModule, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleComponent, GioFormSlideToggleDirective, GioFormSlideToggleModule, GioFormTagsInputComponent, GioFormTagsInputHarness, GioFormTagsInputModule, GioIconsModule, 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 };
4052
4204
  //# sourceMappingURL=gravitee-ui-particles-angular.mjs.map