UNPKG

@alauda-fe/common

Version:

Alauda frontend team common codes.

95 lines (94 loc) 4.78 kB
import { MonacoLanguageService } from '@alauda/code-editor'; import { EventEmitter, OnDestroy, AfterViewInit } from '@angular/core'; import { ControlValueAccessor } from '@angular/forms'; import { BehaviorSubject, Observable } from 'rxjs'; import { KubernetesSchemaService } from '../../core/services/kubernetes-schema.service'; import { YamlUtilService } from '../../core/services/yaml-util.service'; import { Arrayable } from '../../core/types/helpers'; import { KubernetesResource, OpenAPIV3SchemaObject } from '../../core/types/public-api'; import { EditorInstanceProvider } from '../managed-fields-folder.util'; import { YamlExample } from '../yaml-sidebar/types'; import * as i0 from "@angular/core"; export declare class ResourceYamlEditorComponent<T extends KubernetesResource> implements ControlValueAccessor, OnDestroy, EditorInstanceProvider, AfterViewInit { readonly yamlUtil: YamlUtilService; readonly schemaService: KubernetesSchemaService; private readonly monacoLanguageService; private destroy$; private _value; private _originalValue; private onChange; private onTouched; showSidebar$$: BehaviorSubject<boolean>; showDebugPanel$$: BehaviorSubject<boolean>; modelUri: string; private yamlSchemaService; private monacoEditor; private registeredSchemas; private codeEditorRef; hasWrapper: boolean; showDebugInfo: boolean; sidebarEnable: boolean; schema: OpenAPIV3SchemaObject; schemaEnable: boolean; exampleEnable: boolean; resource: Arrayable<T>; autoFoldManagedFields: boolean; set originalValue(value: string); get originalValue(): string; options: import("../code-editor-configs").IEditorConstructionOptions; actionsConfig: import("@alauda/code-editor").CodeEditorActionsConfig; tryYaml: EventEmitter<string>; readonly resource$: Observable<Arrayable<T>>; readonly schema$: Observable<OpenAPIV3SchemaObject>; autoFillNamespace: boolean; extraExamples: YamlExample[]; hasFolded: boolean; /** * 自动获取的 schema,当没有手动提供 schema 时使用 */ autoSchema$: Observable<OpenAPIV3SchemaObject>; /** * 最终使用的 schema,优先使用手动提供的,否则使用自动获取的 */ finalSchema$: Observable<OpenAPIV3SchemaObject>; constructor(yamlUtil: YamlUtilService, schemaService: KubernetesSchemaService, monacoLanguageService: MonacoLanguageService); ngAfterViewInit(): void; selfFoldManagedFields(): void; get value(): string; set value(val: string); writeValue(value: string): void; registerOnChange(fn: (value: string) => void): void; registerOnTouched(fn: () => void): void; toggleSidebar(): void; toggleDebugInfo(): void; getCurrentResource(): T | null; getCurrentSchema(): OpenAPIV3SchemaObject | null; getDebugInfo(): { hasResource: boolean; resourceApiVersion: string; resourceKind: string; hasManualSchema: boolean; workspaceHelperAvailable: boolean; currentWorkspace: Readonly<{ project: string; cluster: string; namespace: string; }>; }; onTryYaml(yamlContent: string): void; /** * 设置 YAML schema 以提供 hover 提示和自动完成 */ setYamlSchema(resource: T, schema: OpenAPIV3SchemaObject): void; /** * 获取 Monaco 编辑器实例 */ getEditorInstance(): import('monaco-editor/esm/vs/editor/editor.api').editor.IStandaloneCodeEditor | null; /** * 手动折叠 managedFields */ foldManagedFields(): void; ngOnDestroy(): void; static ɵfac: i0.ɵɵFactoryDeclaration<ResourceYamlEditorComponent<any>, never>; static ɵcmp: i0.ɵɵComponentDeclaration<ResourceYamlEditorComponent<any>, "acl-resource-yaml-editor", never, { "hasWrapper": { "alias": "hasWrapper"; "required": false; }; "showDebugInfo": { "alias": "showDebugInfo"; "required": false; }; "sidebarEnable": { "alias": "sidebarEnable"; "required": false; }; "schema": { "alias": "schema"; "required": false; }; "schemaEnable": { "alias": "schemaEnable"; "required": false; }; "exampleEnable": { "alias": "exampleEnable"; "required": false; }; "resource": { "alias": "resource"; "required": false; }; "autoFoldManagedFields": { "alias": "autoFoldManagedFields"; "required": false; }; "originalValue": { "alias": "originalValue"; "required": false; }; "options": { "alias": "options"; "required": false; }; "actionsConfig": { "alias": "actionsConfig"; "required": false; }; "autoFillNamespace": { "alias": "autoFillNamespace"; "required": false; }; "extraExamples": { "alias": "extraExamples"; "required": false; }; }, { "tryYaml": "tryYaml"; }, never, never, true, never>; }