{
    "pipes": [],
    "interfaces": [
        {
            "name": "ApiQueue",
            "id": "interface-ApiQueue-83fdc3b03c2ed12ffb460752346b3f2b7c9dc35d78319a9c98720d1783cd1fcc2a7abc4f351162621f296f3ad0d9b1435613e7b30fd09303775cc128cf3675a3",
            "file": "packages/base/src/lib/eui-models/eui-store/models/app.models.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "type HTTPMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH';\n\nexport interface ApiQueueItem<PAYLOAD = unknown> {\n    uri: string;\n    method: HTTPMethod | string;\n    payload?: PAYLOAD;\n    timestamp?: number;\n}\n\nexport interface ApiQueue {\n    [id: string]: ApiQueueItem;\n}\n",
            "properties": [],
            "indexSignatures": [
                {
                    "id": "index-declaration-83fdc3b03c2ed12ffb460752346b3f2b7c9dc35d78319a9c98720d1783cd1fcc2a7abc4f351162621f296f3ad0d9b1435613e7b30fd09303775cc128cf3675a3",
                    "args": [
                        {
                            "name": "id",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "ApiQueueItem",
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "ApiQueueItem",
            "id": "interface-ApiQueueItem-83fdc3b03c2ed12ffb460752346b3f2b7c9dc35d78319a9c98720d1783cd1fcc2a7abc4f351162621f296f3ad0d9b1435613e7b30fd09303775cc128cf3675a3",
            "file": "packages/base/src/lib/eui-models/eui-store/models/app.models.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "type HTTPMethod = 'GET' | 'HEAD' | 'POST' | 'PUT' | 'DELETE' | 'CONNECT' | 'OPTIONS' | 'TRACE' | 'PATCH';\n\nexport interface ApiQueueItem<PAYLOAD = unknown> {\n    uri: string;\n    method: HTTPMethod | string;\n    payload?: PAYLOAD;\n    timestamp?: number;\n}\n\nexport interface ApiQueue {\n    [id: string]: ApiQueueItem;\n}\n",
            "properties": [
                {
                    "name": "method",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HTTPMethod | string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "payload",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "PAYLOAD",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "timestamp",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "uri",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 4
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "AppState",
            "id": "interface-AppState-0beb338a76405354204cc81aea266ebcbc9e0a1f583ae932e7c6bada950dbfcfd2d28e0b593e3fa003e0bad4eb18119e32e99cabee3b924aefc80e09cc9f1d6a",
            "file": "packages/base/src/lib/eui-models/eui-store/state/app.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { ApiQueue } from '../models';\nimport { ModulesConfig } from '../../eui-config';\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AppState<T = any> {\n    version?: string;\n    /** flag to indicate if the application is online/offline. Default: true */\n    connected?: boolean;\n    loadedConfigModules?: LoadedConfigModules;\n\n    status?: string;\n    currentModule?: string;\n    apiQueue?: ApiQueue;\n\n    [key: string]: string | boolean | LoadedConfigModules | ApiQueue | T;\n}\n\nexport const initialAppState: AppState = Object.assign(\n    {},\n    {\n        version: '0.0.0',\n        connected: true,\n        loadedConfigModules: {\n            modulesConfig: {},\n        },\n        status: 'idle',\n        currentModule: '',\n        apiQueue: {},\n    },\n);\n\n/**\n * LoadedConfigModules\n * @property lastAddedModule - the last module added to the store\n * @property modulesConfig - the modules configuration\n */\nexport interface LoadedConfigModules {\n    lastAddedModule?: string;\n    modulesConfig: ModulesConfig;\n}\n",
            "properties": [
                {
                    "name": "apiQueue",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ApiQueue",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "connected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>flag to indicate if the application is online/offline. Default: true</p>\n",
                    "line": 9,
                    "rawdescription": "\nflag to indicate if the application is online/offline. Default: true"
                },
                {
                    "name": "currentModule",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "loadedConfigModules",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LoadedConfigModules",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "status",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "version",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 7
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-0beb338a76405354204cc81aea266ebcbc9e0a1f583ae932e7c6bada950dbfcfd2d28e0b593e3fa003e0bad4eb18119e32e99cabee3b924aefc80e09cc9f1d6a",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string | boolean | LoadedConfigModules | ApiQueue | T",
                    "line": 14,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "CompoDocConfig",
            "id": "interface-CompoDocConfig-adc0097964f185f2079637fe50fb71cc9bfa4e1abd1a0de21565f9554688ae342f997cbff2cc1ffb32d52a0d45c76482a9d8c59ad2d031250418b7e4304a527c",
            "file": "packages/base/dist/docs/template-playground/template-playground.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TemplateEditorService } from './template-editor.service';\nimport { ZipExportService } from './zip-export.service';\nimport { HbsRenderService } from './hbs-render.service';\n\ninterface Template {\n  name: string;\n  path: string;\n  type: 'template' | 'partial';\n}\n\ninterface Session {\n  sessionId: string;\n  success: boolean;\n  message: string;\n}\n\ninterface CompoDocConfig {\n  hideGenerator?: boolean;\n  disableSourceCode?: boolean;\n  disableGraph?: boolean;\n  disableCoverage?: boolean;\n  disablePrivate?: boolean;\n  disableProtected?: boolean;\n  disableInternal?: boolean;\n  disableLifeCycleHooks?: boolean;\n  disableConstructors?: boolean;\n  disableRoutesGraph?: boolean;\n  disableSearch?: boolean;\n  disableDependencies?: boolean;\n  disableProperties?: boolean;\n  disableDomTree?: boolean;\n  disableTemplateTab?: boolean;\n  disableStyleTab?: boolean;\n  disableMainGraph?: boolean;\n  disableFilePath?: boolean;\n  disableOverview?: boolean;\n  hideDarkModeToggle?: boolean;\n  minimal?: boolean;\n  customFavicon?: string;\n  includes?: string;\n  includesName?: string;\n}\n\n@Component({\n  selector: 'template-playground-root',\n  template: `\n    <div class=\"template-playground\">\n      <div class=\"template-playground-header\">\n        <h2>Template Playground</h2>\n        <div class=\"template-playground-status\">\n          <span *ngIf=\"sessionId\" class=\"session-info\">Session: {{sessionId.substring(0, 8)}}...</span>\n          <span *ngIf=\"saving\" class=\"saving-indicator\">Saving...</span>\n          <span *ngIf=\"lastSaved\" class=\"last-saved\">Last saved: {{lastSaved | date:'short'}}</span>\n        </div>\n        <div class=\"template-playground-actions\">\n          <button class=\"btn btn-secondary\" (click)=\"toggleConfigPanel()\">⚙️ Config</button>\n          <button class=\"btn btn-primary\" (click)=\"resetToDefault()\">Reset to Default</button>\n          <button class=\"btn btn-success\" (click)=\"exportZip()\">Download Templates</button>\n        </div>\n      </div>\n\n      <!-- Configuration Panel -->\n      <div class=\"config-panel\" [class.collapsed]=\"!showConfigPanel\">\n        <h3>CompoDoc Configuration</h3>\n        <div class=\"config-options\">\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideGenerator\" (change)=\"updateConfig()\"> Hide Generator</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideDarkModeToggle\" (change)=\"updateConfig()\"> Hide Dark Mode Toggle</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.minimal\" (change)=\"updateConfig()\"> Minimal Mode</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableOverview\" (change)=\"updateConfig()\"> Disable Overview</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableFilePath\" (change)=\"updateConfig()\"> Disable File Path</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSourceCode\" (change)=\"updateConfig()\"> Disable Source Code</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableGraph\" (change)=\"updateConfig()\"> Disable Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableMainGraph\" (change)=\"updateConfig()\"> Disable Main Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableRoutesGraph\" (change)=\"updateConfig()\"> Disable Routes Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableCoverage\" (change)=\"updateConfig()\"> Disable Coverage</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSearch\" (change)=\"updateConfig()\"> Disable Search</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDependencies\" (change)=\"updateConfig()\"> Disable Dependencies</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disablePrivate\" (change)=\"updateConfig()\"> Disable Private</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProtected\" (change)=\"updateConfig()\"> Disable Protected</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableInternal\" (change)=\"updateConfig()\"> Disable Internal</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableLifeCycleHooks\" (change)=\"updateConfig()\"> Disable Lifecycle Hooks</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableConstructors\" (change)=\"updateConfig()\"> Disable Constructors</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProperties\" (change)=\"updateConfig()\"> Disable Properties</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDomTree\" (change)=\"updateConfig()\"> Disable DOM Tree</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableTemplateTab\" (change)=\"updateConfig()\"> Disable Template Tab</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableStyleTab\" (change)=\"updateConfig()\"> Disable Style Tab</label>\n        </div>\n      </div>\n\n      <div class=\"template-playground-body\">\n        <div class=\"template-playground-sidebar\">\n          <div class=\"template-file-list\">\n            <h3>Templates</h3>\n            <ul class=\"file-list\">\n              <li *ngFor=\"let template of templates; trackBy: trackByName\"\n                  [class.active]=\"selectedFile === template\"\n                  (click)=\"selectFile(template)\">\n                <i class=\"file-icon ion-document-text\"></i>\n                {{template.name}}\n                <span class=\"file-type\">{{template.type}}</span>\n              </li>\n            </ul>\n\n            <div *ngIf=\"templates.length === 0\" class=\"loading-templates\">\n              Loading templates...\n            </div>\n          </div>\n        </div>\n\n        <div class=\"template-playground-main\">\n          <div class=\"template-playground-editor\">\n            <div class=\"editor-header\" *ngIf=\"selectedFile\">\n              <h4>{{selectedFile.path}}</h4>\n              <span class=\"file-type-badge\">{{selectedFile.type}}</span>\n            </div>\n            <div #editorContainer class=\"editor-container\"></div>\n          </div>\n\n          <div class=\"template-playground-preview\">\n            <div class=\"preview-header\">\n              <h4>Live Preview</h4>\n              <button class=\"btn btn-sm btn-secondary\" (click)=\"refreshPreview()\">🔄 Refresh</button>\n            </div>\n            <iframe #previewFrame class=\"preview-frame\" [src]=\"previewUrl\"></iframe>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [`\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  `]\n})\nexport class TemplatePlaygroundComponent implements OnInit, OnDestroy {\n  @ViewChild('editorContainer', { static: true }) editorContainer!: ElementRef;\n  @ViewChild('previewFrame', { static: true }) previewFrame!: ElementRef;\n\n  sessionId: string = '';\n  templates: Template[] = [];\n  selectedFile: Template | null = null;\n  config: CompoDocConfig = {};\n  showConfigPanel: boolean = false;\n  saving: boolean = false;\n  lastSaved: Date | null = null;\n\n  private saveTimeout?: number;\n  private readonly SAVE_DELAY = 300; // 300ms debounce\n\n  get previewUrl(): string {\n    return this.sessionId ? `/api/session/${this.sessionId}/docs/` : '';\n  }\n\n  constructor(\n    private http: HttpClient,\n    private editorService: TemplateEditorService,\n    private zipService: ZipExportService,\n    private hbsService: HbsRenderService\n  ) {}\n\n  async ngOnInit() {\n    try {\n      await this.createSession();\n      await this.loadSessionTemplates();\n      await this.loadSessionConfig();\n      this.initializeEditor();\n    } catch (error) {\n      console.error('Error initializing template playground:', error);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n  }\n\n  private async createSession(): Promise<void> {\n    const response = await this.http.post<Session>('/api/session/create', {}).toPromise();\n    if (response && response.success) {\n      this.sessionId = response.sessionId;\n      console.log('Session created:', this.sessionId);\n    } else {\n      throw new Error('Failed to create session');\n    }\n  }\n\n  private async loadSessionTemplates(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{templates: Template[], success: boolean}>(`/api/session/${this.sessionId}/templates`).toPromise();\n    if (response && response.success) {\n      this.templates = response.templates;\n\n      // Auto-select the first template\n      if (this.templates.length > 0 && !this.selectedFile) {\n        this.selectFile(this.templates[0]);\n      }\n    }\n  }\n\n  private async loadSessionConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{config: CompoDocConfig, success: boolean}>(`/api/session/${this.sessionId}/config`).toPromise();\n    if (response && response.success) {\n      this.config = response.config;\n    }\n  }\n\n  initializeEditor() {\n    this.editorService.initializeEditor(this.editorContainer.nativeElement);\n\n    // Set up debounced save on content change\n    this.editorService.setOnChangeCallback((content: string) => {\n      this.scheduleAutoSave(content);\n    });\n  }\n\n  async selectFile(template: Template) {\n    this.selectedFile = template;\n\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.get<{content: string, success: boolean}>(`/api/session/${this.sessionId}/template/${template.path}`).toPromise();\n      if (response && response.success) {\n        this.editorService.setEditorContent(response.content, template.type === 'template' ? 'handlebars' : 'handlebars');\n      }\n    } catch (error) {\n      console.error('Error loading template:', error);\n    }\n  }\n\n  private scheduleAutoSave(content: string): void {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    // Clear existing timeout\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n\n    // Set saving indicator\n    this.saving = true;\n\n    // Schedule new save\n    this.saveTimeout = window.setTimeout(async () => {\n      try {\n        await this.saveTemplate(content);\n        this.saving = false;\n        this.lastSaved = new Date();\n      } catch (error) {\n        console.error('Error saving template:', error);\n        this.saving = false;\n      }\n    }, this.SAVE_DELAY);\n  }\n\n  private async saveTemplate(content: string): Promise<void> {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/template/${this.selectedFile.path}`, {\n      content\n    }).toPromise();\n\n    if (!response || !response.success) {\n      throw new Error('Failed to save template');\n    }\n  }\n\n  async updateConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/config`, {\n        config: this.config\n      }).toPromise();\n\n      if (response && response.success) {\n        // Config updated, documentation will be regenerated automatically\n      }\n    } catch (error) {\n      console.error('Error updating config:', error);\n    }\n  }\n\n  toggleConfigPanel(): void {\n    this.showConfigPanel = !this.showConfigPanel;\n  }\n\n  refreshPreview(): void {\n    if (this.previewFrame?.nativeElement) {\n      this.previewFrame.nativeElement.src = this.previewFrame.nativeElement.src;\n    }\n  }\n\n  resetToDefault(): void {\n    // Implementation for resetting to default templates\n    if (confirm('Are you sure you want to reset all templates to their default values? This action cannot be undone.')) {\n      // TODO: Implement reset functionality\n      console.log('Reset to default templates');\n    }\n  }\n\n  async exportZip(): Promise<void> {\n    try {\n      if (!this.sessionId) {\n        console.error('No active session. Please refresh the page and try again.');\n        return;\n      }\n\n      console.log('Creating template package...');\n\n      // Call server-side ZIP creation endpoint for all templates\n      const response = await this.http.post(`/api/session/${this.sessionId}/download-all-templates`, {}, {\n        responseType: 'blob',\n        observe: 'response'\n      }).toPromise();\n\n      if (!response || !response.body) {\n        throw new Error('Failed to create template package');\n      }\n\n      // Get the ZIP file as a blob\n      const zipBlob = response.body;\n\n      // Get filename from response headers or construct it\n      const contentDisposition = response.headers.get('Content-Disposition');\n      let filename = `compodoc-templates-${this.sessionId}.zip`;\n\n      if (contentDisposition) {\n        const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/);\n        if (filenameMatch) {\n          filename = filenameMatch[1];\n        }\n      }\n\n      // Create download link and trigger download\n      const url = URL.createObjectURL(zipBlob);\n      const a = document.createElement('a');\n      a.href = url;\n      a.download = filename;\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n      URL.revokeObjectURL(url);\n\n      console.log('Template package downloaded successfully!');\n    } catch (error) {\n      console.error('Error downloading template package:', error);\n    }\n  }\n\n  trackByName(index: number, item: Template): string {\n    return item.name;\n  }\n}\n",
            "properties": [
                {
                    "name": "customFavicon",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 41
                },
                {
                    "name": "disableConstructors",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "disableCoverage",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "disableDependencies",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "disableDomTree",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 33
                },
                {
                    "name": "disableFilePath",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "disableGraph",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "disableInternal",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "disableLifeCycleHooks",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "disableMainGraph",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "disableOverview",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "disablePrivate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "disableProperties",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 32
                },
                {
                    "name": "disableProtected",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "disableRoutesGraph",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "disableSearch",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "disableSourceCode",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "disableStyleTab",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "disableTemplateTab",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "hideDarkModeToggle",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "hideGenerator",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "includes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 42
                },
                {
                    "name": "includesName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "minimal",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 40
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ConnectionStatus",
            "id": "interface-ConnectionStatus-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "enabled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 54
                },
                {
                    "name": "messageBox",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "ConsoleAppenderConfig",
            "id": "interface-ConsoleAppenderConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "prefixConverters",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ConsoleAppenderPrefixConverters",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>pluggable custom prefix converters</p>\n",
                    "line": 19,
                    "rawdescription": "\npluggable custom prefix converters"
                },
                {
                    "name": "prefixFormat",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>customizable prefix to be added to the log messages</p>\n",
                    "line": 17,
                    "rawdescription": "\ncustomizable prefix to be added to the log messages"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>console appender configuration</p>\n",
            "rawdescription": "\nconsole appender configuration",
            "methods": [],
            "extends": [
                "LogAppenderConfig"
            ]
        },
        {
            "name": "ConsoleAppenderTypeConfig",
            "id": "interface-ConsoleAppenderTypeConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Type<ConsoleAppender>",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the console appender type</p>\n",
                    "line": 54,
                    "rawdescription": "\nthe console appender type"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>console appender configuration including also the type of the console appender</p>\n",
            "rawdescription": "\nconsole appender configuration including also the type of the console appender",
            "methods": [],
            "extends": [
                "ConsoleAppenderConfig"
            ]
        },
        {
            "name": "CoreState",
            "id": "interface-CoreState-0e8128a6d1b4ff11ed6a349637b96cf47ee5c14ebffe4e9aa6978c74e8877ae38718716c3412f5d2a39ff232635bb17a101829633afc7dfc8dcdcdce291b9c47",
            "file": "packages/base/src/lib/eui-models/eui-store/state/core.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { AppState, initialAppState } from './app.state';\nimport { UserState, initialUserState } from './user.state';\nimport { NotificationsState, initialNotificationsState } from './notifications.state';\nimport { I18nState, initialI18nState } from './i18n.state';\nimport { LocaleState, initialLocaleState } from './locale.state';\n\nexport interface CoreState {\n    app?: AppState;\n    user?: UserState;\n    notifications?: NotificationsState;\n    i18n?: I18nState;\n    locale?: LocaleState;\n}\n\nexport const initialCoreState: CoreState = Object.assign(\n    {},\n    {\n        app: initialAppState,\n        user: initialUserState,\n        notifications: initialNotificationsState,\n        i18n: initialI18nState,\n        locale: initialLocaleState,\n    },\n);\n",
            "properties": [
                {
                    "name": "app",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AppState",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "i18n",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nState",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "locale",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LocaleState",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "notifications",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "NotificationsState",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "user",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserState",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 9
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EnvDynamicConfig",
            "id": "interface-EnvDynamicConfig-4a7b640ac98acbbe47d135f56e6c65f6678924c6014a1208f0ffefe80a5faf46b263346d6e93217d63fa01e00fc85014162676eb5e52b94e5429c4a8e694e5eb",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-env-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { EuiAppHandlersConfig, EuiAppJsonConfig } from './eui-app-config';\n\n/**\n * The EuiEnvConfig is the environment specific configuration object for the EUI library.\n */\nexport interface EuiEnvConfig<T = unknown> {\n    /**\n     * The envAppHandlersConfig contains the environment specific handlers' configuration.\n     */\n    envAppHandlersConfig?: EuiAppHandlersConfig;\n    /**\n     * The envDynamicConfig contains the environment specific dynamic configuration.\n     */\n    envDynamicConfig?: EnvDynamicConfig;\n    /**\n     * The loadedEnvDynamicConfig contains the loaded environment specific dynamic configuration.\n     */\n    loadedEnvDynamicConfig?: EuiAppJsonConfig;\n\n    [key: string]: EuiAppHandlersConfig | EnvDynamicConfig | EuiAppJsonConfig | T;\n}\n\n/**\n * The EnvDynamicConfig is the dynamic configuration object for the EUI library that uses the dynamic configuration to\n * update the configuration at runtime.\n * The dynamic configuration can be fetched from a local path or a web service, can be merged or deep merged with the\n * default configuration at runtime and can be awaited for a specific duration to resolve the request.\n */\nexport interface EnvDynamicConfig {\n    /** uri which can be local path or webservice, should store/return json-config which implements EuiAppJsonConfig*/\n    uri: string;\n    /**\n     * Dynamic config will be awaiting 2000ms(default) to resolve the request,\n     * to change this duration you can use this parameter\n     */\n    configTimeout?: number;\n    /**\n     * Dynamic configuration overwrites to the config properties of EuiAppJsonConfig\n     * in the default configuration (global, modules, versions, [key: string]: any; )\n     * To merge the data for specific config property/ies you can define them as array, e.g.['modules','global']\n     * Note: When deepMerge:true is not provided, If there is common sub property for the merged object,\n     * dynamic fetched config will be overwriting it, otherwise It will be merged deeply.\n     */\n    merge?: Array<string>;\n    /**\n     * If merge array is provided, the way of merging will be one-level merge as default.\n     * To have deep merge functionality, you have to define deepMerge:true\n     */\n    deepMerge?: boolean;\n}\n",
            "properties": [
                {
                    "name": "configTimeout",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Dynamic config will be awaiting 2000ms(default) to resolve the request,\nto change this duration you can use this parameter</p>\n",
                    "line": 36,
                    "rawdescription": "\n\nDynamic config will be awaiting 2000ms(default) to resolve the request,\nto change this duration you can use this parameter\n"
                },
                {
                    "name": "deepMerge",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>If merge array is provided, the way of merging will be one-level merge as default.\nTo have deep merge functionality, you have to define deepMerge:true</p>\n",
                    "line": 49,
                    "rawdescription": "\n\nIf merge array is provided, the way of merging will be one-level merge as default.\nTo have deep merge functionality, you have to define deepMerge:true\n"
                },
                {
                    "name": "merge",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Array<string>",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Dynamic configuration overwrites to the config properties of EuiAppJsonConfig\nin the default configuration (global, modules, versions, [key: string]: any; )\nTo merge the data for specific config property/ies you can define them as array, e.g.[&#39;modules&#39;,&#39;global&#39;]\nNote: When deepMerge:true is not provided, If there is common sub property for the merged object,\ndynamic fetched config will be overwriting it, otherwise It will be merged deeply.</p>\n",
                    "line": 44,
                    "rawdescription": "\n\nDynamic configuration overwrites to the config properties of EuiAppJsonConfig\nin the default configuration (global, modules, versions, [key: string]: any; )\nTo merge the data for specific config property/ies you can define them as array, e.g.['modules','global']\nNote: When deepMerge:true is not provided, If there is common sub property for the merged object,\ndynamic fetched config will be overwriting it, otherwise It will be merged deeply.\n"
                },
                {
                    "name": "uri",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>uri which can be local path or webservice, should store/return json-config which implements EuiAppJsonConfig</p>\n",
                    "line": 31,
                    "rawdescription": "\nuri which can be local path or webservice, should store/return json-config which implements EuiAppJsonConfig"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The EnvDynamicConfig is the dynamic configuration object for the EUI library that uses the dynamic configuration to\nupdate the configuration at runtime.\nThe dynamic configuration can be fetched from a local path or a web service, can be merged or deep merged with the\ndefault configuration at runtime and can be awaited for a specific duration to resolve the request.</p>\n",
            "rawdescription": "\n\nThe EnvDynamicConfig is the dynamic configuration object for the EUI library that uses the dynamic configuration to\nupdate the configuration at runtime.\nThe dynamic configuration can be fetched from a local path or a web service, can be merged or deep merged with the\ndefault configuration at runtime and can be awaited for a specific duration to resolve the request.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiAppHandlersConfig",
            "id": "interface-EuiAppHandlersConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "customHandler",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "errorMappingHandler",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ErrorMappingHandler",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "httpErrorHandler",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpErrorHandlerConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "log",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 26
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiAppJsonConfig",
            "id": "interface-EuiAppJsonConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "global",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "GlobalConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "modules",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ModulesConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "versions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "VersionsConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 16
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "GlobalConfig | T",
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiAuthConfig",
            "id": "interface-EuiAuthConfig-338216071c5742816fd716d6657e5c27026252343922db92b429b7c68a139a538ebeaf8a062f47da84220b80810ba7be683a0bb51992df400144a674310aa9b7",
            "file": "packages/base/src/lib/eui-models/eui-auth-config.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiAuthConfig {\n    isLoggedIn?: boolean;\n    redirectUrl?: string;\n    loginPageUrl?: string;\n}\n\nexport const EUI_DEFAULT_AUTH_CONFIG: EuiAuthConfig = {\n    isLoggedIn: true,\n    redirectUrl: '',\n    loginPageUrl: '',\n};\n",
            "properties": [
                {
                    "name": "isLoggedIn",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "loginPageUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "redirectUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 3
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiConfig",
            "id": "interface-EuiConfig-e5194e8cf7918bd566260434c98b76ec62c4910fdd8112965ee50c02b8ceb797c003bab3ad0c0e51bd9d2aa6ba03746a6de990d19a0fb7293c5f8dec89022c91",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { EuiAppConfig } from './eui-app-config';\nimport { EuiEnvConfig } from './eui-env-config';\n\n/**\n * EuiConfig is the main configuration object for the EUI library. It is used to provide the configuration to the EUI library.\n * The EUI library uses the configuration to initialize the services and components.\n */\nexport interface EuiConfig {\n    /**\n     * The appConfig contains the global configuration and the modules' configuration.\n     */\n    appConfig: EuiAppConfig;\n    /**\n     * The environment contains the environment specific configuration.\n     */\n    environment: EuiEnvConfig;\n}\n",
            "properties": [
                {
                    "name": "appConfig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiAppConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The appConfig contains the global configuration and the modules&#39; configuration.</p>\n",
                    "line": 12,
                    "rawdescription": "\n\nThe appConfig contains the global configuration and the modules' configuration.\n"
                },
                {
                    "name": "environment",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiEnvConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The environment contains the environment specific configuration.</p>\n",
                    "line": 16,
                    "rawdescription": "\n\nThe environment contains the environment specific configuration.\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>EuiConfig is the main configuration object for the EUI library. It is used to provide the configuration to the EUI library.\nThe EUI library uses the configuration to initialize the services and components.</p>\n",
            "rawdescription": "\n\nEuiConfig is the main configuration object for the EUI library. It is used to provide the configuration to the EUI library.\nThe EUI library uses the configuration to initialize the services and components.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiEnvConfig",
            "id": "interface-EuiEnvConfig-4a7b640ac98acbbe47d135f56e6c65f6678924c6014a1208f0ffefe80a5faf46b263346d6e93217d63fa01e00fc85014162676eb5e52b94e5429c4a8e694e5eb",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-env-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { EuiAppHandlersConfig, EuiAppJsonConfig } from './eui-app-config';\n\n/**\n * The EuiEnvConfig is the environment specific configuration object for the EUI library.\n */\nexport interface EuiEnvConfig<T = unknown> {\n    /**\n     * The envAppHandlersConfig contains the environment specific handlers' configuration.\n     */\n    envAppHandlersConfig?: EuiAppHandlersConfig;\n    /**\n     * The envDynamicConfig contains the environment specific dynamic configuration.\n     */\n    envDynamicConfig?: EnvDynamicConfig;\n    /**\n     * The loadedEnvDynamicConfig contains the loaded environment specific dynamic configuration.\n     */\n    loadedEnvDynamicConfig?: EuiAppJsonConfig;\n\n    [key: string]: EuiAppHandlersConfig | EnvDynamicConfig | EuiAppJsonConfig | T;\n}\n\n/**\n * The EnvDynamicConfig is the dynamic configuration object for the EUI library that uses the dynamic configuration to\n * update the configuration at runtime.\n * The dynamic configuration can be fetched from a local path or a web service, can be merged or deep merged with the\n * default configuration at runtime and can be awaited for a specific duration to resolve the request.\n */\nexport interface EnvDynamicConfig {\n    /** uri which can be local path or webservice, should store/return json-config which implements EuiAppJsonConfig*/\n    uri: string;\n    /**\n     * Dynamic config will be awaiting 2000ms(default) to resolve the request,\n     * to change this duration you can use this parameter\n     */\n    configTimeout?: number;\n    /**\n     * Dynamic configuration overwrites to the config properties of EuiAppJsonConfig\n     * in the default configuration (global, modules, versions, [key: string]: any; )\n     * To merge the data for specific config property/ies you can define them as array, e.g.['modules','global']\n     * Note: When deepMerge:true is not provided, If there is common sub property for the merged object,\n     * dynamic fetched config will be overwriting it, otherwise It will be merged deeply.\n     */\n    merge?: Array<string>;\n    /**\n     * If merge array is provided, the way of merging will be one-level merge as default.\n     * To have deep merge functionality, you have to define deepMerge:true\n     */\n    deepMerge?: boolean;\n}\n",
            "properties": [
                {
                    "name": "envAppHandlersConfig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiAppHandlersConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>The envAppHandlersConfig contains the environment specific handlers&#39; configuration.</p>\n",
                    "line": 10,
                    "rawdescription": "\n\nThe envAppHandlersConfig contains the environment specific handlers' configuration.\n"
                },
                {
                    "name": "envDynamicConfig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EnvDynamicConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>The envDynamicConfig contains the environment specific dynamic configuration.</p>\n",
                    "line": 14,
                    "rawdescription": "\n\nThe envDynamicConfig contains the environment specific dynamic configuration.\n"
                },
                {
                    "name": "loadedEnvDynamicConfig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiAppJsonConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>The loadedEnvDynamicConfig contains the loaded environment specific dynamic configuration.</p>\n",
                    "line": 18,
                    "rawdescription": "\n\nThe loadedEnvDynamicConfig contains the loaded environment specific dynamic configuration.\n"
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-4a7b640ac98acbbe47d135f56e6c65f6678924c6014a1208f0ffefe80a5faf46b263346d6e93217d63fa01e00fc85014162676eb5e52b94e5429c4a8e694e5eb",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "EuiAppHandlersConfig | EnvDynamicConfig | EuiAppJsonConfig | T",
                    "line": 18,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "description": "<p>The EuiEnvConfig is the environment specific configuration object for the EUI library.</p>\n",
            "rawdescription": "\n\nThe EuiEnvConfig is the environment specific configuration object for the EUI library.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiGlobalConfig",
            "id": "interface-EuiGlobalConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "assetsBaseUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 46
                },
                {
                    "name": "theme",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 47
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiGrowlMessage",
            "id": "interface-EuiGrowlMessage-1554a35aa1955c34859a83f920150f5af5d60b41134fedb25a4920810e7b3291dc15adf71360daef7134ca769b6295f6d9fc3caff12d77d5e34b34bf9695f7be",
            "file": "packages/base/src/lib/eui-models/eui-growl-message.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiGrowlMessage {\n    severity?: 'success' | 'warning' | 'info' | 'danger' | string;\n    summary?: string;\n    detail?: string;\n    life?: number;\n    sticky?: boolean;\n    filled?: boolean;\n    /**\n     * The timeout property is used to define the time in milliseconds before the message is automatically removed from the\n     * user interface. This property is only used when the sticky property is set to false.\n     */\n    timeout?: number;\n}\n",
            "properties": [
                {
                    "name": "detail",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "filled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "life",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "severity",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"success\" | \"warning\" | \"info\" | \"danger\" | string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "sticky",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "summary",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "timeout",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>The timeout property is used to define the time in milliseconds before the message is automatically removed from the\nuser interface. This property is only used when the sticky property is set to false.</p>\n",
                    "line": 17,
                    "rawdescription": "\n\nThe timeout property is used to define the time in milliseconds before the message is automatically removed from the\nuser interface. This property is only used when the sticky property is set to false.\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>Is used to define the structure of objects used for handling messages or notifications in a user interface. It allows\nfor flexibility by allowing additional custom properties while also providing a set of predefined properties like\nseverity, summary, detail, life, and sticky for common message attributes.</p>\n",
            "rawdescription": "\n\nIs used to define the structure of objects used for handling messages or notifications in a user interface. It allows\nfor flexibility by allowing additional custom properties while also providing a set of predefined properties like\nseverity, summary, detail, life, and sticky for common message attributes.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiLanguage",
            "id": "interface-EuiLanguage-838650e70793f0885635751d93a8bed3a11ed51ec438c8c5b0cf38e6fcd7c16877a25c2444a37ccdbf4d6b271c4dc0021371861b3174dd8d6d4762d521e29a38",
            "file": "packages/base/src/lib/eui-models/eui-language/eui-language.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiLanguage {\n    /** the ISO language code e.g. en or fr */\n    code: string;\n    /** the label of the language translated in that language */\n    label: string;\n    /** languages with rght to left writing */\n    isRtl?: boolean;\n}\n",
            "properties": [
                {
                    "name": "code",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the ISO language code e.g. en or fr</p>\n",
                    "line": 3,
                    "rawdescription": "\nthe ISO language code e.g. en or fr"
                },
                {
                    "name": "isRtl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>languages with rght to left writing</p>\n",
                    "line": 7,
                    "rawdescription": "\nlanguages with rght to left writing"
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the label of the language translated in that language</p>\n",
                    "line": 5,
                    "rawdescription": "\nthe label of the language translated in that language"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiMenuItem",
            "id": "interface-EuiMenuItem-f1c7b61a05b31b210f633e2a683097f2c387194cfa14e68be6bbdb3c0226e15b9012786f4647d5ad04affee0cb2d134fe8bfca72d93eed5654e903f0e31a5c26",
            "file": "packages/base/src/lib/eui-models/eui-menu-item.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiMenuItem<METADATA = unknown> {\n    id?: string;\n    e2eAttr?: string;\n    label?: string;\n    initials?: string;\n    url?: string;\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    queryParams?: any;\n    urlExternal?: string;\n    urlExternalTarget?: string;\n    link?: boolean;\n    iconClass?: string;\n    iconTypeClass?: string;\n    iconSvgName?: string;\n    iconSvgUrl?: string;\n    iconLabel?: string;\n    expanded?: boolean;\n    active?: boolean;\n    children?: EuiMenuItem[];\n    parent?: EuiMenuItem;\n    visible?: boolean\n    tagLabel?: string;\n    tagTypeClass?: string;\n    tooltip?: string;\n    hasMarker?: boolean;\n    markerTypeClass?: string;\n    category?: string;\n    disabled?: boolean;\n    filtered?: boolean;\n    actionIcon?: {\n        /** icon can also include the set in the format of `icon:set` */\n        icon: string;\n        color?: string;\n        label?: string;\n        action?: (event: unknown) => void;\n    };\n    command?: (...params) => void;\n    allowedRightId?: string;\n    allowedRightIds?: string[];\n    deniedRightId?: string;\n    deniedRightIds?: string[];\n    metadata?: METADATA;\n    isMegaMenu?: boolean;\n    megaMenuColIndex?: number;\n    megaMenuColLabel?: string;\n}\n",
            "properties": [
                {
                    "name": "actionIcon",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "active",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "allowedRightId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "allowedRightIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "category",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "children",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiMenuItem[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "command",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "deniedRightId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 40
                },
                {
                    "name": "deniedRightIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 41
                },
                {
                    "name": "disabled",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 28
                },
                {
                    "name": "e2eAttr",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 3
                },
                {
                    "name": "expanded",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "filtered",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "hasMarker",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "iconClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "iconLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "iconSvgName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "iconSvgUrl",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "iconTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "initials",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "isMegaMenu",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "link",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "markerTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "megaMenuColIndex",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 44
                },
                {
                    "name": "megaMenuColLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 45
                },
                {
                    "name": "metadata",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "METADATA",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 42
                },
                {
                    "name": "parent",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiMenuItem",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "queryParams",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "tagLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "tagTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "tooltip",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "url",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "urlExternal",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "urlExternalTarget",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "visible",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 21
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiPaginationConfig",
            "id": "interface-EuiPaginationConfig-b15a64c8844789ab5551695ebd7aa7834263a36ca8666bf4180b3ed4eadf01cb0786f0bfefe876a0176b254c4ac6a3a282e2c4fa8978255899a77b8d9ea2a760",
            "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiPaginationConfig {\n    totalItems?: number;\n    pageSize?: number;\n    currentPage?: number;\n    pageWindowSize?: number;\n}\n\nexport const DefaultConfig: EuiPaginationConfig = {\n    totalItems: 0,\n    pageSize: 10,\n    currentPage: 1,\n    pageWindowSize: 5,\n};\n\nexport class EuiPagination {\n    private constructor(\n        private totalItems: number = DefaultConfig.totalItems,\n        private pageSize: number = DefaultConfig.pageSize,\n        private currentPage: number = DefaultConfig.currentPage,\n        private pageWindowSize: number = DefaultConfig.pageWindowSize,\n    ) {}\n\n    public static create(config: EuiPaginationConfig = DefaultConfig): EuiPagination {\n        if (config.totalItems < 0) {\n            throw new Error('total items cannot be negative');\n        }\n\n        if (config.pageSize <= 0) {\n            throw new Error('page size must be bigger than zero');\n        }\n\n        if (config.pageWindowSize <= 0) {\n            throw new Error('page window size must be bigger than zero');\n        }\n\n        return new EuiPagination(config.totalItems, config.pageSize, config.currentPage, config.pageWindowSize);\n    }\n\n    getFirstPage(): number {\n        return 1;\n    }\n\n    getLastPage(): number {\n        return this.getPagesCount();\n    }\n\n    isFirstPageActive(): boolean {\n        return this.getCurrentPage() === 1;\n    }\n\n    isLastPageActive(): boolean {\n        return this.getCurrentPage() === this.getPagesCount();\n    }\n\n    hasItems(): boolean {\n        return this.getTotalItems() > 0;\n    }\n\n    getPagesCount(): number {\n        const pagesCount = Math.ceil(this.totalItems / this.pageSize);\n        return Math.max(pagesCount, 1);\n    }\n\n    getPages(): Array<number> {\n        const pageWindowSize = this.getPageWindowSize();\n        const pagesCount = this.getPagesCount();\n        const currentPage = this.getCurrentPage();\n\n        let leftPageWindowSize;\n        let rightPageWindowSize;\n        let startPage;\n        let endPage;\n\n        // should not be bigger than pages count\n        const truncatedPageWindowSize = Math.min(...[this.getPageWindowSize(), this.getPagesCount()]);\n\n        if (truncatedPageWindowSize % 2 === 0) {\n            // nonsymetrical pager (...*....)\n            leftPageWindowSize = truncatedPageWindowSize / 2 - 1;\n            rightPageWindowSize = leftPageWindowSize + 1;\n        } else {\n            // symmetrical pager (...*...)\n            leftPageWindowSize = rightPageWindowSize = Math.floor(pageWindowSize / 2);\n        }\n\n        if (currentPage <= leftPageWindowSize) {\n            // start\n            startPage = 1;\n            endPage = truncatedPageWindowSize;\n        } else if (currentPage > pagesCount - rightPageWindowSize) {\n            // end\n            startPage = pagesCount - truncatedPageWindowSize + 1;\n            endPage = pagesCount;\n        } else {\n            // middle\n            startPage = currentPage - leftPageWindowSize;\n            endPage = currentPage + rightPageWindowSize;\n        }\n\n        return range(startPage, endPage + 1);\n    }\n\n    goToPage(page: number): void {\n        const pagesCount = this.getPagesCount();\n        const upperTrunc = Math.min(...[page, pagesCount]);\n        const truncated = Math.max(...[upperTrunc, 1]);\n\n        this.currentPage = truncated;\n    }\n\n    goToFirstPage(): void {\n        this.goToPage(1);\n    }\n\n    goToLastPage(): void {\n        const lastPage = this.getPagesCount();\n        this.goToPage(lastPage);\n    }\n\n    goToNextPage(): void {\n        const nextPage = this.getCurrentPage() + 1;\n        this.goToPage(nextPage);\n    }\n\n    goToPreviousPage(): void {\n        const previousPage = this.getCurrentPage() - 1;\n        this.goToPage(previousPage);\n    }\n\n    hasPreviousPage(): boolean {\n        return this.getCurrentPage() > 1;\n    }\n\n    hasNextPage(): boolean {\n        return this.getCurrentPage() < this.getPagesCount();\n    }\n\n    getTotalItems(): number {\n        return this.totalItems;\n    }\n\n    getPageSize(): number {\n        return this.pageSize;\n    }\n\n    setPageSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageSize = truncated;\n    }\n\n    getCurrentPage(): number {\n        return this.currentPage;\n    }\n\n    getPageWindowSize(): number {\n        return this.pageWindowSize;\n    }\n\n    setPageWindowSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageWindowSize = truncated;\n    }\n\n    getShowingFrom(): number {\n        const startingIndex = (this.getCurrentPage() - 1) * this.getPageSize();\n        let startingPage = startingIndex + 1;\n\n        if (!this.hasItems()) {\n            startingPage = 0;\n        }\n\n        return startingPage;\n    }\n\n    getShowingTo(): number {\n        const displayStartItem = this.getShowingFrom();\n        const pageSize = this.getPageSize();\n        const totalItems = this.getTotalItems();\n\n        if (!this.hasItems()) {\n            return 0;\n        }\n\n        const pageEnd = Math.min(...[displayStartItem + pageSize - 1, totalItems]);\n\n        return pageEnd;\n    }\n}\n\nexport const range = (start: number, end?: number, step = 1): Array<number> => {\n    const output = [];\n    if (typeof end === 'undefined') {\n        end = start;\n        start = 0;\n    }\n    for (let i = start; i < end; i += step) {\n        output.push(i);\n    }\n    return output;\n};\n",
            "properties": [
                {
                    "name": "currentPage",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "pageSize",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 3
                },
                {
                    "name": "pageWindowSize",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "totalItems",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 2
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiServiceModel",
            "id": "interface-EuiServiceModel-e9132d3f4903942a1ce129a8f89fbc7f234381e7a11e802724aba9a17db912d4e921e6ed31c8b20cfa41a87b2fd7166ff5cb1e4663e5d90353fb929d3b31af98",
            "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Observable, Subject, Subscription } from 'rxjs';\nimport { ModuleConfig } from './eui-config/eui-app-config';\nimport { LoadedConfigModules } from './eui-store/state/app.state';\nimport { EuiStoreServiceModel } from './eui-store/eui-store-service.model';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { Selector } from 'reselect';\nimport { CoreState } from './eui-store';\n\nexport interface EuiServiceModel<T> {\n    init(t: T): Observable<EuiServiceStatus>;\n\n    /**\n     * retrieves the State of the service. If you don't pass anything it will retrieve the whole State\n     * of that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\n     * you pass a string that's a key of the Service State type it will retrieve that slice of the state.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getState<K = T>(): Observable<T>;\n    getState<K>(mapFn: (state: T) => K): Observable<K>;\n    getState<A extends keyof T>(key: A): Observable<T[A]>;\n    getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    updateState(t: T): void;\n}\n\nexport type DeepPartial<T> = {\n    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport abstract class EuiService<T> implements EuiServiceModel<T> {\n    protected stateInstance: T;\n    protected prevStateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n    onStateChange: Subject<T> = new Subject<T>();\n\n    protected constructor(defaultState: T) {\n        this.stateInstance = defaultState;\n    }\n\n    initEuiService(): void {\n        this.unSubscribe();\n        this.$stateSubs = this.getState().subscribe((newState: T) => {\n            // set previous state of service\n            this.prevStateInstance = this.copy(this.stateInstance);\n            // update state before emit event\n            this.stateInstance = this.copy(newState);\n            // inform about state change\n            this.onStateChange.next(newState);\n        });\n    }\n\n    abstract init(t?: T): Observable<EuiServiceStatus>;\n\n    abstract getState<K = T>(): Observable<T>;\n    abstract getState<K>(mapFn?: (state: T) => K): Observable<K>;\n    abstract getState<A extends keyof T>(key?: A): Observable<T[A]>;\n    abstract getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    abstract updateState(t: DeepPartial<T>): void;\n\n    protected unSubscribe(): void {\n        if (this.$stateSubs && this.$stateSubs.unsubscribe) {\n            this.$stateSubs.unsubscribe();\n        }\n        if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {\n            this.$stateLazyLoadSubs.unsubscribe();\n        }\n    }\n\n    /**\n     * deep merge two objects\n     * @param target the object that will be merged into\n     * @param source the object that will be merged from\n     */\n    protected deepMerge<T>(target: T, source: DeepPartial<T>): T {\n        const output = Object.assign({}, target);\n        if (this.isObject(target) && this.isObject(source)) {\n            Object.keys(source).forEach(key => {\n                // Check if source[key] is an object and target[key] is either undefined, null, or an object\n                if (this.isObject(source[key])) {\n                    if (!(key in target) || target[key] === null) {\n                        // If target[key] doesn't exist or is null, directly assign source[key]\n                        Object.assign(output, { [key]: structuredClone(source[key]) });\n                    } else {\n                        // Only deep merge if target[key] is also an object\n                        output[key] = this.isObject(target[key])\n                            ? this.deepMerge(target[key], source[key])\n                            : structuredClone(source[key]);\n                    }\n                } else {\n                    Object.assign(output, { [key]: source[key] });\n                }\n            });\n        }\n        return output;\n    }\n\n    /**\n     * checks if the given item is an object\n     * @param item the item that will be checked\n     */\n    private isObject(item: unknown): item is object {\n        return item && typeof item === 'object' && !Array.isArray(item);\n    }\n\n    /**\n     * returns a copy of the given value whether this value is object or primitive. For the arrays it will cover\n     * multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify\n     * might have performance issues on large scale objects but that's an edge case scenario. In case that happens in\n     * the future follow the technique of NGRX with function caching.\n     *\n     * @param state\n     */\n    private copy(state: T): T {\n        if (typeof state === 'undefined') {\n            return undefined;\n        }\n        return JSON.parse(JSON.stringify(state));\n    }\n}\n\nconst getAppLoadedConfigModules: Selector<CoreState, LoadedConfigModules> = (state: CoreState) => state?.app?.loadedConfigModules\n\nexport abstract class EuiLazyService<T> extends EuiService<T> {\n    protected stateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n\n    protected constructor(defaultState: T) {\n        super(defaultState);\n    }\n\n    abstract lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus>;\n\n    // todo it should use abstract store service\n    initEuiService(storeForLazyLoad?: EuiStoreServiceModel<T>): void {\n        super.initEuiService();\n\n        if (storeForLazyLoad) {\n            this.$stateLazyLoadSubs = storeForLazyLoad\n                .select(getAppLoadedConfigModules)\n                .pipe(\n                    filter((loadedConfigModules: LoadedConfigModules) =>\n                        loadedConfigModules?.modulesConfig?.[loadedConfigModules.lastAddedModule] ? true : false,\n                    ),\n                    switchMap((loadedConfigModules: LoadedConfigModules) =>\n                        this.lazyLoadInit(\n                            loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule],\n                            loadedConfigModules.lastAddedModule,\n                        ),\n                    ),\n                )\n                .subscribe(null);\n        }\n    }\n}\n\n/**\n * EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\n * whether the service was successful or not. If the service was not successful it will have an error property that\n * contains the error message.\n * @param T the type of the error message\n * @property success a boolean property that indicates whether the service was successful or not\n * @property error an optional property that contains the error message\n */\nexport interface EuiServiceStatus<T = unknown> {\n    success: boolean;\n    error?: T;\n}\n",
            "properties": [],
            "indexSignatures": [],
            "kind": 174,
            "methods": [
                {
                    "name": "getState",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<T>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 18,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nretrieves the State of the service. If you don't pass anything it will retrieve the whole State\nof that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\nyou pass a string that's a key of the Service State type it will retrieve that slice of the state.\n",
                    "description": "<p>retrieves the State of the service. If you don&#39;t pass anything it will retrieve the whole State\nof that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\nyou pass a string that&#39;s a key of the Service State type it will retrieve that slice of the state.</p>\n"
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<K>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "key",
                            "type": "A",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<unknown>",
                    "typeParameters": [
                        "A"
                    ],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "key",
                            "type": "A",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "keyOrMapFn",
                            "type": "unknown | string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<K>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 21,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "keyOrMapFn",
                            "type": "unknown | string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "init",
                    "args": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<EuiServiceStatus>",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "updateState",
                    "args": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 23,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "extends": []
        },
        {
            "name": "EuiServiceStatus",
            "id": "interface-EuiServiceStatus-e9132d3f4903942a1ce129a8f89fbc7f234381e7a11e802724aba9a17db912d4e921e6ed31c8b20cfa41a87b2fd7166ff5cb1e4663e5d90353fb929d3b31af98",
            "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Observable, Subject, Subscription } from 'rxjs';\nimport { ModuleConfig } from './eui-config/eui-app-config';\nimport { LoadedConfigModules } from './eui-store/state/app.state';\nimport { EuiStoreServiceModel } from './eui-store/eui-store-service.model';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { Selector } from 'reselect';\nimport { CoreState } from './eui-store';\n\nexport interface EuiServiceModel<T> {\n    init(t: T): Observable<EuiServiceStatus>;\n\n    /**\n     * retrieves the State of the service. If you don't pass anything it will retrieve the whole State\n     * of that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\n     * you pass a string that's a key of the Service State type it will retrieve that slice of the state.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getState<K = T>(): Observable<T>;\n    getState<K>(mapFn: (state: T) => K): Observable<K>;\n    getState<A extends keyof T>(key: A): Observable<T[A]>;\n    getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    updateState(t: T): void;\n}\n\nexport type DeepPartial<T> = {\n    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport abstract class EuiService<T> implements EuiServiceModel<T> {\n    protected stateInstance: T;\n    protected prevStateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n    onStateChange: Subject<T> = new Subject<T>();\n\n    protected constructor(defaultState: T) {\n        this.stateInstance = defaultState;\n    }\n\n    initEuiService(): void {\n        this.unSubscribe();\n        this.$stateSubs = this.getState().subscribe((newState: T) => {\n            // set previous state of service\n            this.prevStateInstance = this.copy(this.stateInstance);\n            // update state before emit event\n            this.stateInstance = this.copy(newState);\n            // inform about state change\n            this.onStateChange.next(newState);\n        });\n    }\n\n    abstract init(t?: T): Observable<EuiServiceStatus>;\n\n    abstract getState<K = T>(): Observable<T>;\n    abstract getState<K>(mapFn?: (state: T) => K): Observable<K>;\n    abstract getState<A extends keyof T>(key?: A): Observable<T[A]>;\n    abstract getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    abstract updateState(t: DeepPartial<T>): void;\n\n    protected unSubscribe(): void {\n        if (this.$stateSubs && this.$stateSubs.unsubscribe) {\n            this.$stateSubs.unsubscribe();\n        }\n        if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {\n            this.$stateLazyLoadSubs.unsubscribe();\n        }\n    }\n\n    /**\n     * deep merge two objects\n     * @param target the object that will be merged into\n     * @param source the object that will be merged from\n     */\n    protected deepMerge<T>(target: T, source: DeepPartial<T>): T {\n        const output = Object.assign({}, target);\n        if (this.isObject(target) && this.isObject(source)) {\n            Object.keys(source).forEach(key => {\n                // Check if source[key] is an object and target[key] is either undefined, null, or an object\n                if (this.isObject(source[key])) {\n                    if (!(key in target) || target[key] === null) {\n                        // If target[key] doesn't exist or is null, directly assign source[key]\n                        Object.assign(output, { [key]: structuredClone(source[key]) });\n                    } else {\n                        // Only deep merge if target[key] is also an object\n                        output[key] = this.isObject(target[key])\n                            ? this.deepMerge(target[key], source[key])\n                            : structuredClone(source[key]);\n                    }\n                } else {\n                    Object.assign(output, { [key]: source[key] });\n                }\n            });\n        }\n        return output;\n    }\n\n    /**\n     * checks if the given item is an object\n     * @param item the item that will be checked\n     */\n    private isObject(item: unknown): item is object {\n        return item && typeof item === 'object' && !Array.isArray(item);\n    }\n\n    /**\n     * returns a copy of the given value whether this value is object or primitive. For the arrays it will cover\n     * multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify\n     * might have performance issues on large scale objects but that's an edge case scenario. In case that happens in\n     * the future follow the technique of NGRX with function caching.\n     *\n     * @param state\n     */\n    private copy(state: T): T {\n        if (typeof state === 'undefined') {\n            return undefined;\n        }\n        return JSON.parse(JSON.stringify(state));\n    }\n}\n\nconst getAppLoadedConfigModules: Selector<CoreState, LoadedConfigModules> = (state: CoreState) => state?.app?.loadedConfigModules\n\nexport abstract class EuiLazyService<T> extends EuiService<T> {\n    protected stateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n\n    protected constructor(defaultState: T) {\n        super(defaultState);\n    }\n\n    abstract lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus>;\n\n    // todo it should use abstract store service\n    initEuiService(storeForLazyLoad?: EuiStoreServiceModel<T>): void {\n        super.initEuiService();\n\n        if (storeForLazyLoad) {\n            this.$stateLazyLoadSubs = storeForLazyLoad\n                .select(getAppLoadedConfigModules)\n                .pipe(\n                    filter((loadedConfigModules: LoadedConfigModules) =>\n                        loadedConfigModules?.modulesConfig?.[loadedConfigModules.lastAddedModule] ? true : false,\n                    ),\n                    switchMap((loadedConfigModules: LoadedConfigModules) =>\n                        this.lazyLoadInit(\n                            loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule],\n                            loadedConfigModules.lastAddedModule,\n                        ),\n                    ),\n                )\n                .subscribe(null);\n        }\n    }\n}\n\n/**\n * EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\n * whether the service was successful or not. If the service was not successful it will have an error property that\n * contains the error message.\n * @param T the type of the error message\n * @property success a boolean property that indicates whether the service was successful or not\n * @property error an optional property that contains the error message\n */\nexport interface EuiServiceStatus<T = unknown> {\n    success: boolean;\n    error?: T;\n}\n",
            "properties": [
                {
                    "name": "error",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "T",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 169
                },
                {
                    "name": "success",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 168
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\nwhether the service was successful or not. If the service was not successful it will have an error property that\ncontains the error message.</p>\n",
            "rawdescription": "\n\nEuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\nwhether the service was successful or not. If the service was not successful it will have an error property that\ncontains the error message.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "EuiStoreServiceModel",
            "id": "interface-EuiStoreServiceModel-adb92c855838cb03fd0de5f42a928733e5f0ad09cfa9d8e4944a25fd77f46c45cd013e97a61f715d285ad401ca673908f93f30699b95ab1a7b0866c0bee2e3d8",
            "file": "packages/base/src/lib/eui-models/eui-store/eui-store-service.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Observable } from 'rxjs';\n\nexport interface EuiStoreServiceModel<T> {\n    select<K>(mapFn: (state: T) => K): Observable<K | Partial<K>>;\n}\n",
            "properties": [],
            "indexSignatures": [],
            "kind": 174,
            "methods": [
                {
                    "name": "select",
                    "args": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<K | Partial>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 4,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "extends": []
        },
        {
            "name": "EuiUserRight",
            "id": "interface-EuiUserRight-b5004aa9f00e4aa9988f0ceae808db57667af57c692068bc281d00fed3c2dc92f3b36d74e848bbc180d267c9dc354b53b67e6cfa08fe5e92fc00ff1b5de69b8e",
            "file": "packages/base/src/lib/eui-models/eui-permission.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface EuiUserRight {\n    id: string;\n    permissions?: string[];\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "permissions",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 3
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "GlobalConfig",
            "id": "interface-GlobalConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "eui",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiGlobalConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 40
                },
                {
                    "name": "i18n",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "locale",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LocaleServiceConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "showConnectionStatus",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ConnectionStatus",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>show/hide connection status</p>\n",
                    "line": 36,
                    "rawdescription": "\nshow/hide connection status"
                },
                {
                    "name": "user",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserConfig",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 37
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T",
                    "line": 40,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "HttpErrorHandlerConfig",
            "id": "interface-HttpErrorHandlerConfig-de14acdb30d44596156d9a194c8bb4bdfd5f96d2f4276f6327ae634f0e7c851cce3718f49b67b27857e59d786a4548561dc4bc20a848c5d9ad8929c33d80d20c",
            "file": "packages/base/src/lib/eui-models/eui-config/http-error-handler.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injector } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nexport interface HttpErrorHandlerConfig {\n    /**\n     * The list of routes, from specific to generic. The first matching one is handled.\n     */\n    routes: HttpErrorRouteConfig[];\n}\n\nexport interface HttpErrorRouteConfig {\n    /**\n     * The path to match against, a URL string that uses router matching notation. Can include wildcard characters (*).\n     */\n    path: string;\n    /**\n     * Default behaviour, if error status code does not match\n     */\n    default?: HttpErrorCallbackFn | string | null;\n\n    /**\n     * What to do in case of an error status code.\n     * if callback function, call it\n     * if it's string, redirect the router to it\n     * if null, do nothing\n     */\n    [key: number]: HttpErrorCallbackFn | string | null;\n}\n\nexport type HttpErrorCallbackFn = (error: HttpErrorResponse, injector: Injector) => void;\n",
            "properties": [
                {
                    "name": "routes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpErrorRouteConfig[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The list of routes, from specific to generic. The first matching one is handled.</p>\n",
                    "line": 8,
                    "rawdescription": "\n\nThe list of routes, from specific to generic. The first matching one is handled.\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "HttpErrorRouteConfig",
            "id": "interface-HttpErrorRouteConfig-de14acdb30d44596156d9a194c8bb4bdfd5f96d2f4276f6327ae634f0e7c851cce3718f49b67b27857e59d786a4548561dc4bc20a848c5d9ad8929c33d80d20c",
            "file": "packages/base/src/lib/eui-models/eui-config/http-error-handler.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Injector } from '@angular/core';\nimport { HttpErrorResponse } from '@angular/common/http';\n\nexport interface HttpErrorHandlerConfig {\n    /**\n     * The list of routes, from specific to generic. The first matching one is handled.\n     */\n    routes: HttpErrorRouteConfig[];\n}\n\nexport interface HttpErrorRouteConfig {\n    /**\n     * The path to match against, a URL string that uses router matching notation. Can include wildcard characters (*).\n     */\n    path: string;\n    /**\n     * Default behaviour, if error status code does not match\n     */\n    default?: HttpErrorCallbackFn | string | null;\n\n    /**\n     * What to do in case of an error status code.\n     * if callback function, call it\n     * if it's string, redirect the router to it\n     * if null, do nothing\n     */\n    [key: number]: HttpErrorCallbackFn | string | null;\n}\n\nexport type HttpErrorCallbackFn = (error: HttpErrorResponse, injector: Injector) => void;\n",
            "properties": [
                {
                    "name": "default",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpErrorCallbackFn | string | null",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Default behaviour, if error status code does not match</p>\n",
                    "line": 19,
                    "rawdescription": "\n\nDefault behaviour, if error status code does not match\n"
                },
                {
                    "name": "path",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The path to match against, a URL string that uses router matching notation. Can include wildcard characters (*).</p>\n",
                    "line": 15,
                    "rawdescription": "\n\nThe path to match against, a URL string that uses router matching notation. Can include wildcard characters (*).\n"
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-de14acdb30d44596156d9a194c8bb4bdfd5f96d2f4276f6327ae634f0e7c851cce3718f49b67b27857e59d786a4548561dc4bc20a848c5d9ad8929c33d80d20c",
                    "args": [
                        {
                            "name": "key",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "HttpErrorCallbackFn | string | null",
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nWhat to do in case of an error status code.\nif callback function, call it\nif it's string, redirect the router to it\nif null, do nothing\n",
                    "description": "<p>What to do in case of an error status code.\nif callback function, call it\nif it&#39;s string, redirect the router to it\nif null, do nothing</p>\n"
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "I18nConfig",
            "id": "interface-I18nConfig-d3ab1e025b3bb93d28aa42a6c9e9c1057b451107c39e09ff2f7e6196182ad9a5f4b0da0c70d251efaae48248e69dc85b0f067b085d126dc7d1bce7bf8e3e16d3",
            "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { GlobalConfig } from './eui-app-config';\nimport { EuiLanguage } from '../eui-language/eui-language.model';\n\nexport interface I18nResource {\n    /** prefix of the resource could be like the 2 char language code e.g. /en */\n    prefix: string;\n    /** suffix can be either .json or anything related of the resource HTTP call */\n    suffix?: string;\n    /**\n     It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n     */\n    compileTranslations?: string;\n}\n\n/**\n * a factory to compile translations into the main object holding them all\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\nexport type TranslationsCompiler<T = unknown, C = unknown> = (translations: T, lang: string) => C;\n\nexport interface I18nConfig {\n    i18nService: I18nServiceConfig;\n    i18nLoader: I18nLoaderConfig;\n}\n\nexport interface I18nServiceConfig {\n    /** an ISO 2 char code array of available languages */\n    languages?: (string | EuiLanguage)[];\n    /** default language to be used in case of not any has been set */\n    defaultLanguage?: string;\n}\n\nexport interface I18nLoaderConfig {\n    /**\n     * Those folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\n     * e.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\n     * Important! the language code will be added automatically to the end of the url except if the url ends with a slash.\n     */\n    i18nFolders?: string | string[];\n    /**\n     * Array of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\n     * Keep in mind that the url should be the prefix and not contain any suffix.\n     */\n    i18nServices?: string | string[];\n    /**\n     * It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\n     * provide the prefix and suffix of the resource, or both.\n     *\n     * @example\n     * ```typescript\n     * export function CompileTranslations(translations: any): any {\n     *     const result = {};\n     *     translations.forEach((translation: any) => {\n     *         // extract the key and value from the translation object\n     *         const key = translation['key'];\n     *         const value = translation['value'];\n     *         if (key && value) {\n     *             result[key] = value;\n     *         }\n     *     });\n     *     return result;\n     * }\n     * export const appConfig: EuiAppConfig = {\n     *     ...,\n     *     customHandler: {\n     *         'CompileTranslations_ID': CompileTranslations\n     *     }\n     * };\n     * export const GLOBAL: GlobalConfig = {\n     *     ...,\n     *     i18n: {\n     *       i18nLoader: {\n     *         i18nFolders: ['i18n-eui'],\n     *         i18nResources: [{\n     *             prefix: 'api/translations/',\n     *             compileTranslations: 'CompileTranslations_ID',\n     *         }]\n     *       }\n     *     }\n     * };\n     *\n     */\n    i18nResources?: I18nResource | I18nResource[];\n}\n\nexport const getI18nServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n};\n\nexport const getI18nServiceConfig = (config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config);\n\nexport const getI18nLoaderConfig = (config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n};\n\n/**\n * returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\n * it's using the navigator.language, splits by hyphen and get the first part.\n */\nexport const getBrowserDefaultLanguage = (): string => navigator.language.split('-')[0];\n\n/**\n * returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\n * language tags. In the returned array they are ordered by preference with the most preferred language first.\n * The array languages will be lower cased 2 char code.\n */\nexport const getBrowserPreferredLanguages = (): string[] => navigator.languages.map((lang) => lang.split('-')[0]);\n",
            "properties": [
                {
                    "name": "i18nLoader",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nLoaderConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "i18nService",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nServiceConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "I18nLoaderConfig",
            "id": "interface-I18nLoaderConfig-d3ab1e025b3bb93d28aa42a6c9e9c1057b451107c39e09ff2f7e6196182ad9a5f4b0da0c70d251efaae48248e69dc85b0f067b085d126dc7d1bce7bf8e3e16d3",
            "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { GlobalConfig } from './eui-app-config';\nimport { EuiLanguage } from '../eui-language/eui-language.model';\n\nexport interface I18nResource {\n    /** prefix of the resource could be like the 2 char language code e.g. /en */\n    prefix: string;\n    /** suffix can be either .json or anything related of the resource HTTP call */\n    suffix?: string;\n    /**\n     It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n     */\n    compileTranslations?: string;\n}\n\n/**\n * a factory to compile translations into the main object holding them all\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\nexport type TranslationsCompiler<T = unknown, C = unknown> = (translations: T, lang: string) => C;\n\nexport interface I18nConfig {\n    i18nService: I18nServiceConfig;\n    i18nLoader: I18nLoaderConfig;\n}\n\nexport interface I18nServiceConfig {\n    /** an ISO 2 char code array of available languages */\n    languages?: (string | EuiLanguage)[];\n    /** default language to be used in case of not any has been set */\n    defaultLanguage?: string;\n}\n\nexport interface I18nLoaderConfig {\n    /**\n     * Those folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\n     * e.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\n     * Important! the language code will be added automatically to the end of the url except if the url ends with a slash.\n     */\n    i18nFolders?: string | string[];\n    /**\n     * Array of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\n     * Keep in mind that the url should be the prefix and not contain any suffix.\n     */\n    i18nServices?: string | string[];\n    /**\n     * It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\n     * provide the prefix and suffix of the resource, or both.\n     *\n     * @example\n     * ```typescript\n     * export function CompileTranslations(translations: any): any {\n     *     const result = {};\n     *     translations.forEach((translation: any) => {\n     *         // extract the key and value from the translation object\n     *         const key = translation['key'];\n     *         const value = translation['value'];\n     *         if (key && value) {\n     *             result[key] = value;\n     *         }\n     *     });\n     *     return result;\n     * }\n     * export const appConfig: EuiAppConfig = {\n     *     ...,\n     *     customHandler: {\n     *         'CompileTranslations_ID': CompileTranslations\n     *     }\n     * };\n     * export const GLOBAL: GlobalConfig = {\n     *     ...,\n     *     i18n: {\n     *       i18nLoader: {\n     *         i18nFolders: ['i18n-eui'],\n     *         i18nResources: [{\n     *             prefix: 'api/translations/',\n     *             compileTranslations: 'CompileTranslations_ID',\n     *         }]\n     *       }\n     *     }\n     * };\n     *\n     */\n    i18nResources?: I18nResource | I18nResource[];\n}\n\nexport const getI18nServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n};\n\nexport const getI18nServiceConfig = (config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config);\n\nexport const getI18nLoaderConfig = (config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n};\n\n/**\n * returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\n * it's using the navigator.language, splits by hyphen and get the first part.\n */\nexport const getBrowserDefaultLanguage = (): string => navigator.language.split('-')[0];\n\n/**\n * returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\n * language tags. In the returned array they are ordered by preference with the most preferred language first.\n * The array languages will be lower cased 2 char code.\n */\nexport const getBrowserPreferredLanguages = (): string[] => navigator.languages.map((lang) => lang.split('-')[0]);\n",
            "properties": [
                {
                    "name": "i18nFolders",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Those folders will be used to load the translations files from {@link <a href=\"https://angular.io/guide/workspace-config#extra-build-and-test-options\">https://angular.io/guide/workspace-config#extra-build-and-test-options</a> assets}.\ne.g [<code>${environment.apiBaseUrl}translations/</code>, <code>${environment.apiBaseUrl}translations?lang=</code>]\nImportant! the language code will be added automatically to the end of the url except if the url ends with a slash.</p>\n",
                    "line": 42,
                    "rawdescription": "\n\nThose folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\ne.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\nImportant! the language code will be added automatically to the end of the url except if the url ends with a slash.\n"
                },
                {
                    "name": "i18nResources",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nResource | I18nResource[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\nprovide the prefix and suffix of the resource, or both.</p>\n<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">export function CompileTranslations(translations: any): any {\n    const result = {};\n    translations.forEach((translation: any) =&gt; {\n        // extract the key and value from the translation object\n        const key = translation[&#39;key&#39;];\n        const value = translation[&#39;value&#39;];\n        if (key &amp;&amp; value) {\n            result[key] = value;\n        }\n    });\n    return result;\n}\nexport const appConfig: EuiAppConfig = {\n    ...,\n    customHandler: {\n        &#39;CompileTranslations_ID&#39;: CompileTranslations\n    }\n};\nexport const GLOBAL: GlobalConfig = {\n    ...,\n    i18n: {\n      i18nLoader: {\n        i18nFolders: [&#39;i18n-eui&#39;],\n        i18nResources: [{\n            prefix: &#39;api/translations/&#39;,\n            compileTranslations: &#39;CompileTranslations_ID&#39;,\n        }]\n      }\n    }\n};\n___COMPODOC_EMPTY_LINE___\n___COMPODOC_EMPTY_LINE___</code></pre></div>",
                    "line": 86,
                    "rawdescription": "\n\nIt is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\nprovide the prefix and suffix of the resource, or both.\n\n```typescript\nexport function CompileTranslations(translations: any): any {\n    const result = {};\n    translations.forEach((translation: any) => {\n        // extract the key and value from the translation object\n        const key = translation['key'];\n        const value = translation['value'];\n        if (key && value) {\n            result[key] = value;\n        }\n    });\n    return result;\n}\nexport const appConfig: EuiAppConfig = {\n    ...,\n    customHandler: {\n        'CompileTranslations_ID': CompileTranslations\n    }\n};\nexport const GLOBAL: GlobalConfig = {\n    ...,\n    i18n: {\n      i18nLoader: {\n        i18nFolders: ['i18n-eui'],\n        i18nResources: [{\n            prefix: 'api/translations/',\n            compileTranslations: 'CompileTranslations_ID',\n        }]\n      }\n    }\n};\n___COMPODOC_EMPTY_LINE___\n___COMPODOC_EMPTY_LINE___",
                    "jsdoctags": [
                        {
                            "pos": 2127,
                            "end": 3164,
                            "kind": 328,
                            "id": 0,
                            "flags": 16777216,
                            "modifierFlagsCache": 0,
                            "transformFlags": 0,
                            "tagName": {
                                "pos": 2128,
                                "end": 2135,
                                "kind": 80,
                                "id": 0,
                                "flags": 16777216,
                                "transformFlags": 0,
                                "escapedText": "example"
                            },
                            "comment": "<b>Example :</b><div><pre class=\"line-numbers\"><code class=\"language-typescript\">export function CompileTranslations(translations: any): any {\n    const result = {};\n    translations.forEach((translation: any) =&gt; {\n        // extract the key and value from the translation object\n        const key = translation[&#39;key&#39;];\n        const value = translation[&#39;value&#39;];\n        if (key &amp;&amp; value) {\n            result[key] = value;\n        }\n    });\n    return result;\n}\nexport const appConfig: EuiAppConfig = {\n    ...,\n    customHandler: {\n        &#39;CompileTranslations_ID&#39;: CompileTranslations\n    }\n};\nexport const GLOBAL: GlobalConfig = {\n    ...,\n    i18n: {\n      i18nLoader: {\n        i18nFolders: [&#39;i18n-eui&#39;],\n        i18nResources: [{\n            prefix: &#39;api/translations/&#39;,\n            compileTranslations: &#39;CompileTranslations_ID&#39;,\n        }]\n      }\n    }\n};</code></pre></div>"
                        }
                    ]
                },
                {
                    "name": "i18nServices",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | string[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>Array of service urls to translation, don&#39;t add the language it will be added e.g. <a href=\"http://net1/trans/en\">http://net1/trans/en</a>\nKeep in mind that the url should be the prefix and not contain any suffix.</p>\n",
                    "line": 47,
                    "rawdescription": "\n\nArray of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\nKeep in mind that the url should be the prefix and not contain any suffix.\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "I18nResource",
            "id": "interface-I18nResource-d3ab1e025b3bb93d28aa42a6c9e9c1057b451107c39e09ff2f7e6196182ad9a5f4b0da0c70d251efaae48248e69dc85b0f067b085d126dc7d1bce7bf8e3e16d3",
            "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { GlobalConfig } from './eui-app-config';\nimport { EuiLanguage } from '../eui-language/eui-language.model';\n\nexport interface I18nResource {\n    /** prefix of the resource could be like the 2 char language code e.g. /en */\n    prefix: string;\n    /** suffix can be either .json or anything related of the resource HTTP call */\n    suffix?: string;\n    /**\n     It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n     */\n    compileTranslations?: string;\n}\n\n/**\n * a factory to compile translations into the main object holding them all\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\nexport type TranslationsCompiler<T = unknown, C = unknown> = (translations: T, lang: string) => C;\n\nexport interface I18nConfig {\n    i18nService: I18nServiceConfig;\n    i18nLoader: I18nLoaderConfig;\n}\n\nexport interface I18nServiceConfig {\n    /** an ISO 2 char code array of available languages */\n    languages?: (string | EuiLanguage)[];\n    /** default language to be used in case of not any has been set */\n    defaultLanguage?: string;\n}\n\nexport interface I18nLoaderConfig {\n    /**\n     * Those folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\n     * e.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\n     * Important! the language code will be added automatically to the end of the url except if the url ends with a slash.\n     */\n    i18nFolders?: string | string[];\n    /**\n     * Array of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\n     * Keep in mind that the url should be the prefix and not contain any suffix.\n     */\n    i18nServices?: string | string[];\n    /**\n     * It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\n     * provide the prefix and suffix of the resource, or both.\n     *\n     * @example\n     * ```typescript\n     * export function CompileTranslations(translations: any): any {\n     *     const result = {};\n     *     translations.forEach((translation: any) => {\n     *         // extract the key and value from the translation object\n     *         const key = translation['key'];\n     *         const value = translation['value'];\n     *         if (key && value) {\n     *             result[key] = value;\n     *         }\n     *     });\n     *     return result;\n     * }\n     * export const appConfig: EuiAppConfig = {\n     *     ...,\n     *     customHandler: {\n     *         'CompileTranslations_ID': CompileTranslations\n     *     }\n     * };\n     * export const GLOBAL: GlobalConfig = {\n     *     ...,\n     *     i18n: {\n     *       i18nLoader: {\n     *         i18nFolders: ['i18n-eui'],\n     *         i18nResources: [{\n     *             prefix: 'api/translations/',\n     *             compileTranslations: 'CompileTranslations_ID',\n     *         }]\n     *       }\n     *     }\n     * };\n     *\n     */\n    i18nResources?: I18nResource | I18nResource[];\n}\n\nexport const getI18nServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n};\n\nexport const getI18nServiceConfig = (config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config);\n\nexport const getI18nLoaderConfig = (config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n};\n\n/**\n * returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\n * it's using the navigator.language, splits by hyphen and get the first part.\n */\nexport const getBrowserDefaultLanguage = (): string => navigator.language.split('-')[0];\n\n/**\n * returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\n * language tags. In the returned array they are ordered by preference with the most preferred language first.\n * The array languages will be lower cased 2 char code.\n */\nexport const getBrowserPreferredLanguages = (): string[] => navigator.languages.map((lang) => lang.split('-')[0]);\n",
            "properties": [
                {
                    "name": "compileTranslations",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler</p>\n",
                    "line": 12,
                    "rawdescription": "\n\nIt is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n"
                },
                {
                    "name": "prefix",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>prefix of the resource could be like the 2 char language code e.g. /en</p>\n",
                    "line": 6,
                    "rawdescription": "\nprefix of the resource could be like the 2 char language code e.g. /en"
                },
                {
                    "name": "suffix",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>suffix can be either .json or anything related of the resource HTTP call</p>\n",
                    "line": 8,
                    "rawdescription": "\nsuffix can be either .json or anything related of the resource HTTP call"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "I18nServiceConfig",
            "id": "interface-I18nServiceConfig-d3ab1e025b3bb93d28aa42a6c9e9c1057b451107c39e09ff2f7e6196182ad9a5f4b0da0c70d251efaae48248e69dc85b0f067b085d126dc7d1bce7bf8e3e16d3",
            "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { GlobalConfig } from './eui-app-config';\nimport { EuiLanguage } from '../eui-language/eui-language.model';\n\nexport interface I18nResource {\n    /** prefix of the resource could be like the 2 char language code e.g. /en */\n    prefix: string;\n    /** suffix can be either .json or anything related of the resource HTTP call */\n    suffix?: string;\n    /**\n     It is an ID of the function which should be defined into the customHandlers with the interface TranslationsCompiler\n     */\n    compileTranslations?: string;\n}\n\n/**\n * a factory to compile translations into the main object holding them all\n *\n * @param translations the object to be pre-processed\n * @param lang the translations language\n * @returns the pre-processed translations\n */\nexport type TranslationsCompiler<T = unknown, C = unknown> = (translations: T, lang: string) => C;\n\nexport interface I18nConfig {\n    i18nService: I18nServiceConfig;\n    i18nLoader: I18nLoaderConfig;\n}\n\nexport interface I18nServiceConfig {\n    /** an ISO 2 char code array of available languages */\n    languages?: (string | EuiLanguage)[];\n    /** default language to be used in case of not any has been set */\n    defaultLanguage?: string;\n}\n\nexport interface I18nLoaderConfig {\n    /**\n     * Those folders will be used to load the translations files from {@link https://angular.io/guide/workspace-config#extra-build-and-test-options assets}.\n     * e.g [`${environment.apiBaseUrl}translations/`, `${environment.apiBaseUrl}translations?lang=`]\n     * Important! the language code will be added automatically to the end of the url except if the url ends with a slash.\n     */\n    i18nFolders?: string | string[];\n    /**\n     * Array of service urls to translation, don't add the language it will be added e.g. http://net1/trans/en\n     * Keep in mind that the url should be the prefix and not contain any suffix.\n     */\n    i18nServices?: string | string[];\n    /**\n     * It is a set of more customized resources to be loaded. You can provide a function to compile the translations or simply\n     * provide the prefix and suffix of the resource, or both.\n     *\n     * @example\n     * ```typescript\n     * export function CompileTranslations(translations: any): any {\n     *     const result = {};\n     *     translations.forEach((translation: any) => {\n     *         // extract the key and value from the translation object\n     *         const key = translation['key'];\n     *         const value = translation['value'];\n     *         if (key && value) {\n     *             result[key] = value;\n     *         }\n     *     });\n     *     return result;\n     * }\n     * export const appConfig: EuiAppConfig = {\n     *     ...,\n     *     customHandler: {\n     *         'CompileTranslations_ID': CompileTranslations\n     *     }\n     * };\n     * export const GLOBAL: GlobalConfig = {\n     *     ...,\n     *     i18n: {\n     *       i18nLoader: {\n     *         i18nFolders: ['i18n-eui'],\n     *         i18nResources: [{\n     *             prefix: 'api/translations/',\n     *             compileTranslations: 'CompileTranslations_ID',\n     *         }]\n     *       }\n     *     }\n     * };\n     *\n     */\n    i18nResources?: I18nResource | I18nResource[];\n}\n\nexport const getI18nServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n};\n\nexport const getI18nServiceConfig = (config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config);\n\nexport const getI18nLoaderConfig = (config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n};\n\n/**\n * returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\n * it's using the navigator.language, splits by hyphen and get the first part.\n */\nexport const getBrowserDefaultLanguage = (): string => navigator.language.split('-')[0];\n\n/**\n * returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\n * language tags. In the returned array they are ordered by preference with the most preferred language first.\n * The array languages will be lower cased 2 char code.\n */\nexport const getBrowserPreferredLanguages = (): string[] => navigator.languages.map((lang) => lang.split('-')[0]);\n",
            "properties": [
                {
                    "name": "defaultLanguage",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>default language to be used in case of not any has been set</p>\n",
                    "line": 33,
                    "rawdescription": "\ndefault language to be used in case of not any has been set"
                },
                {
                    "name": "languages",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "(string | EuiLanguage)[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>an ISO 2 char code array of available languages</p>\n",
                    "line": 31,
                    "rawdescription": "\nan ISO 2 char code array of available languages"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "I18nState",
            "id": "interface-I18nState-8c0612dc8d8c005550937355d65ddb2ceef2fce02f2a26b3b3bfcc507f6934a0b4373091c25bc5b567a5ebae30724170315dc280e6f0b6272abdabaecfc658b9",
            "file": "packages/base/src/lib/eui-models/eui-store/state/i18n.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface I18nState {\n    activeLang: string;\n}\n\nexport const initialI18nState: I18nState = {\n    activeLang: null,\n};\n",
            "properties": [
                {
                    "name": "activeLang",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LoadedConfigModules",
            "id": "interface-LoadedConfigModules-0beb338a76405354204cc81aea266ebcbc9e0a1f583ae932e7c6bada950dbfcfd2d28e0b593e3fa003e0bad4eb18119e32e99cabee3b924aefc80e09cc9f1d6a",
            "file": "packages/base/src/lib/eui-models/eui-store/state/app.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { ApiQueue } from '../models';\nimport { ModulesConfig } from '../../eui-config';\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface AppState<T = any> {\n    version?: string;\n    /** flag to indicate if the application is online/offline. Default: true */\n    connected?: boolean;\n    loadedConfigModules?: LoadedConfigModules;\n\n    status?: string;\n    currentModule?: string;\n    apiQueue?: ApiQueue;\n\n    [key: string]: string | boolean | LoadedConfigModules | ApiQueue | T;\n}\n\nexport const initialAppState: AppState = Object.assign(\n    {},\n    {\n        version: '0.0.0',\n        connected: true,\n        loadedConfigModules: {\n            modulesConfig: {},\n        },\n        status: 'idle',\n        currentModule: '',\n        apiQueue: {},\n    },\n);\n\n/**\n * LoadedConfigModules\n * @property lastAddedModule - the last module added to the store\n * @property modulesConfig - the modules configuration\n */\nexport interface LoadedConfigModules {\n    lastAddedModule?: string;\n    modulesConfig: ModulesConfig;\n}\n",
            "properties": [
                {
                    "name": "lastAddedModule",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "modulesConfig",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ModulesConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>LoadedConfigModules</p>\n",
            "rawdescription": "\n\nLoadedConfigModules\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "LocaleServiceConfig",
            "id": "interface-LocaleServiceConfig-dc8f32ac8082d636ea9ca0695faf67a556701b191e0b2c64317a088e26fe2c63c77119c8cecabcbb0e9c677f1dd028f3d58683d6d93d57fbcdae4bb8f485b13d",
            "file": "packages/base/src/lib/eui-models/eui-config/locale.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { GlobalConfig } from './eui-app-config';\n\nexport interface LocaleServiceConfig {\n    /**\n     * When enabled changes from I18nService will be reflected to locale state\n     */\n    bindWithTranslate?: boolean;\n}\n\n/**\n * responsible to extract the attributes \"available\" and \"id\" from the locale configuration\n */\nexport const getLocaleServiceConfigFromBase = (baseGlobalConfig: GlobalConfig): LocaleServiceConfig => {\n    const { bindWithTranslate } = baseGlobalConfig.locale;\n    return { bindWithTranslate };\n};\n",
            "properties": [
                {
                    "name": "bindWithTranslate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>When enabled changes from I18nService will be reflected to locale state</p>\n",
                    "line": 8,
                    "rawdescription": "\n\nWhen enabled changes from I18nService will be reflected to locale state\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LocaleState",
            "id": "interface-LocaleState-c0a2613a3b92dea6dbf3071b6728e1664bb12da04b657b0353e8aca3b1916cc82bc4d0364c5cb9989eebbb3b49560e18b8836ce28d6afc45353dbc166c3aab3b",
            "file": "packages/base/src/lib/eui-models/eui-store/state/locale.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface LocaleState {\n    /** The current locale id e.g. 'en-US' */\n    id: string;\n}\n\n/**\n * The initial state of the locale state. The default locale is English US ('en').\n */\nexport const initialLocaleState: LocaleState = {\n    id: 'en',\n};\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>The current locale id e.g. &#39;en-US&#39;</p>\n",
                    "line": 6,
                    "rawdescription": "\nThe current locale id e.g. 'en-US'"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The locale state is used to store the current locale id and the list of available locales.</p>\n",
            "rawdescription": "\n\nThe locale state is used to store the current locale id and the list of available locales.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "LogAppenderConfig",
            "id": "interface-LogAppenderConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "logLevel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogLevel",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>appender log level. It overrides the main log level</p>\n",
                    "line": 11,
                    "rawdescription": "\nappender log level. It overrides the main log level"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "LogAppenderTypeConfig",
            "id": "interface-LogAppenderTypeConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Type<LogAppender>",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the log appender type</p>\n",
                    "line": 43,
                    "rawdescription": "\nthe log appender type"
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "any",
                    "line": 43,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\nadditional configuration specific to the log appender",
                    "description": "<p>additional configuration specific to the log appender</p>\n"
                }
            ],
            "kind": 182,
            "description": "<p>log appender configuration including also the type of the appender</p>\n",
            "rawdescription": "\nlog appender configuration including also the type of the appender",
            "methods": [],
            "extends": [
                "LogAppenderConfig"
            ]
        },
        {
            "name": "LogConfig",
            "id": "interface-LogConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "baseLoggerName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>the name of the default logger, if LogService is used directly. Default: root</p>\n",
                    "line": 30,
                    "rawdescription": "\nthe name of the default logger, if LogService is used directly. Default: root"
                },
                {
                    "name": "logAppenders",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogAppenderType | LogAppenderType[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>a list of log appenders&#39; types. Default: ConsoleAppender with prefixFormat: &#39;[{level}]&#39;</p>\n",
                    "line": 34,
                    "rawdescription": "\na list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]'"
                },
                {
                    "name": "logLevel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogLevel",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>log level. Default: LogLevel.ERROR</p>\n",
                    "line": 32,
                    "rawdescription": "\nlog level. Default: LogLevel.ERROR"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>log configuration</p>\n",
            "rawdescription": "\nlog configuration",
            "methods": [],
            "extends": []
        },
        {
            "name": "LogEvent",
            "id": "interface-LogEvent-236f9179d73e1256bc100be210f82a8297bc1cb02c59fa0eeb514f2c11fe8b355d19f97653a64339ae7c0d8c6a992c2df8c33774b8060fb49df95f4d6d3418de",
            "file": "packages/base/src/lib/eui-models/log/log.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export enum LogLevel {\n    OFF = 0,\n    FATAL = 1,\n    ERROR = 2,\n    WARN = 3,\n    INFO = 4,\n    DEBUG = 5,\n    TRACE = 6,\n    ALL = 7,\n}\n\n/** Associated log level names */\nexport enum LogLevelName {\n    FATAL = 'FATAL',\n    ERROR = 'ERROR',\n    WARN = 'WARNING',\n    INFO = 'INFO',\n    DEBUG = 'DEBUG',\n    TRACE = 'TRACE',\n}\n\n/** The code position from where the log has been triggered */\nexport interface LogPosition {\n    file: string;\n    line: number;\n    column: number;\n}\n\n/** The log event sent to the log appenders */\nexport interface LogEvent<MESSAGES = unknown> {\n    /** event's log level */\n    level: LogLevel;\n    /** event's log level name */\n    levelName: string;\n    /** the name of the logger who triggered the event */\n    loggerName: string;\n    /** event's timestamp */\n    timestamp: Date;\n    /** log messages */\n    messages: MESSAGES[];\n}\n",
            "properties": [
                {
                    "name": "level",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogLevel",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>event&#39;s log level</p>\n",
                    "line": 33,
                    "rawdescription": "\nevent's log level"
                },
                {
                    "name": "levelName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>event&#39;s log level name</p>\n",
                    "line": 35,
                    "rawdescription": "\nevent's log level name"
                },
                {
                    "name": "loggerName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the name of the logger who triggered the event</p>\n",
                    "line": 37,
                    "rawdescription": "\nthe name of the logger who triggered the event"
                },
                {
                    "name": "messages",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "MESSAGES[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>log messages</p>\n",
                    "line": 41,
                    "rawdescription": "\nlog messages"
                },
                {
                    "name": "timestamp",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Date",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>event&#39;s timestamp</p>\n",
                    "line": 39,
                    "rawdescription": "\nevent's timestamp"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The log event sent to the log appenders</p>\n",
            "rawdescription": "\nThe log event sent to the log appenders",
            "methods": [],
            "extends": []
        },
        {
            "name": "LogPosition",
            "id": "interface-LogPosition-236f9179d73e1256bc100be210f82a8297bc1cb02c59fa0eeb514f2c11fe8b355d19f97653a64339ae7c0d8c6a992c2df8c33774b8060fb49df95f4d6d3418de",
            "file": "packages/base/src/lib/eui-models/log/log.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export enum LogLevel {\n    OFF = 0,\n    FATAL = 1,\n    ERROR = 2,\n    WARN = 3,\n    INFO = 4,\n    DEBUG = 5,\n    TRACE = 6,\n    ALL = 7,\n}\n\n/** Associated log level names */\nexport enum LogLevelName {\n    FATAL = 'FATAL',\n    ERROR = 'ERROR',\n    WARN = 'WARNING',\n    INFO = 'INFO',\n    DEBUG = 'DEBUG',\n    TRACE = 'TRACE',\n}\n\n/** The code position from where the log has been triggered */\nexport interface LogPosition {\n    file: string;\n    line: number;\n    column: number;\n}\n\n/** The log event sent to the log appenders */\nexport interface LogEvent<MESSAGES = unknown> {\n    /** event's log level */\n    level: LogLevel;\n    /** event's log level name */\n    levelName: string;\n    /** the name of the logger who triggered the event */\n    loggerName: string;\n    /** event's timestamp */\n    timestamp: Date;\n    /** log messages */\n    messages: MESSAGES[];\n}\n",
            "properties": [
                {
                    "name": "column",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "file",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "line",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The code position from where the log has been triggered</p>\n",
            "rawdescription": "\nThe code position from where the log has been triggered",
            "methods": [],
            "extends": []
        },
        {
            "name": "ModuleConfig",
            "id": "interface-ModuleConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [],
            "indexSignatures": [
                {
                    "id": "index-declaration-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string | [] | I18nResource | [] | LogLevel | LogAppenderType | [] | T",
                    "line": 63,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": [
                "LogConfig",
                "I18nLoaderConfig"
            ]
        },
        {
            "name": "ModulesConfig",
            "id": "interface-ModulesConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [],
            "indexSignatures": [
                {
                    "id": "index-declaration-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
                    "args": [
                        {
                            "name": "module",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "ModuleConfig",
                    "line": 57,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "NotificationsState",
            "id": "interface-NotificationsState-f0430aa564f023575148ef88f9c99b1b7df6e426d9bd77757e19ccf096fa4d43aaae3f1492729464d3f4b074c19d9147f51c718d6561564a445ad46e76fc61dd",
            "file": "packages/base/src/lib/eui-models/eui-store/state/notifications.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface NotificationsState<LIST = unknown> {\n    list?: LIST[];\n}\n\n/**\n * The initial state of the notifications state.\n */\nexport const initialNotificationsState: NotificationsState = {\n    list: [],\n};\n",
            "properties": [
                {
                    "name": "list",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LIST[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>The notifications state.</p>\n",
            "rawdescription": "\n\nThe notifications state.\n",
            "methods": [],
            "extends": []
        },
        {
            "name": "Session",
            "id": "interface-Session-adc0097964f185f2079637fe50fb71cc9bfa4e1abd1a0de21565f9554688ae342f997cbff2cc1ffb32d52a0d45c76482a9d8c59ad2d031250418b7e4304a527c",
            "file": "packages/base/dist/docs/template-playground/template-playground.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TemplateEditorService } from './template-editor.service';\nimport { ZipExportService } from './zip-export.service';\nimport { HbsRenderService } from './hbs-render.service';\n\ninterface Template {\n  name: string;\n  path: string;\n  type: 'template' | 'partial';\n}\n\ninterface Session {\n  sessionId: string;\n  success: boolean;\n  message: string;\n}\n\ninterface CompoDocConfig {\n  hideGenerator?: boolean;\n  disableSourceCode?: boolean;\n  disableGraph?: boolean;\n  disableCoverage?: boolean;\n  disablePrivate?: boolean;\n  disableProtected?: boolean;\n  disableInternal?: boolean;\n  disableLifeCycleHooks?: boolean;\n  disableConstructors?: boolean;\n  disableRoutesGraph?: boolean;\n  disableSearch?: boolean;\n  disableDependencies?: boolean;\n  disableProperties?: boolean;\n  disableDomTree?: boolean;\n  disableTemplateTab?: boolean;\n  disableStyleTab?: boolean;\n  disableMainGraph?: boolean;\n  disableFilePath?: boolean;\n  disableOverview?: boolean;\n  hideDarkModeToggle?: boolean;\n  minimal?: boolean;\n  customFavicon?: string;\n  includes?: string;\n  includesName?: string;\n}\n\n@Component({\n  selector: 'template-playground-root',\n  template: `\n    <div class=\"template-playground\">\n      <div class=\"template-playground-header\">\n        <h2>Template Playground</h2>\n        <div class=\"template-playground-status\">\n          <span *ngIf=\"sessionId\" class=\"session-info\">Session: {{sessionId.substring(0, 8)}}...</span>\n          <span *ngIf=\"saving\" class=\"saving-indicator\">Saving...</span>\n          <span *ngIf=\"lastSaved\" class=\"last-saved\">Last saved: {{lastSaved | date:'short'}}</span>\n        </div>\n        <div class=\"template-playground-actions\">\n          <button class=\"btn btn-secondary\" (click)=\"toggleConfigPanel()\">⚙️ Config</button>\n          <button class=\"btn btn-primary\" (click)=\"resetToDefault()\">Reset to Default</button>\n          <button class=\"btn btn-success\" (click)=\"exportZip()\">Download Templates</button>\n        </div>\n      </div>\n\n      <!-- Configuration Panel -->\n      <div class=\"config-panel\" [class.collapsed]=\"!showConfigPanel\">\n        <h3>CompoDoc Configuration</h3>\n        <div class=\"config-options\">\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideGenerator\" (change)=\"updateConfig()\"> Hide Generator</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideDarkModeToggle\" (change)=\"updateConfig()\"> Hide Dark Mode Toggle</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.minimal\" (change)=\"updateConfig()\"> Minimal Mode</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableOverview\" (change)=\"updateConfig()\"> Disable Overview</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableFilePath\" (change)=\"updateConfig()\"> Disable File Path</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSourceCode\" (change)=\"updateConfig()\"> Disable Source Code</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableGraph\" (change)=\"updateConfig()\"> Disable Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableMainGraph\" (change)=\"updateConfig()\"> Disable Main Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableRoutesGraph\" (change)=\"updateConfig()\"> Disable Routes Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableCoverage\" (change)=\"updateConfig()\"> Disable Coverage</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSearch\" (change)=\"updateConfig()\"> Disable Search</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDependencies\" (change)=\"updateConfig()\"> Disable Dependencies</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disablePrivate\" (change)=\"updateConfig()\"> Disable Private</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProtected\" (change)=\"updateConfig()\"> Disable Protected</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableInternal\" (change)=\"updateConfig()\"> Disable Internal</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableLifeCycleHooks\" (change)=\"updateConfig()\"> Disable Lifecycle Hooks</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableConstructors\" (change)=\"updateConfig()\"> Disable Constructors</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProperties\" (change)=\"updateConfig()\"> Disable Properties</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDomTree\" (change)=\"updateConfig()\"> Disable DOM Tree</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableTemplateTab\" (change)=\"updateConfig()\"> Disable Template Tab</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableStyleTab\" (change)=\"updateConfig()\"> Disable Style Tab</label>\n        </div>\n      </div>\n\n      <div class=\"template-playground-body\">\n        <div class=\"template-playground-sidebar\">\n          <div class=\"template-file-list\">\n            <h3>Templates</h3>\n            <ul class=\"file-list\">\n              <li *ngFor=\"let template of templates; trackBy: trackByName\"\n                  [class.active]=\"selectedFile === template\"\n                  (click)=\"selectFile(template)\">\n                <i class=\"file-icon ion-document-text\"></i>\n                {{template.name}}\n                <span class=\"file-type\">{{template.type}}</span>\n              </li>\n            </ul>\n\n            <div *ngIf=\"templates.length === 0\" class=\"loading-templates\">\n              Loading templates...\n            </div>\n          </div>\n        </div>\n\n        <div class=\"template-playground-main\">\n          <div class=\"template-playground-editor\">\n            <div class=\"editor-header\" *ngIf=\"selectedFile\">\n              <h4>{{selectedFile.path}}</h4>\n              <span class=\"file-type-badge\">{{selectedFile.type}}</span>\n            </div>\n            <div #editorContainer class=\"editor-container\"></div>\n          </div>\n\n          <div class=\"template-playground-preview\">\n            <div class=\"preview-header\">\n              <h4>Live Preview</h4>\n              <button class=\"btn btn-sm btn-secondary\" (click)=\"refreshPreview()\">🔄 Refresh</button>\n            </div>\n            <iframe #previewFrame class=\"preview-frame\" [src]=\"previewUrl\"></iframe>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [`\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  `]\n})\nexport class TemplatePlaygroundComponent implements OnInit, OnDestroy {\n  @ViewChild('editorContainer', { static: true }) editorContainer!: ElementRef;\n  @ViewChild('previewFrame', { static: true }) previewFrame!: ElementRef;\n\n  sessionId: string = '';\n  templates: Template[] = [];\n  selectedFile: Template | null = null;\n  config: CompoDocConfig = {};\n  showConfigPanel: boolean = false;\n  saving: boolean = false;\n  lastSaved: Date | null = null;\n\n  private saveTimeout?: number;\n  private readonly SAVE_DELAY = 300; // 300ms debounce\n\n  get previewUrl(): string {\n    return this.sessionId ? `/api/session/${this.sessionId}/docs/` : '';\n  }\n\n  constructor(\n    private http: HttpClient,\n    private editorService: TemplateEditorService,\n    private zipService: ZipExportService,\n    private hbsService: HbsRenderService\n  ) {}\n\n  async ngOnInit() {\n    try {\n      await this.createSession();\n      await this.loadSessionTemplates();\n      await this.loadSessionConfig();\n      this.initializeEditor();\n    } catch (error) {\n      console.error('Error initializing template playground:', error);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n  }\n\n  private async createSession(): Promise<void> {\n    const response = await this.http.post<Session>('/api/session/create', {}).toPromise();\n    if (response && response.success) {\n      this.sessionId = response.sessionId;\n      console.log('Session created:', this.sessionId);\n    } else {\n      throw new Error('Failed to create session');\n    }\n  }\n\n  private async loadSessionTemplates(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{templates: Template[], success: boolean}>(`/api/session/${this.sessionId}/templates`).toPromise();\n    if (response && response.success) {\n      this.templates = response.templates;\n\n      // Auto-select the first template\n      if (this.templates.length > 0 && !this.selectedFile) {\n        this.selectFile(this.templates[0]);\n      }\n    }\n  }\n\n  private async loadSessionConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{config: CompoDocConfig, success: boolean}>(`/api/session/${this.sessionId}/config`).toPromise();\n    if (response && response.success) {\n      this.config = response.config;\n    }\n  }\n\n  initializeEditor() {\n    this.editorService.initializeEditor(this.editorContainer.nativeElement);\n\n    // Set up debounced save on content change\n    this.editorService.setOnChangeCallback((content: string) => {\n      this.scheduleAutoSave(content);\n    });\n  }\n\n  async selectFile(template: Template) {\n    this.selectedFile = template;\n\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.get<{content: string, success: boolean}>(`/api/session/${this.sessionId}/template/${template.path}`).toPromise();\n      if (response && response.success) {\n        this.editorService.setEditorContent(response.content, template.type === 'template' ? 'handlebars' : 'handlebars');\n      }\n    } catch (error) {\n      console.error('Error loading template:', error);\n    }\n  }\n\n  private scheduleAutoSave(content: string): void {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    // Clear existing timeout\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n\n    // Set saving indicator\n    this.saving = true;\n\n    // Schedule new save\n    this.saveTimeout = window.setTimeout(async () => {\n      try {\n        await this.saveTemplate(content);\n        this.saving = false;\n        this.lastSaved = new Date();\n      } catch (error) {\n        console.error('Error saving template:', error);\n        this.saving = false;\n      }\n    }, this.SAVE_DELAY);\n  }\n\n  private async saveTemplate(content: string): Promise<void> {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/template/${this.selectedFile.path}`, {\n      content\n    }).toPromise();\n\n    if (!response || !response.success) {\n      throw new Error('Failed to save template');\n    }\n  }\n\n  async updateConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/config`, {\n        config: this.config\n      }).toPromise();\n\n      if (response && response.success) {\n        // Config updated, documentation will be regenerated automatically\n      }\n    } catch (error) {\n      console.error('Error updating config:', error);\n    }\n  }\n\n  toggleConfigPanel(): void {\n    this.showConfigPanel = !this.showConfigPanel;\n  }\n\n  refreshPreview(): void {\n    if (this.previewFrame?.nativeElement) {\n      this.previewFrame.nativeElement.src = this.previewFrame.nativeElement.src;\n    }\n  }\n\n  resetToDefault(): void {\n    // Implementation for resetting to default templates\n    if (confirm('Are you sure you want to reset all templates to their default values? This action cannot be undone.')) {\n      // TODO: Implement reset functionality\n      console.log('Reset to default templates');\n    }\n  }\n\n  async exportZip(): Promise<void> {\n    try {\n      if (!this.sessionId) {\n        console.error('No active session. Please refresh the page and try again.');\n        return;\n      }\n\n      console.log('Creating template package...');\n\n      // Call server-side ZIP creation endpoint for all templates\n      const response = await this.http.post(`/api/session/${this.sessionId}/download-all-templates`, {}, {\n        responseType: 'blob',\n        observe: 'response'\n      }).toPromise();\n\n      if (!response || !response.body) {\n        throw new Error('Failed to create template package');\n      }\n\n      // Get the ZIP file as a blob\n      const zipBlob = response.body;\n\n      // Get filename from response headers or construct it\n      const contentDisposition = response.headers.get('Content-Disposition');\n      let filename = `compodoc-templates-${this.sessionId}.zip`;\n\n      if (contentDisposition) {\n        const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/);\n        if (filenameMatch) {\n          filename = filenameMatch[1];\n        }\n      }\n\n      // Create download link and trigger download\n      const url = URL.createObjectURL(zipBlob);\n      const a = document.createElement('a');\n      a.href = url;\n      a.download = filename;\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n      URL.revokeObjectURL(url);\n\n      console.log('Template package downloaded successfully!');\n    } catch (error) {\n      console.error('Error downloading template package:', error);\n    }\n  }\n\n  trackByName(index: number, item: Template): string {\n    return item.name;\n  }\n}\n",
            "properties": [
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "sessionId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "success",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "Template",
            "id": "interface-Template-adc0097964f185f2079637fe50fb71cc9bfa4e1abd1a0de21565f9554688ae342f997cbff2cc1ffb32d52a0d45c76482a9d8c59ad2d031250418b7e4304a527c",
            "file": "packages/base/dist/docs/template-playground/template-playground.component.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TemplateEditorService } from './template-editor.service';\nimport { ZipExportService } from './zip-export.service';\nimport { HbsRenderService } from './hbs-render.service';\n\ninterface Template {\n  name: string;\n  path: string;\n  type: 'template' | 'partial';\n}\n\ninterface Session {\n  sessionId: string;\n  success: boolean;\n  message: string;\n}\n\ninterface CompoDocConfig {\n  hideGenerator?: boolean;\n  disableSourceCode?: boolean;\n  disableGraph?: boolean;\n  disableCoverage?: boolean;\n  disablePrivate?: boolean;\n  disableProtected?: boolean;\n  disableInternal?: boolean;\n  disableLifeCycleHooks?: boolean;\n  disableConstructors?: boolean;\n  disableRoutesGraph?: boolean;\n  disableSearch?: boolean;\n  disableDependencies?: boolean;\n  disableProperties?: boolean;\n  disableDomTree?: boolean;\n  disableTemplateTab?: boolean;\n  disableStyleTab?: boolean;\n  disableMainGraph?: boolean;\n  disableFilePath?: boolean;\n  disableOverview?: boolean;\n  hideDarkModeToggle?: boolean;\n  minimal?: boolean;\n  customFavicon?: string;\n  includes?: string;\n  includesName?: string;\n}\n\n@Component({\n  selector: 'template-playground-root',\n  template: `\n    <div class=\"template-playground\">\n      <div class=\"template-playground-header\">\n        <h2>Template Playground</h2>\n        <div class=\"template-playground-status\">\n          <span *ngIf=\"sessionId\" class=\"session-info\">Session: {{sessionId.substring(0, 8)}}...</span>\n          <span *ngIf=\"saving\" class=\"saving-indicator\">Saving...</span>\n          <span *ngIf=\"lastSaved\" class=\"last-saved\">Last saved: {{lastSaved | date:'short'}}</span>\n        </div>\n        <div class=\"template-playground-actions\">\n          <button class=\"btn btn-secondary\" (click)=\"toggleConfigPanel()\">⚙️ Config</button>\n          <button class=\"btn btn-primary\" (click)=\"resetToDefault()\">Reset to Default</button>\n          <button class=\"btn btn-success\" (click)=\"exportZip()\">Download Templates</button>\n        </div>\n      </div>\n\n      <!-- Configuration Panel -->\n      <div class=\"config-panel\" [class.collapsed]=\"!showConfigPanel\">\n        <h3>CompoDoc Configuration</h3>\n        <div class=\"config-options\">\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideGenerator\" (change)=\"updateConfig()\"> Hide Generator</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideDarkModeToggle\" (change)=\"updateConfig()\"> Hide Dark Mode Toggle</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.minimal\" (change)=\"updateConfig()\"> Minimal Mode</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableOverview\" (change)=\"updateConfig()\"> Disable Overview</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableFilePath\" (change)=\"updateConfig()\"> Disable File Path</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSourceCode\" (change)=\"updateConfig()\"> Disable Source Code</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableGraph\" (change)=\"updateConfig()\"> Disable Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableMainGraph\" (change)=\"updateConfig()\"> Disable Main Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableRoutesGraph\" (change)=\"updateConfig()\"> Disable Routes Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableCoverage\" (change)=\"updateConfig()\"> Disable Coverage</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSearch\" (change)=\"updateConfig()\"> Disable Search</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDependencies\" (change)=\"updateConfig()\"> Disable Dependencies</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disablePrivate\" (change)=\"updateConfig()\"> Disable Private</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProtected\" (change)=\"updateConfig()\"> Disable Protected</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableInternal\" (change)=\"updateConfig()\"> Disable Internal</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableLifeCycleHooks\" (change)=\"updateConfig()\"> Disable Lifecycle Hooks</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableConstructors\" (change)=\"updateConfig()\"> Disable Constructors</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProperties\" (change)=\"updateConfig()\"> Disable Properties</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDomTree\" (change)=\"updateConfig()\"> Disable DOM Tree</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableTemplateTab\" (change)=\"updateConfig()\"> Disable Template Tab</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableStyleTab\" (change)=\"updateConfig()\"> Disable Style Tab</label>\n        </div>\n      </div>\n\n      <div class=\"template-playground-body\">\n        <div class=\"template-playground-sidebar\">\n          <div class=\"template-file-list\">\n            <h3>Templates</h3>\n            <ul class=\"file-list\">\n              <li *ngFor=\"let template of templates; trackBy: trackByName\"\n                  [class.active]=\"selectedFile === template\"\n                  (click)=\"selectFile(template)\">\n                <i class=\"file-icon ion-document-text\"></i>\n                {{template.name}}\n                <span class=\"file-type\">{{template.type}}</span>\n              </li>\n            </ul>\n\n            <div *ngIf=\"templates.length === 0\" class=\"loading-templates\">\n              Loading templates...\n            </div>\n          </div>\n        </div>\n\n        <div class=\"template-playground-main\">\n          <div class=\"template-playground-editor\">\n            <div class=\"editor-header\" *ngIf=\"selectedFile\">\n              <h4>{{selectedFile.path}}</h4>\n              <span class=\"file-type-badge\">{{selectedFile.type}}</span>\n            </div>\n            <div #editorContainer class=\"editor-container\"></div>\n          </div>\n\n          <div class=\"template-playground-preview\">\n            <div class=\"preview-header\">\n              <h4>Live Preview</h4>\n              <button class=\"btn btn-sm btn-secondary\" (click)=\"refreshPreview()\">🔄 Refresh</button>\n            </div>\n            <iframe #previewFrame class=\"preview-frame\" [src]=\"previewUrl\"></iframe>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [`\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  `]\n})\nexport class TemplatePlaygroundComponent implements OnInit, OnDestroy {\n  @ViewChild('editorContainer', { static: true }) editorContainer!: ElementRef;\n  @ViewChild('previewFrame', { static: true }) previewFrame!: ElementRef;\n\n  sessionId: string = '';\n  templates: Template[] = [];\n  selectedFile: Template | null = null;\n  config: CompoDocConfig = {};\n  showConfigPanel: boolean = false;\n  saving: boolean = false;\n  lastSaved: Date | null = null;\n\n  private saveTimeout?: number;\n  private readonly SAVE_DELAY = 300; // 300ms debounce\n\n  get previewUrl(): string {\n    return this.sessionId ? `/api/session/${this.sessionId}/docs/` : '';\n  }\n\n  constructor(\n    private http: HttpClient,\n    private editorService: TemplateEditorService,\n    private zipService: ZipExportService,\n    private hbsService: HbsRenderService\n  ) {}\n\n  async ngOnInit() {\n    try {\n      await this.createSession();\n      await this.loadSessionTemplates();\n      await this.loadSessionConfig();\n      this.initializeEditor();\n    } catch (error) {\n      console.error('Error initializing template playground:', error);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n  }\n\n  private async createSession(): Promise<void> {\n    const response = await this.http.post<Session>('/api/session/create', {}).toPromise();\n    if (response && response.success) {\n      this.sessionId = response.sessionId;\n      console.log('Session created:', this.sessionId);\n    } else {\n      throw new Error('Failed to create session');\n    }\n  }\n\n  private async loadSessionTemplates(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{templates: Template[], success: boolean}>(`/api/session/${this.sessionId}/templates`).toPromise();\n    if (response && response.success) {\n      this.templates = response.templates;\n\n      // Auto-select the first template\n      if (this.templates.length > 0 && !this.selectedFile) {\n        this.selectFile(this.templates[0]);\n      }\n    }\n  }\n\n  private async loadSessionConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{config: CompoDocConfig, success: boolean}>(`/api/session/${this.sessionId}/config`).toPromise();\n    if (response && response.success) {\n      this.config = response.config;\n    }\n  }\n\n  initializeEditor() {\n    this.editorService.initializeEditor(this.editorContainer.nativeElement);\n\n    // Set up debounced save on content change\n    this.editorService.setOnChangeCallback((content: string) => {\n      this.scheduleAutoSave(content);\n    });\n  }\n\n  async selectFile(template: Template) {\n    this.selectedFile = template;\n\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.get<{content: string, success: boolean}>(`/api/session/${this.sessionId}/template/${template.path}`).toPromise();\n      if (response && response.success) {\n        this.editorService.setEditorContent(response.content, template.type === 'template' ? 'handlebars' : 'handlebars');\n      }\n    } catch (error) {\n      console.error('Error loading template:', error);\n    }\n  }\n\n  private scheduleAutoSave(content: string): void {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    // Clear existing timeout\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n\n    // Set saving indicator\n    this.saving = true;\n\n    // Schedule new save\n    this.saveTimeout = window.setTimeout(async () => {\n      try {\n        await this.saveTemplate(content);\n        this.saving = false;\n        this.lastSaved = new Date();\n      } catch (error) {\n        console.error('Error saving template:', error);\n        this.saving = false;\n      }\n    }, this.SAVE_DELAY);\n  }\n\n  private async saveTemplate(content: string): Promise<void> {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/template/${this.selectedFile.path}`, {\n      content\n    }).toPromise();\n\n    if (!response || !response.success) {\n      throw new Error('Failed to save template');\n    }\n  }\n\n  async updateConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/config`, {\n        config: this.config\n      }).toPromise();\n\n      if (response && response.success) {\n        // Config updated, documentation will be regenerated automatically\n      }\n    } catch (error) {\n      console.error('Error updating config:', error);\n    }\n  }\n\n  toggleConfigPanel(): void {\n    this.showConfigPanel = !this.showConfigPanel;\n  }\n\n  refreshPreview(): void {\n    if (this.previewFrame?.nativeElement) {\n      this.previewFrame.nativeElement.src = this.previewFrame.nativeElement.src;\n    }\n  }\n\n  resetToDefault(): void {\n    // Implementation for resetting to default templates\n    if (confirm('Are you sure you want to reset all templates to their default values? This action cannot be undone.')) {\n      // TODO: Implement reset functionality\n      console.log('Reset to default templates');\n    }\n  }\n\n  async exportZip(): Promise<void> {\n    try {\n      if (!this.sessionId) {\n        console.error('No active session. Please refresh the page and try again.');\n        return;\n      }\n\n      console.log('Creating template package...');\n\n      // Call server-side ZIP creation endpoint for all templates\n      const response = await this.http.post(`/api/session/${this.sessionId}/download-all-templates`, {}, {\n        responseType: 'blob',\n        observe: 'response'\n      }).toPromise();\n\n      if (!response || !response.body) {\n        throw new Error('Failed to create template package');\n      }\n\n      // Get the ZIP file as a blob\n      const zipBlob = response.body;\n\n      // Get filename from response headers or construct it\n      const contentDisposition = response.headers.get('Content-Disposition');\n      let filename = `compodoc-templates-${this.sessionId}.zip`;\n\n      if (contentDisposition) {\n        const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/);\n        if (filenameMatch) {\n          filename = filenameMatch[1];\n        }\n      }\n\n      // Create download link and trigger download\n      const url = URL.createObjectURL(zipBlob);\n      const a = document.createElement('a');\n      a.href = url;\n      a.download = filename;\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n      URL.revokeObjectURL(url);\n\n      console.log('Template package downloaded successfully!');\n    } catch (error) {\n      console.error('Error downloading template package:', error);\n    }\n  }\n\n  trackByName(index: number, item: Template): string {\n    return item.name;\n  }\n}\n",
            "properties": [
                {
                    "name": "name",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "path",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "\"template\" | \"partial\"",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UrlAppenderConfig",
            "id": "interface-UrlAppenderConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "detailedEventFromLevel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogLevel",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>extended log event triggered after the mentioned level. If missing, the extended log level is not triggered</p>\n",
                    "line": 68,
                    "rawdescription": "\nextended log event triggered after the mentioned level. If missing, the extended log level is not triggered"
                },
                {
                    "name": "url",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>url to POST the log event to a server</p>\n",
                    "line": 66,
                    "rawdescription": "\nurl to POST the log event to a server"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>url appender configuration</p>\n",
            "rawdescription": "\nurl appender configuration",
            "methods": [],
            "extends": [
                "LogAppenderConfig"
            ]
        },
        {
            "name": "UrlAppenderTypeConfig",
            "id": "interface-UrlAppenderTypeConfig-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Type<UrlAppender>",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>the url appender type</p>\n",
                    "line": 60,
                    "rawdescription": "\nthe url appender type"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>url appender configuration including also the type of the url appender</p>\n",
            "rawdescription": "\nurl appender configuration including also the type of the url appender",
            "methods": [],
            "extends": [
                "UrlAppenderConfig"
            ]
        },
        {
            "name": "UrlLogEvent",
            "id": "interface-UrlLogEvent-679d11ed24019cd415061b6ce32e3b96f1642107a24201e988e86910a8f19e9a68aca4a76ba871c22750ff00b4aa7e0ec8e2dc57c661ca10f0d78d3bfcca97ef",
            "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { LogLevel, LogEvent } from '../log/log.model';\nimport { UrlAppender } from '../log/url.appender';\nimport { Type } from '@angular/core';\nimport { LogAppender } from '../log/log.appender';\nimport { ConsoleAppender } from '../log/console.appender';\nimport { LogPosition } from '../log';\n\nexport interface LogAppenderConfig {\n    /** appender log level. It overrides the main log level */\n    logLevel?: LogLevel;\n}\n\n/** console appender configuration */\nexport interface ConsoleAppenderConfig extends LogAppenderConfig {\n    /** customizable prefix to be added to the log messages */\n    prefixFormat?: string;\n    /** pluggable custom prefix converters */\n    prefixConverters?: ConsoleAppenderPrefixConverters;\n}\n\n/** The type of pluggable console prefix converters */\nexport type ConsoleAppenderPrefixConverters = {\n    [key: string]: (event: LogEvent) => string;\n};\n\n/** log configuration */\nexport interface LogConfig {\n    /** the name of the default logger, if LogService is used directly. Default: root */\n    baseLoggerName?: string;\n    /** log level. Default: LogLevel.ERROR */\n    logLevel?: LogLevel;\n    /** a list of log appenders' types. Default: ConsoleAppender with prefixFormat: '[{level}]' */\n    logAppenders?: LogAppenderType | LogAppenderType[];\n}\n\n/** log appender type, containing also the configuration of the specified appender */\nexport type LogAppenderType = Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig;\n\n/** log appender configuration including also the type of the appender */\nexport interface LogAppenderTypeConfig extends LogAppenderConfig {\n    /** the log appender type */\n    type: Type<LogAppender>;\n\n    /** additional configuration specific to the log appender */\n    // TODO: find the correct type or turn into a generic, https://www.typescriptlang.org/docs/handbook/2/generics.html\n    // eslint-disable-next-line @typescript-eslint/no-explicit-any\n    [key: string]: any;\n}\n\n/** console appender configuration including also the type of the console appender */\nexport interface ConsoleAppenderTypeConfig extends ConsoleAppenderConfig {\n    /** the console appender type */\n    type: Type<ConsoleAppender>;\n}\n\n/** url appender configuration including also the type of the url appender */\nexport interface UrlAppenderTypeConfig extends UrlAppenderConfig {\n    /** the url appender type */\n    type: Type<UrlAppender>;\n}\n\n/** url appender configuration */\nexport interface UrlAppenderConfig extends LogAppenderConfig {\n    /** url to POST the log event to a server */\n    url: string;\n    /** extended log event triggered after the mentioned level. If missing, the extended log level is not triggered */\n    detailedEventFromLevel?: LogLevel;\n}\n\n/** url log event */\nexport interface UrlLogEvent extends LogEvent {\n    /** the code position from where the log has been triggered */\n    position?: LogPosition;\n    /** the url of the current page */\n    location?: string;\n}\n",
            "properties": [
                {
                    "name": "location",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>the url of the current page</p>\n",
                    "line": 76,
                    "rawdescription": "\nthe url of the current page"
                },
                {
                    "name": "position",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LogPosition",
                    "indexKey": "",
                    "optional": true,
                    "description": "<p>the code position from where the log has been triggered</p>\n",
                    "line": 74,
                    "rawdescription": "\nthe code position from where the log has been triggered"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>url log event</p>\n",
            "rawdescription": "\nurl log event",
            "methods": [],
            "extends": [
                "LogEvent"
            ]
        },
        {
            "name": "UserConfig",
            "id": "interface-UserConfig-dadde7284aa7e3752a4d89a8bb7160372e5dffc24b9b8918f742b8afda22e9e94733461aa135a85c464365a0f8db2b311b5b5a391509138e7f26b07b5cbe55f5",
            "file": "packages/base/src/lib/eui-models/eui-config/user.config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { UserPreferences } from '../eui-store';\n\nexport interface UserConfig {\n    // todo will be moved, delegated to userService and i18nService init\n    defaultUserPreferences?: UserPreferences;\n}\n",
            "properties": [
                {
                    "name": "defaultUserPreferences",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserPreferences",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UserDetails",
            "id": "interface-UserDetails-64fcae6e132765d6f592098546d89616d880447cbda77563524a8fe8da1df8f614f60d9bf4ee65b397e08dceb1655da990f7792c7ec3bc6f78f73e2a70507f19",
            "file": "packages/base/src/lib/eui-models/eui-store/models/user.models.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UserDetails {\n    userId: string;\n    firstName?: string;\n    lastName?: string;\n    fullName?: string;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UserPreferences<DASHBOARD = any, T = any> {\n    dashboard?: DASHBOARD;\n    lang?: string;\n\n    [key: string]: string | DASHBOARD | T;\n}\n\nexport const initialUserPreferences: UserPreferences = Object.assign(\n    {},\n    {\n        lang: null,\n        dashboard: null,\n    },\n);\n",
            "properties": [
                {
                    "name": "firstName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 3
                },
                {
                    "name": "fullName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "lastName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "userId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UserPreferences",
            "id": "interface-UserPreferences-64fcae6e132765d6f592098546d89616d880447cbda77563524a8fe8da1df8f614f60d9bf4ee65b397e08dceb1655da990f7792c7ec3bc6f78f73e2a70507f19",
            "file": "packages/base/src/lib/eui-models/eui-store/models/user.models.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UserDetails {\n    userId: string;\n    firstName?: string;\n    lastName?: string;\n    fullName?: string;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface UserPreferences<DASHBOARD = any, T = any> {\n    dashboard?: DASHBOARD;\n    lang?: string;\n\n    [key: string]: string | DASHBOARD | T;\n}\n\nexport const initialUserPreferences: UserPreferences = Object.assign(\n    {},\n    {\n        lang: null,\n        dashboard: null,\n    },\n);\n",
            "properties": [
                {
                    "name": "dashboard",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DASHBOARD",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "lang",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-64fcae6e132765d6f592098546d89616d880447cbda77563524a8fe8da1df8f614f60d9bf4ee65b397e08dceb1655da990f7792c7ec3bc6f78f73e2a70507f19",
                    "args": [
                        {
                            "name": "key",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string | DASHBOARD | T",
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "UserState",
            "id": "interface-UserState-72d1e91796b8c59c60849bfd73c6ca52f63b339264ff4b2d187862dbdb23e72e2956ef7d40b1c93c7ca1fbba5f092877c38ad20480d6f8fe1886c4361964306e",
            "file": "packages/base/src/lib/eui-models/eui-store/state/user.state.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { UserPreferences, initialUserPreferences } from '../models/user.models';\nimport { EuiUserRight } from '../../../eui-models';\nimport { UserDetails } from '../models';\n\nexport interface UserState extends UserDetails {\n    userId: string;\n    firstName?: string;\n    lastName?: string;\n    fullName?: string;\n    preferences?: UserPreferences;\n    rights?: EuiUserRight[];\n}\n\nexport const initialUserState: UserState = Object.assign(\n    {},\n    {\n        userId: '',\n        firstName: '',\n        lastName: '',\n        fullName: '',\n        preferences: initialUserPreferences,\n        rights: [],\n    },\n);\n",
            "properties": [
                {
                    "name": "firstName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "fullName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "lastName",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "preferences",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserPreferences",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "rights",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiUserRight[]",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "userId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [
                "UserDetails"
            ]
        },
        {
            "name": "UxErrorFeedback",
            "id": "interface-UxErrorFeedback-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "attributes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxValidationErrorAttributes",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 99
                },
                {
                    "name": "br",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 101
                },
                {
                    "name": "doc",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 102
                },
                {
                    "name": "errGroupId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 100
                },
                {
                    "name": "severity",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxMessageSeverity",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 98
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [
                "UxErrorMessage"
            ]
        },
        {
            "name": "UxErrorFollowMap",
            "id": "interface-UxErrorFollowMap-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [],
            "indexSignatures": [
                {
                    "id": "index-declaration-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
                    "args": [
                        {
                            "name": "groupId",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "boolean",
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxErrorInfo",
            "id": "interface-UxErrorInfo-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "code",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 88
                },
                {
                    "name": "details",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DETAILS",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 90
                },
                {
                    "name": "doc",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 89
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxErrorMessage",
            "id": "interface-UxErrorMessage-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 107
                },
                {
                    "name": "msgId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 106
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxFormValidationError",
            "id": "interface-UxFormValidationError-ebd29f3b2ee458cefaf660b6b2bd25f959b86f74b30659823c3d31bba7dceda4104f5297b2ba1a2c271d65653e083403c5ba0cbfea135ec5277fd611823027a8",
            "file": "packages/base/src/lib/ux-models/ux-validation-error.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UxFormValidationError {\n    uxValidationError: UxValidationErrorFeedback;\n}\n\nexport interface UxValidationErrorFeedback {\n    message: string | UxValidationErrorI18nMessage;\n    /**\n     * danger, warning, info\n     */\n    type: string;\n}\n\nexport interface UxValidationErrorI18nMessage {\n    id: string;\n    params?: object;\n}\n",
            "properties": [
                {
                    "name": "uxValidationError",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxValidationErrorFeedback",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxHttpErrorInfo",
            "id": "interface-UxHttpErrorInfo-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "requestId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 94
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxHttpErrorResponse",
            "id": "interface-UxHttpErrorResponse-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "uxHttpErrorOutput",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxErrorOutput",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 151
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": [
                "HttpErrorResponse"
            ]
        },
        {
            "name": "UxModalLegacy",
            "id": "interface-UxModalLegacy-4e5f0cb483b7af98c58a9f2f19d24e1231ea661f5c22f582760ded2d06650bd493ee9deca85f2e56d1a201ead48646ea68483c0afd0b2edc5ec001bb9f275622",
            "file": "packages/base/src/lib/ux-models/ux-modal-legacy.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UxModalLegacy {\n    id: string;\n    isOpen: boolean;\n    isFullHeight?: boolean;\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "isFullHeight",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "isOpen",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 3
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxValidationErrorAttribute",
            "id": "interface-UxValidationErrorAttribute-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "properties": [
                {
                    "name": "key",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | Array<string>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 113
                },
                {
                    "name": "value",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 114
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxValidationErrorFeedback",
            "id": "interface-UxValidationErrorFeedback-ebd29f3b2ee458cefaf660b6b2bd25f959b86f74b30659823c3d31bba7dceda4104f5297b2ba1a2c271d65653e083403c5ba0cbfea135ec5277fd611823027a8",
            "file": "packages/base/src/lib/ux-models/ux-validation-error.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UxFormValidationError {\n    uxValidationError: UxValidationErrorFeedback;\n}\n\nexport interface UxValidationErrorFeedback {\n    message: string | UxValidationErrorI18nMessage;\n    /**\n     * danger, warning, info\n     */\n    type: string;\n}\n\nexport interface UxValidationErrorI18nMessage {\n    id: string;\n    params?: object;\n}\n",
            "properties": [
                {
                    "name": "message",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string | UxValidationErrorI18nMessage",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "type",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "<p>danger, warning, info</p>\n",
                    "line": 10,
                    "rawdescription": "\n\ndanger, warning, info\n"
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "UxValidationErrorI18nMessage",
            "id": "interface-UxValidationErrorI18nMessage-ebd29f3b2ee458cefaf660b6b2bd25f959b86f74b30659823c3d31bba7dceda4104f5297b2ba1a2c271d65653e083403c5ba0cbfea135ec5277fd611823027a8",
            "file": "packages/base/src/lib/ux-models/ux-validation-error.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface UxFormValidationError {\n    uxValidationError: UxValidationErrorFeedback;\n}\n\nexport interface UxValidationErrorFeedback {\n    message: string | UxValidationErrorI18nMessage;\n    /**\n     * danger, warning, info\n     */\n    type: string;\n}\n\nexport interface UxValidationErrorI18nMessage {\n    id: string;\n    params?: object;\n}\n",
            "properties": [
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "params",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 15
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "methods": [],
            "extends": []
        },
        {
            "name": "VersionsConfig",
            "id": "interface-VersionsConfig-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
            "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "import { HttpErrorHandlerConfig } from './http-error-handler.config';\nimport { ErrorMappingHandler } from '../../ux-models/ux-error-feedback.model';\nimport { UserConfig } from './user.config';\nimport { I18nConfig, I18nLoaderConfig, I18nResource } from './i18n.config';\nimport { LogAppenderType, LogConfig } from './log.config';\nimport { LocaleServiceConfig } from './locale.config';\nimport { LogLevel } from '../log';\n\nexport type EuiAppConfig = EuiAppJsonConfig & EuiAppHandlersConfig;\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppJsonConfig<T = any> {\n    global: GlobalConfig;\n    modules?: ModulesConfig;\n    versions?: VersionsConfig;\n\n    [key: string]: GlobalConfig | T;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface EuiAppHandlersConfig<T = any> {\n    httpErrorHandler?: HttpErrorHandlerConfig;\n    errorMappingHandler?: ErrorMappingHandler;\n    log?: LogConfig;\n    customHandler?: {\n        [handlerId: string]: T;\n    };\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface GlobalConfig<T = any> {\n    /** show/hide connection status */\n    showConnectionStatus?: ConnectionStatus;\n    user?: UserConfig;\n    i18n?: I18nConfig;\n    locale?: LocaleServiceConfig;\n    eui?: EuiGlobalConfig;\n\n    [key: string]: boolean | UserConfig | I18nConfig | LocaleServiceConfig | EuiGlobalConfig | ConnectionStatus | T;\n}\n\nexport interface EuiGlobalConfig {\n    assetsBaseUrl?: string;\n    theme?: string;\n}\n\nexport interface ConnectionStatus {\n    messageBox: {\n        lifespan: number;\n    };\n    enabled: boolean;\n}\n\nexport interface ModulesConfig {\n    [module: string]: ModuleConfig;\n}\n\n// TODO: on v18 replace any with no object as a type and declare it as breaking change\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport interface ModuleConfig<T = any> extends LogConfig, I18nLoaderConfig {\n    [key: string]: string | string[] | I18nResource | I18nResource[] | LogLevel | LogAppenderType | LogAppenderType[] | T;\n}\n\nexport interface VersionsConfig {\n    app?: string;\n\n    [module: string]: string;\n}\n",
            "properties": [
                {
                    "name": "app",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 68
                }
            ],
            "indexSignatures": [
                {
                    "id": "index-declaration-f3254ce59d1e38d5a7ca296acfa938ebe3203e4c69d09ade02b2092815ac6e91d2817fcfed515d7a46911fa206abd382cf07325e73c901f209f3a40f82352d2d",
                    "args": [
                        {
                            "name": "module",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "string",
                    "line": 68,
                    "deprecated": false,
                    "deprecationMessage": ""
                }
            ],
            "kind": 182,
            "methods": [],
            "extends": []
        },
        {
            "name": "XHRConfig",
            "id": "interface-XHRConfig-359f826e0afc83c5ed95b57d7813c81dc6455d9e3918247fd5b37fe93e626f09549e95d24753ce4205cf963222e9d8a241dc63591e4479a3d33f858cfec0be52",
            "file": "packages/base/src/lib/util/xhr.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "interface",
            "sourceCode": "export interface XHRConfig {\n    url: string;\n    method?: string;\n    responseType?: XMLHttpRequestResponseType;\n    headers?: {\n        [key: string]: string;\n    };\n    body?: Document | XMLHttpRequestBodyInit;\n    withCredentials?: boolean;\n    timeout?: number;\n}\n\n/**\n * Default xhr configuration\n */\nexport const DEFAULT_XHR_CONFIG: XHRConfig = {\n    url: null,\n    method: 'GET',\n    responseType: 'json',\n    headers: {},\n    body: null,\n    withCredentials: false,\n    timeout: 0,\n};\n\n/**\n * Utility function to call a XMLHttpRequest and send the response as a Promise. The response can be parameterized\n *\n * @param config xhr configuration\n */\n/* eslint-disable */\nexport async function xhr<T>(urlOrConfig: string | XHRConfig): Promise<T>;\nexport async function xhr(urlOrConfig: string | XHRConfig): Promise<any> {\n    // create the configuration and apply the default values\n    let config: XHRConfig = typeof urlOrConfig === 'string' ? { url: urlOrConfig } : urlOrConfig;\n    config = Object.assign({}, DEFAULT_XHR_CONFIG, config);\n\n    // create the promise\n    return new Promise((resolve, reject) => {\n        // configure and open the request\n        const request = new XMLHttpRequest();\n        request.open(config.method, config.url, true);\n        request.responseType = config.responseType;\n        Object.keys(config.headers || {}).map((name) => request.setRequestHeader(name, config.headers[name]));\n        request.withCredentials = config.withCredentials;\n        request.timeout = config.timeout;\n\n        // called in case of timeout\n        request.ontimeout = function () {\n            reject(`Request timeout after ${request.timeout} milliseconds`);\n        };\n\n        // called after the response is received\n        request.onload = function () {\n            if (request.status === 200) {\n                // the response is loaded properly\n                resolve(request.response);\n            } else {\n                // status error\n                reject(`Request failed with status ${request.status} (${request.statusText})`);\n            }\n        };\n\n        // called in case of generic error\n        request.onerror = function () {\n            reject(`Request failed`);\n        };\n\n        // send the request\n        request.send(config.body);\n    });\n}\n/* eslint-enable */\n",
            "properties": [
                {
                    "name": "body",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Document | XMLHttpRequestBodyInit",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "headers",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "literal type",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "method",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "responseType",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "XMLHttpRequestResponseType",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "timeout",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "number",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "url",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "withCredentials",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 19
                }
            ],
            "indexSignatures": [],
            "kind": 172,
            "description": "<p>XMLHttpRequest configuration having the following parameters\nurl: the path to the request, mandatory\nmethod: possible http methods: GET, POST, PUT, PATCH, DELETE, etc\nresponseType: arraybuffer, blob, document, json, text or empty string\nheaders: object containing headers as name: value pairs\nbody: request body\nwithCredentials: True when credentials are to be included in a cross-origin request. False otherwise.\ntimeout - time in milliseconds. A non-zero value will terminate the execution after the given time has passed</p>\n",
            "rawdescription": "\n\nXMLHttpRequest configuration having the following parameters\nurl: the path to the request, mandatory\nmethod: possible http methods: GET, POST, PUT, PATCH, DELETE, etc\nresponseType: arraybuffer, blob, document, json, text or empty string\nheaders: object containing headers as name: value pairs\nbody: request body\nwithCredentials: True when credentials are to be included in a cross-origin request. False otherwise.\ntimeout - time in milliseconds. A non-zero value will terminate the execution after the given time has passed\n",
            "methods": [],
            "extends": []
        }
    ],
    "injectables": [
        {
            "name": "HbsRenderService",
            "id": "injectable-HbsRenderService-5ef4e37a0dfcd8350d38408ae5124fd5bba2847c9a149bd231bd2b3bee061bfca03bdd84c89b87ab1cef54f22d6fdad24bd76d974bde023502f3db691e8640c8",
            "file": "packages/base/dist/docs/template-playground/hbs-render.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "getMockData",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 184,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "renderTemplate",
                    "args": [
                        {
                            "name": "templateContent",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 131,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "templateContent",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "data",
                            "type": "any",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\n\ndeclare const Handlebars: any;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class HbsRenderService {\n  private handlebarsInstance: any;\n\n  constructor() {\n    this.initializeHandlebars();\n  }\n\n  private initializeHandlebars() {\n    // Create a new Handlebars instance for the playground\n    this.handlebarsInstance = Handlebars.create();\n\n    // Register common helpers used in Compodoc templates\n    this.registerHelpers();\n  }\n\n  private registerHelpers() {\n    // Register the 'compare' helper\n    this.handlebarsInstance.registerHelper('compare', (left: any, operator: string, right: any, options: any) => {\n      let result;\n      switch (operator) {\n        case '===':\n          result = left === right;\n          break;\n        case '!==':\n          result = left !== right;\n          break;\n        case '<':\n          result = left < right;\n          break;\n        case '>':\n          result = left > right;\n          break;\n        case '<=':\n          result = left <= right;\n          break;\n        case '>=':\n          result = left >= right;\n          break;\n        default:\n          result = false;\n      }\n      return result ? options.fn(this) : options.inverse(this);\n    });\n\n    // Register the 'unless' helper\n    this.handlebarsInstance.registerHelper('unless', (conditional: any, options: any) => {\n      return !conditional ? options.fn(this) : options.inverse(this);\n    });\n\n    // Register the 'each' helper with index\n    this.handlebarsInstance.registerHelper('each', (context: any, options: any) => {\n      let ret = '';\n      for (let i = 0; i < context.length; i++) {\n        ret += options.fn(context[i], { data: { index: i } });\n      }\n      return ret;\n    });\n\n    // Register the 'if' helper\n    this.handlebarsInstance.registerHelper('if', (conditional: any, options: any) => {\n      return conditional ? options.fn(this) : options.inverse(this);\n    });\n\n    // Register the 'relativeURL' helper\n    this.handlebarsInstance.registerHelper('relativeURL', (depth: number, page?: string) => {\n      let url = '';\n      for (let i = 0; i < depth; i++) {\n        url += '../';\n      }\n      return url + (page || '');\n    });\n\n    // Register the 't' helper for translations\n    this.handlebarsInstance.registerHelper('t', (key: string) => {\n      // Simple translation mapping for preview\n      const translations: { [key: string]: string } = {\n        'info': 'Information',\n        'source': 'Source',\n        'example': 'Example',\n        'template': 'Template',\n        'styles': 'Styles',\n        'component': 'Component',\n        'module': 'Module',\n        'overview': 'Overview',\n        'components': 'Components',\n        'modules': 'Modules',\n        'file': 'File',\n        'description': 'Description',\n        'selector': 'Selector',\n        'properties': 'Properties',\n        'methods': 'Methods',\n        'inputs': 'Inputs',\n        'outputs': 'Outputs'\n      };\n      return translations[key] || key;\n    });\n\n    // Register the 'orLength' helper\n    this.handlebarsInstance.registerHelper('orLength', (...args: any[]) => {\n      const options = args[args.length - 1];\n      const values = args.slice(0, -1);\n\n      for (const value of values) {\n        if (value && value.length && value.length > 0) {\n          return options.fn(this);\n        }\n      }\n      return options.inverse(this);\n    });\n\n    // Register the 'isTabEnabled' helper\n    this.handlebarsInstance.registerHelper('isTabEnabled', (navTabs: any[], tabId: string, options: any) => {\n      const tab = navTabs && navTabs.find((t: any) => t.id === tabId);\n      return tab ? options.fn(this) : options.inverse(this);\n    });\n\n    // Register the 'isInitialTab' helper\n    this.handlebarsInstance.registerHelper('isInitialTab', (navTabs: any[], tabId: string, options: any) => {\n      const isInitial = navTabs && navTabs.length > 0 && navTabs[0].id === tabId;\n      return isInitial ? options.fn(this) : options.inverse(this);\n    });\n  }\n\n  renderTemplate(templateContent: string, data: any): string {\n    try {\n      // Create a complete HTML document for preview\n      const template = this.handlebarsInstance.compile(templateContent);\n      const rendered = template({ data });\n\n      // Wrap in a basic HTML structure for preview\n      return `\n        <!DOCTYPE html>\n        <html>\n        <head>\n          <meta charset=\"utf-8\">\n          <title>Template Preview</title>\n          <style>\n            body { font-family: Arial, sans-serif; margin: 20px; }\n            .preview-wrapper { border: 1px solid #ddd; padding: 20px; }\n            .preview-notice { background: #f0f8ff; padding: 10px; margin-bottom: 20px; border-left: 4px solid #007bff; }\n          </style>\n        </head>\n        <body>\n          <div class=\"preview-notice\">\n            <strong>Template Preview:</strong> This is a live preview of your template with mock data.\n          </div>\n          <div class=\"preview-wrapper\">\n            ${rendered}\n          </div>\n        </body>\n        </html>\n      `;\n    } catch (error) {\n      return `\n        <!DOCTYPE html>\n        <html>\n        <head>\n          <meta charset=\"utf-8\">\n          <title>Template Preview - Error</title>\n          <style>\n            body { font-family: Arial, sans-serif; margin: 20px; }\n            .error { color: red; background: #fff5f5; padding: 20px; border: 1px solid #red; }\n          </style>\n        </head>\n        <body>\n          <div class=\"error\">\n            <h3>Template Error</h3>\n            <p><strong>Error:</strong> ${error.message}</p>\n            <p>Please check your template syntax and try again.</p>\n          </div>\n        </body>\n        </html>\n      `;\n    }\n  }\n\n  getMockData(): any {\n    return {\n      documentationMainName: 'Sample Documentation',\n      depth: 0,\n      context: 'component',\n      components: [\n        {\n          name: 'SampleComponent',\n          selector: 'app-sample',\n          file: 'src/app/sample/sample.component.ts',\n          description: 'A sample component for demonstration',\n          properties: [\n            { name: 'title', type: 'string', description: 'The component title' },\n            { name: 'isVisible', type: 'boolean', description: 'Whether the component is visible' }\n          ],\n          methods: [\n            { name: 'ngOnInit', description: 'Lifecycle hook', signature: 'ngOnInit(): void' },\n            { name: 'onClick', description: 'Handle click events', signature: 'onClick(event: MouseEvent): void' }\n          ]\n        }\n      ],\n      navTabs: [\n        { id: 'info', label: 'Info', href: '#info' },\n        { id: 'source', label: 'Source', href: '#source' },\n        { id: 'example', label: 'Example', href: '#example' }\n      ]\n    };\n  }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 9
            },
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "TemplateEditorService",
            "id": "injectable-TemplateEditorService-3449633e2f4f49d58412d4efd7baddc92a33edb2ab73017850bb04a23003f98c3676403b93758c0a1a41db52ea06eeebfefabfca7ac314d17b79ce21cacb7ed0",
            "file": "packages/base/dist/docs/template-playground/template-editor.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "destroy",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 167,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "initializeEditor",
                    "args": [
                        {
                            "name": "container",
                            "type": "HTMLElement",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "container",
                            "type": "HTMLElement",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setEditorContent",
                    "args": [
                        {
                            "name": "content",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "fileType",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "content",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "fileType",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setOnChangeCallback",
                    "args": [
                        {
                            "name": "callback",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "value",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 67,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "callback",
                            "type": "function",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "value",
                                    "type": "string",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\n\ndeclare const monaco: any;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class TemplateEditorService {\n  private editor: any;\n  private onChangeCallback: ((value: string) => void) | null = null;\n\n  initializeEditor(container: HTMLElement) {\n    // Initialize Monaco Editor\n    this.editor = monaco.editor.create(container, {\n      value: '',\n      language: 'html',\n      theme: 'vs-dark',\n      automaticLayout: true,\n      minimap: {\n        enabled: true\n      },\n      scrollBeyondLastLine: false,\n      fontSize: 14,\n      wordWrap: 'on',\n      lineNumbers: 'on',\n      roundedSelection: false,\n      scrollbar: {\n        horizontal: 'visible',\n        vertical: 'visible'\n      },\n      overviewRulerLanes: 2,\n      quickSuggestions: {\n        other: true,\n        comments: true,\n        strings: true\n      },\n      parameterHints: {\n        enabled: true\n      },\n      autoClosingBrackets: 'always',\n      autoClosingQuotes: 'always',\n      suggestOnTriggerCharacters: true,\n      acceptSuggestionOnEnter: 'on',\n      tabCompletion: 'on',\n      wordBasedSuggestions: false\n    });\n\n    // Set up change listener\n    this.editor.onDidChangeModelContent(() => {\n      if (this.onChangeCallback) {\n        this.onChangeCallback(this.editor.getValue());\n      }\n    });\n\n    // Register custom language definitions\n    this.registerHandlebarsLanguage();\n  }\n\n  setEditorContent(content: string, fileType: string) {\n    if (this.editor) {\n      const language = this.getLanguageFromFileType(fileType);\n      const model = monaco.editor.createModel(content, language);\n      this.editor.setModel(model);\n    }\n  }\n\n  setOnChangeCallback(callback: (value: string) => void) {\n    this.onChangeCallback = callback;\n  }\n\n  private getLanguageFromFileType(fileType: string): string {\n    switch (fileType) {\n      case 'hbs':\n        return 'handlebars';\n      case 'css':\n      case 'scss':\n        return 'css';\n      case 'js':\n        return 'javascript';\n      case 'ts':\n        return 'typescript';\n      default:\n        return 'html';\n    }\n  }\n\n  private registerHandlebarsLanguage() {\n    // Register Handlebars language for Monaco Editor\n    if (monaco.languages.getLanguages().find((lang: any) => lang.id === 'handlebars')) {\n      return; // Already registered\n    }\n\n    monaco.languages.register({ id: 'handlebars' });\n\n    monaco.languages.setMonarchTokensProvider('handlebars', {\n      tokenizer: {\n        root: [\n          [/\\{\\{\\{/, { token: 'keyword', next: '@handlebars_unescaped' }],\n          [/\\{\\{/, { token: 'keyword', next: '@handlebars' }],\n          [/<!DOCTYPE/, 'metatag', '@doctype'],\n          [/<!--/, 'comment', '@comment'],\n          [/(<)(\\w+)/, ['delimiter', { token: 'tag', next: '@tag' }]],\n          [/(<\\/)(\\w+)/, ['delimiter', { token: 'tag', next: '@tag' }]],\n          [/</, 'delimiter'],\n          [/[^<]+/]\n        ],\n\n        handlebars_unescaped: [\n          [/\\}\\}\\}/, { token: 'keyword', next: '@pop' }],\n          [/[^}]+/, 'variable']\n        ],\n\n        handlebars: [\n          [/\\}\\}/, { token: 'keyword', next: '@pop' }],\n          [/#if|#unless|#each|#with|\\/if|\\/unless|\\/each|\\/with/, 'keyword'],\n          [/[a-zA-Z_][\\w]*/, 'variable'],\n          [/[^}]+/, 'variable']\n        ],\n\n        comment: [\n          [/-->/, 'comment', '@pop'],\n          [/[^-]+/, 'comment'],\n          [/./, 'comment']\n        ],\n\n        doctype: [\n          [/[^>]+/, 'metatag.content'],\n          [/>/, 'metatag', '@pop']\n        ],\n\n        tag: [\n          [/[ \\t\\r\\n]+/, 'white'],\n          [/(\\w+)(\\s*=\\s*)(\"([^\"]*)\")/, ['attribute.name', 'delimiter', 'attribute.value', 'attribute.value']],\n          [/(\\w+)(\\s*=\\s*)('([^']*)')/, ['attribute.name', 'delimiter', 'attribute.value', 'attribute.value']],\n          [/\\w+/, 'attribute.name'],\n          [/>/, 'delimiter', '@pop']\n        ]\n      }\n    });\n\n    monaco.languages.setLanguageConfiguration('handlebars', {\n      comments: {\n        blockComment: ['<!--', '-->']\n      },\n      brackets: [\n        ['<', '>'],\n        ['{{', '}}'],\n        ['{{{', '}}}']\n      ],\n      autoClosingPairs: [\n        { open: '<', close: '>' },\n        { open: '{{', close: '}}' },\n        { open: '{{{', close: '}}}' },\n        { open: '\"', close: '\"' },\n        { open: \"'\", close: \"'\" }\n      ],\n      surroundingPairs: [\n        { open: '<', close: '>' },\n        { open: '{{', close: '}}' },\n        { open: '{{{', close: '}}}' },\n        { open: '\"', close: '\"' },\n        { open: \"'\", close: \"'\" }\n      ]\n    });\n  }\n\n  destroy() {\n    if (this.editor) {\n      this.editor.dispose();\n      this.editor = null;\n    }\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        },
        {
            "name": "ZipExportService",
            "id": "injectable-ZipExportService-27cbedd9512a28e81ed0c36d7f35cf2653b390e7d2102329da83a3a07c7c8a201c26ddd64555da6645ab6538afe9174c0c964fd589ab3c66618b7f5a777f7285",
            "file": "packages/base/dist/docs/template-playground/zip-export.service.ts",
            "properties": [],
            "methods": [
                {
                    "name": "exportTemplates",
                    "args": [
                        {
                            "name": "files",
                            "type": "any[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "files",
                            "type": "any[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "description": "",
            "rawdescription": "\n",
            "sourceCode": "import { Injectable } from '@angular/core';\n\ndeclare const JSZip: any;\n\n@Injectable({\n  providedIn: 'root'\n})\nexport class ZipExportService {\n\n  exportTemplates(files: any[]) {\n    const zip = new JSZip();\n\n    // Add all template files to the ZIP\n    files.forEach(file => {\n      zip.file(file.path, file.content);\n    });\n\n    // Add a README with instructions\n    const readme = this.generateReadme();\n    zip.file('README.md', readme);\n\n    // Generate and download the ZIP file\n    zip.generateAsync({ type: 'blob' })\n      .then((content: Blob) => {\n        this.downloadBlob(content, 'compodoc-templates.zip');\n      });\n  }\n\n  private generateReadme(): string {\n    return `# Compodoc Custom Templates\n\nThis ZIP file contains customized templates for Compodoc documentation generation.\n\n## Contents\n\n- **Templates** (\\`.hbs\\` files): Handlebars templates for generating documentation pages\n- **Styles** (\\`.css\\` files): Stylesheets for customizing the appearance\n- **Scripts** (\\`.js\\` files): JavaScript files for additional functionality\n\n## Usage\n\n1. Extract this ZIP file to a directory on your system\n2. Use the \\`--templates\\` flag when running Compodoc to specify the path to your custom templates:\n\n   \\`\\`\\`bash\n   compodoc -p tsconfig.json --templates ./path/to/custom/templates/\n   \\`\\`\\`\n\n## Template Structure\n\n- \\`page.hbs\\` - Main page template\n- \\`partials/\\` - Directory containing partial templates\n- \\`styles/\\` - Directory containing CSS files\n- \\`js/\\` - Directory containing JavaScript files\n\n## Customization Tips\n\n1. **Templates**: Use Handlebars syntax to customize the HTML structure\n2. **Styles**: Modify CSS to change colors, fonts, layout, etc.\n3. **Scripts**: Add custom JavaScript functionality\n\n## Backup\n\nAlways keep a backup of your original templates before making changes.\n\n## Documentation\n\nFor more information about customizing Compodoc templates, visit:\nhttps://compodoc.app/guides/template-customization.html\n\nGenerated by Compodoc Template Playground\n`;\n  }\n\n  private downloadBlob(blob: Blob, filename: string) {\n    const url = window.URL.createObjectURL(blob);\n    const a = document.createElement('a');\n    a.href = url;\n    a.download = filename;\n    a.style.display = 'none';\n    document.body.appendChild(a);\n    a.click();\n    document.body.removeChild(a);\n    window.URL.revokeObjectURL(url);\n  }\n}\n",
            "extends": [],
            "type": "injectable"
        }
    ],
    "guards": [],
    "interceptors": [],
    "classes": [
        {
            "name": "ConsoleAppender",
            "id": "class-ConsoleAppender-9966e57658a6dac3b80cf8dec51f67ac4cc4cadc04d3b1ed21ee7d95dce2d0e93036f357f517f97c890743cb394df515ada337e769078b142c57cfb8e4aed88e",
            "file": "packages/base/src/lib/eui-models/log/console.appender.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { LogAppender } from './log.appender';\nimport { ConsoleAppenderConfig, ConsoleAppenderPrefixConverters } from '../eui-config';\nimport { LogEvent, LogLevel } from './log.model';\n\n/** Default console prefix converters */\nexport const DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS: ConsoleAppenderPrefixConverters = {\n    '{level}': (event: LogEvent) => event.levelName,\n    '{logger}': (event: LogEvent) => event.loggerName,\n    '{date}': (event: LogEvent) => event.timestamp.toLocaleDateString(),\n    '{time}': (event: LogEvent) => event.timestamp.toLocaleTimeString(),\n};\n\n/**\n * Console Appender\n */\nexport class ConsoleAppender extends LogAppender<ConsoleAppenderConfig> {\n    constructor(public config: ConsoleAppenderConfig = {}) {\n        super(config);\n        // apply the default prefix converters\n        config.prefixConverters = Object.assign({}, DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS, config.prefixConverters);\n    }\n\n    /**\n     * Logs an event in the console\n     */\n    append(event: LogEvent): void {\n        // retrieve the prefix\n        const prefix = this.getPrefix(event);\n        // append it to the message array\n        const messages = prefix ? [prefix, ...event.messages] : event.messages;\n\n        // log the event in the console\n        switch (event.level) {\n            case LogLevel.FATAL:\n            case LogLevel.ERROR:\n                console.error(...messages);\n                break;\n            case LogLevel.WARN:\n                console.warn(...messages);\n                break;\n            default:\n                console.log(...messages);\n                break;\n        }\n    }\n\n    /**\n     * Returns the prefix to be added to the messages\n     *\n     * @param event the log event\n     * @returns the formatted prefix, as string\n     */\n    protected getPrefix(event: LogEvent): string {\n        // in case of no prefixFormat, return null\n        if (!this.config || !this.config.prefixFormat) {\n            return null;\n        }\n\n        // start creating the prefix from the format\n        let prefix = this.config.prefixFormat;\n\n        // apply the prefix converters\n        Object.keys(this.config.prefixConverters).forEach((key) => {\n            prefix = this.convert(prefix, key, this.config.prefixConverters[key](event));\n        });\n\n        return prefix;\n    }\n\n    /**\n     * Utility method to replace a placeholder\n     *\n     * @param str the string with placeholders\n     * @param find the placeholder\n     * @param replace the string to replace the placeholder\n     * @returns the converted string\n     */\n    protected convert(str: string, find: string, replace: string): string {\n        return str.replace(new RegExp(find, 'g'), replace);\n    }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "config",
                        "type": "ConsoleAppenderConfig",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}"
                    }
                ],
                "line": 16,
                "jsdoctags": [
                    {
                        "name": "config",
                        "type": "ConsoleAppenderConfig",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "config",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ConsoleAppenderConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 17,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "description": "<p>Console Appender</p>\n",
            "rawdescription": "\n\nConsole Appender\n",
            "methods": [
                {
                    "name": "append",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nLogs an event in the console\n",
                    "description": "<p>Logs an event in the console</p>\n",
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "LogAppender"
                    }
                },
                {
                    "name": "convert",
                    "args": [
                        {
                            "name": "str",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "find",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "replace",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 78,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nUtility method to replace a placeholder\n\n",
                    "description": "<p>Utility method to replace a placeholder</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 2404,
                                "end": 2407,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "str"
                            },
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2398,
                                "end": 2403,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the string with placeholders</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2451,
                                "end": 2455,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "find"
                            },
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2445,
                                "end": 2450,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the placeholder</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2486,
                                "end": 2493,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "replace"
                            },
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2480,
                                "end": 2485,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the string to replace the placeholder</p>\n"
                        },
                        {
                            "tagName": {
                                "pos": 2540,
                                "end": 2547,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the converted string</p>\n"
                        }
                    ]
                },
                {
                    "name": "getPrefix",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 53,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nReturns the prefix to be added to the messages\n\n",
                    "description": "<p>Returns the prefix to be added to the messages</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 1715,
                                "end": 1720,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "event"
                            },
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 1709,
                                "end": 1714,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the log event</p>\n"
                        },
                        {
                            "tagName": {
                                "pos": 1743,
                                "end": 1750,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the formatted prefix, as string</p>\n"
                        }
                    ]
                },
                {
                    "name": "getConfig",
                    "args": [],
                    "optional": false,
                    "returnType": "CFG",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the config\n\n",
                    "description": "<p>Gets the config</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 380,
                                "end": 387,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the config</p>\n"
                        }
                    ],
                    "inheritance": {
                        "file": "LogAppender"
                    }
                }
            ],
            "indexSignatures": [],
            "extends": [
                "LogAppender"
            ],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "EuiEuLanguages",
            "id": "class-EuiEuLanguages-c0aff6f82a9fb093e8eb734911d2c7bd3665ee62b4950e8dfce7c2fb6cb46f5faaf8772dc1f65cb82974f595058de00841b6833912e4981170e40fccda3d2f77",
            "file": "packages/base/src/lib/eui-models/eui-language/eui-eu-languages.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { EuiLanguage } from './eui-language.model';\n\nexport type EuiLanguageCode = string | EuiLanguage;\n\nexport class EuiEuLanguages {\n    private static languages: { [code: string]: EuiLanguage } = {\n        bg: {\n            code: 'bg',\n            label: 'български',\n        },\n        cs: {\n            code: 'cs',\n            label: 'čeština',\n        },\n        da: {\n            code: 'da',\n            label: 'dansk',\n        },\n        de: {\n            code: 'de',\n            label: 'Deutsch',\n        },\n        et: {\n            code: 'et',\n            label: 'eesti keel',\n        },\n        el: {\n            code: 'el',\n            label: 'ελληνικά',\n        },\n        en: {\n            code: 'en',\n            label: 'English',\n        },\n        es: {\n            code: 'es',\n            label: 'español',\n        },\n        fr: {\n            code: 'fr',\n            label: 'français',\n        },\n        ga: {\n            code: 'ga',\n            label: 'Gaeilge',\n        },\n        hr: {\n            code: 'hr',\n            label: 'hrvatski',\n        },\n        it: {\n            code: 'it',\n            label: 'italiano',\n        },\n        lv: {\n            code: 'lv',\n            label: 'latviešu valoda',\n        },\n        lt: {\n            code: 'lt',\n            label: 'lietuvių kalba',\n        },\n        hu: {\n            code: 'hu',\n            label: 'magyar',\n        },\n        mt: {\n            code: 'mt',\n            label: 'Malti',\n        },\n        nl: {\n            code: 'nl',\n            label: 'Nederlands',\n        },\n        pl: {\n            code: 'pl',\n            label: 'polski',\n        },\n        pt: {\n            code: 'pt',\n            label: 'português',\n        },\n        ro: {\n            code: 'ro',\n            label: 'română',\n        },\n        sk: {\n            code: 'sk',\n            label: 'slovenčina',\n        },\n        sl: {\n            code: 'sl',\n            label: 'slovenščina',\n        },\n        fi: {\n            code: 'fi',\n            label: 'suomi',\n        },\n        sv: {\n            code: 'sv',\n            label: 'svenska',\n        },\n    };\n\n    private static allLanguages = [\n            { code: 'aa', label: 'Afaraf' },\n            { code: 'ab', label: 'аҧсуа' },\n            { code: 'ae', label: 'avesta' },\n            { code: 'af', label: 'Afrikaans' },\n            { code: 'ak', label: 'Akan' },\n            { code: 'am', label: 'አማርኛ' },\n            { code: 'an', label: 'Aragonés' },\n            { code: 'ar', label: 'العربية', isRtl: true },\n            { code: 'as', label: 'অসমীয়া' },\n            { code: 'av', label: 'авар мацӀ, магӀарул мацӀ' },\n            { code: 'ay', label: 'aymar aru' },\n            { code: 'az', label: 'azərbaycan dili' },\n            { code: 'ba', label: 'башҡорт теле' },\n            { code: 'be', label: 'Беларуская' },\n            { code: 'bg', label: 'български' },\n            { code: 'bh', label: 'भोजपुरी' },\n            { code: 'bi', label: 'Bislama' },\n            { code: 'bm', label: 'bamanankan' },\n            { code: 'bn', label: 'বাংলা' },\n            { code: 'bo', label: 'བོད་ཡིག' },\n            { code: 'br', label: 'brezhoneg' },\n            { code: 'bs', label: 'bosanski jezik' },\n            { code: 'ca', label: 'Català' },\n            { code: 'ce', label: 'нохчийн мотт' },\n            { code: 'ch', label: 'Chamoru' },\n            { code: 'co', label: 'corsu, lingua corsa' },\n            { code: 'cr', label: 'ᓀᐦᐃᔭᐍᐏᐣ' },\n            { code: 'cs', label: 'čeština' },\n            { code: 'cu', label: 'ѩзыкъ словѣньскъ' },\n            { code: 'cv', label: 'чӑваш чӗлхи' },\n            { code: 'cy', label: 'Cymraeg' },\n            { code: 'da', label: 'dansk' },\n            { code: 'de', label: 'Deutsch' },\n            { code: 'dv', label: 'ދިވެހި' },\n            { code: 'ee', label: 'Eʋegbe' },\n            { code: 'el', label: 'Ελληνικά' },\n            { code: 'en', label: 'English' },\n            { code: 'eo', label: 'Esperanto' },\n            { code: 'es', label: 'español' },\n            { code: 'et', label: 'eesti' },\n            { code: 'eu', label: 'euskara, euskera' },\n            { code: 'fa', label: 'فارسی', isRtl: true },\n            { code: 'ff', label: 'Fulfulde, Pulaar, Pular' },\n            { code: 'fi', label: 'suomi' },\n            { code: 'fj', label: 'vosa Vakaviti' },\n            { code: 'fo', label: 'føroyskt' },\n            { code: 'fr', label: 'français' },\n            { code: 'fy', label: 'Frysk' },\n            { code: 'ga', label: 'Gaeilge' },\n            { code: 'gd', label: 'Gàidhlig' },\n            { code: 'gl', label: 'Galego' },\n            { code: 'gn', label: 'Avañeẽ' },\n            { code: 'gu', label: 'ગુજરાતી' },\n            { code: 'gv', label: 'Gaelg, Gailck' },\n            { code: 'ha', label: 'Hausa, هَوُسَ' },\n            { code: 'he', label: 'עברית', isRtl: true },\n            { code: 'hi', label: 'हिन्दी, हिंदी' },\n            { code: 'ho', label: 'Hiri Motu' },\n            { code: 'hr', label: 'hrvatski' },\n            { code: 'ht', label: 'Kreyòl ayisyen' },\n            { code: 'hu', label: 'Magyar' },\n            { code: 'hy', label: 'Հայերեն' },\n            { code: 'hz', label: 'Otjiherero' },\n            { code: 'ia', label: 'Interlingua' },\n            { code: 'id', label: 'Bahasa Indonesia' },\n            { code: 'ie', label: 'Originally called Occidental' },\n            { code: 'ig', label: 'Asụsụ Igbo' },\n            { code: 'ii', label: 'ꆈꌠ꒿ Nuosuhxop' },\n            { code: 'ik', label: 'Iñupiaq, Iñupiatun' },\n            { code: 'io', label: 'Ido' },\n            { code: 'is', label: 'Íslenska' },\n            { code: 'it', label: 'Italiano' },\n            { code: 'iu', label: 'ᐃᓄᒃᑎᑐᑦ' },\n            { code: 'ja', label: '日本語' },\n            { code: 'jv', label: 'basa Jawa' },\n            { code: 'ka', label: 'ქართული' },\n            { code: 'kg', label: 'KiKongo' },\n            { code: 'ki', label: 'Gĩkũyũ' },\n            { code: 'kj', label: 'Kuanyama' },\n            { code: 'kk', label: 'Қазақ тілі' },\n            { code: 'kl', label: 'kalaallisut' },\n            { code: 'km', label: 'ភាសាខ្មែរ' },\n            { code: 'kn', label: 'ಕನ್ನಡ' },\n            { code: 'ko', label: '한국어 (韓國語), 조선말 (朝鮮語)' },\n            { code: 'kr', label: 'Kanuri' },\n            { code: 'ks', label: 'कश्मीरी, كشميري‎' },\n            { code: 'ku', label: 'Kurdî, كوردی‎', isRtl: true },\n            { code: 'kv', label: 'коми кыв' },\n            { code: 'kw', label: 'Kernewek' },\n            { code: 'ky', label: 'кыргыз тили' },\n            { code: 'la', label: 'latine' },\n            { code: 'lb', label: 'Lëtzebuergesch' },\n            { code: 'lg', label: 'Luganda' },\n            { code: 'li', label: 'Limburgs' },\n            { code: 'ln', label: 'Lingála' },\n            { code: 'lo', label: 'ພາສາລາວ' },\n            { code: 'lt', label: 'lietuvių kalba' },\n            { code: 'lu', label: 'Lëtzebuergesch' },\n            { code: 'lv', label: 'latviešu valoda' },\n            { code: 'me', label: 'crnogorski jezik' },\n            { code: 'mg', label: 'Malagasy fiteny' },\n            { code: 'mh', label: 'Kajin M̧ajeļ' },\n            { code: 'mi', label: 'te reo Māori' },\n            { code: 'mk', label: 'македонски јазик' },\n            { code: 'ml', label: 'മലയാളം' },\n            { code: 'mn', label: 'монгол' },\n            { code: 'mr', label: 'मराठी' },\n            { code: 'ms', label: 'bahasa Melayu, بهاس ملايو‎' },\n            { code: 'mt', label: 'Malti' },\n            { code: 'my', label: 'ဗမာစာ' },\n            { code: 'na', label: 'Ekakairũ Naoero' },\n            { code: 'nb', label: 'Norsk bokmål' },\n            { code: 'nd', label: 'isiNdebele' },\n            { code: 'ne', label: 'नेपाली' },\n            { code: 'ng', label: 'Owambo' },\n            { code: 'nl', label: 'Nederlands' },\n            { code: 'nn', label: 'Norsk nynorsk' },\n            { code: 'no', label: 'Norsk' },\n            { code: 'nr', label: 'isiNdebele' },\n            { code: 'nv', label: 'Diné bizaad, Dinékʼehǰí' },\n            { code: 'ny', label: 'chiCheŵa, chinyanja' },\n            { code: 'oc', label: 'Occitan' },\n            { code: 'oj', label: 'ᐊᓂᔑᓈᐯᒧᐎᓐ' },\n            { code: 'om', label: 'Afaan Oromoo' },\n            { code: 'or', label: 'ଓଡ଼ିଆ' },\n            { code: 'os', label: 'ирон æвзаг' },\n            { code: 'pa', label: 'ਪੰਜਾਬੀ, پنجابی‎' },\n            { code: 'pi', label: 'पाऴि' },\n            { code: 'pl', label: 'polski' },\n            { code: 'ps', label: 'پښتو' },\n            { code: 'pt', label: 'Português' },\n            { code: 'qu', label: 'Runa Simi, Kichwa' },\n            { code: 'rm', label: 'rumantsch grischun' },\n            { code: 'rn', label: 'kiRundi' },\n            { code: 'ro', label: 'română' },\n            { code: 'ru', label: 'русский язык' },\n            { code: 'rw', label: 'Ikinyarwanda' },\n            { code: 'sa', label: 'संस्कृतम्' },\n            { code: 'sc', label: 'sardu' },\n            { code: 'sd', label: 'सिन्धी, سنڌي، سندھی‎' },\n            { code: 'se', label: 'Davvisámegiella' },\n            { code: 'sg', label: 'yângâ tî sängö' },\n            { code: 'si', label: 'සිංහල' },\n            { code: 'sk', label: 'slovenčina' },\n            { code: 'sl', label: 'slovenščina' },\n            { code: 'sm', label: 'gagana faa Samoa' },\n            { code: 'sn', label: 'chiShona' },\n            { code: 'so', label: 'Soomaaliga, af Soomaali' },\n            { code: 'sq', label: 'Shqip' },\n            { code: 'sr', label: 'српски језик' },\n            { code: 'ss', label: 'SiSwati' },\n            { code: 'st', label: 'Sesotho' },\n            { code: 'su', label: 'Basa Sunda' },\n            { code: 'sv', label: 'svenska' },\n            { code: 'sw', label: 'Kiswahili' },\n            { code: 'ta', label: 'தமிழ்' },\n            { code: 'te', label: 'తెలుగు' },\n            { code: 'tg', label: 'тоҷикӣ, toğikī, تاجیکی‎' },\n            { code: 'th', label: 'ไทย' },\n            { code: 'ti', label: 'ትግርኛ' },\n            { code: 'tk', label: 'Türkmen, Түркмен' },\n            { code: 'tl', label: 'Wikang Tagalog' },\n            { code: 'tn', label: 'Setswana' },\n            { code: 'to', label: 'faka Tonga' },\n            { code: 'tr', label: 'Türkçe' },\n            { code: 'ts', label: 'Xitsonga' },\n            { code: 'tt', label: 'татарча, tatarça, تاتارچا‎' },\n            { code: 'tw', label: 'Twi' },\n            { code: 'ty', label: 'Reo Tahiti' },\n            { code: 'ug', label: 'Uyƣurqə, ئۇيغۇرچە‎' },\n            { code: 'uk', label: 'українська' },\n            { code: 'ur', label: 'اردو', isRtl: true },\n            { code: 'uz', label: 'zbek, Ўзбек, أۇزبېك‎' },\n            { code: 've', label: 'Tshivenḓa' },\n            { code: 'vi', label: 'Tiếng Việt' },\n            { code: 'vo', label: 'Volapük' },\n            { code: 'wa', label: 'Walon' },\n            { code: 'wo', label: 'Wollof' },\n            { code: 'xh', label: 'isiXhosa' },\n            { code: 'yi', label: 'ייִדיש' },\n            { code: 'yo', label: 'Yorùbá' },\n            { code: 'za', label: 'Saɯ cueŋƅ, Saw cuengh' },\n            { code: 'zh', label: '中文 (Zhōngwén), 汉语, 漢語' },\n    ];\n\n    /**\n     * Matches the given string array to the EU languages and returns a EuiLanguage array.\n     * In case that no codes provided it returns the EU Languages array.\n     *\n     * @param codes A string array of 2 char codes\n     */\n    static getLanguages(codes: EuiLanguageCode[] = Object.keys(this.languages)): EuiLanguage[] {\n        return this.filterInvalidLanguageCodes(codes).map((c: string | EuiLanguage) => (typeof c === 'string' ? this.languages[c] : c));\n    }\n\n    /**\n     * filters and removes language codes that are not part of the EULanguage\n     * e.g. 'ko' does not map to any EULanguage code on the array.\n     *      { code: 'ko', label: 'whatever' } is valid though\n     *\n     * @param codes codes A string array of 2 char codescodes A string array of 2 char codes\n     */\n    static filterInvalidLanguageCodes(codes: EuiLanguageCode[]): EuiLanguageCode[] {\n        return codes.filter((c: string | EuiLanguage) => (typeof c === 'string' ? Object.keys(this.languages).indexOf(c) !== -1 : true));\n    }\n\n    /**\n     * return the given list ordered based on the EULanguage order\n     *\n     * @param codes codes A string array of 2 char codes\n     */\n    static getOrderedLanguages(codes: EuiLanguageCode[] = Object.keys(this.languages)): EuiLanguage[] {\n        return this.getLanguages(codes).sort(\n            (a, b) =>\n                Object.keys(this.languages).findIndex((c) => c === a.code) - Object.keys(this.languages).findIndex((c) => c === b.code),\n        );\n    }\n\n    /**\n     * retrieve language codes (string array) from a given array of string and EuiLanguage items\n     *\n     * @param array It can be an mixed array of string and EuiLanguage items\n     */\n    static getLanguageCodes(array: EuiLanguageCode[]): string[] {\n        return array.map((language: string | EuiLanguage) => (typeof language === 'string' ? language : language.code));\n    }\n\n    /**\n     * filter non EU languages from given array\n     *\n     * @param array An array of EuiLanguage items\n     */\n    static filterNonEULanguages(array: EuiLanguage[]): EuiLanguage[] {\n        return array ? array.filter((lang: EuiLanguage) => !Object.keys(this.languages).includes(lang.code)) : [];\n    }\n\n    /**\n     * filter EU Languages from given array\n     *\n     * @param array An array of EuiLanguage items\n     */\n    static filterEULanguages(array: EuiLanguage[]): EuiLanguage[] {\n        return array ? array.filter((lang: EuiLanguage) => Object.keys(this.languages).includes(lang.code)) : [];\n    }\n\n    /**\n     * @param code language code, ex. 'lu'\n     */\n    static getLanguageByCode(code: string): EuiLanguage {\n        return code ? this.allLanguages.find(lang => lang.code === code) : undefined;\n    }\n\n    /**\n     * @param code language code, ex. 'lu'\n     */\n    static isEuLanguage(code: string): boolean {\n        return  Object.keys(this.languages).includes(code);\n    }\n\n    /**\n     * Returns array of EuiLanguage that match the given codes. If codes array is empty, returns all languages.\n     * @param codes A string array of 2 char codes, ex. ['en', 'de']\n     */\n    static getAllLanguagesByCodes(codes: string[]): EuiLanguage[] {\n        return (codes && codes.length > 0) ? this.allLanguages.filter(el => codes.includes(el.code)) : this.allLanguages;\n    }\n}\n",
            "inputsClass": [],
            "outputsClass": [],
            "properties": [],
            "methods": [
                {
                    "name": "filterEULanguages",
                    "args": [
                        {
                            "name": "array",
                            "type": "EuiLanguage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage[]",
                    "typeParameters": [],
                    "line": 347,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nfilter EU Languages from given array\n\n",
                    "description": "<p>filter EU Languages from given array</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 13485,
                                "end": 13490,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "array"
                            },
                            "type": "EuiLanguage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 13479,
                                "end": 13484,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>An array of EuiLanguage items</p>\n"
                        }
                    ]
                },
                {
                    "name": "filterInvalidLanguageCodes",
                    "args": [
                        {
                            "name": "codes",
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguageCode[]",
                    "typeParameters": [],
                    "line": 308,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nfilters and removes language codes that are not part of the EULanguage\ne.g. 'ko' does not map to any EULanguage code on the array.\n     { code: 'ko', label: 'whatever' } is valid though\n\n",
                    "description": "<p>filters and removes language codes that are not part of the EULanguage\ne.g. &#39;ko&#39; does not map to any EULanguage code on the array.\n     { code: &#39;ko&#39;, label: &#39;whatever&#39; } is valid though</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 11916,
                                "end": 11921,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "codes"
                            },
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 11910,
                                "end": 11915,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>codes A string array of 2 char codescodes A string array of 2 char codes</p>\n"
                        }
                    ]
                },
                {
                    "name": "filterNonEULanguages",
                    "args": [
                        {
                            "name": "array",
                            "type": "EuiLanguage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage[]",
                    "typeParameters": [],
                    "line": 338,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nfilter non EU languages from given array\n\n",
                    "description": "<p>filter non EU languages from given array</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 13175,
                                "end": 13180,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "array"
                            },
                            "type": "EuiLanguage[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 13169,
                                "end": 13174,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>An array of EuiLanguage items</p>\n"
                        }
                    ]
                },
                {
                    "name": "getAllLanguagesByCodes",
                    "args": [
                        {
                            "name": "codes",
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage[]",
                    "typeParameters": [],
                    "line": 369,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nReturns array of EuiLanguage that match the given codes. If codes array is empty, returns all languages.\n",
                    "description": "<p>Returns array of EuiLanguage that match the given codes. If codes array is empty, returns all languages.</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 14237,
                                "end": 14242,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "codes"
                            },
                            "type": "string[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 14231,
                                "end": 14236,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>A string array of 2 char codes, ex. [&#39;en&#39;, &#39;de&#39;]</p>\n"
                        }
                    ]
                },
                {
                    "name": "getLanguageByCode",
                    "args": [
                        {
                            "name": "code",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage",
                    "typeParameters": [],
                    "line": 354,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 13740,
                                "end": 13744,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "code"
                            },
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 13734,
                                "end": 13739,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>language code, ex. &#39;lu&#39;</p>\n"
                        }
                    ]
                },
                {
                    "name": "getLanguageCodes",
                    "args": [
                        {
                            "name": "array",
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string[]",
                    "typeParameters": [],
                    "line": 329,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nretrieve language codes (string array) from a given array of string and EuiLanguage items\n\n",
                    "description": "<p>retrieve language codes (string array) from a given array of string and EuiLanguage items</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 12833,
                                "end": 12838,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "array"
                            },
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 12827,
                                "end": 12832,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>It can be an mixed array of string and EuiLanguage items</p>\n"
                        }
                    ]
                },
                {
                    "name": "getLanguages",
                    "args": [
                        {
                            "name": "codes",
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "Object.keys(this.languages)"
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage[]",
                    "typeParameters": [],
                    "line": 297,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nMatches the given string array to the EU languages and returns a EuiLanguage array.\nIn case that no codes provided it returns the EU Languages array.\n\n",
                    "description": "<p>Matches the given string array to the EU languages and returns a EuiLanguage array.\nIn case that no codes provided it returns the EU Languages array.</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 11394,
                                "end": 11399,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "codes"
                            },
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "Object.keys(this.languages)",
                            "tagName": {
                                "pos": 11388,
                                "end": 11393,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>A string array of 2 char codes</p>\n"
                        }
                    ]
                },
                {
                    "name": "getOrderedLanguages",
                    "args": [
                        {
                            "name": "codes",
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "Object.keys(this.languages)"
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiLanguage[]",
                    "typeParameters": [],
                    "line": 317,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nreturn the given list ordered based on the EULanguage order\n\n",
                    "description": "<p>return the given list ordered based on the EULanguage order</p>\n",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 12329,
                                "end": 12334,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "codes"
                            },
                            "type": "EuiLanguageCode[]",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "Object.keys(this.languages)",
                            "tagName": {
                                "pos": 12323,
                                "end": 12328,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>codes A string array of 2 char codes</p>\n"
                        }
                    ]
                },
                {
                    "name": "isEuLanguage",
                    "args": [
                        {
                            "name": "code",
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 361,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\n",
                    "description": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 13950,
                                "end": 13954,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "code"
                            },
                            "type": "string",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 13944,
                                "end": 13949,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>language code, ex. &#39;lu&#39;</p>\n"
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "EuiLazyService",
            "id": "class-EuiLazyService-e9132d3f4903942a1ce129a8f89fbc7f234381e7a11e802724aba9a17db912d4e921e6ed31c8b20cfa41a87b2fd7166ff5cb1e4663e5d90353fb929d3b31af98",
            "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Observable, Subject, Subscription } from 'rxjs';\nimport { ModuleConfig } from './eui-config/eui-app-config';\nimport { LoadedConfigModules } from './eui-store/state/app.state';\nimport { EuiStoreServiceModel } from './eui-store/eui-store-service.model';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { Selector } from 'reselect';\nimport { CoreState } from './eui-store';\n\nexport interface EuiServiceModel<T> {\n    init(t: T): Observable<EuiServiceStatus>;\n\n    /**\n     * retrieves the State of the service. If you don't pass anything it will retrieve the whole State\n     * of that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\n     * you pass a string that's a key of the Service State type it will retrieve that slice of the state.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getState<K = T>(): Observable<T>;\n    getState<K>(mapFn: (state: T) => K): Observable<K>;\n    getState<A extends keyof T>(key: A): Observable<T[A]>;\n    getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    updateState(t: T): void;\n}\n\nexport type DeepPartial<T> = {\n    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport abstract class EuiService<T> implements EuiServiceModel<T> {\n    protected stateInstance: T;\n    protected prevStateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n    onStateChange: Subject<T> = new Subject<T>();\n\n    protected constructor(defaultState: T) {\n        this.stateInstance = defaultState;\n    }\n\n    initEuiService(): void {\n        this.unSubscribe();\n        this.$stateSubs = this.getState().subscribe((newState: T) => {\n            // set previous state of service\n            this.prevStateInstance = this.copy(this.stateInstance);\n            // update state before emit event\n            this.stateInstance = this.copy(newState);\n            // inform about state change\n            this.onStateChange.next(newState);\n        });\n    }\n\n    abstract init(t?: T): Observable<EuiServiceStatus>;\n\n    abstract getState<K = T>(): Observable<T>;\n    abstract getState<K>(mapFn?: (state: T) => K): Observable<K>;\n    abstract getState<A extends keyof T>(key?: A): Observable<T[A]>;\n    abstract getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    abstract updateState(t: DeepPartial<T>): void;\n\n    protected unSubscribe(): void {\n        if (this.$stateSubs && this.$stateSubs.unsubscribe) {\n            this.$stateSubs.unsubscribe();\n        }\n        if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {\n            this.$stateLazyLoadSubs.unsubscribe();\n        }\n    }\n\n    /**\n     * deep merge two objects\n     * @param target the object that will be merged into\n     * @param source the object that will be merged from\n     */\n    protected deepMerge<T>(target: T, source: DeepPartial<T>): T {\n        const output = Object.assign({}, target);\n        if (this.isObject(target) && this.isObject(source)) {\n            Object.keys(source).forEach(key => {\n                // Check if source[key] is an object and target[key] is either undefined, null, or an object\n                if (this.isObject(source[key])) {\n                    if (!(key in target) || target[key] === null) {\n                        // If target[key] doesn't exist or is null, directly assign source[key]\n                        Object.assign(output, { [key]: structuredClone(source[key]) });\n                    } else {\n                        // Only deep merge if target[key] is also an object\n                        output[key] = this.isObject(target[key])\n                            ? this.deepMerge(target[key], source[key])\n                            : structuredClone(source[key]);\n                    }\n                } else {\n                    Object.assign(output, { [key]: source[key] });\n                }\n            });\n        }\n        return output;\n    }\n\n    /**\n     * checks if the given item is an object\n     * @param item the item that will be checked\n     */\n    private isObject(item: unknown): item is object {\n        return item && typeof item === 'object' && !Array.isArray(item);\n    }\n\n    /**\n     * returns a copy of the given value whether this value is object or primitive. For the arrays it will cover\n     * multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify\n     * might have performance issues on large scale objects but that's an edge case scenario. In case that happens in\n     * the future follow the technique of NGRX with function caching.\n     *\n     * @param state\n     */\n    private copy(state: T): T {\n        if (typeof state === 'undefined') {\n            return undefined;\n        }\n        return JSON.parse(JSON.stringify(state));\n    }\n}\n\nconst getAppLoadedConfigModules: Selector<CoreState, LoadedConfigModules> = (state: CoreState) => state?.app?.loadedConfigModules\n\nexport abstract class EuiLazyService<T> extends EuiService<T> {\n    protected stateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n\n    protected constructor(defaultState: T) {\n        super(defaultState);\n    }\n\n    abstract lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus>;\n\n    // todo it should use abstract store service\n    initEuiService(storeForLazyLoad?: EuiStoreServiceModel<T>): void {\n        super.initEuiService();\n\n        if (storeForLazyLoad) {\n            this.$stateLazyLoadSubs = storeForLazyLoad\n                .select(getAppLoadedConfigModules)\n                .pipe(\n                    filter((loadedConfigModules: LoadedConfigModules) =>\n                        loadedConfigModules?.modulesConfig?.[loadedConfigModules.lastAddedModule] ? true : false,\n                    ),\n                    switchMap((loadedConfigModules: LoadedConfigModules) =>\n                        this.lazyLoadInit(\n                            loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule],\n                            loadedConfigModules.lastAddedModule,\n                        ),\n                    ),\n                )\n                .subscribe(null);\n        }\n    }\n}\n\n/**\n * EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\n * whether the service was successful or not. If the service was not successful it will have an error property that\n * contains the error message.\n * @param T the type of the error message\n * @property success a boolean property that indicates whether the service was successful or not\n * @property error an optional property that contains the error message\n */\nexport interface EuiServiceStatus<T = unknown> {\n    success: boolean;\n    error?: T;\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "defaultState",
                        "type": "T",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 128,
                "modifierKind": [
                    124
                ],
                "jsdoctags": [
                    {
                        "name": "defaultState",
                        "type": "T",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "$stateLazyLoadSubs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subscription",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 128,
                    "modifierKind": [
                        124
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "$stateSubs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subscription",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 127,
                    "modifierKind": [
                        124
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "stateInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "T",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 126,
                    "modifierKind": [
                        124
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "onStateChange",
                    "defaultValue": "new Subject<T>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subject<T>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35,
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "prevStateInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "T",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "modifierKind": [
                        124
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                }
            ],
            "methods": [
                {
                    "name": "initEuiService",
                    "args": [
                        {
                            "name": "storeForLazyLoad",
                            "type": "EuiStoreServiceModel<T>",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 137,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "storeForLazyLoad",
                            "type": "EuiStoreServiceModel<T>",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "lazyLoadInit",
                    "args": [
                        {
                            "name": "moduleConfig",
                            "type": "ModuleConfig",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "moduleName",
                            "type": "string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<EuiServiceStatus>",
                    "typeParameters": [],
                    "line": 134,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "moduleConfig",
                            "type": "ModuleConfig",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "moduleName",
                            "type": "string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "deepMerge",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "source",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "T",
                    "typeParameters": [
                        "T"
                    ],
                    "line": 76,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\ndeep merge two objects\n",
                    "description": "<p>deep merge two objects</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 2776,
                                "end": 2782,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "target"
                            },
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2770,
                                "end": 2775,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the object that will be merged into</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2833,
                                "end": 2839,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "source"
                            },
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2827,
                                "end": 2832,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the object that will be merged from</p>\n"
                        }
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "getState",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<T>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "init",
                    "args": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<EuiServiceStatus>",
                    "typeParameters": [],
                    "line": 53,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "unSubscribe",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                },
                {
                    "name": "updateState",
                    "args": [
                        {
                            "name": "t",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "EuiService"
                    }
                }
            ],
            "indexSignatures": [],
            "extends": [
                "EuiService"
            ],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "EuiPagination",
            "id": "class-EuiPagination-b15a64c8844789ab5551695ebd7aa7834263a36ca8666bf4180b3ed4eadf01cb0786f0bfefe876a0176b254c4ac6a3a282e2c4fa8978255899a77b8d9ea2a760",
            "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export interface EuiPaginationConfig {\n    totalItems?: number;\n    pageSize?: number;\n    currentPage?: number;\n    pageWindowSize?: number;\n}\n\nexport const DefaultConfig: EuiPaginationConfig = {\n    totalItems: 0,\n    pageSize: 10,\n    currentPage: 1,\n    pageWindowSize: 5,\n};\n\nexport class EuiPagination {\n    private constructor(\n        private totalItems: number = DefaultConfig.totalItems,\n        private pageSize: number = DefaultConfig.pageSize,\n        private currentPage: number = DefaultConfig.currentPage,\n        private pageWindowSize: number = DefaultConfig.pageWindowSize,\n    ) {}\n\n    public static create(config: EuiPaginationConfig = DefaultConfig): EuiPagination {\n        if (config.totalItems < 0) {\n            throw new Error('total items cannot be negative');\n        }\n\n        if (config.pageSize <= 0) {\n            throw new Error('page size must be bigger than zero');\n        }\n\n        if (config.pageWindowSize <= 0) {\n            throw new Error('page window size must be bigger than zero');\n        }\n\n        return new EuiPagination(config.totalItems, config.pageSize, config.currentPage, config.pageWindowSize);\n    }\n\n    getFirstPage(): number {\n        return 1;\n    }\n\n    getLastPage(): number {\n        return this.getPagesCount();\n    }\n\n    isFirstPageActive(): boolean {\n        return this.getCurrentPage() === 1;\n    }\n\n    isLastPageActive(): boolean {\n        return this.getCurrentPage() === this.getPagesCount();\n    }\n\n    hasItems(): boolean {\n        return this.getTotalItems() > 0;\n    }\n\n    getPagesCount(): number {\n        const pagesCount = Math.ceil(this.totalItems / this.pageSize);\n        return Math.max(pagesCount, 1);\n    }\n\n    getPages(): Array<number> {\n        const pageWindowSize = this.getPageWindowSize();\n        const pagesCount = this.getPagesCount();\n        const currentPage = this.getCurrentPage();\n\n        let leftPageWindowSize;\n        let rightPageWindowSize;\n        let startPage;\n        let endPage;\n\n        // should not be bigger than pages count\n        const truncatedPageWindowSize = Math.min(...[this.getPageWindowSize(), this.getPagesCount()]);\n\n        if (truncatedPageWindowSize % 2 === 0) {\n            // nonsymetrical pager (...*....)\n            leftPageWindowSize = truncatedPageWindowSize / 2 - 1;\n            rightPageWindowSize = leftPageWindowSize + 1;\n        } else {\n            // symmetrical pager (...*...)\n            leftPageWindowSize = rightPageWindowSize = Math.floor(pageWindowSize / 2);\n        }\n\n        if (currentPage <= leftPageWindowSize) {\n            // start\n            startPage = 1;\n            endPage = truncatedPageWindowSize;\n        } else if (currentPage > pagesCount - rightPageWindowSize) {\n            // end\n            startPage = pagesCount - truncatedPageWindowSize + 1;\n            endPage = pagesCount;\n        } else {\n            // middle\n            startPage = currentPage - leftPageWindowSize;\n            endPage = currentPage + rightPageWindowSize;\n        }\n\n        return range(startPage, endPage + 1);\n    }\n\n    goToPage(page: number): void {\n        const pagesCount = this.getPagesCount();\n        const upperTrunc = Math.min(...[page, pagesCount]);\n        const truncated = Math.max(...[upperTrunc, 1]);\n\n        this.currentPage = truncated;\n    }\n\n    goToFirstPage(): void {\n        this.goToPage(1);\n    }\n\n    goToLastPage(): void {\n        const lastPage = this.getPagesCount();\n        this.goToPage(lastPage);\n    }\n\n    goToNextPage(): void {\n        const nextPage = this.getCurrentPage() + 1;\n        this.goToPage(nextPage);\n    }\n\n    goToPreviousPage(): void {\n        const previousPage = this.getCurrentPage() - 1;\n        this.goToPage(previousPage);\n    }\n\n    hasPreviousPage(): boolean {\n        return this.getCurrentPage() > 1;\n    }\n\n    hasNextPage(): boolean {\n        return this.getCurrentPage() < this.getPagesCount();\n    }\n\n    getTotalItems(): number {\n        return this.totalItems;\n    }\n\n    getPageSize(): number {\n        return this.pageSize;\n    }\n\n    setPageSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageSize = truncated;\n    }\n\n    getCurrentPage(): number {\n        return this.currentPage;\n    }\n\n    getPageWindowSize(): number {\n        return this.pageWindowSize;\n    }\n\n    setPageWindowSize(size: number): void {\n        const truncated = Math.max(...[size, 1]);\n        this.pageWindowSize = truncated;\n    }\n\n    getShowingFrom(): number {\n        const startingIndex = (this.getCurrentPage() - 1) * this.getPageSize();\n        let startingPage = startingIndex + 1;\n\n        if (!this.hasItems()) {\n            startingPage = 0;\n        }\n\n        return startingPage;\n    }\n\n    getShowingTo(): number {\n        const displayStartItem = this.getShowingFrom();\n        const pageSize = this.getPageSize();\n        const totalItems = this.getTotalItems();\n\n        if (!this.hasItems()) {\n            return 0;\n        }\n\n        const pageEnd = Math.min(...[displayStartItem + pageSize - 1, totalItems]);\n\n        return pageEnd;\n    }\n}\n\nexport const range = (start: number, end?: number, step = 1): Array<number> => {\n    const output = [];\n    if (typeof end === 'undefined') {\n        end = start;\n        start = 0;\n    }\n    for (let i = start; i < end; i += step) {\n        output.push(i);\n    }\n    return output;\n};\n",
            "inputsClass": [],
            "outputsClass": [],
            "properties": [],
            "methods": [
                {
                    "name": "create",
                    "args": [
                        {
                            "name": "config",
                            "type": "EuiPaginationConfig",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "DefaultConfig"
                        }
                    ],
                    "optional": false,
                    "returnType": "EuiPagination",
                    "typeParameters": [],
                    "line": 23,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": "config",
                            "type": "EuiPaginationConfig",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "defaultValue": "DefaultConfig",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getCurrentPage",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 151,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getFirstPage",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 39,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getLastPage",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 43,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getPages",
                    "args": [],
                    "optional": false,
                    "returnType": "Array<number>",
                    "typeParameters": [],
                    "line": 64,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getPagesCount",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 59,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getPageSize",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 142,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getPageWindowSize",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 155,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getShowingFrom",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 164,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getShowingTo",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 175,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "getTotalItems",
                    "args": [],
                    "optional": false,
                    "returnType": "number",
                    "typeParameters": [],
                    "line": 138,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "goToFirstPage",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 111,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "goToLastPage",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 115,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "goToNextPage",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 120,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "goToPage",
                    "args": [
                        {
                            "name": "page",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 103,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "page",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "goToPreviousPage",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 125,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "hasItems",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "hasNextPage",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 134,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "hasPreviousPage",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 130,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "isFirstPageActive",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 47,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "isLastPageActive",
                    "args": [],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 51,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "setPageSize",
                    "args": [
                        {
                            "name": "size",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 146,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "size",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "setPageWindowSize",
                    "args": [
                        {
                            "name": "size",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 159,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "size",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "EuiService",
            "id": "class-EuiService-e9132d3f4903942a1ce129a8f89fbc7f234381e7a11e802724aba9a17db912d4e921e6ed31c8b20cfa41a87b2fd7166ff5cb1e4663e5d90353fb929d3b31af98",
            "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Observable, Subject, Subscription } from 'rxjs';\nimport { ModuleConfig } from './eui-config/eui-app-config';\nimport { LoadedConfigModules } from './eui-store/state/app.state';\nimport { EuiStoreServiceModel } from './eui-store/eui-store-service.model';\nimport { filter, switchMap } from 'rxjs/operators';\nimport { Selector } from 'reselect';\nimport { CoreState } from './eui-store';\n\nexport interface EuiServiceModel<T> {\n    init(t: T): Observable<EuiServiceStatus>;\n\n    /**\n     * retrieves the State of the service. If you don't pass anything it will retrieve the whole State\n     * of that service. If you pass a selector or MapFunction it will retrieve a slice of the state. If\n     * you pass a string that's a key of the Service State type it will retrieve that slice of the state.\n     */\n    // eslint-disable-next-line @typescript-eslint/no-unused-vars\n    getState<K = T>(): Observable<T>;\n    getState<K>(mapFn: (state: T) => K): Observable<K>;\n    getState<A extends keyof T>(key: A): Observable<T[A]>;\n    getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    updateState(t: T): void;\n}\n\nexport type DeepPartial<T> = {\n    [P in keyof T]?: T[P] extends object ? DeepPartial<T[P]> : T[P];\n};\n\nexport abstract class EuiService<T> implements EuiServiceModel<T> {\n    protected stateInstance: T;\n    protected prevStateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n    onStateChange: Subject<T> = new Subject<T>();\n\n    protected constructor(defaultState: T) {\n        this.stateInstance = defaultState;\n    }\n\n    initEuiService(): void {\n        this.unSubscribe();\n        this.$stateSubs = this.getState().subscribe((newState: T) => {\n            // set previous state of service\n            this.prevStateInstance = this.copy(this.stateInstance);\n            // update state before emit event\n            this.stateInstance = this.copy(newState);\n            // inform about state change\n            this.onStateChange.next(newState);\n        });\n    }\n\n    abstract init(t?: T): Observable<EuiServiceStatus>;\n\n    abstract getState<K = T>(): Observable<T>;\n    abstract getState<K>(mapFn?: (state: T) => K): Observable<K>;\n    abstract getState<A extends keyof T>(key?: A): Observable<T[A]>;\n    abstract getState<K>(keyOrMapFn?: ((state: T) => K) | string): Observable<K>;\n\n    abstract updateState(t: DeepPartial<T>): void;\n\n    protected unSubscribe(): void {\n        if (this.$stateSubs && this.$stateSubs.unsubscribe) {\n            this.$stateSubs.unsubscribe();\n        }\n        if (this.$stateLazyLoadSubs && this.$stateLazyLoadSubs.unsubscribe) {\n            this.$stateLazyLoadSubs.unsubscribe();\n        }\n    }\n\n    /**\n     * deep merge two objects\n     * @param target the object that will be merged into\n     * @param source the object that will be merged from\n     */\n    protected deepMerge<T>(target: T, source: DeepPartial<T>): T {\n        const output = Object.assign({}, target);\n        if (this.isObject(target) && this.isObject(source)) {\n            Object.keys(source).forEach(key => {\n                // Check if source[key] is an object and target[key] is either undefined, null, or an object\n                if (this.isObject(source[key])) {\n                    if (!(key in target) || target[key] === null) {\n                        // If target[key] doesn't exist or is null, directly assign source[key]\n                        Object.assign(output, { [key]: structuredClone(source[key]) });\n                    } else {\n                        // Only deep merge if target[key] is also an object\n                        output[key] = this.isObject(target[key])\n                            ? this.deepMerge(target[key], source[key])\n                            : structuredClone(source[key]);\n                    }\n                } else {\n                    Object.assign(output, { [key]: source[key] });\n                }\n            });\n        }\n        return output;\n    }\n\n    /**\n     * checks if the given item is an object\n     * @param item the item that will be checked\n     */\n    private isObject(item: unknown): item is object {\n        return item && typeof item === 'object' && !Array.isArray(item);\n    }\n\n    /**\n     * returns a copy of the given value whether this value is object or primitive. For the arrays it will cover\n     * multidimensional arrays, but it will not cover an object that contain functions. JSON.parse and JSON.stringify\n     * might have performance issues on large scale objects but that's an edge case scenario. In case that happens in\n     * the future follow the technique of NGRX with function caching.\n     *\n     * @param state\n     */\n    private copy(state: T): T {\n        if (typeof state === 'undefined') {\n            return undefined;\n        }\n        return JSON.parse(JSON.stringify(state));\n    }\n}\n\nconst getAppLoadedConfigModules: Selector<CoreState, LoadedConfigModules> = (state: CoreState) => state?.app?.loadedConfigModules\n\nexport abstract class EuiLazyService<T> extends EuiService<T> {\n    protected stateInstance: T;\n    protected $stateSubs: Subscription;\n    protected $stateLazyLoadSubs: Subscription;\n\n    protected constructor(defaultState: T) {\n        super(defaultState);\n    }\n\n    abstract lazyLoadInit(moduleConfig: ModuleConfig, moduleName?: string): Observable<EuiServiceStatus>;\n\n    // todo it should use abstract store service\n    initEuiService(storeForLazyLoad?: EuiStoreServiceModel<T>): void {\n        super.initEuiService();\n\n        if (storeForLazyLoad) {\n            this.$stateLazyLoadSubs = storeForLazyLoad\n                .select(getAppLoadedConfigModules)\n                .pipe(\n                    filter((loadedConfigModules: LoadedConfigModules) =>\n                        loadedConfigModules?.modulesConfig?.[loadedConfigModules.lastAddedModule] ? true : false,\n                    ),\n                    switchMap((loadedConfigModules: LoadedConfigModules) =>\n                        this.lazyLoadInit(\n                            loadedConfigModules.modulesConfig[loadedConfigModules.lastAddedModule],\n                            loadedConfigModules.lastAddedModule,\n                        ),\n                    ),\n                )\n                .subscribe(null);\n        }\n    }\n}\n\n/**\n * EuiServiceStatus is a model that represents the status of the service. It has a boolean property that indicates\n * whether the service was successful or not. If the service was not successful it will have an error property that\n * contains the error message.\n * @param T the type of the error message\n * @property success a boolean property that indicates whether the service was successful or not\n * @property error an optional property that contains the error message\n */\nexport interface EuiServiceStatus<T = unknown> {\n    success: boolean;\n    error?: T;\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "defaultState",
                        "type": "T",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 35,
                "modifierKind": [
                    124
                ],
                "jsdoctags": [
                    {
                        "name": "defaultState",
                        "type": "T",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "$stateLazyLoadSubs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subscription",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "$stateSubs",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subscription",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "onStateChange",
                    "defaultValue": "new Subject<T>()",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Subject<T>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "prevStateInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "T",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32,
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "stateInstance",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "T",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "methods": [
                {
                    "name": "deepMerge",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "source",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "T",
                    "typeParameters": [
                        "T"
                    ],
                    "line": 76,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\ndeep merge two objects\n",
                    "description": "<p>deep merge two objects</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 2776,
                                "end": 2782,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "target"
                            },
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2770,
                                "end": 2775,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the object that will be merged into</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2833,
                                "end": 2839,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "source"
                            },
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2827,
                                "end": 2832,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the object that will be merged from</p>\n"
                        }
                    ]
                },
                {
                    "name": "getState",
                    "args": [],
                    "optional": false,
                    "returnType": "Observable<T>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 55,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ]
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ]
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<K>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 56,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "mapFn",
                            "type": "function",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "function": [
                                {
                                    "name": "state",
                                    "type": "T",
                                    "optional": false,
                                    "dotDotDotToken": false,
                                    "deprecated": false,
                                    "deprecationMessage": ""
                                }
                            ],
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "key",
                            "type": "A",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<unknown>",
                    "typeParameters": [
                        "A"
                    ],
                    "line": 57,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "key",
                            "type": "A",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getState",
                    "args": [
                        {
                            "name": "keyOrMapFn",
                            "type": "unknown | string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<K>",
                    "typeParameters": [
                        "K"
                    ],
                    "line": 58,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "keyOrMapFn",
                            "type": "unknown | string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "init",
                    "args": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Observable<EuiServiceStatus>",
                    "typeParameters": [],
                    "line": 53,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "T",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "initEuiService",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 41,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "unSubscribe",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 62,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "updateState",
                    "args": [
                        {
                            "name": "t",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 60,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": "t",
                            "type": "DeepPartial<T>",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": [],
            "implements": [
                "EuiServiceModel"
            ]
        },
        {
            "name": "LogAppender",
            "id": "class-LogAppender-5b7fbc6f40d62f3fc7f44d1e9adb24e66a7b9e3911e295c5067627500db76548bc619fd4801c9a778be43fce6cbfd138013806e3540c67d469a902490e27eee0",
            "file": "packages/base/src/lib/eui-models/log/log.appender.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Injector } from '@angular/core';\nimport { LogAppenderConfig } from '../eui-config';\nimport { LogEvent } from './log.model';\n\n/**\n * Abstract Log Appender\n */\nexport abstract class LogAppender<CFG extends LogAppenderConfig = LogAppenderConfig> {\n    constructor(protected config: CFG, protected injector: Injector = null) {}\n\n    /**\n     * Gets the config\n     *\n     * @returns the config\n     */\n    getConfig(): CFG {\n        return this.config;\n    }\n\n    /**\n     * Logs a Log Event\n     *\n     * @param event log event\n     */\n    abstract append(event: LogEvent): void;\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "config",
                        "type": "CFG",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "injector",
                        "type": "Injector",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "null"
                    }
                ],
                "line": 8,
                "jsdoctags": [
                    {
                        "name": "config",
                        "type": "CFG",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "injector",
                        "type": "Injector",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "null",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [],
            "description": "<p>Abstract Log Appender</p>\n",
            "rawdescription": "\n\nAbstract Log Appender\n",
            "methods": [
                {
                    "name": "append",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 25,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nLogs a Log Event\n\n",
                    "description": "<p>Logs a Log Event</p>\n",
                    "modifierKind": [
                        128
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 518,
                                "end": 523,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "event"
                            },
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 512,
                                "end": 517,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>log event</p>\n"
                        }
                    ]
                },
                {
                    "name": "getConfig",
                    "args": [],
                    "optional": false,
                    "returnType": "CFG",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the config\n\n",
                    "description": "<p>Gets the config</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 380,
                                "end": 387,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the config</p>\n"
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "Logger",
            "id": "class-Logger-d02702ce545459f4bf2bc377c8ceb1df1510656ae7eb1953417ee1ca73750d832aafb15e93a9379501741501bd1bf61c87d3a962d6236db79f8a40e071ef56fd",
            "file": "packages/base/src/lib/eui-models/log/log.logger.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { LogEvent, LogLevel, LogLevelName } from './log.model';\nimport { LogAppender } from './log.appender';\n\n/**\n * Logger\n */\nexport class Logger {\n    constructor(protected name: string, protected level: LogLevel, protected appenders: LogAppender[]) {}\n\n    static isEnabledFor(enabledFromLevel: LogLevel, level: LogLevel): boolean {\n        return enabledFromLevel >= level;\n    }\n\n    /**\n     * Gets the logger name\n     *\n     * @returns the logger name\n     */\n    getName(): string {\n        return this.name;\n    }\n\n    /**\n     * Gets the log level\n     *\n     * @returns the log level\n     */\n    getLevel(): LogLevel {\n        return this.level;\n    }\n\n    /**\n     * Sets the log level\n     *\n     * @param level log level\n     */\n    setLevel(level: LogLevel): void {\n        this.level = level;\n    }\n\n    /**\n     * Fatal log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    fatal<T, S>(message: T, ...additionalMessages: S[]): void {\n        return this.log({\n            level: LogLevel.FATAL,\n            levelName: LogLevelName.FATAL,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Error log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    error<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.ERROR,\n            levelName: LogLevelName.ERROR,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Warning log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    warn<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.WARN,\n            levelName: LogLevelName.WARN,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Info log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    info<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.INFO,\n            levelName: LogLevelName.INFO,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Debug log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    debug<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.DEBUG,\n            levelName: LogLevelName.DEBUG,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    /**\n     * Trace log\n     *\n     * @param message mandatory message\n     * @param additionalMessages optional messages\n     */\n    trace<M, A>(message: M, ...additionalMessages: A[]): void {\n        return this.log({\n            level: LogLevel.TRACE,\n            levelName: LogLevelName.TRACE,\n            loggerName: this.name,\n            timestamp: new Date(),\n            messages: [message, ...additionalMessages],\n        });\n    }\n\n    isDisabled = (): boolean => this.level === LogLevel.OFF;\n    isEnabledFor = (level: LogLevel): boolean => Logger.isEnabledFor(this.level, level);\n    isFatalEnabled = (): boolean => this.isEnabledFor(LogLevel.FATAL);\n    isErrorEnabled = (): boolean => this.isEnabledFor(LogLevel.ERROR);\n    isWarnEnabled = (): boolean => this.isEnabledFor(LogLevel.WARN);\n    isInfoEnabled = (): boolean => this.isEnabledFor(LogLevel.INFO);\n    isDebugEnabled = (): boolean => this.isEnabledFor(LogLevel.DEBUG);\n    isTraceEnabled = (): boolean => this.isEnabledFor(LogLevel.TRACE);\n    isAllEnabled = (): boolean => this.isEnabledFor(LogLevel.ALL);\n\n    /**\n     * Generic log method, checking the log level and calling the specified appenders\n     *\n     * @param event the log event\n     */\n    protected log(event: LogEvent): void {\n        this.appenders\n            // filter the appender by their custom logLevel or the logger (main) logLevel\n            .filter((appender) => Logger.isEnabledFor(appender.getConfig().logLevel || this.level, event.level), this)\n            // execute the remaining appenders\n            .forEach((appender) => appender.append(event));\n    }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "name",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "level",
                        "type": "LogLevel",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "appenders",
                        "type": "LogAppender[]",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 7,
                "jsdoctags": [
                    {
                        "name": "name",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "level",
                        "type": "LogLevel",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "appenders",
                        "type": "LogAppender[]",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "isAllEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 145
                },
                {
                    "name": "isDebugEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 143
                },
                {
                    "name": "isDisabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 137
                },
                {
                    "name": "isEnabledFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 138
                },
                {
                    "name": "isErrorEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 140
                },
                {
                    "name": "isFatalEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 139
                },
                {
                    "name": "isInfoEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 142
                },
                {
                    "name": "isTraceEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 144
                },
                {
                    "name": "isWarnEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 141
                }
            ],
            "description": "<p>Logger</p>\n",
            "rawdescription": "\n\nLogger\n",
            "methods": [
                {
                    "name": "debug",
                    "args": [
                        {
                            "name": "message",
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "M",
                        "A"
                    ],
                    "line": 111,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nDebug log\n\n",
                    "description": "<p>Debug log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 2636,
                                "end": 2643,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2630,
                                "end": 2635,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2676,
                                "end": 2694,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2670,
                                "end": 2675,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                },
                {
                    "name": "error",
                    "args": [
                        {
                            "name": "message",
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "M",
                        "A"
                    ],
                    "line": 63,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nError log\n\n",
                    "description": "<p>Error log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 1309,
                                "end": 1316,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 1303,
                                "end": 1308,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 1349,
                                "end": 1367,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 1343,
                                "end": 1348,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                },
                {
                    "name": "fatal",
                    "args": [
                        {
                            "name": "message",
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "S[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "T",
                        "S"
                    ],
                    "line": 47,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nFatal log\n\n",
                    "description": "<p>Fatal log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 865,
                                "end": 872,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "T",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 859,
                                "end": 864,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 905,
                                "end": 923,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "S[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 899,
                                "end": 904,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                },
                {
                    "name": "getLevel",
                    "args": [],
                    "optional": false,
                    "returnType": "LogLevel",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the log level\n\n",
                    "description": "<p>Gets the log level</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 576,
                                "end": 583,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the log level</p>\n"
                        }
                    ]
                },
                {
                    "name": "getName",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the logger name\n\n",
                    "description": "<p>Gets the logger name</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 438,
                                "end": 445,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the logger name</p>\n"
                        }
                    ]
                },
                {
                    "name": "info",
                    "args": [
                        {
                            "name": "message",
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "M",
                        "A"
                    ],
                    "line": 95,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nInfo log\n\n",
                    "description": "<p>Info log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 2195,
                                "end": 2202,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2189,
                                "end": 2194,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 2235,
                                "end": 2253,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 2229,
                                "end": 2234,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                },
                {
                    "name": "isEnabledFor",
                    "args": [
                        {
                            "name": "enabledFromLevel",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "level",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": "enabledFromLevel",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "level",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "log",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 152,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGeneric log method, checking the log level and calling the specified appenders\n\n",
                    "description": "<p>Generic log method, checking the log level and calling the specified appenders</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 4233,
                                "end": 4238,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "event"
                            },
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 4227,
                                "end": 4232,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the log event</p>\n"
                        }
                    ]
                },
                {
                    "name": "setLevel",
                    "args": [
                        {
                            "name": "level",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 37,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nSets the log level\n\n",
                    "description": "<p>Sets the log level</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 722,
                                "end": 727,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "level"
                            },
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 716,
                                "end": 721,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>log level</p>\n"
                        }
                    ]
                },
                {
                    "name": "trace",
                    "args": [
                        {
                            "name": "message",
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "M",
                        "A"
                    ],
                    "line": 127,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nTrace log\n\n",
                    "description": "<p>Trace log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 3080,
                                "end": 3087,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 3074,
                                "end": 3079,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 3120,
                                "end": 3138,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 3114,
                                "end": 3119,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                },
                {
                    "name": "warn",
                    "args": [
                        {
                            "name": "message",
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "additionalMessages",
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [
                        "M",
                        "A"
                    ],
                    "line": 79,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nWarning log\n\n",
                    "description": "<p>Warning log</p>\n",
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 1755,
                                "end": 1762,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "message"
                            },
                            "type": "M",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 1749,
                                "end": 1754,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>mandatory message</p>\n"
                        },
                        {
                            "name": {
                                "pos": 1795,
                                "end": 1813,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "additionalMessages"
                            },
                            "type": "A[]",
                            "optional": false,
                            "dotDotDotToken": true,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 1789,
                                "end": 1794,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>optional messages</p>\n"
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "LoggerMock",
            "id": "class-LoggerMock-a327e3b3efe4eecaf3ef20133b1017856847aa4e03369358b35c3b66c566e1bf9369e6209076b05135c32dae261b84cefd25fb6367c20ac8a168e484919d7146",
            "file": "packages/base/src/lib/eui-models/log/log.logger.mock.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Logger } from './log.logger';\n\nexport class LoggerMock extends Logger {\n    constructor() {\n        super(null, null, null);\n    }\n\n    getLevel(): null {\n        return null;\n    }\n\n    setLevel(): void {\n        /* empty */\n    }\n\n    fatal(): void {\n        /* empty */\n    }\n\n    error(): void {\n        /* empty */\n    }\n\n    warn(): void {\n        /* empty */\n    }\n\n    info(): void {\n        /* empty */\n    }\n\n    debug(): void {\n        /* empty */\n    }\n\n    trace(): void {\n        /* empty */\n    }\n\n    isDisabled = (): boolean => false;\n    isEnabledFor = (): boolean => false;\n    isFatalEnabled = (): boolean => false;\n    isErrorEnabled = (): boolean => false;\n    isWarnEnabled = (): boolean => false;\n    isInfoEnabled = (): boolean => false;\n    isDebugEnabled = (): boolean => false;\n    isTraceEnabled = (): boolean => false;\n    isAllEnabled = (): boolean => false;\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [],
                "line": 3
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "isAllEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isDebugEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isDisabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isEnabledFor",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isErrorEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isFatalEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isInfoEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 45,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isTraceEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47,
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isWarnEnabled",
                    "defaultValue": "() => {...}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44,
                    "inheritance": {
                        "file": "Logger"
                    }
                }
            ],
            "methods": [
                {
                    "name": "debug",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 32,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "error",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 20,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "fatal",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "getLevel",
                    "args": [],
                    "optional": false,
                    "typeParameters": [],
                    "line": 8,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "info",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 28,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "setLevel",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 12,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "trace",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 36,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "warn",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 24,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "getName",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 19,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the logger name\n\n",
                    "description": "<p>Gets the logger name</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 438,
                                "end": 445,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the logger name</p>\n"
                        }
                    ],
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "isEnabledFor",
                    "args": [
                        {
                            "name": "enabledFromLevel",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "level",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "boolean",
                    "typeParameters": [],
                    "line": 10,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        126
                    ],
                    "jsdoctags": [
                        {
                            "name": "enabledFromLevel",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "level",
                            "type": "LogLevel",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "Logger"
                    }
                },
                {
                    "name": "log",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 152,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGeneric log method, checking the log level and calling the specified appenders\n\n",
                    "description": "<p>Generic log method, checking the log level and calling the specified appenders</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": {
                                "pos": 4233,
                                "end": 4238,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "event"
                            },
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "pos": 4227,
                                "end": 4232,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "param"
                            },
                            "comment": "<p>the log event</p>\n"
                        }
                    ],
                    "inheritance": {
                        "file": "Logger"
                    }
                }
            ],
            "indexSignatures": [],
            "extends": [
                "Logger"
            ],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UrlAppender",
            "id": "class-UrlAppender-0bdc618b783f4ea54c12ee5585077820dc14422ec24bfdb3af2a332d8075a7d9847b65aade8b8c4941ff8f42ea08d31e8fe036fb607fc9f1708a481ed36a79d6",
            "file": "packages/base/src/lib/eui-models/log/url.appender.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { Injector } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { LogEvent, LogPosition } from './log.model';\nimport { LogAppender } from './log.appender';\nimport { Logger } from './log.logger';\nimport { UrlAppenderConfig, UrlLogEvent } from '../eui-config';\n\n/**\n * Url Appender\n */\nexport class UrlAppender extends LogAppender<UrlAppenderConfig> {\n    protected http: HttpClient;\n\n    constructor(public config: UrlAppenderConfig, protected injector: Injector) {\n        super(config, injector);\n        // set the http client\n        this.http = injector && injector.get(HttpClient, null);\n        if (!this.http) {\n            console.error('UrlAppender needs HttpClient service to be defined as a provider.');\n        }\n    }\n\n    /**\n     * Logs an event to a server\n     */\n    append(event: LogEvent): void {\n        // eventual http errors will be caught by the HttpErrorHandlerInterceptor\n        if (this.http) {\n            this.http.post(this.config.url, this.toUrlEvent(event)).subscribe();\n        }\n    }\n\n    /**\n     * Maps a LogEvent into a UrlLogEvent\n     */\n    protected toUrlEvent(event: LogEvent): UrlLogEvent {\n        // check if the urlEventFromLevel allows the mapping to url log event\n        const toUrlEvent = this.config.detailedEventFromLevel && Logger.isEnabledFor(this.config.detailedEventFromLevel, event.level);\n        // returns the url event or the regular log event\n        return toUrlEvent\n            ? Object.assign({}, this.filterErrorType(event), {\n                  position: this.getPosition(),\n                  location: this.getLocation(),\n              })\n            : event;\n    }\n\n    /**\n     * returns the code position from where the log has been triggered\n     */\n    protected getPosition(): LogPosition {\n        // create a dummy error, just for the stack trace\n        const error = new Error();\n\n        try {\n            // throw it ...\n            throw error;\n        } catch (e) {\n            // ... and catch it\n            try {\n                // extract the correct stack line\n                let stackLine = error.stack.split('\\n')[3].trim();\n                if (stackLine.startsWith('at ')) {\n                    stackLine = stackLine.substring('at '.length);\n                }\n                // if the path is specified in parentheses\n                if (stackLine.lastIndexOf('(') > 0) {\n                    stackLine = stackLine.substring(stackLine.lastIndexOf('(') + 1, stackLine.indexOf(')'));\n                }\n                // strip base path, then parse file, line and column\n                const data = stackLine.substring(stackLine.lastIndexOf('/') + 1).split(':');\n                // if the data is parsed correctly\n                if (data.length === 3) {\n                    return {\n                        file: data[0],\n                        line: +data[1],\n                        column: +data[2],\n                    };\n                }\n            } catch (err) {\n                /* empty */\n            }\n        }\n        /* istanbul ignore next */\n        return null;\n    }\n\n    /**\n     * returns the url of the current page\n     */\n    protected getLocation(): string {\n        return window && window.location && window.location.href;\n    }\n\n    /**\n     * check messages if object type is Error and make its properties enumerable\n     */\n    protected filterErrorType(event: LogEvent): LogEvent {\n        event.messages = event.messages.map((m) => (m instanceof Error ? Object.getOwnPropertyDescriptors(m) : m));\n        return event;\n    }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "config",
                        "type": "UrlAppenderConfig",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "injector",
                        "type": "Injector",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 12,
                "jsdoctags": [
                    {
                        "name": "config",
                        "type": "UrlAppenderConfig",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "injector",
                        "type": "Injector",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "config",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UrlAppenderConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "http",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "HttpClient",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12,
                    "modifierKind": [
                        124
                    ]
                }
            ],
            "description": "<p>Url Appender</p>\n",
            "rawdescription": "\n\nUrl Appender\n",
            "methods": [
                {
                    "name": "append",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 26,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nLogs an event to a server\n",
                    "description": "<p>Logs an event to a server</p>\n",
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ],
                    "inheritance": {
                        "file": "LogAppender"
                    }
                },
                {
                    "name": "filterErrorType",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "LogEvent",
                    "typeParameters": [],
                    "line": 98,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\ncheck messages if object type is Error and make its properties enumerable\n",
                    "description": "<p>check messages if object type is Error and make its properties enumerable</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getLocation",
                    "args": [],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 91,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nreturns the url of the current page\n",
                    "description": "<p>returns the url of the current page</p>\n",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "getPosition",
                    "args": [],
                    "optional": false,
                    "returnType": "LogPosition",
                    "typeParameters": [],
                    "line": 51,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nreturns the code position from where the log has been triggered\n",
                    "description": "<p>returns the code position from where the log has been triggered</p>\n",
                    "modifierKind": [
                        124
                    ]
                },
                {
                    "name": "toUrlEvent",
                    "args": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "UrlLogEvent",
                    "typeParameters": [],
                    "line": 36,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nMaps a LogEvent into a UrlLogEvent\n",
                    "description": "<p>Maps a LogEvent into a UrlLogEvent</p>\n",
                    "modifierKind": [
                        124
                    ],
                    "jsdoctags": [
                        {
                            "name": "event",
                            "type": "LogEvent",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "getConfig",
                    "args": [],
                    "optional": false,
                    "returnType": "CFG",
                    "typeParameters": [],
                    "line": 16,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "rawdescription": "\n\nGets the config\n\n",
                    "description": "<p>Gets the config</p>\n",
                    "jsdoctags": [
                        {
                            "tagName": {
                                "pos": 380,
                                "end": 387,
                                "kind": 80,
                                "id": 0,
                                "flags": 16842752,
                                "transformFlags": 0,
                                "escapedText": "returns"
                            },
                            "comment": "<p>the config</p>\n"
                        }
                    ],
                    "inheritance": {
                        "file": "LogAppender"
                    }
                }
            ],
            "indexSignatures": [],
            "extends": [
                "LogAppender"
            ],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxBadgeLegacy",
            "id": "class-UxBadgeLegacy-2665b136a9b9db68b53781e85a9395389442ac45fd0f84676d514c0288282db569a17c33d80a9ca8b74a447a90382c0b6c8c8b3302221585d45098899936da9b",
            "file": "packages/base/src/lib/ux-models/ux-link-legacy.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class UxBadgeLegacy {\n    label: string;\n    typeClass = 'secondary';\n\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n    }\n}\n\nexport class UxLinkLegacy<METADATA = unknown> {\n    id: string;\n    label: string;\n    ariaIconLabel: string;\n    subLabel: string;\n    typeLabel: string;\n    typeLabelClass: string;\n    url: string;\n    urlExternal: string;\n    urlExternalTarget = '_blank';\n    disabled = false;\n    children: UxLinkLegacy<METADATA>[];\n    parent: UxLinkLegacy<METADATA>;\n    iconClass: string;\n    iconTypeClass: string;\n    hasIconBg = false;\n    active = false;\n    metadata: METADATA;\n    visible = true;\n    expanded = false;\n    command: () => void;\n    hasMarker = false;\n    markerTypeClass: string;\n    hasTag = false;\n    tagTypeClass: string;\n    tagLabel: string;\n    tagCount: string;\n    badgeTypeClass = 'secondary';\n    badgeLabel: string;\n    badges: UxBadgeLegacy[];\n    tooltipLabel: string;\n    typeClass: string;\n    isHome = false;\n    isSeparator = false;\n    isScreenReaderClickable = false;\n    allowedRightId: string;\n    allowedRightIds: string[];\n    deniedRightId: string;\n    deniedRightIds: string[];\n    selected = false;\n    indeterminate = false;\n    e2eAttr: string;\n    category: string;\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n        if (this.id === null || this.id === undefined) {\n            this.id = 'no_id';\n        }\n        this.e2eAttr = 'ux-link-e2e-' + this.id;\n    }\n    get hasChildren(): boolean {\n        return this.children != null;\n    }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "values",
                        "type": "object",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}"
                    }
                ],
                "line": 3,
                "jsdoctags": [
                    {
                        "name": "values",
                        "type": "object",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 2
                },
                {
                    "name": "typeClass",
                    "defaultValue": "'secondary'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 3
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxClearErrorFeedbackEvent",
            "id": "class-UxClearErrorFeedbackEvent-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "id",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 166,
                "jsdoctags": [
                    {
                        "name": "id",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "groupId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 167,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 167,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxErrorGroupOnClickEvent",
            "id": "class-UxErrorGroupOnClickEvent-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "err",
                        "type": "UxErrorFeedback",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 64,
                "jsdoctags": [
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "err",
                        "type": "UxErrorFeedback",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "err",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxErrorFeedback",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 65,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "groupId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 65,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxErrorOutput",
            "id": "class-UxErrorOutput-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "info",
                        "type": "unknown",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "errorFeedback",
                        "type": "UxErrorFeedback",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "subErrors",
                        "type": "SubErrors",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "errGroupMap",
                        "type": "Array<UxErrorGroupMap>",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 12,
                "jsdoctags": [
                    {
                        "name": "info",
                        "type": "unknown",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "errorFeedback",
                        "type": "UxErrorFeedback",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "subErrors",
                        "type": "SubErrors",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "errGroupMap",
                        "type": "Array<UxErrorGroupMap>",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "code",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 4
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 10
                },
                {
                    "name": "details",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "DETAILS",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 7
                },
                {
                    "name": "doc",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 6
                },
                {
                    "name": "errGroupMap",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Array<UxErrorGroupMap>",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "msgId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 9
                },
                {
                    "name": "requestId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 5
                },
                {
                    "name": "severity",
                    "defaultValue": "UxMessageSeverity.danger",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 8
                },
                {
                    "name": "subErrors",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "SubErrors",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 12
                }
            ],
            "methods": [
                {
                    "name": "getFeedBacks",
                    "args": [
                        {
                            "name": "byKey",
                            "type": "string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "Array<UxErrorFeedback>",
                    "typeParameters": [],
                    "line": 27,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "byKey",
                            "type": "string",
                            "optional": true,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": [],
            "implements": [
                "UxErrorInfo",
                "UxHttpErrorInfo",
                "UxErrorFeedback"
            ]
        },
        {
            "name": "UxLinkLegacy",
            "id": "class-UxLinkLegacy-2665b136a9b9db68b53781e85a9395389442ac45fd0f84676d514c0288282db569a17c33d80a9ca8b74a447a90382c0b6c8c8b3302221585d45098899936da9b",
            "file": "packages/base/src/lib/ux-models/ux-link-legacy.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "export class UxBadgeLegacy {\n    label: string;\n    typeClass = 'secondary';\n\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n    }\n}\n\nexport class UxLinkLegacy<METADATA = unknown> {\n    id: string;\n    label: string;\n    ariaIconLabel: string;\n    subLabel: string;\n    typeLabel: string;\n    typeLabelClass: string;\n    url: string;\n    urlExternal: string;\n    urlExternalTarget = '_blank';\n    disabled = false;\n    children: UxLinkLegacy<METADATA>[];\n    parent: UxLinkLegacy<METADATA>;\n    iconClass: string;\n    iconTypeClass: string;\n    hasIconBg = false;\n    active = false;\n    metadata: METADATA;\n    visible = true;\n    expanded = false;\n    command: () => void;\n    hasMarker = false;\n    markerTypeClass: string;\n    hasTag = false;\n    tagTypeClass: string;\n    tagLabel: string;\n    tagCount: string;\n    badgeTypeClass = 'secondary';\n    badgeLabel: string;\n    badges: UxBadgeLegacy[];\n    tooltipLabel: string;\n    typeClass: string;\n    isHome = false;\n    isSeparator = false;\n    isScreenReaderClickable = false;\n    allowedRightId: string;\n    allowedRightIds: string[];\n    deniedRightId: string;\n    deniedRightIds: string[];\n    selected = false;\n    indeterminate = false;\n    e2eAttr: string;\n    category: string;\n    constructor(values: object = {}) {\n        Object.assign(this, values);\n        if (this.id === null || this.id === undefined) {\n            this.id = 'no_id';\n        }\n        this.e2eAttr = 'ux-link-e2e-' + this.id;\n    }\n    get hasChildren(): boolean {\n        return this.children != null;\n    }\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "values",
                        "type": "object",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}"
                    }
                ],
                "line": 52,
                "jsdoctags": [
                    {
                        "name": "values",
                        "type": "object",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "defaultValue": "{}",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "active",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 26
                },
                {
                    "name": "allowedRightId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 45
                },
                {
                    "name": "allowedRightIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 46
                },
                {
                    "name": "ariaIconLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 13
                },
                {
                    "name": "badgeLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 38
                },
                {
                    "name": "badges",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxBadgeLegacy[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 39
                },
                {
                    "name": "badgeTypeClass",
                    "defaultValue": "'secondary'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 37
                },
                {
                    "name": "category",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 52
                },
                {
                    "name": "children",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxLinkLegacy<METADATA>[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 21
                },
                {
                    "name": "command",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "function",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 30
                },
                {
                    "name": "deniedRightId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 47
                },
                {
                    "name": "deniedRightIds",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 48
                },
                {
                    "name": "disabled",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 20
                },
                {
                    "name": "e2eAttr",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 51
                },
                {
                    "name": "expanded",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 29
                },
                {
                    "name": "hasIconBg",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 25
                },
                {
                    "name": "hasMarker",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 31
                },
                {
                    "name": "hasTag",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 33
                },
                {
                    "name": "iconClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 23
                },
                {
                    "name": "iconTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 24
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 11
                },
                {
                    "name": "indeterminate",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 50
                },
                {
                    "name": "isHome",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 42
                },
                {
                    "name": "isScreenReaderClickable",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 44
                },
                {
                    "name": "isSeparator",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 43
                },
                {
                    "name": "label",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 12
                },
                {
                    "name": "markerTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 32
                },
                {
                    "name": "metadata",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "METADATA",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 27
                },
                {
                    "name": "parent",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxLinkLegacy<METADATA>",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 22
                },
                {
                    "name": "selected",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 49
                },
                {
                    "name": "subLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 14
                },
                {
                    "name": "tagCount",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 36
                },
                {
                    "name": "tagLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 35
                },
                {
                    "name": "tagTypeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 34
                },
                {
                    "name": "tooltipLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 40
                },
                {
                    "name": "typeClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 41
                },
                {
                    "name": "typeLabel",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 15
                },
                {
                    "name": "typeLabelClass",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 16
                },
                {
                    "name": "url",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 17
                },
                {
                    "name": "urlExternal",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 18
                },
                {
                    "name": "urlExternalTarget",
                    "defaultValue": "'_blank'",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 19
                },
                {
                    "name": "visible",
                    "defaultValue": "true",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 28
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "accessors": {
                "hasChildren": {
                    "name": "hasChildren",
                    "getSignature": {
                        "name": "hasChildren",
                        "type": "boolean",
                        "returnType": "boolean",
                        "line": 60
                    }
                }
            },
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxPublishErrorFeedbackEvent",
            "id": "class-UxPublishErrorFeedbackEvent-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "err",
                        "type": "UxErrorOutput",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "id",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "accumulate",
                        "type": "boolean",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 162,
                "jsdoctags": [
                    {
                        "name": "err",
                        "type": "UxErrorOutput",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "id",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "groupId",
                        "type": "string",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "accumulate",
                        "type": "boolean",
                        "optional": true,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "accumulate",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 163,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "err",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxErrorOutput",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 163,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "groupId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 163,
                    "modifierKind": [
                        125
                    ]
                },
                {
                    "name": "id",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 163,
                    "modifierKind": [
                        125
                    ]
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": []
        },
        {
            "name": "UxValidationErrorClass",
            "id": "class-UxValidationErrorClass-a68197a3eaa39d4b7bb6fef00903f2119f42138c29c0ec23b6c68702b2d23284d5446044739ac12cde95ab18110221f5be7aa9977534a363d1f68b3eff489d99",
            "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
            "deprecated": false,
            "deprecationMessage": "",
            "type": "class",
            "sourceCode": "import { HttpErrorResponse } from '@angular/common/http';\n\nexport class UxErrorOutput<DETAILS = unknown> implements UxErrorInfo, UxHttpErrorInfo, UxErrorFeedback {\n    code?: string;\n    requestId?: string;\n    doc?: string;\n    details?: DETAILS;\n    severity = UxMessageSeverity.danger;\n    msgId: string;\n    description: string;\n    errGroupMap?: Array<UxErrorGroupMap>;\n    subErrors?: SubErrors;\n\n    constructor(\n        info: UxErrorInfo & UxHttpErrorInfo,\n        errorFeedback: UxErrorFeedback,\n        subErrors?: SubErrors,\n        errGroupMap?: Array<UxErrorGroupMap>,\n    ) {\n        if (!subErrors) {\n            Object.assign(this, { ...info }, { ...errorFeedback });\n        } else {\n            Object.assign(this, { ...info }, { ...errorFeedback }, { subErrors }, { errGroupMap });\n        }\n    }\n\n    getFeedBacks(byKey?: string): Array<UxErrorFeedback> {\n        if (this.subErrors) {\n            return this.subErrors\n                .filter((err) => {\n                    if (err instanceof UxValidationErrorClass) {\n                        if (byKey && err.attributes) {\n                            return this.checkAttribute(byKey, err.attributes);\n                        } else if (byKey && !err.attributes) {\n                            return false;\n                        } else if (!byKey) {\n                            return true;\n                        }\n                    }\n                })\n                .map((err) => ({\n                    msgId: err.msgId,\n                    description: err.description,\n                    severity: err.severity,\n                    attributes: err.attributes,\n                    errGroupId: err.errGroupId,\n                    br: err.br,\n                    doc: err.doc,\n                }));\n        } else {\n            if (!byKey) {\n                return [{ msgId: this.msgId, description: this.description, severity: this.severity, doc: this.doc }];\n            } else {\n                return [];\n            }\n        }\n    }\n\n    private checkAttribute(key: string, attributes: UxValidationErrorAttributes): boolean {\n        return attributes.some((attr) => key === attr.key);\n    }\n}\n\nexport class UxErrorGroupOnClickEvent {\n    constructor(public groupId: string, public err?: UxErrorFeedback) {}\n}\n\nexport interface UxErrorFollowMap {\n    [groupId: string]: boolean;\n}\n\nexport type UxErrorGroupMap = {\n    id: string;\n    description: string;\n    severity: UxMessageSeverity;\n};\n\nexport type UxErrorGroupItem = {\n    groupId: string;\n    description: string;\n    severity: UxMessageSeverity;\n    errors: Array<UxErrorFeedback>;\n};\n\n// T extends U ? X : Y\n// Let's look at the ways to do detailed generic, like error\nexport interface UxErrorInfo<DETAILS = unknown> {\n    code?: string;\n    doc?: string;\n    details?: DETAILS;\n}\n\nexport interface UxHttpErrorInfo {\n    requestId?: string;\n}\n\nexport interface UxErrorFeedback extends UxErrorMessage {\n    severity?: UxMessageSeverity;\n    attributes?: UxValidationErrorAttributes;\n    errGroupId?: string;\n    br?: string;\n    doc?: string;\n}\n\nexport interface UxErrorMessage {\n    msgId: string;\n    description?: string;\n}\n\nexport type UxValidationErrorAttributes = Array<UxValidationErrorAttribute>;\n\nexport interface UxValidationErrorAttribute {\n    key: string | Array<string>;\n    value: string;\n}\n\nexport enum UxMessageSeverity {\n    info = 'info',\n    warning = 'warning',\n    danger = 'danger',\n    success = 'success',\n}\n\nexport enum UxMessageSeverityMetrics {\n    info = 0,\n    warning = 1,\n    danger = 2,\n    success = 3,\n}\n\nexport type SubErrors = Array<UxValidationErrorClass>;\n\nexport class UxValidationErrorClass<Details = object> implements UxErrorInfo<Details>, UxErrorFeedback {\n    msgId: string;\n    description?: string;\n    severity = UxMessageSeverity.danger;\n    attributes: UxValidationErrorAttributes;\n    br?: string;\n    doc?: string;\n    details?: Details;\n    errGroupId?: string;\n\n    constructor(data: UxValidationErrorClass) {\n        Object.assign(this, data);\n    }\n}\n\nexport type ErrorMappingHandler<Error = object> = (err: Error) => UxErrorOutput;\n\nexport interface UxHttpErrorResponse extends HttpErrorResponse {\n    uxHttpErrorOutput: UxErrorOutput;\n}\n\nexport const transformToUxHttpResponse = (resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n};\n\nexport type UxErrorFeedbackEventType = UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent;\n\nexport class UxPublishErrorFeedbackEvent {\n    constructor(public err: UxErrorOutput, public id?: string, public groupId?: string, public accumulate?: boolean) {}\n}\n\nexport class UxClearErrorFeedbackEvent {\n    constructor(public id?: string, public groupId?: string) {}\n}\n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "data",
                        "type": "UxValidationErrorClass",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 141,
                "jsdoctags": [
                    {
                        "name": "data",
                        "type": "UxValidationErrorClass",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "inputsClass": [],
            "outputsClass": [],
            "properties": [
                {
                    "name": "attributes",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UxValidationErrorAttributes",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 137
                },
                {
                    "name": "br",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 138
                },
                {
                    "name": "description",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 135
                },
                {
                    "name": "details",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Details",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 140
                },
                {
                    "name": "doc",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 139
                },
                {
                    "name": "errGroupId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": true,
                    "description": "",
                    "line": 141
                },
                {
                    "name": "msgId",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 134
                },
                {
                    "name": "severity",
                    "defaultValue": "UxMessageSeverity.danger",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 136
                }
            ],
            "methods": [],
            "indexSignatures": [],
            "extends": [],
            "hostBindings": [],
            "hostListeners": [],
            "implements": [
                "UxErrorInfo",
                "UxErrorFeedback"
            ]
        }
    ],
    "directives": [],
    "components": [
        {
            "name": "TemplatePlaygroundComponent",
            "id": "component-TemplatePlaygroundComponent-adc0097964f185f2079637fe50fb71cc9bfa4e1abd1a0de21565f9554688ae342f997cbff2cc1ffb32d52a0d45c76482a9d8c59ad2d031250418b7e4304a527c",
            "file": "packages/base/dist/docs/template-playground/template-playground.component.ts",
            "encapsulation": [],
            "entryComponents": [],
            "inputs": [],
            "outputs": [],
            "providers": [],
            "selector": "template-playground-root",
            "styleUrls": [],
            "styles": [
                "\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  "
            ],
            "template": "<div class=\"template-playground\">\n  <div class=\"template-playground-header\">\n    <h2>Template Playground</h2>\n    <div class=\"template-playground-status\">\n      <span *ngIf=\"sessionId\" class=\"session-info\">Session: {{sessionId.substring(0, 8)}}...</span>\n      <span *ngIf=\"saving\" class=\"saving-indicator\">Saving...</span>\n      <span *ngIf=\"lastSaved\" class=\"last-saved\">Last saved: {{lastSaved | date:'short'}}</span>\n    </div>\n    <div class=\"template-playground-actions\">\n      <button class=\"btn btn-secondary\" (click)=\"toggleConfigPanel()\">⚙️ Config</button>\n      <button class=\"btn btn-primary\" (click)=\"resetToDefault()\">Reset to Default</button>\n      <button class=\"btn btn-success\" (click)=\"exportZip()\">Download Templates</button>\n    </div>\n  </div>\n\n  <!-- Configuration Panel -->\n  <div class=\"config-panel\" [class.collapsed]=\"!showConfigPanel\">\n    <h3>CompoDoc Configuration</h3>\n    <div class=\"config-options\">\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.hideGenerator\" (change)=\"updateConfig()\"> Hide Generator</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.hideDarkModeToggle\" (change)=\"updateConfig()\"> Hide Dark Mode Toggle</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.minimal\" (change)=\"updateConfig()\"> Minimal Mode</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableOverview\" (change)=\"updateConfig()\"> Disable Overview</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableFilePath\" (change)=\"updateConfig()\"> Disable File Path</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSourceCode\" (change)=\"updateConfig()\"> Disable Source Code</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableGraph\" (change)=\"updateConfig()\"> Disable Graph</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableMainGraph\" (change)=\"updateConfig()\"> Disable Main Graph</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableRoutesGraph\" (change)=\"updateConfig()\"> Disable Routes Graph</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableCoverage\" (change)=\"updateConfig()\"> Disable Coverage</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSearch\" (change)=\"updateConfig()\"> Disable Search</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDependencies\" (change)=\"updateConfig()\"> Disable Dependencies</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disablePrivate\" (change)=\"updateConfig()\"> Disable Private</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProtected\" (change)=\"updateConfig()\"> Disable Protected</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableInternal\" (change)=\"updateConfig()\"> Disable Internal</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableLifeCycleHooks\" (change)=\"updateConfig()\"> Disable Lifecycle Hooks</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableConstructors\" (change)=\"updateConfig()\"> Disable Constructors</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProperties\" (change)=\"updateConfig()\"> Disable Properties</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDomTree\" (change)=\"updateConfig()\"> Disable DOM Tree</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableTemplateTab\" (change)=\"updateConfig()\"> Disable Template Tab</label>\n      <label><input type=\"checkbox\" [(ngModel)]=\"config.disableStyleTab\" (change)=\"updateConfig()\"> Disable Style Tab</label>\n    </div>\n  </div>\n\n  <div class=\"template-playground-body\">\n    <div class=\"template-playground-sidebar\">\n      <div class=\"template-file-list\">\n        <h3>Templates</h3>\n        <ul class=\"file-list\">\n          <li *ngFor=\"let template of templates; trackBy: trackByName\"\n              [class.active]=\"selectedFile === template\"\n              (click)=\"selectFile(template)\">\n            <i class=\"file-icon ion-document-text\"></i>\n            {{template.name}}\n            <span class=\"file-type\">{{template.type}}</span>\n          </li>\n        </ul>\n\n        <div *ngIf=\"templates.length === 0\" class=\"loading-templates\">\n          Loading templates...\n        </div>\n      </div>\n    </div>\n\n    <div class=\"template-playground-main\">\n      <div class=\"template-playground-editor\">\n        <div class=\"editor-header\" *ngIf=\"selectedFile\">\n          <h4>{{selectedFile.path}}</h4>\n          <span class=\"file-type-badge\">{{selectedFile.type}}</span>\n        </div>\n        <div #editorContainer class=\"editor-container\"></div>\n      </div>\n\n      <div class=\"template-playground-preview\">\n        <div class=\"preview-header\">\n          <h4>Live Preview</h4>\n          <button class=\"btn btn-sm btn-secondary\" (click)=\"refreshPreview()\">🔄 Refresh</button>\n        </div>\n        <iframe #previewFrame class=\"preview-frame\" [src]=\"previewUrl\"></iframe>\n      </div>\n    </div>\n  </div>\n</div>\n",
            "templateUrl": [],
            "viewProviders": [],
            "hostDirectives": [],
            "inputsClass": [],
            "outputsClass": [],
            "propertiesClass": [
                {
                    "name": "config",
                    "defaultValue": "{}",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "CompoDocConfig",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 399
                },
                {
                    "name": "editorContainer",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ElementRef",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 393,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'editorContainer', {static: true}"
                        }
                    ],
                    "modifierKind": [
                        171
                    ]
                },
                {
                    "name": "lastSaved",
                    "defaultValue": "null",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Date | null",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 402
                },
                {
                    "name": "previewFrame",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ElementRef",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 394,
                    "decorators": [
                        {
                            "name": "ViewChild",
                            "stringifiedArguments": "'previewFrame', {static: true}"
                        }
                    ],
                    "modifierKind": [
                        171
                    ]
                },
                {
                    "name": "saving",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 401
                },
                {
                    "name": "selectedFile",
                    "defaultValue": "null",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Template | null",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 398
                },
                {
                    "name": "sessionId",
                    "defaultValue": "''",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "string",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 396
                },
                {
                    "name": "showConfigPanel",
                    "defaultValue": "false",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "boolean",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 400
                },
                {
                    "name": "templates",
                    "defaultValue": "[]",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Template[]",
                    "indexKey": "",
                    "optional": false,
                    "description": "",
                    "line": 397
                }
            ],
            "methodsClass": [
                {
                    "name": "exportZip",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 562,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "initializeEditor",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 468,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnDestroy",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 429,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "ngOnInit",
                    "args": [],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 418,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                },
                {
                    "name": "refreshPreview",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 548,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "resetToDefault",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 554,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "selectFile",
                    "args": [
                        {
                            "name": "template",
                            "type": "Template",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "any",
                    "typeParameters": [],
                    "line": 477,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ],
                    "jsdoctags": [
                        {
                            "name": "template",
                            "type": "Template",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "toggleConfigPanel",
                    "args": [],
                    "optional": false,
                    "returnType": "void",
                    "typeParameters": [],
                    "line": 544,
                    "deprecated": false,
                    "deprecationMessage": ""
                },
                {
                    "name": "trackByName",
                    "args": [
                        {
                            "name": "index",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "item",
                            "type": "Template",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "optional": false,
                    "returnType": "string",
                    "typeParameters": [],
                    "line": 611,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "jsdoctags": [
                        {
                            "name": "index",
                            "type": "number",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "item",
                            "type": "Template",
                            "optional": false,
                            "dotDotDotToken": false,
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "updateConfig",
                    "args": [],
                    "optional": false,
                    "returnType": "Promise<void>",
                    "typeParameters": [],
                    "line": 528,
                    "deprecated": false,
                    "deprecationMessage": "",
                    "modifierKind": [
                        134
                    ]
                }
            ],
            "deprecated": false,
            "deprecationMessage": "",
            "hostBindings": [],
            "hostListeners": [],
            "standalone": false,
            "imports": [],
            "description": "",
            "rawdescription": "\n",
            "type": "component",
            "sourceCode": "import { Component, OnInit, ViewChild, ElementRef, OnDestroy } from '@angular/core';\nimport { HttpClient } from '@angular/common/http';\nimport { TemplateEditorService } from './template-editor.service';\nimport { ZipExportService } from './zip-export.service';\nimport { HbsRenderService } from './hbs-render.service';\n\ninterface Template {\n  name: string;\n  path: string;\n  type: 'template' | 'partial';\n}\n\ninterface Session {\n  sessionId: string;\n  success: boolean;\n  message: string;\n}\n\ninterface CompoDocConfig {\n  hideGenerator?: boolean;\n  disableSourceCode?: boolean;\n  disableGraph?: boolean;\n  disableCoverage?: boolean;\n  disablePrivate?: boolean;\n  disableProtected?: boolean;\n  disableInternal?: boolean;\n  disableLifeCycleHooks?: boolean;\n  disableConstructors?: boolean;\n  disableRoutesGraph?: boolean;\n  disableSearch?: boolean;\n  disableDependencies?: boolean;\n  disableProperties?: boolean;\n  disableDomTree?: boolean;\n  disableTemplateTab?: boolean;\n  disableStyleTab?: boolean;\n  disableMainGraph?: boolean;\n  disableFilePath?: boolean;\n  disableOverview?: boolean;\n  hideDarkModeToggle?: boolean;\n  minimal?: boolean;\n  customFavicon?: string;\n  includes?: string;\n  includesName?: string;\n}\n\n@Component({\n  selector: 'template-playground-root',\n  template: `\n    <div class=\"template-playground\">\n      <div class=\"template-playground-header\">\n        <h2>Template Playground</h2>\n        <div class=\"template-playground-status\">\n          <span *ngIf=\"sessionId\" class=\"session-info\">Session: {{sessionId.substring(0, 8)}}...</span>\n          <span *ngIf=\"saving\" class=\"saving-indicator\">Saving...</span>\n          <span *ngIf=\"lastSaved\" class=\"last-saved\">Last saved: {{lastSaved | date:'short'}}</span>\n        </div>\n        <div class=\"template-playground-actions\">\n          <button class=\"btn btn-secondary\" (click)=\"toggleConfigPanel()\">⚙️ Config</button>\n          <button class=\"btn btn-primary\" (click)=\"resetToDefault()\">Reset to Default</button>\n          <button class=\"btn btn-success\" (click)=\"exportZip()\">Download Templates</button>\n        </div>\n      </div>\n\n      <!-- Configuration Panel -->\n      <div class=\"config-panel\" [class.collapsed]=\"!showConfigPanel\">\n        <h3>CompoDoc Configuration</h3>\n        <div class=\"config-options\">\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideGenerator\" (change)=\"updateConfig()\"> Hide Generator</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.hideDarkModeToggle\" (change)=\"updateConfig()\"> Hide Dark Mode Toggle</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.minimal\" (change)=\"updateConfig()\"> Minimal Mode</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableOverview\" (change)=\"updateConfig()\"> Disable Overview</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableFilePath\" (change)=\"updateConfig()\"> Disable File Path</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSourceCode\" (change)=\"updateConfig()\"> Disable Source Code</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableGraph\" (change)=\"updateConfig()\"> Disable Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableMainGraph\" (change)=\"updateConfig()\"> Disable Main Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableRoutesGraph\" (change)=\"updateConfig()\"> Disable Routes Graph</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableCoverage\" (change)=\"updateConfig()\"> Disable Coverage</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableSearch\" (change)=\"updateConfig()\"> Disable Search</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDependencies\" (change)=\"updateConfig()\"> Disable Dependencies</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disablePrivate\" (change)=\"updateConfig()\"> Disable Private</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProtected\" (change)=\"updateConfig()\"> Disable Protected</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableInternal\" (change)=\"updateConfig()\"> Disable Internal</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableLifeCycleHooks\" (change)=\"updateConfig()\"> Disable Lifecycle Hooks</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableConstructors\" (change)=\"updateConfig()\"> Disable Constructors</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableProperties\" (change)=\"updateConfig()\"> Disable Properties</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableDomTree\" (change)=\"updateConfig()\"> Disable DOM Tree</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableTemplateTab\" (change)=\"updateConfig()\"> Disable Template Tab</label>\n          <label><input type=\"checkbox\" [(ngModel)]=\"config.disableStyleTab\" (change)=\"updateConfig()\"> Disable Style Tab</label>\n        </div>\n      </div>\n\n      <div class=\"template-playground-body\">\n        <div class=\"template-playground-sidebar\">\n          <div class=\"template-file-list\">\n            <h3>Templates</h3>\n            <ul class=\"file-list\">\n              <li *ngFor=\"let template of templates; trackBy: trackByName\"\n                  [class.active]=\"selectedFile === template\"\n                  (click)=\"selectFile(template)\">\n                <i class=\"file-icon ion-document-text\"></i>\n                {{template.name}}\n                <span class=\"file-type\">{{template.type}}</span>\n              </li>\n            </ul>\n\n            <div *ngIf=\"templates.length === 0\" class=\"loading-templates\">\n              Loading templates...\n            </div>\n          </div>\n        </div>\n\n        <div class=\"template-playground-main\">\n          <div class=\"template-playground-editor\">\n            <div class=\"editor-header\" *ngIf=\"selectedFile\">\n              <h4>{{selectedFile.path}}</h4>\n              <span class=\"file-type-badge\">{{selectedFile.type}}</span>\n            </div>\n            <div #editorContainer class=\"editor-container\"></div>\n          </div>\n\n          <div class=\"template-playground-preview\">\n            <div class=\"preview-header\">\n              <h4>Live Preview</h4>\n              <button class=\"btn btn-sm btn-secondary\" (click)=\"refreshPreview()\">🔄 Refresh</button>\n            </div>\n            <iframe #previewFrame class=\"preview-frame\" [src]=\"previewUrl\"></iframe>\n          </div>\n        </div>\n      </div>\n    </div>\n  `,\n  styles: [`\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  `]\n})\nexport class TemplatePlaygroundComponent implements OnInit, OnDestroy {\n  @ViewChild('editorContainer', { static: true }) editorContainer!: ElementRef;\n  @ViewChild('previewFrame', { static: true }) previewFrame!: ElementRef;\n\n  sessionId: string = '';\n  templates: Template[] = [];\n  selectedFile: Template | null = null;\n  config: CompoDocConfig = {};\n  showConfigPanel: boolean = false;\n  saving: boolean = false;\n  lastSaved: Date | null = null;\n\n  private saveTimeout?: number;\n  private readonly SAVE_DELAY = 300; // 300ms debounce\n\n  get previewUrl(): string {\n    return this.sessionId ? `/api/session/${this.sessionId}/docs/` : '';\n  }\n\n  constructor(\n    private http: HttpClient,\n    private editorService: TemplateEditorService,\n    private zipService: ZipExportService,\n    private hbsService: HbsRenderService\n  ) {}\n\n  async ngOnInit() {\n    try {\n      await this.createSession();\n      await this.loadSessionTemplates();\n      await this.loadSessionConfig();\n      this.initializeEditor();\n    } catch (error) {\n      console.error('Error initializing template playground:', error);\n    }\n  }\n\n  ngOnDestroy() {\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n  }\n\n  private async createSession(): Promise<void> {\n    const response = await this.http.post<Session>('/api/session/create', {}).toPromise();\n    if (response && response.success) {\n      this.sessionId = response.sessionId;\n      console.log('Session created:', this.sessionId);\n    } else {\n      throw new Error('Failed to create session');\n    }\n  }\n\n  private async loadSessionTemplates(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{templates: Template[], success: boolean}>(`/api/session/${this.sessionId}/templates`).toPromise();\n    if (response && response.success) {\n      this.templates = response.templates;\n\n      // Auto-select the first template\n      if (this.templates.length > 0 && !this.selectedFile) {\n        this.selectFile(this.templates[0]);\n      }\n    }\n  }\n\n  private async loadSessionConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    const response = await this.http.get<{config: CompoDocConfig, success: boolean}>(`/api/session/${this.sessionId}/config`).toPromise();\n    if (response && response.success) {\n      this.config = response.config;\n    }\n  }\n\n  initializeEditor() {\n    this.editorService.initializeEditor(this.editorContainer.nativeElement);\n\n    // Set up debounced save on content change\n    this.editorService.setOnChangeCallback((content: string) => {\n      this.scheduleAutoSave(content);\n    });\n  }\n\n  async selectFile(template: Template) {\n    this.selectedFile = template;\n\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.get<{content: string, success: boolean}>(`/api/session/${this.sessionId}/template/${template.path}`).toPromise();\n      if (response && response.success) {\n        this.editorService.setEditorContent(response.content, template.type === 'template' ? 'handlebars' : 'handlebars');\n      }\n    } catch (error) {\n      console.error('Error loading template:', error);\n    }\n  }\n\n  private scheduleAutoSave(content: string): void {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    // Clear existing timeout\n    if (this.saveTimeout) {\n      clearTimeout(this.saveTimeout);\n    }\n\n    // Set saving indicator\n    this.saving = true;\n\n    // Schedule new save\n    this.saveTimeout = window.setTimeout(async () => {\n      try {\n        await this.saveTemplate(content);\n        this.saving = false;\n        this.lastSaved = new Date();\n      } catch (error) {\n        console.error('Error saving template:', error);\n        this.saving = false;\n      }\n    }, this.SAVE_DELAY);\n  }\n\n  private async saveTemplate(content: string): Promise<void> {\n    if (!this.selectedFile || !this.sessionId) return;\n\n    const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/template/${this.selectedFile.path}`, {\n      content\n    }).toPromise();\n\n    if (!response || !response.success) {\n      throw new Error('Failed to save template');\n    }\n  }\n\n  async updateConfig(): Promise<void> {\n    if (!this.sessionId) return;\n\n    try {\n      const response = await this.http.post<{success: boolean}>(`/api/session/${this.sessionId}/config`, {\n        config: this.config\n      }).toPromise();\n\n      if (response && response.success) {\n        // Config updated, documentation will be regenerated automatically\n      }\n    } catch (error) {\n      console.error('Error updating config:', error);\n    }\n  }\n\n  toggleConfigPanel(): void {\n    this.showConfigPanel = !this.showConfigPanel;\n  }\n\n  refreshPreview(): void {\n    if (this.previewFrame?.nativeElement) {\n      this.previewFrame.nativeElement.src = this.previewFrame.nativeElement.src;\n    }\n  }\n\n  resetToDefault(): void {\n    // Implementation for resetting to default templates\n    if (confirm('Are you sure you want to reset all templates to their default values? This action cannot be undone.')) {\n      // TODO: Implement reset functionality\n      console.log('Reset to default templates');\n    }\n  }\n\n  async exportZip(): Promise<void> {\n    try {\n      if (!this.sessionId) {\n        console.error('No active session. Please refresh the page and try again.');\n        return;\n      }\n\n      console.log('Creating template package...');\n\n      // Call server-side ZIP creation endpoint for all templates\n      const response = await this.http.post(`/api/session/${this.sessionId}/download-all-templates`, {}, {\n        responseType: 'blob',\n        observe: 'response'\n      }).toPromise();\n\n      if (!response || !response.body) {\n        throw new Error('Failed to create template package');\n      }\n\n      // Get the ZIP file as a blob\n      const zipBlob = response.body;\n\n      // Get filename from response headers or construct it\n      const contentDisposition = response.headers.get('Content-Disposition');\n      let filename = `compodoc-templates-${this.sessionId}.zip`;\n\n      if (contentDisposition) {\n        const filenameMatch = contentDisposition.match(/filename=\"([^\"]+)\"/);\n        if (filenameMatch) {\n          filename = filenameMatch[1];\n        }\n      }\n\n      // Create download link and trigger download\n      const url = URL.createObjectURL(zipBlob);\n      const a = document.createElement('a');\n      a.href = url;\n      a.download = filename;\n      document.body.appendChild(a);\n      a.click();\n      document.body.removeChild(a);\n      URL.revokeObjectURL(url);\n\n      console.log('Template package downloaded successfully!');\n    } catch (error) {\n      console.error('Error downloading template package:', error);\n    }\n  }\n\n  trackByName(index: number, item: Template): string {\n    return item.name;\n  }\n}\n",
            "assetsDirs": [],
            "styleUrlsData": "",
            "stylesData": "\n    .template-playground {\n      display: flex;\n      flex-direction: column;\n      height: 100vh;\n      font-family: -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, sans-serif;\n    }\n\n    .template-playground-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 1rem 2rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .template-playground-status {\n      display: flex;\n      align-items: center;\n      gap: 1rem;\n      font-size: 0.875rem;\n    }\n\n    .session-info {\n      color: #6c757d;\n      font-family: monospace;\n    }\n\n    .saving-indicator {\n      color: #ffc107;\n      font-weight: bold;\n    }\n\n    .last-saved {\n      color: #28a745;\n    }\n\n    .template-playground-actions {\n      display: flex;\n      gap: 0.5rem;\n    }\n\n    .config-panel {\n      background: #e9ecef;\n      padding: 1rem 2rem;\n      border-bottom: 1px solid #dee2e6;\n      transition: all 0.3s ease;\n      max-height: 200px;\n      overflow: hidden;\n    }\n\n    .config-panel.collapsed {\n      max-height: 0;\n      padding: 0 2rem;\n    }\n\n    .config-options {\n      display: grid;\n      grid-template-columns: repeat(auto-fit, minmax(200px, 1fr));\n      gap: 0.5rem;\n      margin-top: 0.5rem;\n    }\n\n    .config-options label {\n      display: flex;\n      align-items: center;\n      gap: 0.5rem;\n      font-size: 0.875rem;\n    }\n\n    .template-playground-body {\n      display: flex;\n      flex: 1;\n      overflow: hidden;\n    }\n\n    .template-playground-sidebar {\n      width: 250px;\n      background: #f8f9fa;\n      border-right: 1px solid #dee2e6;\n      overflow-y: auto;\n    }\n\n    .template-file-list {\n      padding: 1rem;\n    }\n\n    .template-file-list h3 {\n      margin: 0 0 0.5rem 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n      color: #495057;\n      text-transform: uppercase;\n      letter-spacing: 0.5px;\n    }\n\n    .file-list {\n      list-style: none;\n      padding: 0;\n      margin: 0 0 1.5rem 0;\n    }\n\n    .file-list li {\n      display: flex;\n      align-items: center;\n      padding: 0.5rem;\n      cursor: pointer;\n      border-radius: 4px;\n      font-size: 0.875rem;\n      transition: background-color 0.15s ease;\n    }\n\n    .file-list li:hover {\n      background: #e9ecef;\n    }\n\n    .file-list li.active {\n      background: #007bff;\n      color: white;\n    }\n\n    .file-icon {\n      margin-right: 0.5rem;\n      opacity: 0.7;\n    }\n\n    .file-type {\n      margin-left: auto;\n      font-size: 0.75rem;\n      opacity: 0.7;\n      text-transform: uppercase;\n    }\n\n    .loading-templates {\n      text-align: center;\n      color: #6c757d;\n      font-style: italic;\n      padding: 2rem;\n    }\n\n    .template-playground-main {\n      flex: 1;\n      display: flex;\n      overflow: hidden;\n    }\n\n    .template-playground-editor {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n      border-right: 1px solid #dee2e6;\n    }\n\n    .editor-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .editor-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .file-type-badge {\n      background: #6c757d;\n      color: white;\n      padding: 0.125rem 0.5rem;\n      border-radius: 12px;\n      font-size: 0.75rem;\n      text-transform: uppercase;\n    }\n\n    .editor-container {\n      flex: 1;\n      position: relative;\n    }\n\n    .template-playground-preview {\n      width: 50%;\n      display: flex;\n      flex-direction: column;\n    }\n\n    .preview-header {\n      display: flex;\n      justify-content: space-between;\n      align-items: center;\n      padding: 0.75rem 1rem;\n      background: #f8f9fa;\n      border-bottom: 1px solid #dee2e6;\n    }\n\n    .preview-header h4 {\n      margin: 0;\n      font-size: 0.875rem;\n      font-weight: 600;\n    }\n\n    .preview-frame {\n      flex: 1;\n      border: none;\n      background: white;\n    }\n\n    .btn {\n      padding: 0.375rem 0.75rem;\n      border: 1px solid transparent;\n      border-radius: 0.25rem;\n      font-size: 0.875rem;\n      font-weight: 500;\n      text-decoration: none;\n      cursor: pointer;\n      transition: all 0.15s ease;\n    }\n\n    .btn-primary {\n      background: #007bff;\n      border-color: #007bff;\n      color: white;\n    }\n\n    .btn-primary:hover {\n      background: #0056b3;\n      border-color: #004085;\n    }\n\n    .btn-secondary {\n      background: #6c757d;\n      border-color: #6c757d;\n      color: white;\n    }\n\n    .btn-secondary:hover {\n      background: #545b62;\n      border-color: #4e555b;\n    }\n\n    .btn-success {\n      background: #28a745;\n      border-color: #28a745;\n      color: white;\n    }\n\n    .btn-success:hover {\n      background: #1e7e34;\n      border-color: #1c7430;\n    }\n\n    .btn-sm {\n      padding: 0.25rem 0.5rem;\n      font-size: 0.75rem;\n    }\n  \n",
            "constructorObj": {
                "name": "constructor",
                "description": "",
                "deprecated": false,
                "deprecationMessage": "",
                "args": [
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "editorService",
                        "type": "TemplateEditorService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "zipService",
                        "type": "ZipExportService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "hbsService",
                        "type": "HbsRenderService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "line": 409,
                "jsdoctags": [
                    {
                        "name": "http",
                        "type": "HttpClient",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "editorService",
                        "type": "TemplateEditorService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "zipService",
                        "type": "ZipExportService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "hbsService",
                        "type": "HbsRenderService",
                        "optional": false,
                        "dotDotDotToken": false,
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            "extends": [],
            "implements": [
                "OnInit",
                "OnDestroy"
            ],
            "accessors": {
                "previewUrl": {
                    "name": "previewUrl",
                    "getSignature": {
                        "name": "previewUrl",
                        "type": "string",
                        "returnType": "string",
                        "line": 407
                    }
                }
            }
        }
    ],
    "modules": [
        {
            "name": "TemplatePlaygroundModule",
            "id": "module-TemplatePlaygroundModule-a48e698b66bad8be9ff3b78b5db8e15ee6bb54bd2575fdb1bb61a34e76437cc54b2e161854c3d6c97b4c751d05ff3a43b70b87ceffd46d3c5bf53f6f161e3044",
            "description": "",
            "deprecationMessage": "",
            "deprecated": false,
            "file": "packages/base/dist/docs/template-playground/template-playground.module.ts",
            "methods": [],
            "sourceCode": "import { NgModule } from '@angular/core';\nimport { BrowserModule } from '@angular/platform-browser';\nimport { CommonModule } from '@angular/common';\nimport { FormsModule } from '@angular/forms';\nimport { HttpClientModule } from '@angular/common/http';\n\nimport { TemplatePlaygroundComponent } from './template-playground.component';\nimport { TemplateEditorService } from './template-editor.service';\nimport { ZipExportService } from './zip-export.service';\nimport { HbsRenderService } from './hbs-render.service';\n\n@NgModule({\n  declarations: [\n    TemplatePlaygroundComponent\n  ],\n  imports: [\n    BrowserModule,\n    CommonModule,\n    FormsModule,\n    HttpClientModule\n  ],\n  providers: [\n    TemplateEditorService,\n    ZipExportService,\n    HbsRenderService\n  ],\n  bootstrap: [TemplatePlaygroundComponent]\n})\nexport class TemplatePlaygroundModule { }\n",
            "children": [
                {
                    "type": "providers",
                    "elements": [
                        {
                            "name": "HbsRenderService"
                        },
                        {
                            "name": "TemplateEditorService"
                        },
                        {
                            "name": "ZipExportService"
                        }
                    ]
                },
                {
                    "type": "declarations",
                    "elements": [
                        {
                            "name": "TemplatePlaygroundComponent"
                        }
                    ]
                },
                {
                    "type": "imports",
                    "elements": []
                },
                {
                    "type": "exports",
                    "elements": []
                },
                {
                    "type": "bootstrap",
                    "elements": [
                        {
                            "name": "TemplatePlaygroundComponent"
                        }
                    ]
                },
                {
                    "type": "classes",
                    "elements": []
                }
            ]
        }
    ],
    "miscellaneous": {
        "variables": [
            {
                "name": "DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/log/console.appender.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "ConsoleAppenderPrefixConverters",
                "defaultValue": "{\n    '{level}': (event: LogEvent) => event.levelName,\n    '{logger}': (event: LogEvent) => event.loggerName,\n    '{date}': (event: LogEvent) => event.timestamp.toLocaleDateString(),\n    '{time}': (event: LogEvent) => event.timestamp.toLocaleTimeString(),\n}",
                "rawdescription": "Default console prefix converters",
                "description": "<p>Default console prefix converters</p>\n"
            },
            {
                "name": "DEFAULT_XHR_CONFIG",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/util/xhr.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "XHRConfig",
                "defaultValue": "{\n    url: null,\n    method: 'GET',\n    responseType: 'json',\n    headers: {},\n    body: null,\n    withCredentials: false,\n    timeout: 0,\n}",
                "rawdescription": "Default xhr configuration",
                "description": "<p>Default xhr configuration</p>\n"
            },
            {
                "name": "DefaultConfig",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "EuiPaginationConfig",
                "defaultValue": "{\n    totalItems: 0,\n    pageSize: 10,\n    currentPage: 1,\n    pageWindowSize: 5,\n}"
            },
            {
                "name": "EUI_COLORS",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-constants.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "object",
                "defaultValue": "{\n    text: '#333333',\n    default: '#333333',\n    black: '#000000',\n    white: '#ffffff',\n\n    primary: '#004494',\n    primaryDark: '#003e8c',\n    primaryDarker: '#003581',\n    primaryDarkest: '#002d77',\n    primaryDarkester: '#001f65',\n    primaryDarkester2: '#00174c',\n    primaryLight: '#2660a4',\n    primaryLighter: '#4d7cb4',\n    primaryLightest: '#80a2ca',\n    primaryLightester: '#b3c7df',\n    primaryLightester2: '#e0e9f2 ',\n\n    accent: '#ffeb3b',\n    accentDark: '#ffd114',\n    accentDarker: '#fc1',\n    accentDarkest: '#ffc60d',\n    accentDarkester: '#ffbc07',\n    accentDarkester2: '#edad00',\n    accentLight: '#ffdc3a',\n    accentLighter: '#ffe25d',\n    accentLightest: '#ffeb8b',\n    accentLightester: '#fff3b9',\n    accentLightester2: '#fffae3',\n\n    info: '#03a9f4',\n    infoDark: '#039be5',\n    infoDarker: '#0288d1',\n    infoDarkest: '#0277bd',\n    infoDarkester: '#01579b',\n    infoDarkester2: '#003473',\n    infoLight: '#29b6f6',\n    infoLighter: '#4fc3f7',\n    infoLightest: '#81d4fa',\n    infoLightester: '#b3e5fc',\n    infoLightester2: '#e0eef6',\n\n    success: '#4caf50',\n    successDark: '#3f7233',\n    successDarker: '#37672c',\n    successDarkest: '#2f5d24',\n    successDarkester: '#204a17',\n    successDarkester2: '#183711',\n    successLight: '#628e57',\n    successLighter: '#7ea274',\n    successLightest: '#a3bd9c',\n    successLightester: '#c8d7c4',\n    successLightester2: '#e9efe7',\n\n    warning: '#ff9800',\n    warningDark: '#f08d23',\n    warningDarker: '#ee821d',\n    warningDarkest: '#ec7817',\n    warningDarkester: '#e8670e',\n    warningDarkester2: '#d05c0d',\n    warningLight: '#f4a547',\n    warningLighter: '#f6b568',\n    warningLightest: '#f9ca93',\n    warningLightester: '#fbdfbe',\n    warningLightester2: '#fdf2e5',\n\n    danger: '#f44336',\n    dangerDark: '#d61d2b',\n    dangerDarker: '#d01824',\n    dangerDarkest: '#cb141e',\n    dangerDarkester: '#c20b13',\n    dangerDarkester2: '#aa0a11',\n    dangerLight: '#e0424f',\n    dangerLighter: '#e5646e',\n    dangerLightest: '#ed9098',\n    dangerLightester: '#f4bcc1',\n    dangerLightester2: '#fbe4e6',\n\n    grey: '#9e9e9e',\n    greyDark: '#757575',\n    greyDarker: '#616161',\n    greyDarkest: '#424242',\n    greyDarkester: '#212121',\n    greyDarkester2: '#141414',\n    greyLight: '#bdbdbd',\n    greyLighter: '#d2d2d2',\n    greyLightest: '#eeeeee',\n    greyLightester: '#f5f5f5',\n    greyLightester2: '#fafafa',\n}"
            },
            {
                "name": "EUI_DEFAULT_AUTH_CONFIG",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-auth-config.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "EuiAuthConfig",
                "defaultValue": "{\n    isLoggedIn: true,\n    redirectUrl: '',\n    loginPageUrl: '',\n}"
            },
            {
                "name": "getActiveLang",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/i18n.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, string>",
                "defaultValue": "createSelector(getI18nState, (state: I18nState) => state.activeLang)"
            },
            {
                "name": "getApiQueue",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, ApiQueue>",
                "defaultValue": "createSelector(getAppState, (state: AppState) => state.apiQueue)"
            },
            {
                "name": "getApiQueueItem",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(itemId: string): Selector<AppState, ApiQueueItem> =>\n    createSelector(getAppState, (state: AppState) => state.apiQueue[itemId])"
            },
            {
                "name": "getAppConnection",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, boolean>",
                "defaultValue": "createSelector(getAppState, (state: AppState) => state.connected)"
            },
            {
                "name": "getAppLoadedConfigModules",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, LoadedConfigModules>",
                "defaultValue": "(state: CoreState) => state?.app?.loadedConfigModules"
            },
            {
                "name": "getAppLoadedConfigModules",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": true,
                "deprecationMessage": "It will be removed in the future.",
                "type": "Selector<AppState, LoadedConfigModules>",
                "defaultValue": "createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules,\n)",
                "rawdescription": "Returns the loaded config modules from the app state",
                "description": "<p>Returns the loaded config modules from the app state</p>\n"
            },
            {
                "name": "getAppState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(state: CoreState): AppState => state.app"
            },
            {
                "name": "getAppStatus",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, string>",
                "defaultValue": "createSelector(getAppState, (state: AppState) => state.status)"
            },
            {
                "name": "getAppVersion",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, string>",
                "defaultValue": "createSelector(getAppState, (state: AppState) => state.version)"
            },
            {
                "name": "getBrowserDefaultLanguage",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(): string => navigator.language.split('-')[0]",
                "rawdescription": "returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\nit's using the navigator.language, splits by hyphen and get the first part.",
                "description": "<p>returns a language code based on <a href=\"https://tools.ietf.org/rfc/bcp/bcp47.txt\">https://tools.ietf.org/rfc/bcp/bcp47.txt</a> specification. To get the Browser&#39;s\nit&#39;s using the navigator.language, splits by hyphen and get the first part.</p>\n"
            },
            {
                "name": "getBrowserPreferredLanguages",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(): string[] => navigator.languages.map((lang) => lang.split('-')[0])",
                "rawdescription": "returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\nlanguage tags. In the returned array they are ordered by preference with the most preferred language first.\nThe array languages will be lower cased 2 char code.",
                "description": "<p>returns an array of DOMStrings representing the user&#39;s preferred languages. The language is described using BCP 47\nlanguage tags. In the returned array they are ordered by preference with the most preferred language first.\nThe array languages will be lower cased 2 char code.</p>\n"
            },
            {
                "name": "getCurrentModule",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, string>",
                "defaultValue": "createSelector(getAppState, (state: AppState) => state.currentModule)"
            },
            {
                "name": "getI18nLoaderConfig",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n}"
            },
            {
                "name": "getI18nServiceConfig",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config)"
            },
            {
                "name": "getI18nServiceConfigFromBase",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n}"
            },
            {
                "name": "getI18nState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(state: CoreState): I18nState => state.i18n"
            },
            {
                "name": "getLastAddedModule",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                "deprecated": true,
                "deprecationMessage": "It will be removed in the future.",
                "type": "Selector<AppState, string>",
                "defaultValue": "createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules.lastAddedModule,\n)",
                "rawdescription": "Returns the last added module from the app state",
                "description": "<p>Returns the last added module from the app state</p>\n"
            },
            {
                "name": "getLocaleServiceConfigFromBase",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-config/locale.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(baseGlobalConfig: GlobalConfig): LocaleServiceConfig => {\n    const { bindWithTranslate } = baseGlobalConfig.locale;\n    return { bindWithTranslate };\n}",
                "rawdescription": "responsible to extract the attributes \"available\" and \"id\" from the locale configuration",
                "description": "<p>responsible to extract the attributes &quot;available&quot; and &quot;id&quot; from the locale configuration</p>\n"
            },
            {
                "name": "getLocaleState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(state: CoreState): LocaleState => state.locale"
            },
            {
                "name": "getNotificationsList",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/notifications.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<AppState, unknown[]>",
                "defaultValue": "createSelector(\n    getNotificationsState,\n    (state: NotificationsState) => state.list,\n)"
            },
            {
                "name": "getNotificationsState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(state: CoreState): NotificationsState => state.notifications"
            },
            {
                "name": "getUserDashboard",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<UserPreferences<unknown>, unknown>",
                "defaultValue": "createSelector(\n    getUserPreferences,\n    (state: UserPreferences) => state.dashboard,\n)"
            },
            {
                "name": "getUserDetails",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, UserDetails>",
                "defaultValue": "createSelector(getUserState, (state: UserState) => state as UserDetails)"
            },
            {
                "name": "getUserFirstName",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, string>",
                "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.firstName)"
            },
            {
                "name": "getUserFullName",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, string>",
                "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.fullName)"
            },
            {
                "name": "getUserId",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, string>",
                "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.userId)"
            },
            {
                "name": "getUserLang",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<UserPreferences, string>",
                "defaultValue": "createSelector(getUserPreferences, (state: UserPreferences) => state.lang)"
            },
            {
                "name": "getUserLastName",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, string>",
                "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.lastName)"
            },
            {
                "name": "getUserPreferences",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, UserPreferences>",
                "defaultValue": "createSelector(\n    getUserState,\n    (state: UserState) => state.preferences,\n)"
            },
            {
                "name": "getUserRight",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(rightId: string): Selector<CoreState, EuiUserRight> =>\n    createSelector(getUserRights, (state: EuiUserRight[]) => state.find((right) => right && right.id === rightId))"
            },
            {
                "name": "getUserRightPermissions",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(rightId: string): Selector<CoreState, string[]> =>\n    createSelector(getUserRight(rightId), (state: EuiUserRight) => state && state.permissions)"
            },
            {
                "name": "getUserRights",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "Selector<CoreState, EuiUserRight[]>",
                "defaultValue": "createSelector(getUserState, (state: UserState) => state.rights)"
            },
            {
                "name": "getUserState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(state: CoreState): UserState => state.user"
            },
            {
                "name": "Handlebars",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/dist/docs/template-playground/hbs-render.service.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "any"
            },
            {
                "name": "initialAppState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/app.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "AppState",
                "defaultValue": "Object.assign(\n    {},\n    {\n        version: '0.0.0',\n        connected: true,\n        loadedConfigModules: {\n            modulesConfig: {},\n        },\n        status: 'idle',\n        currentModule: '',\n        apiQueue: {},\n    },\n)"
            },
            {
                "name": "initialCoreState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/core.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "CoreState",
                "defaultValue": "Object.assign(\n    {},\n    {\n        app: initialAppState,\n        user: initialUserState,\n        notifications: initialNotificationsState,\n        i18n: initialI18nState,\n        locale: initialLocaleState,\n    },\n)"
            },
            {
                "name": "initialI18nState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/i18n.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "I18nState",
                "defaultValue": "{\n    activeLang: null,\n}"
            },
            {
                "name": "initialLocaleState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/locale.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "LocaleState",
                "defaultValue": "{\n    id: 'en',\n}",
                "rawdescription": "The initial state of the locale state. The default locale is English US ('en').",
                "description": "<p>The initial state of the locale state. The default locale is English US (&#39;en&#39;).</p>\n"
            },
            {
                "name": "initialNotificationsState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/notifications.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "NotificationsState",
                "defaultValue": "{\n    list: [],\n}",
                "rawdescription": "The initial state of the notifications state.",
                "description": "<p>The initial state of the notifications state.</p>\n"
            },
            {
                "name": "initialUserPreferences",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/models/user.models.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "UserPreferences",
                "defaultValue": "Object.assign(\n    {},\n    {\n        lang: null,\n        dashboard: null,\n    },\n)"
            },
            {
                "name": "initialUserState",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-store/state/user.state.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "UserState",
                "defaultValue": "Object.assign(\n    {},\n    {\n        userId: '',\n        firstName: '',\n        lastName: '',\n        fullName: '',\n        preferences: initialUserPreferences,\n        rights: [],\n    },\n)"
            },
            {
                "name": "isObject",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/util/merge.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "<T>(item: T): boolean => item && typeof item === 'object' && !Array.isArray(item)"
            },
            {
                "name": "JSZip",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/dist/docs/template-playground/zip-export.service.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "any"
            },
            {
                "name": "mergeAll",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/util/merge.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "<T>(array: Array<T>): T => array.reduce((prev, next) => mergeDeep(prev, next), {})"
            },
            {
                "name": "mergeDeep",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/util/merge.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "<T extends object, S>(target: T, ...sources: S[]): any => {\n    const output: object & T = Object.assign({}, target);\n    if (!sources.length) {\n        return output as T | T & S;\n    }\n    const source = sources.shift();\n\n    if (isObject(target) && isObject(source)) {\n        Object.keys(source).forEach((key: string) => {\n            if (isObject(source[key])) {\n                if (!(key in target)) {\n                    /* istanbul ignore next */\n                    Object.assign(output, { [key]: source[key] });\n                } else {\n                    output[key] = mergeDeep(target[key], source[key]);\n                }\n            } else {\n                Object.assign(output, { [key]: source[key] });\n            }\n        });\n    }\n    return mergeDeep(output, ...sources);\n}",
                "rawdescription": "deep merge of two or more objects",
                "description": "<p>deep merge of two or more objects</p>\n"
            },
            {
                "name": "monaco",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/dist/docs/template-playground/template-editor.service.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "any"
            },
            {
                "name": "range",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(start: number, end?: number, step = 1): Array<number> => {\n    const output = [];\n    if (typeof end === 'undefined') {\n        end = start;\n        start = 0;\n    }\n    for (let i = start; i < end; i += step) {\n        output.push(i);\n    }\n    return output;\n}"
            },
            {
                "name": "testBed",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/test-setup.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "getTestBed()"
            },
            {
                "name": "transformToUxHttpResponse",
                "ctype": "miscellaneous",
                "subtype": "variable",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "type": "unknown",
                "defaultValue": "(resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n}"
            }
        ],
        "functions": [
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "T",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "e",
                        "type": "E",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "e",
                        "type": "E",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "e",
                        "type": "E",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "f",
                        "type": "F",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "unknown",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "T",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "a",
                        "type": "A",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "b",
                        "type": "B",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "c",
                        "type": "C",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "d",
                        "type": "D",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "e",
                        "type": "E",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "f",
                        "type": "F",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "merge",
                "file": "packages/base/src/lib/util/merge.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "target",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": ""
                    },
                    {
                        "name": "sources",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "dotDotDotToken": true
                    }
                ],
                "returnType": "any",
                "jsdoctags": [
                    {
                        "name": "target",
                        "type": "any",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    },
                    {
                        "name": "sources",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "dotDotDotToken": true,
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "xhr",
                "file": "packages/base/src/lib/util/xhr.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Utility function to call a XMLHttpRequest and send the response as a Promise. The response can be parameterized</p>\n",
                "args": [
                    {
                        "name": "urlOrConfig",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Promise<T>",
                "jsdoctags": [
                    {
                        "name": "urlOrConfig",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            },
            {
                "name": "xhr",
                "file": "packages/base/src/lib/util/xhr.ts",
                "ctype": "miscellaneous",
                "subtype": "function",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "args": [
                    {
                        "name": "urlOrConfig",
                        "deprecated": false,
                        "deprecationMessage": ""
                    }
                ],
                "returnType": "Promise<any>",
                "jsdoctags": [
                    {
                        "name": "urlOrConfig",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "tagName": {
                            "text": "param"
                        }
                    }
                ]
            }
        ],
        "typealiases": [
            {
                "name": "ConsoleAppenderPrefixConverters",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>The type of pluggable console prefix converters</p>\n",
                "kind": 188
            },
            {
                "name": "DeepPartial",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "unknown",
                "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 201
            },
            {
                "name": "ErrorMappingHandler",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "function",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 185
            },
            {
                "name": "EuiAppConfig",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "unknown",
                "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 194
            },
            {
                "name": "EuiLanguageCode",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "string | EuiLanguage",
                "file": "packages/base/src/lib/eui-models/eui-language/eui-eu-languages.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "HttpErrorCallbackFn",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "function",
                "file": "packages/base/src/lib/eui-models/eui-config/http-error-handler.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 185
            },
            {
                "name": "HTTPMethod",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "\"GET\" | \"HEAD\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"PATCH\"",
                "file": "packages/base/src/lib/eui-models/eui-store/models/app.models.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "LogAppenderType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig",
                "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>log appender type, containing also the configuration of the specified appender</p>\n",
                "kind": 193
            },
            {
                "name": "SubErrors",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Array<UxValidationErrorClass>",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 184
            },
            {
                "name": "TranslationsCompiler",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "function",
                "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>a factory to compile translations into the main object holding them all</p>\n",
                "kind": 185
            },
            {
                "name": "UUID",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": " `${string}-${string}-${string}-${string}-${string}`",
                "file": "packages/base/src/lib/polyfill/crypto.polyfill.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>polyfill for usage of crypto.randomUUID() on non HTTPS environments EUI-10272\nPlease remove in the future when EC Policy for HTTPS is enforced.</p>\n",
                "kind": 204
            },
            {
                "name": "UxErrorFeedbackEventType",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 193
            },
            {
                "name": "UxErrorGroupItem",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 188
            },
            {
                "name": "UxErrorGroupMap",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "literal type",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 188
            },
            {
                "name": "UxValidationErrorAttributes",
                "ctype": "miscellaneous",
                "subtype": "typealias",
                "rawtype": "Array<UxValidationErrorAttribute>",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "kind": 184
            }
        ],
        "enumerations": [
            {
                "name": "LogLevel",
                "childs": [
                    {
                        "name": "OFF",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 0
                    },
                    {
                        "name": "FATAL",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 1
                    },
                    {
                        "name": "ERROR",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 2
                    },
                    {
                        "name": "WARN",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 3
                    },
                    {
                        "name": "INFO",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 4
                    },
                    {
                        "name": "DEBUG",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 5
                    },
                    {
                        "name": "TRACE",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 6
                    },
                    {
                        "name": "ALL",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 7
                    }
                ],
                "ctype": "miscellaneous",
                "subtype": "enum",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Log level</p>\n",
                "file": "packages/base/src/lib/eui-models/log/log.model.ts"
            },
            {
                "name": "LogLevelName",
                "childs": [
                    {
                        "name": "FATAL",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "FATAL"
                    },
                    {
                        "name": "ERROR",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "ERROR"
                    },
                    {
                        "name": "WARN",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "WARNING"
                    },
                    {
                        "name": "INFO",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "INFO"
                    },
                    {
                        "name": "DEBUG",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "DEBUG"
                    },
                    {
                        "name": "TRACE",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "TRACE"
                    }
                ],
                "ctype": "miscellaneous",
                "subtype": "enum",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "<p>Associated log level names</p>\n",
                "file": "packages/base/src/lib/eui-models/log/log.model.ts"
            },
            {
                "name": "UxMessageSeverity",
                "childs": [
                    {
                        "name": "info",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "info"
                    },
                    {
                        "name": "warning",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "warning"
                    },
                    {
                        "name": "danger",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "danger"
                    },
                    {
                        "name": "success",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": "success"
                    }
                ],
                "ctype": "miscellaneous",
                "subtype": "enum",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts"
            },
            {
                "name": "UxMessageSeverityMetrics",
                "childs": [
                    {
                        "name": "info",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 0
                    },
                    {
                        "name": "warning",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 1
                    },
                    {
                        "name": "danger",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 2
                    },
                    {
                        "name": "success",
                        "deprecated": false,
                        "deprecationMessage": "",
                        "value": 3
                    }
                ],
                "ctype": "miscellaneous",
                "subtype": "enum",
                "deprecated": false,
                "deprecationMessage": "",
                "description": "",
                "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts"
            }
        ],
        "groupedVariables": {
            "packages/base/src/lib/eui-models/log/console.appender.ts": [
                {
                    "name": "DEFAULT_CONSOLE_APPENDER_PREFIX_CONVERTERS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/log/console.appender.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "ConsoleAppenderPrefixConverters",
                    "defaultValue": "{\n    '{level}': (event: LogEvent) => event.levelName,\n    '{logger}': (event: LogEvent) => event.loggerName,\n    '{date}': (event: LogEvent) => event.timestamp.toLocaleDateString(),\n    '{time}': (event: LogEvent) => event.timestamp.toLocaleTimeString(),\n}",
                    "rawdescription": "Default console prefix converters",
                    "description": "<p>Default console prefix converters</p>\n"
                }
            ],
            "packages/base/src/lib/util/xhr.ts": [
                {
                    "name": "DEFAULT_XHR_CONFIG",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/util/xhr.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "XHRConfig",
                    "defaultValue": "{\n    url: null,\n    method: 'GET',\n    responseType: 'json',\n    headers: {},\n    body: null,\n    withCredentials: false,\n    timeout: 0,\n}",
                    "rawdescription": "Default xhr configuration",
                    "description": "<p>Default xhr configuration</p>\n"
                }
            ],
            "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts": [
                {
                    "name": "DefaultConfig",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiPaginationConfig",
                    "defaultValue": "{\n    totalItems: 0,\n    pageSize: 10,\n    currentPage: 1,\n    pageWindowSize: 5,\n}"
                },
                {
                    "name": "range",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-pagination/eui-pagination.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(start: number, end?: number, step = 1): Array<number> => {\n    const output = [];\n    if (typeof end === 'undefined') {\n        end = start;\n        start = 0;\n    }\n    for (let i = start; i < end; i += step) {\n        output.push(i);\n    }\n    return output;\n}"
                }
            ],
            "packages/base/src/lib/eui-models/eui-constants.ts": [
                {
                    "name": "EUI_COLORS",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-constants.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "object",
                    "defaultValue": "{\n    text: '#333333',\n    default: '#333333',\n    black: '#000000',\n    white: '#ffffff',\n\n    primary: '#004494',\n    primaryDark: '#003e8c',\n    primaryDarker: '#003581',\n    primaryDarkest: '#002d77',\n    primaryDarkester: '#001f65',\n    primaryDarkester2: '#00174c',\n    primaryLight: '#2660a4',\n    primaryLighter: '#4d7cb4',\n    primaryLightest: '#80a2ca',\n    primaryLightester: '#b3c7df',\n    primaryLightester2: '#e0e9f2 ',\n\n    accent: '#ffeb3b',\n    accentDark: '#ffd114',\n    accentDarker: '#fc1',\n    accentDarkest: '#ffc60d',\n    accentDarkester: '#ffbc07',\n    accentDarkester2: '#edad00',\n    accentLight: '#ffdc3a',\n    accentLighter: '#ffe25d',\n    accentLightest: '#ffeb8b',\n    accentLightester: '#fff3b9',\n    accentLightester2: '#fffae3',\n\n    info: '#03a9f4',\n    infoDark: '#039be5',\n    infoDarker: '#0288d1',\n    infoDarkest: '#0277bd',\n    infoDarkester: '#01579b',\n    infoDarkester2: '#003473',\n    infoLight: '#29b6f6',\n    infoLighter: '#4fc3f7',\n    infoLightest: '#81d4fa',\n    infoLightester: '#b3e5fc',\n    infoLightester2: '#e0eef6',\n\n    success: '#4caf50',\n    successDark: '#3f7233',\n    successDarker: '#37672c',\n    successDarkest: '#2f5d24',\n    successDarkester: '#204a17',\n    successDarkester2: '#183711',\n    successLight: '#628e57',\n    successLighter: '#7ea274',\n    successLightest: '#a3bd9c',\n    successLightester: '#c8d7c4',\n    successLightester2: '#e9efe7',\n\n    warning: '#ff9800',\n    warningDark: '#f08d23',\n    warningDarker: '#ee821d',\n    warningDarkest: '#ec7817',\n    warningDarkester: '#e8670e',\n    warningDarkester2: '#d05c0d',\n    warningLight: '#f4a547',\n    warningLighter: '#f6b568',\n    warningLightest: '#f9ca93',\n    warningLightester: '#fbdfbe',\n    warningLightester2: '#fdf2e5',\n\n    danger: '#f44336',\n    dangerDark: '#d61d2b',\n    dangerDarker: '#d01824',\n    dangerDarkest: '#cb141e',\n    dangerDarkester: '#c20b13',\n    dangerDarkester2: '#aa0a11',\n    dangerLight: '#e0424f',\n    dangerLighter: '#e5646e',\n    dangerLightest: '#ed9098',\n    dangerLightester: '#f4bcc1',\n    dangerLightester2: '#fbe4e6',\n\n    grey: '#9e9e9e',\n    greyDark: '#757575',\n    greyDarker: '#616161',\n    greyDarkest: '#424242',\n    greyDarkester: '#212121',\n    greyDarkester2: '#141414',\n    greyLight: '#bdbdbd',\n    greyLighter: '#d2d2d2',\n    greyLightest: '#eeeeee',\n    greyLightester: '#f5f5f5',\n    greyLightester2: '#fafafa',\n}"
                }
            ],
            "packages/base/src/lib/eui-models/eui-auth-config.model.ts": [
                {
                    "name": "EUI_DEFAULT_AUTH_CONFIG",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-auth-config.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "EuiAuthConfig",
                    "defaultValue": "{\n    isLoggedIn: true,\n    redirectUrl: '',\n    loginPageUrl: '',\n}"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/selectors/i18n.selectors.ts": [
                {
                    "name": "getActiveLang",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/i18n.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, string>",
                    "defaultValue": "createSelector(getI18nState, (state: I18nState) => state.activeLang)"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts": [
                {
                    "name": "getApiQueue",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, ApiQueue>",
                    "defaultValue": "createSelector(getAppState, (state: AppState) => state.apiQueue)"
                },
                {
                    "name": "getApiQueueItem",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(itemId: string): Selector<AppState, ApiQueueItem> =>\n    createSelector(getAppState, (state: AppState) => state.apiQueue[itemId])"
                },
                {
                    "name": "getAppConnection",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, boolean>",
                    "defaultValue": "createSelector(getAppState, (state: AppState) => state.connected)"
                },
                {
                    "name": "getAppLoadedConfigModules",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": true,
                    "deprecationMessage": "It will be removed in the future.",
                    "type": "Selector<AppState, LoadedConfigModules>",
                    "defaultValue": "createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules,\n)",
                    "rawdescription": "Returns the loaded config modules from the app state",
                    "description": "<p>Returns the loaded config modules from the app state</p>\n"
                },
                {
                    "name": "getAppStatus",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, string>",
                    "defaultValue": "createSelector(getAppState, (state: AppState) => state.status)"
                },
                {
                    "name": "getAppVersion",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, string>",
                    "defaultValue": "createSelector(getAppState, (state: AppState) => state.version)"
                },
                {
                    "name": "getCurrentModule",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, string>",
                    "defaultValue": "createSelector(getAppState, (state: AppState) => state.currentModule)"
                },
                {
                    "name": "getLastAddedModule",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/app.selectors.ts",
                    "deprecated": true,
                    "deprecationMessage": "It will be removed in the future.",
                    "type": "Selector<AppState, string>",
                    "defaultValue": "createSelector(\n    getAppState,\n    (state: AppState) => state.loadedConfigModules.lastAddedModule,\n)",
                    "rawdescription": "Returns the last added module from the app state",
                    "description": "<p>Returns the last added module from the app state</p>\n"
                }
            ],
            "packages/base/src/lib/eui-models/eui-service.model.ts": [
                {
                    "name": "getAppLoadedConfigModules",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, LoadedConfigModules>",
                    "defaultValue": "(state: CoreState) => state?.app?.loadedConfigModules"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts": [
                {
                    "name": "getAppState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(state: CoreState): AppState => state.app"
                },
                {
                    "name": "getI18nState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(state: CoreState): I18nState => state.i18n"
                },
                {
                    "name": "getLocaleState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(state: CoreState): LocaleState => state.locale"
                },
                {
                    "name": "getNotificationsState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(state: CoreState): NotificationsState => state.notifications"
                },
                {
                    "name": "getUserState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/core.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(state: CoreState): UserState => state.user"
                }
            ],
            "packages/base/src/lib/eui-models/eui-config/i18n.config.ts": [
                {
                    "name": "getBrowserDefaultLanguage",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(): string => navigator.language.split('-')[0]",
                    "rawdescription": "returns a language code based on https://tools.ietf.org/rfc/bcp/bcp47.txt specification. To get the Browser's\nit's using the navigator.language, splits by hyphen and get the first part.",
                    "description": "<p>returns a language code based on <a href=\"https://tools.ietf.org/rfc/bcp/bcp47.txt\">https://tools.ietf.org/rfc/bcp/bcp47.txt</a> specification. To get the Browser&#39;s\nit&#39;s using the navigator.language, splits by hyphen and get the first part.</p>\n"
                },
                {
                    "name": "getBrowserPreferredLanguages",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(): string[] => navigator.languages.map((lang) => lang.split('-')[0])",
                    "rawdescription": "returns an array of DOMStrings representing the user's preferred languages. The language is described using BCP 47\nlanguage tags. In the returned array they are ordered by preference with the most preferred language first.\nThe array languages will be lower cased 2 char code.",
                    "description": "<p>returns an array of DOMStrings representing the user&#39;s preferred languages. The language is described using BCP 47\nlanguage tags. In the returned array they are ordered by preference with the most preferred language first.\nThe array languages will be lower cased 2 char code.</p>\n"
                },
                {
                    "name": "getI18nLoaderConfig",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(config: I18nLoaderConfig): I18nLoaderConfig => {\n    const { i18nFolders, i18nServices, i18nResources } = Object.assign({}, config);\n    return { i18nFolders, i18nServices, i18nResources };\n}"
                },
                {
                    "name": "getI18nServiceConfig",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(config: I18nServiceConfig): I18nServiceConfig => Object.assign({}, config)"
                },
                {
                    "name": "getI18nServiceConfigFromBase",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(baseGlobalConfig: GlobalConfig): I18nServiceConfig => {\n    if(!baseGlobalConfig) throw new Error('baseGlobalConfig is required');\n    const i18nServiceConfig = baseGlobalConfig && baseGlobalConfig.i18n && baseGlobalConfig.i18n.i18nService;\n    const { languages, defaultLanguage } = getI18nServiceConfig(i18nServiceConfig);\n\n    return { languages, defaultLanguage };\n}"
                }
            ],
            "packages/base/src/lib/eui-models/eui-config/locale.config.ts": [
                {
                    "name": "getLocaleServiceConfigFromBase",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-config/locale.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(baseGlobalConfig: GlobalConfig): LocaleServiceConfig => {\n    const { bindWithTranslate } = baseGlobalConfig.locale;\n    return { bindWithTranslate };\n}",
                    "rawdescription": "responsible to extract the attributes \"available\" and \"id\" from the locale configuration",
                    "description": "<p>responsible to extract the attributes &quot;available&quot; and &quot;id&quot; from the locale configuration</p>\n"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/selectors/notifications.selectors.ts": [
                {
                    "name": "getNotificationsList",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/notifications.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<AppState, unknown[]>",
                    "defaultValue": "createSelector(\n    getNotificationsState,\n    (state: NotificationsState) => state.list,\n)"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts": [
                {
                    "name": "getUserDashboard",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<UserPreferences<unknown>, unknown>",
                    "defaultValue": "createSelector(\n    getUserPreferences,\n    (state: UserPreferences) => state.dashboard,\n)"
                },
                {
                    "name": "getUserDetails",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, UserDetails>",
                    "defaultValue": "createSelector(getUserState, (state: UserState) => state as UserDetails)"
                },
                {
                    "name": "getUserFirstName",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, string>",
                    "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.firstName)"
                },
                {
                    "name": "getUserFullName",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, string>",
                    "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.fullName)"
                },
                {
                    "name": "getUserId",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, string>",
                    "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.userId)"
                },
                {
                    "name": "getUserLang",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<UserPreferences, string>",
                    "defaultValue": "createSelector(getUserPreferences, (state: UserPreferences) => state.lang)"
                },
                {
                    "name": "getUserLastName",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, string>",
                    "defaultValue": "createSelector(getUserDetails, (state: UserDetails) => state.lastName)"
                },
                {
                    "name": "getUserPreferences",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, UserPreferences>",
                    "defaultValue": "createSelector(\n    getUserState,\n    (state: UserState) => state.preferences,\n)"
                },
                {
                    "name": "getUserRight",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(rightId: string): Selector<CoreState, EuiUserRight> =>\n    createSelector(getUserRights, (state: EuiUserRight[]) => state.find((right) => right && right.id === rightId))"
                },
                {
                    "name": "getUserRightPermissions",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(rightId: string): Selector<CoreState, string[]> =>\n    createSelector(getUserRight(rightId), (state: EuiUserRight) => state && state.permissions)"
                },
                {
                    "name": "getUserRights",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/selectors/user.selectors.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "Selector<CoreState, EuiUserRight[]>",
                    "defaultValue": "createSelector(getUserState, (state: UserState) => state.rights)"
                }
            ],
            "packages/base/dist/docs/template-playground/hbs-render.service.ts": [
                {
                    "name": "Handlebars",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/dist/docs/template-playground/hbs-render.service.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/app.state.ts": [
                {
                    "name": "initialAppState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/app.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "AppState",
                    "defaultValue": "Object.assign(\n    {},\n    {\n        version: '0.0.0',\n        connected: true,\n        loadedConfigModules: {\n            modulesConfig: {},\n        },\n        status: 'idle',\n        currentModule: '',\n        apiQueue: {},\n    },\n)"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/core.state.ts": [
                {
                    "name": "initialCoreState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/core.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "CoreState",
                    "defaultValue": "Object.assign(\n    {},\n    {\n        app: initialAppState,\n        user: initialUserState,\n        notifications: initialNotificationsState,\n        i18n: initialI18nState,\n        locale: initialLocaleState,\n    },\n)"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/i18n.state.ts": [
                {
                    "name": "initialI18nState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/i18n.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "I18nState",
                    "defaultValue": "{\n    activeLang: null,\n}"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/locale.state.ts": [
                {
                    "name": "initialLocaleState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/locale.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "LocaleState",
                    "defaultValue": "{\n    id: 'en',\n}",
                    "rawdescription": "The initial state of the locale state. The default locale is English US ('en').",
                    "description": "<p>The initial state of the locale state. The default locale is English US (&#39;en&#39;).</p>\n"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/notifications.state.ts": [
                {
                    "name": "initialNotificationsState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/notifications.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "NotificationsState",
                    "defaultValue": "{\n    list: [],\n}",
                    "rawdescription": "The initial state of the notifications state.",
                    "description": "<p>The initial state of the notifications state.</p>\n"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/models/user.models.ts": [
                {
                    "name": "initialUserPreferences",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/models/user.models.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserPreferences",
                    "defaultValue": "Object.assign(\n    {},\n    {\n        lang: null,\n        dashboard: null,\n    },\n)"
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/state/user.state.ts": [
                {
                    "name": "initialUserState",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/eui-models/eui-store/state/user.state.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "UserState",
                    "defaultValue": "Object.assign(\n    {},\n    {\n        userId: '',\n        firstName: '',\n        lastName: '',\n        fullName: '',\n        preferences: initialUserPreferences,\n        rights: [],\n    },\n)"
                }
            ],
            "packages/base/src/lib/util/merge.ts": [
                {
                    "name": "isObject",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "<T>(item: T): boolean => item && typeof item === 'object' && !Array.isArray(item)"
                },
                {
                    "name": "mergeAll",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "<T>(array: Array<T>): T => array.reduce((prev, next) => mergeDeep(prev, next), {})"
                },
                {
                    "name": "mergeDeep",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "<T extends object, S>(target: T, ...sources: S[]): any => {\n    const output: object & T = Object.assign({}, target);\n    if (!sources.length) {\n        return output as T | T & S;\n    }\n    const source = sources.shift();\n\n    if (isObject(target) && isObject(source)) {\n        Object.keys(source).forEach((key: string) => {\n            if (isObject(source[key])) {\n                if (!(key in target)) {\n                    /* istanbul ignore next */\n                    Object.assign(output, { [key]: source[key] });\n                } else {\n                    output[key] = mergeDeep(target[key], source[key]);\n                }\n            } else {\n                Object.assign(output, { [key]: source[key] });\n            }\n        });\n    }\n    return mergeDeep(output, ...sources);\n}",
                    "rawdescription": "deep merge of two or more objects",
                    "description": "<p>deep merge of two or more objects</p>\n"
                }
            ],
            "packages/base/dist/docs/template-playground/zip-export.service.ts": [
                {
                    "name": "JSZip",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/dist/docs/template-playground/zip-export.service.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any"
                }
            ],
            "packages/base/dist/docs/template-playground/template-editor.service.ts": [
                {
                    "name": "monaco",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/dist/docs/template-playground/template-editor.service.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "any"
                }
            ],
            "packages/base/test-setup.ts": [
                {
                    "name": "testBed",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/test-setup.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "getTestBed()"
                }
            ],
            "packages/base/src/lib/ux-models/ux-error-feedback.model.ts": [
                {
                    "name": "transformToUxHttpResponse",
                    "ctype": "miscellaneous",
                    "subtype": "variable",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "type": "unknown",
                    "defaultValue": "(resp: HttpErrorResponse, mapper: ErrorMappingHandler): UxHttpErrorResponse => {\n    const updatedErr = resp as UxHttpErrorResponse;\n    updatedErr.uxHttpErrorOutput = mapper(resp.error);\n    return updatedErr;\n}"
                }
            ]
        },
        "groupedFunctions": {
            "packages/base/src/lib/util/merge.ts": [
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "T",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "e",
                            "type": "E",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "e",
                            "type": "E",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "e",
                            "type": "E",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "f",
                            "type": "F",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "unknown",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "T",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "a",
                            "type": "A",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "b",
                            "type": "B",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "c",
                            "type": "C",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "d",
                            "type": "D",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "e",
                            "type": "E",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "f",
                            "type": "F",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "merge",
                    "file": "packages/base/src/lib/util/merge.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "target",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": ""
                        },
                        {
                            "name": "sources",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "dotDotDotToken": true
                        }
                    ],
                    "returnType": "any",
                    "jsdoctags": [
                        {
                            "name": "target",
                            "type": "any",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        },
                        {
                            "name": "sources",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "dotDotDotToken": true,
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ],
            "packages/base/src/lib/util/xhr.ts": [
                {
                    "name": "xhr",
                    "file": "packages/base/src/lib/util/xhr.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Utility function to call a XMLHttpRequest and send the response as a Promise. The response can be parameterized</p>\n",
                    "args": [
                        {
                            "name": "urlOrConfig",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Promise<T>",
                    "jsdoctags": [
                        {
                            "name": "urlOrConfig",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                },
                {
                    "name": "xhr",
                    "file": "packages/base/src/lib/util/xhr.ts",
                    "ctype": "miscellaneous",
                    "subtype": "function",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "args": [
                        {
                            "name": "urlOrConfig",
                            "deprecated": false,
                            "deprecationMessage": ""
                        }
                    ],
                    "returnType": "Promise<any>",
                    "jsdoctags": [
                        {
                            "name": "urlOrConfig",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "tagName": {
                                "text": "param"
                            }
                        }
                    ]
                }
            ]
        },
        "groupedEnumerations": {
            "packages/base/src/lib/eui-models/log/log.model.ts": [
                {
                    "name": "LogLevel",
                    "childs": [
                        {
                            "name": "OFF",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 0
                        },
                        {
                            "name": "FATAL",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 1
                        },
                        {
                            "name": "ERROR",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 2
                        },
                        {
                            "name": "WARN",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 3
                        },
                        {
                            "name": "INFO",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 4
                        },
                        {
                            "name": "DEBUG",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 5
                        },
                        {
                            "name": "TRACE",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 6
                        },
                        {
                            "name": "ALL",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 7
                        }
                    ],
                    "ctype": "miscellaneous",
                    "subtype": "enum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Log level</p>\n",
                    "file": "packages/base/src/lib/eui-models/log/log.model.ts"
                },
                {
                    "name": "LogLevelName",
                    "childs": [
                        {
                            "name": "FATAL",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "FATAL"
                        },
                        {
                            "name": "ERROR",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "ERROR"
                        },
                        {
                            "name": "WARN",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "WARNING"
                        },
                        {
                            "name": "INFO",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "INFO"
                        },
                        {
                            "name": "DEBUG",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "DEBUG"
                        },
                        {
                            "name": "TRACE",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "TRACE"
                        }
                    ],
                    "ctype": "miscellaneous",
                    "subtype": "enum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>Associated log level names</p>\n",
                    "file": "packages/base/src/lib/eui-models/log/log.model.ts"
                }
            ],
            "packages/base/src/lib/ux-models/ux-error-feedback.model.ts": [
                {
                    "name": "UxMessageSeverity",
                    "childs": [
                        {
                            "name": "info",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "info"
                        },
                        {
                            "name": "warning",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "warning"
                        },
                        {
                            "name": "danger",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "danger"
                        },
                        {
                            "name": "success",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": "success"
                        }
                    ],
                    "ctype": "miscellaneous",
                    "subtype": "enum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts"
                },
                {
                    "name": "UxMessageSeverityMetrics",
                    "childs": [
                        {
                            "name": "info",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 0
                        },
                        {
                            "name": "warning",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 1
                        },
                        {
                            "name": "danger",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 2
                        },
                        {
                            "name": "success",
                            "deprecated": false,
                            "deprecationMessage": "",
                            "value": 3
                        }
                    ],
                    "ctype": "miscellaneous",
                    "subtype": "enum",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts"
                }
            ]
        },
        "groupedTypeAliases": {
            "packages/base/src/lib/eui-models/eui-config/log.config.ts": [
                {
                    "name": "ConsoleAppenderPrefixConverters",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>The type of pluggable console prefix converters</p>\n",
                    "kind": 188
                },
                {
                    "name": "LogAppenderType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Type<LogAppender> | LogAppenderTypeConfig | ConsoleAppenderTypeConfig | UrlAppenderTypeConfig",
                    "file": "packages/base/src/lib/eui-models/eui-config/log.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>log appender type, containing also the configuration of the specified appender</p>\n",
                    "kind": 193
                }
            ],
            "packages/base/src/lib/eui-models/eui-service.model.ts": [
                {
                    "name": "DeepPartial",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "unknown",
                    "file": "packages/base/src/lib/eui-models/eui-service.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 201
                }
            ],
            "packages/base/src/lib/ux-models/ux-error-feedback.model.ts": [
                {
                    "name": "ErrorMappingHandler",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "function",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 185
                },
                {
                    "name": "SubErrors",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Array<UxValidationErrorClass>",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 184
                },
                {
                    "name": "UxErrorFeedbackEventType",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "UxPublishErrorFeedbackEvent | UxClearErrorFeedbackEvent",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                },
                {
                    "name": "UxErrorGroupItem",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 188
                },
                {
                    "name": "UxErrorGroupMap",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "literal type",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 188
                },
                {
                    "name": "UxValidationErrorAttributes",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "Array<UxValidationErrorAttribute>",
                    "file": "packages/base/src/lib/ux-models/ux-error-feedback.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 184
                }
            ],
            "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts": [
                {
                    "name": "EuiAppConfig",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "unknown",
                    "file": "packages/base/src/lib/eui-models/eui-config/eui-app-config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 194
                }
            ],
            "packages/base/src/lib/eui-models/eui-language/eui-eu-languages.model.ts": [
                {
                    "name": "EuiLanguageCode",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "string | EuiLanguage",
                    "file": "packages/base/src/lib/eui-models/eui-language/eui-eu-languages.model.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "packages/base/src/lib/eui-models/eui-config/http-error-handler.config.ts": [
                {
                    "name": "HttpErrorCallbackFn",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "function",
                    "file": "packages/base/src/lib/eui-models/eui-config/http-error-handler.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 185
                }
            ],
            "packages/base/src/lib/eui-models/eui-store/models/app.models.ts": [
                {
                    "name": "HTTPMethod",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "\"GET\" | \"HEAD\" | \"POST\" | \"PUT\" | \"DELETE\" | \"CONNECT\" | \"OPTIONS\" | \"TRACE\" | \"PATCH\"",
                    "file": "packages/base/src/lib/eui-models/eui-store/models/app.models.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "",
                    "kind": 193
                }
            ],
            "packages/base/src/lib/eui-models/eui-config/i18n.config.ts": [
                {
                    "name": "TranslationsCompiler",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": "function",
                    "file": "packages/base/src/lib/eui-models/eui-config/i18n.config.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>a factory to compile translations into the main object holding them all</p>\n",
                    "kind": 185
                }
            ],
            "packages/base/src/lib/polyfill/crypto.polyfill.ts": [
                {
                    "name": "UUID",
                    "ctype": "miscellaneous",
                    "subtype": "typealias",
                    "rawtype": " `${string}-${string}-${string}-${string}-${string}`",
                    "file": "packages/base/src/lib/polyfill/crypto.polyfill.ts",
                    "deprecated": false,
                    "deprecationMessage": "",
                    "description": "<p>polyfill for usage of crypto.randomUUID() on non HTTPS environments EUI-10272\nPlease remove in the future when EC Policy for HTTPS is enforced.</p>\n",
                    "kind": 204
                }
            ]
        }
    },
    "routes": {
        "name": "<root>",
        "kind": "module",
        "className": "TemplatePlaygroundModule",
        "children": []
    }
}