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; }