@gravitee/ui-particles-angular 16.3.0-renovate-all-devdependencies-minor-patch-d78e28c → 16.3.0-renovate-npm-angular-compiler-vulnerability-5d28012

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.
@@ -1 +1 @@
1
- {"version":3,"file":"gravitee-ui-particles-angular.mjs","sources":["../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.component.ts","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.component.html","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.module.ts","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.component.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.component.html","../../../projects/ui-particles-angular/src/lib/gio-icons/gio-icons.module.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.component.ts","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.component.html","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el.service.ts","../../../projects/ui-particles-angular/src/lib/gio-el/models/ElAiPromptState.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard.base.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard-copy-icon.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard.module.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-prompt/gio-el-prompt.component.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-prompt/gio-el-prompt.component.html","../../../projects/ui-particles-angular/src/lib/gio-el/index.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover.component.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover.component.html","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover-trigger.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/index.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-assistant/gio-el-assistant.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.model.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/index.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.component.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.component.html","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.module.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/index.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb-item.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.component.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.component.html","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.module.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/index.ts","../../../projects/ui-particles-angular/src/lib/gio-mat-config/gio-mat-config.module.ts","../../../projects/ui-particles-angular/src/lib/gio-mat-config/index.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-formly-json-schema.service.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-form-json-schema.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-label.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.module.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/models/GioMonacoEditorConfig.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-monaco-editor.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-language-json.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/models/JSONSchemaAutoComplete.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-language-el.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-clipboard-copy.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.adapter.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron-hint.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/null-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/object-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/array-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/util/validation-message.util.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-extension.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/multischema-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/toggle-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/headers-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-password-eye.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/code-editor-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/cron-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-el-helper-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-form-json-schema.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/model/GioJsonSchema.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.testing.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-prismjs/gio-prismjs.service.ts","../../../projects/ui-particles-angular/src/lib/gio-dialog/gio-dialog.constant.ts","../../../projects/ui-particles-angular/src/lib/gio-pipe/safe.pipe.ts","../../../projects/ui-particles-angular/src/lib/gio-pipe/gio.pipe.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.service.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.testing.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.html","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/public-api.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.harness.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.harness.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/oem-theme.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/public-api.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.component.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.component.html","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.module.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/index.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/public-api.ts","../../../projects/ui-particles-angular/src/lib/gio-el/public-api.ts","../../../projects/ui-particles-angular/src/lib/public-api.ts","../../../projects/ui-particles-angular/src/public-api.ts","../../../projects/ui-particles-angular/src/gravitee-ui-particles-angular.ts"],"sourcesContent":["/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { of, Subscription } from 'rxjs';\nimport { delay, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'gio-save-bar',\n templateUrl: './gio-save-bar.component.html',\n styleUrls: ['./gio-save-bar.component.scss'],\n animations: [\n trigger('slideUpDown', [\n transition(':enter', [\n style({ transform: 'translateY(40vh)', opacity: '0' }),\n animate('300ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateY(0)', opacity: '1' })),\n ]),\n transition(':leave', [\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('300ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateY(40vh)', opacity: '0' })),\n ]),\n ]),\n ],\n standalone: false,\n})\nexport class GioSaveBarComponent implements OnDestroy {\n public isSubmitted = false;\n\n @HostBinding('class.save-bar-sticky')\n public get isSticky(): boolean {\n return !this.creationMode;\n }\n\n @Input()\n public opened = false;\n\n /**\n * When true, the submit button have invalidate display\n * And on submit clicked the output event is emit on submitInvalidState (and not on submit)\n */\n @Input()\n public invalidState?: boolean = false;\n\n @Input()\n public creationMode = false;\n\n @Input()\n public form?: UntypedFormGroup;\n\n private hasSubmitLock = true;\n private submitLockSubscription?: Subscription;\n\n @Input()\n public formInitialValues?: unknown;\n\n @Input()\n public hideSubmitButton = false;\n\n @Input()\n public hideDiscardButton = false;\n\n @Output()\n public resetClicked = new EventEmitter<void>();\n\n @Output()\n public submitted = new EventEmitter<void>();\n\n @Output()\n public submittedInvalidState = new EventEmitter();\n\n @HostBinding('class.is-open')\n public get isOpen(): boolean {\n if (this.creationMode) {\n return true;\n }\n\n if (this.form) {\n return this.form.dirty;\n }\n return this.opened;\n }\n\n public ngOnDestroy() {\n this.submitLockSubscription?.unsubscribe();\n }\n\n public onResetClicked(): void {\n if (this.form) {\n this.form.reset(this.formInitialValues);\n this.form.markAsPristine();\n }\n this.resetClicked.emit();\n }\n\n @HostListener('disable-submit-lock')\n public onDisableSubmitLock(): void {\n this.hasSubmitLock = false;\n }\n\n public onSubmitClicked(): void {\n if ((this.form && this.form.invalid) || this.invalidState) {\n this.form?.markAllAsTouched();\n this.submittedInvalidState.emit();\n return;\n }\n\n if (this.isSubmitted) {\n return;\n }\n\n this.submitted.emit();\n if (this.hasSubmitLock) {\n this.submitLockSubscription = of(undefined)\n .pipe(\n // Arrange js microtask queue to be sure that the disabled button state is set after triggering the ngSubmit event\n delay(0),\n tap(() => (this.isSubmitted = true)),\n delay(2000),\n tap(() => (this.isSubmitted = false)),\n )\n .subscribe();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n@if (isOpen) {\n <div [@slideUpDown] [@.disabled]=\"creationMode\">\n <mat-card\n class=\"save-bar__content mat-mdc-elevation-specific\"\n [class.mat-elevation-z3]=\"creationMode\"\n [class.mat-elevation-z6]=\"!creationMode\"\n >\n <div class=\"save-bar__content__label\">{{ creationMode ? '' : 'You have unsaved changes' }}</div>\n <div class=\"save-bar__content__actions\">\n @if (!creationMode && !hideDiscardButton) {\n <button class=\"save-bar__content__actions__reset-button\" mat-button type=\"button\" (click)=\"onResetClicked()\">Discard</button>\n }\n <ng-content></ng-content>\n @if (!hideSubmitButton) {\n <button\n class=\"save-bar__content__actions__submit-button\"\n [class.invalid]=\"(form && form.invalid) || invalidState\"\n mat-flat-button\n color=\"primary\"\n [type]=\"form ? 'submit' : 'button'\"\n [disabled]=\"isSubmitted\"\n (click)=\"onSubmitClicked()\"\n >\n {{ creationMode ? 'Create' : 'Save' }}{{ isSubmitted ? '...' : '' }}\n </button>\n }\n </div>\n </mat-card>\n </div>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioSaveBarComponent } from './gio-save-bar.component';\n\n@NgModule({\n imports: [CommonModule, MatCardModule, MatButtonModule],\n declarations: [GioSaveBarComponent],\n exports: [GioSaveBarComponent],\n})\nexport class GioSaveBarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\n\nexport class GioSaveBarHarness extends ComponentHarness {\n public static hostSelector = 'gio-save-bar';\n\n private readonly cardSelector = '.save-bar__content';\n private readonly resetButtonSelector = '.save-bar__content__actions__reset-button';\n private readonly submitButtonSelector = '.save-bar__content__actions__submit-button';\n\n protected getSubmitButton = this.locatorFor(this.submitButtonSelector);\n protected getResetButton = this.locatorFor(this.resetButtonSelector);\n\n public async isVisible(): Promise<boolean> {\n const card = await this.locatorForOptional(this.cardSelector)();\n return card !== null;\n }\n\n public async clickSubmit(): Promise<void> {\n const host = await this.host();\n await host.dispatchEvent('disable-submit-lock');\n const submitButton = await this.getSubmitButton();\n return submitButton.click();\n }\n\n public async isSubmitButtonInvalid(): Promise<boolean> {\n const submitButton = await this.getSubmitButton();\n return submitButton.hasClass('invalid');\n }\n\n public async isSubmitButtonVisible(): Promise<boolean> {\n const submitButton = await this.locatorForOptional(this.submitButtonSelector)();\n return submitButton !== null;\n }\n\n public async isResetButtonVisible(): Promise<boolean> {\n const submitButton = await this.locatorForOptional(this.resetButtonSelector)();\n return submitButton !== null;\n }\n\n public async clickReset(): Promise<void> {\n const resetButton = await this.getResetButton();\n return resetButton.click();\n }\n}\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 */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-loader',\n templateUrl: './gio-loader.component.html',\n styleUrls: ['./gio-loader.component.scss'],\n standalone: false,\n})\nexport class GioLoaderComponent {}\n","<!--\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=\"loader\">\n <mat-icon svgIcon=\"gio:loader\"></mat-icon>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { isEmpty } from 'lodash';\nimport { fromEvent, Observable, of, Subject } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, tap } from 'rxjs/operators';\n\nexport type Tags = Array<string>;\n\ntype AutocompleteOptionsFlat = (string | { value: string; label: string })[];\ntype AutocompleteOptionsGroup = { groupLabel: string; groupOptions: AutocompleteOptionsFlat }[];\n\nexport type AutocompleteOptions = AutocompleteOptionsFlat | AutocompleteOptionsGroup;\n\nexport type DisplayValueWithFn = (value: string) => Observable<string>;\n\n@Component({\n selector: 'gio-form-tags-input',\n templateUrl: './gio-form-tags-input.component.html',\n styleUrls: ['./gio-form-tags-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: GioFormTagsInputComponent,\n },\n ],\n standalone: false,\n})\nexport class GioFormTagsInputComponent implements MatFormFieldControl<Tags>, ControlValueAccessor, DoCheck, OnDestroy {\n private static nextId = 0;\n\n public _onChange: (_tags: Tags | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n private touched = false;\n\n @Input('aria-label')\n public ariaLabel = '';\n\n @Input()\n public addOnBlur = true;\n\n /**\n * Function called each time a tag is added, it can be used to hook inside the\n * addition process to, for instance, have custom validation in the components\n * using `gio-form-tags-input`.\n *\n * Parameters are:\n * - `tag`: The value of the tag to add\n * - `validationCb`: The callback function to call when validation is done. If\n * called with `true` it will add the tag, otherwise it will just ignore it\n */\n @Input()\n public tagValidationHook: ((tag: string, validationCb: (shouldAddTag: boolean) => void) => void) | undefined = undefined;\n\n @Input()\n public set autocompleteOptions(v: AutocompleteOptions | ((search: string) => Observable<AutocompleteOptions>) | undefined) {\n this._autocompleteOptions = v;\n }\n\n @Output()\n public tagClicked = new EventEmitter<string>();\n\n public _autocompleteOptions?: AutocompleteOptions | ((search: string) => Observable<AutocompleteOptions>);\n\n /**\n * Get the label of an option value.\n * To use with autocompleteOptions label & value mode.\n * Function called each time a tag needs to be displayed id defined.\n */\n @Input()\n public set displayValueWith(displayValueWith: DisplayValueWithFn) {\n this._displayValueWith = (value: string) => {\n if (this.displayValueCache[value]) {\n return of(this.displayValueCache[value]);\n }\n return displayValueWith(value).pipe(\n tap(label => {\n this.displayValueCache[value] = label;\n }),\n );\n };\n }\n\n /**\n * Set to true to force the chip to be part of the autocomplete options.\n */\n @Input()\n public useAutocompleteOptionValueOnly = false;\n\n @ViewChild('tagInput')\n public set tagInput(v: ElementRef<HTMLInputElement> | null) {\n if (v) {\n this.fm.monitor(v.nativeElement).subscribe(origin => {\n if (origin) {\n this.initAutocomplete();\n }\n });\n } else if (this._tagInput) {\n this.fm.stopMonitoring(this._tagInput.nativeElement);\n }\n\n this._tagInput = v;\n }\n private _tagInput: ElementRef<HTMLInputElement> | null = null;\n\n public autocompleteFilteredOptions$?: Observable<{ groupLabel?: string; groupOptions: { value: string; label: string }[] }[]>;\n\n public _displayValueWith?: (value: string) => Observable<string>;\n\n private displayValueCache: Record<string, string> = {};\n\n public loading = false;\n\n // From MatFormFieldControl interface\n public get value(): Tags | null {\n return this._value;\n }\n\n public set value(_tags: Tags | null) {\n this._value = _tags;\n this._onChange(_tags);\n this.stateChanges.next();\n }\n\n private _value: Tags | null = null;\n\n // From MatFormFieldControl interface\n public stateChanges = new Subject<void>();\n\n // From MatFormFieldControl interface\n @HostBinding('id')\n public id = `gio-form-tags-input-${GioFormTagsInputComponent.nextId++}`;\n\n // From MatFormFieldControl interface\n @Input()\n public get placeholder(): string {\n return this._placeholder;\n }\n\n public set placeholder(plh: string) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n // From MatFormFieldControl interface\n public focused = false;\n\n // From MatFormFieldControl interface\n public get empty(): boolean {\n return isEmpty(this.value) && isEmpty(this._tagInput?.nativeElement?.value);\n }\n\n // From MatFormFieldControl interface\n @HostBinding('class.floating')\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n // From MatFormFieldControl interface\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(req: boolean) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n private _required = false;\n\n // From MatFormFieldControl interface\n @Input()\n public get disabled(): boolean {\n return this._disabled || (this.ngControl && this.ngControl.disabled === true);\n }\n\n public set disabled(dis: boolean) {\n this._disabled = coerceBooleanProperty(dis);\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n // From MatFormFieldControl interface\n public get errorState(): boolean {\n return (\n this.touched &&\n // if required check if is empty\n ((this.required && this.empty) ||\n // if there is a touched control check if there is an error\n (this.ngControl && this.ngControl.touched === true && !!this.ngControl.errors))\n );\n }\n\n // From MatFormFieldControl interface\n public controlType?: string;\n\n // From MatFormFieldControl interface\n public autofilled?: boolean;\n\n // From MatFormFieldControl interface\n public userAriaDescribedBy?: string;\n\n constructor(\n // From ControlValueAccessor interface\n @Optional() @Self() public readonly ngControl: NgControl,\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this._onTouched();\n this.touched = true;\n this.stateChanges.next();\n });\n }\n\n public ngDoCheck(): void {\n // sync control touched with local touched\n if (this.ngControl != null && this.touched !== this.ngControl.touched) {\n this.touched = this.ngControl.touched === true;\n this.stateChanges.next();\n }\n }\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n if (this._tagInput) {\n this.fm.stopMonitoring(this._tagInput.nativeElement);\n }\n }\n\n // From ControlValueAccess interface\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string[]): void {\n this._value = value;\n this.changeDetectorRef.detectChanges();\n this.changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (tags: Tags | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From MatFormFieldControl interface\n @HostBinding('attr.aria-describedby')\n public describedBy = '';\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(' ');\n }\n\n // From MatFormFieldControl interface\n public onContainerClick(_event: MouseEvent): void {\n if (this._tagInput) {\n this._tagInput.nativeElement.focus();\n }\n }\n\n public addChipToFormControl(event: { value: string }): void {\n const input = this._tagInput?.nativeElement;\n const tagToAdd = (event.value ?? '').trim();\n\n if (isEmpty(tagToAdd)) {\n return;\n }\n\n // Add the tag only if shouldAddTag in validationCb return true\n // Set default callback if not defined\n const tagValidationHook = this.tagValidationHook ?? ((_, validationCb) => validationCb(true));\n\n const validationCb = (shouldAddTag: boolean) => {\n // Add new Tag in form control\n if (shouldAddTag) {\n // Delete Tag if already existing\n const formControlValue = [...(this.value ?? [])].filter(v => v !== tagToAdd);\n\n this.value = [...formControlValue, tagToAdd];\n }\n };\n\n // Reset the input value\n if (input) {\n input.value = '';\n }\n\n tagValidationHook(tagToAdd, validationCb);\n }\n\n public removeChipToFormControl(tag: string): void {\n this.value = [...(this.value ?? [])].filter(v => v !== tag);\n this.changeDetectorRef.detectChanges();\n }\n\n public onAutocompleteSelect(event: MatAutocompleteSelectedEvent): void {\n this.addChipToFormControl({ value: event.option.value });\n }\n\n public onMatChipTokenEnd(): void {\n if (this.useAutocompleteOptionValueOnly) {\n return;\n }\n // Give priority to the `onAutocompleteSelect` when validating with the blur event\n this.addChipToFormControl({ value: this._tagInput?.nativeElement.value ?? '' });\n }\n\n private initAutocomplete(): void {\n if (this._autocompleteOptions && this._tagInput?.nativeElement) {\n this.autocompleteFilteredOptions$ = fromEvent(this._tagInput.nativeElement, 'keyup').pipe(\n startWith([] as string[]),\n tap(() => {\n this.loading = true;\n }),\n switchMap(() => {\n if (typeof this._autocompleteOptions === 'function') {\n return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(\n map(options => sanitizeAutocompleteOptions(options)),\n // Add options to displayValueCache to avoid call on select\n tap(groups => {\n groups.forEach(group => {\n group.groupOptions.forEach(option => {\n this.displayValueCache[option.value] = option.label;\n });\n });\n }),\n );\n }\n return of(defaultAutocompleteFilter(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));\n }),\n tap(() => {\n this.loading = false;\n }),\n\n distinctUntilChanged(),\n );\n this.changeDetectorRef.detectChanges();\n }\n }\n}\n\nconst defaultAutocompleteFilter = (\n options: AutocompleteOptions,\n search: string,\n): {\n groupLabel?: string;\n groupOptions: { value: string; label: string }[];\n}[] => {\n const optionsFilter = (options: { value: string; label: string }[], search: string) => {\n return options.filter(\n option =>\n option.label.toLowerCase().includes((search ?? '').toLowerCase()) ||\n option.value.toLowerCase().includes((search ?? '').toLowerCase()),\n );\n };\n\n return sanitizeAutocompleteOptions(options)\n .map(group => ({\n groupLabel: group.groupLabel,\n groupOptions: optionsFilter(group.groupOptions, search),\n }))\n .filter(group => group.groupOptions.length > 0);\n};\n\nconst sanitizeAutocompleteOptions = (\n options: AutocompleteOptions,\n): {\n groupLabel?: string;\n groupOptions: { value: string; label: string }[];\n}[] => {\n const sanitizeFlatOptions = (flatOptions: AutocompleteOptionsFlat): { value: string; label: string }[] =>\n flatOptions.map(option => {\n if (option && typeof option !== 'string' && 'value' in option && 'label' in option) {\n return option;\n }\n return { value: option, label: option };\n });\n\n if (\n Array.isArray(options) &&\n (options.length === 0 || typeof options[0] === 'string' || ('value' in options[0] && 'label' in options[0]))\n ) {\n const optionsFlat = options as AutocompleteOptionsFlat;\n return [\n {\n groupOptions: sanitizeFlatOptions(optionsFlat),\n },\n ];\n } else {\n // Else option is Grouped\n const optionsGrouped = options as AutocompleteOptionsGroup;\n return optionsGrouped.map(group => ({\n groupLabel: group.groupLabel,\n groupOptions: sanitizeFlatOptions(group.groupOptions),\n }));\n }\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-grid #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n @for (tag of value; track tag) {\n <mat-chip-row [removable]=\"!disabled\" (removed)=\"removeChipToFormControl(tag)\" [disabled]=\"disabled\" (click)=\"tagClicked.emit(tag)\">\n @if (_displayValueWith) {\n {{ _displayValueWith(tag) | async }}\n } @else {\n {{ tag }}\n }\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n <input\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n </mat-autocomplete>\n</mat-chip-grid>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n exports: [MatIconModule],\n})\nexport class GioIconsModule {\n constructor(matIconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\n matIconRegistry.addSvgIconSetInNamespace('gio', sanitizer.bypassSecurityTrustResourceUrl('assets/gio-icons.svg'));\n }\n}\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 */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioLoaderComponent } from './gio-loader.component';\n\n@NgModule({\n imports: [CommonModule, GioIconsModule],\n declarations: [GioLoaderComponent],\n exports: [GioLoaderComponent],\n})\nexport class GioLoaderModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { GioLoaderModule } from '../gio-loader/gio-loader.module';\n\nimport { GioFormTagsInputComponent } from './gio-form-tags-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n MatChipsModule,\n MatInputModule,\n FormsModule,\n MatIconModule,\n MatAutocompleteModule,\n MatSelectModule,\n GioLoaderModule,\n ],\n declarations: [GioFormTagsInputComponent],\n exports: [GioFormTagsInputComponent],\n})\nexport class GioFormTagsInputModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel, TestKey } from '@angular/cdk/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\nimport { MatChipHarness, MatChipGridHarness } from '@angular/material/chips/testing';\n\nexport type GioFormTagsInputHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormTagsInputHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-tags-input';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormTagsInputHarnessFilters = {}): HarnessPredicate<GioFormTagsInputHarness> {\n return new HarnessPredicate(GioFormTagsInputHarness, options);\n }\n\n protected getMatChipGridHarness = this.locatorFor(MatChipGridHarness);\n protected getMatChipsHarness = this.locatorForAll(MatChipHarness);\n\n public async isDisabled(): Promise<boolean> {\n const matChipGrid = await this.getMatChipGridHarness();\n const matChips = await this.getMatChipsHarness();\n\n const chipListDisabled = await matChipGrid.isDisabled();\n const chipsDisabled = await parallel(() => matChips.map(async matChip => await matChip.isDisabled()));\n\n return chipListDisabled && chipsDisabled.every(chipDisabled => chipDisabled);\n }\n\n public async getTags(): Promise<string[]> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows();\n\n return parallel(() => chips.map(async chip => await chip.getText()));\n }\n\n public async addTag(tag: string, separatorKey: TestKey | 'blur' = TestKey.ENTER): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chipInput = await matChipGrid.getInput();\n if (!chipInput) {\n throw new Error('No tags input found!');\n }\n await chipInput.setValue(tag);\n if (separatorKey === 'blur') {\n await chipInput.blur();\n } else {\n await chipInput.sendSeparatorKey(separatorKey);\n }\n }\n\n public async removeTag(tag: string): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows({ text: tag });\n if (chips[0]) {\n await chips[0].remove();\n }\n }\n\n public async getMatAutocompleteHarness(): Promise<MatAutocompleteHarness | null> {\n const matAutocompleteHarness = await this.locatorForOptional(MatAutocompleteHarness)();\n\n return matAutocompleteHarness;\n }\n\n public async clickTag(tag: string): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows({ text: tag });\n if (chips[0]) {\n const host = await chips[0].host();\n await host.click();\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Directive, Input } from '@angular/core';\n\nexport type GioBannerTypes = 'error' | 'info' | 'success' | 'warning';\n\n@Component({\n selector: 'gio-banner',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerComponent {\n @Input()\n public type: GioBannerTypes = 'info';\n\n @Input()\n public icon?: string;\n\n @Input()\n public collapsible?: boolean = false;\n\n public collapse = false;\n\n public toggleCollapse() {\n if (!this.collapsible) {\n return;\n }\n this.collapse = !this.collapse;\n }\n}\n\n@Directive({\n selector: '[gioBannerBody]',\n standalone: false,\n})\nexport class GioBannerBodyDirective {}\n\n@Directive({\n selector: '[gioBannerAction]',\n standalone: false,\n})\nexport class GioBannerActionDirective {}\n\n@Component({\n selector: 'gio-banner-error',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerErrorComponent extends GioBannerComponent {\n public type = 'error' as GioBannerTypes;\n public icon = 'gio:chat-bubble-error';\n}\n\n@Component({\n selector: 'gio-banner-info',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerInfoComponent extends GioBannerComponent {\n public type = 'info' as GioBannerTypes;\n public icon = 'gio:chat-lines';\n}\n\n@Component({\n selector: 'gio-banner-success',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerSuccessComponent extends GioBannerComponent {\n public type = 'success' as GioBannerTypes;\n public icon = 'gio:chat-bubble-check';\n}\n\n@Component({\n selector: 'gio-banner-warning',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerWarningComponent extends GioBannerComponent {\n public type = 'warning' as GioBannerTypes;\n public icon = 'gio:chat-bubble-warning';\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n class=\"banner\"\n [class.info]=\"type === 'info'\"\n [class.error]=\"type === 'error'\"\n [class.warning]=\"type === 'warning'\"\n [class.success]=\"type === 'success'\"\n>\n <div class=\"banner__wrapper\">\n @if (icon) {\n <div class=\"banner__wrapper__icon\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </div>\n } @else {\n <div class=\"banner__wrapper__icon\">\n @switch (type) {\n @case ('info') {\n <mat-icon svgIcon=\"gio:chat-lines\"></mat-icon>\n }\n @case ('error') {\n <mat-icon svgIcon=\"gio:chat-bubble-error\"></mat-icon>\n }\n @case ('warning') {\n <mat-icon svgIcon=\"gio:chat-bubble-warning\"></mat-icon>\n }\n @case ('success') {\n <mat-icon svgIcon=\"gio:chat-bubble-check\"></mat-icon>\n }\n }\n </div>\n }\n <div class=\"banner__wrapper__head\">\n <div class=\"banner__wrapper__title\" [class.collapsible]=\"collapsible\" (click)=\"toggleCollapse()\">\n <ng-content></ng-content>\n @if (collapsible) {\n <div class=\"banner__wrapper__title__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\"></mat-icon>\n </button>\n </div>\n }\n </div>\n <div #body class=\"banner__wrapper__body\" [class.hide]=\"!body.children.length || (collapsible && !collapse)\">\n <ng-content select=\"[gioBannerBody]\"></ng-content>\n </div>\n </div>\n <div #action class=\"banner__wrapper__action\" [class.hide]=\"!action.children.length\">\n <ng-content select=\"[gioBannerAction]\"></ng-content>\n </div>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport {\n GioBannerComponent,\n GioBannerBodyDirective,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerActionDirective,\n} from './gio-banner.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, GioIconsModule],\n declarations: [\n GioBannerComponent,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerBodyDirective,\n GioBannerActionDirective,\n ],\n exports: [\n GioBannerComponent,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerBodyDirective,\n GioBannerActionDirective,\n ],\n})\nexport class GioBannerModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject, Injector, Type } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { isObject, isString } from 'lodash';\n\nexport type GioConfirmDialogData = {\n title?: string;\n content?:\n | string\n | {\n componentOutlet: Type<unknown>;\n componentInputs?: Record<string, unknown>;\n };\n confirmButton?: string;\n cancelButton?: string;\n disableCancel?: boolean;\n};\n\nexport type GioConfirmDialogResult = boolean;\n\n@Component({\n selector: 'gio-confirm-dialog',\n templateUrl: './gio-confirm-dialog.component.html',\n styleUrls: ['./gio-confirm-dialog.component.scss'],\n standalone: false,\n})\nexport class GioConfirmDialogComponent {\n public title: string;\n public content?: string;\n public contentComponentOutlet?: Type<unknown>;\n public contentComponentInputs?: Record<string, unknown>;\n public contentComponentInjector: Injector;\n public confirmButton: string;\n public cancelButton: string;\n public disableCancel: boolean;\n\n constructor(\n public dialogRef: MatDialogRef<GioConfirmDialogComponent, GioConfirmDialogResult>,\n @Inject(MAT_DIALOG_DATA) confirmDialogData: GioConfirmDialogData,\n private readonly parentInjector: Injector,\n ) {\n this.title = confirmDialogData?.title ?? 'Are you sure?';\n this.contentComponentInjector = parentInjector;\n\n if (isString(confirmDialogData?.content)) {\n this.content = confirmDialogData?.content;\n } else if (isObject(confirmDialogData?.content)) {\n this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;\n // TODO: When Angular 16 ready use ngComponentOutletInputs\n this.contentComponentInjector = Injector.create({\n providers: [{ provide: 'contentComponentInputs', useValue: confirmDialogData?.content.componentInputs }],\n parent: parentInjector,\n });\n }\n\n this.confirmButton = confirmDialogData?.confirmButton ?? 'Confirm';\n this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';\n this.disableCancel = confirmDialogData?.disableCancel ?? false;\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"confirm-dialog__title\">{{ title }}</h2>\n\n@if (content) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <p [innerHTML]=\"content\"></p>\n </mat-dialog-content>\n}\n\n@if (contentComponentOutlet) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </mat-dialog-content>\n}\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n @if (!disableCancel) {\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n }\n <button\n class=\"confirm-dialog__confirm-button\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n</mat-dialog-actions>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { GioConfirmDialogComponent } from './gio-confirm-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDialogModule, A11yModule],\n declarations: [GioConfirmDialogComponent],\n exports: [GioConfirmDialogComponent],\n})\nexport class GioConfirmDialogModule {}\n","/*\n * Copyright (C) 2022 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 */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nexport class GioConfirmDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-confirm-dialog';\n\n private getConfirmBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__confirm-button' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__cancel-button' }));\n\n public async confirm(): Promise<void> {\n const button = await this.getConfirmBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject, Injector, Type } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { isObject, isString, toLower } from 'lodash';\n\nexport type GioConfirmAndValidateDialogData = {\n title?: string;\n warning?: string;\n content?:\n | string\n | {\n componentOutlet: Type<unknown>;\n componentInputs?: Record<string, unknown>;\n };\n validationMessage?: string;\n validationValue?: string;\n confirmButton?: string;\n cancelButton?: string;\n};\n\n@Component({\n selector: 'gio-confirm-and-validate-dialog',\n templateUrl: './gio-confirm-and-validate-dialog.component.html',\n styleUrls: ['./gio-confirm-and-validate-dialog.component.scss'],\n standalone: false,\n})\nexport class GioConfirmAndValidateDialogComponent {\n public title: string;\n public warning?: string;\n public content?: string;\n public contentComponentOutlet?: Type<unknown>;\n public contentComponentInputs?: Record<string, unknown>;\n public contentComponentInjector: Injector;\n public validationMessage?: string;\n public validationValue: string;\n public confirmButton: string;\n public cancelButton: string;\n\n public confirmValue?: string;\n public isValid = false;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) confirmDialogData: GioConfirmAndValidateDialogData,\n private readonly parentInjector: Injector,\n ) {\n this.title = confirmDialogData?.title ?? 'Are you sure?';\n this.warning = confirmDialogData?.warning;\n this.contentComponentInjector = parentInjector;\n\n if (isString(confirmDialogData?.content)) {\n this.content = confirmDialogData?.content as string;\n } else if (isObject(confirmDialogData?.content)) {\n this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;\n this.contentComponentInputs = confirmDialogData?.content.componentInputs;\n }\n\n this.validationMessage = extendValidationMessage(\n confirmDialogData?.validationMessage ?? 'Please, type <code>confirm</code> to confirm.',\n );\n this.validationValue = confirmDialogData?.validationValue ?? 'confirm';\n this.confirmButton = confirmDialogData?.confirmButton ?? 'Confirm';\n this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';\n }\n\n public onConfirmChange(confirmValue: string): void {\n this.isValid = toLower(confirmValue) === toLower(this.validationValue);\n }\n}\n\nconst extendValidationMessage = (validationMessage: string) => {\n return validationMessage.replace('<code>', '<code class=\"gio-badge-warning\">');\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n @if (warning) {\n <gio-banner-warning><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n }\n @if (content) {\n <p class=\"confirm-dialog__body__content\" [innerHTML]=\"content\"></p>\n }\n\n @if (contentComponentOutlet) {\n <div class=\"confirm-dialog__body__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n }\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { GioBannerModule } from '../gio-banner/gio-banner.module';\n\nimport { GioConfirmAndValidateDialogComponent } from './gio-confirm-and-validate-dialog.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatButtonModule, MatDialogModule, MatInputModule, MatFormFieldModule, A11yModule, GioBannerModule],\n declarations: [GioConfirmAndValidateDialogComponent],\n exports: [GioConfirmAndValidateDialogComponent],\n})\nexport class GioConfirmAndValidateDialogModule {}\n","/*\n * Copyright (C) 2022 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 */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\n\nexport class GioConfirmAndValidateDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-confirm-and-validate-dialog';\n\n private getConfirmBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__confirm-button' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__cancel-button' }));\n private getConfirmInput = this.locatorFor(MatInputHarness);\n\n public async confirm(): Promise<void> {\n const confirmInput = await this.getConfirmInput();\n await confirmInput.setValue(await confirmInput.getPlaceholder());\n\n const button = await this.getConfirmBtn();\n if (!(await button.isDisabled())) {\n await button.click();\n }\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { ElAiPromptState, FeedbackRequestId } from './models/ElAiPromptState';\n\nexport type FeedbackType = 'helpful' | 'not-helpful';\n\nexport interface FeedbackSubmission {\n feedback: FeedbackType;\n feedbackRequestId?: FeedbackRequestId;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioElService {\n private _promptCallback?: (prompt: string) => Observable<ElAiPromptState> = undefined;\n private _feedbackCallback?: (feedbackSubmission: FeedbackSubmission) => Observable<void> = undefined;\n\n public prompt(prompt: string): Observable<ElAiPromptState> {\n if (this._promptCallback === undefined) {\n return of({\n message: `Error: no handler given (input prompt: ${prompt})`,\n });\n }\n return this._promptCallback(prompt);\n }\n\n public set promptCallback(value: (prompt: string) => Observable<ElAiPromptState>) {\n this._promptCallback = value;\n }\n\n public submitFeedback(feedback: FeedbackType, feedbackRequestId?: FeedbackRequestId): Observable<void> {\n const feedbackSubmission: FeedbackSubmission = {\n feedback,\n feedbackRequestId,\n };\n\n if (this._feedbackCallback === undefined) {\n return of(undefined);\n }\n return this._feedbackCallback(feedbackSubmission);\n }\n\n public set feedbackCallback(value: (feedbackSubmission: FeedbackSubmission) => Observable<void>) {\n this._feedbackCallback = value;\n }\n\n public isEnabled(): boolean {\n return this._promptCallback !== undefined;\n }\n}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { get } from 'lodash';\nexport type ElAiPromptState = PromptSuccess | PromptError;\n\nexport interface PromptSuccess {\n el: string;\n feedbackRequestId?: FeedbackRequestId;\n}\n\nexport interface FeedbackRequestId {\n chatId: string;\n userMessageId: string;\n agentMessageId: string;\n}\n\nexport function isPromptSuccess(value: unknown): value is PromptSuccess {\n return typeof value === 'object' && value !== null && typeof get(value, 'el') === 'string';\n}\n\nexport interface PromptError {\n message: string;\n}\n\nexport function isPromptError(value: unknown): value is PromptError {\n return typeof value === 'object' && value !== null && typeof get(value, 'message') === 'string';\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, Input, ViewChild } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Directive()\nexport abstract class GioClipboardComponent {\n public label = 'Copy to clipboard';\n public tooltipHideDelay = 0;\n public clicked = false;\n\n @ViewChild('tooltip') public tooltip!: MatTooltip;\n\n @Input()\n public contentToCopy = '';\n @Input()\n public alwaysVisible = false;\n\n @Input()\n public tabIndex = undefined;\n\n constructor(private clipboard: Clipboard) {}\n\n public onCopied(success: boolean, tooltip: MatTooltip) {\n tooltip.message = success ? 'Copied!' : 'Failed to copy!';\n tooltip.hideDelay = 2000;\n tooltip.show();\n this.clicked = true;\n\n setTimeout(() => {\n tooltip.hide();\n }, 2000);\n\n setTimeout(() => {\n this.clicked = false;\n tooltip.message = this.label;\n tooltip.hideDelay = this.tooltipHideDelay;\n }, 2500);\n }\n\n public onKeyupSpace() {\n this.clipboard.copy(this.contentToCopy);\n if (this.tooltip) {\n this.onCopied(true, this.tooltip);\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\nimport { GioClipboardComponent } from './gio-clipboard.base.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[gioClipboardCopyWrapper]',\n styleUrls: ['./gio-clipboard-copy-wrapper.component.scss'],\n template: `\n <ng-content></ng-content>\n <button\n #tooltip=\"matTooltip\"\n type=\"button\"\n class=\"right\"\n [attr.aria-label]=\"label\"\n [class.clicked]=\"clicked\"\n [class.always-visible]=\"alwaysVisible\"\n [cdkCopyToClipboard]=\"contentToCopy\"\n (cdkCopyToClipboardCopied)=\"onCopied($event, tooltip)\"\n matRipple\n [matRippleCentered]=\"true\"\n [matRippleUnbounded]=\"true\"\n [matTooltip]=\"label\"\n [matTooltipPosition]=\"'after'\"\n (keyup.Space)=\"onKeyupSpace()\"\n >\n <mat-icon [inline]=\"true\">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>\n </button>\n `,\n standalone: false,\n})\nexport class GioClipboardCopyWrapperComponent extends GioClipboardComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\nimport { GioClipboardComponent } from './gio-clipboard.base.component';\n\n@Component({\n selector: 'gio-clipboard-copy-icon',\n styleUrls: ['./gio-clipboard-copy-icon.component.scss'],\n template: `\n <button\n #tooltip=\"matTooltip\"\n type=\"button\"\n class=\"btn\"\n [attr.aria-label]=\"label\"\n [class.clicked]=\"clicked\"\n [cdkCopyToClipboard]=\"contentToCopy\"\n (cdkCopyToClipboardCopied)=\"onCopied($event, tooltip)\"\n matRipple\n [matRippleCentered]=\"true\"\n [matRippleUnbounded]=\"true\"\n [matTooltip]=\"label\"\n [matTooltipPosition]=\"'after'\"\n (keyup.Space)=\"onKeyupSpace()\"\n >\n <mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>\n </button>\n `,\n standalone: false,\n})\nexport class GioClipboardCopyIconComponent extends GioClipboardComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioClipboardCopyWrapperComponent } from './gio-clipboard-copy-wrapper.component';\nimport { GioClipboardCopyIconComponent } from './gio-clipboard-copy-icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule, MatButtonModule],\n declarations: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],\n exports: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],\n})\nexport class GioClipboardModule {}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n signal,\n WritableSignal,\n Signal,\n computed,\n inject,\n ViewChild,\n ElementRef,\n AfterViewInit,\n} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconButton } from '@angular/material/button';\n\nimport { GioElService } from '../gio-el.service';\nimport { ElAiPromptState, isPromptError, isPromptSuccess, FeedbackRequestId } from '../models/ElAiPromptState';\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\nimport { GioBannerModule } from '../../gio-banner/gio-banner.module';\nimport { GioClipboardModule } from '../../gio-clipboard/gio-clipboard.module';\n\ntype PromptState = 'loading' | ElAiPromptState;\ntype FeedbackState = 'helpful' | 'not-helpful' | null;\n\n@Component({\n selector: 'gio-el-prompt',\n templateUrl: './gio-el-prompt.component.html',\n styleUrl: './gio-el-prompt.component.scss',\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInput,\n MatButton,\n MatProgressBarModule,\n MatTooltipModule,\n MatIconButton,\n GioIconsModule,\n GioBannerModule,\n GioClipboardModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GioElPromptComponent implements AfterViewInit {\n public readonly maxPromptSize = 256;\n public aiRequestFormGroup: FormGroup<{\n prompt: FormControl<string | null>;\n }> = new FormGroup({\n prompt: new FormControl('', [Validators.required, Validators.maxLength(this.maxPromptSize)]),\n });\n public elService: GioElService = inject(GioElService);\n\n @Input()\n public responseState: WritableSignal<PromptState | null> = signal(null);\n @ViewChild('promptArea') public myInput!: ElementRef<HTMLInputElement>;\n\n public feedbackState: WritableSignal<FeedbackState> = signal(null);\n\n public get prompt() {\n return this.aiRequestFormGroup.get('prompt');\n }\n public el: Signal<string | null> = computed(() => {\n const state = this.responseState();\n return isPromptSuccess(state) ? state.el : null;\n });\n\n public feedbackRequestId: Signal<FeedbackRequestId | null> = computed(() => {\n const state = this.responseState();\n return isPromptSuccess(state) ? state.feedbackRequestId || null : null;\n });\n public errorMessage: Signal<string | null> = computed(() => {\n const state = this.responseState();\n return isPromptError(state) ? state.message : null;\n });\n\n public showFeedback: Signal<boolean> = computed(() => {\n const state = this.responseState();\n const feedback = this.feedbackState();\n return isPromptSuccess(state) && feedback === null;\n });\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this.myInput.nativeElement.focus();\n }, 1000);\n }\n\n public sendPromptToIA() {\n const prompt = this.aiRequestFormGroup.get('prompt')?.value;\n if (!prompt) {\n return;\n }\n this.responseState.set('loading');\n this.feedbackState.set(null);\n this.elService.prompt(prompt).subscribe(reply => this.responseState.set(reply));\n }\n\n public submitFeedback(feedback: 'helpful' | 'not-helpful') {\n this.feedbackState.set(feedback);\n const expression = this.el();\n const feedbackRequestId = this.feedbackRequestId();\n if (expression) {\n this.elService.submitFeedback(feedback, feedbackRequestId || undefined).subscribe();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h5>EL Assistant</h5>\n\n<div class=\"aiRequestForm\" [formGroup]=\"aiRequestFormGroup\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>Describe the EL you want to generate</mat-label>\n <textarea #promptArea matInput formControlName=\"prompt\"></textarea>\n <mat-hint [align]=\"'end'\">{{ prompt?.value?.length || 0 }}/{{ maxPromptSize }}</mat-hint>\n </mat-form-field>\n\n @if (prompt?.touched && prompt?.hasError('maxlength')) {\n <gio-banner-error> Your prompt is too long. It should be less than {{ maxPromptSize }} characters. </gio-banner-error>\n }\n\n <button mat-raised-button [disabled]=\"aiRequestFormGroup.invalid\" (click)=\"sendPromptToIA()\">\n <mat-icon svgIcon=\"gio:magic-wand\" />\n Ask Newt AI\n </button>\n</div>\n\n<div class=\"ai-card__content__response\">\n @if (responseState() === 'loading') {\n <mat-progress-bar mode=\"indeterminate\" class=\"loading\" />\n }\n @if (el(); as expression) {\n <gio-banner-success>\n <code gioClipboardCopyWrapper [contentToCopy]=\"expression\" [alwaysVisible]=\"true\">{{ expression }}</code>\n </gio-banner-success>\n @if (showFeedback()) {\n <gio-banner-info>\n <div class=\"feedback-container\">\n <span class=\"feedback-question\">Was the answer helpful?</span>\n <div class=\"feedback-buttons\">\n <button\n mat-icon-button\n (click)=\"submitFeedback('helpful')\"\n matTooltip=\"Yes, this was helpful\"\n class=\"feedback-button feedback-button--helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n (click)=\"submitFeedback('not-helpful')\"\n matTooltip=\"No, this was not helpful\"\n class=\"feedback-button feedback-button--not-helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-down\"></mat-icon>\n </button>\n </div>\n </div>\n </gio-banner-info>\n }\n }\n @if (errorMessage(); as message) {\n <gio-banner-error>\n Error\n <span gioBannerBody> {{ message }} </span>\n </gio-banner-error>\n }\n</div>\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-el-prompt/gio-el-prompt.component';\nexport * from './gio-el-assistant/gio-el-assistant.component';\nexport * from './models/ElAiPromptState';\nexport * from './gio-el.service';\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ElementRef, inject, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\n@Component({\n selector: 'gio-popover',\n templateUrl: './gio-popover.component.html',\n styleUrl: './gio-popover.component.scss',\n imports: [GioIconsModule, MatButtonModule],\n})\nexport class GioPopoverComponent {\n private overlay = inject(Overlay);\n private overlayPositionBuilder = inject(OverlayPositionBuilder);\n private viewContainerRef = inject(ViewContainerRef);\n\n private overlayRef: OverlayRef | null = null;\n\n @Input()\n public trigger: ElementRef | null = null;\n\n @Input()\n public closeOnBackdropClick: boolean = true;\n\n @ViewChild('popoverContent')\n public popoverContent!: TemplateRef<never>;\n\n public open(): void {\n if (!this.trigger) return;\n\n if (this.overlayRef) {\n this.close();\n }\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.trigger).withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: this.closeOnBackdropClick,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n const portal = new TemplatePortal(this.popoverContent, this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n public close(): void {\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-template #popoverContent>\n <div class=\"popoverWrapper\" [class.withCloseButton]=\"!closeOnBackdropClick\">\n <button class=\"closeBtn\" mat-button aria-label=\"Close dialog\" (click)=\"close()\">\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n <ng-content />\n </div>\n</ng-template>\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nimport { GioPopoverComponent } from './gio-popover.component';\n\n@Directive({\n selector: '[gioPopoverTrigger]',\n})\nexport class PopoverTriggerDirective {\n @Input({ required: true })\n public gioPopoverTriggerFor!: GioPopoverComponent;\n\n @Input()\n public gioPopoverTriggerBasedOnElement?: ElementRef;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('click')\n public togglePopover(): void {\n if (this.gioPopoverTriggerFor) {\n // If a specific element is provided, use it as the trigger\n this.gioPopoverTriggerFor.trigger = this.gioPopoverTriggerBasedOnElement ?? this.elementRef;\n this.gioPopoverTriggerFor.open();\n }\n }\n}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './gio-popover.component';\nexport * from './gio-popover-trigger.directive';\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 */\nimport { Component, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioElPromptComponent, GioElService } from '../../gio-el';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../../gio-popover';\n\n@Component({\n selector: 'gio-el-assistant',\n template: `\n @if (isEnabled()) {\n <button gioPopoverTrigger [gioPopoverTriggerFor]=\"aiPopover\" mat-button type=\"button\">\n <mat-icon [svgIcon]=\"'gio:el'\" />\n </button>\n\n <gio-popover #aiPopover [closeOnBackdropClick]=\"true\">\n <gio-el-prompt />\n </gio-popover>\n }\n `,\n imports: [MatIconModule, GioPopoverComponent, GioElPromptComponent, PopoverTriggerDirective, MatButtonModule],\n})\nexport class GioElAssistantComponent {\n private readonly elService = inject(GioElService);\n\n public isEnabled(): boolean {\n return this.elService.isEnabled();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Component, ElementRef, forwardRef, HostBinding, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { dropRight, isEmpty } from 'lodash';\nimport { map, startWith, tap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nimport { ElColumns, GioUiTypeConfig } from '../gio-form-json-schema/model/GioJsonSchema';\n\nexport type Header = { key: string; value: string };\n\nexport type FormHeaderFieldMapper = {\n keyName: string;\n valueName: string;\n};\n\nexport function isFormHeaderElConfig(value: unknown): value is ElColumns {\n const validValues = ['key', 'value', 'both', 'neither'];\n return validValues.includes(value as string);\n}\n\nconst HEADER_NAMES = [\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-ID',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-MD5',\n 'Content-Range',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'ETag',\n 'Expires',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Location',\n 'Link',\n 'Max-Forwards',\n 'MIME-Version',\n 'Origin',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'Proxy-Connection',\n 'Range',\n 'Referer',\n 'Retry-After',\n 'Server',\n 'Set-Cookie',\n 'Set-Cookie2',\n 'TE',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'Warning',\n 'WWW-Authenticate',\n 'X-Forwarded-For',\n 'X-Forwarded-Proto',\n 'X-Forwarded-Server',\n 'X-Forwarded-Host',\n 'X-Forwarded-Port',\n 'X-Forwarded-Prefix',\n];\n\n@Component({\n selector: 'gio-form-headers',\n templateUrl: './gio-form-headers.component.html',\n styleUrls: ['./gio-form-headers.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GioFormHeadersComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GioFormHeadersComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class GioFormHeadersComponent implements OnInit, ControlValueAccessor, Validator {\n @Input()\n public headerFieldMapper: FormHeaderFieldMapper = {\n keyName: 'key',\n valueName: 'value',\n };\n @Input()\n public config: GioUiTypeConfig['uiTypeProps'] = {\n elColumns: 'neither',\n };\n\n @Input()\n public autocompleteDisabled?: boolean = false;\n\n public mainForm: UntypedFormGroup;\n public headersFormArray = new UntypedFormArray([\n new UntypedFormGroup({\n key: new UntypedFormControl('', Validators.pattern('^\\\\S*$')),\n value: new UntypedFormControl(''),\n }),\n ]);\n\n @HostBinding('class.disabled')\n public disabled = false;\n\n private headers: Header[] = [];\n\n private _onChange: (_headers: Header[] | null) => void = () => ({});\n\n private _onTouched: () => void = () => ({});\n\n private filteredHeaderNames: Observable<string[]>[] = [];\n\n constructor(\n private readonly fm: FocusMonitor,\n private readonly elRef: ElementRef,\n ) {\n this.mainForm = new UntypedFormGroup({\n headers: this.headersFormArray,\n });\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: Record<string, string>[] | null): void {\n if (!value) {\n return;\n }\n\n this.headers = [...(value ?? [])].map((header: Record<string, string>) => {\n return {\n key: header[this.headerFieldMapper.keyName],\n value: header[this.headerFieldMapper.valueName],\n };\n });\n this.initHeadersForm();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (headers: unknown) => void): void {\n if (this.headerFieldMapper) {\n this._onChange = (headers: Header[] | null) => fn(this.toHeaders(headers));\n return;\n }\n this._onChange = fn;\n }\n\n private toHeaders(headers: Header[] | null) {\n return [...(headers ?? [])].map(header => {\n return {\n [this.headerFieldMapper.keyName]: header.key,\n [this.headerFieldMapper.valueName]: header.value,\n };\n });\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n if (isDisabled === this.disabled) {\n // do nothing if the disabled state is not changed\n return;\n }\n\n this.disabled = isDisabled;\n if (isDisabled) {\n this.headersFormArray.disable({ emitEvent: false });\n this.removeLastHeader();\n return;\n }\n this.headersFormArray.enable({ emitEvent: false });\n this.addEmptyHeader();\n }\n\n public ngOnInit(): void {\n // When user start to complete last header add new empty one a the end\n this.headersFormArray?.valueChanges\n .pipe(\n tap(headers => headers.length > 0 && this._onChange(removeLastEmptyHeader(headers))),\n tap((headers: Header[]) => {\n if (headers.length > 0 && (headers[headers.length - 1].key !== '' || headers[headers.length - 1].value !== '')) {\n this.addEmptyHeader();\n }\n }),\n )\n .subscribe();\n\n this.fm.monitor(this.elRef.nativeElement, true).subscribe(() => {\n this._onTouched();\n });\n }\n\n public initHeadersForm(): void {\n // Clear all previous headers\n this.headersFormArray.clear();\n\n // Populate headers array from headers\n this.headers.forEach(({ key, value }, headerIndex) => {\n this.headersFormArray.push(\n new UntypedFormGroup({\n key: this.initKeyFormControl(key, headerIndex),\n value: new UntypedFormControl({ value, disabled: this.disabled }),\n }),\n {\n emitEvent: false,\n },\n );\n });\n\n // add one empty header a the end\n this.addEmptyHeader();\n }\n\n public getFilteredHeaderNames(headerIndex: number, header: Header): Observable<string[]> {\n if (!this.filteredHeaderNames[headerIndex]) {\n return this.filteredHeaderNames[headerIndex];\n }\n if (header.key != null && header.key != '') {\n this.filteredHeaderNames[headerIndex] = of(header.key).pipe(map(value => this._filter(value)));\n return this.filteredHeaderNames[headerIndex];\n }\n return of(HEADER_NAMES);\n }\n\n // From Validator interface\n public validate(_control: AbstractControl): ValidationErrors | null {\n if (this.headersFormArray.invalid) {\n return { invalid: true };\n }\n return null;\n }\n\n private initKeyFormControl(key: string, headerIndex: number) {\n const control = new UntypedFormControl({ value: key, disabled: this.disabled }, Validators.pattern('^\\\\S*$'));\n const filteredKeys = control.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value)),\n );\n this.filteredHeaderNames.splice(headerIndex, 0, filteredKeys);\n return control;\n }\n\n public onDeleteHeader(headerIndex: number): void {\n this._onTouched();\n this.headersFormArray.removeAt(headerIndex);\n }\n\n private addEmptyHeader() {\n if (this.disabled) {\n return;\n }\n\n this.headersFormArray.push(\n new UntypedFormGroup({\n key: this.initKeyFormControl('', this.headersFormArray.length),\n value: new UntypedFormControl(''),\n }),\n { emitEvent: false },\n );\n }\n\n private removeLastHeader() {\n this.headersFormArray.removeAt(this.headersFormArray.length - 1, { emitEvent: false });\n }\n\n private _filter(value: string): string[] {\n const filterValue = value.toLowerCase();\n return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));\n }\n}\n\nconst removeLastEmptyHeader = (headers: Header[]) => {\n const lastHeader = headers[headers.length - 1];\n\n if (lastHeader && isEmpty(lastHeader.key) && isEmpty(lastHeader.value)) {\n return dropRight(headers);\n }\n return headers;\n};\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-headers-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormHeadersLabelComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\nimport { GioElAssistantComponent, GioElPromptComponent } from '../gio-el';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../gio-popover';\n\nimport { GioFormHeadersComponent } from './gio-form-headers.component';\nimport { GioFormHeadersLabelComponent } from './gio-form-headers-label.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n GioIconsModule,\n MatButtonModule,\n MatAutocompleteModule,\n MatOptionModule,\n GioElPromptComponent,\n GioPopoverComponent,\n PopoverTriggerDirective,\n GioElAssistantComponent,\n ],\n declarations: [GioFormHeadersComponent, GioFormHeadersLabelComponent],\n exports: [GioFormHeadersComponent, GioFormHeadersLabelComponent],\n})\nexport class GioFormHeadersModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\n\nexport class GioFormHeadersHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-headers';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: BaseHarnessFilters = {}): HarnessPredicate<GioFormHeadersHarness> {\n return new HarnessPredicate(GioFormHeadersHarness, options);\n }\n\n private getHeaderRowsElement = this.locatorForAll('tr.gio-form-headers__table__header-row');\n\n private async getHeaderRowInputKey(rowIndex: number): Promise<MatInputHarness> {\n const keyInputs = await this.locatorForAll(MatInputHarness.with({ selector: '[formControlName=key]' }))();\n return keyInputs[rowIndex];\n }\n\n private async getHeaderRowInputKeyAutocomplete(rowIndex: number): Promise<MatAutocompleteHarness> {\n const autoCompletes = await this.locatorForAll(MatAutocompleteHarness.with({ ancestor: `tr.gio-form-headers__table__header-row` }))();\n return autoCompletes[rowIndex];\n }\n\n private async getHeaderRowInputValue(rowIndex: number): Promise<MatInputHarness> {\n const inputs = await this.locatorForAll(MatInputHarness.with({ selector: '[formControlName=value]' }))();\n return inputs[rowIndex];\n }\n\n private async getHeaderRowRemoveButton(rowIndex: number): Promise<MatButtonHarness> {\n const buttons = await this.locatorForAll(MatButtonHarness.with({ selector: '[aria-label=\"Delete\"]' }))();\n return buttons[rowIndex];\n }\n\n public async getHeaderRows(): Promise<\n {\n keyInput: MatInputHarness;\n keyAutocomplete: MatAutocompleteHarness;\n valueInput: MatInputHarness;\n removeButton: MatButtonHarness | null;\n }[]\n > {\n const rows = await this.getHeaderRowsElement();\n\n return Promise.all(\n rows.map(async (_, rowIndex) => ({\n keyInput: await this.getHeaderRowInputKey(rowIndex),\n keyAutocomplete: await this.getHeaderRowInputKeyAutocomplete(rowIndex),\n valueInput: await this.getHeaderRowInputValue(rowIndex),\n removeButton: await this.getHeaderRowRemoveButton(rowIndex),\n })),\n );\n }\n\n public async getLastHeaderRow(): Promise<{ keyInput: MatInputHarness; valueInput: MatInputHarness }> {\n const rows = await this.getHeaderRowsElement();\n\n return {\n keyInput: await this.getHeaderRowInputKey(rows.length - 1),\n valueInput: await this.getHeaderRowInputValue(rows.length - 1),\n };\n }\n\n public async addHeader({ key, value }: { key: string; value: string }): Promise<void> {\n const { keyInput, valueInput } = await this.getLastHeaderRow();\n\n await keyInput.setValue(key);\n await valueInput.setValue(value);\n }\n\n public async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('disabled');\n }\n\n public async getValue(): Promise<{ key: string; value: string }[]> {\n const rows = await this.getHeaderRows();\n\n if (!(await this.isDisabled())) {\n // Remove last empty value\n rows.pop();\n }\n\n return parallel(() => rows.map(async r => ({ key: await r.keyInput.getValue(), value: await r.valueInput.getValue() })));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-add-button',\n templateUrl: './gio-form-file-picker-add-button.component.html',\n styleUrls: ['./gio-form-file-picker-add-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerAddButtonComponent {}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"add-button\" matRipple>\n <div #content><ng-content></ng-content></div>\n @if (!content.children.length) {\n <div class=\"add-button__content\">\n <mat-icon class=\"add-button__content__image\" svgIcon=\"gio:upload\"></mat-icon>\n <span class=\"add-button__content__text\">Drag your file</span>\n </div>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-empty',\n templateUrl: './gio-form-file-picker-empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerEmptyComponent {}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #content><ng-content></ng-content></div>\n@if (!content.children.length) {\n <span> No file defined </span>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-label',\n templateUrl: './gio-form-file-picker-label.component.html',\n styleUrls: ['./gio-form-file-picker-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerLabelComponent {}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"mat-caption\"><ng-content></ng-content></div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class NewFile {\n constructor(\n public readonly name: string,\n public readonly dataUrl: string,\n public readonly file?: File,\n ) {}\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { isArray, isNil, remove } from 'lodash';\nimport { ReadFile, ReadMode } from 'ngx-file-helpers';\nimport { tap } from 'rxjs/operators';\n\nimport { NewFile } from './gio-form-file-picker.model';\n\ntype FileValue = {\n name: string;\n isNew: boolean;\n dataUrl: string;\n file?: File;\n isImage: boolean;\n};\n\n@Component({\n selector: 'gio-form-file-picker',\n templateUrl: './gio-form-file-picker.component.html',\n styleUrls: ['./gio-form-file-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerComponent implements OnInit, ControlValueAccessor {\n @Input()\n public multiple = false;\n\n @Input()\n public accept = '*';\n\n @Input()\n public set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n public fileValues: FileValue[] = [];\n public readMode: ReadMode = ReadMode.DataURL;\n public dragHover = false;\n public isDisabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeCallback: (files: (string | NewFile)[]) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedCallback = () => {};\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Self() @Optional() public ngControl?: NgControl,\n ) {\n if (ngControl) {\n // Setting the value accessor directly (instead of using\n // the providers `NG_VALUE_ACCESSOR`) to avoid running into a circular import.\n ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl && this.ngControl.statusChanges) {\n // As the change detection is OnPush we have to markForCheck the component after a validation change because no input/output or values have changed\n this.ngControl.statusChanges.pipe(tap(() => this.changeDetectorRef.markForCheck())).subscribe();\n }\n }\n\n public get isComplete(): boolean {\n return (!this.multiple && this.fileValues.length === 1) || false;\n }\n\n public get isValid(): boolean | null {\n return !this.ngControl || !this.ngControl.touched || this.ngControl.valid;\n }\n\n // implement by ControlValueAccessor\n public async writeValue(inputs?: string[]): Promise<void> {\n if (isNil(inputs) || !isArray(inputs)) {\n this.fileValues = [];\n return Promise.resolve();\n }\n\n this.fileValues = await Promise.all(\n inputs.map(async input => ({\n isNew: false,\n name: input,\n dataUrl: input,\n isImage: await isImgUrl(input),\n })),\n );\n this.changeDetectorRef.markForCheck();\n }\n\n // implement by ControlValueAccessor\n public registerOnChange(fn: (v: unknown) => void): void {\n this.onChangeCallback = fn;\n }\n\n // implement by ControlValueAccessor\n public registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n // implement by ControlValueAccessor\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onFilePicked(event: ReadFile): void {\n this.handleReceivedFileEvent(event);\n }\n\n public onFileDropped(event: ReadFile): void {\n this.handleReceivedFileEvent(event);\n }\n\n public onRemoveFile(file: FileValue): void {\n this.onTouchedCallback();\n this.dragHover = false;\n\n remove(this.fileValues, { name: file.name });\n\n this.emitFileValue();\n }\n\n public onTouched(): void {\n this.onTouchedCallback();\n this.dragHover = false;\n }\n\n public onDragEnter($event: DragEvent): void {\n const el = $event.target as HTMLElement | null;\n if (el) {\n this.dragHover = true;\n this.onTouchedCallback();\n }\n }\n\n public onDragOver($event: DragEvent): void {\n const el = $event.target as HTMLElement | null;\n\n if (el) {\n this.dragHover = false;\n this.onTouchedCallback();\n }\n }\n\n private handleReceivedFileEvent(event: ReadFile) {\n this.onTouchedCallback();\n\n this.dragHover = false;\n\n if (!this.multiple) {\n this.fileValues = [];\n }\n\n this.fileValues.push({\n name: event.name,\n isNew: true,\n dataUrl: event.content,\n file: event.underlyingFile,\n isImage: event.type.startsWith('image/'),\n });\n\n this.emitFileValue();\n }\n\n private emitFileValue() {\n this.onChangeCallback(\n this.fileValues.map(fileValue =>\n fileValue.isNew ? new NewFile(fileValue.name, fileValue.dataUrl, fileValue.file) : fileValue.dataUrl,\n ),\n );\n }\n}\n\nconst isImgUrl = (url: string): Promise<boolean> => {\n try {\n const img = new Image();\n img.src = url;\n return new Promise(resolve => {\n img.onerror = () => resolve(false);\n img.onload = () => resolve(true);\n });\n } catch (error) {\n return Promise.resolve(false);\n }\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-content select=\"gio-form-file-picker-label\"></ng-content>\n@if (!isDisabled) {\n <div\n class=\"file-picker\"\n ngxFileDropzone\n [readMode]=\"readMode\"\n (fileDrop)=\"onFileDropped($event)\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragOver($event)\"\n (blur)=\"dragHover = false\"\n >\n @if (!isComplete) {\n <div\n class=\"file-picker__add-button\"\n [class.complete]=\"isComplete\"\n [class.error]=\"!isValid\"\n [class.drag-hover]=\"dragHover\"\n ngxFilePicker\n [accept]=\"accept\"\n [readMode]=\"readMode\"\n [multiple]=\"multiple\"\n (filePick)=\"onFilePicked($event)\"\n (click)=\"onTouched()\"\n >\n <div #addButton class=\"file-picker__add-button__content\"><ng-content select=\"gio-form-file-picker-add-button\"></ng-content></div>\n @if (addButton.children.length === 0) {\n <gio-form-file-picker-add-button></gio-form-file-picker-add-button>\n }\n </div>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview\" [class.drag-hover]=\"dragHover\" [class.error]=\"!isValid\">\n <a class=\"file-picker__preview__delete\" (click)=\"onRemoveFile(fileValue)\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </a>\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n} @else {\n <div class=\"file-picker disabled\">\n @if (fileValues.length === 0) {\n <span class=\"file-picker__preview-empty disabled\">\n @if (previewEmpty.children.length === 0) {\n <gio-form-file-picker-empty class=\"file-picker__preview-empty__default\"></gio-form-file-picker-empty>\n }\n <span #previewEmpty><ng-content select=\"gio-form-file-picker-empty\"></ng-content></span>\n </span>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview disabled\">\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template #filePreview let-fileValue=\"fileValue\">\n @if (fileValue.isImage) {\n <div class=\"file-picker__preview__image\" [style.background-image]=\"'url(' + fileValue.dataUrl + ')'\"></div>\n }\n @if (!fileValue.isImage) {\n <div class=\"file-picker__preview__file\">\n <span class=\"file-picker__preview__file__name\">{{ fileValue.name }}</span>\n </div>\n }\n</ng-template>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgxFileHelpersModule } from 'ngx-file-helpers';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormFilePickerAddButtonComponent } from './gio-form-file-picker-add-button/gio-form-file-picker-add-button.component';\nimport { GioFormFilePickerEmptyComponent } from './gio-form-file-picker-empty/gio-form-file-picker-empty.component';\nimport { GioFormFilePickerLabelComponent } from './gio-form-file-picker-label/gio-form-file-picker-label.component';\nimport { GioFormFilePickerComponent } from './gio-form-file-picker.component';\n\n@NgModule({\n declarations: [\n GioFormFilePickerComponent,\n GioFormFilePickerAddButtonComponent,\n GioFormFilePickerEmptyComponent,\n GioFormFilePickerLabelComponent,\n ],\n exports: [\n GioFormFilePickerComponent,\n GioFormFilePickerAddButtonComponent,\n GioFormFilePickerEmptyComponent,\n GioFormFilePickerLabelComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule, NgxFileHelpersModule, MatRippleModule, MatIconModule, GioIconsModule],\n})\nexport class GioFormFilePickerModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\n\ninterface GioFormFilePickerHarnessFilters extends BaseHarnessFilters {\n /** Filters based on the formControlName */\n formControlName?: string;\n}\n\nexport class GioFormFilePickerInputHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-file-picker';\n\n public static with(options: GioFormFilePickerHarnessFilters): HarnessPredicate<GioFormFilePickerInputHarness> {\n return new HarnessPredicate(GioFormFilePickerInputHarness, options).addOption(\n 'formControlName',\n options.formControlName,\n (harness, text) => HarnessPredicate.stringMatches(harness.getFormControlName(), text),\n );\n }\n\n /**\n * Hack force onload on Image Object\n * GioFormFilePickerComponent use a Image Object to check if the file is an image.\n * This method allow to force onload event on the Image Object.\n * @param excludeSrc call onerror instead of onload for this src\n */\n public static forceImageOnload(excludeSrc: string[] = []): void {\n Object.defineProperties(Image.prototype, {\n src: {\n get: function () {\n return this._src;\n },\n set: function (src) {\n this._src = src;\n },\n },\n onload: {\n get: function () {\n return this._onload;\n },\n set: function (fn) {\n this._onload = fn;\n\n excludeSrc.includes(this._src) ? this.onerror() : this.onload();\n },\n },\n });\n }\n\n protected _mainDiv = this.locatorFor('.file-picker__add-button');\n protected _hasErrorClass = this.locatorForOptional('[class=\"file-picker__add-button error\"]');\n protected _inputFile = this.locatorFor('input[type=\"file\"]');\n protected _getDisabledElement = this.locatorForOptional('.disabled');\n\n private async getFormControlName(): Promise<string | null> {\n const filePickerInputHarness = await this.host();\n return filePickerInputHarness.getAttribute('formControlName');\n }\n\n public async hasErrorClass(): Promise<boolean> {\n return !!(await this._hasErrorClass());\n }\n\n public async clickInside(): Promise<void> {\n await (await this._mainDiv()).click();\n }\n\n public async getInputFileAccept(): Promise<string | null> {\n return await (await this._inputFile()).getAttribute('accept');\n }\n\n public async getPreviews(): Promise<(string | null)[]> {\n const previewImages = await this.locatorForAll('.file-picker__preview__image')();\n const previewFiles = await this.locatorForAll('.file-picker__preview__file')();\n\n return Promise.all([\n ...previewImages.map(previewImage => previewImage.getAttribute('style')),\n ...previewFiles.map(previewFile => previewFile.text()),\n ]);\n }\n\n public async isAddButtonPresent(): Promise<boolean> {\n return (await this.locatorForOptional('gio-form-file-picker-add-button')()) !== null;\n }\n\n public async isDisabled(): Promise<boolean> {\n return !!(await this._getDisabledElement());\n }\n\n public async deleteFile(fileIndex = 0): Promise<void> {\n const deleteButtons = await this.locatorForAll('.file-picker__preview__delete')();\n\n return deleteButtons[fileIndex].click();\n }\n\n public async dropFiles(files: File[]): Promise<void> {\n const filePickerDropZone = await this.locatorFor('.file-picker')();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await filePickerDropZone.dispatchEvent('drop', { dataTransfer: { files } } as any);\n\n // Wait event is dispatched\n await new Promise(resolve => setTimeout(resolve, 50));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './gio-form-file-picker.module';\nexport * from './gio-form-file-picker.component';\nexport * from './gio-form-file-picker.model';\nexport * from './gio-form-file-picker-add-button/gio-form-file-picker-add-button.component';\nexport * from './gio-form-file-picker-empty/gio-form-file-picker-empty.component';\nexport * from './gio-form-file-picker-label/gio-form-file-picker-label.component';\n\nexport * from './gio-form-file-picker.component.harness';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AfterViewInit, Component, ElementRef, HostBinding, Input, OnChanges, ViewChild } from '@angular/core';\nimport { toSvg } from 'jdenticon';\n\n@Component({\n selector: 'gio-avatar',\n templateUrl: './gio-avatar.component.html',\n styleUrls: ['./gio-avatar.component.scss'],\n standalone: false,\n})\nexport class GioAvatarComponent implements AfterViewInit, OnChanges {\n public imgSrc: string | null = null;\n public defaultSize: number;\n public finalSize!: number;\n\n @Input()\n public set src(src: string | null) {\n this.imgSrc = src || null;\n }\n @Input()\n public name = '';\n @Input()\n public size!: number;\n @Input()\n public roundedBorder = false;\n\n @ViewChild('avatarContainer') public avatarContainerEleRef!: ElementRef;\n\n @HostBinding('style.width.px') public width = this.size;\n @HostBinding('style.height.px') public height = this.size;\n\n constructor(private hostEl: ElementRef) {\n this.defaultSize = Math.min(Number(this.hostEl.nativeElement.offsetWidth), Number(this.hostEl.nativeElement.offsetHeight)) || 110;\n }\n\n public ngOnChanges(): void {\n this.finalSize = this.size || this.defaultSize;\n this.width = this.finalSize;\n this.height = this.finalSize;\n }\n\n public ngAfterViewInit(): void {\n if (this.imgSrc != null) {\n return;\n }\n if (this.avatarContainerEleRef) {\n this.avatarContainerEleRef.nativeElement.innerHTML = toSvg(this.name, this.finalSize, { backColor: '#FFF', padding: 0 });\n }\n }\n\n public onImgError(): void {\n this.imgSrc = null;\n this.ngAfterViewInit();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #avatarContainer class=\"gio-avatar\" [class.rounded]=\"roundedBorder\">\n @if (imgSrc) {\n <img class=\"gio-avatar__img\" [src]=\"imgSrc\" alt=\"Avatar picture\" [width]=\"finalSize\" (error)=\"onImgError()\" />\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioAvatarComponent } from './gio-avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GioAvatarComponent],\n exports: [GioAvatarComponent],\n})\nexport class GioAvatarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-avatar.component';\nexport * from './gio-avatar.module';\n","/*\n * Copyright (C) 2022 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 */\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[gioBreadcrumbItem]',\n standalone: false,\n})\nexport class GioBreadcrumbItemDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","/*\n * Copyright (C) 2022 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 */\nimport { Component, ContentChildren, QueryList } from '@angular/core';\n\nimport { GioBreadcrumbItemDirective } from './gio-breadcrumb-item.directive';\n\n@Component({\n selector: 'gio-breadcrumb',\n templateUrl: './gio-breadcrumb.component.html',\n styleUrls: ['./gio-breadcrumb.component.scss'],\n standalone: false,\n})\nexport class GioBreadcrumbComponent {\n @ContentChildren(GioBreadcrumbItemDirective)\n public itemDirectives!: QueryList<GioBreadcrumbItemDirective>;\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-breadcrumb\">\n @for (item of itemDirectives; track item; let first = $first) {\n @if (!first) {\n <mat-icon svgIcon=\"gio:nav-arrow-right\" class=\"gio-breadcrumb__icon\"></mat-icon>\n }\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioBreadcrumbComponent } from './gio-breadcrumb.component';\nimport { GioBreadcrumbItemDirective } from './gio-breadcrumb-item.directive';\n\n@NgModule({\n imports: [CommonModule, GioIconsModule],\n declarations: [GioBreadcrumbComponent, GioBreadcrumbItemDirective],\n exports: [GioBreadcrumbComponent, GioBreadcrumbItemDirective],\n})\nexport class GioBreadcrumbModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-breadcrumb.module';\nexport * from './gio-breadcrumb.component';\nexport * from './gio-breadcrumb-item.directive';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@NgModule({\n providers: [{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline', subscriptSizing: 'dynamic' } }],\n})\nexport class GioMatConfigModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-mat-config.module';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive } from '@angular/core';\n\nexport const GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR = 'gioFormFocusInvalidIgnore';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[${GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR}]`,\n standalone: false,\n})\nexport class GioFormFocusInvalidIgnoreDirective {}\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 */\nimport { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\nimport { JSONSchema7 } from 'json-schema';\nimport { castArray, get, isArray, isEmpty, isNil, isObject, set } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { AbstractControl } from '@angular/forms';\n\nimport { GioIfConfig, GioJsonSchema } from './model/GioJsonSchema';\nimport { GioJsonSchemaContext } from './model/GioJsonSchemaContext';\n\n@Injectable()\nexport class GioFormlyJsonSchemaService {\n constructor(private readonly formlyJsonschema: FormlyJsonschema) {}\n\n public toFormlyFieldConfig(jsonSchema: GioJsonSchema, context?: GioJsonSchemaContext): FormlyFieldConfig {\n return this.formlyJsonschema.toFieldConfig(jsonSchema, {\n map: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => {\n mappedField = this.uiTypeMap(mappedField, mapSource); // Keep first in order to correctly construct tree\n mappedField = this.displayIfMap(mappedField, mapSource, context);\n mappedField = this.uiBorder(mappedField, mapSource);\n mappedField = this.formatMap(mappedField, mapSource);\n mappedField = this.bannerMap(mappedField, mapSource);\n mappedField = this.toggleMap(mappedField, mapSource);\n mappedField = this.disableIfMap(mappedField, mapSource, context);\n mappedField = this.enumLabelMap(mappedField, mapSource);\n mappedField = this.sanitizeOneOf(mappedField, mapSource);\n mappedField = this.deprecatedMap(mappedField, mapSource);\n mappedField = this.uniqueValueMap(mappedField, mapSource);\n\n return mappedField;\n },\n });\n }\n\n private displayIfMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7, context?: GioJsonSchemaContext): FormlyFieldConfig {\n const displayIf = getGioIf(mapSource.gioConfig?.displayIf);\n if (displayIf) {\n mappedField.expressions = {\n ...mappedField.expressions,\n hide: field => {\n let parentField = field;\n while (parentField.parent) {\n parentField = parentField.parent;\n }\n\n try {\n return !displayIf({\n value: parentField.model,\n context,\n });\n } catch (e) {\n // Ignore the error and display the field\n return false;\n }\n },\n };\n }\n\n return mappedField;\n }\n\n private uiTypeMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.gioConfig?.uiType) {\n // Clean the field to avoid conflict and init simple one with given type\n mappedField = {\n key: mappedField.key,\n type: mapSource.gioConfig?.uiType,\n\n props: {\n ...mappedField.props,\n ...mapSource.gioConfig?.uiTypeProps,\n },\n };\n }\n\n return mappedField;\n }\n\n private uiBorder(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.gioConfig?.uiBorder) {\n mappedField = {\n ...mappedField,\n props: {\n ...mappedField.props,\n uiBorder: mapSource.gioConfig?.uiBorder,\n },\n };\n }\n\n return mappedField;\n }\n\n private formatMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.type === 'string' && mapSource.format === 'text') {\n mappedField.type = 'textarea';\n mappedField.props = {\n ...mappedField.props,\n autosize: true,\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'password') {\n mappedField.props = {\n ...mappedField.props,\n type: 'password',\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'gio-code-editor') {\n mappedField.type = 'gio-code-editor';\n mappedField.props = {\n ...mappedField.props,\n monacoEditorConfig: mapSource.gioConfig?.monacoEditorConfig,\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'gio-cron') {\n mappedField.type = 'gio-cron';\n mappedField.props = {\n ...mappedField.props,\n };\n }\n if (mapSource.gioConfig?.el || get(mapSource, ['x-schema-form', 'expression-language'], false)) {\n mappedField.props = {\n ...mappedField.props,\n attributes: {\n ...mappedField.props?.attributes,\n el: 1,\n },\n };\n }\n return mappedField;\n }\n\n private bannerMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n mappedField.props = {\n ...mappedField.props,\n ...(mapSource.gioConfig?.banner ? getBannerProperties(mapSource.gioConfig.banner) : {}),\n };\n\n return mappedField;\n }\n\n private toggleMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.type === 'boolean') {\n mappedField.type = 'toggle';\n }\n\n return mappedField;\n }\n\n private disableIfMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7, context?: GioJsonSchemaContext): FormlyFieldConfig {\n const disableIf = getGioIf(mapSource.gioConfig?.disableIf);\n if (disableIf) {\n const propsDisabled: ((field: FormlyFieldConfig) => boolean) | Observable<boolean> = field => {\n const isReadOnly = field.props?.readonly === true;\n const isParentDisabled = field.options?.formState?.parentDisabled === true;\n if (isParentDisabled || isReadOnly) {\n // Useful when field is readonly to avoid to enable it\n field.formControl?.disable({ emitEvent: false });\n // if the parent is already disabled there is no need to change anything at the child level\n return false;\n }\n\n let parentField = field;\n while (parentField.parent) {\n parentField = parentField.parent;\n }\n\n try {\n const isDisabled = disableIf({\n value: parentField.model,\n context,\n });\n // Useful when full form is re-enabled to sync the fromControl enable/disable state\n isDisabled ? field.formControl?.disable({ emitEvent: false }) : field.formControl?.enable({ emitEvent: false });\n return isDisabled;\n } catch (e) {\n // Ignore the error and keep default value\n return field.props?.disabled || false;\n }\n };\n\n mappedField.expressions = {\n ...mappedField.expressions,\n 'props.disabled': propsDisabled,\n };\n }\n\n return mappedField;\n }\n\n private enumLabelMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (!isArray(mappedField.props?.options)) {\n return mappedField;\n }\n\n const enumLabelMapInObject =\n mapSource.enum && !isEmpty(mapSource.enum) && mapSource.gioConfig?.enumLabelMap ? mapSource.gioConfig?.enumLabelMap : null;\n const enumLabelMapInArrayItem =\n mapSource.items &&\n mapSource.type === 'array' &&\n !isEmpty((mapSource.items as JSONSchema7).enum) &&\n (mapSource.items as JSONSchema7)?.gioConfig?.enumLabelMap\n ? (mapSource.items as JSONSchema7)?.gioConfig?.enumLabelMap\n : null;\n\n if (enumLabelMapInObject || enumLabelMapInArrayItem) {\n mappedField.props = {\n ...mappedField.props,\n options: mappedField.props?.options?.map(({ value }) => {\n return {\n label: (enumLabelMapInObject || enumLabelMapInArrayItem)?.[value] ?? value,\n value: value,\n };\n }),\n };\n }\n\n return mappedField;\n }\n\n /**\n * Remove the label of the oneOf fields to avoid to display it twice (with the select and the object title)\n */\n private sanitizeOneOf(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (!mapSource.oneOf || !mappedField.fieldGroup || mappedField.fieldGroup.length < 1) {\n return mappedField;\n }\n\n const parentFieldGroup = mappedField.fieldGroup[mappedField.fieldGroup.length - 1];\n if (!parentFieldGroup || parentFieldGroup?.type != 'multischema') {\n return mappedField;\n }\n\n const contentFieldGroup = get(parentFieldGroup, 'fieldGroup[1]');\n if (!contentFieldGroup) {\n return mappedField;\n }\n\n contentFieldGroup.fieldGroup?.forEach((field: FormlyFieldConfig) => {\n set(field, 'props.label', undefined);\n });\n\n return mappedField;\n }\n\n private deprecatedMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.deprecated) {\n return {};\n }\n\n return mappedField;\n }\n\n private uniqueValueMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n let fieldNameWithErrors: string | undefined = undefined;\n if (mapSource.gioConfig?.uniqueItemProperties) {\n mappedField = {\n ...mappedField,\n validators: {\n ...mappedField.validators,\n uniqueFields: {\n expression: (control: AbstractControl) => {\n const items = control.value;\n const uniqueProps = mapSource.gioConfig?.uniqueItemProperties ?? [];\n if (!Array.isArray(items) || !uniqueProps.length) return true;\n\n for (const prop of uniqueProps) {\n const values = items.map(i => i?.[prop]).filter(v => v != null);\n if (new Set(values).size !== values.length) {\n fieldNameWithErrors = prop;\n return false;\n }\n }\n\n return true;\n },\n message: (_error: unknown, _field: FormlyFieldConfig) => `${fieldNameWithErrors || 'This field'} must be unique`,\n },\n },\n };\n }\n return mappedField;\n }\n}\n\nconst getBannerProperties = (banner: { title: string; text: string } | { text: string }) => {\n return {\n bannerText: banner.text,\n bannerTitle: 'title' in banner ? banner.title : undefined,\n };\n};\n\nconst getGioIf = (\n gioIf?: GioIfConfig,\n): ((objectToCheck?: { value?: FormlyFieldConfig['model']; context?: Record<string, unknown> }) => boolean) | undefined => {\n const $eq = gioIf?.$eq;\n if (isNil($eq) || !isObject($eq)) {\n return undefined;\n }\n\n return objectToCheck => {\n if (isEmpty(objectToCheck)) {\n return false;\n }\n\n return Object.entries($eq)\n .map(([k, v]) => ({ path: k, eqValue: castArray(v) }))\n .every(({ path, eqValue }) => {\n const value = get(objectToCheck, path);\n\n return eqValue.includes(value);\n });\n };\n};\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 */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, UntypedFormGroup, NgControl } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\nimport { cloneDeep, isEmpty, isEqual, isObject, set } from 'lodash';\nimport { debounceTime, delay, distinctUntilChanged, filter, map, startWith, take, takeUntil, tap } from 'rxjs/operators';\nimport { merge, ReplaySubject, Subject } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n\nimport { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from '../gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';\n\nimport { GioJsonSchema } from './model/GioJsonSchema';\nimport { GioFormlyJsonSchemaService } from './gio-formly-json-schema.service';\nimport { GioJsonSchemaContext } from './model/GioJsonSchemaContext';\n\n@Component({\n selector: 'gio-form-json-schema',\n template: `\n @if (formGroup) {\n <formly-form [fields]=\"fields\" [options]=\"options\" [form]=\"formGroup\" [model]=\"model\"></formly-form>\n }\n `,\n styleUrls: ['./gio-form-json-schema.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormJsonSchemaComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static isDisplayable(jsonSchema: GioJsonSchema): boolean {\n const properties = ['properties', 'oneOf', 'anyOf', 'allOf', '$ref', 'items'] as const;\n\n return isObject(jsonSchema) && properties.some(property => !isEmpty(jsonSchema[property]));\n }\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n @HostBinding(`attr.${GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR}`)\n private gioFormFocusInvalidIgnore = true;\n\n @Input({ required: true })\n public jsonSchema!: GioJsonSchema;\n\n @Input()\n public context?: GioJsonSchemaContext;\n\n public formGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n @Input()\n public options: FormlyFormOptions = {};\n\n // When true the form is ready and control status are up-to-date\n // Useful to know when initial control status can be used\n @Output()\n public ready = new EventEmitter<boolean>();\n\n private isReady = false;\n\n public model: unknown = {};\n\n public fields: FormlyFieldConfig[] = [];\n\n public isDisabled = false;\n\n public _onChange: (value: unknown | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n\n private touched = false;\n\n private isValid$ = new ReplaySubject(1); // Wait JsonSchema to be loaded to check if it's valid\n\n private stateChanges$ = new Subject<void>();\n\n constructor(\n private readonly gioFormlyJsonSchema: GioFormlyJsonSchemaService,\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Host() @Optional() public readonly ngControl?: NgControl,\n ) {\n if (ngControl) {\n // Setting the value accessor directly (instead of using\n // the providers `NG_VALUE_ACCESSOR`) to avoid running into a circular import.\n ngControl.valueAccessor = this;\n }\n\n // When the user interact with the form, mark it as touched\n fm.monitor(elRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this._onTouched();\n this.touched = true;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.jsonSchema) {\n this.isReady = false;\n this.ready.next(false);\n }\n\n if (changes.jsonSchema || changes.context) {\n if (!isEmpty(this.jsonSchema)) {\n this.fields = [this.gioFormlyJsonSchema.toFormlyFieldConfig(this.jsonSchema, this.context)];\n }\n }\n }\n\n public ngOnInit(): void {\n // When the parent form is touched, mark all the sub formGroup as touched if not already touched\n const parentControl = this.ngControl?.control?.parent;\n parentControl?.statusChanges\n ?.pipe(\n map(() => parentControl?.touched),\n filter(touched => touched === true),\n distinctUntilChanged(),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this.formGroup.markAllAsTouched();\n this.stateChanges$.next();\n });\n // Add async validator to the parent\n this.ngControl?.control?.addAsyncValidators(() => {\n return this.isValid$.pipe(\n take(1),\n map(isValid => (isValid ? null : { invalid: true })),\n takeUntil(this.unsubscribe$),\n );\n });\n\n // Sync control value with default value (without emit event) as long as the component is not ready\n // When formly is initialised, it emits several values as it builds up step by step.\n this.formGroup.valueChanges\n .pipe(\n distinctUntilChanged(isEqual),\n tap(value => {\n this.ngControl?.control?.reset(value, { emitEvent: false });\n }),\n takeUntil(this.ready),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n // Avoid ExpressionChangedAfterItHasBeenCheckedError on project\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n\n // Subscribe to state changes to manage touches, status and value\n this.stateChanges$\n .pipe(\n tap(() => {\n const { status, value, touched } = this.formGroup;\n if (this.isDisabled) {\n return;\n }\n\n if (status === 'VALID') {\n this.isValid$.next(true);\n }\n if (status === 'INVALID') {\n this.isValid$.next(false);\n }\n\n if (touched && !this.touched) {\n this._onTouched();\n this.touched = true;\n }\n\n if (this.touched) {\n this._onChange(value);\n }\n }),\n delay(0),\n // Keep at the end\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n this.ngControl?.control?.updateValueAndValidity({\n emitEvent: false,\n });\n\n // After the first state change, the form is ready\n if (!this.isReady) {\n this.isReady = true;\n this.ready.emit(true);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n // Group all valueChanges events emit by formly in a single one\n merge(this.formGroup.statusChanges, this.formGroup.valueChanges)\n .pipe(\n // Force fist stateChanges$\n startWith({}),\n debounceTime(100),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.stateChanges$.next();\n });\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n }\n\n // From ControlValueAccessor\n public writeValue(value: unknown): void {\n this.model = cloneDeep(value) ?? {};\n }\n\n // From ControlValueAccessor\n public registerOnChange(fn: (value: unknown | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor\n public setDisabledState?(isDisabled: boolean): void {\n if (this.isDisabled === isDisabled) {\n return;\n }\n\n this.isDisabled = isDisabled;\n\n set(this.options, 'formState.parentDisabled', isDisabled);\n setTimeout(() => {\n isDisabled ? this.formGroup.disable({ emitEvent: false }) : this.formGroup.enable({ emitEvent: false });\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n this.stateChanges$.next();\n }, 0);\n\n this.stateChanges$.next();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Directive } from '@angular/core';\n\n@Component({\n selector: 'gio-form-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormLabelComponent {}\n\n@Directive({\n selector: '[gioFormPrefix]',\n standalone: false,\n})\nexport class GioFormPrefixDirective {}\n\n@Directive({\n selector: '[gioFormSlideToggle]',\n standalone: false,\n})\nexport class GioFormSlideToggleDirective {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AfterContentInit, Component, ContentChild, Input, OnDestroy } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'gio-form-slide-toggle',\n templateUrl: './gio-form-slide-toggle.component.html',\n styleUrls: ['./gio-form-slide-toggle.component.scss'],\n standalone: false,\n})\nexport class GioFormSlideToggleComponent implements AfterContentInit, OnDestroy {\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n @Input()\n public appearance: 'fill' | 'outline' = 'outline';\n\n @ContentChild(MatSlideToggle, {\n static: false,\n })\n public innerMatSlideToggle: MatSlideToggle | null = null;\n\n @ContentChild(NgControl, {\n static: false,\n })\n public innerFormControlName: NgControl | null = null;\n\n public disabled = false;\n\n public ngAfterContentInit(): void {\n let isDisabled$: Observable<boolean> | undefined = undefined;\n\n // Check if disabled is delegated to inner FormControlName\n if (this.innerFormControlName) {\n isDisabled$ = this.innerFormControlName.statusChanges?.pipe(\n map(() => !!this.innerFormControlName?.disabled),\n startWith(!!this.innerFormControlName.disabled),\n );\n }\n // If not, check state of inner MatSlideToggle\n else if (this.innerMatSlideToggle) {\n isDisabled$ = this.innerMatSlideToggle.change.pipe(\n map(event => event.source.disabled),\n startWith(this.innerMatSlideToggle.disabled),\n );\n }\n\n if (isDisabled$) {\n isDisabled$.pipe(takeUntil(this.unsubscribe$)).subscribe(disabled => {\n this.disabled = disabled;\n });\n }\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"form-slide-toggle\" [class.appearance-fill]=\"appearance === 'fill'\" [class.appearance-outline]=\"appearance === 'outline'\">\n <div class=\"form-slide-toggle__icon\">\n <ng-content select=\"[gioFormPrefix]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field\">\n <div class=\"form-slide-toggle__field__mat-slide-toggle\">\n <ng-content select=\"[gioFormSlideToggle]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field__text\" [class.disabled]=\"disabled\">\n <span class=\"form-slide-toggle__field__text__label-1\">\n <ng-content select=\"gio-form-label\"></ng-content>\n </span>\n <span class=\"form-slide-toggle__field__text__label-2\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective } from './gio-form-label.directive';\nimport { GioFormSlideToggleComponent } from './gio-form-slide-toggle.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective],\n exports: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective],\n})\nexport class GioFormSlideToggleModule {}\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 */\nimport { InjectionToken } from '@angular/core';\n\nimport { MonacoEditorTheme } from './MonacoEditorTheme';\n\nexport type GioMonacoEditorConfig = {\n baseUrl?: string;\n theme?: MonacoEditorTheme;\n};\n\nexport const GIO_MONACO_EDITOR_CONFIG = new InjectionToken<GioMonacoEditorConfig>('gio-monaco-editor-config');\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 */\nimport { inject, Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport Monaco from 'monaco-editor';\n\nimport { GIO_MONACO_EDITOR_CONFIG, GioMonacoEditorConfig } from '../models/GioMonacoEditorConfig';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n require: any;\n monaco: typeof Monaco;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioMonacoEditorService {\n private readonly config: GioMonacoEditorConfig = inject(GIO_MONACO_EDITOR_CONFIG);\n public loaded$ = new ReplaySubject<{ monaco: typeof Monaco }>(1);\n private loaded = false;\n\n public loadEditor(): Promise<void> {\n if (this.loaded) {\n // Already loaded, do nothing.\n return Promise.resolve();\n }\n this.loaded = true;\n\n return new Promise<void>(resolve => {\n // Monaco is already loaded\n if (typeof window.monaco === 'object') {\n resolve();\n return;\n }\n\n const onGotAmdLoader = () => {\n const baseUrl = this.config.baseUrl || (window.location.origin + window.location.pathname).replace(/\\/$/, '');\n // Load Monaco\n window.require.config({\n paths: { vs: baseUrl + '/assets/monaco-editor/min/vs' },\n });\n\n window.require(['vs/editor/editor.main'], () => {\n resolve();\n });\n };\n\n // Load AMD loader if necessary\n if (!window.require) {\n const loaderScript = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = 'assets/monaco-editor/min/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n } else {\n onGotAmdLoader();\n }\n }).then(() => {\n this.loaded$.next({ monaco: window.monaco });\n });\n }\n}\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 */\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport type Monaco from 'monaco-editor';\n\nimport { GioMonacoEditorService } from './gio-monaco-editor.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLanguageJsonService implements OnDestroy {\n private unsubscribe$ = new Subject<void>();\n private monaco?: typeof Monaco;\n\n constructor(private readonly codeEditorService: GioMonacoEditorService) {\n codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {\n this.setup(event.monaco);\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public setup(monaco: typeof Monaco): void {\n if (!monaco) {\n throw new Error('Monaco is not loaded');\n }\n this.monaco = monaco;\n const defaults = monaco.languages.json.jsonDefaults;\n\n defaults.setDiagnosticsOptions({\n validate: true,\n allowComments: true,\n });\n }\n\n public addSchemas(id: string, definitions: Array<{ uri: string; schema: unknown }> = []) {\n if (!this.monaco) {\n throw new Error('Monaco is not loaded');\n }\n\n const defaults = this.monaco.languages.json.jsonDefaults;\n const options = defaults.diagnosticsOptions;\n\n let schemas: Monaco.languages.json.DiagnosticsOptions['schemas'] = definitions.map(({ uri, schema }) => ({\n uri,\n schema,\n fileMatch: [id || '*.json'],\n }));\n\n if (options && options.schemas && options.schemas.length > 0) {\n schemas = [...options.schemas, ...schemas];\n }\n\n defaults.setDiagnosticsOptions({\n ...options,\n schemas: schemas,\n });\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nexport interface PropertySuggestion {\n type: string;\n name: string;\n enum?: string[];\n}\n\nexport interface IndexableSuggestion {\n type?: string;\n enum?: string[];\n additionalProperties?: IndexableSuggestion;\n items?: IndexableSuggestion;\n}\n\nexport interface Suggestions {\n properties: PropertySuggestion[];\n additionalProperties: IndexableSuggestion;\n items: IndexableSuggestion;\n}\n\nexport interface JSONSchema {\n properties?: JSONSchemaProperties;\n $defs?: JSONSchemaProperties;\n}\n\nexport interface JSONSchemaProperty {\n type?: string;\n $ref?: string;\n additionalProperties?: JSONSchemaProperty;\n items?: JSONSchemaProperty;\n properties?: JSONSchemaProperties;\n}\n\nexport type JSONSchemaPropertyWithDefs = JSONSchema & JSONSchemaProperty;\n\nexport interface JSONSchemaProperties {\n [key: string]: JSONSchemaProperty;\n}\n\nconst SCHEMA_REF_BASE = '#/$defs/';\n\nexport function getKeywords(schema: JSONSchemaPropertyWithDefs, keywords = new Set<string>()): string[] {\n const properties = schema.properties || {};\n const defs = schema.$defs || {};\n for (const property of Object.values(defs)) {\n if (property.properties) {\n getKeywords(property, keywords);\n }\n }\n for (const [name, property] of Object.entries(properties)) {\n keywords.add(name);\n if (property.properties) {\n getKeywords(property, keywords);\n }\n }\n return Array.from(keywords);\n}\n/**\n * Build suggestions for autocompletion based on a JSON schema definition and a property path\n *\n * @param schema an object model defined as a JSON schema following the 2020-12 specification\n * @param path the property path to inspect. If the property path contains '.', then root properties will be returned\n */\nexport function getSuggestions(schema: JSONSchema, path: string[]): Suggestions {\n const propertyNames = [...path];\n const propertyName = propertyNames.shift();\n\n if (propertyName === '.') {\n return buildSuggestions(schema, schema);\n }\n\n const property = getProperty(schema, propertyName);\n if (!property) {\n return {\n properties: [],\n additionalProperties: {},\n items: {},\n };\n }\n\n const newSchema = mergeSchemaWithProperties(schema, property);\n if (propertyNames.length > 0) {\n return getSuggestions(newSchema, propertyNames);\n }\n\n return buildSuggestions(newSchema, property);\n}\n\nfunction resolveReference(ref: string, defs: JSONSchemaProperties = {}): JSONSchemaProperty {\n const refName = ref.substring(SCHEMA_REF_BASE.length);\n const resolved = defs[refName];\n if (resolved && resolved.$ref) {\n return resolveReference(resolved.$ref, defs);\n }\n return resolved || {};\n}\n\nfunction resolveType(property: JSONSchemaProperty, defs?: JSONSchemaProperties): string {\n if (property.$ref) {\n const resolved = resolveReference(property.$ref, defs);\n return resolveType(resolved, defs);\n }\n if (property.additionalProperties || property.items) {\n const stringMap = 'map<string, ';\n const array = 'array<';\n let type = property.additionalProperties ? stringMap : array;\n let copy = property.additionalProperties || (property.items as JSONSchemaProperty);\n while (copy.additionalProperties || copy.items) {\n type += copy.additionalProperties ? stringMap : array;\n copy = copy.additionalProperties || (copy.items as JSONSchemaProperty);\n }\n return `${type}${copy.type}>`;\n }\n return property.type as string;\n}\n\nfunction getProperty(schema: JSONSchemaPropertyWithDefs, propertyName = String()): JSONSchemaProperty {\n if (schema.properties && schema.properties[propertyName]) {\n return schema.properties[propertyName];\n }\n\n if (schema.$ref && schema.$defs) {\n const property = resolveReference(schema.$ref, schema.$defs);\n if (property && property.properties) {\n return property.properties[propertyName];\n }\n }\n return {};\n}\n\nfunction buildIndexableSuggestion(property: JSONSchemaProperty): Suggestions {\n return {\n properties: [],\n additionalProperties: property.additionalProperties || {},\n items: property.items || {},\n };\n}\n\nfunction buildSuggestions(schema: JSONSchemaPropertyWithDefs, property: JSONSchemaProperty): Suggestions {\n if (property.$ref && schema.$defs) {\n const ref = resolveReference(property.$ref, schema.$defs);\n return buildSuggestions(schema, ref);\n }\n\n if (property.additionalProperties || property.items) {\n return buildIndexableSuggestion(property);\n }\n\n const properties = property.properties || {};\n return {\n properties: mapSuggestions(properties, schema.$defs),\n additionalProperties: {},\n items: {},\n };\n}\n\nfunction mapSuggestions(properties: JSONSchemaProperties, defs?: JSONSchemaProperties): PropertySuggestion[] {\n return Object.entries(properties).map(([name, property]) => {\n return {\n name,\n type: resolveType(property, defs),\n };\n });\n}\n\nfunction mergeSchemaWithProperties(schema: JSONSchema, property: JSONSchemaProperty): JSONSchemaPropertyWithDefs {\n return { ...schema, ...property };\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { editor, languages, Position } from 'monaco-editor';\n\nimport CompletionItem = languages.CompletionItem;\n\nimport type Monaco from 'monaco-editor';\n\nimport { getKeywords, getSuggestions, IndexableSuggestion, JSONSchema, PropertySuggestion } from '../models/JSONSchemaAutoComplete';\n\nimport { GioMonacoEditorService } from './gio-monaco-editor.service';\n\nexport const SPEL_LANG_ID = 'spel';\n\nfunction getPropertyPath(model: editor.ITextModel, position: Position): string[] {\n const line = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: 0,\n endLineNumber: position.lineNumber,\n endColumn: position.column,\n });\n\n // get last valid el expression (most right hand side of the current line)\n const lastExpression = line.split('#').filter(Boolean).pop();\n if (!lastExpression) {\n return [];\n }\n\n // get expression left hand side\n const lastExpressionLHS = lastExpression.split(/\\s+/).filter(Boolean).shift();\n if (!lastExpressionLHS) {\n return [];\n }\n\n return (\n lastExpressionLHS\n // remove special characters\n .replace(/\\W/g, ' ')\n // normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n .split(/\\s/)\n );\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLanguageElService implements OnDestroy {\n private unsubscribe$ = new Subject<void>();\n\n private context: { schema: JSONSchema; keywords: string[] } = {\n schema: {},\n keywords: [],\n };\n\n private schema: JSONSchema = {};\n private keywords: string[] = [];\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n constructor(codeEditorService: GioMonacoEditorService) {\n codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {\n this.setup(event.monaco);\n });\n }\n\n public setup(monaco: typeof Monaco): void {\n if (!monaco) {\n throw new Error('Monaco is not loaded');\n }\n\n monaco.languages.register({ id: SPEL_LANG_ID });\n\n monaco.languages.setLanguageConfiguration(SPEL_LANG_ID, {\n brackets: [\n ['{', '}'],\n ['(', ')'],\n ['[', ']'],\n ],\n autoClosingPairs: [\n {\n open: \"'\",\n close: \"'\",\n },\n {\n open: '\"',\n close: '\"',\n },\n {\n open: '(',\n close: ')',\n },\n {\n open: '{',\n close: '}',\n },\n {\n open: '[',\n close: ']',\n },\n ],\n surroundingPairs: [\n {\n open: \"'\",\n close: \"'\",\n },\n {\n open: '\"',\n close: '\"',\n },\n {\n open: '(',\n close: ')',\n },\n {\n open: '{',\n close: '}',\n },\n ],\n });\n\n const schema = this.schema;\n const keywords = this.keywords;\n\n monaco.languages.setMonarchTokensProvider(SPEL_LANG_ID, {\n keywords,\n operators: ['=', '>', '<', '!', '?', ':', '==', '<=', '>=', '!=', '&&', '||', '++', '--', '+', '-', '*', '/', '^', '%'],\n\n tokenizer: {\n root: [\n [\n /@?[a-zA-Z][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': 'variable',\n },\n },\n ],\n\n [/[\"'].*?[\"']/, 'string'],\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'],\n\n [/#/, 'number'],\n\n // eslint-disable-next-line no-useless-escape\n [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+/, 'number.hex'],\n [/\\d+/, 'number'],\n ],\n },\n });\n\n monaco.languages.registerCompletionItemProvider(SPEL_LANG_ID, {\n provideCompletionItems(\n model: editor.ITextModel,\n position: Position,\n context: languages.CompletionContext,\n ): languages.ProviderResult<languages.CompletionList> {\n const word = model.getWordUntilPosition(position);\n\n const mapPropertyKind = (propertySuggestion: PropertySuggestion): number => {\n switch (propertySuggestion.type) {\n case 'object':\n return monaco.languages.CompletionItemKind.Struct;\n case 'string':\n return monaco.languages.CompletionItemKind.Text;\n default:\n return monaco.languages.CompletionItemKind.Field;\n }\n };\n\n const mapPropertySuggestion = (propertySuggestion: PropertySuggestion): CompletionItem => {\n return {\n label: propertySuggestion.name,\n kind: mapPropertyKind(propertySuggestion),\n insertText: propertySuggestion.name,\n detail: propertySuggestion.type,\n range: {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n },\n };\n };\n\n const mapIndexableSuggestions = (suggestion: IndexableSuggestion): CompletionItem[] => {\n return (\n suggestion.enum?.map(name => {\n return {\n label: name,\n kind: monaco.languages.CompletionItemKind.Enum,\n insertText: `\"${name}\"`,\n detail: 'enum',\n range: {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n },\n };\n }) || []\n );\n };\n\n if (context.triggerCharacter === '#') {\n return {\n suggestions: getSuggestions(schema, ['.']).properties.map(mapPropertySuggestion).sort(),\n };\n }\n\n if (context.triggerCharacter === '[') {\n const path = getPropertyPath(model, position);\n const suggestions = getSuggestions(schema, path);\n if (suggestions.additionalProperties && suggestions.additionalProperties.enum) {\n return {\n suggestions: mapIndexableSuggestions(suggestions.additionalProperties),\n };\n }\n }\n\n if (context.triggerCharacter === '.') {\n const path = getPropertyPath(model, position);\n const suggestions = getSuggestions(schema, path).properties.map(mapPropertySuggestion).sort();\n return {\n suggestions,\n };\n }\n\n return { suggestions: [] };\n },\n triggerCharacters: ['#', '.', '['],\n });\n }\n\n public setSchema(schema: JSONSchema): void {\n Object.assign(this.schema, schema);\n this.keywords.push(...getKeywords(schema));\n }\n}\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 */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Self,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { isEqual, isString, uniqueId } from 'lodash';\nimport Monaco, { editor } from 'monaco-editor';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GIO_MONACO_EDITOR_CONFIG, GioMonacoEditorConfig } from './models/GioMonacoEditorConfig';\nimport { GioLanguageJsonService } from './services/gio-language-json.service';\nimport { GioMonacoEditorService } from './services/gio-monaco-editor.service';\nimport { GioLanguageElService } from './services/gio-language-el.service';\nimport { JSONSchema } from './models/JSONSchemaAutoComplete';\n\nexport type MonacoEditorLanguageConfig =\n | {\n language: 'json';\n schemas?: { uri: string; schema: unknown }[];\n }\n | {\n language: 'markdown';\n }\n | {\n language: 'html';\n }\n | {\n language: 'yaml';\n }\n | {\n language: 'spel';\n schema?: JSONSchema;\n }\n | {\n language: 'css';\n };\n\n@Component({\n selector: 'gio-monaco-editor',\n template: `\n @if (loaded$ | async) {\n <div>Loading...</div>\n }\n `,\n styleUrls: ['./gio-monaco-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioMonacoEditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n @Input()\n public languageConfig?: MonacoEditorLanguageConfig;\n\n @Input()\n public options: editor.IStandaloneEditorConstructionOptions = {};\n\n @Input()\n public disableMiniMap = false;\n\n @Input()\n public disableAutoFormat = false;\n\n @Input()\n @HostBinding('class.single-line')\n public singleLineMode = false;\n\n public loaded$ = new ReplaySubject<boolean>(1);\n\n private defaultOptions: editor.IStandaloneEditorConstructionOptions = {\n contextmenu: false,\n minimap: {\n enabled: true,\n },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n };\n\n public value = '';\n public readOnly = false;\n public standaloneCodeEditor?: editor.IStandaloneCodeEditor;\n private textModel?: editor.ITextModel;\n private toDisposes: Monaco.IDisposable[] = [];\n\n private isMonacoEditorReady: WritableSignal<{ isSetup: boolean; hasFirstValue: boolean }> = signal({\n isSetup: false,\n hasFirstValue: false,\n });\n\n protected _onChange: (_value: string | null) => void = () => ({});\n\n protected _onTouched: () => void = () => ({});\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n public readonly hostElement: ElementRef,\n @Inject(GIO_MONACO_EDITOR_CONFIG) private readonly config: GioMonacoEditorConfig,\n private readonly monacoEditorService: GioMonacoEditorService,\n private readonly languageJsonService: GioLanguageJsonService,\n private readonly languageSpelService: GioLanguageElService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly ngZone: NgZone,\n @Optional() @Self() public readonly ngControl: NgControl,\n ) {\n if (this.ngControl) {\n // Set the value accessor directly (instead of providing\n // NG_VALUE_ACCESSOR) to avoid running into a circular import\n this.ngControl.valueAccessor = this;\n }\n this.monacoEditorService.loadEditor();\n\n effect(() => {\n const { isSetup, hasFirstValue } = this.isMonacoEditorReady();\n if (isSetup && hasFirstValue) {\n if (this.textModel) {\n this.textModel.setValue(this.value);\n }\n\n this.updateModelLanguage();\n this.autoformatValue();\n }\n });\n }\n\n public ngAfterViewInit() {\n // Wait until monaco editor is available\n this.monacoEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(({ monaco }) => {\n this.setupEditor(monaco);\n this.isMonacoEditorReady.update(({ hasFirstValue }) => ({ isSetup: true, hasFirstValue }));\n\n this.loaded$.next(false);\n this.changeDetectorRef.detectChanges();\n });\n }\n\n public ngOnDestroy() {\n this.toDisposes.forEach(d => d.dispose());\n\n if (this.standaloneCodeEditor) {\n this.standaloneCodeEditor.dispose();\n this.standaloneCodeEditor = undefined;\n }\n\n if (this.textModel) {\n this.textModel.dispose();\n this.textModel = undefined;\n }\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n // From ControlValueAccessor interface\n public writeValue(_value: string | null): void {\n if (_value) {\n this.value = isString(_value) ? _value : JSON.stringify(_value);\n this.isMonacoEditorReady.update(({ isSetup }) => ({ isSetup, hasFirstValue: true }));\n }\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (_value: string | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.readOnly = isDisabled;\n\n if (this.standaloneCodeEditor) {\n this.standaloneCodeEditor.updateOptions({\n readOnly: isDisabled,\n });\n }\n }\n\n private setupEditor(monaco: typeof Monaco) {\n if (!this.hostElement) {\n throw new Error('No editor ref found.');\n }\n\n const domElement = this.hostElement.nativeElement;\n\n const settings = {\n value: this.value,\n language: this.languageConfig?.language ?? (isJsonString(this.value) ? 'json' : 'plaintext'),\n uri: `code-${uniqueId()}`,\n };\n\n this.ngZone.runOutsideAngular(() => {\n this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.parse(settings.uri));\n });\n\n const options = Object.assign({}, this.defaultOptions, this.options, {\n readOnly: !this.ngControl && 'readOnly' in this.options ? this.options.readOnly : this.readOnly,\n theme: this.config.theme ?? 'vs',\n model: this.textModel,\n minimap: {\n enabled: !this.disableMiniMap,\n },\n });\n\n this.standaloneCodeEditor = monaco.editor.create(domElement, {\n ...options,\n });\n\n if (this.singleLineMode) {\n this.standaloneCodeEditor?.addAction({\n id: 'custom.action',\n label: 'custom action',\n keybindings: [monaco.KeyCode.Enter],\n precondition: '!suggestWidgetVisible && !renameInputVisible && !inSnippetMode && !quickFixWidgetVisible',\n run: () => {\n // Ignore Enter key in single line mode when writing\n return;\n },\n });\n }\n\n const onDidChangeContent = this.textModel?.onDidChangeContent(() => {\n const textModelValue = this.textModel?.getValue() ?? '';\n if (this.singleLineMode) {\n // If value has \\n, \\r or \\r\\n, remove them\n // Useful to clear line breaks when pasting text\n const hasLineBreak = new RegExp(/(\\r\\n|\\n|\\r)/gm);\n if (hasLineBreak.test(textModelValue)) {\n const currentPosition = this.standaloneCodeEditor?.getPosition();\n setTimeout(() => {\n this.standaloneCodeEditor?.pushUndoStop();\n this.textModel?.setValue(textModelValue.replace(/(\\r\\n|\\n|\\r)/gm, ''));\n if (currentPosition) {\n this.standaloneCodeEditor?.setPosition(currentPosition);\n }\n this.standaloneCodeEditor?.popUndoStop();\n }, 0);\n return;\n }\n }\n\n this.ngZone.run(() => {\n if (!this.readOnly && !isEqual(this.value, textModelValue)) {\n setTimeout(() => {\n this.value = textModelValue;\n this._onChange(textModelValue);\n this._onTouched();\n }, 0);\n }\n });\n });\n\n if (this.singleLineMode) {\n // Source : https://farzadyz.com/blog/single-line-monaco-editor\n this.standaloneCodeEditor?.updateOptions({\n // quickSuggestions: false,\n fixedOverflowWidgets: true,\n acceptSuggestionOnEnter: 'on',\n hover: {\n delay: 100,\n },\n roundedSelection: false,\n contextmenu: false,\n cursorStyle: 'line-thin',\n links: false,\n find: {\n addExtraSpaceOnTop: false,\n autoFindInSelection: 'never',\n seedSearchStringFromSelection: 'never',\n },\n fontSize: 14,\n fontWeight: 'normal',\n overviewRulerLanes: 0,\n scrollBeyondLastColumn: 0,\n wordWrap: 'on',\n minimap: {\n enabled: false,\n },\n lineNumbers: 'off',\n hideCursorInOverviewRuler: true,\n overviewRulerBorder: false,\n glyphMargin: false,\n folding: false,\n lineDecorationsWidth: 0,\n lineNumbersMinChars: 0,\n renderLineHighlight: 'none',\n scrollbar: {\n horizontal: 'hidden',\n vertical: 'hidden',\n alwaysConsumeMouseWheel: false,\n },\n });\n }\n\n const onDidBlurEditorWidget = this.standaloneCodeEditor?.onDidBlurEditorWidget(() => {\n this.ngZone.run(() => {\n if (!this.readOnly) this._onTouched();\n });\n });\n\n this.toDisposes = [onDidChangeContent, onDidBlurEditorWidget].filter(d => !!d) as Monaco.IDisposable[];\n\n this.setupLanguage(settings.uri, this.languageConfig);\n }\n\n private setupLanguage(uri: string, languageConfig?: MonacoEditorLanguageConfig) {\n if (!languageConfig) {\n return;\n }\n\n switch (languageConfig.language) {\n case 'json':\n if (languageConfig.schemas) {\n this.languageJsonService.addSchemas(uri, languageConfig.schemas);\n }\n break;\n case 'spel':\n if (languageConfig.schema) {\n this.languageSpelService.setSchema(languageConfig.schema);\n }\n break;\n default:\n break;\n }\n }\n\n private updateModelLanguage() {\n const languageId = this.languageConfig?.language ?? (isJsonString(this.value) ? 'json' : 'plaintext');\n if (this.textModel && window.monaco) {\n window.monaco.editor.setModelLanguage(this.textModel, languageId);\n }\n }\n\n private autoformatValue() {\n if (!this.disableAutoFormat) {\n setTimeout(() => {\n const previousReadOnlyState = this.options.readOnly || this.readOnly;\n this.standaloneCodeEditor?.updateOptions({ readOnly: false });\n this.standaloneCodeEditor\n ?.getAction('editor.action.formatDocument')\n ?.run()\n .finally(() => {\n this.standaloneCodeEditor?.updateOptions({ readOnly: previousReadOnlyState });\n this.changeDetectorRef.detectChanges();\n });\n }, 80);\n }\n }\n}\n\nconst isJsonString = (str: string): boolean => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\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 */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n forwardRef,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n@Directive({\n selector: '[gioMonacoEditorFormField]',\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: forwardRef(() => GioMonacoEditorFormFieldDirective),\n },\n ],\n standalone: false,\n})\nexport class GioMonacoEditorFormFieldDirective implements OnInit, DoCheck, MatFormFieldControl<string>, OnDestroy {\n public static nextId = 0;\n\n public stateChanges = new Subject<void>();\n\n @HostBinding()\n public id = `gio-monaco-editor-${GioMonacoEditorFormFieldDirective.nextId++}`;\n\n @HostBinding('attr.aria-describedBy')\n public userAriaDescribedBy = '';\n\n public get value(): string | null {\n return this.hostGioMonacoEditorComponent?.value ?? null;\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n public get placeholder() {\n return this._placeholder;\n }\n\n @Input()\n public set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n this.stateChanges.next();\n }\n public get required() {\n return this._required;\n }\n\n @Input()\n public set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n public get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n public ngControl: NgControl | null = null;\n\n public focused = false;\n\n public get empty(): boolean {\n return !this.value;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @HostBinding('class.hidden')\n public get shouldHideEditor(): boolean {\n return !this.shouldLabelFloat;\n }\n\n public errorState = false;\n public controlType = 'gio-monaco-editor';\n // autofilled?: boolean | undefined;\n\n private _placeholder = '';\n private _required = false;\n private _disabled = false;\n private maxHeight = 500;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly focusMonitor: FocusMonitor,\n private readonly renderer: Renderer2,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Host() @Self() @Optional() public readonly hostGioMonacoEditorComponent: GioMonacoEditorComponent,\n ) {}\n\n public ngOnInit(): void {\n this.stateChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.changeDetectorRef.markForCheck());\n\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n this.ngControl = this.hostGioMonacoEditorComponent?.ngControl;\n\n this.hostGioMonacoEditorComponent?.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n // Auto resize editor\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.onDidContentSizeChange(() => {\n const height = Math.min(\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.getContentHeight() ?? this.maxHeight,\n this.maxHeight,\n );\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${height}px`);\n\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.layout();\n this.stateChanges.next();\n });\n });\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = !!this.ngControl.invalid && !!this.ngControl.touched;\n this.stateChanges.next();\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.userAriaDescribedBy = ids.join(' ');\n }\n\n public onContainerClick(_event: MouseEvent): void {\n if (!this.focused) {\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.focus();\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ContentChild } from '@angular/core';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[gioMonacoClipboardCopy]',\n styleUrls: ['./gio-monaco-clipboard-copy.component.scss'],\n template: `\n <div class=\"editor-wrapper\">\n <ng-content></ng-content>\n <gio-clipboard-copy-icon class=\"copy-btn\" [contentToCopy]=\"monacoEditor?.value ?? ''\"></gio-clipboard-copy-icon>\n </div>\n `,\n standalone: false,\n})\nexport class GioMonacoClipboardCopyComponent {\n @ContentChild(GioMonacoEditorComponent, { static: false })\n public monacoEditor: GioMonacoEditorComponent | null = null;\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { GioClipboardModule } from '../gio-clipboard/gio-clipboard.module';\n\nimport { GioMonacoEditorFormFieldDirective } from './gio-monaco-editor-form-field.directive';\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\nimport { GioMonacoEditorConfig, GIO_MONACO_EDITOR_CONFIG } from './models/GioMonacoEditorConfig';\nimport { GioMonacoClipboardCopyComponent } from './gio-monaco-clipboard-copy.component';\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, GioClipboardModule],\n declarations: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoClipboardCopyComponent],\n exports: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoClipboardCopyComponent],\n providers: [\n {\n provide: GIO_MONACO_EDITOR_CONFIG,\n useValue: {} as GioMonacoEditorConfig,\n },\n ],\n})\nexport class GioMonacoEditorModule {\n public static forRoot(config: GioMonacoEditorConfig) {\n return {\n ngModule: GioMonacoEditorModule,\n providers: [\n {\n provide: GIO_MONACO_EDITOR_CONFIG,\n useValue: config,\n },\n ],\n };\n }\n}\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 */\nimport Cronstrue from 'cronstrue/i18n';\nimport { isEmpty } from 'lodash';\n\nexport interface CronDisplay {\n mode: CronDisplayMode;\n\n secondInterval?: number;\n minuteInterval?: number;\n hourInterval?: number;\n dayInterval?: number;\n dayOfWeek?: number;\n dayOfMonth?: number;\n customExpression?: string;\n\n hours?: number;\n minutes?: number;\n}\nexport const CRON_DISPLAY_MODES = ['secondly', 'minutely', 'hourly', 'daily', 'weekly', 'monthly', 'custom'] as const;\nexport type CronDisplayMode = (typeof CRON_DISPLAY_MODES)[number];\n\nconst DISPLAY_MODE_LIST: {\n mode: CronDisplayMode;\n default: string;\n regex: RegExp;\n}[] = [\n {\n mode: 'secondly',\n default: '*/1 * * * * *',\n regex: /^(\\*\\/\\d+\\s)(\\*\\s){4}\\*/,\n },\n {\n mode: 'minutely',\n default: '0 */1 * * * *',\n regex: /^0\\s\\*\\/\\d+\\s(\\*\\s){3}\\*$/,\n },\n {\n mode: 'hourly',\n default: '0 0 */1 * * *',\n regex: /^0\\s\\d+\\s\\*\\/\\d+\\s(\\*\\s){2}\\*$/,\n },\n {\n mode: 'daily',\n default: '0 0 0 */1 * *',\n regex: /^0\\s\\d+\\s\\d+\\s\\*\\/\\d+\\s\\*\\s\\*$/,\n },\n {\n mode: 'weekly',\n default: '0 0 0 * * 0',\n regex: /^(\\d{1,2}\\s){2,3}(\\*\\s){2}\\d{1,2}$/,\n },\n {\n mode: 'monthly',\n default: '0 0 0 1 * *',\n regex: /^(\\d+\\s){3,4}\\*\\s\\*$/,\n },\n {\n mode: 'custom',\n default: '* * * * * *',\n regex: /^.*$/,\n },\n];\n\nexport const getDefaultCronDisplay = (mode: CronDisplayMode): CronDisplay => {\n const modeFound = DISPLAY_MODE_LIST.find(mf => mf.mode === mode);\n if (!modeFound) {\n throw new Error('Invalid cron mode.');\n }\n\n return parseCronExpression(modeFound.default);\n};\n\nexport const parseCronExpression = (cronExpression: string): CronDisplay => {\n throwIfInvalid(cronExpression);\n\n const parts = cronExpression.split(' ');\n\n // Normalize cron so that second segment is included.\n if (cronExpression && cronExpression.split(' ').length === 6) {\n parts.push('');\n }\n\n const hourInterval = getHourInterval(parts);\n const minuteInterval = getMinuteInterval(parts);\n const secondInterval = getSecondInterval(parts);\n const dayInterval = getDayInterval(parts);\n const dayOfWeek = getDayOfWeek(parts);\n const dayOfMonth = getDayOfMonth(parts);\n\n const hours = getHours(parts);\n const minutes = getMinutes(parts);\n\n const displayMode = getDisplayMode(cronExpression);\n\n switch (displayMode.mode) {\n case 'secondly':\n return {\n mode: 'secondly',\n secondInterval,\n };\n case 'minutely':\n return {\n mode: 'minutely',\n minuteInterval,\n };\n case 'hourly':\n return {\n mode: 'hourly',\n hourInterval,\n minutes,\n };\n case 'daily':\n return {\n mode: 'daily',\n dayInterval,\n hours,\n minutes,\n };\n case 'weekly':\n return {\n mode: 'weekly',\n dayOfWeek,\n hours,\n minutes,\n };\n case 'monthly':\n return {\n mode: 'monthly',\n dayOfMonth,\n hours,\n minutes,\n };\n case 'custom':\n return {\n mode: 'custom',\n customExpression: cronExpression,\n };\n }\n};\n\nexport const toCronExpression = (cronDisplay: Omit<CronDisplay, 'cronDescription'>): string => {\n switch (cronDisplay.mode) {\n case 'secondly':\n return `*/${cronDisplay.secondInterval} * * * * *`;\n case 'minutely':\n return `0 */${cronDisplay.minuteInterval} * * * *`;\n case 'hourly':\n return `0 ${cronDisplay.minutes} */${cronDisplay.hourInterval} * * *`;\n case 'daily':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} */${cronDisplay.dayInterval} * *`;\n case 'weekly':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} * * ${cronDisplay.dayOfWeek}`;\n case 'monthly':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} ${cronDisplay.dayOfMonth} * *`;\n case 'custom':\n return `${cronDisplay.customExpression}`;\n }\n};\n\nexport const toCronDescription = (cronExpression: string): string => {\n throwIfInvalid(cronExpression);\n\n if (!isEmpty(cronExpression)) {\n return Cronstrue.toString(cronExpression);\n }\n\n return '';\n};\n\n/**\n * Simple validation to ensure that the cron expression has 6 parts.\n * Note : The full cron expression validation is done by the backend.\n */\nconst throwIfInvalid = (cronExpression: string): void => {\n const parts = cronExpression.trim().split(/\\s+/);\n\n if (parts.length != 6) {\n throw new Error('Cron expression must have 6 parts.');\n }\n};\n\nconst getDisplayMode = (\n cronExpression: string,\n): {\n mode: CronDisplayMode;\n default: string;\n} => {\n const modeFound = DISPLAY_MODE_LIST.find(mf => {\n const regex = mf.regex;\n return regex.test(cronExpression);\n });\n\n if (!modeFound) {\n throw new Error('Invalid cron expression.');\n }\n\n return {\n mode: modeFound.mode,\n default: modeFound.default,\n };\n};\n\nconst getSecondInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[0])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getMinuteInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[1])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getHourInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[2])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[3])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayOfWeek = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[5])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayOfMonth = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[3])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getMinutes = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[1])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getHours = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[2])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getSegment = (value: string): Array<Array<string | number>> => {\n if (value === undefined) {\n value = '*';\n }\n return value.split(',').map(s => {\n if (s === undefined) {\n s = '*';\n }\n return s.split('/').map(p => {\n const v = parseInt(p, 10);\n return isNaN(v) ? p : v;\n });\n });\n};\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit, forwardRef, ChangeDetectorRef } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isEmpty, range } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\n\nimport { CronDisplay, getDefaultCronDisplay, parseCronExpression, toCronDescription, toCronExpression } from './gio-form-cron.adapter';\n\n@Component({\n selector: 'gio-form-cron',\n templateUrl: './gio-form-cron.component.html',\n styleUrls: ['./gio-form-cron.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GioFormCronComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GioFormCronComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class GioFormCronComponent implements ControlValueAccessor, OnInit, OnDestroy, Validator {\n public _onChange: (value: string | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n\n public seconds = [...range(0, 60)];\n public minutes = [...range(0, 60)];\n public hours = [...range(0, 24)];\n public daysOfMonth = [...range(1, 32)];\n public daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n public internalFormGroup?: UntypedFormGroup;\n public value?: string;\n public expressionDescription?: string;\n @HostBinding('class.disabled')\n public isDisabled = false;\n @HostBinding('class.smallDisplay')\n public smallDisplay = false;\n\n private touched = false;\n private focused = false;\n private hasError = false;\n\n private cronDisplay?: CronDisplay;\n\n private unsubscribe$ = new Subject<void>();\n private resizeObserver?: ResizeObserver;\n\n constructor(\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private readonly ngZone: NgZone,\n private readonly cdr: ChangeDetectorRef,\n ) {\n fm.monitor(elRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(origin => {\n this.focused = !!origin;\n this._onTouched();\n this.touched = true;\n });\n }\n\n public ngOnInit(): void {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n this.ngZone.run(() => {\n const width = entries[0].contentRect.width;\n this.smallDisplay = width < 580;\n this.cdr.markForCheck();\n });\n });\n this.resizeObserver.observe(this.elRef.nativeElement);\n }\n\n this.internalFormGroup = new UntypedFormGroup({\n mode: new UntypedFormControl(),\n secondInterval: new UntypedFormControl(),\n minuteInterval: new UntypedFormControl(),\n hourInterval: new UntypedFormControl(),\n dayInterval: new UntypedFormControl(),\n dayOfWeek: new UntypedFormControl(),\n dayOfMonth: new UntypedFormControl(),\n\n hours: new UntypedFormControl(),\n minutes: new UntypedFormControl(),\n customExpression: new UntypedFormControl(),\n });\n\n this.isDisabled ? this.internalFormGroup.disable({ emitEvent: false }) : this.internalFormGroup.enable({ emitEvent: false });\n\n this.internalFormGroup\n .get('mode')\n ?.valueChanges.pipe(\n filter(mode => !!mode),\n tap(mode => {\n this.cronDisplay = getDefaultCronDisplay(mode);\n\n this.refreshInternalForm();\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n this.internalFormGroup.valueChanges\n ?.pipe(\n tap(value => {\n this.hasError = false;\n if (!value?.mode) {\n this._onChange(null);\n return;\n }\n try {\n this.value = toCronExpression({\n mode: value.mode,\n secondInterval: value.secondInterval,\n minuteInterval: value.minuteInterval,\n hourInterval: value.hourInterval,\n dayInterval: value.dayInterval,\n dayOfWeek: value.dayOfWeek,\n dayOfMonth: value.dayOfMonth,\n customExpression: value.customExpression,\n hours: value.hours,\n minutes: value.minutes,\n });\n\n this.expressionDescription = toCronDescription(this.value);\n this._onChange(this.value);\n } catch (error) {\n this.hasError = true;\n this.expressionDescription = `${error ?? 'Invalid cron expression.'}`;\n this._onChange(null);\n }\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n this.refreshInternalForm();\n }\n\n public ngOnDestroy(): void {\n this.fm.stopMonitoring(this.elRef.nativeElement);\n this.resizeObserver?.unobserve(this.elRef.nativeElement);\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string): void {\n if (isEmpty(value)) {\n this.onClear();\n return;\n }\n try {\n this.value = value;\n this.cronDisplay = parseCronExpression(value);\n\n this.expressionDescription = toCronDescription(this.value);\n this.refreshInternalForm();\n } catch (error) {\n this.hasError = true;\n this.expressionDescription = `${error ?? 'Invalid cron expression.'}`;\n }\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (value: string | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n\n this.refreshInternalForm();\n }\n\n public validate(_: AbstractControl): ValidationErrors | null {\n return this.hasError ? { invalid: true } : null;\n }\n\n public onClear({ touched }: { touched?: boolean } = {}): void {\n this.value = undefined;\n this.cronDisplay = undefined;\n this.internalFormGroup?.reset({}, { emitEvent: true });\n\n if (touched) {\n this.touched = true;\n this._onTouched();\n }\n }\n\n private refreshInternalForm(): void {\n if (!this.internalFormGroup) return;\n\n this.isDisabled ? this.internalFormGroup.disable({ emitEvent: false }) : this.internalFormGroup.enable({ emitEvent: false });\n\n const d = this.cronDisplay;\n if (d) {\n this.internalFormGroup.patchValue(\n {\n mode: d.mode,\n customExpression: d.customExpression,\n secondInterval: d.secondInterval,\n minuteInterval: d.minuteInterval,\n hourInterval: d.hourInterval,\n dayInterval: d.dayInterval,\n dayOfWeek: d.dayOfWeek,\n dayOfMonth: d.dayOfMonth,\n\n hours: d.hours,\n minutes: d.minutes,\n },\n { emitEvent: false },\n );\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-cron-label\"></ng-content></div>\n<div class=\"wrapper\" [class.smallDisplay]=\"smallDisplay\" [class.disabled]=\"isDisabled\">\n @if (internalFormGroup) {\n <ng-container [formGroup]=\"internalFormGroup\">\n <div class=\"menu\">\n <mat-button-toggle-group\n class=\"gio-button-toggle-group menu__mode\"\n name=\"mode\"\n aria-label=\"Cron mode\"\n formControlName=\"mode\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n <mat-button-toggle value=\"secondly\" matTooltip=\"Secondly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 's' : 'Secondly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"minutely\" matTooltip=\"Minutely\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'm' : 'Minutely'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"hourly\" matTooltip=\"Hourly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'h' : 'Hourly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"daily\" matTooltip=\"Daily\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'D' : 'Daily'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"weekly\" matTooltip=\"Weekly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'W' : 'Weekly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"monthly\" matTooltip=\"Monthly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'M' : 'Monthly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"custom\" matTooltip=\"Custom\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'C' : 'Custom'\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n @if (value && !isDisabled) {\n <button mat-button aria-label=\"Clear\" matTooltip=\"Clear\" type=\"button\" (click)=\"onClear({ touched: true })\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </div>\n @switch (internalFormGroup.get('mode')?.value) {\n @case ('secondly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Second</mat-label>\n <mat-select formControlName=\"secondInterval\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('minutely') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minuteInterval\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('hourly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hourInterval\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('daily') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayInterval\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('weekly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-medium\">\n <mat-label>Day of the week</mat-label>\n <mat-select formControlName=\"dayOfWeek\">\n @for (day of daysOfWeek; track day; let index = $index) {\n <mat-option [value]=\"index\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('monthly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">On the </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayOfMonth\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> of every month at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('custom') {\n <div class=\"modeForm\">\n <mat-form-field class=\"modeForm__field-custom\">\n <mat-label>Cron expression</mat-label>\n <input matInput formControlName=\"customExpression\" placeholder=\"* * * * * *\" />\n </mat-form-field>\n </div>\n }\n }\n @if (value) {\n <div class=\"preview\">\n @if (internalFormGroup.get('mode')?.value !== 'custom') {\n <span class=\"preview__value\">\n {{ value }}\n </span>\n }\n <span class=\"preview__hint\">{{ expressionDescription }}</span>\n </div>\n } @else {\n <div class=\"placeholder\">No cron expression defined.</div>\n }\n </ng-container>\n }\n</div>\n<div class=\"hint\"><ng-content select=\"gio-form-cron-hint\"></ng-content></div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-cron-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormCronLabelComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-cron-hint',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormCronHintComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormCronComponent } from './gio-form-cron.component';\nimport { GioFormCronLabelComponent } from './gio-form-cron-label.component';\nimport { GioFormCronHintComponent } from './gio-form-cron-hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatButtonToggleModule,\n MatFormFieldModule,\n MatSelectModule,\n MatInputModule,\n MatButtonModule,\n MatTooltipModule,\n GioIconsModule,\n ],\n declarations: [GioFormCronComponent, GioFormCronLabelComponent, GioFormCronHintComponent],\n exports: [GioFormCronComponent, GioFormCronLabelComponent, GioFormCronHintComponent],\n})\nexport class GioFormCronModule {}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-null-type',\n template: ``,\n standalone: false,\n})\nexport class GioFjsNullTypeComponent extends FieldType {}\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 */\nimport { Component, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-object-type',\n template: `\n <div class=\"wrapper\">\n @if (to.label) {\n <div class=\"wrapper__title\">{{ to.label }}</div>\n }\n @if (to.description) {\n <p>{{ to.description }}</p>\n }\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n <div class=\"wrapper__fields\" [class.noUiBorder]=\"classNoUiBorder\">\n @for (f of field.fieldGroup; track f) {\n @if (f.type) {\n <formly-field class=\"wrapper__fields__field\" [field]=\"f\"></formly-field>\n }\n }\n </div>\n </div>\n `,\n styleUrls: ['./object-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsObjectTypeComponent extends FieldType implements OnInit {\n public classNoUiBorder = false;\n\n public ngOnInit() {\n this.classNoUiBorder = this.props.uiBorder === 'none';\n }\n}\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 */\nimport { Component, OnInit } from '@angular/core';\nimport { FieldArrayType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-array-type',\n template: `\n <div class=\"wrapper\" [class.error]=\"formControl.touched && formControl.invalid\" [class.noUiBorder]=\"classNoUiBorder\">\n <div class=\"wrapper__header\">\n <div class=\"wrapper__header__text\">\n @if (to.label) {\n <div class=\"wrapper__header__text__title\">{{ to.label }}</div>\n }\n @if (to.description) {\n <p>{{ to.description }}</p>\n }\n </div>\n <div class=\"wrapper__header__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\" (click)=\"collapse = !collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\"></mat-icon>\n </button>\n </div>\n </div>\n\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n\n <div [hidden]=\"collapse\" class=\"wrapper__rows\" [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\">\n @for (field of field.fieldGroup; track field; let i = $index) {\n <div class=\"wrapper__rows__row\">\n <formly-field class=\"wrapper__rows__row__field\" [field]=\"field\"></formly-field>\n <div class=\"wrapper__rows__row__remove\">\n <button\n type=\"button\"\n mat-icon-button\n aria-label=\"Remove\"\n [disabled]=\"this.formControl?.disabled ?? false\"\n (click)=\"remove(i)\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </div>\n </div>\n }\n\n <div>\n <button type=\"button\" mat-stroked-button aria-label=\"Add\" [disabled]=\"this.formControl?.disabled ?? false\" (click)=\"add()\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon> Add\n </button>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./array-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsArrayTypeComponent extends FieldArrayType implements OnInit {\n public collapse = false;\n public classNoUiBorder = false;\n\n public ngOnInit() {\n this.classNoUiBorder = this.props.uiBorder === 'none';\n }\n}\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 */\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function minItemsValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT have fewer than ${field.props?.minItems} items`;\n}\n\nexport function maxItemsValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT have more than ${field.props?.maxItems} items`;\n}\n\nexport function minLengthValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT be shorter than ${field.props?.minLength} characters`;\n}\n\nexport function maxLengthValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT be longer than ${field.props?.maxLength} characters`;\n}\n\nexport function minValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be >= ${field.props?.min}`;\n}\n\nexport function maxValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be <= ${field.props?.max}`;\n}\n\nexport function multipleOfValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be multiple of ${field.props?.step}`;\n}\n\nexport function exclusiveMinimumValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be > ${field.props?.exclusiveMinimum}`;\n}\n\nexport function exclusiveMaximumValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be < ${field.props?.exclusiveMaximum}`;\n}\n\nexport function constValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be equal to constant \"${field.props?.const}\"`;\n}\n\nexport function typeValidationMessage({ schemaType }: { schemaType: unknown[] }): string {\n return `Should be \"${schemaType[0]}\".`;\n}\n\nexport function patternValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n const key = field?.key?.toString() ?? 'Field';\n return `${key.charAt(0).toUpperCase() + key.slice(1)} value does not respect the pattern: ${field?.props?.pattern}`;\n}\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 */\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-banner-wrapper',\n templateUrl: 'gio-banner-wrapper.component.html',\n styleUrls: ['gio-banner-wrapper.component.scss'],\n standalone: false,\n})\nexport class GioBannerWrapperComponent extends FieldWrapper {}\n","<!--\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","/*\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 */\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function bannerExtension(field: FormlyFieldConfig) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('gio-with-banner') !== -1)) {\n return;\n }\n\n if (field.props.bannerTitle || field.props.bannerText) {\n // WARNING: 'gio-with-banner' must be placed before field wrappers in order to put banner before mat-form-field if exists\n field.wrappers = ['gio-with-banner', ...(field.wrappers || [])];\n }\n}\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 */\nimport { AfterViewChecked, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { set } from 'lodash';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'gio-fjs-multi-schema-type',\n template: `\n <div class=\"wrapper\">\n @if (props.label) {\n <div class=\"wrapper__title\">{{ props.label }}</div>\n }\n @if (props.description) {\n <p>{{ props.description }}</p>\n }\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n @for (f of field.fieldGroup; track f) {\n <formly-field [field]=\"f\"></formly-field>\n }\n </div>\n `,\n styleUrls: ['./multischema-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsMultiSchemaTypeComponent extends FieldType implements OnInit, OnDestroy, AfterViewChecked {\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n constructor(private readonly cdr: ChangeDetectorRef) {\n super();\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public ngOnInit(): void {\n set(this.field, 'fieldGroup[0].props.appearance', 'fill');\n set(this.field, 'fieldGroup[0].props.label', 'Select option');\n }\n\n public ngAfterViewChecked(): void {\n set(this.field, 'fieldGroup[0].props.disabled', this.formControl.disabled);\n this.cdr.detectChanges();\n }\n}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\n\ntype ToggleProps = FormlyFieldProps;\n\n@Component({\n selector: 'gio-fjs-toggle-type',\n template: `\n <gio-form-slide-toggle>\n <gio-form-label>{{ props.label }}</gio-form-label>\n {{ props.description }}\n <mat-slide-toggle\n gioFormSlideToggle\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n ></mat-slide-toggle>\n </gio-form-slide-toggle>\n `,\n standalone: false,\n})\nexport class GioFjsToggleTypeComponent extends FieldType<FieldTypeConfig<ToggleProps>> {}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\n\nimport { FormHeaderFieldMapper } from '../../gio-form-headers/gio-form-headers.component';\nimport { GioUiTypeConfig } from '../model/GioJsonSchema';\n\ntype HeadersProps = FormlyFieldProps &\n GioUiTypeConfig['uiTypeProps'] & {\n // The key and value names of the output array\n // Default: { keyName: 'name', valueName: 'value' }\n // 📝 Note : For now this config is not editable by json-schema gioConfig. If it becomes\n // necessary it is possible to change the GioUiTypeConfig to pass this config.\n outputConfig: {\n keyName: string;\n valueName: string;\n };\n };\n\n@Component({\n selector: 'gio-fjs-headers-type',\n template: `\n <div class=\"wrapper\">\n <div class=\"wrapper__header\">\n <div class=\"wrapper__header__text\">\n @if (props.label) {\n <div class=\"wrapper__header__text__title\">{{ props.label }}</div>\n }\n @if (props.description) {\n <p>{{ props.description }}</p>\n }\n </div>\n <div class=\"wrapper__header__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\" (click)=\"collapse = !collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\" />\n </button>\n </div>\n </div>\n @if (showError && formControl.errors) {\n <formly-validation-message [field]=\"field\" />\n }\n @if (!collapse) {\n <div class=\"wrapper__rows\" [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\">\n <gio-form-headers\n [headerFieldMapper]=\"outputConfig\"\n [config]=\"{ elColumns: props?.elColumns ?? 'neither' }\"\n [formControl]=\"formControl\"\n />\n </div>\n }\n </div>\n `,\n styleUrls: ['./headers-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsHeadersTypeComponent extends FieldType<FieldTypeConfig<HeadersProps>> {\n public override defaultOptions?: Partial<FieldTypeConfig<HeadersProps>> | undefined = {\n props: {\n outputConfig: this.outputConfig,\n elColumns: 'neither',\n },\n };\n\n public collapse = false;\n\n public get outputConfig(): FormHeaderFieldMapper {\n return {\n keyName: 'name',\n valueName: 'value',\n };\n }\n}\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 */\nimport { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-password-eye-wrapper',\n template: `\n <ng-container #fieldComponent></ng-container>\n\n <ng-template #matSuffix>\n <button mat-icon-button type=\"button\" (click)=\"addonEyeClick($event)\">\n <mat-icon [svgIcon]=\"hide ? 'gio:eye-empty' : 'gio:eye-off'\"></mat-icon>\n </button>\n </ng-template>\n `,\n standalone: false,\n})\nexport class GioPasswordEyeWrapperComponent extends FieldWrapper implements AfterViewInit {\n @ViewChild('matSuffix', { static: true })\n public matSuffix!: TemplateRef<unknown>;\n public hide = true;\n\n public ngAfterViewInit() {\n if (this.matSuffix) {\n this.props.suffix = this.matSuffix;\n }\n }\n\n public addonEyeClick($event: Event) {\n $event.stopPropagation();\n this.hide = !this.hide;\n\n this.props.type = this.hide ? 'password' : 'text';\n }\n}\n\nexport function passwordEyeExtension(field: FormlyFieldConfig) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('gio-password-eye') !== -1)) {\n return;\n }\n\n if (field.props.type === 'password') {\n field.wrappers = [...(field.wrappers || []), 'gio-password-eye'];\n }\n}\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 */\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\n\nimport { MonacoEditorLanguageConfig } from '../../gio-monaco-editor/gio-monaco-editor.component';\n\nexport type GioMonacoEditorConfig = MonacoEditorLanguageConfig;\n\ntype CodeEditorProps = FormlyFieldProps & {\n monacoEditorConfig?: GioMonacoEditorConfig;\n};\n\n@Component({\n selector: 'gio-fjs-code-editor-type',\n template: `\n <gio-monaco-editor\n gioMonacoEditorFormField\n ngDefaultControl\n [formControl]=\"formControl\"\n [languageConfig]=\"languageConfig\"\n ></gio-monaco-editor>\n `,\n styles: [\n `\n gio-monaco-editor {\n min-height: 38px;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFjsCodeEditorTypeComponent extends FieldType<FieldTypeConfig<CodeEditorProps>> implements OnInit {\n public languageConfig?: MonacoEditorLanguageConfig;\n\n public ngOnInit(): void {\n this.languageConfig = this.props.monacoEditorConfig;\n }\n}\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 */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\n\ntype CronProps = FormlyFieldProps;\n\n@Component({\n selector: 'gio-fjs-code-editor-type',\n template: `\n <gio-form-cron [formControl]=\"formControl\">\n @if (props.label) {\n <gio-form-cron-label>{{ props.label }}</gio-form-cron-label>\n }\n @if (props.description) {\n <gio-form-cron-hint>{{ props.description }}</gio-form-cron-hint>\n }\n </gio-form-cron>\n `,\n styles: [``],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFjsCronTypeComponent extends FieldType<FieldTypeConfig<CronProps>> {}\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 */\nimport { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-el-wrapper-wrapper',\n template: `\n <ng-container #fieldComponent></ng-container>\n\n <ng-template #matSuffix>\n <gio-el-assistant />\n </ng-template>\n `,\n standalone: false,\n})\nexport class GioElHelperWrapperComponent extends FieldWrapper implements AfterViewInit {\n @ViewChild('matSuffix', { static: true })\n public matSuffix!: TemplateRef<unknown>;\n public hide = true;\n\n public ngAfterViewInit() {\n if (this.matSuffix) {\n this.props.suffix = this.matSuffix;\n }\n }\n}\n\nexport function elHelpExtension(field: FormlyFieldConfig) {\n if (field.props?.attributes?.el) {\n field.wrappers = [...(field.wrappers || []), 'gio-el-help'];\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyMaterialModule } from '@ngx-formly/material';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\nimport { GioFormSlideToggleModule } from '../gio-form-slide-toggle/gio-form-slide-toggle.module';\nimport { GioFormHeadersModule } from '../gio-form-headers/gio-form-headers.module';\nimport { GioMonacoEditorModule } from '../gio-monaco-editor/gio-monaco-editor.module';\nimport { GioFormCronModule } from '../gio-form-cron/gio-form-cron.module';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../gio-popover';\nimport { GioElPromptComponent } from '../gio-el/gio-el-prompt/gio-el-prompt.component';\nimport { GioElAssistantComponent } from '../gio-el';\n\nimport { GioFjsNullTypeComponent } from './type-component/null-type.component';\nimport { GioFjsObjectTypeComponent } from './type-component/object-type.component';\nimport { GioFjsArrayTypeComponent } from './type-component/array-type.component';\nimport {\n typeValidationMessage,\n minLengthValidationMessage,\n maxLengthValidationMessage,\n minValidationMessage,\n maxValidationMessage,\n multipleOfValidationMessage,\n exclusiveMinimumValidationMessage,\n exclusiveMaximumValidationMessage,\n minItemsValidationMessage,\n maxItemsValidationMessage,\n constValidationMessage,\n patternValidationMessage,\n} from './util/validation-message.util';\nimport { GioFormJsonSchemaComponent } from './gio-form-json-schema.component';\nimport { GioBannerWrapperComponent as GioBannerWrapperComponent } from './wrappers/gio-banner-wrapper.component';\nimport { bannerExtension } from './wrappers/gio-banner-extension';\nimport { GioFjsMultiSchemaTypeComponent } from './type-component/multischema-type.component';\nimport { GioFormlyJsonSchemaService } from './gio-formly-json-schema.service';\nimport { GioFjsToggleTypeComponent } from './type-component/toggle-type.component';\nimport { GioFjsHeadersTypeComponent } from './type-component/headers-type.component';\nimport { GioPasswordEyeWrapperComponent, passwordEyeExtension } from './wrappers/gio-password-eye.component';\nimport { GioFjsCodeEditorTypeComponent } from './type-component/code-editor-type.component';\nimport { GioFjsCronTypeComponent } from './type-component/cron-type.component';\nimport { elHelpExtension, GioElHelperWrapperComponent } from './wrappers/gio-el-helper-wrapper.component';\n\n@NgModule({\n declarations: [\n GioFormJsonSchemaComponent,\n GioFjsNullTypeComponent,\n GioFjsObjectTypeComponent,\n GioFjsMultiSchemaTypeComponent,\n GioFjsArrayTypeComponent,\n GioFjsToggleTypeComponent,\n GioFjsHeadersTypeComponent,\n GioFjsCodeEditorTypeComponent,\n GioFjsCronTypeComponent,\n GioBannerWrapperComponent,\n GioPasswordEyeWrapperComponent,\n GioElHelperWrapperComponent,\n ],\n imports: [\n CommonModule,\n A11yModule,\n ReactiveFormsModule,\n\n FormlyModule.forRoot({\n validationMessages: [\n { name: 'required', message: 'This field is required' },\n { name: 'type', message: typeValidationMessage },\n { name: 'minLength', message: minLengthValidationMessage },\n { name: 'maxLength', message: maxLengthValidationMessage },\n { name: 'min', message: minValidationMessage },\n { name: 'max', message: maxValidationMessage },\n { name: 'multipleOf', message: multipleOfValidationMessage },\n { name: 'exclusiveMinimum', message: exclusiveMinimumValidationMessage },\n { name: 'exclusiveMaximum', message: exclusiveMaximumValidationMessage },\n { name: 'minItems', message: minItemsValidationMessage },\n { name: 'maxItems', message: maxItemsValidationMessage },\n { name: 'uniqueItems', message: 'Should NOT have duplicate items' },\n { name: 'const', message: constValidationMessage },\n { name: 'pattern', message: patternValidationMessage },\n ],\n wrappers: [\n { name: 'gio-with-banner', component: GioBannerWrapperComponent },\n { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },\n { name: 'gio-el-help', component: GioElHelperWrapperComponent },\n ],\n types: [\n { name: 'null', component: GioFjsNullTypeComponent, wrappers: ['form-field'] },\n { name: 'array', component: GioFjsArrayTypeComponent },\n { name: 'object', component: GioFjsObjectTypeComponent },\n { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },\n {\n name: 'toggle',\n component: GioFjsToggleTypeComponent,\n },\n {\n name: 'gio-code-editor',\n component: GioFjsCodeEditorTypeComponent,\n wrappers: ['form-field'],\n },\n {\n name: 'gio-headers-array',\n component: GioFjsHeadersTypeComponent,\n },\n {\n name: 'gio-cron',\n component: GioFjsCronTypeComponent,\n },\n ],\n extensions: [\n { name: 'banner', extension: { onPopulate: bannerExtension } },\n { name: 'password-eye', extension: { onPopulate: passwordEyeExtension } },\n { name: 'el-help', extension: { onPopulate: elHelpExtension } },\n ],\n extras: {\n checkExpressionOn: 'changeDetectionCheck',\n },\n }),\n FormlyMaterialModule,\n\n MatInputModule,\n GioIconsModule,\n GioFormSlideToggleModule,\n GioFormHeadersModule,\n GioMonacoEditorModule.forRoot({\n baseUrl: '.',\n }),\n GioFormCronModule,\n GioPopoverComponent,\n PopoverTriggerDirective,\n GioElPromptComponent,\n\n MatSlideToggleModule,\n MatButtonModule,\n GioElAssistantComponent,\n ],\n exports: [GioFormJsonSchemaComponent, FormlyModule],\n providers: [GioFormlyJsonSchemaService],\n})\nexport class GioFormJsonSchemaModule {}\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\nimport { JSONSchema7 } from 'json-schema';\n\nimport { GioMonacoEditorConfig } from '../type-component/code-editor-type.component';\n\n/**\n * GioConfig is used to add some custom configuration to the JSONSchema7\n * ⚠️ Keep updated with the GioJsonSchema.json to have the same interface ⚠️\n */\nexport interface GioConfig extends GioUiTypeConfig {\n displayIf?: GioIfConfig;\n disableIf?: GioIfConfig;\n banner?: GioBannerConfig;\n uniqueItemProperties?: string[];\n monacoEditorConfig?: GioMonacoEditorConfig;\n enumLabelMap?: Record<string, string>;\n uiBorder?: 'none' | 'full';\n el?: boolean;\n}\n\ntype GioBannerConfig =\n | {\n title: string;\n text: string;\n }\n | {\n text: string;\n };\n\nexport type ElColumns = 'key' | 'value' | 'both' | 'neither';\n/**\n * Used to override the default formly type. It's useful when we want to use a custom component.\n */\nexport type GioUiTypeConfig = {\n uiType?: 'gio-headers-array' | string;\n uiTypeProps?: {\n elColumns?: ElColumns;\n } & Record<string, unknown>;\n};\n\n/*\n * Condition\n * The condition is a JSON object with the context key and the value to compare.\n * Example: { $eq: { 'field': 'value' } }\n */\nexport type GioIfConfig = {\n $eq: Record<string, string | number | boolean | Array<string | number | boolean>>;\n};\n\n/**\n * Override the JSONSchema7 interface to add gioConfig\n * Use this way because the JSONSchema7 interface is recursive\n * And export with new name `GioJsonSchema` to make it more clear\n */\ndeclare module 'json-schema' {\n interface JSONSchema7 {\n gioConfig?: GioConfig;\n deprecated?: boolean;\n }\n}\n\nexport type GioJsonSchema = JSONSchema7;\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, HostListener, Optional, ElementRef } from '@angular/core';\nimport { FormGroupDirective } from '@angular/forms';\n\nimport { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from './gio-form-focus-first-invalid-ignore.directive';\n\n@Directive()\nexport class GioBaseFormFocusInvalidDirective {\n constructor(\n private readonly hostElement: ElementRef,\n @Optional() protected readonly formGroupDirective: FormGroupDirective,\n ) {}\n\n protected focusOnFirstInvalid() {\n const selector = '.ng-invalid[formControlName],input.ng-invalid,mat-select.ng-invalid,textarea.ng-invalid,.gio-ng-invalid';\n\n try {\n // Mark all controls as touched to display errors\n if (this.formGroupDirective) {\n this.formGroupDirective.control.markAllAsTouched();\n this.formGroupDirective.control.updateValueAndValidity();\n }\n\n const parentForm = (this.hostElement.nativeElement as Element).closest('form');\n const invalidFieldElements = parentForm?.querySelectorAll<HTMLElement>(selector);\n const invalidControl = this.getFirstInvalidControl(invalidFieldElements);\n\n if (invalidControl) {\n invalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });\n invalidControl.focus({ preventScroll: true });\n }\n } catch (error) {\n // Best effort. If the focus doesn't work it's not very important\n // 🧪 Useful to avoid som error in tests\n }\n }\n\n private getFirstInvalidControl(invalidFieldElements: NodeListOf<HTMLElement> | undefined, index = 0): HTMLElement | undefined {\n let invalidControl = invalidFieldElements?.item(index);\n const hasIgnoreAttribute = (invalidControl as HTMLInputElement)?.attributes?.getNamedItem(GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR);\n if (hasIgnoreAttribute) {\n invalidControl = this.getFirstInvalidControl(invalidFieldElements, index + 1);\n }\n return invalidControl;\n }\n}\n\n@Directive({\n selector: 'form[gioFormFocusInvalid]',\n standalone: false,\n})\nexport class GioFormFocusInvalidFormDirective extends GioBaseFormFocusInvalidDirective {\n @HostListener('submit')\n public onFormSubmit() {\n this.focusOnFirstInvalid();\n }\n}\n\n@Directive({\n selector: 'button[gioFormFocusInvalid]',\n standalone: false,\n})\nexport class GioButtonFocusInvalidButtonDirective extends GioBaseFormFocusInvalidDirective {\n @HostListener('click')\n public onClick() {\n this.focusOnFirstInvalid();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\n\nimport { GioFormFocusInvalidIgnoreDirective } from './gio-form-focus-first-invalid-ignore.directive';\nimport { GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective } from './gio-form-focus-first-invalid.directive';\n\n@NgModule({\n declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],\n exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],\n})\nexport class GioFormFocusInvalidModule {}\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 */\nimport { Component } from '@angular/core';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n/**\n * This component is used to test the GioMonacoEditorComponent.\n * This component simulates monaco editor with a simple input.\n */\n@Component({\n selector: 'gio-monaco-editor',\n template: '<input type=\"text\" [value]=\"getValue\" [disabled]=\"readOnly\" (input)=\"changeValue($any($event).target?.value)\" />',\n standalone: false,\n})\nexport class GioMonacoEditorTestingComponent extends GioMonacoEditorComponent {\n public get getValue(): string {\n return this.value;\n }\n\n public changeValue(value: string) {\n this._onTouched();\n this._onChange(value);\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, LocatorFactory } from '@angular/cdk/testing';\nimport { TestBed } from '@angular/core/testing';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\nimport { GioMonacoEditorModule } from './gio-monaco-editor.module';\nimport { GioMonacoEditorTestingComponent } from './gio-monaco-editor.testing.component';\n\nexport const ConfigureTestingGioMonacoEditor = () => {\n // Hack to replace the default gio-monaco-editor component with fake one for testing purpose.\n try {\n TestBed.overrideModule(GioMonacoEditorModule, {\n remove: {\n declarations: [GioMonacoEditorComponent],\n exports: [GioMonacoEditorComponent],\n },\n add: {\n declarations: [GioMonacoEditorTestingComponent],\n exports: [GioMonacoEditorTestingComponent],\n },\n });\n } catch (e) {\n // Do nothing\n }\n};\nConfigureTestingGioMonacoEditor();\n\nexport type GioMonacoEditorHarnessFilters = BaseHarnessFilters;\n\nexport class GioMonacoEditorHarness extends ComponentHarness {\n public static hostSelector = 'gio-monaco-editor';\n\n constructor(locatorFactory: LocatorFactory) {\n super(locatorFactory);\n }\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioMonacoEditorHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioMonacoEditorHarnessFilters = {}): HarnessPredicate<GioMonacoEditorHarness> {\n return new HarnessPredicate(GioMonacoEditorHarness, options);\n }\n\n protected getInputEl = this.locatorFor('input');\n\n public async setValue(value: string): Promise<void> {\n const inputEl = await this.getInputEl();\n await inputEl.clear();\n await inputEl.sendKeys(value);\n }\n\n public async getValue(): Promise<string> {\n const inputEl = await this.getInputEl();\n return inputEl.getProperty('value');\n }\n\n public async isDisabled(): Promise<boolean> {\n const inputEl = await this.getInputEl();\n return inputEl.getProperty('disabled');\n }\n}\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 */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, delay, shareReplay, switchMap } from 'rxjs/operators';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Prism: any | undefined;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioPrismJsService {\n public loadPrismJs(): Observable<void> {\n // First load PrismJs\n return this.loadPrimeJsCore().pipe(\n // Then load PrismJs components\n switchMap(() => this.loadPrismJsComponent('json')),\n // Small delay to ensure PrismJs take language into account\n delay(100),\n // If already loaded, we don't want to load it again\n shareReplay(1),\n // Ignore error\n catchError(() => of(undefined)),\n );\n }\n\n private loadPrimeJsCore(): Observable<void> {\n return new Observable<void>(observer => {\n const onGotPrismJs = () => {\n observer.next();\n observer.complete();\n };\n\n if (!window.Prism) {\n const loaderPrismjs = document.createElement('script');\n loaderPrismjs.type = 'text/javascript';\n loaderPrismjs.src = 'assets/prismjs/prism.js';\n loaderPrismjs.addEventListener('load', onGotPrismJs);\n loaderPrismjs.addEventListener('error', err => observer.error(err));\n document.body.appendChild(loaderPrismjs);\n } else {\n onGotPrismJs();\n }\n });\n }\n\n private loadPrismJsComponent(name: string): Observable<void> {\n return new Observable<void>(observer => {\n const onGotPrismJsComponent = () => {\n observer.next();\n observer.complete();\n };\n\n if (!window.Prism.languages[name]) {\n const loaderPrismjsJson = document.createElement('script');\n loaderPrismjsJson.type = 'text/javascript';\n loaderPrismjsJson.src = `assets/prismjs/components/prism-${name}.js`;\n loaderPrismjsJson.addEventListener('load', onGotPrismJsComponent);\n loaderPrismjsJson.addEventListener('error', err => observer.error(err));\n document.body.appendChild(loaderPrismjsJson);\n } else {\n onGotPrismJsComponent();\n }\n });\n }\n}\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 */\nexport const GIO_DIALOG_WIDTH = {\n SMALL: '440px',\n MEDIUM: '600px',\n LARGE: '1240px',\n};\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n standalone: false,\n})\nexport class SafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(value: string | undefined, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (!value) {\n return '';\n }\n switch (type) {\n // No Sonar because the bypass is deliberate and should only be used with safe data\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value); // NOSONAR\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value); // NOSONAR\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value); // NOSONAR\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value); // NOSONAR\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value); // NOSONAR\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\n\nimport { SafePipe } from './safe.pipe';\n\n@NgModule({\n imports: [],\n declarations: [SafePipe],\n exports: [SafePipe],\n})\nexport class GioSafePipeModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FeatureInfo } from '../gio-license.service';\n\nexport type GioLicenseDialogData = {\n featureInfo: FeatureInfo;\n trialURL: string;\n};\n\n@Component({\n selector: 'gio-license-dialog',\n templateUrl: './gio-license-dialog.component.html',\n styleUrls: ['./gio-license-dialog.component.scss'],\n standalone: false,\n})\nexport class GioLicenseDialogComponent {\n public featureInfo: FeatureInfo;\n public trialURL: string;\n\n constructor(\n private readonly dialogRef: MatDialogRef<GioLicenseDialogData>,\n @Inject(MAT_DIALOG_DATA) dialogData: GioLicenseDialogData,\n ) {\n this.featureInfo = dialogData?.featureInfo;\n this.trialURL = dialogData?.trialURL;\n }\n\n public onClose() {\n this.dialogRef.close();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-license-dialog__title\">\n <mat-icon class=\"gio-license-dialog__title__cancel\"></mat-icon>\n <button mat-icon-button [attr.aria-label]=\"'Close'\" (click)=\"onClose()\">\n <mat-icon class=\"gio-license-dialog__title__cancel\" svgIcon=\"gio:cancel\"> </mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"gio-license-dialog__content\">\n <img class=\"gio-license-dialog__content__image\" [src]=\"featureInfo.image\" [alt]=\"featureInfo.title || 'Unlock Gravitee Enterprise'\" />\n <h2 class=\"gio-license-dialog__content__title\" [innerHTML]=\"featureInfo.title || 'Unlock Gravitee Enterprise' | safe: 'html'\"></h2>\n <div class=\"gio-license-dialog__content__description\" [innerHTML]=\"featureInfo.description | safe: 'html'\"></div>\n <div class=\"gio-license-dialog__content__action\">\n <a class=\"gio-license-dialog__content__action__button\" mat-stroked-button color=\"primary\" target=\"_blank\" [href]=\"trialURL\">\n {{ featureInfo.trialButtonLabel || 'Request an enterprise license' }} <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </a>\n @if (!featureInfo.hideDays) {\n <div class=\"gio-license-dialog__content__action__info\">14 days trial</div>\n }\n </div>\n</mat-dialog-content>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { has, isEmpty } from 'lodash';\n\nimport { GioLicenseDialogComponent, GioLicenseDialogData } from './gio-license-dialog/gio-license-dialog.component';\n\nexport type License = {\n tier: string;\n packs: Array<string>;\n features: Array<string>;\n expiresAt?: Date;\n scope?: string;\n isExpired?: boolean;\n};\n\nexport interface LicenseConfiguration {\n resourceURL: string;\n featureInfoData: Record<string, FeatureInfo>;\n trialResourceURL: string;\n utmSource?: string;\n utmCampaign?: string;\n}\n\nexport interface UTM {\n source: string;\n medium: string;\n campaign: string;\n}\n\nexport type LicenseOptionsBase = {\n // We used feature name as utm_medium\n feature?: string;\n // Optional, useful if need a context in utm campaign (utm_content)\n context?: string;\n};\n\nexport type LicensePluginOptions = LicenseOptionsBase & {\n // When is deployed, the plugin is included in license\n deployed: boolean;\n};\n\nexport type LicenseOptions = LicenseOptionsBase | LicensePluginOptions;\n\nexport const isLicensePluginOptions = (licenseOptions: LicenseOptions): licenseOptions is LicensePluginOptions =>\n has(licenseOptions, 'deployed');\n\nexport interface FeatureInfo {\n image?: string;\n description?: string;\n title?: string;\n trialButtonLabel?: string;\n hideDays?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLicenseService {\n private readonly loadLicense$: Observable<License>;\n\n constructor(\n private readonly http: HttpClient,\n @Inject('LicenseConfiguration')\n private readonly licenseConfiguration: LicenseConfiguration,\n private readonly matDialog: MatDialog,\n ) {\n this.loadLicense$ = this.http.get<License>(licenseConfiguration.resourceURL).pipe(shareReplay(1));\n }\n\n public getLicense$(): Observable<License> {\n return this.loadLicense$;\n }\n\n public isMissingFeature$(feature: string | undefined): Observable<boolean> {\n if (feature == null) {\n return of(false);\n }\n return this.isExpired$().pipe(\n switchMap(isExpired => {\n if (isExpired) {\n return of(isExpired);\n }\n return this.getLicense$().pipe(map(license => license == null || !license.features.some(feat => feat === feature)));\n }),\n );\n }\n\n public hasAllFeatures$(licenseOptions: LicenseOptions[] | undefined): Observable<boolean> {\n if (!licenseOptions || isEmpty(licenseOptions)) {\n return of(true);\n }\n return this.isExpired$().pipe(\n switchMap(isExpired => {\n const featuresDefined = licenseOptions.some(o => !!o.feature);\n if (isExpired && featuresDefined) {\n return of(false);\n }\n return this.getLicense$().pipe(\n map(license => license != null && licenseOptions.every(o => license.features.some(feat => feat === o.feature))),\n );\n }),\n );\n }\n\n public getFeatureInfo(licenseOptions: LicenseOptions): FeatureInfo {\n if (!licenseOptions.feature) {\n throw new Error(`feature is undefined`);\n }\n const featureInfo = this.licenseConfiguration.featureInfoData[licenseOptions.feature];\n if (!featureInfo) {\n throw new Error(\n `Unknown Feature value ${licenseOptions.feature}. Expected one of ${Object.keys(this.licenseConfiguration.featureInfoData)}`,\n );\n }\n return featureInfo;\n }\n\n public getTrialURL(licenseOptions: LicenseOptions): string {\n if (!licenseOptions.feature) {\n throw new Error(`feature is undefined`);\n }\n const urlParams =\n this.licenseConfiguration.utmSource || this.licenseConfiguration.utmCampaign\n ? `?utm_source=${this.licenseConfiguration.utmSource}&utm_medium=${licenseOptions.feature}&utm_campaign=${this.licenseConfiguration.utmCampaign}`\n : '';\n const context = urlParams.length > 0 && licenseOptions.context ? `&utm_content=${licenseOptions.context}` : '';\n return `${this.licenseConfiguration.trialResourceURL}${urlParams}${context}`;\n }\n\n public isOEM$(): Observable<boolean> {\n return this.getLicense$().pipe(map(license => license !== null && license.features.includes('oem-customization')));\n }\n\n public openDialog(licenseOptions: LicenseOptions, event?: Event) {\n event?.stopPropagation();\n event?.preventDefault();\n const featureInfo = this.getFeatureInfo(licenseOptions);\n const trialURL = this.getTrialURL(licenseOptions);\n return this.matDialog\n .open<GioLicenseDialogComponent, GioLicenseDialogData, boolean>(GioLicenseDialogComponent, {\n data: {\n featureInfo,\n trialURL,\n },\n role: 'alertdialog',\n id: 'gioLicenseDialog',\n })\n .afterClosed()\n .subscribe();\n }\n\n public getExpiresAt$(): Observable<Date | undefined> {\n return this.getLicense$().pipe(map(license => (license.expiresAt ? new Date(license.expiresAt) : undefined)));\n }\n\n public isExpired$(): Observable<boolean> {\n return this.getLicense$().pipe(map(license => license?.isExpired === true));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { filter, map, takeUntil, tap } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { of, Subject } from 'rxjs';\nimport { isNil } from 'lodash';\n\nimport { FeatureInfo, GioLicenseService, isLicensePluginOptions, LicenseOptions, LicensePluginOptions } from './gio-license.service';\nimport { GioLicenseDialogComponent, GioLicenseDialogData } from './gio-license-dialog/gio-license-dialog.component';\n\n@Directive({\n selector: '[gioLicense]',\n standalone: false,\n})\nexport class GioLicenseDirective implements OnInit, OnDestroy {\n /**\n * The license to check. Must be defined when the directive is initialised, otherwise the value will not be taken into account.\n */\n @Input()\n public gioLicense?: LicenseOptions | LicensePluginOptions;\n\n private featureInfo: FeatureInfo = {};\n private trialURL = '';\n\n private unsubscribe$: Subject<boolean> = new Subject<boolean>();\n private onClick = this.click.bind(this);\n\n constructor(\n private readonly licenseService: GioLicenseService,\n private readonly matDialog: MatDialog,\n private elRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n const gioLicense = this.gioLicense;\n\n // If the license is not defined, we do not need to check anything\n if (isNil(gioLicense)) {\n return;\n }\n\n this.isNotAllowed$(gioLicense)\n .pipe(\n tap(() => {\n this.elRef.nativeElement.removeEventListener('click', this.onClick, true);\n }),\n filter(notAllowed => notAllowed),\n map(() => this.licenseService.getFeatureInfo(gioLicense)),\n tap(featureInfo => {\n this.featureInfo = featureInfo;\n this.elRef.nativeElement.addEventListener('click', this.onClick, true);\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n if (gioLicense.feature) {\n this.trialURL = this.licenseService.getTrialURL(gioLicense);\n }\n }\n\n private isNotAllowed$(gioLicense: LicenseOptions | LicensePluginOptions) {\n if (isLicensePluginOptions(gioLicense)) {\n return of(!gioLicense.deployed);\n }\n return this.licenseService.isMissingFeature$(gioLicense.feature);\n }\n\n public ngOnDestroy(): void {\n this.elRef.nativeElement.removeEventListener('click', this.onClick, true);\n this.unsubscribe$.next(false);\n this.unsubscribe$.unsubscribe();\n }\n\n private click($event: PointerEvent) {\n $event.preventDefault();\n $event.stopPropagation();\n\n this.matDialog\n .open<GioLicenseDialogComponent, GioLicenseDialogData, boolean>(GioLicenseDialogComponent, {\n data: {\n featureInfo: this.featureInfo,\n trialURL: this.trialURL,\n },\n role: 'alertdialog',\n id: 'gioLicenseDialog',\n })\n .afterClosed()\n .subscribe();\n return false;\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioSafePipeModule } from '../../gio-pipe/gio.pipe.module';\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioLicenseDialogComponent } from './gio-license-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, GioIconsModule, MatButtonModule, GioSafePipeModule],\n declarations: [GioLicenseDialogComponent],\n exports: [GioLicenseDialogComponent],\n})\nexport class GioLicenseDialogModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { GioLicenseDirective } from './gio-license.directive';\nimport { GioLicenseDialogModule } from './gio-license-dialog/gio-license-dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, GioLicenseDialogModule],\n declarations: [GioLicenseDirective],\n exports: [GioLicenseDirective],\n})\nexport class GioLicenseModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { of } from 'rxjs';\n\nimport { GioLicenseService, LicenseConfiguration } from './gio-license.service';\n\nexport const LICENSE_CONFIGURATION_TESTING: LicenseConfiguration = {\n resourceURL: 'https://url.test:3000/license',\n trialResourceURL: 'https://url.test:3000/trial',\n utmSource: 'oss_utm_source_test',\n utmCampaign: 'oss_utm_campaign_test',\n featureInfoData: {\n foobar: {\n image: 'assets/gio-icons.svg',\n description: 'Foobar feature description',\n title: 'FOOBAR',\n },\n },\n};\nexport const OEM_LICENSE_CONFIGURATION_TESTING: LicenseConfiguration = {\n resourceURL: 'https://oem.test:3000/license',\n trialResourceURL: 'https://oem.test:3000/trial',\n featureInfoData: {\n foobar: {\n image: 'assets/gio-icons.svg',\n description: 'Foobar feature description',\n title: 'FOOBAR',\n },\n },\n};\n\n@NgModule({\n imports: [],\n providers: [\n {\n provide: 'LicenseConfiguration',\n useValue: LICENSE_CONFIGURATION_TESTING,\n },\n {\n provide: GioLicenseService,\n useValue: {\n isMissingFeature$: () => of(true),\n getFeatureInfo: () => ({}),\n getTrialURL: () => '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n openDialog: () => {},\n },\n },\n ],\n})\nexport class GioLicenseTestingModule {\n public static with(license: boolean) {\n return {\n ngModule: GioLicenseTestingModule,\n providers: [\n {\n provide: 'LicenseConfiguration',\n useValue: LICENSE_CONFIGURATION_TESTING,\n },\n {\n provide: GioLicenseService,\n useValue: {\n isMissingFeature$: () => of(!license),\n getFeatureInfo: () => ({}),\n getTrialURL: () => '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n openDialog: () => {},\n },\n },\n ],\n };\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'gio-license-expiration-notification',\n templateUrl: './gio-license-expiration-notification.component.html',\n styleUrls: ['./gio-license-expiration-notification.component.scss'],\n standalone: false,\n})\nexport class GioLicenseExpirationNotificationComponent implements OnInit, OnChanges {\n @Input()\n public expirationDate: Date | undefined;\n\n @Input()\n public showCallToAction = true;\n\n @Input()\n public callToActionMessage: string | undefined;\n\n @Input()\n public link: string | undefined;\n\n @Input()\n public inError = false;\n\n public title = '';\n public daysRemaining = 0;\n public statusColor = 'blue';\n\n public ngOnInit(): void {\n if (!this.expirationDate) {\n return;\n }\n\n if (this.inError) {\n this.title = \"There's an issue with your license\";\n return;\n }\n\n const date = new Date();\n const timeRemaining = this.transformDateWithoutHours(this.expirationDate) - this.transformDateWithoutHours(date);\n this.daysRemaining = Math.round(timeRemaining / (1000 * 3600 * 24));\n\n if (this.expirationDate.getTime() - date.getTime() < 0) {\n this.title = 'Your license has expired';\n this.statusColor = 'red';\n } else if (this.daysRemaining === 0) {\n this.title = `Your license will expire today`;\n this.statusColor = 'orange';\n } else {\n this.title = `Your license will expire in ${this.daysRemaining} day${this.daysRemaining === 1 ? '' : 's'}`;\n this.statusColor = this.daysRemaining > 5 ? 'blue' : 'orange';\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.expirationDate) {\n this.ngOnInit();\n }\n }\n\n private transformDateWithoutHours(date: Date): number {\n return new Date(date.toDateString()).valueOf();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n@if (expirationDate && daysRemaining <= 30) {\n <div class=\"status\" rel=\"noopener\">\n <div [ngClass]=\"'status__title ' + statusColor\">\n <div class=\"status__title__text\">\n {{ title }}\n <img src=\"assets/license-expiration-notification-background.svg\" />\n </div>\n </div>\n @if (showCallToAction) {\n <a class=\"status__action\" [href]=\"link ?? 'https://www.gravitee.io/contact-us-licence'\" target=\"_blank\">\n <div class=\"status__action__text\">{{ callToActionMessage ?? 'Contact Gravitee' }}</div>\n <mat-icon svgIcon=\"gio:right-circle\" class=\"status__action__icon\"></mat-icon>\n </a>\n }\n </div>\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioLicenseExpirationNotificationComponent } from './gio-license-expiration-notification.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatTooltipModule, GioIconsModule],\n declarations: [GioLicenseExpirationNotificationComponent],\n exports: [GioLicenseExpirationNotificationComponent],\n})\nexport class GioLicenseExpirationNotificationModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\n\nexport class GioLicenseExpirationNotificationHarness extends ComponentHarness {\n public static hostSelector = 'gio-license-expiration-notification';\n\n protected getTitleContainer = this.locatorFor('.status__title');\n protected getTitleMessage = this.locatorFor('.status__title__text');\n protected getCallToActionMessage = this.locatorFor('.status__action__text');\n protected getCallToActionLink = this.locatorFor('.status__action');\n\n public async getTitleText(): Promise<string> {\n return this.getTitleMessage().then(el => el.text());\n }\n\n public async isCallToActionVisible(): Promise<boolean> {\n return this.getCallToActionLink()\n .then(_ => true)\n .catch(_ => false);\n }\n\n public async getCallToActionText(): Promise<string> {\n return this.getCallToActionMessage().then(el => el.text());\n }\n\n public async getLink(): Promise<string | null> {\n return this.getCallToActionLink().then(el => el.getAttribute('href'));\n }\n\n public async isColor(color: string): Promise<boolean> {\n return this.getTitleContainer().then(el => el.hasClass(color));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\n\nexport type GioFormCronHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormCronHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-cron';\n\n protected getModeToggleGroup = this.locatorFor(MatButtonToggleGroupHarness.with({ selector: '[formControlName=\"mode\"]' }));\n\n protected getCustomExpressionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"customExpression\"]' }));\n /**\n * Gets a `HarnessPredicate` that can be used to search for this harness.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormCronHarnessFilters = {}): HarnessPredicate<GioFormCronHarness> {\n return new HarnessPredicate(GioFormCronHarness, options);\n }\n\n public async getMode(): Promise<string | null> {\n const mode = await this.getModeToggleGroup();\n\n const selected = await (await mode.getToggles({ checked: true }))[0]?.getText();\n\n if (!selected) {\n return null;\n }\n return selected;\n }\n\n public async setMode(mode: string): Promise<void> {\n const modeToggle = await this.getModeToggleGroup();\n await (await modeToggle.getToggles({ text: mode }))[0]?.check();\n }\n\n public async clear(): Promise<void> {\n const clearButton = await this.locatorForOptional('[aria-label=\"Clear\"]')();\n await clearButton?.click();\n }\n\n public async getValue(): Promise<string | null> {\n if ((await this.getMode()) === 'Custom') {\n const input = await this.getCustomExpressionInput();\n return input.getValue();\n }\n const value = await this.locatorForOptional('.preview__value')();\n\n return value?.text() ?? null;\n }\n\n public async setCustomValue(value: string): Promise<void> {\n if ((await this.getMode()) !== 'Custom') {\n await this.setMode('Custom');\n }\n\n const input = await this.getCustomExpressionInput();\n await input.setValue(value);\n }\n\n public async isDisabled(): Promise<boolean> {\n const mode = await this.getModeToggleGroup();\n return mode.isDisabled();\n }\n\n public async hasError(): Promise<boolean> {\n const host = await this.host();\n const attribute = await host.getAttribute('class');\n const error = attribute?.includes('ng-invalid');\n\n return error ?? false;\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-form-selection-inline-card',\n template: `\n <div matRipple [matRippleDisabled]=\"_disabled\" class=\"card\" [class.selected]=\"selected\" [class.disabled]=\"_disabled\">\n <span class=\"selection-icon\">\n @if (lock) {\n <mat-icon class=\"selection-icon__lock-icon\" svgIcon=\"gio:lock\"></mat-icon>\n }\n <mat-icon class=\"selection-icon__radio-icon\">{{ selected ? 'radio_button_checked' : 'radio_button_unchecked' }}</mat-icon>\n </span>\n\n <div class=\"card__content\"><ng-content></ng-content></div>\n </div>\n `,\n styleUrls: ['./gio-form-selection-inline-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardComponent {\n @Input()\n public value?: string;\n\n @Input()\n public lock: boolean = false;\n\n @Input()\n public disabled: boolean = false;\n\n @HostBinding('class.disabled')\n public get _disabled() {\n return this.disabled || this._parendDisabled || this.lock;\n }\n\n @HostBinding('class.selected')\n public selected = false;\n\n public _parendDisabled = false;\n\n public onSelectFn?: (value?: string) => void;\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n @HostListener('click')\n public onSelectCard() {\n if (!this._disabled && !this.lock) {\n this.selected = !this.selected;\n\n if (this.onSelectFn) {\n this.onSelectFn(this.value);\n }\n }\n }\n\n public _markForCheck() {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this.changeDetector.markForCheck();\n this.changeDetector.detectChanges();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n QueryList,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { GioFormSelectionInlineCardComponent } from './gio-form-selection-inline-card.component';\n\n@Component({\n selector: 'gio-form-selection-inline',\n templateUrl: './gio-form-selection-inline.component.html',\n styleUrls: ['./gio-form-selection-inline.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GioFormSelectionInlineComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormSelectionInlineComponent implements ControlValueAccessor, AfterContentInit {\n @ContentChildren(forwardRef(() => GioFormSelectionInlineCardComponent), { descendants: true })\n private selectCardsList?: QueryList<GioFormSelectionInlineCardComponent>;\n\n public selection?: string;\n\n public disabled = false;\n\n private _onChange: (value?: string) => void = () => ({});\n\n private _onTouched: () => void = () => ({});\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n public ngAfterContentInit() {\n this.selectCardsList?.forEach(card => {\n card._parendDisabled = this.disabled;\n\n if (card.value === this.selection) {\n card.selected = true;\n\n this.changeDetector.markForCheck();\n }\n\n card.onSelectFn = value => {\n if (!this.disabled) {\n this.updateCardsSelection(value);\n }\n };\n card._markForCheck();\n });\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string): void {\n this.selection = value;\n this.updateCardsSelection(value);\n this.changeDetector.markForCheck();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (value?: string) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n if (this.selectCardsList) {\n this.selectCardsList.forEach(card => {\n card._parendDisabled = this.disabled;\n card._markForCheck();\n });\n }\n this.changeDetector.markForCheck();\n }\n\n private updateCardsSelection(value?: string) {\n if (this.selectCardsList) {\n this.selectCardsList.forEach(card => {\n const newSelectedValue = card.value === value;\n\n if (newSelectedValue !== card.selected) {\n card.selected = card.value === value;\n card._markForCheck();\n }\n });\n\n this.selection = value;\n this._onChange(this.selection);\n this._onTouched();\n }\n }\n}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-content select=\"gio-form-selection-inline-card\"></ng-content>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-form-selection-inline-card-content',\n template: `<div class=\"content\">\n @if (icon) {\n <mat-icon class=\"content__icon\" [svgIcon]=\"icon\"></mat-icon>\n } @else if (img) {\n <img class=\"content__icon\" [src]=\"img\" />\n }\n <div class=\"content__title\">\n <ng-content select=\"gio-card-content-title\"></ng-content>\n </div>\n <div class=\"content__subtitle\">\n <ng-content select=\"gio-card-content-subtitle\"></ng-content>\n </div>\n </div>`,\n styleUrls: ['./gio-form-selection-inline-card-content.component.scss'],\n standalone: false,\n})\nexport class GioFormSelectionInlineCardContentComponent {\n @Input()\n public icon: string | undefined;\n\n @Input()\n public img: string | undefined;\n}\n\n@Component({\n selector: 'gio-card-content-title',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardTitleComponent {}\n\n@Component({\n selector: 'gio-card-content-subtitle',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardSubtitleComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormSelectionInlineCardComponent } from './gio-form-selection-inline-card.component';\nimport { GioFormSelectionInlineComponent } from './gio-form-selection-inline.component';\nimport {\n GioFormSelectionInlineCardContentComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n} from './gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component';\n\n@NgModule({\n imports: [CommonModule, MatCardModule, MatIconModule, MatRippleModule, GioIconsModule],\n declarations: [\n GioFormSelectionInlineComponent,\n GioFormSelectionInlineCardComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n GioFormSelectionInlineCardContentComponent,\n ],\n exports: [\n GioFormSelectionInlineComponent,\n GioFormSelectionInlineCardComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n GioFormSelectionInlineCardContentComponent,\n ],\n})\nexport class GioFormSelectionInlineModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\n\nexport type GioFormSelectionInlineCardHarnessFilters = BaseHarnessFilters & {\n value?: string;\n};\n\nexport class GioFormSelectionInlineCardHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-selection-inline-card';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormSelectionInlineCardHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormSelectionInlineCardHarnessFilters = {}): HarnessPredicate<GioFormSelectionInlineCardHarness> {\n return new HarnessPredicate(GioFormSelectionInlineCardHarness, options).addOption('value', options.value, (harness, value) =>\n HarnessPredicate.stringMatches(harness.getValue(), value),\n );\n }\n\n public async getValue(): Promise<string | null> {\n const host = await this.host();\n // Fallback to keep for Angular 19 compatibility. Can be removed when all projects are on Angular 20+\n const value = (await host.getAttribute('value')) ?? (await host.getAttribute('ng-reflect-value'));\n return value ?? null;\n }\n\n public async isSelected(): Promise<boolean> {\n return (await this.host()).hasClass('selected');\n }\n\n public async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('disabled');\n }\n\n public async getContentText(): Promise<string> {\n const content = await this.locatorFor('.card__content')();\n return content.text();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';\n\nimport { GioFormSelectionInlineCardHarness } from './gio-form-selection-inline-card.harness';\n\nexport type GioFormSelectionInlineHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormSelectionInlineHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-selection-inline';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormSelectionInlineHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormSelectionInlineHarnessFilters = {}): HarnessPredicate<GioFormSelectionInlineHarness> {\n return new HarnessPredicate(GioFormSelectionInlineHarness, options);\n }\n\n protected getCards = this.locatorForAll(GioFormSelectionInlineCardHarness);\n\n protected async getCardByValue(value: string) {\n const primaryLocator = await this.locatorForOptional(`gio-form-selection-inline-card[value=\"${value}\"]`)();\n if (primaryLocator) {\n return primaryLocator;\n }\n\n // Fallback to keep for Angular 19 compatibility. Can be removed when all projects are on Angular 20+\n const secondaryLocator = await this.locatorForOptional(`gio-form-selection-inline-card[ng-reflect-value=\"${value}\"]`)();\n if (secondaryLocator) {\n return secondaryLocator;\n }\n\n throw new Error(`No card found with value or ng-reflect-value \"${value}\"`);\n }\n\n public async getSelectedValue(): Promise<string | undefined> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async row => ({ class: await row.isSelected(), value: await row.getValue() })));\n\n return cardsAttr.find(card => card.class)?.value ?? undefined;\n }\n\n public async getUnselectedValues(): Promise<(string | undefined)[]> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async row => ({ class: await row.isSelected(), value: await row.getValue() })));\n\n return cardsAttr.filter(card => !card.class).map(card => card.value ?? undefined);\n }\n\n public async getSelectionCards(): Promise<\n {\n text: string;\n value: string | undefined;\n selected: boolean;\n disabled: boolean;\n }[]\n > {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() =>\n cards.map(async card => ({\n text: await card.getContentText(),\n selected: await card.isSelected(),\n value: (await card.getValue()) ?? undefined,\n disabled: await card.isDisabled(),\n })),\n );\n\n return cardsAttr.map(card => ({ text: card.text, selected: card.selected, value: card.value, disabled: card.disabled }));\n }\n\n public async select(value: string): Promise<void> {\n const card = await this.getCardByValue(value);\n\n await card.click();\n }\n\n public async isDisabled(): Promise<boolean> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async card => ({ hasClass: await card.isDisabled() })));\n\n return cardsAttr.every(card => card.hasClass);\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nexport * from './gio-form-selection-inline.module';\nexport * from './gio-form-selection-inline.component';\nexport * from './gio-form-selection-inline-card.component';\nexport * from './gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component';\nexport * from './gio-form-selection-inline.harness';\nexport * from './gio-form-selection-inline-card.harness';\n","/*\n * Copyright (C) 2022 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 */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { debounce, distinctUntilChanged } from 'rxjs/operators';\n\nexport interface OverlayOptions {\n top?: number;\n parent?: HTMLElement;\n open: boolean;\n focus?: boolean;\n}\n\n// Keep the reduce state in local storage\nconst REDUCE_STATE_KEY = 'gio-reduce-state';\nconst getDefaultReduceState = () => (localStorage?.getItem(REDUCE_STATE_KEY) === 'true' ? true : false);\n\n@Injectable({ providedIn: 'root' })\nexport class GioMenuService {\n private reducedSubject = new BehaviorSubject<boolean>(getDefaultReduceState());\n\n private overlaySubject = new BehaviorSubject<OverlayOptions>({ open: false });\n\n public reduced$ = this.reducedSubject.asObservable();\n\n public overlayObservable = this.overlaySubject.asObservable().pipe(\n distinctUntilChanged((prev, curr) => prev.open === curr.open),\n debounce(overlayOptions => timer(overlayOptions.open ? 150 : 500)),\n );\n\n public reduce(reduced: boolean): void {\n this.reducedSubject.next(reduced);\n localStorage?.setItem(REDUCE_STATE_KEY, reduced.toString());\n }\n\n public overlay(overlayOptions: OverlayOptions): void {\n this.overlaySubject.next(overlayOptions);\n }\n}\nexport const cleanLocalStorageReduceState = () => localStorage?.removeItem(REDUCE_STATE_KEY);\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, HostListener, Input, OnDestroy } from '@angular/core';\nimport { of, Subject } from 'rxjs';\nimport { delay, filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { GioMenuService } from '../gio-menu.service';\n\n@Component({\n selector: 'gio-menu-item',\n templateUrl: './gio-menu-item.component.html',\n styleUrls: ['./gio-menu-item.component.scss'],\n standalone: false,\n})\nexport class GioMenuItemComponent implements OnDestroy {\n @Input() public icon = '';\n @Input() public iconRight?: string;\n @Input() public active = false;\n @Input() public outlined = false;\n\n private unsubscribe$ = new Subject<void>();\n\n constructor(private readonly gioMenuService: GioMenuService) {}\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public onMouseLeave(): void {\n if (this.active) {\n this.gioMenuService.overlay({ open: false });\n }\n }\n\n public onMouseEnter($event: MouseEvent): void {\n if (this.active) {\n const menuItem = $event.target as HTMLInputElement;\n this.gioMenuService.overlay({ open: true, top: menuItem.getBoundingClientRect().top, parent: menuItem });\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick($event: MouseEvent): void {\n of(true)\n .pipe(\n delay(0),\n tap(() => this.onMouseEnter($event)),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler($event: KeyboardEvent): void {\n of($event.key === 'Enter' && $event.target)\n .pipe(\n filter(enterKey => !!enterKey),\n switchMap(() => of($event.target as HTMLElement)),\n tap(menuItem => {\n this.gioMenuService.overlay({ open: false });\n if (this.active) {\n this.gioMenuService.overlay({ open: true, top: menuItem.getBoundingClientRect().top, parent: menuItem, focus: true });\n } else {\n menuItem.click();\n }\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n class=\"gio-menu-item\"\n [class.gio-menu-item__active]=\"active\"\n [class.gio-menu-item__outlined]=\"outlined\"\n (click)=\"onClick($event)\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave()\"\n>\n @if (icon) {\n <mat-icon class=\"gio-menu-item__icon\" [svgIcon]=\"icon\"></mat-icon>\n }\n <span class=\"gio-menu-item__title\"><ng-content></ng-content></span>\n @if (iconRight) {\n <mat-icon class=\"gio-menu-item__icon-right\" [svgIcon]=\"iconRight\"></mat-icon>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-footer',\n templateUrl: './gio-menu-footer.component.html',\n styleUrls: ['./gio-menu-footer.component.scss'],\n standalone: false,\n})\nexport class GioMenuFooterComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-footer\">\n <div class=\"gio-menu-footer__content\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\n\nimport { GioMenuService } from './gio-menu.service';\n\n@Component({\n selector: 'gio-menu',\n templateUrl: './gio-menu.component.html',\n styleUrls: ['./gio-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class GioMenuComponent implements OnChanges {\n @Input()\n public reduced = false;\n\n public reduce$ = this.gioMenuService.reduced$;\n\n constructor(private readonly gioMenuService: GioMenuService) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.reduced) {\n this.gioMenuService.reduce(this.reduced);\n }\n }\n\n public reduceMenu(reduced: boolean | null): void {\n this.gioMenuService.reduce(!reduced);\n }\n\n public onMouseLeave(reduced: boolean | null): void {\n if (reduced) {\n this.gioMenuService.overlay({ open: false });\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n@if ({ reduced: reduce$ | async }; as context) {\n <div class=\"gio-menu\" [class.gio-menu__reduced]=\"context.reduced\" (mouseleave)=\"onMouseLeave(context.reduced)\">\n <ng-content select=\"gio-menu-header\"></ng-content>\n <ng-content select=\"gio-menu-list\"></ng-content>\n <ng-content select=\"gio-menu-license-expiration-notification\"></ng-content>\n <ng-content select=\"gio-menu-footer\"></ng-content>\n <gio-menu-footer>\n <gio-menu-item\n tabIndex=\"1\"\n type=\"button\"\n class=\"gio-menu-footer__collapse\"\n [icon]=\"context.reduced ? 'gio:expande' : 'gio:collapse'\"\n (click)=\"reduceMenu(context.reduced)\"\n [outlined]=\"true\"\n >Collapse menu</gio-menu-item\n >\n </gio-menu-footer>\n </div>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-list',\n templateUrl: './gio-menu-list.component.html',\n styleUrls: ['./gio-menu-list.component.scss'],\n standalone: false,\n})\nexport class GioMenuListComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-list\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\n\nexport type SelectorItem = {\n value: string;\n displayValue: string;\n};\n\n@Component({\n selector: 'gio-menu-selector',\n templateUrl: './gio-menu-selector.component.html',\n styleUrls: ['./gio-menu-selector.component.scss'],\n standalone: false,\n})\nexport class GioMenuSelectorComponent {\n @Input()\n public selectorTitle = '';\n\n @Input()\n public selectorItems: SelectorItem[] = [];\n\n @Input()\n public selectedItemValue = '';\n\n @Input()\n public tabIndex = 1;\n\n @Output()\n public selectChange: EventEmitter<string> = new EventEmitter<string>();\n\n public onSelectionChange($event: MatSelectChange): void {\n this.selectChange.emit($event.value);\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-selector\">\n <span class=\"gio-menu-selector__label mat-caption\">{{ selectorTitle }}</span>\n <mat-select\n class=\"gio-menu-selector__select\"\n [tabIndex]=\"tabIndex\"\n panelClass=\"gio-menu-selector-custom-width\"\n [value]=\"selectedItemValue\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n @for (item of selectorItems; track item) {\n <mat-option class=\"gio-menu-selector__select__mat-option\" [value]=\"item.value\">\n {{ item.displayValue }}\n </mat-option>\n }\n </mat-select>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-header',\n templateUrl: './gio-menu-header.component.html',\n styleUrls: ['./gio-menu-header.component.scss'],\n standalone: false,\n})\nexport class GioMenuHeaderComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-header\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-license-expiration-notification',\n templateUrl: './gio-menu-license-expiration-notification.component.html',\n styleUrls: ['./gio-menu-license-expiration-notification.component.scss'],\n standalone: false,\n})\nexport class GioMenuLicenseExpirationNotificationComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-license-expiration-notification\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Injectable } from '@angular/core';\nimport { filter, intersection, isEqual, isNil, some } from 'lodash';\n\nimport { MenuSearchItem } from './gio-menu-search.component';\n\n@Injectable({ providedIn: 'root' })\nexport class GioMenuSearchService {\n public menuSearchItems: MenuSearchItem[] = [];\n\n public addMenuSearchItems(items: MenuSearchItem[]): void {\n items.forEach(item => {\n const isDuplicate = some(this.menuSearchItems, existingItem => isEqual(existingItem, item));\n if (!isDuplicate) {\n this.menuSearchItems.push(item);\n }\n });\n }\n\n public removeMenuSearchItems(groupIds: string[]) {\n this.menuSearchItems = filter(this.menuSearchItems, item => isNil(item.groupIds) || !intersection(groupIds, item.groupIds).length);\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FormControl } from '@angular/forms';\nimport { map, startWith } from 'rxjs/operators';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\n\nimport { GioMenuSearchService } from './gio-menu-search.service';\n\nexport interface MenuSearchItem {\n name: string;\n routerLink: string;\n category: string;\n groupIds?: string[];\n}\n\n@Component({\n selector: 'gio-menu-search',\n templateUrl: './gio-menu-search.component.html',\n styleUrls: ['./gio-menu-search.component.scss'],\n standalone: false,\n})\nexport class GioMenuSearchComponent {\n protected control = new FormControl<string | MenuSearchItem>('');\n protected filteredItems$: Observable<MenuSearchItem[]> = this.control.valueChanges.pipe(\n startWith(''),\n map(value => {\n const name = typeof value === 'string' ? value : value?.name;\n return this._filter(name);\n }),\n );\n\n @Output()\n public valueChanges: EventEmitter<MenuSearchItem> = new EventEmitter<MenuSearchItem>();\n\n constructor(private readonly gioMenuSearchService: GioMenuSearchService) {}\n\n protected displayFn(item: MenuSearchItem): string {\n return item?.name ?? '';\n }\n\n protected onSelectionChange(event: MatAutocompleteSelectedEvent) {\n this.control.reset();\n this.valueChanges.emit(event.option.value);\n }\n\n private _filter(value: string | undefined): MenuSearchItem[] {\n if (!value) {\n return [];\n }\n\n const filterValue = this._normalizeValue(value);\n return this.gioMenuSearchService.menuSearchItems.filter(item => this._normalizeValue(item?.name).includes(filterValue));\n }\n\n private _normalizeValue(value: string): string {\n return value.toLowerCase().replace(/\\s/g, '');\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<form>\n <div class=\"gio-menu-search\">\n <div class=\"gio-menu-search__input-container\">\n <input\n matInput\n class=\"gio-menu-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keydown.enter)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"gio-menu-search__icon-container\">\n <mat-icon svgIcon=\"gio:search\" class=\"gio-menu-search__icon\"></mat-icon>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"192\"\n [hideSingleSelectionIndicator]=\"true\"\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onSelectionChange($event)\"\n >\n @for (item of filteredItems$ | async; track item) {\n <mat-option [value]=\"item\">\n <div class=\"gio-menu-search__item\">\n <div class=\"gio-menu-search__item__name\">{{ item.name }}</div>\n <div class=\"gio-menu-search__item__category\">{{ item.category }}</div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n</form>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioMenuItemComponent } from './gio-menu-item/gio-menu-item.component';\nimport { GioMenuComponent } from './gio-menu.component';\nimport { GioMenuFooterComponent } from './gio-menu-footer/gio-menu-footer.component';\nimport { GioMenuListComponent } from './gio-menu-list/gio-menu-list.component';\nimport { GioMenuSelectorComponent } from './gio-menu-selector/gio-menu-selector.component';\nimport { GioMenuHeaderComponent } from './gio-menu-header/gio-menu-header.component';\nimport { GioMenuLicenseExpirationNotificationComponent } from './gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component';\nimport { GioMenuSearchComponent } from './gio-menu-search/gio-menu-search.component';\n\n@NgModule({\n declarations: [\n GioMenuComponent,\n GioMenuItemComponent,\n GioMenuFooterComponent,\n GioMenuListComponent,\n GioMenuHeaderComponent,\n GioMenuSearchComponent,\n GioMenuSelectorComponent,\n GioMenuLicenseExpirationNotificationComponent,\n ],\n exports: [\n GioMenuComponent,\n GioMenuItemComponent,\n GioMenuFooterComponent,\n GioMenuListComponent,\n GioMenuHeaderComponent,\n GioMenuSearchComponent,\n GioMenuSelectorComponent,\n GioMenuLicenseExpirationNotificationComponent,\n ],\n imports: [CommonModule, MatAutocompleteModule, MatIconModule, MatInputModule, GioIconsModule, MatSelectModule, ReactiveFormsModule],\n})\nexport class GioMenuModule {}\n","/*\n * Copyright (C) 2022 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\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\n\nexport class GioMenuSelectorHarness extends ComponentHarness {\n public static hostSelector = 'gio-menu-selector';\n\n private getSelect = this.locatorFor(MatSelectHarness);\n\n public async availableOptions(): Promise<string[]> {\n const select = await this.getSelect();\n await select.open();\n const options = await select.getOptions();\n\n return Promise.all(options.map(o => o.getText()));\n }\n\n public async selectedOption(): Promise<string> {\n const select = await this.getSelect();\n return select.getValueText();\n }\n\n public async selectOptionByIndex(index: number): Promise<void> {\n const select = await this.getSelect();\n await select.open();\n const options = await select.getOptions();\n\n return options[index].click();\n }\n}\n","/*\n * Copyright (C) 2022 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\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\n\nexport class GioMenuSearchHarness extends ComponentHarness {\n public static hostSelector = 'gio-menu-search';\n private getSearchInput = this.locatorFor(MatInputHarness);\n private getSearchAutoComplete = this.locatorFor(MatAutocompleteHarness);\n\n public async setSearchValue(value: string): Promise<void> {\n return this.getSearchInput().then(input => input.setValue(value));\n }\n\n public async getSearchValue(): Promise<string> {\n return this.getSearchInput().then(input => input.getValue());\n }\n\n public async isAutoCompletePanelVisible(): Promise<boolean> {\n return this.getSearchAutoComplete().then(autocomplete => autocomplete.isOpen());\n }\n\n public async getFilteredOptions(): Promise<string[]> {\n return this.getSearchAutoComplete()\n .then(autocomplete => autocomplete.getOptions())\n .then(async options => Promise.all(options.map(option => option.getText())));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-menu.module';\nexport * from './gio-menu.service';\nexport * from './gio-menu.component';\nexport * from './gio-menu-item/gio-menu-item.component';\nexport * from './gio-menu-list/gio-menu-list.component';\nexport * from './gio-menu-footer/gio-menu-footer.component';\nexport * from './gio-menu-header/gio-menu-header.component';\nexport * from './gio-menu-selector/gio-menu-selector.component';\nexport * from './gio-menu-selector/gio-menu-selector.harness';\nexport * from './gio-menu-search/gio-menu-search.component';\nexport * from './gio-menu-search/gio-menu-search.harness';\nexport * from './gio-menu-search/gio-menu-search.service';\nexport * from './gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { of, Subject } from 'rxjs';\nimport { delay, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { GioMenuService, OverlayOptions } from '../gio-menu';\n\n@Directive({\n selector: '[gioSubmenuTitle]',\n standalone: false,\n})\nexport class GioSubmenuTitleDirective {}\n\nexport type GioSubmenuTheme = 'dark' | 'light';\n\n@Component({\n selector: 'gio-submenu',\n templateUrl: './gio-submenu.component.html',\n styleUrls: ['./gio-submenu.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuComponent implements AfterViewInit, OnDestroy {\n @Input()\n public theme: GioSubmenuTheme = 'dark';\n\n @Input()\n public static = false;\n\n public reduced = false;\n public loaded = false;\n public overlayOptions: OverlayOptions = { open: false };\n private hover = false;\n @ViewChild('gioSubmenu', { static: false })\n private gioSubmenu!: ElementRef<HTMLDivElement>;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly gioMenuService: GioMenuService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit(): void {\n // When the menu is reduced\n const reduced$ = of({}).pipe(\n tap(() => {\n this.reduced = true;\n this.loaded = true;\n this.gioSubmenu.nativeElement.style.height = 'auto';\n this.gioSubmenu.nativeElement.style.maxHeight = `0vh`;\n this.changeDetectorRef.detectChanges();\n }),\n // On hover root menu item, open the submenu with top position\n switchMap(() => this.gioMenuService.overlayObservable),\n tap(overlayOptions => {\n this.overlayOptions = overlayOptions;\n if (overlayOptions.open) {\n const top = overlayOptions.top || 0;\n this.gioSubmenu.nativeElement.style.top = `${top}px`;\n this.gioSubmenu.nativeElement.style.maxHeight = `calc(100vh - ${top + 8}px)`;\n }\n }),\n filter(overlayOptions => !!overlayOptions.focus),\n // Focus the first submenu item\n delay(200),\n map(() => this.gioSubmenu.nativeElement.querySelectorAll<HTMLElement>('gio-submenu-item')),\n filter(submenuItems => submenuItems.length > 0),\n tap(submenuItems => submenuItems[0].focus()),\n );\n\n // When the menu is not reduced\n const notReduced$ = of({}).pipe(\n tap(() => {\n this.reduced = false;\n this.loaded = true;\n this.gioSubmenu.nativeElement.style.height = '100%';\n this.gioSubmenu.nativeElement.style.maxHeight = 'unset';\n this.gioSubmenu.nativeElement.style.top = 'unset';\n }),\n );\n\n this.gioMenuService.reduced$\n .pipe(\n switchMap(reduced => (reduced && !this.static ? reduced$ : notReduced$)),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.changeDetectorRef.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public onMouseEnter(): void {\n this.hover = true;\n this.gioMenuService.overlay(this.overlayOptions);\n }\n\n public onMouseLeave(): void {\n this.hover = false;\n this.gioMenuService.overlay({ open: false });\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent): void {\n of(this.reduced && event.key === 'Escape')\n .pipe(\n filter(reducedAndEscape => reducedAndEscape),\n tap(() => this.gioMenuService.overlay({ open: false })),\n delay(100),\n tap(() => this.overlayOptions.parent?.focus()),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n #gioSubmenu\n class=\"gio-submenu\"\n [class.gio-submenu__loaded]=\"loaded\"\n [class.gio-submenu__reduced]=\"reduced\"\n [class.gio-submenu__overlay]=\"overlayOptions.open\"\n [class.gio-submenu__light]=\"theme === 'light'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <div #title class=\"gio-submenu__title\" [class.hide]=\"!title.children.length || reduced\">\n <ng-content select=\"[gioSubmenuTitle]\"></ng-content>\n </div>\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nimport { GioSubmenuTheme } from '../gio-submenu.component';\n\n@Component({\n selector: 'gio-submenu-group',\n templateUrl: './gio-submenu-group.component.html',\n styleUrls: ['./gio-submenu-group.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuGroupComponent {\n @Input() public title = '';\n\n @Input() public theme: GioSubmenuTheme = 'dark';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-submenu-group\">\n <div class=\"gio-submenu-group__title\" [class.gio-submenu-group__title__light]=\"theme === 'light'\">{{ title }}</div>\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ElementRef, HostListener, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'gio-submenu-item',\n templateUrl: './gio-submenu-item.component.html',\n styleUrls: ['./gio-submenu-item.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuItemComponent {\n @Input() public active = false;\n\n @Input() public iconRight?: string;\n\n @ViewChild('gioSubmenuItem', { static: false })\n private gioSubmenuItem: ElementRef<HTMLDivElement> | undefined;\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.gioSubmenuItem?.nativeElement.click();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #gioSubmenuItem class=\"gio-submenu-item\" [class.gio-submenu-item__active]=\"active\">\n <span class=\"gio-submenu-item__title\"><ng-content></ng-content></span>\n @if (iconRight) {\n <mat-icon class=\"gio-submenu-item__icon-right\" [svgIcon]=\"iconRight\"></mat-icon>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioSubmenuGroupComponent } from './gio-submenu-group/gio-submenu-group.component';\nimport { GioSubmenuComponent, GioSubmenuTitleDirective } from './gio-submenu.component';\nimport { GioSubmenuItemComponent } from './gio-submenu-item/gio-submenu-item.component';\n\n@NgModule({\n declarations: [GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuTitleDirective],\n exports: [GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuTitleDirective],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioSubmenuModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-submenu.component';\nexport * from './gio-submenu.module';\nexport * from './gio-submenu-group/gio-submenu-group.component';\nexport * from './gio-submenu-item/gio-submenu-item.component';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nexport type GioTopBarTypes = 'am' | 'apim' | 'cockpit';\n\n@Component({\n selector: 'gio-top-bar',\n templateUrl: './gio-top-bar.component.html',\n styleUrls: ['./gio-top-bar.component.scss'],\n standalone: false,\n})\nexport class GioTopBarComponent {\n @Input() public type: GioTopBarTypes = 'am';\n\n @Input() public productName = '';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nexport type GioTopBarProductTypes = 'am' | 'apim' | 'cockpit' | 'cloud' | 'portal';\n\n@Component({\n selector: 'gio-top-bar-content',\n templateUrl: './gio-top-bar-content.component.html',\n styleUrls: ['./gio-top-bar-content.component.scss'],\n standalone: false,\n})\nexport class GioTopBarContentComponent {\n @Input()\n public type: GioTopBarProductTypes = 'am';\n @Input()\n public productName = 'Access Management';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar-content\" [class]=\"type\">\n <mat-icon [svgIcon]=\"'gio:product-' + type\"></mat-icon>\n <span>{{ productName }}</span>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioTopBarComponent } from './gio-top-bar.component';\nimport { GioTopBarContentComponent } from './gio-top-bar-content/gio-top-bar-content.component';\n\n@NgModule({\n declarations: [GioTopBarComponent, GioTopBarContentComponent],\n exports: [GioTopBarComponent, GioTopBarContentComponent],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioTopBarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-top-bar-menu',\n templateUrl: './gio-top-bar-menu.component.html',\n styleUrls: ['./gio-top-bar-menu.component.scss'],\n standalone: false,\n})\nexport class GioTopBarMenuComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar-menu\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioTopBarMenuComponent } from './gio-top-bar-menu.component';\n\n@NgModule({\n declarations: [GioTopBarMenuComponent],\n exports: [GioTopBarMenuComponent],\n imports: [CommonModule],\n})\nexport class GioTopBarMenuModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-top-bar-link',\n templateUrl: './gio-top-bar-link.component.html',\n styleUrls: ['./gio-top-bar-link.component.scss'],\n standalone: false,\n})\nexport class GioTopBarLinkComponent {\n @Input() public url = '';\n @Input() public name = '';\n}\n","<!--\n\n Copyright (C) 2022 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<a mat-button [href]=\"url\" target=\"_blank\" class=\"gio-top-bar-link\">\n <div class=\"gio-top-bar-link__content\">\n <span>{{ name }}</span>\n <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </div>\n</a>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../../gio-icons/gio-icons.module';\n\nimport { GioTopBarLinkComponent } from './gio-top-bar-link.component';\n\n@NgModule({\n declarations: [GioTopBarLinkComponent],\n exports: [GioTopBarLinkComponent],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioTopBarLinkModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-top-bar.module';\nexport * from './gio-top-bar.component';\nexport * from './gio-top-bar-menu/gio-top-bar-menu.module';\nexport * from './gio-top-bar-menu/gio-top-bar-menu.component';\nexport * from './gio-top-bar-link/gio-top-bar-link.module';\nexport * from './gio-top-bar-link/gio-top-bar-link.component';\nexport * from './gio-top-bar-content/gio-top-bar-content.component';\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\nexport interface OemTheme {\n menuBackground: string;\n menuActive: string;\n}\n\nconst computeStyles = (theme: OemTheme): { key: string; value: string }[] => {\n const backgroundStyle = computeStyleAndContrastByPrefix('background', theme.menuBackground);\n const activeStyle = computeStyleAndContrastByPrefix('active', theme.menuActive);\n let subMenu: { key: string; value: string }[] = [];\n // If the menu background is defined, then define the sub-menu color\n if (theme.menuBackground) {\n subMenu = [{ key: `--gio-oem-palette--sub-menu`, value: `color-mix(in srgb, ${theme.menuBackground} 80%, black)` }];\n }\n return [...backgroundStyle, ...activeStyle, ...subMenu];\n};\n\nconst computeStyleAndContrastByPrefix = (prefix: string, color: string): { key: string; value: string }[] => {\n if (!color) {\n return [];\n }\n const paletteColor = { key: `--gio-oem-palette--${prefix}`, value: color };\n const paletteColorContrast = { key: `--gio-oem-palette--${prefix}-contrast`, value: '#fff' };\n return [paletteColor, paletteColorContrast];\n};\nexport { computeStyles };\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 */\nexport * from './gio-menu';\nexport * from './gio-submenu';\nexport * from './gio-top-bar';\nexport * from './oem-theme.service';\n","/*\n * Copyright (C) 2024 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 */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-card-empty-state',\n templateUrl: './gio-card-empty-state.component.html',\n styleUrls: ['./gio-card-empty-state.component.scss'],\n standalone: false,\n})\nexport class GioCardEmptyStateComponent {\n @Input() public icon: string | undefined;\n @Input() public title: string | undefined;\n @Input() public subtitle: string | undefined;\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-card class=\"gio-empty-state\">\n <mat-card-content class=\"gio-empty-state__content\">\n @if (icon) {\n <mat-icon class=\"gio-empty-state__content__icon\" [svgIcon]=\"'gio:' + icon\"></mat-icon>\n }\n @if (title) {\n <div class=\"mat-h3\">{{ title }}</div>\n }\n @if (subtitle) {\n <span class=\"gio-empty-state__content__subtitle\">{{ subtitle }}</span>\n }\n </mat-card-content>\n</mat-card>\n","/*\n * Copyright (C) 2024 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 */\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioCardEmptyStateComponent } from './gio-card-empty-state.component';\n\n@NgModule({\n declarations: [GioCardEmptyStateComponent],\n exports: [GioCardEmptyStateComponent],\n imports: [CommonModule, MatCardModule, MatIconModule, GioIconsModule],\n})\nexport class GioCardEmptyStateModule {}\n","/*\n * Copyright (C) 2024 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 */\nexport * from './gio-card-empty-state.component';\nexport * from './gio-card-empty-state.module';\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-popover.component';\nexport * from './gio-popover-trigger.directive';\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-el-prompt/gio-el-prompt.component';\nexport * from './gio-el-assistant/gio-el-assistant.component';\nexport * from './models/ElAiPromptState';\nexport * from './gio-el.service';\n","/*\n * Copyright (C) 2021 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 * Public API Surface\n */\nexport * from './gio-save-bar/gio-save-bar.component';\nexport * from './gio-save-bar/gio-save-bar.module';\nexport * from './gio-save-bar/gio-save-bar.harness';\n\nexport * from './gio-form-tags-input/gio-form-tags-input.component';\nexport * from './gio-form-tags-input/gio-form-tags-input.module';\nexport * from './gio-form-tags-input/gio-form-tags-input.harness';\n\nexport * from './gio-banner/gio-banner.component';\nexport * from './gio-banner/gio-banner.module';\n\nexport * from './gio-confirm-dialog/gio-confirm-dialog.component';\nexport * from './gio-confirm-dialog/gio-confirm-dialog.module';\nexport * from './gio-confirm-dialog/gio-confirm-dialog.harness';\n\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component';\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module';\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness';\n\nexport * from './gio-icons/gio-icons.module';\n\nexport * from './gio-form-headers/gio-form-headers.component';\nexport * from './gio-form-headers/gio-form-headers-label.component';\nexport * from './gio-form-headers/gio-form-headers.module';\nexport * from './gio-form-headers/gio-form-headers.harness';\n\nexport * from './gio-form-file-picker';\n\nexport * from './gio-avatar';\n\nexport * from './gio-breadcrumb';\n\nexport * from './gio-mat-config';\n\nexport * from './gio-form-json-schema/gio-form-json-schema.component';\nexport * from './gio-form-json-schema/gio-form-json-schema.module';\nexport * from './gio-form-json-schema/model/GioJsonSchema';\nexport * from './gio-form-json-schema/model/GioJsonSchemaContext';\n\nexport * from './gio-form-slide-toggle/gio-form-slide-toggle.component';\nexport * from './gio-form-slide-toggle/gio-form-slide-toggle.module';\nexport * from './gio-form-slide-toggle/gio-form-label.directive';\n\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive';\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.module';\n\nexport * from './gio-monaco-editor/gio-monaco-editor.component';\nexport * from './gio-monaco-editor/gio-monaco-clipboard-copy.component';\nexport * from './gio-monaco-editor/gio-monaco-editor-form-field.directive';\nexport * from './gio-monaco-editor/gio-monaco-editor.module';\nexport * from './gio-monaco-editor/gio-monaco-editor.harness';\n\nexport * from './gio-loader/gio-loader.module';\nexport * from './gio-loader/gio-loader.component';\n\nexport * from './gio-prismjs/gio-prismjs.service';\n\nexport * from './gio-dialog/gio-dialog.constant';\n\nexport * from './gio-clipboard/gio-clipboard.module';\nexport * from './gio-clipboard/gio-clipboard-copy-icon.component';\nexport * from './gio-clipboard/gio-clipboard-copy-wrapper.component';\n\nexport * from './gio-pipe/gio.pipe.module';\nexport * from './gio-pipe/safe.pipe';\n\nexport * from './gio-license/gio-license.module';\nexport * from './gio-license/gio-license.service';\nexport * from './gio-license/gio-license.directive';\nexport * from './gio-license/gio-license-dialog/gio-license-dialog.module';\nexport * from './gio-license/gio-license-dialog/gio-license-dialog.component';\nexport * from './gio-license/gio-license.testing.module';\n\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.module';\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.component';\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.harness';\n\nexport * from './gio-form-cron/gio-form-cron.component';\nexport * from './gio-form-cron/gio-form-cron-label.component';\nexport * from './gio-form-cron/gio-form-cron-hint.component';\nexport * from './gio-form-cron/gio-form-cron.module';\nexport * from './gio-form-cron/gio-form-cron.harness';\n\nexport * from './gio-form-selection-inline/public-api';\n\nexport * from './oem-theme/public-api';\n\nexport * from './gio-card-empty-state';\n\nexport * from './gio-popover/public-api';\nexport * from './gio-el/public-api';\n","/*\n * Copyright (C) 2021 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 * Public API Surface of ui-particles-angular\n */\n\nexport * from './lib/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4","i6.GioLoaderComponent","i7","i3","i5","i6.GioBannerWarningComponent","i6.GioBannerErrorComponent","i6.GioBannerInfoComponent","i6.GioBannerSuccessComponent","i6.GioBannerBodyDirective","i7.GioClipboardCopyWrapperComponent","i6","i8.GioElAssistantComponent","i9","i5.GioFormFilePickerAddButtonComponent","i6.GioFormFilePickerEmptyComponent","i1.GioFormlyJsonSchemaService","i1.GioMonacoEditorService","i2.GioLanguageJsonService","i3.GioLanguageElService","i2.GioMonacoEditorComponent","i1.GioClipboardCopyIconComponent","i8","i3.GioFormSlideToggleComponent","i4.GioFormLabelComponent","i4.GioFormSlideToggleDirective","i4.GioFormHeadersComponent","FieldType","i3.GioMonacoEditorFormFieldDirective","i2.GioFormCronComponent","i3.GioFormCronLabelComponent","i4.GioFormCronHintComponent","i1.GioElAssistantComponent","i4.SafePipe","i1.GioLicenseService","i1.GioMenuService","i2.GioMenuItemComponent","i3.GioMenuFooterComponent","filter","i1.GioMenuSearchService"],"mappings":"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"}
1
+ {"version":3,"file":"gravitee-ui-particles-angular.mjs","sources":["../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.component.ts","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.component.html","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.module.ts","../../../projects/ui-particles-angular/src/lib/gio-save-bar/gio-save-bar.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.component.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.component.html","../../../projects/ui-particles-angular/src/lib/gio-icons/gio-icons.module.ts","../../../projects/ui-particles-angular/src/lib/gio-loader/gio-loader.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-tags-input/gio-form-tags-input.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.component.ts","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.component.html","../../../projects/ui-particles-angular/src/lib/gio-banner/gio-banner.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-dialog/gio-confirm-dialog.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el.service.ts","../../../projects/ui-particles-angular/src/lib/gio-el/models/ElAiPromptState.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard.base.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard-copy-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard-copy-icon.component.ts","../../../projects/ui-particles-angular/src/lib/gio-clipboard/gio-clipboard.module.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-prompt/gio-el-prompt.component.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-prompt/gio-el-prompt.component.html","../../../projects/ui-particles-angular/src/lib/gio-el/index.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover.component.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover.component.html","../../../projects/ui-particles-angular/src/lib/gio-popover/gio-popover-trigger.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/index.ts","../../../projects/ui-particles-angular/src/lib/gio-el/gio-el-assistant/gio-el-assistant.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-headers/gio-form-headers.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-add-button/gio-form-file-picker-add-button.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-empty/gio-form-file-picker-empty.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker-label/gio-form-file-picker-label.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.model.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/gio-form-file-picker.component.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-file-picker/index.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.component.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.component.html","../../../projects/ui-particles-angular/src/lib/gio-avatar/gio-avatar.module.ts","../../../projects/ui-particles-angular/src/lib/gio-avatar/index.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb-item.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.component.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.component.html","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/gio-breadcrumb.module.ts","../../../projects/ui-particles-angular/src/lib/gio-breadcrumb/index.ts","../../../projects/ui-particles-angular/src/lib/gio-mat-config/gio-mat-config.module.ts","../../../projects/ui-particles-angular/src/lib/gio-mat-config/index.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-formly-json-schema.service.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-form-json-schema.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-label.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-slide-toggle/gio-form-slide-toggle.module.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/models/GioMonacoEditorConfig.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-monaco-editor.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-language-json.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/models/JSONSchemaAutoComplete.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/services/gio-language-el.service.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor-form-field.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-clipboard-copy.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.adapter.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron-label.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron-hint.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/null-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/object-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/array-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/util/validation-message.util.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-wrapper.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-banner-extension.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/multischema-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/toggle-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/headers-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-password-eye.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/code-editor-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/type-component/cron-type.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/wrappers/gio-el-helper-wrapper.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/gio-form-json-schema.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-json-schema/model/GioJsonSchema.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-form-focus-first-invalid/gio-form-focus-first-invalid.module.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.testing.component.ts","../../../projects/ui-particles-angular/src/lib/gio-monaco-editor/gio-monaco-editor.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-prismjs/gio-prismjs.service.ts","../../../projects/ui-particles-angular/src/lib/gio-dialog/gio-dialog.constant.ts","../../../projects/ui-particles-angular/src/lib/gio-pipe/safe.pipe.ts","../../../projects/ui-particles-angular/src/lib/gio-pipe/gio.pipe.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.component.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.component.html","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.service.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.directive.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license-dialog/gio-license-dialog.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license/gio-license.testing.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.component.html","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.module.ts","../../../projects/ui-particles-angular/src/lib/gio-license-expiration-notification/gio-license-expiration-notification.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-cron/gio-form-cron.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.component.html","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.module.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline-card.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/gio-form-selection-inline.harness.ts","../../../projects/ui-particles-angular/src/lib/gio-form-selection-inline/public-api.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-item/gio-menu-item.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-footer/gio-menu-footer.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-list/gio-menu-list.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-header/gio-menu-header.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-selector/gio-menu-selector.harness.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/gio-menu-search/gio-menu-search.harness.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-menu/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-group/gio-submenu-group.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu-item/gio-submenu-item.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/gio-submenu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-submenu/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-content/gio-top-bar-content.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-menu/gio-top-bar-menu.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.component.html","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/gio-top-bar-link/gio-top-bar-link.module.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/gio-top-bar/index.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/oem-theme.service.ts","../../../projects/ui-particles-angular/src/lib/oem-theme/public-api.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.component.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.component.html","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/gio-card-empty-state.module.ts","../../../projects/ui-particles-angular/src/lib/gio-card-empty-state/index.ts","../../../projects/ui-particles-angular/src/lib/gio-popover/public-api.ts","../../../projects/ui-particles-angular/src/lib/gio-el/public-api.ts","../../../projects/ui-particles-angular/src/lib/public-api.ts","../../../projects/ui-particles-angular/src/public-api.ts","../../../projects/ui-particles-angular/src/gravitee-ui-particles-angular.ts"],"sourcesContent":["/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { animate, style, transition, trigger } from '@angular/animations';\nimport { Component, EventEmitter, HostBinding, HostListener, Input, OnDestroy, Output } from '@angular/core';\nimport { UntypedFormGroup } from '@angular/forms';\nimport { of, Subscription } from 'rxjs';\nimport { delay, tap } from 'rxjs/operators';\n\n@Component({\n selector: 'gio-save-bar',\n templateUrl: './gio-save-bar.component.html',\n styleUrls: ['./gio-save-bar.component.scss'],\n animations: [\n trigger('slideUpDown', [\n transition(':enter', [\n style({ transform: 'translateY(40vh)', opacity: '0' }),\n animate('300ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateY(0)', opacity: '1' })),\n ]),\n transition(':leave', [\n style({ transform: 'translateY(0)', opacity: '1' }),\n animate('300ms cubic-bezier(0.4, 0.0, 0.2, 1)', style({ transform: 'translateY(40vh)', opacity: '0' })),\n ]),\n ]),\n ],\n standalone: false,\n})\nexport class GioSaveBarComponent implements OnDestroy {\n public isSubmitted = false;\n\n @HostBinding('class.save-bar-sticky')\n public get isSticky(): boolean {\n return !this.creationMode;\n }\n\n @Input()\n public opened = false;\n\n /**\n * When true, the submit button have invalidate display\n * And on submit clicked the output event is emit on submitInvalidState (and not on submit)\n */\n @Input()\n public invalidState?: boolean = false;\n\n @Input()\n public creationMode = false;\n\n @Input()\n public form?: UntypedFormGroup;\n\n private hasSubmitLock = true;\n private submitLockSubscription?: Subscription;\n\n @Input()\n public formInitialValues?: unknown;\n\n @Input()\n public hideSubmitButton = false;\n\n @Input()\n public hideDiscardButton = false;\n\n @Output()\n public resetClicked = new EventEmitter<void>();\n\n @Output()\n public submitted = new EventEmitter<void>();\n\n @Output()\n public submittedInvalidState = new EventEmitter();\n\n @HostBinding('class.is-open')\n public get isOpen(): boolean {\n if (this.creationMode) {\n return true;\n }\n\n if (this.form) {\n return this.form.dirty;\n }\n return this.opened;\n }\n\n public ngOnDestroy() {\n this.submitLockSubscription?.unsubscribe();\n }\n\n public onResetClicked(): void {\n if (this.form) {\n this.form.reset(this.formInitialValues);\n this.form.markAsPristine();\n }\n this.resetClicked.emit();\n }\n\n @HostListener('disable-submit-lock')\n public onDisableSubmitLock(): void {\n this.hasSubmitLock = false;\n }\n\n public onSubmitClicked(): void {\n if ((this.form && this.form.invalid) || this.invalidState) {\n this.form?.markAllAsTouched();\n this.submittedInvalidState.emit();\n return;\n }\n\n if (this.isSubmitted) {\n return;\n }\n\n this.submitted.emit();\n if (this.hasSubmitLock) {\n this.submitLockSubscription = of(undefined)\n .pipe(\n // Arrange js microtask queue to be sure that the disabled button state is set after triggering the ngSubmit event\n delay(0),\n tap(() => (this.isSubmitted = true)),\n delay(2000),\n tap(() => (this.isSubmitted = false)),\n )\n .subscribe();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n\n@if (isOpen) {\n <div [@slideUpDown] [@.disabled]=\"creationMode\">\n <mat-card\n class=\"save-bar__content mat-mdc-elevation-specific\"\n [class.mat-elevation-z3]=\"creationMode\"\n [class.mat-elevation-z6]=\"!creationMode\"\n >\n <div class=\"save-bar__content__label\">{{ creationMode ? '' : 'You have unsaved changes' }}</div>\n <div class=\"save-bar__content__actions\">\n @if (!creationMode && !hideDiscardButton) {\n <button class=\"save-bar__content__actions__reset-button\" mat-button type=\"button\" (click)=\"onResetClicked()\">Discard</button>\n }\n <ng-content></ng-content>\n @if (!hideSubmitButton) {\n <button\n class=\"save-bar__content__actions__submit-button\"\n [class.invalid]=\"(form && form.invalid) || invalidState\"\n mat-flat-button\n color=\"primary\"\n [type]=\"form ? 'submit' : 'button'\"\n [disabled]=\"isSubmitted\"\n (click)=\"onSubmitClicked()\"\n >\n {{ creationMode ? 'Create' : 'Save' }}{{ isSubmitted ? '...' : '' }}\n </button>\n }\n </div>\n </mat-card>\n </div>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioSaveBarComponent } from './gio-save-bar.component';\n\n@NgModule({\n imports: [CommonModule, MatCardModule, MatButtonModule],\n declarations: [GioSaveBarComponent],\n exports: [GioSaveBarComponent],\n})\nexport class GioSaveBarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\n\nexport class GioSaveBarHarness extends ComponentHarness {\n public static hostSelector = 'gio-save-bar';\n\n private readonly cardSelector = '.save-bar__content';\n private readonly resetButtonSelector = '.save-bar__content__actions__reset-button';\n private readonly submitButtonSelector = '.save-bar__content__actions__submit-button';\n\n protected getSubmitButton = this.locatorFor(this.submitButtonSelector);\n protected getResetButton = this.locatorFor(this.resetButtonSelector);\n\n public async isVisible(): Promise<boolean> {\n const card = await this.locatorForOptional(this.cardSelector)();\n return card !== null;\n }\n\n public async clickSubmit(): Promise<void> {\n const host = await this.host();\n await host.dispatchEvent('disable-submit-lock');\n const submitButton = await this.getSubmitButton();\n return submitButton.click();\n }\n\n public async isSubmitButtonInvalid(): Promise<boolean> {\n const submitButton = await this.getSubmitButton();\n return submitButton.hasClass('invalid');\n }\n\n public async isSubmitButtonVisible(): Promise<boolean> {\n const submitButton = await this.locatorForOptional(this.submitButtonSelector)();\n return submitButton !== null;\n }\n\n public async isResetButtonVisible(): Promise<boolean> {\n const submitButton = await this.locatorForOptional(this.resetButtonSelector)();\n return submitButton !== null;\n }\n\n public async clickReset(): Promise<void> {\n const resetButton = await this.getResetButton();\n return resetButton.click();\n }\n}\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 */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-loader',\n templateUrl: './gio-loader.component.html',\n styleUrls: ['./gio-loader.component.scss'],\n standalone: false,\n})\nexport class GioLoaderComponent {}\n","<!--\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=\"loader\">\n <mat-icon svgIcon=\"gio:loader\"></mat-icon>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n// eslint-disable-next-line @typescript-eslint/explicit-member-accessibility\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n DoCheck,\n ElementRef,\n EventEmitter,\n HostBinding,\n Input,\n OnDestroy,\n Optional,\n Output,\n Self,\n ViewChild,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { isEmpty } from 'lodash';\nimport { fromEvent, Observable, of, Subject } from 'rxjs';\nimport { distinctUntilChanged, map, startWith, switchMap, tap } from 'rxjs/operators';\n\nexport type Tags = Array<string>;\n\ntype AutocompleteOptionsFlat = (string | { value: string; label: string })[];\ntype AutocompleteOptionsGroup = { groupLabel: string; groupOptions: AutocompleteOptionsFlat }[];\n\nexport type AutocompleteOptions = AutocompleteOptionsFlat | AutocompleteOptionsGroup;\n\nexport type DisplayValueWithFn = (value: string) => Observable<string>;\n\n@Component({\n selector: 'gio-form-tags-input',\n templateUrl: './gio-form-tags-input.component.html',\n styleUrls: ['./gio-form-tags-input.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: GioFormTagsInputComponent,\n },\n ],\n standalone: false,\n})\nexport class GioFormTagsInputComponent implements MatFormFieldControl<Tags>, ControlValueAccessor, DoCheck, OnDestroy {\n private static nextId = 0;\n\n public _onChange: (_tags: Tags | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n private touched = false;\n\n @Input('aria-label')\n public ariaLabel = '';\n\n @Input()\n public addOnBlur = true;\n\n /**\n * Function called each time a tag is added, it can be used to hook inside the\n * addition process to, for instance, have custom validation in the components\n * using `gio-form-tags-input`.\n *\n * Parameters are:\n * - `tag`: The value of the tag to add\n * - `validationCb`: The callback function to call when validation is done. If\n * called with `true` it will add the tag, otherwise it will just ignore it\n */\n @Input()\n public tagValidationHook: ((tag: string, validationCb: (shouldAddTag: boolean) => void) => void) | undefined = undefined;\n\n @Input()\n public set autocompleteOptions(v: AutocompleteOptions | ((search: string) => Observable<AutocompleteOptions>) | undefined) {\n this._autocompleteOptions = v;\n }\n\n @Output()\n public tagClicked = new EventEmitter<string>();\n\n public _autocompleteOptions?: AutocompleteOptions | ((search: string) => Observable<AutocompleteOptions>);\n\n /**\n * Get the label of an option value.\n * To use with autocompleteOptions label & value mode.\n * Function called each time a tag needs to be displayed id defined.\n */\n @Input()\n public set displayValueWith(displayValueWith: DisplayValueWithFn) {\n this._displayValueWith = (value: string) => {\n if (this.displayValueCache[value]) {\n return of(this.displayValueCache[value]);\n }\n return displayValueWith(value).pipe(\n tap(label => {\n this.displayValueCache[value] = label;\n }),\n );\n };\n }\n\n /**\n * Set to true to force the chip to be part of the autocomplete options.\n */\n @Input()\n public useAutocompleteOptionValueOnly = false;\n\n @ViewChild('tagInput')\n public set tagInput(v: ElementRef<HTMLInputElement> | null) {\n if (v) {\n this.fm.monitor(v.nativeElement).subscribe(origin => {\n if (origin) {\n this.initAutocomplete();\n }\n });\n } else if (this._tagInput) {\n this.fm.stopMonitoring(this._tagInput.nativeElement);\n }\n\n this._tagInput = v;\n }\n private _tagInput: ElementRef<HTMLInputElement> | null = null;\n\n public autocompleteFilteredOptions$?: Observable<{ groupLabel?: string; groupOptions: { value: string; label: string }[] }[]>;\n\n public _displayValueWith?: (value: string) => Observable<string>;\n\n private displayValueCache: Record<string, string> = {};\n\n public loading = false;\n\n // From MatFormFieldControl interface\n public get value(): Tags | null {\n return this._value;\n }\n\n public set value(_tags: Tags | null) {\n this._value = _tags;\n this._onChange(_tags);\n this.stateChanges.next();\n }\n\n private _value: Tags | null = null;\n\n // From MatFormFieldControl interface\n public stateChanges = new Subject<void>();\n\n // From MatFormFieldControl interface\n @HostBinding('id')\n public id = `gio-form-tags-input-${GioFormTagsInputComponent.nextId++}`;\n\n // From MatFormFieldControl interface\n @Input()\n public get placeholder(): string {\n return this._placeholder;\n }\n\n public set placeholder(plh: string) {\n this._placeholder = plh;\n this.stateChanges.next();\n }\n\n private _placeholder = '';\n\n // From MatFormFieldControl interface\n public focused = false;\n\n // From MatFormFieldControl interface\n public get empty(): boolean {\n return isEmpty(this.value) && isEmpty(this._tagInput?.nativeElement?.value);\n }\n\n // From MatFormFieldControl interface\n @HostBinding('class.floating')\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n // From MatFormFieldControl interface\n @Input()\n public get required(): boolean {\n return this._required;\n }\n\n public set required(req: boolean) {\n this._required = coerceBooleanProperty(req);\n this.stateChanges.next();\n }\n\n private _required = false;\n\n // From MatFormFieldControl interface\n @Input()\n public get disabled(): boolean {\n return this._disabled || (this.ngControl && this.ngControl.disabled === true);\n }\n\n public set disabled(dis: boolean) {\n this._disabled = coerceBooleanProperty(dis);\n this.stateChanges.next();\n }\n\n private _disabled = false;\n\n // From MatFormFieldControl interface\n public get errorState(): boolean {\n return (\n this.touched &&\n // if required check if is empty\n ((this.required && this.empty) ||\n // if there is a touched control check if there is an error\n (this.ngControl && this.ngControl.touched === true && !!this.ngControl.errors))\n );\n }\n\n // From MatFormFieldControl interface\n public controlType?: string;\n\n // From MatFormFieldControl interface\n public autofilled?: boolean;\n\n // From MatFormFieldControl interface\n public userAriaDescribedBy?: string;\n\n constructor(\n // From ControlValueAccessor interface\n @Optional() @Self() public readonly ngControl: NgControl,\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private changeDetectorRef: ChangeDetectorRef,\n ) {\n // Replace the provider from above with this.\n if (this.ngControl != null) {\n // Setting the value accessor directly (instead of using\n // the providers) to avoid running into a circular import.\n this.ngControl.valueAccessor = this;\n }\n\n fm.monitor(elRef.nativeElement, true).subscribe(origin => {\n this.focused = !!origin;\n this._onTouched();\n this.touched = true;\n this.stateChanges.next();\n });\n }\n\n public ngDoCheck(): void {\n // sync control touched with local touched\n if (this.ngControl != null && this.touched !== this.ngControl.touched) {\n this.touched = this.ngControl.touched === true;\n this.stateChanges.next();\n }\n }\n\n public ngOnDestroy(): void {\n this.stateChanges.complete();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n if (this._tagInput) {\n this.fm.stopMonitoring(this._tagInput.nativeElement);\n }\n }\n\n // From ControlValueAccess interface\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string[]): void {\n this._value = value;\n this.changeDetectorRef.detectChanges();\n this.changeDetectorRef.markForCheck();\n this.stateChanges.next();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (tags: Tags | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From MatFormFieldControl interface\n @HostBinding('attr.aria-describedby')\n public describedBy = '';\n\n public setDescribedByIds(ids: string[]): void {\n this.describedBy = ids.join(' ');\n }\n\n // From MatFormFieldControl interface\n public onContainerClick(_event: MouseEvent): void {\n if (this._tagInput) {\n this._tagInput.nativeElement.focus();\n }\n }\n\n public addChipToFormControl(event: { value: string }): void {\n const input = this._tagInput?.nativeElement;\n const tagToAdd = (event.value ?? '').trim();\n\n if (isEmpty(tagToAdd)) {\n return;\n }\n\n // Add the tag only if shouldAddTag in validationCb return true\n // Set default callback if not defined\n const tagValidationHook = this.tagValidationHook ?? ((_, validationCb) => validationCb(true));\n\n const validationCb = (shouldAddTag: boolean) => {\n // Add new Tag in form control\n if (shouldAddTag) {\n // Delete Tag if already existing\n const formControlValue = [...(this.value ?? [])].filter(v => v !== tagToAdd);\n\n this.value = [...formControlValue, tagToAdd];\n }\n };\n\n // Reset the input value\n if (input) {\n input.value = '';\n }\n\n tagValidationHook(tagToAdd, validationCb);\n }\n\n public removeChipToFormControl(tag: string): void {\n this.value = [...(this.value ?? [])].filter(v => v !== tag);\n this.changeDetectorRef.detectChanges();\n }\n\n public onAutocompleteSelect(event: MatAutocompleteSelectedEvent): void {\n this.addChipToFormControl({ value: event.option.value });\n }\n\n public onMatChipTokenEnd(): void {\n if (this.useAutocompleteOptionValueOnly) {\n return;\n }\n // Give priority to the `onAutocompleteSelect` when validating with the blur event\n this.addChipToFormControl({ value: this._tagInput?.nativeElement.value ?? '' });\n }\n\n private initAutocomplete(): void {\n if (this._autocompleteOptions && this._tagInput?.nativeElement) {\n this.autocompleteFilteredOptions$ = fromEvent(this._tagInput.nativeElement, 'keyup').pipe(\n startWith([] as string[]),\n tap(() => {\n this.loading = true;\n }),\n switchMap(() => {\n if (typeof this._autocompleteOptions === 'function') {\n return this._autocompleteOptions(this._tagInput?.nativeElement.value ?? '').pipe(\n map(options => sanitizeAutocompleteOptions(options)),\n // Add options to displayValueCache to avoid call on select\n tap(groups => {\n groups.forEach(group => {\n group.groupOptions.forEach(option => {\n this.displayValueCache[option.value] = option.label;\n });\n });\n }),\n );\n }\n return of(defaultAutocompleteFilter(this._autocompleteOptions ?? [], this._tagInput?.nativeElement.value ?? ''));\n }),\n tap(() => {\n this.loading = false;\n }),\n\n distinctUntilChanged(),\n );\n this.changeDetectorRef.detectChanges();\n }\n }\n}\n\nconst defaultAutocompleteFilter = (\n options: AutocompleteOptions,\n search: string,\n): {\n groupLabel?: string;\n groupOptions: { value: string; label: string }[];\n}[] => {\n const optionsFilter = (options: { value: string; label: string }[], search: string) => {\n return options.filter(\n option =>\n option.label.toLowerCase().includes((search ?? '').toLowerCase()) ||\n option.value.toLowerCase().includes((search ?? '').toLowerCase()),\n );\n };\n\n return sanitizeAutocompleteOptions(options)\n .map(group => ({\n groupLabel: group.groupLabel,\n groupOptions: optionsFilter(group.groupOptions, search),\n }))\n .filter(group => group.groupOptions.length > 0);\n};\n\nconst sanitizeAutocompleteOptions = (\n options: AutocompleteOptions,\n): {\n groupLabel?: string;\n groupOptions: { value: string; label: string }[];\n}[] => {\n const sanitizeFlatOptions = (flatOptions: AutocompleteOptionsFlat): { value: string; label: string }[] =>\n flatOptions.map(option => {\n if (option && typeof option !== 'string' && 'value' in option && 'label' in option) {\n return option;\n }\n return { value: option, label: option };\n });\n\n if (\n Array.isArray(options) &&\n (options.length === 0 || typeof options[0] === 'string' || ('value' in options[0] && 'label' in options[0]))\n ) {\n const optionsFlat = options as AutocompleteOptionsFlat;\n return [\n {\n groupOptions: sanitizeFlatOptions(optionsFlat),\n },\n ];\n } else {\n // Else option is Grouped\n const optionsGrouped = options as AutocompleteOptionsGroup;\n return optionsGrouped.map(group => ({\n groupLabel: group.groupLabel,\n groupOptions: sanitizeFlatOptions(group.groupOptions),\n }));\n }\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-chip-grid #tagChipList [attr.aria-label]=\"ariaLabel\" multiple [disabled]=\"disabled\">\n @for (tag of value; track tag) {\n <mat-chip-row [removable]=\"!disabled\" (removed)=\"removeChipToFormControl(tag)\" [disabled]=\"disabled\" (click)=\"tagClicked.emit(tag)\">\n @if (_displayValueWith) {\n {{ _displayValueWith(tag) | async }}\n } @else {\n {{ tag }}\n }\n <mat-icon matChipRemove>cancel</mat-icon>\n </mat-chip-row>\n }\n <input\n #tagInput\n [matAutocompleteDisabled]=\"!_autocompleteOptions || disabled\"\n [matAutocomplete]=\"auto\"\n [placeholder]=\"placeholder\"\n [matChipInputFor]=\"tagChipList\"\n [matChipInputAddOnBlur]=\"addOnBlur\"\n (matChipInputTokenEnd)=\"onMatChipTokenEnd()\"\n />\n <mat-autocomplete #auto=\"matAutocomplete\" (optionSelected)=\"onAutocompleteSelect($event)\">\n @if (loading) {\n <mat-option disabled id=\"loader\">\n <div class=\"loader-option\"><gio-loader></gio-loader></div>\n </mat-option>\n }\n @for (group of autocompleteFilteredOptions$ | async; track group.groupLabel) {\n @if (group.groupLabel) {\n <mat-optgroup [label]=\"group.groupLabel\">\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n </mat-optgroup>\n } @else {\n @for (option of group.groupOptions; track option.value) {\n <mat-option [value]=\"option.value\">\n {{ option.label }}\n </mat-option>\n }\n }\n }\n </mat-autocomplete>\n</mat-chip-grid>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule, MatIconRegistry } from '@angular/material/icon';\nimport { DomSanitizer } from '@angular/platform-browser';\n\n@NgModule({\n imports: [CommonModule, MatIconModule],\n exports: [MatIconModule],\n})\nexport class GioIconsModule {\n constructor(matIconRegistry: MatIconRegistry, sanitizer: DomSanitizer) {\n matIconRegistry.addSvgIconSetInNamespace('gio', sanitizer.bypassSecurityTrustResourceUrl('assets/gio-icons.svg'));\n }\n}\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 */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioLoaderComponent } from './gio-loader.component';\n\n@NgModule({\n imports: [CommonModule, GioIconsModule],\n declarations: [GioLoaderComponent],\n exports: [GioLoaderComponent],\n})\nexport class GioLoaderModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatChipsModule } from '@angular/material/chips';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatSelectModule } from '@angular/material/select';\n\nimport { GioLoaderModule } from '../gio-loader/gio-loader.module';\n\nimport { GioFormTagsInputComponent } from './gio-form-tags-input.component';\n\n@NgModule({\n imports: [\n CommonModule,\n A11yModule,\n MatChipsModule,\n MatInputModule,\n FormsModule,\n MatIconModule,\n MatAutocompleteModule,\n MatSelectModule,\n GioLoaderModule,\n ],\n declarations: [GioFormTagsInputComponent],\n exports: [GioFormTagsInputComponent],\n})\nexport class GioFormTagsInputModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel, TestKey } from '@angular/cdk/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\nimport { MatChipHarness, MatChipGridHarness } from '@angular/material/chips/testing';\n\nexport type GioFormTagsInputHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormTagsInputHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-tags-input';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormTagsInputHarnessFilters = {}): HarnessPredicate<GioFormTagsInputHarness> {\n return new HarnessPredicate(GioFormTagsInputHarness, options);\n }\n\n protected getMatChipGridHarness = this.locatorFor(MatChipGridHarness);\n protected getMatChipsHarness = this.locatorForAll(MatChipHarness);\n\n public async isDisabled(): Promise<boolean> {\n const matChipGrid = await this.getMatChipGridHarness();\n const matChips = await this.getMatChipsHarness();\n\n const chipListDisabled = await matChipGrid.isDisabled();\n const chipsDisabled = await parallel(() => matChips.map(async matChip => await matChip.isDisabled()));\n\n return chipListDisabled && chipsDisabled.every(chipDisabled => chipDisabled);\n }\n\n public async getTags(): Promise<string[]> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows();\n\n return parallel(() => chips.map(async chip => await chip.getText()));\n }\n\n public async addTag(tag: string, separatorKey: TestKey | 'blur' = TestKey.ENTER): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chipInput = await matChipGrid.getInput();\n if (!chipInput) {\n throw new Error('No tags input found!');\n }\n await chipInput.setValue(tag);\n if (separatorKey === 'blur') {\n await chipInput.blur();\n } else {\n await chipInput.sendSeparatorKey(separatorKey);\n }\n }\n\n public async removeTag(tag: string): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows({ text: tag });\n if (chips[0]) {\n await chips[0].remove();\n }\n }\n\n public async getMatAutocompleteHarness(): Promise<MatAutocompleteHarness | null> {\n const matAutocompleteHarness = await this.locatorForOptional(MatAutocompleteHarness)();\n\n return matAutocompleteHarness;\n }\n\n public async clickTag(tag: string): Promise<void> {\n const matChipGrid = await this.getMatChipGridHarness();\n\n const chips = await matChipGrid.getRows({ text: tag });\n if (chips[0]) {\n const host = await chips[0].host();\n await host.click();\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Directive, Input } from '@angular/core';\n\nexport type GioBannerTypes = 'error' | 'info' | 'success' | 'warning';\n\n@Component({\n selector: 'gio-banner',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerComponent {\n @Input()\n public type: GioBannerTypes = 'info';\n\n @Input()\n public icon?: string;\n\n @Input()\n public collapsible?: boolean = false;\n\n public collapse = false;\n\n public toggleCollapse() {\n if (!this.collapsible) {\n return;\n }\n this.collapse = !this.collapse;\n }\n}\n\n@Directive({\n selector: '[gioBannerBody]',\n standalone: false,\n})\nexport class GioBannerBodyDirective {}\n\n@Directive({\n selector: '[gioBannerAction]',\n standalone: false,\n})\nexport class GioBannerActionDirective {}\n\n@Component({\n selector: 'gio-banner-error',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerErrorComponent extends GioBannerComponent {\n public type = 'error' as GioBannerTypes;\n public icon = 'gio:chat-bubble-error';\n}\n\n@Component({\n selector: 'gio-banner-info',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerInfoComponent extends GioBannerComponent {\n public type = 'info' as GioBannerTypes;\n public icon = 'gio:chat-lines';\n}\n\n@Component({\n selector: 'gio-banner-success',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerSuccessComponent extends GioBannerComponent {\n public type = 'success' as GioBannerTypes;\n public icon = 'gio:chat-bubble-check';\n}\n\n@Component({\n selector: 'gio-banner-warning',\n templateUrl: './gio-banner.component.html',\n styleUrls: ['./gio-banner.component.scss'],\n standalone: false,\n})\nexport class GioBannerWarningComponent extends GioBannerComponent {\n public type = 'warning' as GioBannerTypes;\n public icon = 'gio:chat-bubble-warning';\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n class=\"banner\"\n [class.info]=\"type === 'info'\"\n [class.error]=\"type === 'error'\"\n [class.warning]=\"type === 'warning'\"\n [class.success]=\"type === 'success'\"\n>\n <div class=\"banner__wrapper\">\n @if (icon) {\n <div class=\"banner__wrapper__icon\">\n <mat-icon [svgIcon]=\"icon\"></mat-icon>\n </div>\n } @else {\n <div class=\"banner__wrapper__icon\">\n @switch (type) {\n @case ('info') {\n <mat-icon svgIcon=\"gio:chat-lines\"></mat-icon>\n }\n @case ('error') {\n <mat-icon svgIcon=\"gio:chat-bubble-error\"></mat-icon>\n }\n @case ('warning') {\n <mat-icon svgIcon=\"gio:chat-bubble-warning\"></mat-icon>\n }\n @case ('success') {\n <mat-icon svgIcon=\"gio:chat-bubble-check\"></mat-icon>\n }\n }\n </div>\n }\n <div class=\"banner__wrapper__head\">\n <div class=\"banner__wrapper__title\" [class.collapsible]=\"collapsible\" (click)=\"toggleCollapse()\">\n <ng-content></ng-content>\n @if (collapsible) {\n <div class=\"banner__wrapper__title__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\"></mat-icon>\n </button>\n </div>\n }\n </div>\n <div #body class=\"banner__wrapper__body\" [class.hide]=\"!body.children.length || (collapsible && !collapse)\">\n <ng-content select=\"[gioBannerBody]\"></ng-content>\n </div>\n </div>\n <div #action class=\"banner__wrapper__action\" [class.hide]=\"!action.children.length\">\n <ng-content select=\"[gioBannerAction]\"></ng-content>\n </div>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport {\n GioBannerComponent,\n GioBannerBodyDirective,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerActionDirective,\n} from './gio-banner.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatButtonModule, GioIconsModule],\n declarations: [\n GioBannerComponent,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerBodyDirective,\n GioBannerActionDirective,\n ],\n exports: [\n GioBannerComponent,\n GioBannerErrorComponent,\n GioBannerInfoComponent,\n GioBannerSuccessComponent,\n GioBannerWarningComponent,\n GioBannerBodyDirective,\n GioBannerActionDirective,\n ],\n})\nexport class GioBannerModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject, Injector, Type } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { isObject, isString } from 'lodash';\n\nexport type GioConfirmDialogData = {\n title?: string;\n content?:\n | string\n | {\n componentOutlet: Type<unknown>;\n componentInputs?: Record<string, unknown>;\n };\n confirmButton?: string;\n cancelButton?: string;\n disableCancel?: boolean;\n};\n\nexport type GioConfirmDialogResult = boolean;\n\n@Component({\n selector: 'gio-confirm-dialog',\n templateUrl: './gio-confirm-dialog.component.html',\n styleUrls: ['./gio-confirm-dialog.component.scss'],\n standalone: false,\n})\nexport class GioConfirmDialogComponent {\n public title: string;\n public content?: string;\n public contentComponentOutlet?: Type<unknown>;\n public contentComponentInputs?: Record<string, unknown>;\n public contentComponentInjector: Injector;\n public confirmButton: string;\n public cancelButton: string;\n public disableCancel: boolean;\n\n constructor(\n public dialogRef: MatDialogRef<GioConfirmDialogComponent, GioConfirmDialogResult>,\n @Inject(MAT_DIALOG_DATA) confirmDialogData: GioConfirmDialogData,\n private readonly parentInjector: Injector,\n ) {\n this.title = confirmDialogData?.title ?? 'Are you sure?';\n this.contentComponentInjector = parentInjector;\n\n if (isString(confirmDialogData?.content)) {\n this.content = confirmDialogData?.content;\n } else if (isObject(confirmDialogData?.content)) {\n this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;\n // TODO: When Angular 16 ready use ngComponentOutletInputs\n this.contentComponentInjector = Injector.create({\n providers: [{ provide: 'contentComponentInputs', useValue: confirmDialogData?.content.componentInputs }],\n parent: parentInjector,\n });\n }\n\n this.confirmButton = confirmDialogData?.confirmButton ?? 'Confirm';\n this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';\n this.disableCancel = confirmDialogData?.disableCancel ?? false;\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"confirm-dialog__title\">{{ title }}</h2>\n\n@if (content) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <p [innerHTML]=\"content\"></p>\n </mat-dialog-content>\n}\n\n@if (contentComponentOutlet) {\n <mat-dialog-content class=\"confirm-dialog__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; injector: contentComponentInjector\"></ng-container>\n </mat-dialog-content>\n}\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n @if (!disableCancel) {\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n }\n <button\n class=\"confirm-dialog__confirm-button\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n cdkFocusInitial\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n</mat-dialog-actions>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { GioConfirmDialogComponent } from './gio-confirm-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatDialogModule, A11yModule],\n declarations: [GioConfirmDialogComponent],\n exports: [GioConfirmDialogComponent],\n})\nexport class GioConfirmDialogModule {}\n","/*\n * Copyright (C) 2022 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 */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\n\nexport class GioConfirmDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-confirm-dialog';\n\n private getConfirmBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__confirm-button' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__cancel-button' }));\n\n public async confirm(): Promise<void> {\n const button = await this.getConfirmBtn();\n await button.click();\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject, Injector, Type } from '@angular/core';\nimport { MAT_DIALOG_DATA } from '@angular/material/dialog';\nimport { isObject, isString, toLower } from 'lodash';\n\nexport type GioConfirmAndValidateDialogData = {\n title?: string;\n warning?: string;\n content?:\n | string\n | {\n componentOutlet: Type<unknown>;\n componentInputs?: Record<string, unknown>;\n };\n validationMessage?: string;\n validationValue?: string;\n confirmButton?: string;\n cancelButton?: string;\n};\n\n@Component({\n selector: 'gio-confirm-and-validate-dialog',\n templateUrl: './gio-confirm-and-validate-dialog.component.html',\n styleUrls: ['./gio-confirm-and-validate-dialog.component.scss'],\n standalone: false,\n})\nexport class GioConfirmAndValidateDialogComponent {\n public title: string;\n public warning?: string;\n public content?: string;\n public contentComponentOutlet?: Type<unknown>;\n public contentComponentInputs?: Record<string, unknown>;\n public contentComponentInjector: Injector;\n public validationMessage?: string;\n public validationValue: string;\n public confirmButton: string;\n public cancelButton: string;\n\n public confirmValue?: string;\n public isValid = false;\n\n constructor(\n @Inject(MAT_DIALOG_DATA) confirmDialogData: GioConfirmAndValidateDialogData,\n private readonly parentInjector: Injector,\n ) {\n this.title = confirmDialogData?.title ?? 'Are you sure?';\n this.warning = confirmDialogData?.warning;\n this.contentComponentInjector = parentInjector;\n\n if (isString(confirmDialogData?.content)) {\n this.content = confirmDialogData?.content as string;\n } else if (isObject(confirmDialogData?.content)) {\n this.contentComponentOutlet = confirmDialogData?.content.componentOutlet;\n this.contentComponentInputs = confirmDialogData?.content.componentInputs;\n }\n\n this.validationMessage = extendValidationMessage(\n confirmDialogData?.validationMessage ?? 'Please, type <code>confirm</code> to confirm.',\n );\n this.validationValue = confirmDialogData?.validationValue ?? 'confirm';\n this.confirmButton = confirmDialogData?.confirmButton ?? 'Confirm';\n this.cancelButton = confirmDialogData?.cancelButton ?? 'Cancel';\n }\n\n public onConfirmChange(confirmValue: string): void {\n this.isValid = toLower(confirmValue) === toLower(this.validationValue);\n }\n}\n\nconst extendValidationMessage = (validationMessage: string) => {\n return validationMessage.replace('<code>', '<code class=\"gio-badge-warning\">');\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h2 mat-dialog-title class=\"confirm-dialog__title\">{{ title }}</h2>\n\n<mat-dialog-content class=\"confirm-dialog__body\">\n @if (warning) {\n <gio-banner-warning><span [innerHTML]=\"warning\"></span></gio-banner-warning>\n }\n @if (content) {\n <p class=\"confirm-dialog__body__content\" [innerHTML]=\"content\"></p>\n }\n\n @if (contentComponentOutlet) {\n <div class=\"confirm-dialog__body__content\">\n <ng-container *ngComponentOutlet=\"contentComponentOutlet; inputs: contentComponentInputs\"></ng-container>\n </div>\n }\n\n <p class=\"confirm-dialog__body__validate-message\" [innerHTML]=\"validationMessage\"></p>\n <mat-form-field class=\"confirm-dialog__body__validate-input\" appearance=\"outline\" floatLabel=\"always\">\n <mat-label>Confirm</mat-label>\n <input\n matInput\n cdkFocusInitial\n type=\"text\"\n [placeholder]=\"validationValue\"\n [ngModel]=\"confirmValue\"\n (ngModelChange)=\"onConfirmChange($event)\"\n required\n data-testid=\"confirm-input-dialog\"\n />\n </mat-form-field>\n</mat-dialog-content>\n\n<mat-dialog-actions align=\"end\" class=\"confirm-dialog__actions\">\n <button\n class=\"confirm-dialog__confirm-button\"\n [disabled]=\"!isValid\"\n color=\"warn\"\n mat-raised-button\n [mat-dialog-close]=\"true\"\n data-testid=\"confirm-dialog\"\n >\n {{ confirmButton }}\n </button>\n <button class=\"confirm-dialog__cancel-button\" mat-flat-button [mat-dialog-close]=\"false\">\n {{ cancelButton }}\n </button>\n</mat-dialog-actions>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { FormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { GioBannerModule } from '../gio-banner/gio-banner.module';\n\nimport { GioConfirmAndValidateDialogComponent } from './gio-confirm-and-validate-dialog.component';\n\n@NgModule({\n imports: [CommonModule, FormsModule, MatButtonModule, MatDialogModule, MatInputModule, MatFormFieldModule, A11yModule, GioBannerModule],\n declarations: [GioConfirmAndValidateDialogComponent],\n exports: [GioConfirmAndValidateDialogComponent],\n})\nexport class GioConfirmAndValidateDialogModule {}\n","/*\n * Copyright (C) 2022 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 */\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\n\nexport class GioConfirmAndValidateDialogHarness extends ComponentHarness {\n public static hostSelector = 'gio-confirm-and-validate-dialog';\n\n private getConfirmBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__confirm-button' }));\n private getCancelBtn = this.locatorFor(MatButtonHarness.with({ selector: '.confirm-dialog__cancel-button' }));\n private getConfirmInput = this.locatorFor(MatInputHarness);\n\n public async confirm(): Promise<void> {\n const confirmInput = await this.getConfirmInput();\n await confirmInput.setValue(await confirmInput.getPlaceholder());\n\n const button = await this.getConfirmBtn();\n if (!(await button.isDisabled())) {\n await button.click();\n }\n }\n\n public async cancel(): Promise<void> {\n const button = await this.getCancelBtn();\n await button.click();\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\n\nimport { ElAiPromptState, FeedbackRequestId } from './models/ElAiPromptState';\n\nexport type FeedbackType = 'helpful' | 'not-helpful';\n\nexport interface FeedbackSubmission {\n feedback: FeedbackType;\n feedbackRequestId?: FeedbackRequestId;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioElService {\n private _promptCallback?: (prompt: string) => Observable<ElAiPromptState> = undefined;\n private _feedbackCallback?: (feedbackSubmission: FeedbackSubmission) => Observable<void> = undefined;\n\n public prompt(prompt: string): Observable<ElAiPromptState> {\n if (this._promptCallback === undefined) {\n return of({\n message: `Error: no handler given (input prompt: ${prompt})`,\n });\n }\n return this._promptCallback(prompt);\n }\n\n public set promptCallback(value: (prompt: string) => Observable<ElAiPromptState>) {\n this._promptCallback = value;\n }\n\n public submitFeedback(feedback: FeedbackType, feedbackRequestId?: FeedbackRequestId): Observable<void> {\n const feedbackSubmission: FeedbackSubmission = {\n feedback,\n feedbackRequestId,\n };\n\n if (this._feedbackCallback === undefined) {\n return of(undefined);\n }\n return this._feedbackCallback(feedbackSubmission);\n }\n\n public set feedbackCallback(value: (feedbackSubmission: FeedbackSubmission) => Observable<void>) {\n this._feedbackCallback = value;\n }\n\n public isEnabled(): boolean {\n return this._promptCallback !== undefined;\n }\n}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { get } from 'lodash';\nexport type ElAiPromptState = PromptSuccess | PromptError;\n\nexport interface PromptSuccess {\n el: string;\n feedbackRequestId?: FeedbackRequestId;\n}\n\nexport interface FeedbackRequestId {\n chatId: string;\n userMessageId: string;\n agentMessageId: string;\n}\n\nexport function isPromptSuccess(value: unknown): value is PromptSuccess {\n return typeof value === 'object' && value !== null && typeof get(value, 'el') === 'string';\n}\n\nexport interface PromptError {\n message: string;\n}\n\nexport function isPromptError(value: unknown): value is PromptError {\n return typeof value === 'object' && value !== null && typeof get(value, 'message') === 'string';\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, Input, ViewChild } from '@angular/core';\nimport { MatTooltip } from '@angular/material/tooltip';\nimport { Clipboard } from '@angular/cdk/clipboard';\n\n@Directive()\nexport abstract class GioClipboardComponent {\n public label = 'Copy to clipboard';\n public tooltipHideDelay = 0;\n public clicked = false;\n\n @ViewChild('tooltip') public tooltip!: MatTooltip;\n\n @Input()\n public contentToCopy = '';\n @Input()\n public alwaysVisible = false;\n\n @Input()\n public tabIndex = undefined;\n\n constructor(private clipboard: Clipboard) {}\n\n public onCopied(success: boolean, tooltip: MatTooltip) {\n tooltip.message = success ? 'Copied!' : 'Failed to copy!';\n tooltip.hideDelay = 2000;\n tooltip.show();\n this.clicked = true;\n\n setTimeout(() => {\n tooltip.hide();\n }, 2000);\n\n setTimeout(() => {\n this.clicked = false;\n tooltip.message = this.label;\n tooltip.hideDelay = this.tooltipHideDelay;\n }, 2500);\n }\n\n public onKeyupSpace() {\n this.clipboard.copy(this.contentToCopy);\n if (this.tooltip) {\n this.onCopied(true, this.tooltip);\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\nimport { GioClipboardComponent } from './gio-clipboard.base.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[gioClipboardCopyWrapper]',\n styleUrls: ['./gio-clipboard-copy-wrapper.component.scss'],\n template: `\n <ng-content></ng-content>\n <button\n #tooltip=\"matTooltip\"\n type=\"button\"\n class=\"right\"\n [attr.aria-label]=\"label\"\n [class.clicked]=\"clicked\"\n [class.always-visible]=\"alwaysVisible\"\n [cdkCopyToClipboard]=\"contentToCopy\"\n (cdkCopyToClipboardCopied)=\"onCopied($event, tooltip)\"\n matRipple\n [matRippleCentered]=\"true\"\n [matRippleUnbounded]=\"true\"\n [matTooltip]=\"label\"\n [matTooltipPosition]=\"'after'\"\n (keyup.Space)=\"onKeyupSpace()\"\n >\n <mat-icon [inline]=\"true\">{{ clicked ? 'check' : 'content_copy' }}</mat-icon>\n </button>\n `,\n standalone: false,\n})\nexport class GioClipboardCopyWrapperComponent extends GioClipboardComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\nimport { GioClipboardComponent } from './gio-clipboard.base.component';\n\n@Component({\n selector: 'gio-clipboard-copy-icon',\n styleUrls: ['./gio-clipboard-copy-icon.component.scss'],\n template: `\n <button\n #tooltip=\"matTooltip\"\n type=\"button\"\n class=\"btn\"\n [attr.aria-label]=\"label\"\n [class.clicked]=\"clicked\"\n [cdkCopyToClipboard]=\"contentToCopy\"\n (cdkCopyToClipboardCopied)=\"onCopied($event, tooltip)\"\n matRipple\n [matRippleCentered]=\"true\"\n [matRippleUnbounded]=\"true\"\n [matTooltip]=\"label\"\n [matTooltipPosition]=\"'after'\"\n (keyup.Space)=\"onKeyupSpace()\"\n >\n <mat-icon>{{ clicked ? 'check' : 'content_copy' }}</mat-icon>\n </button>\n `,\n standalone: false,\n})\nexport class GioClipboardCopyIconComponent extends GioClipboardComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { ClipboardModule } from '@angular/cdk/clipboard';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioClipboardCopyWrapperComponent } from './gio-clipboard-copy-wrapper.component';\nimport { GioClipboardCopyIconComponent } from './gio-clipboard-copy-icon.component';\n\n@NgModule({\n imports: [CommonModule, MatIconModule, MatTooltipModule, MatRippleModule, ClipboardModule, MatButtonModule],\n declarations: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],\n exports: [GioClipboardCopyWrapperComponent, GioClipboardCopyIconComponent],\n})\nexport class GioClipboardModule {}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n ChangeDetectionStrategy,\n Component,\n Input,\n signal,\n WritableSignal,\n Signal,\n computed,\n inject,\n ViewChild,\n ElementRef,\n AfterViewInit,\n} from '@angular/core';\nimport { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInput } from '@angular/material/input';\nimport { MatButton } from '@angular/material/button';\nimport { MatProgressBarModule } from '@angular/material/progress-bar';\nimport { MatTooltipModule } from '@angular/material/tooltip';\nimport { MatIconButton } from '@angular/material/button';\n\nimport { GioElService } from '../gio-el.service';\nimport { ElAiPromptState, isPromptError, isPromptSuccess, FeedbackRequestId } from '../models/ElAiPromptState';\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\nimport { GioBannerModule } from '../../gio-banner/gio-banner.module';\nimport { GioClipboardModule } from '../../gio-clipboard/gio-clipboard.module';\n\ntype PromptState = 'loading' | ElAiPromptState;\ntype FeedbackState = 'helpful' | 'not-helpful' | null;\n\n@Component({\n selector: 'gio-el-prompt',\n templateUrl: './gio-el-prompt.component.html',\n styleUrl: './gio-el-prompt.component.scss',\n imports: [\n ReactiveFormsModule,\n MatFormFieldModule,\n MatInput,\n MatButton,\n MatProgressBarModule,\n MatTooltipModule,\n MatIconButton,\n GioIconsModule,\n GioBannerModule,\n GioClipboardModule,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class GioElPromptComponent implements AfterViewInit {\n public readonly maxPromptSize = 256;\n public aiRequestFormGroup: FormGroup<{\n prompt: FormControl<string | null>;\n }> = new FormGroup({\n prompt: new FormControl('', [Validators.required, Validators.maxLength(this.maxPromptSize)]),\n });\n public elService: GioElService = inject(GioElService);\n\n @Input()\n public responseState: WritableSignal<PromptState | null> = signal(null);\n @ViewChild('promptArea') public myInput!: ElementRef<HTMLInputElement>;\n\n public feedbackState: WritableSignal<FeedbackState> = signal(null);\n\n public get prompt() {\n return this.aiRequestFormGroup.get('prompt');\n }\n public el: Signal<string | null> = computed(() => {\n const state = this.responseState();\n return isPromptSuccess(state) ? state.el : null;\n });\n\n public feedbackRequestId: Signal<FeedbackRequestId | null> = computed(() => {\n const state = this.responseState();\n return isPromptSuccess(state) ? state.feedbackRequestId || null : null;\n });\n public errorMessage: Signal<string | null> = computed(() => {\n const state = this.responseState();\n return isPromptError(state) ? state.message : null;\n });\n\n public showFeedback: Signal<boolean> = computed(() => {\n const state = this.responseState();\n const feedback = this.feedbackState();\n return isPromptSuccess(state) && feedback === null;\n });\n\n public ngAfterViewInit() {\n setTimeout(() => {\n this.myInput.nativeElement.focus();\n }, 1000);\n }\n\n public sendPromptToIA() {\n const prompt = this.aiRequestFormGroup.get('prompt')?.value;\n if (!prompt) {\n return;\n }\n this.responseState.set('loading');\n this.feedbackState.set(null);\n this.elService.prompt(prompt).subscribe(reply => this.responseState.set(reply));\n }\n\n public submitFeedback(feedback: 'helpful' | 'not-helpful') {\n this.feedbackState.set(feedback);\n const expression = this.el();\n const feedbackRequestId = this.feedbackRequestId();\n if (expression) {\n this.elService.submitFeedback(feedback, feedbackRequestId || undefined).subscribe();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<h5>EL Assistant</h5>\n\n<div class=\"aiRequestForm\" [formGroup]=\"aiRequestFormGroup\">\n <mat-form-field class=\"example-full-width\">\n <mat-label>Describe the EL you want to generate</mat-label>\n <textarea #promptArea matInput formControlName=\"prompt\"></textarea>\n <mat-hint [align]=\"'end'\">{{ prompt?.value?.length || 0 }}/{{ maxPromptSize }}</mat-hint>\n </mat-form-field>\n\n @if (prompt?.touched && prompt?.hasError('maxlength')) {\n <gio-banner-error> Your prompt is too long. It should be less than {{ maxPromptSize }} characters. </gio-banner-error>\n }\n\n <button mat-raised-button [disabled]=\"aiRequestFormGroup.invalid\" (click)=\"sendPromptToIA()\">\n <mat-icon svgIcon=\"gio:magic-wand\" />\n Ask Newt AI\n </button>\n</div>\n\n<div class=\"ai-card__content__response\">\n @if (responseState() === 'loading') {\n <mat-progress-bar mode=\"indeterminate\" class=\"loading\" />\n }\n @if (el(); as expression) {\n <gio-banner-success>\n <code gioClipboardCopyWrapper [contentToCopy]=\"expression\" [alwaysVisible]=\"true\">{{ expression }}</code>\n </gio-banner-success>\n @if (showFeedback()) {\n <gio-banner-info>\n <div class=\"feedback-container\">\n <span class=\"feedback-question\">Was the answer helpful?</span>\n <div class=\"feedback-buttons\">\n <button\n mat-icon-button\n (click)=\"submitFeedback('helpful')\"\n matTooltip=\"Yes, this was helpful\"\n class=\"feedback-button feedback-button--helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-up\"></mat-icon>\n </button>\n <button\n mat-icon-button\n (click)=\"submitFeedback('not-helpful')\"\n matTooltip=\"No, this was not helpful\"\n class=\"feedback-button feedback-button--not-helpful\"\n >\n <mat-icon svgIcon=\"gio:thumbs-down\"></mat-icon>\n </button>\n </div>\n </div>\n </gio-banner-info>\n }\n }\n @if (errorMessage(); as message) {\n <gio-banner-error>\n Error\n <span gioBannerBody> {{ message }} </span>\n </gio-banner-error>\n }\n</div>\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-el-prompt/gio-el-prompt.component';\nexport * from './gio-el-assistant/gio-el-assistant.component';\nexport * from './models/ElAiPromptState';\nexport * from './gio-el.service';\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ElementRef, inject, Input, TemplateRef, ViewChild, ViewContainerRef } from '@angular/core';\nimport { MatButtonModule } from '@angular/material/button';\nimport { Overlay, OverlayPositionBuilder, OverlayRef } from '@angular/cdk/overlay';\nimport { TemplatePortal } from '@angular/cdk/portal';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\n@Component({\n selector: 'gio-popover',\n templateUrl: './gio-popover.component.html',\n styleUrl: './gio-popover.component.scss',\n imports: [GioIconsModule, MatButtonModule],\n})\nexport class GioPopoverComponent {\n private overlay = inject(Overlay);\n private overlayPositionBuilder = inject(OverlayPositionBuilder);\n private viewContainerRef = inject(ViewContainerRef);\n\n private overlayRef: OverlayRef | null = null;\n\n @Input()\n public trigger: ElementRef | null = null;\n\n @Input()\n public closeOnBackdropClick: boolean = true;\n\n @ViewChild('popoverContent')\n public popoverContent!: TemplateRef<never>;\n\n public open(): void {\n if (!this.trigger) return;\n\n if (this.overlayRef) {\n this.close();\n }\n\n const positionStrategy = this.overlayPositionBuilder.flexibleConnectedTo(this.trigger).withPositions([\n {\n originX: 'end',\n originY: 'top',\n overlayX: 'start',\n overlayY: 'top',\n },\n {\n originX: 'end',\n originY: 'bottom',\n overlayX: 'end',\n overlayY: 'top',\n },\n ]);\n\n this.overlayRef = this.overlay.create({\n positionStrategy,\n hasBackdrop: this.closeOnBackdropClick,\n backdropClass: 'cdk-overlay-transparent-backdrop',\n scrollStrategy: this.overlay.scrollStrategies.reposition(),\n });\n\n const portal = new TemplatePortal(this.popoverContent, this.viewContainerRef);\n this.overlayRef.attach(portal);\n\n this.overlayRef.backdropClick().subscribe(() => this.close());\n }\n\n public close(): void {\n this.overlayRef?.detach();\n this.overlayRef?.dispose();\n this.overlayRef = null;\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-template #popoverContent>\n <div class=\"popoverWrapper\" [class.withCloseButton]=\"!closeOnBackdropClick\">\n <button class=\"closeBtn\" mat-button aria-label=\"Close dialog\" (click)=\"close()\">\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n <ng-content />\n </div>\n</ng-template>\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, ElementRef, HostListener, Input } from '@angular/core';\n\nimport { GioPopoverComponent } from './gio-popover.component';\n\n@Directive({\n selector: '[gioPopoverTrigger]',\n})\nexport class PopoverTriggerDirective {\n @Input({ required: true })\n public gioPopoverTriggerFor!: GioPopoverComponent;\n\n @Input()\n public gioPopoverTriggerBasedOnElement?: ElementRef;\n\n constructor(private elementRef: ElementRef) {}\n\n @HostListener('click')\n public togglePopover(): void {\n if (this.gioPopoverTriggerFor) {\n // If a specific element is provided, use it as the trigger\n this.gioPopoverTriggerFor.trigger = this.gioPopoverTriggerBasedOnElement ?? this.elementRef;\n this.gioPopoverTriggerFor.open();\n }\n }\n}\n","/*\n * Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './gio-popover.component';\nexport * from './gio-popover-trigger.directive';\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 */\nimport { Component, inject } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioElPromptComponent, GioElService } from '../../gio-el';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../../gio-popover';\n\n@Component({\n selector: 'gio-el-assistant',\n template: `\n @if (isEnabled()) {\n <button gioPopoverTrigger [gioPopoverTriggerFor]=\"aiPopover\" mat-button type=\"button\">\n <mat-icon [svgIcon]=\"'gio:el'\" />\n </button>\n\n <gio-popover #aiPopover [closeOnBackdropClick]=\"true\">\n <gio-el-prompt />\n </gio-popover>\n }\n `,\n imports: [MatIconModule, GioPopoverComponent, GioElPromptComponent, PopoverTriggerDirective, MatButtonModule],\n})\nexport class GioElAssistantComponent {\n private readonly elService = inject(GioElService);\n\n public isEnabled(): boolean {\n return this.elService.isEnabled();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Component, ElementRef, forwardRef, HostBinding, Input, OnInit } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n UntypedFormArray,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n Validators,\n} from '@angular/forms';\nimport { dropRight, isEmpty } from 'lodash';\nimport { map, startWith, tap } from 'rxjs/operators';\nimport { Observable, of } from 'rxjs';\n\nimport { ElColumns, GioUiTypeConfig } from '../gio-form-json-schema/model/GioJsonSchema';\n\nexport type Header = { key: string; value: string };\n\nexport type FormHeaderFieldMapper = {\n keyName: string;\n valueName: string;\n};\n\nexport function isFormHeaderElConfig(value: unknown): value is ElColumns {\n const validValues = ['key', 'value', 'both', 'neither'];\n return validValues.includes(value as string);\n}\n\nconst HEADER_NAMES = [\n 'Accept',\n 'Accept-Charset',\n 'Accept-Encoding',\n 'Accept-Language',\n 'Accept-Ranges',\n 'Access-Control-Allow-Credentials',\n 'Access-Control-Allow-Headers',\n 'Access-Control-Allow-Methods',\n 'Access-Control-Allow-Origin',\n 'Access-Control-Expose-Headers',\n 'Access-Control-Max-Age',\n 'Access-Control-Request-Headers',\n 'Access-Control-Request-Method',\n 'Age',\n 'Allow',\n 'Authorization',\n 'Cache-Control',\n 'Connection',\n 'Content-Disposition',\n 'Content-Encoding',\n 'Content-ID',\n 'Content-Language',\n 'Content-Length',\n 'Content-Location',\n 'Content-MD5',\n 'Content-Range',\n 'Content-Type',\n 'Cookie',\n 'Date',\n 'ETag',\n 'Expires',\n 'Expect',\n 'Forwarded',\n 'From',\n 'Host',\n 'If-Match',\n 'If-Modified-Since',\n 'If-None-Match',\n 'If-Unmodified-Since',\n 'Keep-Alive',\n 'Last-Modified',\n 'Location',\n 'Link',\n 'Max-Forwards',\n 'MIME-Version',\n 'Origin',\n 'Pragma',\n 'Proxy-Authenticate',\n 'Proxy-Authorization',\n 'Proxy-Connection',\n 'Range',\n 'Referer',\n 'Retry-After',\n 'Server',\n 'Set-Cookie',\n 'Set-Cookie2',\n 'TE',\n 'Trailer',\n 'Transfer-Encoding',\n 'Upgrade',\n 'User-Agent',\n 'Vary',\n 'Via',\n 'Warning',\n 'WWW-Authenticate',\n 'X-Forwarded-For',\n 'X-Forwarded-Proto',\n 'X-Forwarded-Server',\n 'X-Forwarded-Host',\n 'X-Forwarded-Port',\n 'X-Forwarded-Prefix',\n];\n\n@Component({\n selector: 'gio-form-headers',\n templateUrl: './gio-form-headers.component.html',\n styleUrls: ['./gio-form-headers.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GioFormHeadersComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GioFormHeadersComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class GioFormHeadersComponent implements OnInit, ControlValueAccessor, Validator {\n @Input()\n public headerFieldMapper: FormHeaderFieldMapper = {\n keyName: 'key',\n valueName: 'value',\n };\n @Input()\n public config: GioUiTypeConfig['uiTypeProps'] = {\n elColumns: 'neither',\n };\n\n @Input()\n public autocompleteDisabled?: boolean = false;\n\n public mainForm: UntypedFormGroup;\n public headersFormArray = new UntypedFormArray([\n new UntypedFormGroup({\n key: new UntypedFormControl('', Validators.pattern('^\\\\S*$')),\n value: new UntypedFormControl(''),\n }),\n ]);\n\n @HostBinding('class.disabled')\n public disabled = false;\n\n private headers: Header[] = [];\n\n private _onChange: (_headers: Header[] | null) => void = () => ({});\n\n private _onTouched: () => void = () => ({});\n\n private filteredHeaderNames: Observable<string[]>[] = [];\n\n constructor(\n private readonly fm: FocusMonitor,\n private readonly elRef: ElementRef,\n ) {\n this.mainForm = new UntypedFormGroup({\n headers: this.headersFormArray,\n });\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: Record<string, string>[] | null): void {\n if (!value) {\n return;\n }\n\n this.headers = [...(value ?? [])].map((header: Record<string, string>) => {\n return {\n key: header[this.headerFieldMapper.keyName],\n value: header[this.headerFieldMapper.valueName],\n };\n });\n this.initHeadersForm();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (headers: unknown) => void): void {\n if (this.headerFieldMapper) {\n this._onChange = (headers: Header[] | null) => fn(this.toHeaders(headers));\n return;\n }\n this._onChange = fn;\n }\n\n private toHeaders(headers: Header[] | null) {\n return [...(headers ?? [])].map(header => {\n return {\n [this.headerFieldMapper.keyName]: header.key,\n [this.headerFieldMapper.valueName]: header.value,\n };\n });\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n if (isDisabled === this.disabled) {\n // do nothing if the disabled state is not changed\n return;\n }\n\n this.disabled = isDisabled;\n if (isDisabled) {\n this.headersFormArray.disable({ emitEvent: false });\n this.removeLastHeader();\n return;\n }\n this.headersFormArray.enable({ emitEvent: false });\n this.addEmptyHeader();\n }\n\n public ngOnInit(): void {\n // When user start to complete last header add new empty one a the end\n this.headersFormArray?.valueChanges\n .pipe(\n tap(headers => headers.length > 0 && this._onChange(removeLastEmptyHeader(headers))),\n tap((headers: Header[]) => {\n if (headers.length > 0 && (headers[headers.length - 1].key !== '' || headers[headers.length - 1].value !== '')) {\n this.addEmptyHeader();\n }\n }),\n )\n .subscribe();\n\n this.fm.monitor(this.elRef.nativeElement, true).subscribe(() => {\n this._onTouched();\n });\n }\n\n public initHeadersForm(): void {\n // Clear all previous headers\n this.headersFormArray.clear();\n\n // Populate headers array from headers\n this.headers.forEach(({ key, value }, headerIndex) => {\n this.headersFormArray.push(\n new UntypedFormGroup({\n key: this.initKeyFormControl(key, headerIndex),\n value: new UntypedFormControl({ value, disabled: this.disabled }),\n }),\n {\n emitEvent: false,\n },\n );\n });\n\n // add one empty header a the end\n this.addEmptyHeader();\n }\n\n public getFilteredHeaderNames(headerIndex: number, header: Header): Observable<string[]> {\n if (!this.filteredHeaderNames[headerIndex]) {\n return this.filteredHeaderNames[headerIndex];\n }\n if (header.key != null && header.key != '') {\n this.filteredHeaderNames[headerIndex] = of(header.key).pipe(map(value => this._filter(value)));\n return this.filteredHeaderNames[headerIndex];\n }\n return of(HEADER_NAMES);\n }\n\n // From Validator interface\n public validate(_control: AbstractControl): ValidationErrors | null {\n if (this.headersFormArray.invalid) {\n return { invalid: true };\n }\n return null;\n }\n\n private initKeyFormControl(key: string, headerIndex: number) {\n const control = new UntypedFormControl({ value: key, disabled: this.disabled }, Validators.pattern('^\\\\S*$'));\n const filteredKeys = control.valueChanges.pipe(\n startWith(''),\n map(value => this._filter(value)),\n );\n this.filteredHeaderNames.splice(headerIndex, 0, filteredKeys);\n return control;\n }\n\n public onDeleteHeader(headerIndex: number): void {\n this._onTouched();\n this.headersFormArray.removeAt(headerIndex);\n }\n\n private addEmptyHeader() {\n if (this.disabled) {\n return;\n }\n\n this.headersFormArray.push(\n new UntypedFormGroup({\n key: this.initKeyFormControl('', this.headersFormArray.length),\n value: new UntypedFormControl(''),\n }),\n { emitEvent: false },\n );\n }\n\n private removeLastHeader() {\n this.headersFormArray.removeAt(this.headersFormArray.length - 1, { emitEvent: false });\n }\n\n private _filter(value: string): string[] {\n const filterValue = value.toLowerCase();\n return HEADER_NAMES.filter(option => option.toLowerCase().includes(filterValue));\n }\n}\n\nconst removeLastEmptyHeader = (headers: Header[]) => {\n const lastHeader = headers[headers.length - 1];\n\n if (lastHeader && isEmpty(lastHeader.key) && isEmpty(lastHeader.value)) {\n return dropRight(headers);\n }\n return headers;\n};\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-headers-label\"></ng-content></div>\n<table class=\"gio-form-headers__table gio-table-light\" [class.disabled]=\"disabled\" [formGroup]=\"mainForm\">\n <thead>\n <tr>\n <th>KEY</th>\n <th>VALUE</th>\n </tr>\n </thead>\n <tbody formArrayName=\"headers\">\n @for (control of headersFormArray.controls; track control; let headerIndex = $index) {\n <tr class=\"gio-form-headers__table__header-row\" [formGroupName]=\"headerIndex\">\n <td class=\"gio-form-headers__table__header-row__td-key\">\n <div class=\"gio-form-headers__table__header-row__td-key__field\">\n <textarea\n formControlName=\"key\"\n matInput\n placeholder=\"Name...\"\n cdkTextareaAutosize\n cdkAutosizeMinRows=\"1\"\n [matAutocomplete]=\"headerNamesAutocomplete\"\n [matAutocompleteDisabled]=\"autocompleteDisabled\"\n ></textarea>\n @if (config?.elColumns === 'key' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n </div>\n @if (control.get('key')?.hasError('pattern')) {\n <mat-error>\n Header name must not contain spaces. (RegExp: {{ control.get('key')?.getError('pattern')?.requiredPattern }})\n </mat-error>\n }\n <mat-autocomplete #headerNamesAutocomplete=\"matAutocomplete\">\n @for (headerName of getFilteredHeaderNames(headerIndex, control.value) | async; track headerName) {\n <mat-option [value]=\"headerName\">{{ headerName }}</mat-option>\n }\n </mat-autocomplete>\n </td>\n <td class=\"gio-form-headers__table__header-row__td-value\">\n <div class=\"gio-form-headers__table__header-row__td-value__field\">\n <textarea formControlName=\"value\" matInput placeholder=\"Value...\" cdkTextareaAutosize cdkAutosizeMinRows=\"1\"></textarea>\n @if (config?.elColumns === 'value' || config?.elColumns === 'both') {\n <gio-el-assistant />\n }\n @if (headersFormArray.controls.length - 1 !== headerIndex) {\n <button\n class=\"gio-form-headers__table__header-row__td-value__button\"\n mat-button\n aria-label=\"Delete\"\n (click)=\"onDeleteHeader(headerIndex)\"\n >\n <mat-icon svgIcon=\"gio:cancel\" />\n </button>\n }\n </div>\n </td>\n </tr>\n }\n </tbody>\n</table>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-headers-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormHeadersLabelComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { MatOptionModule } from '@angular/material/core';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\nimport { GioElAssistantComponent, GioElPromptComponent } from '../gio-el';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../gio-popover';\n\nimport { GioFormHeadersComponent } from './gio-form-headers.component';\nimport { GioFormHeadersLabelComponent } from './gio-form-headers-label.component';\n\n@NgModule({\n imports: [\n CommonModule,\n MatInputModule,\n MatFormFieldModule,\n ReactiveFormsModule,\n GioIconsModule,\n MatButtonModule,\n MatAutocompleteModule,\n MatOptionModule,\n GioElPromptComponent,\n GioPopoverComponent,\n PopoverTriggerDirective,\n GioElAssistantComponent,\n ],\n declarations: [GioFormHeadersComponent, GioFormHeadersLabelComponent],\n exports: [GioFormHeadersComponent, GioFormHeadersLabelComponent],\n})\nexport class GioFormHeadersModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';\nimport { MatButtonHarness } from '@angular/material/button/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\n\nexport class GioFormHeadersHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-headers';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormColorInputHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: BaseHarnessFilters = {}): HarnessPredicate<GioFormHeadersHarness> {\n return new HarnessPredicate(GioFormHeadersHarness, options);\n }\n\n private getHeaderRowsElement = this.locatorForAll('tr.gio-form-headers__table__header-row');\n\n private async getHeaderRowInputKey(rowIndex: number): Promise<MatInputHarness> {\n const keyInputs = await this.locatorForAll(MatInputHarness.with({ selector: '[formControlName=key]' }))();\n return keyInputs[rowIndex];\n }\n\n private async getHeaderRowInputKeyAutocomplete(rowIndex: number): Promise<MatAutocompleteHarness> {\n const autoCompletes = await this.locatorForAll(MatAutocompleteHarness.with({ ancestor: `tr.gio-form-headers__table__header-row` }))();\n return autoCompletes[rowIndex];\n }\n\n private async getHeaderRowInputValue(rowIndex: number): Promise<MatInputHarness> {\n const inputs = await this.locatorForAll(MatInputHarness.with({ selector: '[formControlName=value]' }))();\n return inputs[rowIndex];\n }\n\n private async getHeaderRowRemoveButton(rowIndex: number): Promise<MatButtonHarness> {\n const buttons = await this.locatorForAll(MatButtonHarness.with({ selector: '[aria-label=\"Delete\"]' }))();\n return buttons[rowIndex];\n }\n\n public async getHeaderRows(): Promise<\n {\n keyInput: MatInputHarness;\n keyAutocomplete: MatAutocompleteHarness;\n valueInput: MatInputHarness;\n removeButton: MatButtonHarness | null;\n }[]\n > {\n const rows = await this.getHeaderRowsElement();\n\n return Promise.all(\n rows.map(async (_, rowIndex) => ({\n keyInput: await this.getHeaderRowInputKey(rowIndex),\n keyAutocomplete: await this.getHeaderRowInputKeyAutocomplete(rowIndex),\n valueInput: await this.getHeaderRowInputValue(rowIndex),\n removeButton: await this.getHeaderRowRemoveButton(rowIndex),\n })),\n );\n }\n\n public async getLastHeaderRow(): Promise<{ keyInput: MatInputHarness; valueInput: MatInputHarness }> {\n const rows = await this.getHeaderRowsElement();\n\n return {\n keyInput: await this.getHeaderRowInputKey(rows.length - 1),\n valueInput: await this.getHeaderRowInputValue(rows.length - 1),\n };\n }\n\n public async addHeader({ key, value }: { key: string; value: string }): Promise<void> {\n const { keyInput, valueInput } = await this.getLastHeaderRow();\n\n await keyInput.setValue(key);\n await valueInput.setValue(value);\n }\n\n public async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('disabled');\n }\n\n public async getValue(): Promise<{ key: string; value: string }[]> {\n const rows = await this.getHeaderRows();\n\n if (!(await this.isDisabled())) {\n // Remove last empty value\n rows.pop();\n }\n\n return parallel(() => rows.map(async r => ({ key: await r.keyInput.getValue(), value: await r.valueInput.getValue() })));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-add-button',\n templateUrl: './gio-form-file-picker-add-button.component.html',\n styleUrls: ['./gio-form-file-picker-add-button.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerAddButtonComponent {}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"add-button\" matRipple>\n <div #content><ng-content></ng-content></div>\n @if (!content.children.length) {\n <div class=\"add-button__content\">\n <mat-icon class=\"add-button__content__image\" svgIcon=\"gio:upload\"></mat-icon>\n <span class=\"add-button__content__text\">Drag your file</span>\n </div>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-empty',\n templateUrl: './gio-form-file-picker-empty.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerEmptyComponent {}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #content><ng-content></ng-content></div>\n@if (!content.children.length) {\n <span> No file defined </span>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-file-picker-label',\n templateUrl: './gio-form-file-picker-label.component.html',\n styleUrls: ['./gio-form-file-picker-label.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerLabelComponent {}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"mat-caption\"><ng-content></ng-content></div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport class NewFile {\n constructor(\n public readonly name: string,\n public readonly dataUrl: string,\n public readonly file?: File,\n ) {}\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, Input, OnInit, Optional, Self } from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { isArray, isNil, remove } from 'lodash';\nimport { ReadFile, ReadMode } from 'ngx-file-helpers';\nimport { tap } from 'rxjs/operators';\n\nimport { NewFile } from './gio-form-file-picker.model';\n\ntype FileValue = {\n name: string;\n isNew: boolean;\n dataUrl: string;\n file?: File;\n isImage: boolean;\n};\n\n@Component({\n selector: 'gio-form-file-picker',\n templateUrl: './gio-form-file-picker.component.html',\n styleUrls: ['./gio-form-file-picker.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormFilePickerComponent implements OnInit, ControlValueAccessor {\n @Input()\n public multiple = false;\n\n @Input()\n public accept = '*';\n\n @Input()\n public set disabled(disabled: boolean) {\n this.setDisabledState(disabled);\n }\n\n public fileValues: FileValue[] = [];\n public readMode: ReadMode = ReadMode.DataURL;\n public dragHover = false;\n public isDisabled = false;\n\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onChangeCallback: (files: (string | NewFile)[]) => void = () => {};\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n private onTouchedCallback = () => {};\n\n constructor(\n private changeDetectorRef: ChangeDetectorRef,\n @Self() @Optional() public ngControl?: NgControl,\n ) {\n if (ngControl) {\n // Setting the value accessor directly (instead of using\n // the providers `NG_VALUE_ACCESSOR`) to avoid running into a circular import.\n ngControl.valueAccessor = this;\n }\n }\n\n public ngOnInit(): void {\n if (this.ngControl && this.ngControl.statusChanges) {\n // As the change detection is OnPush we have to markForCheck the component after a validation change because no input/output or values have changed\n this.ngControl.statusChanges.pipe(tap(() => this.changeDetectorRef.markForCheck())).subscribe();\n }\n }\n\n public get isComplete(): boolean {\n return (!this.multiple && this.fileValues.length === 1) || false;\n }\n\n public get isValid(): boolean | null {\n return !this.ngControl || !this.ngControl.touched || this.ngControl.valid;\n }\n\n // implement by ControlValueAccessor\n public async writeValue(inputs?: string[]): Promise<void> {\n if (isNil(inputs) || !isArray(inputs)) {\n this.fileValues = [];\n return Promise.resolve();\n }\n\n this.fileValues = await Promise.all(\n inputs.map(async input => ({\n isNew: false,\n name: input,\n dataUrl: input,\n isImage: await isImgUrl(input),\n })),\n );\n this.changeDetectorRef.markForCheck();\n }\n\n // implement by ControlValueAccessor\n public registerOnChange(fn: (v: unknown) => void): void {\n this.onChangeCallback = fn;\n }\n\n // implement by ControlValueAccessor\n public registerOnTouched(fn: () => void): void {\n this.onTouchedCallback = fn;\n }\n\n // implement by ControlValueAccessor\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n }\n\n public onFilePicked(event: ReadFile): void {\n this.handleReceivedFileEvent(event);\n }\n\n public onFileDropped(event: ReadFile): void {\n this.handleReceivedFileEvent(event);\n }\n\n public onRemoveFile(file: FileValue): void {\n this.onTouchedCallback();\n this.dragHover = false;\n\n remove(this.fileValues, { name: file.name });\n\n this.emitFileValue();\n }\n\n public onTouched(): void {\n this.onTouchedCallback();\n this.dragHover = false;\n }\n\n public onDragEnter($event: DragEvent): void {\n const el = $event.target as HTMLElement | null;\n if (el) {\n this.dragHover = true;\n this.onTouchedCallback();\n }\n }\n\n public onDragOver($event: DragEvent): void {\n const el = $event.target as HTMLElement | null;\n\n if (el) {\n this.dragHover = false;\n this.onTouchedCallback();\n }\n }\n\n private handleReceivedFileEvent(event: ReadFile) {\n this.onTouchedCallback();\n\n this.dragHover = false;\n\n if (!this.multiple) {\n this.fileValues = [];\n }\n\n this.fileValues.push({\n name: event.name,\n isNew: true,\n dataUrl: event.content,\n file: event.underlyingFile,\n isImage: event.type.startsWith('image/'),\n });\n\n this.emitFileValue();\n }\n\n private emitFileValue() {\n this.onChangeCallback(\n this.fileValues.map(fileValue =>\n fileValue.isNew ? new NewFile(fileValue.name, fileValue.dataUrl, fileValue.file) : fileValue.dataUrl,\n ),\n );\n }\n}\n\nconst isImgUrl = (url: string): Promise<boolean> => {\n try {\n const img = new Image();\n img.src = url;\n return new Promise(resolve => {\n img.onerror = () => resolve(false);\n img.onload = () => resolve(true);\n });\n } catch (error) {\n return Promise.resolve(false);\n }\n};\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-content select=\"gio-form-file-picker-label\"></ng-content>\n@if (!isDisabled) {\n <div\n class=\"file-picker\"\n ngxFileDropzone\n [readMode]=\"readMode\"\n (fileDrop)=\"onFileDropped($event)\"\n (dragenter)=\"onDragEnter($event)\"\n (dragleave)=\"onDragOver($event)\"\n (blur)=\"dragHover = false\"\n >\n @if (!isComplete) {\n <div\n class=\"file-picker__add-button\"\n [class.complete]=\"isComplete\"\n [class.error]=\"!isValid\"\n [class.drag-hover]=\"dragHover\"\n ngxFilePicker\n [accept]=\"accept\"\n [readMode]=\"readMode\"\n [multiple]=\"multiple\"\n (filePick)=\"onFilePicked($event)\"\n (click)=\"onTouched()\"\n >\n <div #addButton class=\"file-picker__add-button__content\"><ng-content select=\"gio-form-file-picker-add-button\"></ng-content></div>\n @if (addButton.children.length === 0) {\n <gio-form-file-picker-add-button></gio-form-file-picker-add-button>\n }\n </div>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview\" [class.drag-hover]=\"dragHover\" [class.error]=\"!isValid\">\n <a class=\"file-picker__preview__delete\" (click)=\"onRemoveFile(fileValue)\">\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </a>\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n} @else {\n <div class=\"file-picker disabled\">\n @if (fileValues.length === 0) {\n <span class=\"file-picker__preview-empty disabled\">\n @if (previewEmpty.children.length === 0) {\n <gio-form-file-picker-empty class=\"file-picker__preview-empty__default\"></gio-form-file-picker-empty>\n }\n <span #previewEmpty><ng-content select=\"gio-form-file-picker-empty\"></ng-content></span>\n </span>\n }\n @for (fileValue of fileValues; track fileValue) {\n <div class=\"file-picker__preview disabled\">\n <ng-container *ngTemplateOutlet=\"filePreview; context: { fileValue: fileValue }\"></ng-container>\n </div>\n }\n </div>\n}\n\n<ng-template #filePreview let-fileValue=\"fileValue\">\n @if (fileValue.isImage) {\n <div class=\"file-picker__preview__image\" [style.background-image]=\"'url(' + fileValue.dataUrl + ')'\"></div>\n }\n @if (!fileValue.isImage) {\n <div class=\"file-picker__preview__file\">\n <span class=\"file-picker__preview__file__name\">{{ fileValue.name }}</span>\n </div>\n }\n</ng-template>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { NgxFileHelpersModule } from 'ngx-file-helpers';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormFilePickerAddButtonComponent } from './gio-form-file-picker-add-button/gio-form-file-picker-add-button.component';\nimport { GioFormFilePickerEmptyComponent } from './gio-form-file-picker-empty/gio-form-file-picker-empty.component';\nimport { GioFormFilePickerLabelComponent } from './gio-form-file-picker-label/gio-form-file-picker-label.component';\nimport { GioFormFilePickerComponent } from './gio-form-file-picker.component';\n\n@NgModule({\n declarations: [\n GioFormFilePickerComponent,\n GioFormFilePickerAddButtonComponent,\n GioFormFilePickerEmptyComponent,\n GioFormFilePickerLabelComponent,\n ],\n exports: [\n GioFormFilePickerComponent,\n GioFormFilePickerAddButtonComponent,\n GioFormFilePickerEmptyComponent,\n GioFormFilePickerLabelComponent,\n ],\n imports: [CommonModule, ReactiveFormsModule, NgxFileHelpersModule, MatRippleModule, MatIconModule, GioIconsModule],\n})\nexport class GioFormFilePickerModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\n\ninterface GioFormFilePickerHarnessFilters extends BaseHarnessFilters {\n /** Filters based on the formControlName */\n formControlName?: string;\n}\n\nexport class GioFormFilePickerInputHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-file-picker';\n\n public static with(options: GioFormFilePickerHarnessFilters): HarnessPredicate<GioFormFilePickerInputHarness> {\n return new HarnessPredicate(GioFormFilePickerInputHarness, options).addOption(\n 'formControlName',\n options.formControlName,\n (harness, text) => HarnessPredicate.stringMatches(harness.getFormControlName(), text),\n );\n }\n\n /**\n * Hack force onload on Image Object\n * GioFormFilePickerComponent use a Image Object to check if the file is an image.\n * This method allow to force onload event on the Image Object.\n * @param excludeSrc call onerror instead of onload for this src\n */\n public static forceImageOnload(excludeSrc: string[] = []): void {\n Object.defineProperties(Image.prototype, {\n src: {\n get: function () {\n return this._src;\n },\n set: function (src) {\n this._src = src;\n },\n },\n onload: {\n get: function () {\n return this._onload;\n },\n set: function (fn) {\n this._onload = fn;\n\n excludeSrc.includes(this._src) ? this.onerror() : this.onload();\n },\n },\n });\n }\n\n protected _mainDiv = this.locatorFor('.file-picker__add-button');\n protected _hasErrorClass = this.locatorForOptional('[class=\"file-picker__add-button error\"]');\n protected _inputFile = this.locatorFor('input[type=\"file\"]');\n protected _getDisabledElement = this.locatorForOptional('.disabled');\n\n private async getFormControlName(): Promise<string | null> {\n const filePickerInputHarness = await this.host();\n return filePickerInputHarness.getAttribute('formControlName');\n }\n\n public async hasErrorClass(): Promise<boolean> {\n return !!(await this._hasErrorClass());\n }\n\n public async clickInside(): Promise<void> {\n await (await this._mainDiv()).click();\n }\n\n public async getInputFileAccept(): Promise<string | null> {\n return await (await this._inputFile()).getAttribute('accept');\n }\n\n public async getPreviews(): Promise<(string | null)[]> {\n const previewImages = await this.locatorForAll('.file-picker__preview__image')();\n const previewFiles = await this.locatorForAll('.file-picker__preview__file')();\n\n return Promise.all([\n ...previewImages.map(previewImage => previewImage.getAttribute('style')),\n ...previewFiles.map(previewFile => previewFile.text()),\n ]);\n }\n\n public async isAddButtonPresent(): Promise<boolean> {\n return (await this.locatorForOptional('gio-form-file-picker-add-button')()) !== null;\n }\n\n public async isDisabled(): Promise<boolean> {\n return !!(await this._getDisabledElement());\n }\n\n public async deleteFile(fileIndex = 0): Promise<void> {\n const deleteButtons = await this.locatorForAll('.file-picker__preview__delete')();\n\n return deleteButtons[fileIndex].click();\n }\n\n public async dropFiles(files: File[]): Promise<void> {\n const filePickerDropZone = await this.locatorFor('.file-picker')();\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n await filePickerDropZone.dispatchEvent('drop', { dataTransfer: { files } } as any);\n\n // Wait event is dispatched\n await new Promise(resolve => setTimeout(resolve, 50));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nexport * from './gio-form-file-picker.module';\nexport * from './gio-form-file-picker.component';\nexport * from './gio-form-file-picker.model';\nexport * from './gio-form-file-picker-add-button/gio-form-file-picker-add-button.component';\nexport * from './gio-form-file-picker-empty/gio-form-file-picker-empty.component';\nexport * from './gio-form-file-picker-label/gio-form-file-picker-label.component';\n\nexport * from './gio-form-file-picker.component.harness';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AfterViewInit, Component, ElementRef, HostBinding, Input, OnChanges, ViewChild } from '@angular/core';\nimport { toSvg } from 'jdenticon';\n\n@Component({\n selector: 'gio-avatar',\n templateUrl: './gio-avatar.component.html',\n styleUrls: ['./gio-avatar.component.scss'],\n standalone: false,\n})\nexport class GioAvatarComponent implements AfterViewInit, OnChanges {\n public imgSrc: string | null = null;\n public defaultSize: number;\n public finalSize!: number;\n\n @Input()\n public set src(src: string | null) {\n this.imgSrc = src || null;\n }\n @Input()\n public name = '';\n @Input()\n public size!: number;\n @Input()\n public roundedBorder = false;\n\n @ViewChild('avatarContainer') public avatarContainerEleRef!: ElementRef;\n\n @HostBinding('style.width.px') public width = this.size;\n @HostBinding('style.height.px') public height = this.size;\n\n constructor(private hostEl: ElementRef) {\n this.defaultSize = Math.min(Number(this.hostEl.nativeElement.offsetWidth), Number(this.hostEl.nativeElement.offsetHeight)) || 110;\n }\n\n public ngOnChanges(): void {\n this.finalSize = this.size || this.defaultSize;\n this.width = this.finalSize;\n this.height = this.finalSize;\n }\n\n public ngAfterViewInit(): void {\n if (this.imgSrc != null) {\n return;\n }\n if (this.avatarContainerEleRef) {\n this.avatarContainerEleRef.nativeElement.innerHTML = toSvg(this.name, this.finalSize, { backColor: '#FFF', padding: 0 });\n }\n }\n\n public onImgError(): void {\n this.imgSrc = null;\n this.ngAfterViewInit();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #avatarContainer class=\"gio-avatar\" [class.rounded]=\"roundedBorder\">\n @if (imgSrc) {\n <img class=\"gio-avatar__img\" [src]=\"imgSrc\" alt=\"Avatar picture\" [width]=\"finalSize\" (error)=\"onImgError()\" />\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioAvatarComponent } from './gio-avatar.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GioAvatarComponent],\n exports: [GioAvatarComponent],\n})\nexport class GioAvatarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-avatar.component';\nexport * from './gio-avatar.module';\n","/*\n * Copyright (C) 2022 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 */\nimport { Directive, TemplateRef } from '@angular/core';\n\n@Directive({\n selector: '[gioBreadcrumbItem]',\n standalone: false,\n})\nexport class GioBreadcrumbItemDirective {\n constructor(public templateRef: TemplateRef<unknown>) {}\n}\n","/*\n * Copyright (C) 2022 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 */\nimport { Component, ContentChildren, QueryList } from '@angular/core';\n\nimport { GioBreadcrumbItemDirective } from './gio-breadcrumb-item.directive';\n\n@Component({\n selector: 'gio-breadcrumb',\n templateUrl: './gio-breadcrumb.component.html',\n styleUrls: ['./gio-breadcrumb.component.scss'],\n standalone: false,\n})\nexport class GioBreadcrumbComponent {\n @ContentChildren(GioBreadcrumbItemDirective)\n public itemDirectives!: QueryList<GioBreadcrumbItemDirective>;\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-breadcrumb\">\n @for (item of itemDirectives; track item; let first = $first) {\n @if (!first) {\n <mat-icon svgIcon=\"gio:nav-arrow-right\" class=\"gio-breadcrumb__icon\"></mat-icon>\n }\n <ng-container *ngTemplateOutlet=\"item.templateRef\"></ng-container>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioBreadcrumbComponent } from './gio-breadcrumb.component';\nimport { GioBreadcrumbItemDirective } from './gio-breadcrumb-item.directive';\n\n@NgModule({\n imports: [CommonModule, GioIconsModule],\n declarations: [GioBreadcrumbComponent, GioBreadcrumbItemDirective],\n exports: [GioBreadcrumbComponent, GioBreadcrumbItemDirective],\n})\nexport class GioBreadcrumbModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-breadcrumb.module';\nexport * from './gio-breadcrumb.component';\nexport * from './gio-breadcrumb-item.directive';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { MAT_FORM_FIELD_DEFAULT_OPTIONS } from '@angular/material/form-field';\n\n@NgModule({\n providers: [{ provide: MAT_FORM_FIELD_DEFAULT_OPTIONS, useValue: { appearance: 'outline', subscriptSizing: 'dynamic' } }],\n})\nexport class GioMatConfigModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-mat-config.module';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive } from '@angular/core';\n\nexport const GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR = 'gioFormFocusInvalidIgnore';\n\n@Directive({\n // eslint-disable-next-line @angular-eslint/directive-selector\n selector: `[${GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR}]`,\n standalone: false,\n})\nexport class GioFormFocusInvalidIgnoreDirective {}\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 */\nimport { Injectable } from '@angular/core';\nimport { FormlyFieldConfig } from '@ngx-formly/core';\nimport { FormlyJsonschema } from '@ngx-formly/core/json-schema';\nimport { JSONSchema7 } from 'json-schema';\nimport { castArray, get, isArray, isEmpty, isNil, isObject, set } from 'lodash';\nimport { Observable } from 'rxjs';\nimport { AbstractControl } from '@angular/forms';\n\nimport { GioIfConfig, GioJsonSchema } from './model/GioJsonSchema';\nimport { GioJsonSchemaContext } from './model/GioJsonSchemaContext';\n\n@Injectable()\nexport class GioFormlyJsonSchemaService {\n constructor(private readonly formlyJsonschema: FormlyJsonschema) {}\n\n public toFormlyFieldConfig(jsonSchema: GioJsonSchema, context?: GioJsonSchemaContext): FormlyFieldConfig {\n return this.formlyJsonschema.toFieldConfig(jsonSchema, {\n map: (mappedField: FormlyFieldConfig, mapSource: JSONSchema7) => {\n mappedField = this.uiTypeMap(mappedField, mapSource); // Keep first in order to correctly construct tree\n mappedField = this.displayIfMap(mappedField, mapSource, context);\n mappedField = this.uiBorder(mappedField, mapSource);\n mappedField = this.formatMap(mappedField, mapSource);\n mappedField = this.bannerMap(mappedField, mapSource);\n mappedField = this.toggleMap(mappedField, mapSource);\n mappedField = this.disableIfMap(mappedField, mapSource, context);\n mappedField = this.enumLabelMap(mappedField, mapSource);\n mappedField = this.sanitizeOneOf(mappedField, mapSource);\n mappedField = this.deprecatedMap(mappedField, mapSource);\n mappedField = this.uniqueValueMap(mappedField, mapSource);\n\n return mappedField;\n },\n });\n }\n\n private displayIfMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7, context?: GioJsonSchemaContext): FormlyFieldConfig {\n const displayIf = getGioIf(mapSource.gioConfig?.displayIf);\n if (displayIf) {\n mappedField.expressions = {\n ...mappedField.expressions,\n hide: field => {\n let parentField = field;\n while (parentField.parent) {\n parentField = parentField.parent;\n }\n\n try {\n return !displayIf({\n value: parentField.model,\n context,\n });\n } catch (e) {\n // Ignore the error and display the field\n return false;\n }\n },\n };\n }\n\n return mappedField;\n }\n\n private uiTypeMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.gioConfig?.uiType) {\n // Clean the field to avoid conflict and init simple one with given type\n mappedField = {\n key: mappedField.key,\n type: mapSource.gioConfig?.uiType,\n\n props: {\n ...mappedField.props,\n ...mapSource.gioConfig?.uiTypeProps,\n },\n };\n }\n\n return mappedField;\n }\n\n private uiBorder(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.gioConfig?.uiBorder) {\n mappedField = {\n ...mappedField,\n props: {\n ...mappedField.props,\n uiBorder: mapSource.gioConfig?.uiBorder,\n },\n };\n }\n\n return mappedField;\n }\n\n private formatMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.type === 'string' && mapSource.format === 'text') {\n mappedField.type = 'textarea';\n mappedField.props = {\n ...mappedField.props,\n autosize: true,\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'password') {\n mappedField.props = {\n ...mappedField.props,\n type: 'password',\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'gio-code-editor') {\n mappedField.type = 'gio-code-editor';\n mappedField.props = {\n ...mappedField.props,\n monacoEditorConfig: mapSource.gioConfig?.monacoEditorConfig,\n };\n } else if (mapSource.type === 'string' && mapSource.format === 'gio-cron') {\n mappedField.type = 'gio-cron';\n mappedField.props = {\n ...mappedField.props,\n };\n }\n if (mapSource.gioConfig?.el || get(mapSource, ['x-schema-form', 'expression-language'], false)) {\n mappedField.props = {\n ...mappedField.props,\n attributes: {\n ...mappedField.props?.attributes,\n el: 1,\n },\n };\n }\n return mappedField;\n }\n\n private bannerMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n mappedField.props = {\n ...mappedField.props,\n ...(mapSource.gioConfig?.banner ? getBannerProperties(mapSource.gioConfig.banner) : {}),\n };\n\n return mappedField;\n }\n\n private toggleMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.type === 'boolean') {\n mappedField.type = 'toggle';\n }\n\n return mappedField;\n }\n\n private disableIfMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7, context?: GioJsonSchemaContext): FormlyFieldConfig {\n const disableIf = getGioIf(mapSource.gioConfig?.disableIf);\n if (disableIf) {\n const propsDisabled: ((field: FormlyFieldConfig) => boolean) | Observable<boolean> = field => {\n const isReadOnly = field.props?.readonly === true;\n const isParentDisabled = field.options?.formState?.parentDisabled === true;\n if (isParentDisabled || isReadOnly) {\n // Useful when field is readonly to avoid to enable it\n field.formControl?.disable({ emitEvent: false });\n // if the parent is already disabled there is no need to change anything at the child level\n return false;\n }\n\n let parentField = field;\n while (parentField.parent) {\n parentField = parentField.parent;\n }\n\n try {\n const isDisabled = disableIf({\n value: parentField.model,\n context,\n });\n // Useful when full form is re-enabled to sync the fromControl enable/disable state\n isDisabled ? field.formControl?.disable({ emitEvent: false }) : field.formControl?.enable({ emitEvent: false });\n return isDisabled;\n } catch (e) {\n // Ignore the error and keep default value\n return field.props?.disabled || false;\n }\n };\n\n mappedField.expressions = {\n ...mappedField.expressions,\n 'props.disabled': propsDisabled,\n };\n }\n\n return mappedField;\n }\n\n private enumLabelMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (!isArray(mappedField.props?.options)) {\n return mappedField;\n }\n\n const enumLabelMapInObject =\n mapSource.enum && !isEmpty(mapSource.enum) && mapSource.gioConfig?.enumLabelMap ? mapSource.gioConfig?.enumLabelMap : null;\n const enumLabelMapInArrayItem =\n mapSource.items &&\n mapSource.type === 'array' &&\n !isEmpty((mapSource.items as JSONSchema7).enum) &&\n (mapSource.items as JSONSchema7)?.gioConfig?.enumLabelMap\n ? (mapSource.items as JSONSchema7)?.gioConfig?.enumLabelMap\n : null;\n\n if (enumLabelMapInObject || enumLabelMapInArrayItem) {\n mappedField.props = {\n ...mappedField.props,\n options: mappedField.props?.options?.map(({ value }) => {\n return {\n label: (enumLabelMapInObject || enumLabelMapInArrayItem)?.[value] ?? value,\n value: value,\n };\n }),\n };\n }\n\n return mappedField;\n }\n\n /**\n * Remove the label of the oneOf fields to avoid to display it twice (with the select and the object title)\n */\n private sanitizeOneOf(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (!mapSource.oneOf || !mappedField.fieldGroup || mappedField.fieldGroup.length < 1) {\n return mappedField;\n }\n\n const parentFieldGroup = mappedField.fieldGroup[mappedField.fieldGroup.length - 1];\n if (!parentFieldGroup || parentFieldGroup?.type != 'multischema') {\n return mappedField;\n }\n\n const contentFieldGroup = get(parentFieldGroup, 'fieldGroup[1]');\n if (!contentFieldGroup) {\n return mappedField;\n }\n\n contentFieldGroup.fieldGroup?.forEach((field: FormlyFieldConfig) => {\n set(field, 'props.label', undefined);\n });\n\n return mappedField;\n }\n\n private deprecatedMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n if (mapSource.deprecated) {\n return {};\n }\n\n return mappedField;\n }\n\n private uniqueValueMap(mappedField: FormlyFieldConfig, mapSource: JSONSchema7): FormlyFieldConfig {\n let fieldNameWithErrors: string | undefined = undefined;\n if (mapSource.gioConfig?.uniqueItemProperties) {\n mappedField = {\n ...mappedField,\n validators: {\n ...mappedField.validators,\n uniqueFields: {\n expression: (control: AbstractControl) => {\n const items = control.value;\n const uniqueProps = mapSource.gioConfig?.uniqueItemProperties ?? [];\n if (!Array.isArray(items) || !uniqueProps.length) return true;\n\n for (const prop of uniqueProps) {\n const values = items.map(i => i?.[prop]).filter(v => v != null);\n if (new Set(values).size !== values.length) {\n fieldNameWithErrors = prop;\n return false;\n }\n }\n\n return true;\n },\n message: (_error: unknown, _field: FormlyFieldConfig) => `${fieldNameWithErrors || 'This field'} must be unique`,\n },\n },\n };\n }\n return mappedField;\n }\n}\n\nconst getBannerProperties = (banner: { title: string; text: string } | { text: string }) => {\n return {\n bannerText: banner.text,\n bannerTitle: 'title' in banner ? banner.title : undefined,\n };\n};\n\nconst getGioIf = (\n gioIf?: GioIfConfig,\n): ((objectToCheck?: { value?: FormlyFieldConfig['model']; context?: Record<string, unknown> }) => boolean) | undefined => {\n const $eq = gioIf?.$eq;\n if (isNil($eq) || !isObject($eq)) {\n return undefined;\n }\n\n return objectToCheck => {\n if (isEmpty(objectToCheck)) {\n return false;\n }\n\n return Object.entries($eq)\n .map(([k, v]) => ({ path: k, eqValue: castArray(v) }))\n .every(({ path, eqValue }) => {\n const value = get(objectToCheck, path);\n\n return eqValue.includes(value);\n });\n };\n};\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 */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ElementRef,\n EventEmitter,\n Host,\n HostBinding,\n Input,\n OnChanges,\n OnDestroy,\n OnInit,\n Optional,\n Output,\n SimpleChanges,\n} from '@angular/core';\nimport { ControlValueAccessor, UntypedFormGroup, NgControl } from '@angular/forms';\nimport { FormlyFieldConfig, FormlyFormOptions } from '@ngx-formly/core';\nimport { cloneDeep, isEmpty, isEqual, isObject, set } from 'lodash';\nimport { debounceTime, delay, distinctUntilChanged, filter, map, startWith, take, takeUntil, tap } from 'rxjs/operators';\nimport { merge, ReplaySubject, Subject } from 'rxjs';\nimport { FocusMonitor } from '@angular/cdk/a11y';\n\nimport { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from '../gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';\n\nimport { GioJsonSchema } from './model/GioJsonSchema';\nimport { GioFormlyJsonSchemaService } from './gio-formly-json-schema.service';\nimport { GioJsonSchemaContext } from './model/GioJsonSchemaContext';\n\n@Component({\n selector: 'gio-form-json-schema',\n template: `\n @if (formGroup) {\n <formly-form [fields]=\"fields\" [options]=\"options\" [form]=\"formGroup\" [model]=\"model\"></formly-form>\n }\n `,\n styleUrls: ['./gio-form-json-schema.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormJsonSchemaComponent implements ControlValueAccessor, OnChanges, OnInit, AfterViewInit, OnDestroy {\n public static isDisplayable(jsonSchema: GioJsonSchema): boolean {\n const properties = ['properties', 'oneOf', 'anyOf', 'allOf', '$ref', 'items'] as const;\n\n return isObject(jsonSchema) && properties.some(property => !isEmpty(jsonSchema[property]));\n }\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n @HostBinding(`attr.${GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR}`)\n private gioFormFocusInvalidIgnore = true;\n\n @Input({ required: true })\n public jsonSchema!: GioJsonSchema;\n\n @Input()\n public context?: GioJsonSchemaContext;\n\n public formGroup: UntypedFormGroup = new UntypedFormGroup({});\n\n @Input()\n public options: FormlyFormOptions = {};\n\n // When true the form is ready and control status are up-to-date\n // Useful to know when initial control status can be used\n @Output()\n public ready = new EventEmitter<boolean>();\n\n private isReady = false;\n\n public model: unknown = {};\n\n public fields: FormlyFieldConfig[] = [];\n\n public isDisabled = false;\n\n public _onChange: (value: unknown | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n\n private touched = false;\n\n private isValid$ = new ReplaySubject(1); // Wait JsonSchema to be loaded to check if it's valid\n\n private stateChanges$ = new Subject<void>();\n\n constructor(\n private readonly gioFormlyJsonSchema: GioFormlyJsonSchemaService,\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Host() @Optional() public readonly ngControl?: NgControl,\n ) {\n if (ngControl) {\n // Setting the value accessor directly (instead of using\n // the providers `NG_VALUE_ACCESSOR`) to avoid running into a circular import.\n ngControl.valueAccessor = this;\n }\n\n // When the user interact with the form, mark it as touched\n fm.monitor(elRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this._onTouched();\n this.touched = true;\n });\n }\n\n public ngOnChanges(changes: SimpleChanges) {\n if (changes.jsonSchema) {\n this.isReady = false;\n this.ready.next(false);\n }\n\n if (changes.jsonSchema || changes.context) {\n if (!isEmpty(this.jsonSchema)) {\n this.fields = [this.gioFormlyJsonSchema.toFormlyFieldConfig(this.jsonSchema, this.context)];\n }\n }\n }\n\n public ngOnInit(): void {\n // When the parent form is touched, mark all the sub formGroup as touched if not already touched\n const parentControl = this.ngControl?.control?.parent;\n parentControl?.statusChanges\n ?.pipe(\n map(() => parentControl?.touched),\n filter(touched => touched === true),\n distinctUntilChanged(),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n if (this.isDisabled) {\n return;\n }\n this.formGroup.markAllAsTouched();\n this.stateChanges$.next();\n });\n // Add async validator to the parent\n this.ngControl?.control?.addAsyncValidators(() => {\n return this.isValid$.pipe(\n take(1),\n map(isValid => (isValid ? null : { invalid: true })),\n takeUntil(this.unsubscribe$),\n );\n });\n\n // Sync control value with default value (without emit event) as long as the component is not ready\n // When formly is initialised, it emits several values as it builds up step by step.\n this.formGroup.valueChanges\n .pipe(\n distinctUntilChanged(isEqual),\n tap(value => {\n this.ngControl?.control?.reset(value, { emitEvent: false });\n }),\n takeUntil(this.ready),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n // Avoid ExpressionChangedAfterItHasBeenCheckedError on project\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n\n // Subscribe to state changes to manage touches, status and value\n this.stateChanges$\n .pipe(\n tap(() => {\n const { status, value, touched } = this.formGroup;\n if (this.isDisabled) {\n return;\n }\n\n if (status === 'VALID') {\n this.isValid$.next(true);\n }\n if (status === 'INVALID') {\n this.isValid$.next(false);\n }\n\n if (touched && !this.touched) {\n this._onTouched();\n this.touched = true;\n }\n\n if (this.touched) {\n this._onChange(value);\n }\n }),\n delay(0),\n // Keep at the end\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n this.ngControl?.control?.updateValueAndValidity({\n emitEvent: false,\n });\n\n // After the first state change, the form is ready\n if (!this.isReady) {\n this.isReady = true;\n this.ready.emit(true);\n }\n });\n }\n\n public ngAfterViewInit(): void {\n // Group all valueChanges events emit by formly in a single one\n merge(this.formGroup.statusChanges, this.formGroup.valueChanges)\n .pipe(\n // Force fist stateChanges$\n startWith({}),\n debounceTime(100),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.stateChanges$.next();\n });\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n this.fm.stopMonitoring(this.elRef.nativeElement);\n }\n\n // From ControlValueAccessor\n public writeValue(value: unknown): void {\n this.model = cloneDeep(value) ?? {};\n }\n\n // From ControlValueAccessor\n public registerOnChange(fn: (value: unknown | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor\n public setDisabledState?(isDisabled: boolean): void {\n if (this.isDisabled === isDisabled) {\n return;\n }\n\n this.isDisabled = isDisabled;\n\n set(this.options, 'formState.parentDisabled', isDisabled);\n setTimeout(() => {\n isDisabled ? this.formGroup.disable({ emitEvent: false }) : this.formGroup.enable({ emitEvent: false });\n this.changeDetectorRef.markForCheck();\n this.changeDetectorRef.detectChanges();\n this.stateChanges$.next();\n }, 0);\n\n this.stateChanges$.next();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Directive } from '@angular/core';\n\n@Component({\n selector: 'gio-form-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormLabelComponent {}\n\n@Directive({\n selector: '[gioFormPrefix]',\n standalone: false,\n})\nexport class GioFormPrefixDirective {}\n\n@Directive({\n selector: '[gioFormSlideToggle]',\n standalone: false,\n})\nexport class GioFormSlideToggleDirective {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { AfterContentInit, Component, ContentChild, Input, OnDestroy } from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatSlideToggle } from '@angular/material/slide-toggle';\nimport { Observable, Subject } from 'rxjs';\nimport { map, startWith, takeUntil } from 'rxjs/operators';\n\n@Component({\n selector: 'gio-form-slide-toggle',\n templateUrl: './gio-form-slide-toggle.component.html',\n styleUrls: ['./gio-form-slide-toggle.component.scss'],\n standalone: false,\n})\nexport class GioFormSlideToggleComponent implements AfterContentInit, OnDestroy {\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n @Input()\n public appearance: 'fill' | 'outline' = 'outline';\n\n @ContentChild(MatSlideToggle, {\n static: false,\n })\n public innerMatSlideToggle: MatSlideToggle | null = null;\n\n @ContentChild(NgControl, {\n static: false,\n })\n public innerFormControlName: NgControl | null = null;\n\n public disabled = false;\n\n public ngAfterContentInit(): void {\n let isDisabled$: Observable<boolean> | undefined = undefined;\n\n // Check if disabled is delegated to inner FormControlName\n if (this.innerFormControlName) {\n isDisabled$ = this.innerFormControlName.statusChanges?.pipe(\n map(() => !!this.innerFormControlName?.disabled),\n startWith(!!this.innerFormControlName.disabled),\n );\n }\n // If not, check state of inner MatSlideToggle\n else if (this.innerMatSlideToggle) {\n isDisabled$ = this.innerMatSlideToggle.change.pipe(\n map(event => event.source.disabled),\n startWith(this.innerMatSlideToggle.disabled),\n );\n }\n\n if (isDisabled$) {\n isDisabled$.pipe(takeUntil(this.unsubscribe$)).subscribe(disabled => {\n this.disabled = disabled;\n });\n }\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"form-slide-toggle\" [class.appearance-fill]=\"appearance === 'fill'\" [class.appearance-outline]=\"appearance === 'outline'\">\n <div class=\"form-slide-toggle__icon\">\n <ng-content select=\"[gioFormPrefix]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field\">\n <div class=\"form-slide-toggle__field__mat-slide-toggle\">\n <ng-content select=\"[gioFormSlideToggle]\"></ng-content>\n </div>\n <div class=\"form-slide-toggle__field__text\" [class.disabled]=\"disabled\">\n <span class=\"form-slide-toggle__field__text__label-1\">\n <ng-content select=\"gio-form-label\"></ng-content>\n </span>\n <span class=\"form-slide-toggle__field__text__label-2\">\n <ng-content></ng-content>\n </span>\n </div>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective } from './gio-form-label.directive';\nimport { GioFormSlideToggleComponent } from './gio-form-slide-toggle.component';\n\n@NgModule({\n imports: [CommonModule],\n declarations: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective],\n exports: [GioFormSlideToggleComponent, GioFormLabelComponent, GioFormPrefixDirective, GioFormSlideToggleDirective],\n})\nexport class GioFormSlideToggleModule {}\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 */\nimport { InjectionToken } from '@angular/core';\n\nimport { MonacoEditorTheme } from './MonacoEditorTheme';\n\nexport type GioMonacoEditorConfig = {\n baseUrl?: string;\n theme?: MonacoEditorTheme;\n};\n\nexport const GIO_MONACO_EDITOR_CONFIG = new InjectionToken<GioMonacoEditorConfig>('gio-monaco-editor-config');\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 */\nimport { inject, Injectable } from '@angular/core';\nimport { ReplaySubject } from 'rxjs';\nimport Monaco from 'monaco-editor';\n\nimport { GIO_MONACO_EDITOR_CONFIG, GioMonacoEditorConfig } from '../models/GioMonacoEditorConfig';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n require: any;\n monaco: typeof Monaco;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioMonacoEditorService {\n private readonly config: GioMonacoEditorConfig = inject(GIO_MONACO_EDITOR_CONFIG);\n public loaded$ = new ReplaySubject<{ monaco: typeof Monaco }>(1);\n private loaded = false;\n\n public loadEditor(): Promise<void> {\n if (this.loaded) {\n // Already loaded, do nothing.\n return Promise.resolve();\n }\n this.loaded = true;\n\n return new Promise<void>(resolve => {\n // Monaco is already loaded\n if (typeof window.monaco === 'object') {\n resolve();\n return;\n }\n\n const onGotAmdLoader = () => {\n const baseUrl = this.config.baseUrl || (window.location.origin + window.location.pathname).replace(/\\/$/, '');\n // Load Monaco\n window.require.config({\n paths: { vs: baseUrl + '/assets/monaco-editor/min/vs' },\n });\n\n window.require(['vs/editor/editor.main'], () => {\n resolve();\n });\n };\n\n // Load AMD loader if necessary\n if (!window.require) {\n const loaderScript = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = 'assets/monaco-editor/min/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n } else {\n onGotAmdLoader();\n }\n }).then(() => {\n this.loaded$.next({ monaco: window.monaco });\n });\n }\n}\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 */\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport type Monaco from 'monaco-editor';\n\nimport { GioMonacoEditorService } from './gio-monaco-editor.service';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLanguageJsonService implements OnDestroy {\n private unsubscribe$ = new Subject<void>();\n private monaco?: typeof Monaco;\n\n constructor(private readonly codeEditorService: GioMonacoEditorService) {\n codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {\n this.setup(event.monaco);\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n public setup(monaco: typeof Monaco): void {\n if (!monaco) {\n throw new Error('Monaco is not loaded');\n }\n this.monaco = monaco;\n const defaults = monaco.languages.json.jsonDefaults;\n\n defaults.setDiagnosticsOptions({\n validate: true,\n allowComments: true,\n });\n }\n\n public addSchemas(id: string, definitions: Array<{ uri: string; schema: unknown }> = []) {\n if (!this.monaco) {\n throw new Error('Monaco is not loaded');\n }\n\n const defaults = this.monaco.languages.json.jsonDefaults;\n const options = defaults.diagnosticsOptions;\n\n let schemas: Monaco.languages.json.DiagnosticsOptions['schemas'] = definitions.map(({ uri, schema }) => ({\n uri,\n schema,\n fileMatch: [id || '*.json'],\n }));\n\n if (options && options.schemas && options.schemas.length > 0) {\n schemas = [...options.schemas, ...schemas];\n }\n\n defaults.setDiagnosticsOptions({\n ...options,\n schemas: schemas,\n });\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nexport interface PropertySuggestion {\n type: string;\n name: string;\n enum?: string[];\n}\n\nexport interface IndexableSuggestion {\n type?: string;\n enum?: string[];\n additionalProperties?: IndexableSuggestion;\n items?: IndexableSuggestion;\n}\n\nexport interface Suggestions {\n properties: PropertySuggestion[];\n additionalProperties: IndexableSuggestion;\n items: IndexableSuggestion;\n}\n\nexport interface JSONSchema {\n properties?: JSONSchemaProperties;\n $defs?: JSONSchemaProperties;\n}\n\nexport interface JSONSchemaProperty {\n type?: string;\n $ref?: string;\n additionalProperties?: JSONSchemaProperty;\n items?: JSONSchemaProperty;\n properties?: JSONSchemaProperties;\n}\n\nexport type JSONSchemaPropertyWithDefs = JSONSchema & JSONSchemaProperty;\n\nexport interface JSONSchemaProperties {\n [key: string]: JSONSchemaProperty;\n}\n\nconst SCHEMA_REF_BASE = '#/$defs/';\n\nexport function getKeywords(schema: JSONSchemaPropertyWithDefs, keywords = new Set<string>()): string[] {\n const properties = schema.properties || {};\n const defs = schema.$defs || {};\n for (const property of Object.values(defs)) {\n if (property.properties) {\n getKeywords(property, keywords);\n }\n }\n for (const [name, property] of Object.entries(properties)) {\n keywords.add(name);\n if (property.properties) {\n getKeywords(property, keywords);\n }\n }\n return Array.from(keywords);\n}\n/**\n * Build suggestions for autocompletion based on a JSON schema definition and a property path\n *\n * @param schema an object model defined as a JSON schema following the 2020-12 specification\n * @param path the property path to inspect. If the property path contains '.', then root properties will be returned\n */\nexport function getSuggestions(schema: JSONSchema, path: string[]): Suggestions {\n const propertyNames = [...path];\n const propertyName = propertyNames.shift();\n\n if (propertyName === '.') {\n return buildSuggestions(schema, schema);\n }\n\n const property = getProperty(schema, propertyName);\n if (!property) {\n return {\n properties: [],\n additionalProperties: {},\n items: {},\n };\n }\n\n const newSchema = mergeSchemaWithProperties(schema, property);\n if (propertyNames.length > 0) {\n return getSuggestions(newSchema, propertyNames);\n }\n\n return buildSuggestions(newSchema, property);\n}\n\nfunction resolveReference(ref: string, defs: JSONSchemaProperties = {}): JSONSchemaProperty {\n const refName = ref.substring(SCHEMA_REF_BASE.length);\n const resolved = defs[refName];\n if (resolved && resolved.$ref) {\n return resolveReference(resolved.$ref, defs);\n }\n return resolved || {};\n}\n\nfunction resolveType(property: JSONSchemaProperty, defs?: JSONSchemaProperties): string {\n if (property.$ref) {\n const resolved = resolveReference(property.$ref, defs);\n return resolveType(resolved, defs);\n }\n if (property.additionalProperties || property.items) {\n const stringMap = 'map<string, ';\n const array = 'array<';\n let type = property.additionalProperties ? stringMap : array;\n let copy = property.additionalProperties || (property.items as JSONSchemaProperty);\n while (copy.additionalProperties || copy.items) {\n type += copy.additionalProperties ? stringMap : array;\n copy = copy.additionalProperties || (copy.items as JSONSchemaProperty);\n }\n return `${type}${copy.type}>`;\n }\n return property.type as string;\n}\n\nfunction getProperty(schema: JSONSchemaPropertyWithDefs, propertyName = String()): JSONSchemaProperty {\n if (schema.properties && schema.properties[propertyName]) {\n return schema.properties[propertyName];\n }\n\n if (schema.$ref && schema.$defs) {\n const property = resolveReference(schema.$ref, schema.$defs);\n if (property && property.properties) {\n return property.properties[propertyName];\n }\n }\n return {};\n}\n\nfunction buildIndexableSuggestion(property: JSONSchemaProperty): Suggestions {\n return {\n properties: [],\n additionalProperties: property.additionalProperties || {},\n items: property.items || {},\n };\n}\n\nfunction buildSuggestions(schema: JSONSchemaPropertyWithDefs, property: JSONSchemaProperty): Suggestions {\n if (property.$ref && schema.$defs) {\n const ref = resolveReference(property.$ref, schema.$defs);\n return buildSuggestions(schema, ref);\n }\n\n if (property.additionalProperties || property.items) {\n return buildIndexableSuggestion(property);\n }\n\n const properties = property.properties || {};\n return {\n properties: mapSuggestions(properties, schema.$defs),\n additionalProperties: {},\n items: {},\n };\n}\n\nfunction mapSuggestions(properties: JSONSchemaProperties, defs?: JSONSchemaProperties): PropertySuggestion[] {\n return Object.entries(properties).map(([name, property]) => {\n return {\n name,\n type: resolveType(property, defs),\n };\n });\n}\n\nfunction mergeSchemaWithProperties(schema: JSONSchema, property: JSONSchemaProperty): JSONSchemaPropertyWithDefs {\n return { ...schema, ...property };\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Injectable, OnDestroy } from '@angular/core';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\nimport { editor, languages, Position } from 'monaco-editor';\n\nimport CompletionItem = languages.CompletionItem;\n\nimport type Monaco from 'monaco-editor';\n\nimport { getKeywords, getSuggestions, IndexableSuggestion, JSONSchema, PropertySuggestion } from '../models/JSONSchemaAutoComplete';\n\nimport { GioMonacoEditorService } from './gio-monaco-editor.service';\n\nexport const SPEL_LANG_ID = 'spel';\n\nfunction getPropertyPath(model: editor.ITextModel, position: Position): string[] {\n const line = model.getValueInRange({\n startLineNumber: position.lineNumber,\n startColumn: 0,\n endLineNumber: position.lineNumber,\n endColumn: position.column,\n });\n\n // get last valid el expression (most right hand side of the current line)\n const lastExpression = line.split('#').filter(Boolean).pop();\n if (!lastExpression) {\n return [];\n }\n\n // get expression left hand side\n const lastExpressionLHS = lastExpression.split(/\\s+/).filter(Boolean).shift();\n if (!lastExpressionLHS) {\n return [];\n }\n\n return (\n lastExpressionLHS\n // remove special characters\n .replace(/\\W/g, ' ')\n // normalize spaces\n .replace(/\\s+/g, ' ')\n .trim()\n .split(/\\s/)\n );\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLanguageElService implements OnDestroy {\n private unsubscribe$ = new Subject<void>();\n\n private context: { schema: JSONSchema; keywords: string[] } = {\n schema: {},\n keywords: [],\n };\n\n private schema: JSONSchema = {};\n private keywords: string[] = [];\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n constructor(codeEditorService: GioMonacoEditorService) {\n codeEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(event => {\n this.setup(event.monaco);\n });\n }\n\n public setup(monaco: typeof Monaco): void {\n if (!monaco) {\n throw new Error('Monaco is not loaded');\n }\n\n monaco.languages.register({ id: SPEL_LANG_ID });\n\n monaco.languages.setLanguageConfiguration(SPEL_LANG_ID, {\n brackets: [\n ['{', '}'],\n ['(', ')'],\n ['[', ']'],\n ],\n autoClosingPairs: [\n {\n open: \"'\",\n close: \"'\",\n },\n {\n open: '\"',\n close: '\"',\n },\n {\n open: '(',\n close: ')',\n },\n {\n open: '{',\n close: '}',\n },\n {\n open: '[',\n close: ']',\n },\n ],\n surroundingPairs: [\n {\n open: \"'\",\n close: \"'\",\n },\n {\n open: '\"',\n close: '\"',\n },\n {\n open: '(',\n close: ')',\n },\n {\n open: '{',\n close: '}',\n },\n ],\n });\n\n const schema = this.schema;\n const keywords = this.keywords;\n\n monaco.languages.setMonarchTokensProvider(SPEL_LANG_ID, {\n keywords,\n operators: ['=', '>', '<', '!', '?', ':', '==', '<=', '>=', '!=', '&&', '||', '++', '--', '+', '-', '*', '/', '^', '%'],\n\n tokenizer: {\n root: [\n [\n /@?[a-zA-Z][\\w$]*/,\n {\n cases: {\n '@keywords': 'keyword',\n '@operators': 'operator',\n '@default': 'variable',\n },\n },\n ],\n\n [/[\"'].*?[\"']/, 'string'],\n [/\"([^\"\\\\]|\\\\.)*$/, 'string.invalid'],\n\n [/#/, 'number'],\n\n // eslint-disable-next-line no-useless-escape\n [/\\d*\\.\\d+([eE][\\-+]?\\d+)?/, 'number.float'],\n [/0[xX][0-9a-fA-F]+/, 'number.hex'],\n [/\\d+/, 'number'],\n ],\n },\n });\n\n monaco.languages.registerCompletionItemProvider(SPEL_LANG_ID, {\n provideCompletionItems(\n model: editor.ITextModel,\n position: Position,\n context: languages.CompletionContext,\n ): languages.ProviderResult<languages.CompletionList> {\n const word = model.getWordUntilPosition(position);\n\n const mapPropertyKind = (propertySuggestion: PropertySuggestion): number => {\n switch (propertySuggestion.type) {\n case 'object':\n return monaco.languages.CompletionItemKind.Struct;\n case 'string':\n return monaco.languages.CompletionItemKind.Text;\n default:\n return monaco.languages.CompletionItemKind.Field;\n }\n };\n\n const mapPropertySuggestion = (propertySuggestion: PropertySuggestion): CompletionItem => {\n return {\n label: propertySuggestion.name,\n kind: mapPropertyKind(propertySuggestion),\n insertText: propertySuggestion.name,\n detail: propertySuggestion.type,\n range: {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n },\n };\n };\n\n const mapIndexableSuggestions = (suggestion: IndexableSuggestion): CompletionItem[] => {\n return (\n suggestion.enum?.map(name => {\n return {\n label: name,\n kind: monaco.languages.CompletionItemKind.Enum,\n insertText: `\"${name}\"`,\n detail: 'enum',\n range: {\n startLineNumber: position.lineNumber,\n endLineNumber: position.lineNumber,\n startColumn: word.startColumn,\n endColumn: word.endColumn,\n },\n };\n }) || []\n );\n };\n\n if (context.triggerCharacter === '#') {\n return {\n suggestions: getSuggestions(schema, ['.']).properties.map(mapPropertySuggestion).sort(),\n };\n }\n\n if (context.triggerCharacter === '[') {\n const path = getPropertyPath(model, position);\n const suggestions = getSuggestions(schema, path);\n if (suggestions.additionalProperties && suggestions.additionalProperties.enum) {\n return {\n suggestions: mapIndexableSuggestions(suggestions.additionalProperties),\n };\n }\n }\n\n if (context.triggerCharacter === '.') {\n const path = getPropertyPath(model, position);\n const suggestions = getSuggestions(schema, path).properties.map(mapPropertySuggestion).sort();\n return {\n suggestions,\n };\n }\n\n return { suggestions: [] };\n },\n triggerCharacters: ['#', '.', '['],\n });\n }\n\n public setSchema(schema: JSONSchema): void {\n Object.assign(this.schema, schema);\n this.keywords.push(...getKeywords(schema));\n }\n}\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 */\nimport {\n AfterViewInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n effect,\n ElementRef,\n HostBinding,\n Inject,\n Input,\n NgZone,\n OnDestroy,\n Optional,\n Self,\n signal,\n WritableSignal,\n} from '@angular/core';\nimport { ControlValueAccessor, NgControl } from '@angular/forms';\nimport { isEqual, isString, uniqueId } from 'lodash';\nimport Monaco, { editor } from 'monaco-editor';\nimport { ReplaySubject, Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GIO_MONACO_EDITOR_CONFIG, GioMonacoEditorConfig } from './models/GioMonacoEditorConfig';\nimport { GioLanguageJsonService } from './services/gio-language-json.service';\nimport { GioMonacoEditorService } from './services/gio-monaco-editor.service';\nimport { GioLanguageElService } from './services/gio-language-el.service';\nimport { JSONSchema } from './models/JSONSchemaAutoComplete';\n\nexport type MonacoEditorLanguageConfig =\n | {\n language: 'json';\n schemas?: { uri: string; schema: unknown }[];\n }\n | {\n language: 'markdown';\n }\n | {\n language: 'html';\n }\n | {\n language: 'yaml';\n }\n | {\n language: 'spel';\n schema?: JSONSchema;\n }\n | {\n language: 'css';\n };\n\n@Component({\n selector: 'gio-monaco-editor',\n template: `\n @if (loaded$ | async) {\n <div>Loading...</div>\n }\n `,\n styleUrls: ['./gio-monaco-editor.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioMonacoEditorComponent implements ControlValueAccessor, AfterViewInit, OnDestroy {\n @Input()\n public languageConfig?: MonacoEditorLanguageConfig;\n\n @Input()\n public options: editor.IStandaloneEditorConstructionOptions = {};\n\n @Input()\n public disableMiniMap = false;\n\n @Input()\n public disableAutoFormat = false;\n\n @Input()\n @HostBinding('class.single-line')\n public singleLineMode = false;\n\n public loaded$ = new ReplaySubject<boolean>(1);\n\n private defaultOptions: editor.IStandaloneEditorConstructionOptions = {\n contextmenu: false,\n minimap: {\n enabled: true,\n },\n automaticLayout: true,\n scrollBeyondLastLine: false,\n };\n\n public value = '';\n public readOnly = false;\n public standaloneCodeEditor?: editor.IStandaloneCodeEditor;\n private textModel?: editor.ITextModel;\n private toDisposes: Monaco.IDisposable[] = [];\n\n private isMonacoEditorReady: WritableSignal<{ isSetup: boolean; hasFirstValue: boolean }> = signal({\n isSetup: false,\n hasFirstValue: false,\n });\n\n protected _onChange: (_value: string | null) => void = () => ({});\n\n protected _onTouched: () => void = () => ({});\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n public readonly hostElement: ElementRef,\n @Inject(GIO_MONACO_EDITOR_CONFIG) private readonly config: GioMonacoEditorConfig,\n private readonly monacoEditorService: GioMonacoEditorService,\n private readonly languageJsonService: GioLanguageJsonService,\n private readonly languageSpelService: GioLanguageElService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n private readonly ngZone: NgZone,\n @Optional() @Self() public readonly ngControl: NgControl,\n ) {\n if (this.ngControl) {\n // Set the value accessor directly (instead of providing\n // NG_VALUE_ACCESSOR) to avoid running into a circular import\n this.ngControl.valueAccessor = this;\n }\n this.monacoEditorService.loadEditor();\n\n effect(() => {\n const { isSetup, hasFirstValue } = this.isMonacoEditorReady();\n if (isSetup && hasFirstValue) {\n if (this.textModel) {\n this.textModel.setValue(this.value);\n }\n\n this.updateModelLanguage();\n this.autoformatValue();\n }\n });\n }\n\n public ngAfterViewInit() {\n // Wait until monaco editor is available\n this.monacoEditorService.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(({ monaco }) => {\n this.setupEditor(monaco);\n this.isMonacoEditorReady.update(({ hasFirstValue }) => ({ isSetup: true, hasFirstValue }));\n\n this.loaded$.next(false);\n this.changeDetectorRef.detectChanges();\n });\n }\n\n public ngOnDestroy() {\n this.toDisposes.forEach(d => d.dispose());\n\n if (this.standaloneCodeEditor) {\n this.standaloneCodeEditor.dispose();\n this.standaloneCodeEditor = undefined;\n }\n\n if (this.textModel) {\n this.textModel.dispose();\n this.textModel = undefined;\n }\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n // From ControlValueAccessor interface\n public writeValue(_value: string | null): void {\n if (_value) {\n this.value = isString(_value) ? _value : JSON.stringify(_value);\n this.isMonacoEditorReady.update(({ isSetup }) => ({ isSetup, hasFirstValue: true }));\n }\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (_value: string | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.readOnly = isDisabled;\n\n if (this.standaloneCodeEditor) {\n this.standaloneCodeEditor.updateOptions({\n readOnly: isDisabled,\n });\n }\n }\n\n private setupEditor(monaco: typeof Monaco) {\n if (!this.hostElement) {\n throw new Error('No editor ref found.');\n }\n\n const domElement = this.hostElement.nativeElement;\n\n const settings = {\n value: this.value,\n language: this.languageConfig?.language ?? (isJsonString(this.value) ? 'json' : 'plaintext'),\n uri: `code-${uniqueId()}`,\n };\n\n this.ngZone.runOutsideAngular(() => {\n this.textModel = monaco.editor.createModel(settings.value, settings.language, monaco.Uri.parse(settings.uri));\n });\n\n const options = Object.assign({}, this.defaultOptions, this.options, {\n readOnly: !this.ngControl && 'readOnly' in this.options ? this.options.readOnly : this.readOnly,\n theme: this.config.theme ?? 'vs',\n model: this.textModel,\n minimap: {\n enabled: !this.disableMiniMap,\n },\n });\n\n this.standaloneCodeEditor = monaco.editor.create(domElement, {\n ...options,\n });\n\n if (this.singleLineMode) {\n this.standaloneCodeEditor?.addAction({\n id: 'custom.action',\n label: 'custom action',\n keybindings: [monaco.KeyCode.Enter],\n precondition: '!suggestWidgetVisible && !renameInputVisible && !inSnippetMode && !quickFixWidgetVisible',\n run: () => {\n // Ignore Enter key in single line mode when writing\n return;\n },\n });\n }\n\n const onDidChangeContent = this.textModel?.onDidChangeContent(() => {\n const textModelValue = this.textModel?.getValue() ?? '';\n if (this.singleLineMode) {\n // If value has \\n, \\r or \\r\\n, remove them\n // Useful to clear line breaks when pasting text\n const hasLineBreak = new RegExp(/(\\r\\n|\\n|\\r)/gm);\n if (hasLineBreak.test(textModelValue)) {\n const currentPosition = this.standaloneCodeEditor?.getPosition();\n setTimeout(() => {\n this.standaloneCodeEditor?.pushUndoStop();\n this.textModel?.setValue(textModelValue.replace(/(\\r\\n|\\n|\\r)/gm, ''));\n if (currentPosition) {\n this.standaloneCodeEditor?.setPosition(currentPosition);\n }\n this.standaloneCodeEditor?.popUndoStop();\n }, 0);\n return;\n }\n }\n\n this.ngZone.run(() => {\n if (!this.readOnly && !isEqual(this.value, textModelValue)) {\n setTimeout(() => {\n this.value = textModelValue;\n this._onChange(textModelValue);\n this._onTouched();\n }, 0);\n }\n });\n });\n\n if (this.singleLineMode) {\n // Source : https://farzadyz.com/blog/single-line-monaco-editor\n this.standaloneCodeEditor?.updateOptions({\n // quickSuggestions: false,\n fixedOverflowWidgets: true,\n acceptSuggestionOnEnter: 'on',\n hover: {\n delay: 100,\n },\n roundedSelection: false,\n contextmenu: false,\n cursorStyle: 'line-thin',\n links: false,\n find: {\n addExtraSpaceOnTop: false,\n autoFindInSelection: 'never',\n seedSearchStringFromSelection: 'never',\n },\n fontSize: 14,\n fontWeight: 'normal',\n overviewRulerLanes: 0,\n scrollBeyondLastColumn: 0,\n wordWrap: 'on',\n minimap: {\n enabled: false,\n },\n lineNumbers: 'off',\n hideCursorInOverviewRuler: true,\n overviewRulerBorder: false,\n glyphMargin: false,\n folding: false,\n lineDecorationsWidth: 0,\n lineNumbersMinChars: 0,\n renderLineHighlight: 'none',\n scrollbar: {\n horizontal: 'hidden',\n vertical: 'hidden',\n alwaysConsumeMouseWheel: false,\n },\n });\n }\n\n const onDidBlurEditorWidget = this.standaloneCodeEditor?.onDidBlurEditorWidget(() => {\n this.ngZone.run(() => {\n if (!this.readOnly) this._onTouched();\n });\n });\n\n this.toDisposes = [onDidChangeContent, onDidBlurEditorWidget].filter(d => !!d) as Monaco.IDisposable[];\n\n this.setupLanguage(settings.uri, this.languageConfig);\n }\n\n private setupLanguage(uri: string, languageConfig?: MonacoEditorLanguageConfig) {\n if (!languageConfig) {\n return;\n }\n\n switch (languageConfig.language) {\n case 'json':\n if (languageConfig.schemas) {\n this.languageJsonService.addSchemas(uri, languageConfig.schemas);\n }\n break;\n case 'spel':\n if (languageConfig.schema) {\n this.languageSpelService.setSchema(languageConfig.schema);\n }\n break;\n default:\n break;\n }\n }\n\n private updateModelLanguage() {\n const languageId = this.languageConfig?.language ?? (isJsonString(this.value) ? 'json' : 'plaintext');\n if (this.textModel && window.monaco) {\n window.monaco.editor.setModelLanguage(this.textModel, languageId);\n }\n }\n\n private autoformatValue() {\n if (!this.disableAutoFormat) {\n setTimeout(() => {\n const previousReadOnlyState = this.options.readOnly || this.readOnly;\n this.standaloneCodeEditor?.updateOptions({ readOnly: false });\n this.standaloneCodeEditor\n ?.getAction('editor.action.formatDocument')\n ?.run()\n .finally(() => {\n this.standaloneCodeEditor?.updateOptions({ readOnly: previousReadOnlyState });\n this.changeDetectorRef.detectChanges();\n });\n }, 80);\n }\n }\n}\n\nconst isJsonString = (str: string): boolean => {\n try {\n JSON.parse(str);\n } catch (e) {\n return false;\n }\n return true;\n};\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 */\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { coerceBooleanProperty } from '@angular/cdk/coercion';\nimport {\n ChangeDetectorRef,\n Directive,\n DoCheck,\n ElementRef,\n forwardRef,\n Host,\n HostBinding,\n Input,\n OnDestroy,\n OnInit,\n Optional,\n Renderer2,\n Self,\n} from '@angular/core';\nimport { NgControl } from '@angular/forms';\nimport { MatFormFieldControl } from '@angular/material/form-field';\nimport { Subject } from 'rxjs';\nimport { takeUntil } from 'rxjs/operators';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n@Directive({\n selector: '[gioMonacoEditorFormField]',\n providers: [\n {\n provide: MatFormFieldControl,\n useExisting: forwardRef(() => GioMonacoEditorFormFieldDirective),\n },\n ],\n standalone: false,\n})\nexport class GioMonacoEditorFormFieldDirective implements OnInit, DoCheck, MatFormFieldControl<string>, OnDestroy {\n public static nextId = 0;\n\n public stateChanges = new Subject<void>();\n\n @HostBinding()\n public id = `gio-monaco-editor-${GioMonacoEditorFormFieldDirective.nextId++}`;\n\n @HostBinding('attr.aria-describedBy')\n public userAriaDescribedBy = '';\n\n public get value(): string | null {\n return this.hostGioMonacoEditorComponent?.value ?? null;\n }\n\n @Input()\n public set placeholder(placeholder: string) {\n this._placeholder = placeholder;\n this.stateChanges.next();\n }\n public get placeholder() {\n return this._placeholder;\n }\n\n @Input()\n public set required(required: boolean) {\n this._required = coerceBooleanProperty(required);\n this.stateChanges.next();\n }\n public get required() {\n return this._required;\n }\n\n @Input()\n public set disabled(disabled: boolean) {\n this._disabled = coerceBooleanProperty(disabled);\n if (this.focused) {\n this.focused = false;\n this.stateChanges.next();\n }\n }\n public get disabled() {\n if (this.ngControl && this.ngControl.disabled !== null) {\n return this.ngControl.disabled;\n }\n return this._disabled;\n }\n\n public ngControl: NgControl | null = null;\n\n public focused = false;\n\n public get empty(): boolean {\n return !this.value;\n }\n\n public get shouldLabelFloat(): boolean {\n return this.focused || !this.empty;\n }\n\n @HostBinding('class.hidden')\n public get shouldHideEditor(): boolean {\n return !this.shouldLabelFloat;\n }\n\n public errorState = false;\n public controlType = 'gio-monaco-editor';\n // autofilled?: boolean | undefined;\n\n private _placeholder = '';\n private _required = false;\n private _disabled = false;\n private maxHeight = 500;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly focusMonitor: FocusMonitor,\n private readonly renderer: Renderer2,\n private readonly changeDetectorRef: ChangeDetectorRef,\n @Host() @Self() @Optional() public readonly hostGioMonacoEditorComponent: GioMonacoEditorComponent,\n ) {}\n\n public ngOnInit(): void {\n this.stateChanges.pipe(takeUntil(this.unsubscribe$)).subscribe(() => this.changeDetectorRef.markForCheck());\n\n this.focusMonitor\n .monitor(this.elementRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(origin => {\n this.focused = !!origin;\n this.stateChanges.next();\n });\n this.ngControl = this.hostGioMonacoEditorComponent?.ngControl;\n\n this.hostGioMonacoEditorComponent?.loaded$.pipe(takeUntil(this.unsubscribe$)).subscribe(() => {\n // Auto resize editor\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.onDidContentSizeChange(() => {\n const height = Math.min(\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.getContentHeight() ?? this.maxHeight,\n this.maxHeight,\n );\n this.renderer.setStyle(this.elementRef.nativeElement, 'height', `${height}px`);\n\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.layout();\n this.stateChanges.next();\n });\n });\n }\n\n public ngDoCheck(): void {\n if (this.ngControl) {\n this.errorState = !!this.ngControl.invalid && !!this.ngControl.touched;\n this.stateChanges.next();\n }\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n this.focusMonitor.stopMonitoring(this.elementRef.nativeElement);\n }\n\n public setDescribedByIds(ids: string[]): void {\n this.userAriaDescribedBy = ids.join(' ');\n }\n\n public onContainerClick(_event: MouseEvent): void {\n if (!this.focused) {\n this.hostGioMonacoEditorComponent.standaloneCodeEditor?.focus();\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ContentChild } from '@angular/core';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n@Component({\n // eslint-disable-next-line @angular-eslint/component-selector\n selector: '[gioMonacoClipboardCopy]',\n styleUrls: ['./gio-monaco-clipboard-copy.component.scss'],\n template: `\n <div class=\"editor-wrapper\">\n <ng-content></ng-content>\n <gio-clipboard-copy-icon class=\"copy-btn\" [contentToCopy]=\"monacoEditor?.value ?? ''\"></gio-clipboard-copy-icon>\n </div>\n `,\n standalone: false,\n})\nexport class GioMonacoClipboardCopyComponent {\n @ContentChild(GioMonacoEditorComponent, { static: false })\n public monacoEditor: GioMonacoEditorComponent | null = null;\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { GioClipboardModule } from '../gio-clipboard/gio-clipboard.module';\n\nimport { GioMonacoEditorFormFieldDirective } from './gio-monaco-editor-form-field.directive';\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\nimport { GioMonacoEditorConfig, GIO_MONACO_EDITOR_CONFIG } from './models/GioMonacoEditorConfig';\nimport { GioMonacoClipboardCopyComponent } from './gio-monaco-clipboard-copy.component';\n\n@NgModule({\n imports: [CommonModule, ReactiveFormsModule, GioClipboardModule],\n declarations: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoClipboardCopyComponent],\n exports: [GioMonacoEditorComponent, GioMonacoEditorFormFieldDirective, GioMonacoClipboardCopyComponent],\n providers: [\n {\n provide: GIO_MONACO_EDITOR_CONFIG,\n useValue: {} as GioMonacoEditorConfig,\n },\n ],\n})\nexport class GioMonacoEditorModule {\n public static forRoot(config: GioMonacoEditorConfig) {\n return {\n ngModule: GioMonacoEditorModule,\n providers: [\n {\n provide: GIO_MONACO_EDITOR_CONFIG,\n useValue: config,\n },\n ],\n };\n }\n}\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 */\nimport Cronstrue from 'cronstrue/i18n';\nimport { isEmpty } from 'lodash';\n\nexport interface CronDisplay {\n mode: CronDisplayMode;\n\n secondInterval?: number;\n minuteInterval?: number;\n hourInterval?: number;\n dayInterval?: number;\n dayOfWeek?: number;\n dayOfMonth?: number;\n customExpression?: string;\n\n hours?: number;\n minutes?: number;\n}\nexport const CRON_DISPLAY_MODES = ['secondly', 'minutely', 'hourly', 'daily', 'weekly', 'monthly', 'custom'] as const;\nexport type CronDisplayMode = (typeof CRON_DISPLAY_MODES)[number];\n\nconst DISPLAY_MODE_LIST: {\n mode: CronDisplayMode;\n default: string;\n regex: RegExp;\n}[] = [\n {\n mode: 'secondly',\n default: '*/1 * * * * *',\n regex: /^(\\*\\/\\d+\\s)(\\*\\s){4}\\*/,\n },\n {\n mode: 'minutely',\n default: '0 */1 * * * *',\n regex: /^0\\s\\*\\/\\d+\\s(\\*\\s){3}\\*$/,\n },\n {\n mode: 'hourly',\n default: '0 0 */1 * * *',\n regex: /^0\\s\\d+\\s\\*\\/\\d+\\s(\\*\\s){2}\\*$/,\n },\n {\n mode: 'daily',\n default: '0 0 0 */1 * *',\n regex: /^0\\s\\d+\\s\\d+\\s\\*\\/\\d+\\s\\*\\s\\*$/,\n },\n {\n mode: 'weekly',\n default: '0 0 0 * * 0',\n regex: /^(\\d{1,2}\\s){2,3}(\\*\\s){2}\\d{1,2}$/,\n },\n {\n mode: 'monthly',\n default: '0 0 0 1 * *',\n regex: /^(\\d+\\s){3,4}\\*\\s\\*$/,\n },\n {\n mode: 'custom',\n default: '* * * * * *',\n regex: /^.*$/,\n },\n];\n\nexport const getDefaultCronDisplay = (mode: CronDisplayMode): CronDisplay => {\n const modeFound = DISPLAY_MODE_LIST.find(mf => mf.mode === mode);\n if (!modeFound) {\n throw new Error('Invalid cron mode.');\n }\n\n return parseCronExpression(modeFound.default);\n};\n\nexport const parseCronExpression = (cronExpression: string): CronDisplay => {\n throwIfInvalid(cronExpression);\n\n const parts = cronExpression.split(' ');\n\n // Normalize cron so that second segment is included.\n if (cronExpression && cronExpression.split(' ').length === 6) {\n parts.push('');\n }\n\n const hourInterval = getHourInterval(parts);\n const minuteInterval = getMinuteInterval(parts);\n const secondInterval = getSecondInterval(parts);\n const dayInterval = getDayInterval(parts);\n const dayOfWeek = getDayOfWeek(parts);\n const dayOfMonth = getDayOfMonth(parts);\n\n const hours = getHours(parts);\n const minutes = getMinutes(parts);\n\n const displayMode = getDisplayMode(cronExpression);\n\n switch (displayMode.mode) {\n case 'secondly':\n return {\n mode: 'secondly',\n secondInterval,\n };\n case 'minutely':\n return {\n mode: 'minutely',\n minuteInterval,\n };\n case 'hourly':\n return {\n mode: 'hourly',\n hourInterval,\n minutes,\n };\n case 'daily':\n return {\n mode: 'daily',\n dayInterval,\n hours,\n minutes,\n };\n case 'weekly':\n return {\n mode: 'weekly',\n dayOfWeek,\n hours,\n minutes,\n };\n case 'monthly':\n return {\n mode: 'monthly',\n dayOfMonth,\n hours,\n minutes,\n };\n case 'custom':\n return {\n mode: 'custom',\n customExpression: cronExpression,\n };\n }\n};\n\nexport const toCronExpression = (cronDisplay: Omit<CronDisplay, 'cronDescription'>): string => {\n switch (cronDisplay.mode) {\n case 'secondly':\n return `*/${cronDisplay.secondInterval} * * * * *`;\n case 'minutely':\n return `0 */${cronDisplay.minuteInterval} * * * *`;\n case 'hourly':\n return `0 ${cronDisplay.minutes} */${cronDisplay.hourInterval} * * *`;\n case 'daily':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} */${cronDisplay.dayInterval} * *`;\n case 'weekly':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} * * ${cronDisplay.dayOfWeek}`;\n case 'monthly':\n return `0 ${cronDisplay.minutes} ${cronDisplay.hours} ${cronDisplay.dayOfMonth} * *`;\n case 'custom':\n return `${cronDisplay.customExpression}`;\n }\n};\n\nexport const toCronDescription = (cronExpression: string): string => {\n throwIfInvalid(cronExpression);\n\n if (!isEmpty(cronExpression)) {\n return Cronstrue.toString(cronExpression);\n }\n\n return '';\n};\n\n/**\n * Simple validation to ensure that the cron expression has 6 parts.\n * Note : The full cron expression validation is done by the backend.\n */\nconst throwIfInvalid = (cronExpression: string): void => {\n const parts = cronExpression.trim().split(/\\s+/);\n\n if (parts.length != 6) {\n throw new Error('Cron expression must have 6 parts.');\n }\n};\n\nconst getDisplayMode = (\n cronExpression: string,\n): {\n mode: CronDisplayMode;\n default: string;\n} => {\n const modeFound = DISPLAY_MODE_LIST.find(mf => {\n const regex = mf.regex;\n return regex.test(cronExpression);\n });\n\n if (!modeFound) {\n throw new Error('Invalid cron expression.');\n }\n\n return {\n mode: modeFound.mode,\n default: modeFound.default,\n };\n};\n\nconst getSecondInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[0])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getMinuteInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[1])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getHourInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[2])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayInterval = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[3])[0][1];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayOfWeek = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[5])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getDayOfMonth = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[3])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getMinutes = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[1])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getHours = (expressionParts: string[]): number | undefined => {\n const v = getSegment(expressionParts[2])[0][0];\n return typeof v === 'number' ? v : undefined;\n};\n\nconst getSegment = (value: string): Array<Array<string | number>> => {\n if (value === undefined) {\n value = '*';\n }\n return value.split(',').map(s => {\n if (s === undefined) {\n s = '*';\n }\n return s.split('/').map(p => {\n const v = parseInt(p, 10);\n return isNaN(v) ? p : v;\n });\n });\n};\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { FocusMonitor } from '@angular/cdk/a11y';\nimport { Component, ElementRef, HostBinding, NgZone, OnDestroy, OnInit, forwardRef, ChangeDetectorRef } from '@angular/core';\nimport {\n AbstractControl,\n ControlValueAccessor,\n UntypedFormControl,\n UntypedFormGroup,\n NG_VALIDATORS,\n NG_VALUE_ACCESSOR,\n ValidationErrors,\n Validator,\n} from '@angular/forms';\nimport { isEmpty, range } from 'lodash';\nimport { Subject } from 'rxjs';\nimport { filter, takeUntil, tap } from 'rxjs/operators';\n\nimport { CronDisplay, getDefaultCronDisplay, parseCronExpression, toCronDescription, toCronExpression } from './gio-form-cron.adapter';\n\n@Component({\n selector: 'gio-form-cron',\n templateUrl: './gio-form-cron.component.html',\n styleUrls: ['./gio-form-cron.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n useExisting: forwardRef(() => GioFormCronComponent),\n multi: true,\n },\n {\n provide: NG_VALIDATORS,\n useExisting: forwardRef(() => GioFormCronComponent),\n multi: true,\n },\n ],\n standalone: false,\n})\nexport class GioFormCronComponent implements ControlValueAccessor, OnInit, OnDestroy, Validator {\n public _onChange: (value: string | null) => void = () => ({});\n\n public _onTouched: () => void = () => ({});\n\n public seconds = [...range(0, 60)];\n public minutes = [...range(0, 60)];\n public hours = [...range(0, 24)];\n public daysOfMonth = [...range(1, 32)];\n public daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];\n public internalFormGroup?: UntypedFormGroup;\n public value?: string;\n public expressionDescription?: string;\n @HostBinding('class.disabled')\n public isDisabled = false;\n @HostBinding('class.smallDisplay')\n public smallDisplay = false;\n\n private touched = false;\n private focused = false;\n private hasError = false;\n\n private cronDisplay?: CronDisplay;\n\n private unsubscribe$ = new Subject<void>();\n private resizeObserver?: ResizeObserver;\n\n constructor(\n private readonly elRef: ElementRef,\n private readonly fm: FocusMonitor,\n private readonly ngZone: NgZone,\n private readonly cdr: ChangeDetectorRef,\n ) {\n fm.monitor(elRef.nativeElement, true)\n .pipe(takeUntil(this.unsubscribe$))\n .subscribe(origin => {\n this.focused = !!origin;\n this._onTouched();\n this.touched = true;\n });\n }\n\n public ngOnInit(): void {\n if (window.ResizeObserver) {\n this.resizeObserver = new ResizeObserver(entries => {\n this.ngZone.run(() => {\n const width = entries[0].contentRect.width;\n this.smallDisplay = width < 580;\n this.cdr.markForCheck();\n });\n });\n this.resizeObserver.observe(this.elRef.nativeElement);\n }\n\n this.internalFormGroup = new UntypedFormGroup({\n mode: new UntypedFormControl(),\n secondInterval: new UntypedFormControl(),\n minuteInterval: new UntypedFormControl(),\n hourInterval: new UntypedFormControl(),\n dayInterval: new UntypedFormControl(),\n dayOfWeek: new UntypedFormControl(),\n dayOfMonth: new UntypedFormControl(),\n\n hours: new UntypedFormControl(),\n minutes: new UntypedFormControl(),\n customExpression: new UntypedFormControl(),\n });\n\n this.isDisabled ? this.internalFormGroup.disable({ emitEvent: false }) : this.internalFormGroup.enable({ emitEvent: false });\n\n this.internalFormGroup\n .get('mode')\n ?.valueChanges.pipe(\n filter(mode => !!mode),\n tap(mode => {\n this.cronDisplay = getDefaultCronDisplay(mode);\n\n this.refreshInternalForm();\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n this.internalFormGroup.valueChanges\n ?.pipe(\n tap(value => {\n this.hasError = false;\n if (!value?.mode) {\n this._onChange(null);\n return;\n }\n try {\n this.value = toCronExpression({\n mode: value.mode,\n secondInterval: value.secondInterval,\n minuteInterval: value.minuteInterval,\n hourInterval: value.hourInterval,\n dayInterval: value.dayInterval,\n dayOfWeek: value.dayOfWeek,\n dayOfMonth: value.dayOfMonth,\n customExpression: value.customExpression,\n hours: value.hours,\n minutes: value.minutes,\n });\n\n this.expressionDescription = toCronDescription(this.value);\n this._onChange(this.value);\n } catch (error) {\n this.hasError = true;\n this.expressionDescription = `${error ?? 'Invalid cron expression.'}`;\n this._onChange(null);\n }\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n this.refreshInternalForm();\n }\n\n public ngOnDestroy(): void {\n this.fm.stopMonitoring(this.elRef.nativeElement);\n this.resizeObserver?.unobserve(this.elRef.nativeElement);\n this.unsubscribe$.next();\n this.unsubscribe$.complete();\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string): void {\n if (isEmpty(value)) {\n this.onClear();\n return;\n }\n try {\n this.value = value;\n this.cronDisplay = parseCronExpression(value);\n\n this.expressionDescription = toCronDescription(this.value);\n this.refreshInternalForm();\n } catch (error) {\n this.hasError = true;\n this.expressionDescription = `${error ?? 'Invalid cron expression.'}`;\n }\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (value: string | null) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.isDisabled = isDisabled;\n\n this.refreshInternalForm();\n }\n\n public validate(_: AbstractControl): ValidationErrors | null {\n return this.hasError ? { invalid: true } : null;\n }\n\n public onClear({ touched }: { touched?: boolean } = {}): void {\n this.value = undefined;\n this.cronDisplay = undefined;\n this.internalFormGroup?.reset({}, { emitEvent: true });\n\n if (touched) {\n this.touched = true;\n this._onTouched();\n }\n }\n\n private refreshInternalForm(): void {\n if (!this.internalFormGroup) return;\n\n this.isDisabled ? this.internalFormGroup.disable({ emitEvent: false }) : this.internalFormGroup.enable({ emitEvent: false });\n\n const d = this.cronDisplay;\n if (d) {\n this.internalFormGroup.patchValue(\n {\n mode: d.mode,\n customExpression: d.customExpression,\n secondInterval: d.secondInterval,\n minuteInterval: d.minuteInterval,\n hourInterval: d.hourInterval,\n dayInterval: d.dayInterval,\n dayOfWeek: d.dayOfWeek,\n dayOfMonth: d.dayOfMonth,\n\n hours: d.hours,\n minutes: d.minutes,\n },\n { emitEvent: false },\n );\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"label\"><ng-content select=\"gio-form-cron-label\"></ng-content></div>\n<div class=\"wrapper\" [class.smallDisplay]=\"smallDisplay\" [class.disabled]=\"isDisabled\">\n @if (internalFormGroup) {\n <ng-container [formGroup]=\"internalFormGroup\">\n <div class=\"menu\">\n <mat-button-toggle-group\n class=\"gio-button-toggle-group menu__mode\"\n name=\"mode\"\n aria-label=\"Cron mode\"\n formControlName=\"mode\"\n [hideSingleSelectionIndicator]=\"true\"\n >\n <mat-button-toggle value=\"secondly\" matTooltip=\"Secondly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 's' : 'Secondly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"minutely\" matTooltip=\"Minutely\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'm' : 'Minutely'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"hourly\" matTooltip=\"Hourly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'h' : 'Hourly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"daily\" matTooltip=\"Daily\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'D' : 'Daily'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"weekly\" matTooltip=\"Weekly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'W' : 'Weekly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"monthly\" matTooltip=\"Monthly\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'M' : 'Monthly'\n }}</mat-button-toggle>\n <mat-button-toggle value=\"custom\" matTooltip=\"Custom\" [matTooltipDisabled]=\"!smallDisplay\">{{\n smallDisplay ? 'C' : 'Custom'\n }}</mat-button-toggle>\n </mat-button-toggle-group>\n @if (value && !isDisabled) {\n <button mat-button aria-label=\"Clear\" matTooltip=\"Clear\" type=\"button\" (click)=\"onClear({ touched: true })\">\n <mat-icon>close</mat-icon>\n </button>\n }\n </div>\n @switch (internalFormGroup.get('mode')?.value) {\n @case ('secondly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Second</mat-label>\n <mat-select formControlName=\"secondInterval\">\n @for (second of seconds; track second) {\n <mat-option [value]=\"second\">{{ second }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('minutely') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minuteInterval\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('hourly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hourInterval\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('daily') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayInterval\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hour(s)</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minute(s)</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('weekly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">Every </span>\n <mat-form-field class=\"modeForm__field-medium\">\n <mat-label>Day of the week</mat-label>\n <mat-select formControlName=\"dayOfWeek\">\n @for (day of daysOfWeek; track day; let index = $index) {\n <mat-option [value]=\"index\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('monthly') {\n <div class=\"modeForm\">\n <span class=\"cron-form-label\">On the </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Day(s)</mat-label>\n <mat-select formControlName=\"dayOfMonth\">\n @for (day of daysOfMonth; track day) {\n <mat-option [value]=\"day\">{{ day }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\"> of every month at </span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Hours</mat-label>\n <mat-select formControlName=\"hours\">\n @for (hour of hours; track hour) {\n <mat-option [value]=\"hour\">{{ hour }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n <span class=\"cron-form-label\">:</span>\n <mat-form-field class=\"modeForm__field-small\">\n <mat-label>Minutes</mat-label>\n <mat-select formControlName=\"minutes\">\n @for (minute of minutes; track minute) {\n <mat-option [value]=\"minute\">{{ minute }}</mat-option>\n }\n </mat-select>\n </mat-form-field>\n </div>\n }\n @case ('custom') {\n <div class=\"modeForm\">\n <mat-form-field class=\"modeForm__field-custom\">\n <mat-label>Cron expression</mat-label>\n <input matInput formControlName=\"customExpression\" placeholder=\"* * * * * *\" />\n </mat-form-field>\n </div>\n }\n }\n @if (value) {\n <div class=\"preview\">\n @if (internalFormGroup.get('mode')?.value !== 'custom') {\n <span class=\"preview__value\">\n {{ value }}\n </span>\n }\n <span class=\"preview__hint\">{{ expressionDescription }}</span>\n </div>\n } @else {\n <div class=\"placeholder\">No cron expression defined.</div>\n }\n </ng-container>\n }\n</div>\n<div class=\"hint\"><ng-content select=\"gio-form-cron-hint\"></ng-content></div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-cron-label',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormCronLabelComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-form-cron-hint',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormCronHintComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatButtonToggleModule } from '@angular/material/button-toggle';\nimport { MatFormFieldModule } from '@angular/material/form-field';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormCronComponent } from './gio-form-cron.component';\nimport { GioFormCronLabelComponent } from './gio-form-cron-label.component';\nimport { GioFormCronHintComponent } from './gio-form-cron-hint.component';\n\n@NgModule({\n imports: [\n CommonModule,\n ReactiveFormsModule,\n MatButtonToggleModule,\n MatFormFieldModule,\n MatSelectModule,\n MatInputModule,\n MatButtonModule,\n MatTooltipModule,\n GioIconsModule,\n ],\n declarations: [GioFormCronComponent, GioFormCronLabelComponent, GioFormCronHintComponent],\n exports: [GioFormCronComponent, GioFormCronLabelComponent, GioFormCronHintComponent],\n})\nexport class GioFormCronModule {}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-null-type',\n template: ``,\n standalone: false,\n})\nexport class GioFjsNullTypeComponent extends FieldType {}\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 */\nimport { Component, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-object-type',\n template: `\n <div class=\"wrapper\">\n @if (to.label) {\n <div class=\"wrapper__title\">{{ to.label }}</div>\n }\n @if (to.description) {\n <p>{{ to.description }}</p>\n }\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n <div class=\"wrapper__fields\" [class.noUiBorder]=\"classNoUiBorder\">\n @for (f of field.fieldGroup; track f) {\n @if (f.type) {\n <formly-field class=\"wrapper__fields__field\" [field]=\"f\"></formly-field>\n }\n }\n </div>\n </div>\n `,\n styleUrls: ['./object-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsObjectTypeComponent extends FieldType implements OnInit {\n public classNoUiBorder = false;\n\n public ngOnInit() {\n this.classNoUiBorder = this.props.uiBorder === 'none';\n }\n}\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 */\nimport { Component, OnInit } from '@angular/core';\nimport { FieldArrayType } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-fjs-array-type',\n template: `\n <div class=\"wrapper\" [class.error]=\"formControl.touched && formControl.invalid\" [class.noUiBorder]=\"classNoUiBorder\">\n <div class=\"wrapper__header\">\n <div class=\"wrapper__header__text\">\n @if (to.label) {\n <div class=\"wrapper__header__text__title\">{{ to.label }}</div>\n }\n @if (to.description) {\n <p>{{ to.description }}</p>\n }\n </div>\n <div class=\"wrapper__header__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\" (click)=\"collapse = !collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\"></mat-icon>\n </button>\n </div>\n </div>\n\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n\n <div [hidden]=\"collapse\" class=\"wrapper__rows\" [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\">\n @for (field of field.fieldGroup; track field; let i = $index) {\n <div class=\"wrapper__rows__row\">\n <formly-field class=\"wrapper__rows__row__field\" [field]=\"field\"></formly-field>\n <div class=\"wrapper__rows__row__remove\">\n <button\n type=\"button\"\n mat-icon-button\n aria-label=\"Remove\"\n [disabled]=\"this.formControl?.disabled ?? false\"\n (click)=\"remove(i)\"\n >\n <mat-icon svgIcon=\"gio:cancel\"></mat-icon>\n </button>\n </div>\n </div>\n }\n\n <div>\n <button type=\"button\" mat-stroked-button aria-label=\"Add\" [disabled]=\"this.formControl?.disabled ?? false\" (click)=\"add()\">\n <mat-icon svgIcon=\"gio:plus\"></mat-icon> Add\n </button>\n </div>\n </div>\n </div>\n `,\n styleUrls: ['./array-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsArrayTypeComponent extends FieldArrayType implements OnInit {\n public collapse = false;\n public classNoUiBorder = false;\n\n public ngOnInit() {\n this.classNoUiBorder = this.props.uiBorder === 'none';\n }\n}\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 */\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function minItemsValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT have fewer than ${field.props?.minItems} items`;\n}\n\nexport function maxItemsValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT have more than ${field.props?.maxItems} items`;\n}\n\nexport function minLengthValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT be shorter than ${field.props?.minLength} characters`;\n}\n\nexport function maxLengthValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should NOT be longer than ${field.props?.maxLength} characters`;\n}\n\nexport function minValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be >= ${field.props?.min}`;\n}\n\nexport function maxValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be <= ${field.props?.max}`;\n}\n\nexport function multipleOfValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be multiple of ${field.props?.step}`;\n}\n\nexport function exclusiveMinimumValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be > ${field.props?.exclusiveMinimum}`;\n}\n\nexport function exclusiveMaximumValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be < ${field.props?.exclusiveMaximum}`;\n}\n\nexport function constValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n return `Should be equal to constant \"${field.props?.const}\"`;\n}\n\nexport function typeValidationMessage({ schemaType }: { schemaType: unknown[] }): string {\n return `Should be \"${schemaType[0]}\".`;\n}\n\nexport function patternValidationMessage(error: unknown, field: FormlyFieldConfig): string {\n const key = field?.key?.toString() ?? 'Field';\n return `${key.charAt(0).toUpperCase() + key.slice(1)} value does not respect the pattern: ${field?.props?.pattern}`;\n}\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 */\nimport { FieldWrapper } from '@ngx-formly/core';\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-banner-wrapper',\n templateUrl: 'gio-banner-wrapper.component.html',\n styleUrls: ['gio-banner-wrapper.component.scss'],\n standalone: false,\n})\nexport class GioBannerWrapperComponent extends FieldWrapper {}\n","<!--\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","/*\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 */\nimport { FormlyFieldConfig } from '@ngx-formly/core';\n\nexport function bannerExtension(field: FormlyFieldConfig) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('gio-with-banner') !== -1)) {\n return;\n }\n\n if (field.props.bannerTitle || field.props.bannerText) {\n // WARNING: 'gio-with-banner' must be placed before field wrappers in order to put banner before mat-form-field if exists\n field.wrappers = ['gio-with-banner', ...(field.wrappers || [])];\n }\n}\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 */\nimport { AfterViewChecked, ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\nimport { FieldType } from '@ngx-formly/core';\nimport { set } from 'lodash';\nimport { Subject } from 'rxjs';\n\n@Component({\n selector: 'gio-fjs-multi-schema-type',\n template: `\n <div class=\"wrapper\">\n @if (props.label) {\n <div class=\"wrapper__title\">{{ props.label }}</div>\n }\n @if (props.description) {\n <p>{{ props.description }}</p>\n }\n @if (showError && formControl.errors) {\n <div class=\"wrapper__error gio-ng-invalid\">\n <formly-validation-message [field]=\"field\"></formly-validation-message>\n </div>\n }\n @for (f of field.fieldGroup; track f) {\n <formly-field [field]=\"f\"></formly-field>\n }\n </div>\n `,\n styleUrls: ['./multischema-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsMultiSchemaTypeComponent extends FieldType implements OnInit, OnDestroy, AfterViewChecked {\n private unsubscribe$: Subject<void> = new Subject<void>();\n\n constructor(private readonly cdr: ChangeDetectorRef) {\n super();\n }\n\n public ngOnDestroy() {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public ngOnInit(): void {\n set(this.field, 'fieldGroup[0].props.appearance', 'fill');\n set(this.field, 'fieldGroup[0].props.label', 'Select option');\n }\n\n public ngAfterViewChecked(): void {\n set(this.field, 'fieldGroup[0].props.disabled', this.formControl.disabled);\n this.cdr.detectChanges();\n }\n}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\n\ntype ToggleProps = FormlyFieldProps;\n\n@Component({\n selector: 'gio-fjs-toggle-type',\n template: `\n <gio-form-slide-toggle>\n <gio-form-label>{{ props.label }}</gio-form-label>\n {{ props.description }}\n <mat-slide-toggle\n gioFormSlideToggle\n [id]=\"id\"\n [formControl]=\"formControl\"\n [formlyAttributes]=\"field\"\n [tabIndex]=\"props.tabindex\"\n ></mat-slide-toggle>\n </gio-form-slide-toggle>\n `,\n standalone: false,\n})\nexport class GioFjsToggleTypeComponent extends FieldType<FieldTypeConfig<ToggleProps>> {}\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 */\nimport { Component } from '@angular/core';\nimport { FieldType, FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\n\nimport { FormHeaderFieldMapper } from '../../gio-form-headers/gio-form-headers.component';\nimport { GioUiTypeConfig } from '../model/GioJsonSchema';\n\ntype HeadersProps = FormlyFieldProps &\n GioUiTypeConfig['uiTypeProps'] & {\n // The key and value names of the output array\n // Default: { keyName: 'name', valueName: 'value' }\n // 📝 Note : For now this config is not editable by json-schema gioConfig. If it becomes\n // necessary it is possible to change the GioUiTypeConfig to pass this config.\n outputConfig: {\n keyName: string;\n valueName: string;\n };\n };\n\n@Component({\n selector: 'gio-fjs-headers-type',\n template: `\n <div class=\"wrapper\">\n <div class=\"wrapper__header\">\n <div class=\"wrapper__header__text\">\n @if (props.label) {\n <div class=\"wrapper__header__text__title\">{{ props.label }}</div>\n }\n @if (props.description) {\n <p>{{ props.description }}</p>\n }\n </div>\n <div class=\"wrapper__header__collapse\">\n <button type=\"button\" mat-icon-button aria-label=\"Collapse\" (click)=\"collapse = !collapse\">\n <mat-icon [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\" svgIcon=\"gio:nav-arrow-down\" />\n </button>\n </div>\n </div>\n @if (showError && formControl.errors) {\n <formly-validation-message [field]=\"field\" />\n }\n @if (!collapse) {\n <div class=\"wrapper__rows\" [class.collapse-open]=\"collapse\" [class.collapse-close]=\"!collapse\">\n <gio-form-headers\n [headerFieldMapper]=\"outputConfig\"\n [config]=\"{ elColumns: props?.elColumns ?? 'neither' }\"\n [formControl]=\"formControl\"\n />\n </div>\n }\n </div>\n `,\n styleUrls: ['./headers-type.component.scss'],\n standalone: false,\n})\nexport class GioFjsHeadersTypeComponent extends FieldType<FieldTypeConfig<HeadersProps>> {\n public override defaultOptions?: Partial<FieldTypeConfig<HeadersProps>> | undefined = {\n props: {\n outputConfig: this.outputConfig,\n elColumns: 'neither',\n },\n };\n\n public collapse = false;\n\n public get outputConfig(): FormHeaderFieldMapper {\n return {\n keyName: 'name',\n valueName: 'value',\n };\n }\n}\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 */\nimport { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-password-eye-wrapper',\n template: `\n <ng-container #fieldComponent></ng-container>\n\n <ng-template #matSuffix>\n <button mat-icon-button type=\"button\" (click)=\"addonEyeClick($event)\">\n <mat-icon [svgIcon]=\"hide ? 'gio:eye-empty' : 'gio:eye-off'\"></mat-icon>\n </button>\n </ng-template>\n `,\n standalone: false,\n})\nexport class GioPasswordEyeWrapperComponent extends FieldWrapper implements AfterViewInit {\n @ViewChild('matSuffix', { static: true })\n public matSuffix!: TemplateRef<unknown>;\n public hide = true;\n\n public ngAfterViewInit() {\n if (this.matSuffix) {\n this.props.suffix = this.matSuffix;\n }\n }\n\n public addonEyeClick($event: Event) {\n $event.stopPropagation();\n this.hide = !this.hide;\n\n this.props.type = this.hide ? 'password' : 'text';\n }\n}\n\nexport function passwordEyeExtension(field: FormlyFieldConfig) {\n if (!field.props || (field.wrappers && field.wrappers.indexOf('gio-password-eye') !== -1)) {\n return;\n }\n\n if (field.props.type === 'password') {\n field.wrappers = [...(field.wrappers || []), 'gio-password-eye'];\n }\n}\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 */\nimport { ChangeDetectionStrategy, Component, OnInit } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\n\nimport { MonacoEditorLanguageConfig } from '../../gio-monaco-editor/gio-monaco-editor.component';\n\nexport type GioMonacoEditorConfig = MonacoEditorLanguageConfig;\n\ntype CodeEditorProps = FormlyFieldProps & {\n monacoEditorConfig?: GioMonacoEditorConfig;\n};\n\n@Component({\n selector: 'gio-fjs-code-editor-type',\n template: `\n <gio-monaco-editor\n gioMonacoEditorFormField\n ngDefaultControl\n [formControl]=\"formControl\"\n [languageConfig]=\"languageConfig\"\n ></gio-monaco-editor>\n `,\n styles: [\n `\n gio-monaco-editor {\n min-height: 38px;\n }\n `,\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFjsCodeEditorTypeComponent extends FieldType<FieldTypeConfig<CodeEditorProps>> implements OnInit {\n public languageConfig?: MonacoEditorLanguageConfig;\n\n public ngOnInit(): void {\n this.languageConfig = this.props.monacoEditorConfig;\n }\n}\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 */\nimport { ChangeDetectionStrategy, Component } from '@angular/core';\nimport { FieldTypeConfig, FormlyFieldProps } from '@ngx-formly/core';\nimport { FieldType } from '@ngx-formly/material';\n\ntype CronProps = FormlyFieldProps;\n\n@Component({\n selector: 'gio-fjs-code-editor-type',\n template: `\n <gio-form-cron [formControl]=\"formControl\">\n @if (props.label) {\n <gio-form-cron-label>{{ props.label }}</gio-form-cron-label>\n }\n @if (props.description) {\n <gio-form-cron-hint>{{ props.description }}</gio-form-cron-hint>\n }\n </gio-form-cron>\n `,\n styles: [``],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFjsCronTypeComponent extends FieldType<FieldTypeConfig<CronProps>> {}\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 */\nimport { Component, TemplateRef, ViewChild, AfterViewInit } from '@angular/core';\nimport { FieldWrapper, FormlyFieldConfig } from '@ngx-formly/core';\n\n@Component({\n selector: 'gio-el-wrapper-wrapper',\n template: `\n <ng-container #fieldComponent></ng-container>\n\n <ng-template #matSuffix>\n <gio-el-assistant />\n </ng-template>\n `,\n standalone: false,\n})\nexport class GioElHelperWrapperComponent extends FieldWrapper implements AfterViewInit {\n @ViewChild('matSuffix', { static: true })\n public matSuffix!: TemplateRef<unknown>;\n public hide = true;\n\n public ngAfterViewInit() {\n if (this.matSuffix) {\n this.props.suffix = this.matSuffix;\n }\n }\n}\n\nexport function elHelpExtension(field: FormlyFieldConfig) {\n if (field.props?.attributes?.el) {\n field.wrappers = [...(field.wrappers || []), 'gio-el-help'];\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { ReactiveFormsModule } from '@angular/forms';\nimport { FormlyModule } from '@ngx-formly/core';\nimport { FormlyMaterialModule } from '@ngx-formly/material';\nimport { A11yModule } from '@angular/cdk/a11y';\nimport { MatSlideToggleModule } from '@angular/material/slide-toggle';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatInputModule } from '@angular/material/input';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\nimport { GioFormSlideToggleModule } from '../gio-form-slide-toggle/gio-form-slide-toggle.module';\nimport { GioFormHeadersModule } from '../gio-form-headers/gio-form-headers.module';\nimport { GioMonacoEditorModule } from '../gio-monaco-editor/gio-monaco-editor.module';\nimport { GioFormCronModule } from '../gio-form-cron/gio-form-cron.module';\nimport { GioPopoverComponent, PopoverTriggerDirective } from '../gio-popover';\nimport { GioElPromptComponent } from '../gio-el/gio-el-prompt/gio-el-prompt.component';\nimport { GioElAssistantComponent } from '../gio-el';\n\nimport { GioFjsNullTypeComponent } from './type-component/null-type.component';\nimport { GioFjsObjectTypeComponent } from './type-component/object-type.component';\nimport { GioFjsArrayTypeComponent } from './type-component/array-type.component';\nimport {\n typeValidationMessage,\n minLengthValidationMessage,\n maxLengthValidationMessage,\n minValidationMessage,\n maxValidationMessage,\n multipleOfValidationMessage,\n exclusiveMinimumValidationMessage,\n exclusiveMaximumValidationMessage,\n minItemsValidationMessage,\n maxItemsValidationMessage,\n constValidationMessage,\n patternValidationMessage,\n} from './util/validation-message.util';\nimport { GioFormJsonSchemaComponent } from './gio-form-json-schema.component';\nimport { GioBannerWrapperComponent as GioBannerWrapperComponent } from './wrappers/gio-banner-wrapper.component';\nimport { bannerExtension } from './wrappers/gio-banner-extension';\nimport { GioFjsMultiSchemaTypeComponent } from './type-component/multischema-type.component';\nimport { GioFormlyJsonSchemaService } from './gio-formly-json-schema.service';\nimport { GioFjsToggleTypeComponent } from './type-component/toggle-type.component';\nimport { GioFjsHeadersTypeComponent } from './type-component/headers-type.component';\nimport { GioPasswordEyeWrapperComponent, passwordEyeExtension } from './wrappers/gio-password-eye.component';\nimport { GioFjsCodeEditorTypeComponent } from './type-component/code-editor-type.component';\nimport { GioFjsCronTypeComponent } from './type-component/cron-type.component';\nimport { elHelpExtension, GioElHelperWrapperComponent } from './wrappers/gio-el-helper-wrapper.component';\n\n@NgModule({\n declarations: [\n GioFormJsonSchemaComponent,\n GioFjsNullTypeComponent,\n GioFjsObjectTypeComponent,\n GioFjsMultiSchemaTypeComponent,\n GioFjsArrayTypeComponent,\n GioFjsToggleTypeComponent,\n GioFjsHeadersTypeComponent,\n GioFjsCodeEditorTypeComponent,\n GioFjsCronTypeComponent,\n GioBannerWrapperComponent,\n GioPasswordEyeWrapperComponent,\n GioElHelperWrapperComponent,\n ],\n imports: [\n CommonModule,\n A11yModule,\n ReactiveFormsModule,\n\n FormlyModule.forRoot({\n validationMessages: [\n { name: 'required', message: 'This field is required' },\n { name: 'type', message: typeValidationMessage },\n { name: 'minLength', message: minLengthValidationMessage },\n { name: 'maxLength', message: maxLengthValidationMessage },\n { name: 'min', message: minValidationMessage },\n { name: 'max', message: maxValidationMessage },\n { name: 'multipleOf', message: multipleOfValidationMessage },\n { name: 'exclusiveMinimum', message: exclusiveMinimumValidationMessage },\n { name: 'exclusiveMaximum', message: exclusiveMaximumValidationMessage },\n { name: 'minItems', message: minItemsValidationMessage },\n { name: 'maxItems', message: maxItemsValidationMessage },\n { name: 'uniqueItems', message: 'Should NOT have duplicate items' },\n { name: 'const', message: constValidationMessage },\n { name: 'pattern', message: patternValidationMessage },\n ],\n wrappers: [\n { name: 'gio-with-banner', component: GioBannerWrapperComponent },\n { name: 'gio-password-eye', component: GioPasswordEyeWrapperComponent },\n { name: 'gio-el-help', component: GioElHelperWrapperComponent },\n ],\n types: [\n { name: 'null', component: GioFjsNullTypeComponent, wrappers: ['form-field'] },\n { name: 'array', component: GioFjsArrayTypeComponent },\n { name: 'object', component: GioFjsObjectTypeComponent },\n { name: 'multischema', component: GioFjsMultiSchemaTypeComponent },\n {\n name: 'toggle',\n component: GioFjsToggleTypeComponent,\n },\n {\n name: 'gio-code-editor',\n component: GioFjsCodeEditorTypeComponent,\n wrappers: ['form-field'],\n },\n {\n name: 'gio-headers-array',\n component: GioFjsHeadersTypeComponent,\n },\n {\n name: 'gio-cron',\n component: GioFjsCronTypeComponent,\n },\n ],\n extensions: [\n { name: 'banner', extension: { onPopulate: bannerExtension } },\n { name: 'password-eye', extension: { onPopulate: passwordEyeExtension } },\n { name: 'el-help', extension: { onPopulate: elHelpExtension } },\n ],\n extras: {\n checkExpressionOn: 'changeDetectionCheck',\n },\n }),\n FormlyMaterialModule,\n\n MatInputModule,\n GioIconsModule,\n GioFormSlideToggleModule,\n GioFormHeadersModule,\n GioMonacoEditorModule.forRoot({\n baseUrl: '.',\n }),\n GioFormCronModule,\n GioPopoverComponent,\n PopoverTriggerDirective,\n GioElPromptComponent,\n\n MatSlideToggleModule,\n MatButtonModule,\n GioElAssistantComponent,\n ],\n exports: [GioFormJsonSchemaComponent, FormlyModule],\n providers: [GioFormlyJsonSchemaService],\n})\nexport class GioFormJsonSchemaModule {}\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\nimport { JSONSchema7 } from 'json-schema';\n\nimport { GioMonacoEditorConfig } from '../type-component/code-editor-type.component';\n\n/**\n * GioConfig is used to add some custom configuration to the JSONSchema7\n * ⚠️ Keep updated with the GioJsonSchema.json to have the same interface ⚠️\n */\nexport interface GioConfig extends GioUiTypeConfig {\n displayIf?: GioIfConfig;\n disableIf?: GioIfConfig;\n banner?: GioBannerConfig;\n uniqueItemProperties?: string[];\n monacoEditorConfig?: GioMonacoEditorConfig;\n enumLabelMap?: Record<string, string>;\n uiBorder?: 'none' | 'full';\n el?: boolean;\n}\n\ntype GioBannerConfig =\n | {\n title: string;\n text: string;\n }\n | {\n text: string;\n };\n\nexport type ElColumns = 'key' | 'value' | 'both' | 'neither';\n/**\n * Used to override the default formly type. It's useful when we want to use a custom component.\n */\nexport type GioUiTypeConfig = {\n uiType?: 'gio-headers-array' | string;\n uiTypeProps?: {\n elColumns?: ElColumns;\n } & Record<string, unknown>;\n};\n\n/*\n * Condition\n * The condition is a JSON object with the context key and the value to compare.\n * Example: { $eq: { 'field': 'value' } }\n */\nexport type GioIfConfig = {\n $eq: Record<string, string | number | boolean | Array<string | number | boolean>>;\n};\n\n/**\n * Override the JSONSchema7 interface to add gioConfig\n * Use this way because the JSONSchema7 interface is recursive\n * And export with new name `GioJsonSchema` to make it more clear\n */\ndeclare module 'json-schema' {\n interface JSONSchema7 {\n gioConfig?: GioConfig;\n deprecated?: boolean;\n }\n}\n\nexport type GioJsonSchema = JSONSchema7;\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, HostListener, Optional, ElementRef } from '@angular/core';\nimport { FormGroupDirective } from '@angular/forms';\n\nimport { GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR } from './gio-form-focus-first-invalid-ignore.directive';\n\n@Directive()\nexport class GioBaseFormFocusInvalidDirective {\n constructor(\n private readonly hostElement: ElementRef,\n @Optional() protected readonly formGroupDirective: FormGroupDirective,\n ) {}\n\n protected focusOnFirstInvalid() {\n const selector = '.ng-invalid[formControlName],input.ng-invalid,mat-select.ng-invalid,textarea.ng-invalid,.gio-ng-invalid';\n\n try {\n // Mark all controls as touched to display errors\n if (this.formGroupDirective) {\n this.formGroupDirective.control.markAllAsTouched();\n this.formGroupDirective.control.updateValueAndValidity();\n }\n\n const parentForm = (this.hostElement.nativeElement as Element).closest('form');\n const invalidFieldElements = parentForm?.querySelectorAll<HTMLElement>(selector);\n const invalidControl = this.getFirstInvalidControl(invalidFieldElements);\n\n if (invalidControl) {\n invalidControl.scrollIntoView({ behavior: 'smooth', block: 'center' });\n invalidControl.focus({ preventScroll: true });\n }\n } catch (error) {\n // Best effort. If the focus doesn't work it's not very important\n // 🧪 Useful to avoid som error in tests\n }\n }\n\n private getFirstInvalidControl(invalidFieldElements: NodeListOf<HTMLElement> | undefined, index = 0): HTMLElement | undefined {\n let invalidControl = invalidFieldElements?.item(index);\n const hasIgnoreAttribute = (invalidControl as HTMLInputElement)?.attributes?.getNamedItem(GIO_FORM_FOCUS_INVALID_IGNORE_SELECTOR);\n if (hasIgnoreAttribute) {\n invalidControl = this.getFirstInvalidControl(invalidFieldElements, index + 1);\n }\n return invalidControl;\n }\n}\n\n@Directive({\n selector: 'form[gioFormFocusInvalid]',\n standalone: false,\n})\nexport class GioFormFocusInvalidFormDirective extends GioBaseFormFocusInvalidDirective {\n @HostListener('submit')\n public onFormSubmit() {\n this.focusOnFirstInvalid();\n }\n}\n\n@Directive({\n selector: 'button[gioFormFocusInvalid]',\n standalone: false,\n})\nexport class GioButtonFocusInvalidButtonDirective extends GioBaseFormFocusInvalidDirective {\n @HostListener('click')\n public onClick() {\n this.focusOnFirstInvalid();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\n\nimport { GioFormFocusInvalidIgnoreDirective } from './gio-form-focus-first-invalid-ignore.directive';\nimport { GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective } from './gio-form-focus-first-invalid.directive';\n\n@NgModule({\n declarations: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],\n exports: [GioFormFocusInvalidFormDirective, GioButtonFocusInvalidButtonDirective, GioFormFocusInvalidIgnoreDirective],\n})\nexport class GioFormFocusInvalidModule {}\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 */\nimport { Component } from '@angular/core';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\n\n/**\n * This component is used to test the GioMonacoEditorComponent.\n * This component simulates monaco editor with a simple input.\n */\n@Component({\n selector: 'gio-monaco-editor',\n template: '<input type=\"text\" [value]=\"getValue\" [disabled]=\"readOnly\" (input)=\"changeValue($any($event).target?.value)\" />',\n standalone: false,\n})\nexport class GioMonacoEditorTestingComponent extends GioMonacoEditorComponent {\n public get getValue(): string {\n return this.value;\n }\n\n public changeValue(value: string) {\n this._onTouched();\n this._onChange(value);\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, LocatorFactory } from '@angular/cdk/testing';\nimport { TestBed } from '@angular/core/testing';\n\nimport { GioMonacoEditorComponent } from './gio-monaco-editor.component';\nimport { GioMonacoEditorModule } from './gio-monaco-editor.module';\nimport { GioMonacoEditorTestingComponent } from './gio-monaco-editor.testing.component';\n\nexport const ConfigureTestingGioMonacoEditor = () => {\n // Hack to replace the default gio-monaco-editor component with fake one for testing purpose.\n try {\n TestBed.overrideModule(GioMonacoEditorModule, {\n remove: {\n declarations: [GioMonacoEditorComponent],\n exports: [GioMonacoEditorComponent],\n },\n add: {\n declarations: [GioMonacoEditorTestingComponent],\n exports: [GioMonacoEditorTestingComponent],\n },\n });\n } catch (e) {\n // Do nothing\n }\n};\nConfigureTestingGioMonacoEditor();\n\nexport type GioMonacoEditorHarnessFilters = BaseHarnessFilters;\n\nexport class GioMonacoEditorHarness extends ComponentHarness {\n public static hostSelector = 'gio-monaco-editor';\n\n constructor(locatorFactory: LocatorFactory) {\n super(locatorFactory);\n }\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioMonacoEditorHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioMonacoEditorHarnessFilters = {}): HarnessPredicate<GioMonacoEditorHarness> {\n return new HarnessPredicate(GioMonacoEditorHarness, options);\n }\n\n protected getInputEl = this.locatorFor('input');\n\n public async setValue(value: string): Promise<void> {\n const inputEl = await this.getInputEl();\n await inputEl.clear();\n await inputEl.sendKeys(value);\n }\n\n public async getValue(): Promise<string> {\n const inputEl = await this.getInputEl();\n return inputEl.getProperty('value');\n }\n\n public async isDisabled(): Promise<boolean> {\n const inputEl = await this.getInputEl();\n return inputEl.getProperty('disabled');\n }\n}\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 */\nimport { Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { catchError, delay, shareReplay, switchMap } from 'rxjs/operators';\n\ndeclare global {\n interface Window {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n Prism: any | undefined;\n }\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioPrismJsService {\n public loadPrismJs(): Observable<void> {\n // First load PrismJs\n return this.loadPrimeJsCore().pipe(\n // Then load PrismJs components\n switchMap(() => this.loadPrismJsComponent('json')),\n // Small delay to ensure PrismJs take language into account\n delay(100),\n // If already loaded, we don't want to load it again\n shareReplay(1),\n // Ignore error\n catchError(() => of(undefined)),\n );\n }\n\n private loadPrimeJsCore(): Observable<void> {\n return new Observable<void>(observer => {\n const onGotPrismJs = () => {\n observer.next();\n observer.complete();\n };\n\n if (!window.Prism) {\n const loaderPrismjs = document.createElement('script');\n loaderPrismjs.type = 'text/javascript';\n loaderPrismjs.src = 'assets/prismjs/prism.js';\n loaderPrismjs.addEventListener('load', onGotPrismJs);\n loaderPrismjs.addEventListener('error', err => observer.error(err));\n document.body.appendChild(loaderPrismjs);\n } else {\n onGotPrismJs();\n }\n });\n }\n\n private loadPrismJsComponent(name: string): Observable<void> {\n return new Observable<void>(observer => {\n const onGotPrismJsComponent = () => {\n observer.next();\n observer.complete();\n };\n\n if (!window.Prism.languages[name]) {\n const loaderPrismjsJson = document.createElement('script');\n loaderPrismjsJson.type = 'text/javascript';\n loaderPrismjsJson.src = `assets/prismjs/components/prism-${name}.js`;\n loaderPrismjsJson.addEventListener('load', onGotPrismJsComponent);\n loaderPrismjsJson.addEventListener('error', err => observer.error(err));\n document.body.appendChild(loaderPrismjsJson);\n } else {\n onGotPrismJsComponent();\n }\n });\n }\n}\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 */\nexport const GIO_DIALOG_WIDTH = {\n SMALL: '440px',\n MEDIUM: '600px',\n LARGE: '1240px',\n};\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeStyle, SafeScript, SafeUrl, SafeResourceUrl } from '@angular/platform-browser';\n\n@Pipe({\n name: 'safe',\n standalone: false,\n})\nexport class SafePipe implements PipeTransform {\n constructor(protected sanitizer: DomSanitizer) {}\n\n public transform(value: string | undefined, type: string): SafeHtml | SafeStyle | SafeScript | SafeUrl | SafeResourceUrl {\n if (!value) {\n return '';\n }\n switch (type) {\n // No Sonar because the bypass is deliberate and should only be used with safe data\n case 'html':\n return this.sanitizer.bypassSecurityTrustHtml(value); // NOSONAR\n case 'style':\n return this.sanitizer.bypassSecurityTrustStyle(value); // NOSONAR\n case 'script':\n return this.sanitizer.bypassSecurityTrustScript(value); // NOSONAR\n case 'url':\n return this.sanitizer.bypassSecurityTrustUrl(value); // NOSONAR\n case 'resourceUrl':\n return this.sanitizer.bypassSecurityTrustResourceUrl(value); // NOSONAR\n default:\n throw new Error(`Invalid safe type specified: ${type}`);\n }\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\n\nimport { SafePipe } from './safe.pipe';\n\n@NgModule({\n imports: [],\n declarations: [SafePipe],\n exports: [SafePipe],\n})\nexport class GioSafePipeModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Inject } from '@angular/core';\nimport { MatDialogRef, MAT_DIALOG_DATA } from '@angular/material/dialog';\n\nimport { FeatureInfo } from '../gio-license.service';\n\nexport type GioLicenseDialogData = {\n featureInfo: FeatureInfo;\n trialURL: string;\n};\n\n@Component({\n selector: 'gio-license-dialog',\n templateUrl: './gio-license-dialog.component.html',\n styleUrls: ['./gio-license-dialog.component.scss'],\n standalone: false,\n})\nexport class GioLicenseDialogComponent {\n public featureInfo: FeatureInfo;\n public trialURL: string;\n\n constructor(\n private readonly dialogRef: MatDialogRef<GioLicenseDialogData>,\n @Inject(MAT_DIALOG_DATA) dialogData: GioLicenseDialogData,\n ) {\n this.featureInfo = dialogData?.featureInfo;\n this.trialURL = dialogData?.trialURL;\n }\n\n public onClose() {\n this.dialogRef.close();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-license-dialog__title\">\n <mat-icon class=\"gio-license-dialog__title__cancel\"></mat-icon>\n <button mat-icon-button [attr.aria-label]=\"'Close'\" (click)=\"onClose()\">\n <mat-icon class=\"gio-license-dialog__title__cancel\" svgIcon=\"gio:cancel\"> </mat-icon>\n </button>\n</div>\n\n<mat-dialog-content class=\"gio-license-dialog__content\">\n <img class=\"gio-license-dialog__content__image\" [src]=\"featureInfo.image\" [alt]=\"featureInfo.title || 'Unlock Gravitee Enterprise'\" />\n <h2 class=\"gio-license-dialog__content__title\" [innerHTML]=\"featureInfo.title || 'Unlock Gravitee Enterprise' | safe: 'html'\"></h2>\n <div class=\"gio-license-dialog__content__description\" [innerHTML]=\"featureInfo.description | safe: 'html'\"></div>\n <div class=\"gio-license-dialog__content__action\">\n <a class=\"gio-license-dialog__content__action__button\" mat-stroked-button color=\"primary\" target=\"_blank\" [href]=\"trialURL\">\n {{ featureInfo.trialButtonLabel || 'Request an enterprise license' }} <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </a>\n @if (!featureInfo.hideDays) {\n <div class=\"gio-license-dialog__content__action__info\">14 days trial</div>\n }\n </div>\n</mat-dialog-content>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { HttpClient } from '@angular/common/http';\nimport { Inject, Injectable } from '@angular/core';\nimport { Observable, of } from 'rxjs';\nimport { map, shareReplay, switchMap } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { has, isEmpty } from 'lodash';\n\nimport { GioLicenseDialogComponent, GioLicenseDialogData } from './gio-license-dialog/gio-license-dialog.component';\n\nexport type License = {\n tier: string;\n packs: Array<string>;\n features: Array<string>;\n expiresAt?: Date;\n scope?: string;\n isExpired?: boolean;\n};\n\nexport interface LicenseConfiguration {\n resourceURL: string;\n featureInfoData: Record<string, FeatureInfo>;\n trialResourceURL: string;\n utmSource?: string;\n utmCampaign?: string;\n}\n\nexport interface UTM {\n source: string;\n medium: string;\n campaign: string;\n}\n\nexport type LicenseOptionsBase = {\n // We used feature name as utm_medium\n feature?: string;\n // Optional, useful if need a context in utm campaign (utm_content)\n context?: string;\n};\n\nexport type LicensePluginOptions = LicenseOptionsBase & {\n // When is deployed, the plugin is included in license\n deployed: boolean;\n};\n\nexport type LicenseOptions = LicenseOptionsBase | LicensePluginOptions;\n\nexport const isLicensePluginOptions = (licenseOptions: LicenseOptions): licenseOptions is LicensePluginOptions =>\n has(licenseOptions, 'deployed');\n\nexport interface FeatureInfo {\n image?: string;\n description?: string;\n title?: string;\n trialButtonLabel?: string;\n hideDays?: boolean;\n}\n\n@Injectable({\n providedIn: 'root',\n})\nexport class GioLicenseService {\n private readonly loadLicense$: Observable<License>;\n\n constructor(\n private readonly http: HttpClient,\n @Inject('LicenseConfiguration')\n private readonly licenseConfiguration: LicenseConfiguration,\n private readonly matDialog: MatDialog,\n ) {\n this.loadLicense$ = this.http.get<License>(licenseConfiguration.resourceURL).pipe(shareReplay(1));\n }\n\n public getLicense$(): Observable<License> {\n return this.loadLicense$;\n }\n\n public isMissingFeature$(feature: string | undefined): Observable<boolean> {\n if (feature == null) {\n return of(false);\n }\n return this.isExpired$().pipe(\n switchMap(isExpired => {\n if (isExpired) {\n return of(isExpired);\n }\n return this.getLicense$().pipe(map(license => license == null || !license.features.some(feat => feat === feature)));\n }),\n );\n }\n\n public hasAllFeatures$(licenseOptions: LicenseOptions[] | undefined): Observable<boolean> {\n if (!licenseOptions || isEmpty(licenseOptions)) {\n return of(true);\n }\n return this.isExpired$().pipe(\n switchMap(isExpired => {\n const featuresDefined = licenseOptions.some(o => !!o.feature);\n if (isExpired && featuresDefined) {\n return of(false);\n }\n return this.getLicense$().pipe(\n map(license => license != null && licenseOptions.every(o => license.features.some(feat => feat === o.feature))),\n );\n }),\n );\n }\n\n public getFeatureInfo(licenseOptions: LicenseOptions): FeatureInfo {\n if (!licenseOptions.feature) {\n throw new Error(`feature is undefined`);\n }\n const featureInfo = this.licenseConfiguration.featureInfoData[licenseOptions.feature];\n if (!featureInfo) {\n throw new Error(\n `Unknown Feature value ${licenseOptions.feature}. Expected one of ${Object.keys(this.licenseConfiguration.featureInfoData)}`,\n );\n }\n return featureInfo;\n }\n\n public getTrialURL(licenseOptions: LicenseOptions): string {\n if (!licenseOptions.feature) {\n throw new Error(`feature is undefined`);\n }\n const urlParams =\n this.licenseConfiguration.utmSource || this.licenseConfiguration.utmCampaign\n ? `?utm_source=${this.licenseConfiguration.utmSource}&utm_medium=${licenseOptions.feature}&utm_campaign=${this.licenseConfiguration.utmCampaign}`\n : '';\n const context = urlParams.length > 0 && licenseOptions.context ? `&utm_content=${licenseOptions.context}` : '';\n return `${this.licenseConfiguration.trialResourceURL}${urlParams}${context}`;\n }\n\n public isOEM$(): Observable<boolean> {\n return this.getLicense$().pipe(map(license => license !== null && license.features.includes('oem-customization')));\n }\n\n public openDialog(licenseOptions: LicenseOptions, event?: Event) {\n event?.stopPropagation();\n event?.preventDefault();\n const featureInfo = this.getFeatureInfo(licenseOptions);\n const trialURL = this.getTrialURL(licenseOptions);\n return this.matDialog\n .open<GioLicenseDialogComponent, GioLicenseDialogData, boolean>(GioLicenseDialogComponent, {\n data: {\n featureInfo,\n trialURL,\n },\n role: 'alertdialog',\n id: 'gioLicenseDialog',\n })\n .afterClosed()\n .subscribe();\n }\n\n public getExpiresAt$(): Observable<Date | undefined> {\n return this.getLicense$().pipe(map(license => (license.expiresAt ? new Date(license.expiresAt) : undefined)));\n }\n\n public isExpired$(): Observable<boolean> {\n return this.getLicense$().pipe(map(license => license?.isExpired === true));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Directive, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';\nimport { filter, map, takeUntil, tap } from 'rxjs/operators';\nimport { MatDialog } from '@angular/material/dialog';\nimport { of, Subject } from 'rxjs';\nimport { isNil } from 'lodash';\n\nimport { FeatureInfo, GioLicenseService, isLicensePluginOptions, LicenseOptions, LicensePluginOptions } from './gio-license.service';\nimport { GioLicenseDialogComponent, GioLicenseDialogData } from './gio-license-dialog/gio-license-dialog.component';\n\n@Directive({\n selector: '[gioLicense]',\n standalone: false,\n})\nexport class GioLicenseDirective implements OnInit, OnDestroy {\n /**\n * The license to check. Must be defined when the directive is initialised, otherwise the value will not be taken into account.\n */\n @Input()\n public gioLicense?: LicenseOptions | LicensePluginOptions;\n\n private featureInfo: FeatureInfo = {};\n private trialURL = '';\n\n private unsubscribe$: Subject<boolean> = new Subject<boolean>();\n private onClick = this.click.bind(this);\n\n constructor(\n private readonly licenseService: GioLicenseService,\n private readonly matDialog: MatDialog,\n private elRef: ElementRef,\n ) {}\n\n public ngOnInit(): void {\n const gioLicense = this.gioLicense;\n\n // If the license is not defined, we do not need to check anything\n if (isNil(gioLicense)) {\n return;\n }\n\n this.isNotAllowed$(gioLicense)\n .pipe(\n tap(() => {\n this.elRef.nativeElement.removeEventListener('click', this.onClick, true);\n }),\n filter(notAllowed => notAllowed),\n map(() => this.licenseService.getFeatureInfo(gioLicense)),\n tap(featureInfo => {\n this.featureInfo = featureInfo;\n this.elRef.nativeElement.addEventListener('click', this.onClick, true);\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n\n if (gioLicense.feature) {\n this.trialURL = this.licenseService.getTrialURL(gioLicense);\n }\n }\n\n private isNotAllowed$(gioLicense: LicenseOptions | LicensePluginOptions) {\n if (isLicensePluginOptions(gioLicense)) {\n return of(!gioLicense.deployed);\n }\n return this.licenseService.isMissingFeature$(gioLicense.feature);\n }\n\n public ngOnDestroy(): void {\n this.elRef.nativeElement.removeEventListener('click', this.onClick, true);\n this.unsubscribe$.next(false);\n this.unsubscribe$.unsubscribe();\n }\n\n private click($event: PointerEvent) {\n $event.preventDefault();\n $event.stopPropagation();\n\n this.matDialog\n .open<GioLicenseDialogComponent, GioLicenseDialogData, boolean>(GioLicenseDialogComponent, {\n data: {\n featureInfo: this.featureInfo,\n trialURL: this.trialURL,\n },\n role: 'alertdialog',\n id: 'gioLicenseDialog',\n })\n .afterClosed()\n .subscribe();\n return false;\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatDialogModule } from '@angular/material/dialog';\nimport { MatButtonModule } from '@angular/material/button';\n\nimport { GioSafePipeModule } from '../../gio-pipe/gio.pipe.module';\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioLicenseDialogComponent } from './gio-license-dialog.component';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, GioIconsModule, MatButtonModule, GioSafePipeModule],\n declarations: [GioLicenseDialogComponent],\n exports: [GioLicenseDialogComponent],\n})\nexport class GioLicenseDialogModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatDialogModule } from '@angular/material/dialog';\n\nimport { GioLicenseDirective } from './gio-license.directive';\nimport { GioLicenseDialogModule } from './gio-license-dialog/gio-license-dialog.module';\n\n@NgModule({\n imports: [CommonModule, MatDialogModule, GioLicenseDialogModule],\n declarations: [GioLicenseDirective],\n exports: [GioLicenseDirective],\n})\nexport class GioLicenseModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { NgModule } from '@angular/core';\nimport { of } from 'rxjs';\n\nimport { GioLicenseService, LicenseConfiguration } from './gio-license.service';\n\nexport const LICENSE_CONFIGURATION_TESTING: LicenseConfiguration = {\n resourceURL: 'https://url.test:3000/license',\n trialResourceURL: 'https://url.test:3000/trial',\n utmSource: 'oss_utm_source_test',\n utmCampaign: 'oss_utm_campaign_test',\n featureInfoData: {\n foobar: {\n image: 'assets/gio-icons.svg',\n description: 'Foobar feature description',\n title: 'FOOBAR',\n },\n },\n};\nexport const OEM_LICENSE_CONFIGURATION_TESTING: LicenseConfiguration = {\n resourceURL: 'https://oem.test:3000/license',\n trialResourceURL: 'https://oem.test:3000/trial',\n featureInfoData: {\n foobar: {\n image: 'assets/gio-icons.svg',\n description: 'Foobar feature description',\n title: 'FOOBAR',\n },\n },\n};\n\n@NgModule({\n imports: [],\n providers: [\n {\n provide: 'LicenseConfiguration',\n useValue: LICENSE_CONFIGURATION_TESTING,\n },\n {\n provide: GioLicenseService,\n useValue: {\n isMissingFeature$: () => of(true),\n getFeatureInfo: () => ({}),\n getTrialURL: () => '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n openDialog: () => {},\n },\n },\n ],\n})\nexport class GioLicenseTestingModule {\n public static with(license: boolean) {\n return {\n ngModule: GioLicenseTestingModule,\n providers: [\n {\n provide: 'LicenseConfiguration',\n useValue: LICENSE_CONFIGURATION_TESTING,\n },\n {\n provide: GioLicenseService,\n useValue: {\n isMissingFeature$: () => of(!license),\n getFeatureInfo: () => ({}),\n getTrialURL: () => '',\n // eslint-disable-next-line @typescript-eslint/no-empty-function\n openDialog: () => {},\n },\n },\n ],\n };\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { Component, Input, OnChanges, OnInit, SimpleChanges } from '@angular/core';\n\n@Component({\n selector: 'gio-license-expiration-notification',\n templateUrl: './gio-license-expiration-notification.component.html',\n styleUrls: ['./gio-license-expiration-notification.component.scss'],\n standalone: false,\n})\nexport class GioLicenseExpirationNotificationComponent implements OnInit, OnChanges {\n @Input()\n public expirationDate: Date | undefined;\n\n @Input()\n public showCallToAction = true;\n\n @Input()\n public callToActionMessage: string | undefined;\n\n @Input()\n public link: string | undefined;\n\n @Input()\n public inError = false;\n\n public title = '';\n public daysRemaining = 0;\n public statusColor = 'blue';\n\n public ngOnInit(): void {\n if (!this.expirationDate) {\n return;\n }\n\n if (this.inError) {\n this.title = \"There's an issue with your license\";\n return;\n }\n\n const date = new Date();\n const timeRemaining = this.transformDateWithoutHours(this.expirationDate) - this.transformDateWithoutHours(date);\n this.daysRemaining = Math.round(timeRemaining / (1000 * 3600 * 24));\n\n if (this.expirationDate.getTime() - date.getTime() < 0) {\n this.title = 'Your license has expired';\n this.statusColor = 'red';\n } else if (this.daysRemaining === 0) {\n this.title = `Your license will expire today`;\n this.statusColor = 'orange';\n } else {\n this.title = `Your license will expire in ${this.daysRemaining} day${this.daysRemaining === 1 ? '' : 's'}`;\n this.statusColor = this.daysRemaining > 5 ? 'blue' : 'orange';\n }\n }\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.expirationDate) {\n this.ngOnInit();\n }\n }\n\n private transformDateWithoutHours(date: Date): number {\n return new Date(date.toDateString()).valueOf();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n@if (expirationDate && daysRemaining <= 30) {\n <div class=\"status\" rel=\"noopener\">\n <div [ngClass]=\"'status__title ' + statusColor\">\n <div class=\"status__title__text\">\n {{ title }}\n <img src=\"assets/license-expiration-notification-background.svg\" />\n </div>\n </div>\n @if (showCallToAction) {\n <a class=\"status__action\" [href]=\"link ?? 'https://www.gravitee.io/contact-us-licence'\" target=\"_blank\">\n <div class=\"status__action__text\">{{ callToActionMessage ?? 'Contact Gravitee' }}</div>\n <mat-icon svgIcon=\"gio:right-circle\" class=\"status__action__icon\"></mat-icon>\n </a>\n }\n </div>\n}\n","/*\n * Copyright (C) 2024 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 */\nimport { NgModule } from '@angular/core';\nimport { CommonModule } from '@angular/common';\nimport { MatButtonModule } from '@angular/material/button';\nimport { MatTooltipModule } from '@angular/material/tooltip';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioLicenseExpirationNotificationComponent } from './gio-license-expiration-notification.component';\n\n@NgModule({\n imports: [CommonModule, MatButtonModule, MatTooltipModule, GioIconsModule],\n declarations: [GioLicenseExpirationNotificationComponent],\n exports: [GioLicenseExpirationNotificationComponent],\n})\nexport class GioLicenseExpirationNotificationModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { ComponentHarness } from '@angular/cdk/testing';\n\nexport class GioLicenseExpirationNotificationHarness extends ComponentHarness {\n public static hostSelector = 'gio-license-expiration-notification';\n\n protected getTitleContainer = this.locatorFor('.status__title');\n protected getTitleMessage = this.locatorFor('.status__title__text');\n protected getCallToActionMessage = this.locatorFor('.status__action__text');\n protected getCallToActionLink = this.locatorFor('.status__action');\n\n public async getTitleText(): Promise<string> {\n return this.getTitleMessage().then(el => el.text());\n }\n\n public async isCallToActionVisible(): Promise<boolean> {\n return this.getCallToActionLink()\n .then(_ => true)\n .catch(_ => false);\n }\n\n public async getCallToActionText(): Promise<string> {\n return this.getCallToActionMessage().then(el => el.text());\n }\n\n public async getLink(): Promise<string | null> {\n return this.getCallToActionLink().then(el => el.getAttribute('href'));\n }\n\n public async isColor(color: string): Promise<boolean> {\n return this.getTitleContainer().then(el => el.hasClass(color));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\nimport { MatButtonToggleGroupHarness } from '@angular/material/button-toggle/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\n\nexport type GioFormCronHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormCronHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-cron';\n\n protected getModeToggleGroup = this.locatorFor(MatButtonToggleGroupHarness.with({ selector: '[formControlName=\"mode\"]' }));\n\n protected getCustomExpressionInput = this.locatorFor(MatInputHarness.with({ selector: '[formControlName=\"customExpression\"]' }));\n /**\n * Gets a `HarnessPredicate` that can be used to search for this harness.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormCronHarnessFilters = {}): HarnessPredicate<GioFormCronHarness> {\n return new HarnessPredicate(GioFormCronHarness, options);\n }\n\n public async getMode(): Promise<string | null> {\n const mode = await this.getModeToggleGroup();\n\n const selected = await (await mode.getToggles({ checked: true }))[0]?.getText();\n\n if (!selected) {\n return null;\n }\n return selected;\n }\n\n public async setMode(mode: string): Promise<void> {\n const modeToggle = await this.getModeToggleGroup();\n await (await modeToggle.getToggles({ text: mode }))[0]?.check();\n }\n\n public async clear(): Promise<void> {\n const clearButton = await this.locatorForOptional('[aria-label=\"Clear\"]')();\n await clearButton?.click();\n }\n\n public async getValue(): Promise<string | null> {\n if ((await this.getMode()) === 'Custom') {\n const input = await this.getCustomExpressionInput();\n return input.getValue();\n }\n const value = await this.locatorForOptional('.preview__value')();\n\n return value?.text() ?? null;\n }\n\n public async setCustomValue(value: string): Promise<void> {\n if ((await this.getMode()) !== 'Custom') {\n await this.setMode('Custom');\n }\n\n const input = await this.getCustomExpressionInput();\n await input.setValue(value);\n }\n\n public async isDisabled(): Promise<boolean> {\n const mode = await this.getModeToggleGroup();\n return mode.isDisabled();\n }\n\n public async hasError(): Promise<boolean> {\n const host = await this.host();\n const attribute = await host.getAttribute('class');\n const error = attribute?.includes('ng-invalid');\n\n return error ?? false;\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { ChangeDetectionStrategy, ChangeDetectorRef, Component, HostBinding, HostListener, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-form-selection-inline-card',\n template: `\n <div matRipple [matRippleDisabled]=\"_disabled\" class=\"card\" [class.selected]=\"selected\" [class.disabled]=\"_disabled\">\n <span class=\"selection-icon\">\n @if (lock) {\n <mat-icon class=\"selection-icon__lock-icon\" svgIcon=\"gio:lock\"></mat-icon>\n }\n <mat-icon class=\"selection-icon__radio-icon\">{{ selected ? 'radio_button_checked' : 'radio_button_unchecked' }}</mat-icon>\n </span>\n\n <div class=\"card__content\"><ng-content></ng-content></div>\n </div>\n `,\n styleUrls: ['./gio-form-selection-inline-card.component.scss'],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardComponent {\n @Input()\n public value?: string;\n\n @Input()\n public lock: boolean = false;\n\n @Input()\n public disabled: boolean = false;\n\n @HostBinding('class.disabled')\n public get _disabled() {\n return this.disabled || this._parendDisabled || this.lock;\n }\n\n @HostBinding('class.selected')\n public selected = false;\n\n public _parendDisabled = false;\n\n public onSelectFn?: (value?: string) => void;\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n @HostListener('click')\n public onSelectCard() {\n if (!this._disabled && !this.lock) {\n this.selected = !this.selected;\n\n if (this.onSelectFn) {\n this.onSelectFn(this.value);\n }\n }\n }\n\n public _markForCheck() {\n // When group value changes, the button will not be notified. Use `markForCheck` to explicit\n // update radio button's status\n this.changeDetector.markForCheck();\n this.changeDetector.detectChanges();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterContentInit,\n ChangeDetectionStrategy,\n ChangeDetectorRef,\n Component,\n ContentChildren,\n forwardRef,\n QueryList,\n} from '@angular/core';\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { GioFormSelectionInlineCardComponent } from './gio-form-selection-inline-card.component';\n\n@Component({\n selector: 'gio-form-selection-inline',\n templateUrl: './gio-form-selection-inline.component.html',\n styleUrls: ['./gio-form-selection-inline.component.scss'],\n providers: [\n {\n provide: NG_VALUE_ACCESSOR,\n multi: true,\n useExisting: forwardRef(() => GioFormSelectionInlineComponent),\n },\n ],\n changeDetection: ChangeDetectionStrategy.OnPush,\n standalone: false,\n})\nexport class GioFormSelectionInlineComponent implements ControlValueAccessor, AfterContentInit {\n @ContentChildren(forwardRef(() => GioFormSelectionInlineCardComponent), { descendants: true })\n private selectCardsList?: QueryList<GioFormSelectionInlineCardComponent>;\n\n public selection?: string;\n\n public disabled = false;\n\n private _onChange: (value?: string) => void = () => ({});\n\n private _onTouched: () => void = () => ({});\n\n constructor(private readonly changeDetector: ChangeDetectorRef) {}\n\n public ngAfterContentInit() {\n this.selectCardsList?.forEach(card => {\n card._parendDisabled = this.disabled;\n\n if (card.value === this.selection) {\n card.selected = true;\n\n this.changeDetector.markForCheck();\n }\n\n card.onSelectFn = value => {\n if (!this.disabled) {\n this.updateCardsSelection(value);\n }\n };\n card._markForCheck();\n });\n }\n\n // From ControlValueAccessor interface\n public writeValue(value: string): void {\n this.selection = value;\n this.updateCardsSelection(value);\n this.changeDetector.markForCheck();\n }\n\n // From ControlValueAccessor interface\n public registerOnChange(fn: (value?: string) => void): void {\n this._onChange = fn;\n }\n\n // From ControlValueAccessor interface\n public registerOnTouched(fn: () => void): void {\n this._onTouched = fn;\n }\n\n // From ControlValueAccessor interface\n public setDisabledState(isDisabled: boolean): void {\n this.disabled = isDisabled;\n if (this.selectCardsList) {\n this.selectCardsList.forEach(card => {\n card._parendDisabled = this.disabled;\n card._markForCheck();\n });\n }\n this.changeDetector.markForCheck();\n }\n\n private updateCardsSelection(value?: string) {\n if (this.selectCardsList) {\n this.selectCardsList.forEach(card => {\n const newSelectedValue = card.value === value;\n\n if (newSelectedValue !== card.selected) {\n card.selected = card.value === value;\n card._markForCheck();\n }\n });\n\n this.selection = value;\n this._onChange(this.selection);\n this._onTouched();\n }\n }\n}\n","<!--\n\n Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<ng-content select=\"gio-form-selection-inline-card\"></ng-content>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-form-selection-inline-card-content',\n template: `<div class=\"content\">\n @if (icon) {\n <mat-icon class=\"content__icon\" [svgIcon]=\"icon\"></mat-icon>\n } @else if (img) {\n <img class=\"content__icon\" [src]=\"img\" />\n }\n <div class=\"content__title\">\n <ng-content select=\"gio-card-content-title\"></ng-content>\n </div>\n <div class=\"content__subtitle\">\n <ng-content select=\"gio-card-content-subtitle\"></ng-content>\n </div>\n </div>`,\n styleUrls: ['./gio-form-selection-inline-card-content.component.scss'],\n standalone: false,\n})\nexport class GioFormSelectionInlineCardContentComponent {\n @Input()\n public icon: string | undefined;\n\n @Input()\n public img: string | undefined;\n}\n\n@Component({\n selector: 'gio-card-content-title',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardTitleComponent {}\n\n@Component({\n selector: 'gio-card-content-subtitle',\n template: `<ng-content></ng-content>`,\n standalone: false,\n})\nexport class GioFormSelectionInlineCardSubtitleComponent {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { MatRippleModule } from '@angular/material/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioFormSelectionInlineCardComponent } from './gio-form-selection-inline-card.component';\nimport { GioFormSelectionInlineComponent } from './gio-form-selection-inline.component';\nimport {\n GioFormSelectionInlineCardContentComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n} from './gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component';\n\n@NgModule({\n imports: [CommonModule, MatCardModule, MatIconModule, MatRippleModule, GioIconsModule],\n declarations: [\n GioFormSelectionInlineComponent,\n GioFormSelectionInlineCardComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n GioFormSelectionInlineCardContentComponent,\n ],\n exports: [\n GioFormSelectionInlineComponent,\n GioFormSelectionInlineCardComponent,\n GioFormSelectionInlineCardSubtitleComponent,\n GioFormSelectionInlineCardTitleComponent,\n GioFormSelectionInlineCardContentComponent,\n ],\n})\nexport class GioFormSelectionInlineModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate } from '@angular/cdk/testing';\n\nexport type GioFormSelectionInlineCardHarnessFilters = BaseHarnessFilters & {\n value?: string;\n};\n\nexport class GioFormSelectionInlineCardHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-selection-inline-card';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormSelectionInlineCardHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormSelectionInlineCardHarnessFilters = {}): HarnessPredicate<GioFormSelectionInlineCardHarness> {\n return new HarnessPredicate(GioFormSelectionInlineCardHarness, options).addOption('value', options.value, (harness, value) =>\n HarnessPredicate.stringMatches(harness.getValue(), value),\n );\n }\n\n public async getValue(): Promise<string | null> {\n const host = await this.host();\n // Fallback to keep for Angular 19 compatibility. Can be removed when all projects are on Angular 20+\n const value = (await host.getAttribute('value')) ?? (await host.getAttribute('ng-reflect-value'));\n return value ?? null;\n }\n\n public async isSelected(): Promise<boolean> {\n return (await this.host()).hasClass('selected');\n }\n\n public async isDisabled(): Promise<boolean> {\n return (await this.host()).hasClass('disabled');\n }\n\n public async getContentText(): Promise<string> {\n const content = await this.locatorFor('.card__content')();\n return content.text();\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nimport { BaseHarnessFilters, ComponentHarness, HarnessPredicate, parallel } from '@angular/cdk/testing';\n\nimport { GioFormSelectionInlineCardHarness } from './gio-form-selection-inline-card.harness';\n\nexport type GioFormSelectionInlineHarnessFilters = BaseHarnessFilters;\n\nexport class GioFormSelectionInlineHarness extends ComponentHarness {\n public static hostSelector = 'gio-form-selection-inline';\n\n /**\n * Gets a `HarnessPredicate` that can be used to search for a `GioFormSelectionInlineHarness` that meets\n * certain criteria.\n *\n * @param options Options for filtering which input instances are considered a match.\n * @return a `HarnessPredicate` configured with the given options.\n */\n public static with(options: GioFormSelectionInlineHarnessFilters = {}): HarnessPredicate<GioFormSelectionInlineHarness> {\n return new HarnessPredicate(GioFormSelectionInlineHarness, options);\n }\n\n protected getCards = this.locatorForAll(GioFormSelectionInlineCardHarness);\n\n protected async getCardByValue(value: string) {\n const primaryLocator = await this.locatorForOptional(`gio-form-selection-inline-card[value=\"${value}\"]`)();\n if (primaryLocator) {\n return primaryLocator;\n }\n\n // Fallback to keep for Angular 19 compatibility. Can be removed when all projects are on Angular 20+\n const secondaryLocator = await this.locatorForOptional(`gio-form-selection-inline-card[ng-reflect-value=\"${value}\"]`)();\n if (secondaryLocator) {\n return secondaryLocator;\n }\n\n throw new Error(`No card found with value or ng-reflect-value \"${value}\"`);\n }\n\n public async getSelectedValue(): Promise<string | undefined> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async row => ({ class: await row.isSelected(), value: await row.getValue() })));\n\n return cardsAttr.find(card => card.class)?.value ?? undefined;\n }\n\n public async getUnselectedValues(): Promise<(string | undefined)[]> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async row => ({ class: await row.isSelected(), value: await row.getValue() })));\n\n return cardsAttr.filter(card => !card.class).map(card => card.value ?? undefined);\n }\n\n public async getSelectionCards(): Promise<\n {\n text: string;\n value: string | undefined;\n selected: boolean;\n disabled: boolean;\n }[]\n > {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() =>\n cards.map(async card => ({\n text: await card.getContentText(),\n selected: await card.isSelected(),\n value: (await card.getValue()) ?? undefined,\n disabled: await card.isDisabled(),\n })),\n );\n\n return cardsAttr.map(card => ({ text: card.text, selected: card.selected, value: card.value, disabled: card.disabled }));\n }\n\n public async select(value: string): Promise<void> {\n const card = await this.getCardByValue(value);\n\n await card.click();\n }\n\n public async isDisabled(): Promise<boolean> {\n const cards = await this.getCards();\n\n const cardsAttr = await parallel(() => cards.map(async card => ({ hasClass: await card.isDisabled() })));\n\n return cardsAttr.every(card => card.hasClass);\n }\n}\n","/*\n * Copyright (C) 2024 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 */\nexport * from './gio-form-selection-inline.module';\nexport * from './gio-form-selection-inline.component';\nexport * from './gio-form-selection-inline-card.component';\nexport * from './gio-form-selection-inline-card-content/gio-form-selection-inline-card-content.component';\nexport * from './gio-form-selection-inline.harness';\nexport * from './gio-form-selection-inline-card.harness';\n","/*\n * Copyright (C) 2022 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 */\nimport { Injectable } from '@angular/core';\nimport { BehaviorSubject, timer } from 'rxjs';\nimport { debounce, distinctUntilChanged } from 'rxjs/operators';\n\nexport interface OverlayOptions {\n top?: number;\n parent?: HTMLElement;\n open: boolean;\n focus?: boolean;\n}\n\n// Keep the reduce state in local storage\nconst REDUCE_STATE_KEY = 'gio-reduce-state';\nconst getDefaultReduceState = () => (localStorage?.getItem(REDUCE_STATE_KEY) === 'true' ? true : false);\n\n@Injectable({ providedIn: 'root' })\nexport class GioMenuService {\n private reducedSubject = new BehaviorSubject<boolean>(getDefaultReduceState());\n\n private overlaySubject = new BehaviorSubject<OverlayOptions>({ open: false });\n\n public reduced$ = this.reducedSubject.asObservable();\n\n public overlayObservable = this.overlaySubject.asObservable().pipe(\n distinctUntilChanged((prev, curr) => prev.open === curr.open),\n debounce(overlayOptions => timer(overlayOptions.open ? 150 : 500)),\n );\n\n public reduce(reduced: boolean): void {\n this.reducedSubject.next(reduced);\n localStorage?.setItem(REDUCE_STATE_KEY, reduced.toString());\n }\n\n public overlay(overlayOptions: OverlayOptions): void {\n this.overlaySubject.next(overlayOptions);\n }\n}\nexport const cleanLocalStorageReduceState = () => localStorage?.removeItem(REDUCE_STATE_KEY);\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, HostListener, Input, OnDestroy } from '@angular/core';\nimport { of, Subject } from 'rxjs';\nimport { delay, filter, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { GioMenuService } from '../gio-menu.service';\n\n@Component({\n selector: 'gio-menu-item',\n templateUrl: './gio-menu-item.component.html',\n styleUrls: ['./gio-menu-item.component.scss'],\n standalone: false,\n})\nexport class GioMenuItemComponent implements OnDestroy {\n @Input() public icon = '';\n @Input() public iconRight?: string;\n @Input() public active = false;\n @Input() public outlined = false;\n\n private unsubscribe$ = new Subject<void>();\n\n constructor(private readonly gioMenuService: GioMenuService) {}\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public onMouseLeave(): void {\n if (this.active) {\n this.gioMenuService.overlay({ open: false });\n }\n }\n\n public onMouseEnter($event: MouseEvent): void {\n if (this.active) {\n const menuItem = $event.target as HTMLInputElement;\n this.gioMenuService.overlay({ open: true, top: menuItem.getBoundingClientRect().top, parent: menuItem });\n }\n }\n\n @HostListener('click', ['$event'])\n public onClick($event: MouseEvent): void {\n of(true)\n .pipe(\n delay(0),\n tap(() => this.onMouseEnter($event)),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler($event: KeyboardEvent): void {\n of($event.key === 'Enter' && $event.target)\n .pipe(\n filter(enterKey => !!enterKey),\n switchMap(() => of($event.target as HTMLElement)),\n tap(menuItem => {\n this.gioMenuService.overlay({ open: false });\n if (this.active) {\n this.gioMenuService.overlay({ open: true, top: menuItem.getBoundingClientRect().top, parent: menuItem, focus: true });\n } else {\n menuItem.click();\n }\n }),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n class=\"gio-menu-item\"\n [class.gio-menu-item__active]=\"active\"\n [class.gio-menu-item__outlined]=\"outlined\"\n (click)=\"onClick($event)\"\n (mouseenter)=\"onMouseEnter($event)\"\n (mouseleave)=\"onMouseLeave()\"\n>\n @if (icon) {\n <mat-icon class=\"gio-menu-item__icon\" [svgIcon]=\"icon\"></mat-icon>\n }\n <span class=\"gio-menu-item__title\"><ng-content></ng-content></span>\n @if (iconRight) {\n <mat-icon class=\"gio-menu-item__icon-right\" [svgIcon]=\"iconRight\"></mat-icon>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-footer',\n templateUrl: './gio-menu-footer.component.html',\n styleUrls: ['./gio-menu-footer.component.scss'],\n standalone: false,\n})\nexport class GioMenuFooterComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-footer\">\n <div class=\"gio-menu-footer__content\">\n <ng-content></ng-content>\n </div>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input, OnChanges, SimpleChanges, ViewEncapsulation } from '@angular/core';\n\nimport { GioMenuService } from './gio-menu.service';\n\n@Component({\n selector: 'gio-menu',\n templateUrl: './gio-menu.component.html',\n styleUrls: ['./gio-menu.component.scss'],\n encapsulation: ViewEncapsulation.None,\n standalone: false,\n})\nexport class GioMenuComponent implements OnChanges {\n @Input()\n public reduced = false;\n\n public reduce$ = this.gioMenuService.reduced$;\n\n constructor(private readonly gioMenuService: GioMenuService) {}\n\n public ngOnChanges(changes: SimpleChanges): void {\n if (changes.reduced) {\n this.gioMenuService.reduce(this.reduced);\n }\n }\n\n public reduceMenu(reduced: boolean | null): void {\n this.gioMenuService.reduce(!reduced);\n }\n\n public onMouseLeave(reduced: boolean | null): void {\n if (reduced) {\n this.gioMenuService.overlay({ open: false });\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n@if ({ reduced: reduce$ | async }; as context) {\n <div class=\"gio-menu\" [class.gio-menu__reduced]=\"context.reduced\" (mouseleave)=\"onMouseLeave(context.reduced)\">\n <ng-content select=\"gio-menu-header\"></ng-content>\n <ng-content select=\"gio-menu-list\"></ng-content>\n <ng-content select=\"gio-menu-license-expiration-notification\"></ng-content>\n <ng-content select=\"gio-menu-footer\"></ng-content>\n <gio-menu-footer>\n <gio-menu-item\n tabIndex=\"1\"\n type=\"button\"\n class=\"gio-menu-footer__collapse\"\n [icon]=\"context.reduced ? 'gio:expande' : 'gio:collapse'\"\n (click)=\"reduceMenu(context.reduced)\"\n [outlined]=\"true\"\n >Collapse menu</gio-menu-item\n >\n </gio-menu-footer>\n </div>\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-list',\n templateUrl: './gio-menu-list.component.html',\n styleUrls: ['./gio-menu-list.component.scss'],\n standalone: false,\n})\nexport class GioMenuListComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-list\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { MatSelectChange } from '@angular/material/select';\n\nexport type SelectorItem = {\n value: string;\n displayValue: string;\n};\n\n@Component({\n selector: 'gio-menu-selector',\n templateUrl: './gio-menu-selector.component.html',\n styleUrls: ['./gio-menu-selector.component.scss'],\n standalone: false,\n})\nexport class GioMenuSelectorComponent {\n @Input()\n public selectorTitle = '';\n\n @Input()\n public selectorItems: SelectorItem[] = [];\n\n @Input()\n public selectedItemValue = '';\n\n @Input()\n public tabIndex = 1;\n\n @Output()\n public selectChange: EventEmitter<string> = new EventEmitter<string>();\n\n public onSelectionChange($event: MatSelectChange): void {\n this.selectChange.emit($event.value);\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-selector\">\n <span class=\"gio-menu-selector__label mat-caption\">{{ selectorTitle }}</span>\n <mat-select\n class=\"gio-menu-selector__select\"\n [tabIndex]=\"tabIndex\"\n panelClass=\"gio-menu-selector-custom-width\"\n [value]=\"selectedItemValue\"\n (selectionChange)=\"onSelectionChange($event)\"\n >\n @for (item of selectorItems; track item) {\n <mat-option class=\"gio-menu-selector__select__mat-option\" [value]=\"item.value\">\n {{ item.displayValue }}\n </mat-option>\n }\n </mat-select>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-header',\n templateUrl: './gio-menu-header.component.html',\n styleUrls: ['./gio-menu-header.component.scss'],\n standalone: false,\n})\nexport class GioMenuHeaderComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-header\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-menu-license-expiration-notification',\n templateUrl: './gio-menu-license-expiration-notification.component.html',\n styleUrls: ['./gio-menu-license-expiration-notification.component.scss'],\n standalone: false,\n})\nexport class GioMenuLicenseExpirationNotificationComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-menu-license-expiration-notification\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Injectable } from '@angular/core';\nimport { filter, intersection, isEqual, isNil, some } from 'lodash';\n\nimport { MenuSearchItem } from './gio-menu-search.component';\n\n@Injectable({ providedIn: 'root' })\nexport class GioMenuSearchService {\n public menuSearchItems: MenuSearchItem[] = [];\n\n public addMenuSearchItems(items: MenuSearchItem[]): void {\n items.forEach(item => {\n const isDuplicate = some(this.menuSearchItems, existingItem => isEqual(existingItem, item));\n if (!isDuplicate) {\n this.menuSearchItems.push(item);\n }\n });\n }\n\n public removeMenuSearchItems(groupIds: string[]) {\n this.menuSearchItems = filter(this.menuSearchItems, item => isNil(item.groupIds) || !intersection(groupIds, item.groupIds).length);\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, EventEmitter, Output } from '@angular/core';\nimport { Observable } from 'rxjs';\nimport { FormControl } from '@angular/forms';\nimport { map, startWith } from 'rxjs/operators';\nimport { MatAutocompleteSelectedEvent } from '@angular/material/autocomplete';\n\nimport { GioMenuSearchService } from './gio-menu-search.service';\n\nexport interface MenuSearchItem {\n name: string;\n routerLink: string;\n category: string;\n groupIds?: string[];\n}\n\n@Component({\n selector: 'gio-menu-search',\n templateUrl: './gio-menu-search.component.html',\n styleUrls: ['./gio-menu-search.component.scss'],\n standalone: false,\n})\nexport class GioMenuSearchComponent {\n protected control = new FormControl<string | MenuSearchItem>('');\n protected filteredItems$: Observable<MenuSearchItem[]> = this.control.valueChanges.pipe(\n startWith(''),\n map(value => {\n const name = typeof value === 'string' ? value : value?.name;\n return this._filter(name);\n }),\n );\n\n @Output()\n public valueChanges: EventEmitter<MenuSearchItem> = new EventEmitter<MenuSearchItem>();\n\n constructor(private readonly gioMenuSearchService: GioMenuSearchService) {}\n\n protected displayFn(item: MenuSearchItem): string {\n return item?.name ?? '';\n }\n\n protected onSelectionChange(event: MatAutocompleteSelectedEvent) {\n this.control.reset();\n this.valueChanges.emit(event.option.value);\n }\n\n private _filter(value: string | undefined): MenuSearchItem[] {\n if (!value) {\n return [];\n }\n\n const filterValue = this._normalizeValue(value);\n return this.gioMenuSearchService.menuSearchItems.filter(item => this._normalizeValue(item?.name).includes(filterValue));\n }\n\n private _normalizeValue(value: string): string {\n return value.toLowerCase().replace(/\\s/g, '');\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<form>\n <div class=\"gio-menu-search\">\n <div class=\"gio-menu-search__input-container\">\n <input\n matInput\n class=\"gio-menu-search__input\"\n type=\"text\"\n placeholder=\"Search...\"\n [formControl]=\"control\"\n [matAutocomplete]=\"auto\"\n (keydown.enter)=\"$event.preventDefault()\"\n />\n </div>\n <div class=\"gio-menu-search__icon-container\">\n <mat-icon svgIcon=\"gio:search\" class=\"gio-menu-search__icon\"></mat-icon>\n </div>\n <mat-autocomplete\n #auto=\"matAutocomplete\"\n [panelWidth]=\"192\"\n [hideSingleSelectionIndicator]=\"true\"\n [displayWith]=\"displayFn\"\n (optionSelected)=\"onSelectionChange($event)\"\n >\n @for (item of filteredItems$ | async; track item) {\n <mat-option [value]=\"item\">\n <div class=\"gio-menu-search__item\">\n <div class=\"gio-menu-search__item__name\">{{ item.name }}</div>\n <div class=\"gio-menu-search__item__category\">{{ item.category }}</div>\n </div>\n </mat-option>\n }\n </mat-autocomplete>\n </div>\n</form>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\nimport { MatSelectModule } from '@angular/material/select';\nimport { MatInputModule } from '@angular/material/input';\nimport { MatAutocompleteModule } from '@angular/material/autocomplete';\nimport { ReactiveFormsModule } from '@angular/forms';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioMenuItemComponent } from './gio-menu-item/gio-menu-item.component';\nimport { GioMenuComponent } from './gio-menu.component';\nimport { GioMenuFooterComponent } from './gio-menu-footer/gio-menu-footer.component';\nimport { GioMenuListComponent } from './gio-menu-list/gio-menu-list.component';\nimport { GioMenuSelectorComponent } from './gio-menu-selector/gio-menu-selector.component';\nimport { GioMenuHeaderComponent } from './gio-menu-header/gio-menu-header.component';\nimport { GioMenuLicenseExpirationNotificationComponent } from './gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component';\nimport { GioMenuSearchComponent } from './gio-menu-search/gio-menu-search.component';\n\n@NgModule({\n declarations: [\n GioMenuComponent,\n GioMenuItemComponent,\n GioMenuFooterComponent,\n GioMenuListComponent,\n GioMenuHeaderComponent,\n GioMenuSearchComponent,\n GioMenuSelectorComponent,\n GioMenuLicenseExpirationNotificationComponent,\n ],\n exports: [\n GioMenuComponent,\n GioMenuItemComponent,\n GioMenuFooterComponent,\n GioMenuListComponent,\n GioMenuHeaderComponent,\n GioMenuSearchComponent,\n GioMenuSelectorComponent,\n GioMenuLicenseExpirationNotificationComponent,\n ],\n imports: [CommonModule, MatAutocompleteModule, MatIconModule, MatInputModule, GioIconsModule, MatSelectModule, ReactiveFormsModule],\n})\nexport class GioMenuModule {}\n","/*\n * Copyright (C) 2022 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\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatSelectHarness } from '@angular/material/select/testing';\n\nexport class GioMenuSelectorHarness extends ComponentHarness {\n public static hostSelector = 'gio-menu-selector';\n\n private getSelect = this.locatorFor(MatSelectHarness);\n\n public async availableOptions(): Promise<string[]> {\n const select = await this.getSelect();\n await select.open();\n const options = await select.getOptions();\n\n return Promise.all(options.map(o => o.getText()));\n }\n\n public async selectedOption(): Promise<string> {\n const select = await this.getSelect();\n return select.getValueText();\n }\n\n public async selectOptionByIndex(index: number): Promise<void> {\n const select = await this.getSelect();\n await select.open();\n const options = await select.getOptions();\n\n return options[index].click();\n }\n}\n","/*\n * Copyright (C) 2022 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\nimport { ComponentHarness } from '@angular/cdk/testing';\nimport { MatInputHarness } from '@angular/material/input/testing';\nimport { MatAutocompleteHarness } from '@angular/material/autocomplete/testing';\n\nexport class GioMenuSearchHarness extends ComponentHarness {\n public static hostSelector = 'gio-menu-search';\n private getSearchInput = this.locatorFor(MatInputHarness);\n private getSearchAutoComplete = this.locatorFor(MatAutocompleteHarness);\n\n public async setSearchValue(value: string): Promise<void> {\n return this.getSearchInput().then(input => input.setValue(value));\n }\n\n public async getSearchValue(): Promise<string> {\n return this.getSearchInput().then(input => input.getValue());\n }\n\n public async isAutoCompletePanelVisible(): Promise<boolean> {\n return this.getSearchAutoComplete().then(autocomplete => autocomplete.isOpen());\n }\n\n public async getFilteredOptions(): Promise<string[]> {\n return this.getSearchAutoComplete()\n .then(autocomplete => autocomplete.getOptions())\n .then(async options => Promise.all(options.map(option => option.getText())));\n }\n}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-menu.module';\nexport * from './gio-menu.service';\nexport * from './gio-menu.component';\nexport * from './gio-menu-item/gio-menu-item.component';\nexport * from './gio-menu-list/gio-menu-list.component';\nexport * from './gio-menu-footer/gio-menu-footer.component';\nexport * from './gio-menu-header/gio-menu-header.component';\nexport * from './gio-menu-selector/gio-menu-selector.component';\nexport * from './gio-menu-selector/gio-menu-selector.harness';\nexport * from './gio-menu-search/gio-menu-search.component';\nexport * from './gio-menu-search/gio-menu-search.harness';\nexport * from './gio-menu-search/gio-menu-search.service';\nexport * from './gio-menu-license-expiration-notification/gio-menu-license-expiration-notification.component';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport {\n AfterViewInit,\n ChangeDetectorRef,\n Component,\n Directive,\n ElementRef,\n HostListener,\n Input,\n OnDestroy,\n ViewChild,\n} from '@angular/core';\nimport { of, Subject } from 'rxjs';\nimport { delay, filter, map, switchMap, takeUntil, tap } from 'rxjs/operators';\n\nimport { GioMenuService, OverlayOptions } from '../gio-menu';\n\n@Directive({\n selector: '[gioSubmenuTitle]',\n standalone: false,\n})\nexport class GioSubmenuTitleDirective {}\n\nexport type GioSubmenuTheme = 'dark' | 'light';\n\n@Component({\n selector: 'gio-submenu',\n templateUrl: './gio-submenu.component.html',\n styleUrls: ['./gio-submenu.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuComponent implements AfterViewInit, OnDestroy {\n @Input()\n public theme: GioSubmenuTheme = 'dark';\n\n @Input()\n public static = false;\n\n public reduced = false;\n public loaded = false;\n public overlayOptions: OverlayOptions = { open: false };\n private hover = false;\n @ViewChild('gioSubmenu', { static: false })\n private gioSubmenu!: ElementRef<HTMLDivElement>;\n private unsubscribe$ = new Subject<void>();\n\n constructor(\n private readonly gioMenuService: GioMenuService,\n private readonly changeDetectorRef: ChangeDetectorRef,\n ) {}\n\n public ngAfterViewInit(): void {\n // When the menu is reduced\n const reduced$ = of({}).pipe(\n tap(() => {\n this.reduced = true;\n this.loaded = true;\n this.gioSubmenu.nativeElement.style.height = 'auto';\n this.gioSubmenu.nativeElement.style.maxHeight = `0vh`;\n this.changeDetectorRef.detectChanges();\n }),\n // On hover root menu item, open the submenu with top position\n switchMap(() => this.gioMenuService.overlayObservable),\n tap(overlayOptions => {\n this.overlayOptions = overlayOptions;\n if (overlayOptions.open) {\n const top = overlayOptions.top || 0;\n this.gioSubmenu.nativeElement.style.top = `${top}px`;\n this.gioSubmenu.nativeElement.style.maxHeight = `calc(100vh - ${top + 8}px)`;\n }\n }),\n filter(overlayOptions => !!overlayOptions.focus),\n // Focus the first submenu item\n delay(200),\n map(() => this.gioSubmenu.nativeElement.querySelectorAll<HTMLElement>('gio-submenu-item')),\n filter(submenuItems => submenuItems.length > 0),\n tap(submenuItems => submenuItems[0].focus()),\n );\n\n // When the menu is not reduced\n const notReduced$ = of({}).pipe(\n tap(() => {\n this.reduced = false;\n this.loaded = true;\n this.gioSubmenu.nativeElement.style.height = '100%';\n this.gioSubmenu.nativeElement.style.maxHeight = 'unset';\n this.gioSubmenu.nativeElement.style.top = 'unset';\n }),\n );\n\n this.gioMenuService.reduced$\n .pipe(\n switchMap(reduced => (reduced && !this.static ? reduced$ : notReduced$)),\n takeUntil(this.unsubscribe$),\n )\n .subscribe(() => {\n this.changeDetectorRef.detectChanges();\n });\n }\n\n public ngOnDestroy(): void {\n this.unsubscribe$.next();\n this.unsubscribe$.unsubscribe();\n }\n\n public onMouseEnter(): void {\n this.hover = true;\n this.gioMenuService.overlay(this.overlayOptions);\n }\n\n public onMouseLeave(): void {\n this.hover = false;\n this.gioMenuService.overlay({ open: false });\n }\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent): void {\n of(this.reduced && event.key === 'Escape')\n .pipe(\n filter(reducedAndEscape => reducedAndEscape),\n tap(() => this.gioMenuService.overlay({ open: false })),\n delay(100),\n tap(() => this.overlayOptions.parent?.focus()),\n takeUntil(this.unsubscribe$),\n )\n .subscribe();\n }\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div\n #gioSubmenu\n class=\"gio-submenu\"\n [class.gio-submenu__loaded]=\"loaded\"\n [class.gio-submenu__reduced]=\"reduced\"\n [class.gio-submenu__overlay]=\"overlayOptions.open\"\n [class.gio-submenu__light]=\"theme === 'light'\"\n (mouseenter)=\"onMouseEnter()\"\n (mouseleave)=\"onMouseLeave()\"\n>\n <div #title class=\"gio-submenu__title\" [class.hide]=\"!title.children.length || reduced\">\n <ng-content select=\"[gioSubmenuTitle]\"></ng-content>\n </div>\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nimport { GioSubmenuTheme } from '../gio-submenu.component';\n\n@Component({\n selector: 'gio-submenu-group',\n templateUrl: './gio-submenu-group.component.html',\n styleUrls: ['./gio-submenu-group.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuGroupComponent {\n @Input() public title = '';\n\n @Input() public theme: GioSubmenuTheme = 'dark';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-submenu-group\">\n <div class=\"gio-submenu-group__title\" [class.gio-submenu-group__title__light]=\"theme === 'light'\">{{ title }}</div>\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, ElementRef, HostListener, Input, ViewChild } from '@angular/core';\n\n@Component({\n selector: 'gio-submenu-item',\n templateUrl: './gio-submenu-item.component.html',\n styleUrls: ['./gio-submenu-item.component.scss'],\n standalone: false,\n})\nexport class GioSubmenuItemComponent {\n @Input() public active = false;\n\n @Input() public iconRight?: string;\n\n @ViewChild('gioSubmenuItem', { static: false })\n private gioSubmenuItem: ElementRef<HTMLDivElement> | undefined;\n\n @HostListener('keydown', ['$event'])\n public onKeydownHandler(event: KeyboardEvent): void {\n if (event.key === 'Enter') {\n this.gioSubmenuItem?.nativeElement.click();\n }\n }\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div #gioSubmenuItem class=\"gio-submenu-item\" [class.gio-submenu-item__active]=\"active\">\n <span class=\"gio-submenu-item__title\"><ng-content></ng-content></span>\n @if (iconRight) {\n <mat-icon class=\"gio-submenu-item__icon-right\" [svgIcon]=\"iconRight\"></mat-icon>\n }\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioSubmenuGroupComponent } from './gio-submenu-group/gio-submenu-group.component';\nimport { GioSubmenuComponent, GioSubmenuTitleDirective } from './gio-submenu.component';\nimport { GioSubmenuItemComponent } from './gio-submenu-item/gio-submenu-item.component';\n\n@NgModule({\n declarations: [GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuTitleDirective],\n exports: [GioSubmenuComponent, GioSubmenuGroupComponent, GioSubmenuItemComponent, GioSubmenuTitleDirective],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioSubmenuModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-submenu.component';\nexport * from './gio-submenu.module';\nexport * from './gio-submenu-group/gio-submenu-group.component';\nexport * from './gio-submenu-item/gio-submenu-item.component';\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nexport type GioTopBarTypes = 'am' | 'apim' | 'cockpit';\n\n@Component({\n selector: 'gio-top-bar',\n templateUrl: './gio-top-bar.component.html',\n styleUrls: ['./gio-top-bar.component.scss'],\n standalone: false,\n})\nexport class GioTopBarComponent {\n @Input() public type: GioTopBarTypes = 'am';\n\n @Input() public productName = '';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\nexport type GioTopBarProductTypes = 'am' | 'apim' | 'cockpit' | 'cloud' | 'portal';\n\n@Component({\n selector: 'gio-top-bar-content',\n templateUrl: './gio-top-bar-content.component.html',\n styleUrls: ['./gio-top-bar-content.component.scss'],\n standalone: false,\n})\nexport class GioTopBarContentComponent {\n @Input()\n public type: GioTopBarProductTypes = 'am';\n @Input()\n public productName = 'Access Management';\n}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n\n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n\n http://www.apache.org/licenses/LICENSE-2.0\n\n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar-content\" [class]=\"type\">\n <mat-icon [svgIcon]=\"'gio:product-' + type\"></mat-icon>\n <span>{{ productName }}</span>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../gio-icons/gio-icons.module';\n\nimport { GioTopBarComponent } from './gio-top-bar.component';\nimport { GioTopBarContentComponent } from './gio-top-bar-content/gio-top-bar-content.component';\n\n@NgModule({\n declarations: [GioTopBarComponent, GioTopBarContentComponent],\n exports: [GioTopBarComponent, GioTopBarContentComponent],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioTopBarModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component } from '@angular/core';\n\n@Component({\n selector: 'gio-top-bar-menu',\n templateUrl: './gio-top-bar-menu.component.html',\n styleUrls: ['./gio-top-bar-menu.component.scss'],\n standalone: false,\n})\nexport class GioTopBarMenuComponent {}\n","<!--\n\n Copyright (C) 2022 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<div class=\"gio-top-bar-menu\">\n <ng-content></ng-content>\n</div>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\n\nimport { GioTopBarMenuComponent } from './gio-top-bar-menu.component';\n\n@NgModule({\n declarations: [GioTopBarMenuComponent],\n exports: [GioTopBarMenuComponent],\n imports: [CommonModule],\n})\nexport class GioTopBarMenuModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-top-bar-link',\n templateUrl: './gio-top-bar-link.component.html',\n styleUrls: ['./gio-top-bar-link.component.scss'],\n standalone: false,\n})\nexport class GioTopBarLinkComponent {\n @Input() public url = '';\n @Input() public name = '';\n}\n","<!--\n\n Copyright (C) 2022 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<a mat-button [href]=\"url\" target=\"_blank\" class=\"gio-top-bar-link\">\n <div class=\"gio-top-bar-link__content\">\n <span>{{ name }}</span>\n <mat-icon svgIcon=\"gio:external-link\"></mat-icon>\n </div>\n</a>\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\nimport { CommonModule } from '@angular/common';\nimport { NgModule } from '@angular/core';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../../../gio-icons/gio-icons.module';\n\nimport { GioTopBarLinkComponent } from './gio-top-bar-link.component';\n\n@NgModule({\n declarations: [GioTopBarLinkComponent],\n exports: [GioTopBarLinkComponent],\n imports: [CommonModule, MatIconModule, GioIconsModule],\n})\nexport class GioTopBarLinkModule {}\n","/*\n * Copyright (C) 2015 The Gravitee team (http://gravitee.io)\n *\n * Licensed under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License.\n * You may obtain a copy of the License at\n *\n * http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software\n * distributed under the License is distributed on an \"AS IS\" BASIS,\n * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n * See the License for the specific language governing permissions and\n * limitations under the License.\n */\n\nexport * from './gio-top-bar.module';\nexport * from './gio-top-bar.component';\nexport * from './gio-top-bar-menu/gio-top-bar-menu.module';\nexport * from './gio-top-bar-menu/gio-top-bar-menu.component';\nexport * from './gio-top-bar-link/gio-top-bar-link.module';\nexport * from './gio-top-bar-link/gio-top-bar-link.component';\nexport * from './gio-top-bar-content/gio-top-bar-content.component';\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\nexport interface OemTheme {\n menuBackground: string;\n menuActive: string;\n}\n\nconst computeStyles = (theme: OemTheme): { key: string; value: string }[] => {\n const backgroundStyle = computeStyleAndContrastByPrefix('background', theme.menuBackground);\n const activeStyle = computeStyleAndContrastByPrefix('active', theme.menuActive);\n let subMenu: { key: string; value: string }[] = [];\n // If the menu background is defined, then define the sub-menu color\n if (theme.menuBackground) {\n subMenu = [{ key: `--gio-oem-palette--sub-menu`, value: `color-mix(in srgb, ${theme.menuBackground} 80%, black)` }];\n }\n return [...backgroundStyle, ...activeStyle, ...subMenu];\n};\n\nconst computeStyleAndContrastByPrefix = (prefix: string, color: string): { key: string; value: string }[] => {\n if (!color) {\n return [];\n }\n const paletteColor = { key: `--gio-oem-palette--${prefix}`, value: color };\n const paletteColorContrast = { key: `--gio-oem-palette--${prefix}-contrast`, value: '#fff' };\n return [paletteColor, paletteColorContrast];\n};\nexport { computeStyles };\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 */\nexport * from './gio-menu';\nexport * from './gio-submenu';\nexport * from './gio-top-bar';\nexport * from './oem-theme.service';\n","/*\n * Copyright (C) 2024 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 */\nimport { Component, Input } from '@angular/core';\n\n@Component({\n selector: 'gio-card-empty-state',\n templateUrl: './gio-card-empty-state.component.html',\n styleUrls: ['./gio-card-empty-state.component.scss'],\n standalone: false,\n})\nexport class GioCardEmptyStateComponent {\n @Input() public icon: string | undefined;\n @Input() public title: string | undefined;\n @Input() public subtitle: string | undefined;\n}\n","<!--\n\n Copyright (C) 2025 The Gravitee team (http://gravitee.io)\n \n Licensed under the Apache License, Version 2.0 (the \"License\");\n you may not use this file except in compliance with the License.\n You may obtain a copy of the License at\n \n http://www.apache.org/licenses/LICENSE-2.0\n \n Unless required by applicable law or agreed to in writing, software\n distributed under the License is distributed on an \"AS IS\" BASIS,\n WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n See the License for the specific language governing permissions and\n limitations under the License.\n\n-->\n<mat-card class=\"gio-empty-state\">\n <mat-card-content class=\"gio-empty-state__content\">\n @if (icon) {\n <mat-icon class=\"gio-empty-state__content__icon\" [svgIcon]=\"'gio:' + icon\"></mat-icon>\n }\n @if (title) {\n <div class=\"mat-h3\">{{ title }}</div>\n }\n @if (subtitle) {\n <span class=\"gio-empty-state__content__subtitle\">{{ subtitle }}</span>\n }\n </mat-card-content>\n</mat-card>\n","/*\n * Copyright (C) 2024 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 */\nimport { NgModule } from '@angular/core';\nimport { MatCardModule } from '@angular/material/card';\nimport { CommonModule } from '@angular/common';\nimport { MatIconModule } from '@angular/material/icon';\n\nimport { GioIconsModule } from '../gio-icons/gio-icons.module';\n\nimport { GioCardEmptyStateComponent } from './gio-card-empty-state.component';\n\n@NgModule({\n declarations: [GioCardEmptyStateComponent],\n exports: [GioCardEmptyStateComponent],\n imports: [CommonModule, MatCardModule, MatIconModule, GioIconsModule],\n})\nexport class GioCardEmptyStateModule {}\n","/*\n * Copyright (C) 2024 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 */\nexport * from './gio-card-empty-state.component';\nexport * from './gio-card-empty-state.module';\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-popover.component';\nexport * from './gio-popover-trigger.directive';\n","/*\n * Copyright (C) 2024 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\nexport * from './gio-el-prompt/gio-el-prompt.component';\nexport * from './gio-el-assistant/gio-el-assistant.component';\nexport * from './models/ElAiPromptState';\nexport * from './gio-el.service';\n","/*\n * Copyright (C) 2021 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 * Public API Surface\n */\nexport * from './gio-save-bar/gio-save-bar.component';\nexport * from './gio-save-bar/gio-save-bar.module';\nexport * from './gio-save-bar/gio-save-bar.harness';\n\nexport * from './gio-form-tags-input/gio-form-tags-input.component';\nexport * from './gio-form-tags-input/gio-form-tags-input.module';\nexport * from './gio-form-tags-input/gio-form-tags-input.harness';\n\nexport * from './gio-banner/gio-banner.component';\nexport * from './gio-banner/gio-banner.module';\n\nexport * from './gio-confirm-dialog/gio-confirm-dialog.component';\nexport * from './gio-confirm-dialog/gio-confirm-dialog.module';\nexport * from './gio-confirm-dialog/gio-confirm-dialog.harness';\n\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.component';\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.module';\nexport * from './gio-confirm-and-validate-dialog/gio-confirm-and-validate-dialog.harness';\n\nexport * from './gio-icons/gio-icons.module';\n\nexport * from './gio-form-headers/gio-form-headers.component';\nexport * from './gio-form-headers/gio-form-headers-label.component';\nexport * from './gio-form-headers/gio-form-headers.module';\nexport * from './gio-form-headers/gio-form-headers.harness';\n\nexport * from './gio-form-file-picker';\n\nexport * from './gio-avatar';\n\nexport * from './gio-breadcrumb';\n\nexport * from './gio-mat-config';\n\nexport * from './gio-form-json-schema/gio-form-json-schema.component';\nexport * from './gio-form-json-schema/gio-form-json-schema.module';\nexport * from './gio-form-json-schema/model/GioJsonSchema';\nexport * from './gio-form-json-schema/model/GioJsonSchemaContext';\n\nexport * from './gio-form-slide-toggle/gio-form-slide-toggle.component';\nexport * from './gio-form-slide-toggle/gio-form-slide-toggle.module';\nexport * from './gio-form-slide-toggle/gio-form-label.directive';\n\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.directive';\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid-ignore.directive';\nexport * from './gio-form-focus-first-invalid/gio-form-focus-first-invalid.module';\n\nexport * from './gio-monaco-editor/gio-monaco-editor.component';\nexport * from './gio-monaco-editor/gio-monaco-clipboard-copy.component';\nexport * from './gio-monaco-editor/gio-monaco-editor-form-field.directive';\nexport * from './gio-monaco-editor/gio-monaco-editor.module';\nexport * from './gio-monaco-editor/gio-monaco-editor.harness';\n\nexport * from './gio-loader/gio-loader.module';\nexport * from './gio-loader/gio-loader.component';\n\nexport * from './gio-prismjs/gio-prismjs.service';\n\nexport * from './gio-dialog/gio-dialog.constant';\n\nexport * from './gio-clipboard/gio-clipboard.module';\nexport * from './gio-clipboard/gio-clipboard-copy-icon.component';\nexport * from './gio-clipboard/gio-clipboard-copy-wrapper.component';\n\nexport * from './gio-pipe/gio.pipe.module';\nexport * from './gio-pipe/safe.pipe';\n\nexport * from './gio-license/gio-license.module';\nexport * from './gio-license/gio-license.service';\nexport * from './gio-license/gio-license.directive';\nexport * from './gio-license/gio-license-dialog/gio-license-dialog.module';\nexport * from './gio-license/gio-license-dialog/gio-license-dialog.component';\nexport * from './gio-license/gio-license.testing.module';\n\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.module';\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.component';\nexport * from './gio-license-expiration-notification/gio-license-expiration-notification.harness';\n\nexport * from './gio-form-cron/gio-form-cron.component';\nexport * from './gio-form-cron/gio-form-cron-label.component';\nexport * from './gio-form-cron/gio-form-cron-hint.component';\nexport * from './gio-form-cron/gio-form-cron.module';\nexport * from './gio-form-cron/gio-form-cron.harness';\n\nexport * from './gio-form-selection-inline/public-api';\n\nexport * from './oem-theme/public-api';\n\nexport * from './gio-card-empty-state';\n\nexport * from './gio-popover/public-api';\nexport * from './gio-el/public-api';\n","/*\n * Copyright (C) 2021 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 * Public API Surface of ui-particles-angular\n */\n\nexport * from './lib/public-api';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i4","i6.GioLoaderComponent","i7","i3","i5","i6.GioBannerWarningComponent","i6.GioBannerErrorComponent","i6.GioBannerInfoComponent","i6.GioBannerSuccessComponent","i6.GioBannerBodyDirective","i7.GioClipboardCopyWrapperComponent","i6","i8.GioElAssistantComponent","i9","i5.GioFormFilePickerAddButtonComponent","i6.GioFormFilePickerEmptyComponent","i1.GioFormlyJsonSchemaService","i1.GioMonacoEditorService","i2.GioLanguageJsonService","i3.GioLanguageElService","i2.GioMonacoEditorComponent","i1.GioClipboardCopyIconComponent","i8","i3.GioFormSlideToggleComponent","i4.GioFormLabelComponent","i4.GioFormSlideToggleDirective","i4.GioFormHeadersComponent","FieldType","i3.GioMonacoEditorFormFieldDirective","i2.GioFormCronComponent","i3.GioFormCronLabelComponent","i4.GioFormCronHintComponent","i1.GioElAssistantComponent","i4.SafePipe","i1.GioLicenseService","i1.GioMenuService","i2.GioMenuItemComponent","i3.GioMenuFooterComponent","filter","i1.GioMenuSearchService"],"mappings":"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"}