import { ControlValueAccessor } from '@angular/forms'; /** * @description * * O `thf-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft. * * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da liguagem * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual * Studio Code, com autocomplete e fechamento automático de brackets. * * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar * receitas utilizando Terraform para gerenciar topologias. * É importante ressaltar que este não é um componente para edição de textos comuns. * * O [(ngModel)] deve ser usado para manipular o conteúdo do thf-code-editor, ou seja, tanto para incluir um conteúdo quanto * para recuperar o conteúdo do thf-code-editor, utiliza-se uma variável passada por [(ngModel)]. * * > Não esqueça de fazer a instalação do pacote `@totvs/thf-code-editor` em sua aplicação. * > * > ``` * > npm i --save @totvs/thf-code-editor * > ``` * > * > Adicionar o módulo `ThfCodeEditorModule` em seu projeto: * > * > ``` * > // app.module.ts * > ... * > import { ThfModule } from '@totvs/thf-ui'; * > import { ThfCodeEditorModule } from '@totvs/thf-code-editor'; * > ... * > @NgModule({ * > imports: [ * > ... * > ThfModule, * > ThfCodeEditorModule * > ], * > ... * > }) * > export class AppModule { } * > ``` * > * > E adicionar um *asset* ao arquivo `angular.json`, conforme exemplo abaixo: * > * >
* > "assets": [
* > { "glob": "∗∗/∗", "input": "node_modules/monaco-editor/min", "output": "/assets/monaco/" }
* > ]
* >
*
*/
export declare abstract class ThfCodeEditorBaseComponent implements ControlValueAccessor {
private _height;
private _language;
private _readonly;
private _showDiff;
private _theme;
editor: any;
modifiedValue: string;
value: any;
/**
* @optional
*
* @description
*
* Linguagem na qual será apresentado o código fonte.
* Para saber quais são as linguagens compatíveis, consulte a documentação oficial do
* [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).
*
* Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:
* [**thf-code-editor-register**](https://thf.totvs.com.br/documentation/thf-code-editor-register?view=doc).
*
* @default `plainText`
*/
language: string;
/**
* @optional
*
* @description
*
* Indica se o editor será aberto em modo de leitura.
*
* Neste caso, não é possível editar o código inserido.
*
* Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.
*
* @default `false`
*/
readonly: boolean;
/**
* @optional
*
* @description
*
* Indica se o editor será aberto em modo de comparação.
*
* Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve
* conter uma string com o código original e na segunda posição uma string código modificado para efeito de
* comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição
* do array consequentemente.
*
* Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.
*
* @default `false`
*/
showDiff: boolean;
/**
* @optional
*
* @description
*
* Define um tema para o editor.
*
* Temas válidos:
* - `vs-dark`
* - `vs`
* - `hc-black`
*
* É importante salientar que o tema será aplicados a todos os componentes thf-code-editor existentes na tela,
* ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância
* criada.
*
* @default `vs`
*/
theme: string;
/**
* @optional
*
* @description
*
* Define a altura do componente em pixels do thf-code-editor.
* Esta propriedade não poderá ser alterada após o componente ter sido iniciado.
* A altura mínima é 150 pixels.
*/
height: string;
onTouched: (value: any) => void;
onChangePropagate: (value: any) => void;
getOptions(): {
language: string;
theme: string;
readOnly: boolean;
};
registerOnChange(fn: any): void;
registerOnTouched(fn: any): void;
abstract writeValue(value: any): any;
abstract setLanguage(value: any): any;
abstract setTheme(value: any): any;
abstract setReadOnly(value: any): any;
protected convertToBoolean(val: any): boolean;
}