import { AfterViewInit, EventEmitter, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core'; import { MonacoCodeEditorComponent, ChangeInfo, IClass } from '@farris/ide-code-editor'; import { ComponentCodeService } from './service/component-code.service'; import { SaveResult } from './types'; import { Observable } from 'rxjs'; import { MessageNotifyService } from './service/message-notify.service'; import { LoadingService } from '@farris/ui-loading'; import { MessagerService } from '@farris/ui-messager'; export declare class CompCodeEditorComponent implements OnInit, OnChanges, AfterViewInit, OnDestroy { private componentCodeService; private loadingService; private messageService; private messageNotifyService; /** 构件代码文件路径,不传入时根据元数据路径获取 */ codeFilePath: string; /** 代码编辑器外壳组件实例 */ codeEditor: MonacoCodeEditorComponent; /** 代码更改事件 */ codeChanged: EventEmitter; /** 记录代码是否更改过 */ isCodeChanged: boolean; private SAVE_SUCCESS_TIP; /** 记录组件内订阅,Destroy时取消订阅 */ private subscriptions; constructor(componentCodeService: ComponentCodeService, loadingService: LoadingService, messageService: MessagerService, messageNotifyService: MessageNotifyService); ngOnInit(): void; ngAfterViewInit(): void; ngOnChanges(changes: SimpleChanges): void; /** * 打开代码编辑器 */ private openIDE; /** * 重新读取代码刷新 */ reloadCode(): Observable; /** * 检查获取代码后本地文件是否被更改过 * 若更改过则提示用户进行不同处理 */ checkCodeVersion(): void; /** * 通过本地IDEA打开代码工程并定位至构件文件 */ openInIDEA(): void; /** 保存代码 */ saveCode(): Promise; /** * 获取文件解析结果 * @param path - 文件路径 * @returns 文件内容及类结构,如果文件尚未打开则返回null */ getCode(): Promise<{ content: string; hasFatalError?: boolean; classes?: IClass[]; }>; /** * 设置主题 * @param isDarkTheme 是否深色主题 */ setTheme(isDarkTheme: boolean): Promise; /** * 组件销毁事件,执行取消订阅 */ ngOnDestroy(): void; }