@alauda-fe/common
Version:
Alauda frontend team common codes.
95 lines (94 loc) • 4.78 kB
TypeScript
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>;
}