@po-ui/ng-code-editor 18.23.0 → 19.0.0-next.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -237,7 +237,7 @@ class PoCodeEditorBaseComponent {
237
237
  }
238
238
  return !!val;
239
239
  }
240
- static ɵfac = function PoCodeEditorBaseComponent_Factory(t) { return new (t || PoCodeEditorBaseComponent)(); };
240
+ static ɵfac = function PoCodeEditorBaseComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PoCodeEditorBaseComponent)(); };
241
241
  static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [0, "p-language", "language"], readonly: [0, "p-readonly", "readonly"], showDiff: [0, "p-show-diff", "showDiff"], suggestions: [0, "p-suggestions", "suggestions"], theme: [0, "p-theme", "theme"], height: [0, "p-height", "height"] } });
242
242
  }
243
243
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorBaseComponent, [{
@@ -278,7 +278,7 @@ class PoCodeEditorSuggestionService {
278
278
  deduplicateSuggestions(originalSuggestions, newSuggestions) {
279
279
  return newSuggestions.filter(newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label']));
280
280
  }
281
- static ɵfac = function PoCodeEditorSuggestionService_Factory(t) { return new (t || PoCodeEditorSuggestionService)(); };
281
+ static ɵfac = function PoCodeEditorSuggestionService_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PoCodeEditorSuggestionService)(); };
282
282
  static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorSuggestionService, factory: PoCodeEditorSuggestionService.ɵfac, providedIn: 'root' });
283
283
  }
284
284
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorSuggestionService, [{
@@ -351,11 +351,14 @@ class PoCodeEditorRegister {
351
351
  options;
352
352
  /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */
353
353
  suggestions;
354
- static ɵfac = function PoCodeEditorRegister_Factory(t) { return new (t || PoCodeEditorRegister)(); };
355
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorRegister, factory: PoCodeEditorRegister.ɵfac });
354
+ static ɵfac = function PoCodeEditorRegister_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PoCodeEditorRegister)(); };
355
+ static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorRegister, factory: PoCodeEditorRegister.ɵfac, providedIn: 'root' });
356
356
  }
357
357
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorRegister, [{
358
- type: Injectable
358
+ type: Injectable,
359
+ args: [{
360
+ providedIn: 'root'
361
+ }]
359
362
  }], null, null); })();
360
363
 
361
364
  const _c0 = ["editorContainer"];
@@ -566,13 +569,13 @@ class PoCodeEditorComponent extends PoCodeEditorBaseComponent {
566
569
  }
567
570
  }
568
571
  }
569
- static ɵfac = function PoCodeEditorComponent_Factory(t) { return new (t || PoCodeEditorComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(PoCodeEditorSuggestionService), i0.ɵɵdirectiveInject(PoCodeEditorRegister)); };
572
+ static ɵfac = function PoCodeEditorComponent_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PoCodeEditorComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(PoCodeEditorSuggestionService), i0.ɵɵdirectiveInject(PoCodeEditorRegister)); };
570
573
  static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoCodeEditorComponent, selectors: [["po-code-editor"]], viewQuery: function PoCodeEditorComponent_Query(rf, ctx) { if (rf & 1) {
571
574
  i0.ɵɵviewQuery(_c0, 7);
572
575
  } if (rf & 2) {
573
576
  let _t;
574
577
  i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editorContainer = _t.first);
575
- } }, features: [i0.ɵɵProvidersFeature(providers), i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["editorContainer", ""]], template: function PoCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
578
+ } }, standalone: false, features: [i0.ɵɵProvidersFeature(providers), i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["editorContainer", ""]], template: function PoCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
576
579
  i0.ɵɵelement(0, "div", null, 0);
577
580
  } if (rf & 2) {
578
581
  i0.ɵɵstyleProp("height", ctx.height);
@@ -580,12 +583,12 @@ class PoCodeEditorComponent extends PoCodeEditorBaseComponent {
580
583
  }
581
584
  (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorComponent, [{
582
585
  type: Component,
583
- args: [{ selector: 'po-code-editor', providers: providers, template: "<div #editorContainer [style.height]=\"height\"></div>\n" }]
586
+ args: [{ selector: 'po-code-editor', providers: providers, standalone: false, template: "<div #editorContainer [style.height]=\"height\"></div>\n" }]
584
587
  }], () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: PoCodeEditorSuggestionService }, { type: PoCodeEditorRegister }], { editorContainer: [{
585
588
  type: ViewChild,
586
589
  args: ['editorContainer', { static: true }]
587
590
  }] }); })();
588
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoCodeEditorComponent, { className: "PoCodeEditorComponent", filePath: "lib/components/po-code-editor/po-code-editor.component.ts", lineNumber: 64 }); })();
591
+ (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoCodeEditorComponent, { className: "PoCodeEditorComponent", filePath: "lib/components/po-code-editor/po-code-editor.component.ts", lineNumber: 65 }); })();
589
592
 
590
593
  /**
591
594
  * @description
@@ -604,7 +607,7 @@ class PoCodeEditorModule {
604
607
  ]
605
608
  };
606
609
  }
607
- static ɵfac = function PoCodeEditorModule_Factory(t) { return new (t || PoCodeEditorModule)(); };
610
+ static ɵfac = function PoCodeEditorModule_Factory(__ngFactoryType__) { return new (__ngFactoryType__ || PoCodeEditorModule)(); };
608
611
  static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PoCodeEditorModule });
609
612
  static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [PoCodeEditorRegister], imports: [CommonModule] });
610
613
  }
@@ -1 +1 @@
1
- {"version":3,"file":"po-ui-ng-code-editor.mjs","sources":["../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-base.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-suggestion.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-register.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.html","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.module.ts","../../../projects/code-editor/src/po-ui-ng-code-editor.ts"],"sourcesContent":["import { Input, Directive } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\nconst PO_CODE_EDITOR_THEMES = ['vs-dark', 'vs', 'hc-black'];\nconst PO_CODE_EDITOR_THEME_DEFAULT = 'vs';\n\n/**\n * @description\n *\n * O `po-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft.\n *\n * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da linguagem\n * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual\n * Studio Code, com autocomplete e fechamento automático de brackets.\n *\n * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar\n * receitas utilizando Terraform para gerenciar topologias.\n * É importante ressaltar que este não é um componente para edição de textos comuns.\n *\n * O [(ngModel)] deve ser usado para manipular o conteúdo do po-code-editor, ou seja, tanto para incluir um conteúdo quanto\n * para recuperar o conteúdo do po-code-editor, utiliza-se uma variável passada por [(ngModel)].\n *\n * #### Adicionando o pacote @po-ui/ng-code-editor\n *\n * Para instalar o pacote `po-code-editor` em sua aplicação execute:\n *\n * ```shell\n * ng add @po-ui/ng-code-editor\n * ```\n *\n * O comando `ng add` do `Angular CLI`:\n * - inclui o `po-code-editor` no seu projeto;\n * - adiciona o módulo `PoCodeEditorModule`:;\n *\n * ```\n * // app.module.ts\n * ...\n * import { PoModule } from '@po-ui/ng-components';\n * import { PoCodeEditorModule } from '@po-ui/ng-code-editor';\n * ...\n * @NgModule({\n * imports: [\n * ...\n * PoModule,\n * PoCodeEditorModule\n * ],\n * ...\n * })\n * export class AppModule { }\n * ```\n *\n * - adiciona o tema PO UI e também o *asset* do Monaco no arquivo `angular.json`, conforme abaixo:\n *\n * <pre ngNonBindable>\n * ...\n * \"assets\": [\n * { \"glob\": \"&#42;&#42;/&#42;\", \"input\": \"node_modules/monaco-editor/min\", \"output\": \"/assets/monaco/\" }\n * ],\n * \"styles\": [\n * \"./node_modules/@po-ui/style/css/po-theme-default.min.css\"\n * ]\n * ...\n * </pre>\n */\n@Directive()\nexport abstract class PoCodeEditorBaseComponent implements ControlValueAccessor {\n editor: any;\n modifiedValue: string = '';\n value: any = '';\n\n private _height: number = 150;\n private _language = 'plainText';\n private _readonly: boolean = false;\n private _showDiff: boolean = false;\n private _suggestions: Array<PoCodeEditorRegisterableSuggestion>;\n private _theme = PO_CODE_EDITOR_THEME_DEFAULT;\n\n /**\n * @optional\n *\n * @description\n *\n * Linguagem na qual será apresentado o código fonte.\n * Para saber quais são as linguagens compatíveis, consulte a documentação oficial do\n * [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).\n *\n * Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:\n * [**po-code-editor-register**](https://po-ui.io/documentation/po-code-editor-register?view=doc).\n *\n * @default `plainText`\n */\n @Input('p-language') set language(language: string) {\n this._language = language && language.length ? language.trim() : 'plainText';\n\n if (this.editor && this._language) {\n this.setLanguage(this._language);\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de leitura.\n *\n * Neste caso, não é possível editar o código inserido.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-readonly') set readonly(readonly: boolean) {\n this._readonly = <any>readonly === '' ? true : this.convertToBoolean(readonly);\n\n if (this.editor) {\n this.setReadOnly(readonly);\n }\n }\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de comparação.\n *\n * Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve\n * conter uma string com o código original e na segunda posição uma string código modificado para efeito de\n * comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição\n * do array consequentemente.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-show-diff') set showDiff(showDiff: boolean) {\n this._showDiff = <any>showDiff === '' ? true : this.convertToBoolean(showDiff);\n }\n\n get showDiff(): boolean {\n return this._showDiff;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Lista de sugestões usadas pelo autocomplete dentro do editor.\n *\n * Para visualizar a lista de sugestões use o comando `CTRL + SPACE`.\n *\n * Caso o editor esteja usando uma linguagem que já tenha uma lista de sugestões predefinida, o valor passado será adicionado\n * a lista preexistente, aumentando as opções para o usuário.\n *\n * Caso tenha mais de um editor da mesma linguagem na aplicação, as sugestões serão adicionadas para que todos os editores da mesma linguagem\n * tenham as mesmas sugestões.\n *\n * ```\n * <po-code-editor\n * [p-suggestions]=\"[{ label: 'po', insertText: 'Portinari UI' }, { label: 'ng', insertText: 'Angular' }]\">\n * </po-code-editor>\n * ```\n *\n * Ao fornecer uma lista de sugestões é possível acelerar a escrita de scripts pelos usuários.\n */\n @Input('p-suggestions') set suggestions(values: Array<PoCodeEditorRegisterableSuggestion>) {\n this._suggestions = values;\n\n if (this.editor && this._suggestions) {\n this.setSuggestions(this._suggestions);\n }\n }\n\n get suggestions(): Array<PoCodeEditorRegisterableSuggestion> {\n return this._suggestions;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define um tema para o editor.\n *\n * Temas válidos:\n * - `vs-dark`\n * - `vs`\n * - `hc-black`\n *\n * É importante salientar que o tema será aplicados a todos os componentes po-code-editor existentes na tela,\n * ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância\n * criada.\n *\n * @default `vs`\n */\n @Input('p-theme') set theme(theme: string) {\n this._theme = PO_CODE_EDITOR_THEMES.includes(theme) ? theme : PO_CODE_EDITOR_THEME_DEFAULT;\n\n if (this.editor) {\n this.setTheme(theme);\n }\n }\n\n get theme(): string {\n return this._theme;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define a altura do componente em pixels do po-code-editor.\n * Esta propriedade não poderá ser alterada após o componente ter sido iniciado.\n * A altura mínima é 150 pixels.\n */\n @Input('p-height') set height(height: string) {\n this._height = parseFloat(height) >= 150 ? parseFloat(height) : 150;\n }\n\n get height(): string {\n return `${this._height}px`;\n }\n\n /* istanbul ignore next */\n onTouched = (value: any) => {};\n /* istanbul ignore next */\n onChangePropagate = (value: any) => {};\n\n getOptions() {\n return { language: this.language, theme: this.theme, readOnly: this.readonly };\n }\n\n registerOnChange(fn: any): void {\n this.onChangePropagate = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n protected convertToBoolean(val: any): boolean {\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === 'true' || val === 'on' || val === '';\n }\n\n if (typeof val === 'number') {\n return val === 1;\n }\n\n return !!val;\n }\n\n abstract writeValue(value: any);\n\n abstract setLanguage(value: any);\n\n abstract setTheme(value: any);\n\n abstract setReadOnly(value: any);\n\n abstract setSuggestions(value: any);\n}\n","import { Injectable } from '@angular/core';\nimport {\n PoCodeEditorSuggestionList,\n PoCodeEditorRegisterableSuggestion\n} from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoCodeEditorSuggestionService {\n private suggestions: PoCodeEditorSuggestionList = {};\n constructor() {}\n\n public getSuggestion(language: string, newSuggestion: Array<PoCodeEditorRegisterableSuggestion>) {\n if (this.suggestions[language]) {\n const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);\n this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];\n return deduplicateSuggestions;\n } else {\n return (this.suggestions[language] = [...newSuggestion]);\n }\n }\n\n private deduplicateSuggestions(\n originalSuggestions: Array<PoCodeEditorRegisterableSuggestion>,\n newSuggestions: Array<PoCodeEditorRegisterableSuggestion>\n ) {\n return newSuggestions.filter(\n newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label'])\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\nimport { PoCodeEditorRegisterableOptions } from './interfaces/po-code-editor-registerable-options.interface';\nimport { PoCodeEditorRegisterableSuggestionType } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n/**\n * @description\n *\n * Wrapper para registro de sintaxes customizadas para o po-code-editor.\n *\n * Para utilização do serviço de idiomas **PoCodeEditorRegister**,\n * deve-se importar o módulo PoCodeEditorModule mesmo já tendo importado\n * o módulo PoModule.\n * Na importação opcionalmente pode ser invocado o método **forRegister** informando um objeto para configuração.\n *\n * Exemplo de configuração:\n * ```\n * import { PoCodeEditorModule, PoCodeEditorRegisterable } from '@po-ui/ng-code-editor';\n *\n * declare const monaco: any; // Importante para usar configurações com tipos definidos pelo Monaco\n *\n * // A função `provideCompletionItems` precisa ser exportada para ser compatível com AOT.\n * export function provideCompletionItems() {\n * const suggestions = [{\n * label: 'terraform',\n * insertText: '#terraform language'\n * }, {\n * label: 'server',\n * insertText: 'server ${1:ip}'\n * }];\n *\n * return { suggestions: suggestions };\n * }\n *\n * const customEditor: PoCodeEditorRegisterable = {\n * language: 'terraform',\n * options: {\n * keywords: ['resource', 'provider', 'variable', 'output', 'module', 'true', 'false'],\n * operators: ['{', '}', '(', ')', '[', ']', '?', ':'],\n * symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n * escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n * tokenizer: {\n * ...\n * }\n * },\n * suggestions: { provideCompletionItems: provideCompletionItems }\n * };\n *\n * @NgModule({\n * declarations: [],\n * imports: [\n * PoModule,\n * PoCodeEditorModule.forRegister(customEditor)\n * ],\n * bootstrap: [AppComponent]\n * })\n * ```\n *\n * > As configurações para o registro de uma nova sintaxe no Monaco code editor podem ser encontradas em\n * > [**Monaco Editor**](https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages).\n */\n@Injectable()\nexport class PoCodeEditorRegister implements PoCodeEditorRegisterable {\n /** Sintaxe a ser registrada. */\n language: string;\n\n /** Opções da sintaxe para registro no po-code-editor. */\n options: PoCodeEditorRegisterableOptions;\n\n /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */\n suggestions?: PoCodeEditorRegisterableSuggestionType;\n}\n","import { AfterViewInit, Component, DoCheck, ElementRef, forwardRef, NgZone, ViewChild, Provider } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PoCodeEditorBaseComponent } from './po-code-editor-base.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\nimport { PoCodeEditorSuggestionService } from './po-code-editor-suggestion.service';\n\n// variáveis relacionadas ao Monaco\nlet loadedMonaco: boolean = false;\nlet loadPromise: Promise<void>;\n\ndeclare const monaco: any;\n// eslint-disable-next-line\ndeclare const require: any;\n\n/* istanbul ignore next */\nconst providers: Array<Provider> = [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line\n useExisting: forwardRef(() => PoCodeEditorComponent),\n multi: true\n }\n];\n\n/**\n * @docsExtends PoCodeEditorBaseComponent\n *\n * @example\n *\n * <example name=\"po-code-editor-basic\" title=\"PO Code Editor Basic\">\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.html\"> </file>\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-labs\" title=\"PO Code Editor Labs\">\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.html\"> </file>\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-diff\" title=\"PO Code Editor - Diff\">\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.html\"> </file>\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-terraform\" title=\"PO Code Editor - Terraform\">\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.html\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.constant.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.module.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-suggestion\" title=\"PO Code Editor Suggestion\">\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.html\"> </file>\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.ts\"> </file>\n * </example>\n */\n@Component({\n selector: 'po-code-editor',\n templateUrl: './po-code-editor.component.html',\n providers\n})\nexport class PoCodeEditorComponent extends PoCodeEditorBaseComponent implements AfterViewInit, DoCheck {\n @ViewChild('editorContainer', { static: true }) editorContainer: ElementRef;\n\n canLoad = false;\n\n constructor(\n private zone: NgZone,\n private el: ElementRef,\n private poCodeEditorSuggestionService: PoCodeEditorSuggestionService,\n private codeEditorRegister?: PoCodeEditorRegister\n ) {\n super();\n }\n\n /* istanbul ignore next */\n ngAfterViewInit(): void {\n if (loadedMonaco) {\n /* istanbul ignore next */\n loadPromise.then(() => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n });\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: any) => {\n /* istanbul ignore next */\n const onGotAmdLoader: any = () => {\n (<any>window).require.config({ paths: { 'vs': './assets/monaco/vs' } });\n (<any>window).require(['vs/editor/editor.main'], () => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n resolve();\n });\n });\n };\n\n if (!(<any>window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = './assets/monaco/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n }\n });\n }\n }\n\n ngDoCheck() {\n if (this.canLoad && this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n this.canLoad = false;\n }\n }\n\n /* istanbul ignore next */\n monacoCreateModel(value: string) {\n return monaco.editor.createModel(value);\n }\n\n setValueInEditor() {\n if (this.showDiff) {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setModel({\n original: this.monacoCreateModel(this.value),\n modified: this.monacoCreateModel(this.modifiedValue)\n });\n }\n });\n } else {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setValue(this.value);\n }\n });\n }\n }\n\n setLanguage(language: string) {\n if (this.showDiff) {\n this.setMonacoLanguage(this.editor.getModel().original, language);\n this.setMonacoLanguage(this.editor.getModel().modified, language);\n } else {\n this.setMonacoLanguage(this.editor.getModel(), language);\n }\n }\n\n /* istanbul ignore next */\n setTheme(theme: string) {\n monaco.editor.setTheme(theme);\n }\n\n setReadOnly(readOnly: boolean) {\n this.editor.updateOptions({ readOnly: readOnly });\n }\n\n /* istanbul ignore next */\n setSuggestions(newSuggestions: Array<PoCodeEditorRegisterableSuggestion>, language = this.language) {\n if (!newSuggestions) {\n return;\n }\n\n const suggestions = this.poCodeEditorSuggestionService.getSuggestion(language, newSuggestions);\n\n monaco.languages.registerCompletionItemProvider(language, {\n provideCompletionItems: () => ({ suggestions })\n });\n }\n\n writeValue(value) {\n this.value = value && value instanceof Array ? value[0] : value;\n this.modifiedValue = value && value instanceof Array && value.length > 0 ? value[1] : '';\n this.setValueInEditor();\n }\n\n /* istanbul ignore next */\n private initMonaco(options: any): void {\n if (this.showDiff) {\n this.editor = monaco.editor.createDiffEditor(this.editorContainer.nativeElement, options);\n\n this.editor.setModel({\n original: monaco.editor.createModel(this.value),\n modified: monaco.editor.createModel(this.modifiedValue)\n });\n\n this.editor.onDidUpdateDiff((e: any) => {\n const original = this.editor.getModel().original.getValue();\n const modified = this.editor.getModel().modified.getValue();\n this.onChangePropagate([original, modified]);\n });\n } else {\n this.editor = monaco.editor.create(this.editorContainer.nativeElement, options);\n this.editor.setValue(this.value);\n this.editor.onDidChangeModelContent((e: any) => {\n const value = this.editor.getValue();\n this.onChangePropagate(value);\n this.zone.run(() => (this.value = value));\n });\n }\n setTimeout(() => {\n this.setLanguage(this.language);\n this.setSuggestions(this.suggestions);\n }, 500);\n }\n\n /* istanbul ignore next */\n private setMonacoLanguage(model, language) {\n monaco.editor.setModelLanguage(model, language);\n }\n\n private registerCustomLanguage() {\n if (this.codeEditorRegister.language) {\n monaco.languages.register({ id: this.codeEditorRegister.language });\n\n if (this.codeEditorRegister.options) {\n monaco.languages.setMonarchTokensProvider(this.codeEditorRegister.language, this.codeEditorRegister.options);\n }\n\n if (this.codeEditorRegister.suggestions) {\n this.setSuggestions(\n this.codeEditorRegister.suggestions.provideCompletionItems().suggestions,\n this.codeEditorRegister.language\n );\n }\n }\n }\n}\n","<div #editorContainer [style.height]=\"height\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PoCodeEditorComponent } from './po-code-editor.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\n\n/**\n * @description\n *\n * Módulo do componente po-code-editor.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [PoCodeEditorComponent],\n exports: [PoCodeEditorComponent],\n providers: [PoCodeEditorRegister]\n})\nexport class PoCodeEditorModule {\n static forRegister(props: PoCodeEditorRegisterable): ModuleWithProviders<PoCodeEditorModule> {\n return {\n ngModule: PoCodeEditorModule,\n providers: [\n {\n provide: PoCodeEditorRegister,\n useValue: props\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PoCodeEditorSuggestionService","i2.PoCodeEditorRegister"],"mappings":"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"}
1
+ {"version":3,"file":"po-ui-ng-code-editor.mjs","sources":["../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-base.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-suggestion.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor-register.service.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.ts","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.component.html","../../../projects/code-editor/src/lib/components/po-code-editor/po-code-editor.module.ts","../../../projects/code-editor/src/po-ui-ng-code-editor.ts"],"sourcesContent":["import { Input, Directive } from '@angular/core';\nimport { ControlValueAccessor } from '@angular/forms';\n\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\nconst PO_CODE_EDITOR_THEMES = ['vs-dark', 'vs', 'hc-black'];\nconst PO_CODE_EDITOR_THEME_DEFAULT = 'vs';\n\n/**\n * @description\n *\n * O `po-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft.\n *\n * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da linguagem\n * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual\n * Studio Code, com autocomplete e fechamento automático de brackets.\n *\n * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar\n * receitas utilizando Terraform para gerenciar topologias.\n * É importante ressaltar que este não é um componente para edição de textos comuns.\n *\n * O [(ngModel)] deve ser usado para manipular o conteúdo do po-code-editor, ou seja, tanto para incluir um conteúdo quanto\n * para recuperar o conteúdo do po-code-editor, utiliza-se uma variável passada por [(ngModel)].\n *\n * #### Adicionando o pacote @po-ui/ng-code-editor\n *\n * Para instalar o pacote `po-code-editor` em sua aplicação execute:\n *\n * ```shell\n * ng add @po-ui/ng-code-editor\n * ```\n *\n * O comando `ng add` do `Angular CLI`:\n * - inclui o `po-code-editor` no seu projeto;\n * - adiciona o módulo `PoCodeEditorModule`:;\n *\n * ```\n * // app.module.ts\n * ...\n * import { PoModule } from '@po-ui/ng-components';\n * import { PoCodeEditorModule } from '@po-ui/ng-code-editor';\n * ...\n * @NgModule({\n * imports: [\n * ...\n * PoModule,\n * PoCodeEditorModule\n * ],\n * ...\n * })\n * export class AppModule { }\n * ```\n *\n * - adiciona o tema PO UI e também o *asset* do Monaco no arquivo `angular.json`, conforme abaixo:\n *\n * <pre ngNonBindable>\n * ...\n * \"assets\": [\n * { \"glob\": \"&#42;&#42;/&#42;\", \"input\": \"node_modules/monaco-editor/min\", \"output\": \"/assets/monaco/\" }\n * ],\n * \"styles\": [\n * \"./node_modules/@po-ui/style/css/po-theme-default.min.css\"\n * ]\n * ...\n * </pre>\n */\n@Directive()\nexport abstract class PoCodeEditorBaseComponent implements ControlValueAccessor {\n editor: any;\n modifiedValue: string = '';\n value: any = '';\n\n private _height: number = 150;\n private _language = 'plainText';\n private _readonly: boolean = false;\n private _showDiff: boolean = false;\n private _suggestions: Array<PoCodeEditorRegisterableSuggestion>;\n private _theme = PO_CODE_EDITOR_THEME_DEFAULT;\n\n /**\n * @optional\n *\n * @description\n *\n * Linguagem na qual será apresentado o código fonte.\n * Para saber quais são as linguagens compatíveis, consulte a documentação oficial do\n * [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).\n *\n * Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:\n * [**po-code-editor-register**](https://po-ui.io/documentation/po-code-editor-register?view=doc).\n *\n * @default `plainText`\n */\n @Input('p-language') set language(language: string) {\n this._language = language && language.length ? language.trim() : 'plainText';\n\n if (this.editor && this._language) {\n this.setLanguage(this._language);\n }\n }\n\n get language(): string {\n return this._language;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de leitura.\n *\n * Neste caso, não é possível editar o código inserido.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-readonly') set readonly(readonly: boolean) {\n this._readonly = <any>readonly === '' ? true : this.convertToBoolean(readonly);\n\n if (this.editor) {\n this.setReadOnly(readonly);\n }\n }\n\n get readonly(): boolean {\n return this._readonly;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Indica se o editor será aberto em modo de comparação.\n *\n * Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve\n * conter uma string com o código original e na segunda posição uma string código modificado para efeito de\n * comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição\n * do array consequentemente.\n *\n * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.\n *\n * @default `false`\n */\n @Input('p-show-diff') set showDiff(showDiff: boolean) {\n this._showDiff = <any>showDiff === '' ? true : this.convertToBoolean(showDiff);\n }\n\n get showDiff(): boolean {\n return this._showDiff;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Lista de sugestões usadas pelo autocomplete dentro do editor.\n *\n * Para visualizar a lista de sugestões use o comando `CTRL + SPACE`.\n *\n * Caso o editor esteja usando uma linguagem que já tenha uma lista de sugestões predefinida, o valor passado será adicionado\n * a lista preexistente, aumentando as opções para o usuário.\n *\n * Caso tenha mais de um editor da mesma linguagem na aplicação, as sugestões serão adicionadas para que todos os editores da mesma linguagem\n * tenham as mesmas sugestões.\n *\n * ```\n * <po-code-editor\n * [p-suggestions]=\"[{ label: 'po', insertText: 'Portinari UI' }, { label: 'ng', insertText: 'Angular' }]\">\n * </po-code-editor>\n * ```\n *\n * Ao fornecer uma lista de sugestões é possível acelerar a escrita de scripts pelos usuários.\n */\n @Input('p-suggestions') set suggestions(values: Array<PoCodeEditorRegisterableSuggestion>) {\n this._suggestions = values;\n\n if (this.editor && this._suggestions) {\n this.setSuggestions(this._suggestions);\n }\n }\n\n get suggestions(): Array<PoCodeEditorRegisterableSuggestion> {\n return this._suggestions;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define um tema para o editor.\n *\n * Temas válidos:\n * - `vs-dark`\n * - `vs`\n * - `hc-black`\n *\n * É importante salientar que o tema será aplicados a todos os componentes po-code-editor existentes na tela,\n * ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância\n * criada.\n *\n * @default `vs`\n */\n @Input('p-theme') set theme(theme: string) {\n this._theme = PO_CODE_EDITOR_THEMES.includes(theme) ? theme : PO_CODE_EDITOR_THEME_DEFAULT;\n\n if (this.editor) {\n this.setTheme(theme);\n }\n }\n\n get theme(): string {\n return this._theme;\n }\n\n /**\n * @optional\n *\n * @description\n *\n * Define a altura do componente em pixels do po-code-editor.\n * Esta propriedade não poderá ser alterada após o componente ter sido iniciado.\n * A altura mínima é 150 pixels.\n */\n @Input('p-height') set height(height: string) {\n this._height = parseFloat(height) >= 150 ? parseFloat(height) : 150;\n }\n\n get height(): string {\n return `${this._height}px`;\n }\n\n /* istanbul ignore next */\n onTouched = (value: any) => {};\n /* istanbul ignore next */\n onChangePropagate = (value: any) => {};\n\n getOptions() {\n return { language: this.language, theme: this.theme, readOnly: this.readonly };\n }\n\n registerOnChange(fn: any): void {\n this.onChangePropagate = fn;\n }\n\n registerOnTouched(fn: any): void {\n this.onTouched = fn;\n }\n\n protected convertToBoolean(val: any): boolean {\n if (typeof val === 'string') {\n val = val.toLowerCase().trim();\n return val === 'true' || val === 'on' || val === '';\n }\n\n if (typeof val === 'number') {\n return val === 1;\n }\n\n return !!val;\n }\n\n abstract writeValue(value: any);\n\n abstract setLanguage(value: any);\n\n abstract setTheme(value: any);\n\n abstract setReadOnly(value: any);\n\n abstract setSuggestions(value: any);\n}\n","import { Injectable } from '@angular/core';\nimport {\n PoCodeEditorSuggestionList,\n PoCodeEditorRegisterableSuggestion\n} from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n@Injectable({\n providedIn: 'root'\n})\nexport class PoCodeEditorSuggestionService {\n private suggestions: PoCodeEditorSuggestionList = {};\n constructor() {}\n\n public getSuggestion(language: string, newSuggestion: Array<PoCodeEditorRegisterableSuggestion>) {\n if (this.suggestions[language]) {\n const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);\n this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];\n return deduplicateSuggestions;\n } else {\n return (this.suggestions[language] = [...newSuggestion]);\n }\n }\n\n private deduplicateSuggestions(\n originalSuggestions: Array<PoCodeEditorRegisterableSuggestion>,\n newSuggestions: Array<PoCodeEditorRegisterableSuggestion>\n ) {\n return newSuggestions.filter(\n newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label'])\n );\n }\n}\n","import { Injectable } from '@angular/core';\n\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\nimport { PoCodeEditorRegisterableOptions } from './interfaces/po-code-editor-registerable-options.interface';\nimport { PoCodeEditorRegisterableSuggestionType } from './interfaces/po-code-editor-registerable-suggestion.interface';\n\n/**\n * @description\n *\n * Wrapper para registro de sintaxes customizadas para o po-code-editor.\n *\n * Para utilização do serviço de idiomas **PoCodeEditorRegister**,\n * deve-se importar o módulo PoCodeEditorModule mesmo já tendo importado\n * o módulo PoModule.\n * Na importação opcionalmente pode ser invocado o método **forRegister** informando um objeto para configuração.\n *\n * Exemplo de configuração:\n * ```\n * import { PoCodeEditorModule, PoCodeEditorRegisterable } from '@po-ui/ng-code-editor';\n *\n * declare const monaco: any; // Importante para usar configurações com tipos definidos pelo Monaco\n *\n * // A função `provideCompletionItems` precisa ser exportada para ser compatível com AOT.\n * export function provideCompletionItems() {\n * const suggestions = [{\n * label: 'terraform',\n * insertText: '#terraform language'\n * }, {\n * label: 'server',\n * insertText: 'server ${1:ip}'\n * }];\n *\n * return { suggestions: suggestions };\n * }\n *\n * const customEditor: PoCodeEditorRegisterable = {\n * language: 'terraform',\n * options: {\n * keywords: ['resource', 'provider', 'variable', 'output', 'module', 'true', 'false'],\n * operators: ['{', '}', '(', ')', '[', ']', '?', ':'],\n * symbols: /[=><!~?:&|+\\-*\\/\\^%]+/,\n * escapes: /\\\\(?:[abfnrtv\\\\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,\n * tokenizer: {\n * ...\n * }\n * },\n * suggestions: { provideCompletionItems: provideCompletionItems }\n * };\n *\n * @NgModule({\n * declarations: [],\n * imports: [\n * PoModule,\n * PoCodeEditorModule.forRegister(customEditor)\n * ],\n * bootstrap: [AppComponent]\n * })\n * ```\n *\n * > As configurações para o registro de uma nova sintaxe no Monaco code editor podem ser encontradas em\n * > [**Monaco Editor**](https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages).\n */\n@Injectable({\n providedIn: 'root'\n})\nexport class PoCodeEditorRegister implements PoCodeEditorRegisterable {\n /** Sintaxe a ser registrada. */\n language: string;\n\n /** Opções da sintaxe para registro no po-code-editor. */\n options: PoCodeEditorRegisterableOptions;\n\n /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */\n suggestions?: PoCodeEditorRegisterableSuggestionType;\n}\n","import { AfterViewInit, Component, DoCheck, ElementRef, forwardRef, NgZone, ViewChild, Provider } from '@angular/core';\nimport { NG_VALUE_ACCESSOR } from '@angular/forms';\n\nimport { PoCodeEditorBaseComponent } from './po-code-editor-base.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterableSuggestion } from './interfaces/po-code-editor-registerable-suggestion.interface';\nimport { PoCodeEditorSuggestionService } from './po-code-editor-suggestion.service';\n\n// variáveis relacionadas ao Monaco\nlet loadedMonaco: boolean = false;\nlet loadPromise: Promise<void>;\n\ndeclare const monaco: any;\n// eslint-disable-next-line\ndeclare const require: any;\n\n/* istanbul ignore next */\nconst providers: Array<Provider> = [\n {\n provide: NG_VALUE_ACCESSOR,\n // eslint-disable-next-line\n useExisting: forwardRef(() => PoCodeEditorComponent),\n multi: true\n }\n];\n\n/**\n * @docsExtends PoCodeEditorBaseComponent\n *\n * @example\n *\n * <example name=\"po-code-editor-basic\" title=\"PO Code Editor Basic\">\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.html\"> </file>\n * <file name=\"sample-po-code-editor-basic/sample-po-code-editor-basic.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-labs\" title=\"PO Code Editor Labs\">\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.html\"> </file>\n * <file name=\"sample-po-code-editor-labs/sample-po-code-editor-labs.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-diff\" title=\"PO Code Editor - Diff\">\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.html\"> </file>\n * <file name=\"sample-po-code-editor-diff/sample-po-code-editor-diff.component.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-terraform\" title=\"PO Code Editor - Terraform\">\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.html\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.constant.ts\"> </file>\n * <file name=\"sample-po-code-editor-terraform/sample-po-code-editor-terraform.module.ts\"> </file>\n * </example>\n *\n * <example name=\"po-code-editor-suggestion\" title=\"PO Code Editor Suggestion\">\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.html\"> </file>\n * <file name=\"sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.ts\"> </file>\n * </example>\n */\n@Component({\n selector: 'po-code-editor',\n templateUrl: './po-code-editor.component.html',\n providers,\n standalone: false\n})\nexport class PoCodeEditorComponent extends PoCodeEditorBaseComponent implements AfterViewInit, DoCheck {\n @ViewChild('editorContainer', { static: true }) editorContainer: ElementRef;\n\n canLoad = false;\n\n constructor(\n private zone: NgZone,\n private el: ElementRef,\n private poCodeEditorSuggestionService: PoCodeEditorSuggestionService,\n private codeEditorRegister?: PoCodeEditorRegister\n ) {\n super();\n }\n\n /* istanbul ignore next */\n ngAfterViewInit(): void {\n if (loadedMonaco) {\n /* istanbul ignore next */\n loadPromise.then(() => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n });\n });\n } else {\n loadedMonaco = true;\n loadPromise = new Promise<void>((resolve: any) => {\n /* istanbul ignore next */\n const onGotAmdLoader: any = () => {\n (<any>window).require.config({ paths: { 'vs': './assets/monaco/vs' } });\n (<any>window).require(['vs/editor/editor.main'], () => {\n setTimeout(() => {\n if (this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n } else {\n this.canLoad = true;\n }\n resolve();\n });\n });\n };\n\n if (!(<any>window).require) {\n const loaderScript: HTMLScriptElement = document.createElement('script');\n loaderScript.type = 'text/javascript';\n loaderScript.src = './assets/monaco/vs/loader.js';\n loaderScript.addEventListener('load', onGotAmdLoader);\n document.body.appendChild(loaderScript);\n }\n });\n }\n }\n\n ngDoCheck() {\n if (this.canLoad && this.el.nativeElement.offsetWidth) {\n this.registerCustomLanguage();\n this.initMonaco(this.getOptions());\n this.canLoad = false;\n }\n }\n\n /* istanbul ignore next */\n monacoCreateModel(value: string) {\n return monaco.editor.createModel(value);\n }\n\n setValueInEditor() {\n if (this.showDiff) {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setModel({\n original: this.monacoCreateModel(this.value),\n modified: this.monacoCreateModel(this.modifiedValue)\n });\n }\n });\n } else {\n setTimeout(() => {\n if (this.editor) {\n this.editor.setValue(this.value);\n }\n });\n }\n }\n\n setLanguage(language: string) {\n if (this.showDiff) {\n this.setMonacoLanguage(this.editor.getModel().original, language);\n this.setMonacoLanguage(this.editor.getModel().modified, language);\n } else {\n this.setMonacoLanguage(this.editor.getModel(), language);\n }\n }\n\n /* istanbul ignore next */\n setTheme(theme: string) {\n monaco.editor.setTheme(theme);\n }\n\n setReadOnly(readOnly: boolean) {\n this.editor.updateOptions({ readOnly: readOnly });\n }\n\n /* istanbul ignore next */\n setSuggestions(newSuggestions: Array<PoCodeEditorRegisterableSuggestion>, language = this.language) {\n if (!newSuggestions) {\n return;\n }\n\n const suggestions = this.poCodeEditorSuggestionService.getSuggestion(language, newSuggestions);\n\n monaco.languages.registerCompletionItemProvider(language, {\n provideCompletionItems: () => ({ suggestions })\n });\n }\n\n writeValue(value) {\n this.value = value && value instanceof Array ? value[0] : value;\n this.modifiedValue = value && value instanceof Array && value.length > 0 ? value[1] : '';\n this.setValueInEditor();\n }\n\n /* istanbul ignore next */\n private initMonaco(options: any): void {\n if (this.showDiff) {\n this.editor = monaco.editor.createDiffEditor(this.editorContainer.nativeElement, options);\n\n this.editor.setModel({\n original: monaco.editor.createModel(this.value),\n modified: monaco.editor.createModel(this.modifiedValue)\n });\n\n this.editor.onDidUpdateDiff((e: any) => {\n const original = this.editor.getModel().original.getValue();\n const modified = this.editor.getModel().modified.getValue();\n this.onChangePropagate([original, modified]);\n });\n } else {\n this.editor = monaco.editor.create(this.editorContainer.nativeElement, options);\n this.editor.setValue(this.value);\n this.editor.onDidChangeModelContent((e: any) => {\n const value = this.editor.getValue();\n this.onChangePropagate(value);\n this.zone.run(() => (this.value = value));\n });\n }\n setTimeout(() => {\n this.setLanguage(this.language);\n this.setSuggestions(this.suggestions);\n }, 500);\n }\n\n /* istanbul ignore next */\n private setMonacoLanguage(model, language) {\n monaco.editor.setModelLanguage(model, language);\n }\n\n private registerCustomLanguage() {\n if (this.codeEditorRegister.language) {\n monaco.languages.register({ id: this.codeEditorRegister.language });\n\n if (this.codeEditorRegister.options) {\n monaco.languages.setMonarchTokensProvider(this.codeEditorRegister.language, this.codeEditorRegister.options);\n }\n\n if (this.codeEditorRegister.suggestions) {\n this.setSuggestions(\n this.codeEditorRegister.suggestions.provideCompletionItems().suggestions,\n this.codeEditorRegister.language\n );\n }\n }\n }\n}\n","<div #editorContainer [style.height]=\"height\"></div>\n","import { NgModule, ModuleWithProviders } from '@angular/core';\nimport { CommonModule } from '@angular/common';\n\nimport { PoCodeEditorComponent } from './po-code-editor.component';\nimport { PoCodeEditorRegister } from './po-code-editor-register.service';\nimport { PoCodeEditorRegisterable } from './interfaces/po-code-editor-registerable.interface';\n\n/**\n * @description\n *\n * Módulo do componente po-code-editor.\n */\n@NgModule({\n imports: [CommonModule],\n declarations: [PoCodeEditorComponent],\n exports: [PoCodeEditorComponent],\n providers: [PoCodeEditorRegister]\n})\nexport class PoCodeEditorModule {\n static forRegister(props: PoCodeEditorRegisterable): ModuleWithProviders<PoCodeEditorModule> {\n return {\n ngModule: PoCodeEditorModule,\n providers: [\n {\n provide: PoCodeEditorRegister,\n useValue: props\n }\n ]\n };\n }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1.PoCodeEditorSuggestionService","i2.PoCodeEditorRegister"],"mappings":";;;;;AAKA,MAAM,qBAAqB,GAAG,CAAC,SAAS,EAAE,IAAI,EAAE,UAAU,CAAC;AAC3D,MAAM,4BAA4B,GAAG,IAAI;AAEzC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAyDG;MAEmB,yBAAyB,CAAA;AAC7C,IAAA,MAAM;IACN,aAAa,GAAW,EAAE;IAC1B,KAAK,GAAQ,EAAE;IAEP,OAAO,GAAW,GAAG;IACrB,SAAS,GAAG,WAAW;IACvB,SAAS,GAAY,KAAK;IAC1B,SAAS,GAAY,KAAK;AAC1B,IAAA,YAAY;IACZ,MAAM,GAAG,4BAA4B;AAE7C;;;;;;;;;;;;;AAaG;IACH,IAAyB,QAAQ,CAAC,QAAgB,EAAA;AAChD,QAAA,IAAI,CAAC,SAAS,GAAG,QAAQ,IAAI,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,IAAI,EAAE,GAAG,WAAW;QAE5E,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,SAAS,EAAE;AACjC,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,SAAS,CAAC;;;AAIpC,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;;;;;;;;;AAYG;IACH,IAAyB,QAAQ,CAAC,QAAiB,EAAA;AACjD,QAAA,IAAI,CAAC,SAAS,GAAQ,QAAQ,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;AAE9E,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC;;;AAI9B,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;;;;;;;;;;;;AAeG;IACH,IAA0B,QAAQ,CAAC,QAAiB,EAAA;AAClD,QAAA,IAAI,CAAC,SAAS,GAAQ,QAAQ,KAAK,EAAE,GAAG,IAAI,GAAG,IAAI,CAAC,gBAAgB,CAAC,QAAQ,CAAC;;AAGhF,IAAA,IAAI,QAAQ,GAAA;QACV,OAAO,IAAI,CAAC,SAAS;;AAGvB;;;;;;;;;;;;;;;;;;;;;;AAsBG;IACH,IAA4B,WAAW,CAAC,MAAiD,EAAA;AACvF,QAAA,IAAI,CAAC,YAAY,GAAG,MAAM;QAE1B,IAAI,IAAI,CAAC,MAAM,IAAI,IAAI,CAAC,YAAY,EAAE;AACpC,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,YAAY,CAAC;;;AAI1C,IAAA,IAAI,WAAW,GAAA;QACb,OAAO,IAAI,CAAC,YAAY;;AAG1B;;;;;;;;;;;;;;;;;AAiBG;IACH,IAAsB,KAAK,CAAC,KAAa,EAAA;AACvC,QAAA,IAAI,CAAC,MAAM,GAAG,qBAAqB,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,KAAK,GAAG,4BAA4B;AAE1F,QAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,YAAA,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC;;;AAIxB,IAAA,IAAI,KAAK,GAAA;QACP,OAAO,IAAI,CAAC,MAAM;;AAGpB;;;;;;;;AAQG;IACH,IAAuB,MAAM,CAAC,MAAc,EAAA;QAC1C,IAAI,CAAC,OAAO,GAAG,UAAU,CAAC,MAAM,CAAC,IAAI,GAAG,GAAG,UAAU,CAAC,MAAM,CAAC,GAAG,GAAG;;AAGrE,IAAA,IAAI,MAAM,GAAA;AACR,QAAA,OAAO,CAAG,EAAA,IAAI,CAAC,OAAO,IAAI;;;AAI5B,IAAA,SAAS,GAAG,CAAC,KAAU,KAAI,GAAG;;AAE9B,IAAA,iBAAiB,GAAG,CAAC,KAAU,KAAI,GAAG;IAEtC,UAAU,GAAA;AACR,QAAA,OAAO,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE,KAAK,EAAE,IAAI,CAAC,KAAK,EAAE,QAAQ,EAAE,IAAI,CAAC,QAAQ,EAAE;;AAGhF,IAAA,gBAAgB,CAAC,EAAO,EAAA;AACtB,QAAA,IAAI,CAAC,iBAAiB,GAAG,EAAE;;AAG7B,IAAA,iBAAiB,CAAC,EAAO,EAAA;AACvB,QAAA,IAAI,CAAC,SAAS,GAAG,EAAE;;AAGX,IAAA,gBAAgB,CAAC,GAAQ,EAAA;AACjC,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,GAAG,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC,IAAI,EAAE;YAC9B,OAAO,GAAG,KAAK,MAAM,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,EAAE;;AAGrD,QAAA,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,OAAO,GAAG,KAAK,CAAC;;QAGlB,OAAO,CAAC,CAAC,GAAG;;mHApMM,yBAAyB,GAAA,CAAA,EAAA;6DAAzB,yBAAyB,EAAA,MAAA,EAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,YAAA,EAAA,UAAA,CAAA,EAAA,QAAA,EAAA,CAAA,CAAA,EAAA,aAAA,EAAA,UAAA,CAAA,EAAA,WAAA,EAAA,CAAA,CAAA,EAAA,eAAA,EAAA,aAAA,CAAA,EAAA,KAAA,EAAA,CAAA,CAAA,EAAA,SAAA,EAAA,OAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,EAAA,UAAA,EAAA,QAAA,CAAA,EAAA,EAAA,CAAA;;iFAAzB,yBAAyB,EAAA,CAAA;cAD9C;gBA2B0B,QAAQ,EAAA,CAAA;kBAAhC,KAAK;mBAAC,YAAY;YAyBM,QAAQ,EAAA,CAAA;kBAAhC,KAAK;mBAAC,YAAY;YA4BO,QAAQ,EAAA,CAAA;kBAAjC,KAAK;mBAAC,aAAa;YA+BQ,WAAW,EAAA,CAAA;kBAAtC,KAAK;mBAAC,eAAe;YA8BA,KAAK,EAAA,CAAA;kBAA1B,KAAK;mBAAC,SAAS;YAqBO,MAAM,EAAA,CAAA;kBAA5B,KAAK;mBAAC,UAAU;;;MC3NN,6BAA6B,CAAA;IAChC,WAAW,GAA+B,EAAE;AACpD,IAAA,WAAA,GAAA;IAEO,aAAa,CAAC,QAAgB,EAAE,aAAwD,EAAA;AAC7F,QAAA,IAAI,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE;AAC9B,YAAA,MAAM,sBAAsB,GAAG,IAAI,CAAC,sBAAsB,CAAC,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,aAAa,CAAC;AACrG,YAAA,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,EAAE,GAAG,sBAAsB,CAAC;AACvF,YAAA,OAAO,sBAAsB;;aACxB;AACL,YAAA,QAAQ,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,GAAG,CAAC,GAAG,aAAa,CAAC;;;IAInD,sBAAsB,CAC5B,mBAA8D,EAC9D,cAAyD,EAAA;AAEzD,QAAA,OAAO,cAAc,CAAC,MAAM,CAC1B,OAAO,IAAI,CAAC,mBAAmB,CAAC,IAAI,CAAC,YAAY,IAAI,YAAY,CAAC,OAAO,CAAC,KAAK,OAAO,CAAC,OAAO,CAAC,CAAC,CACjG;;uHApBQ,6BAA6B,GAAA,CAAA,EAAA;gEAA7B,6BAA6B,EAAA,OAAA,EAA7B,6BAA6B,CAAA,IAAA,EAAA,UAAA,EAF5B,MAAM,EAAA,CAAA;;iFAEP,6BAA6B,EAAA,CAAA;cAHzC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;ACFD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAuDG;MAIU,oBAAoB,CAAA;;AAE/B,IAAA,QAAQ;;AAGR,IAAA,OAAO;;AAGP,IAAA,WAAW;8GARA,oBAAoB,GAAA,CAAA,EAAA;gEAApB,oBAAoB,EAAA,OAAA,EAApB,oBAAoB,CAAA,IAAA,EAAA,UAAA,EAFnB,MAAM,EAAA,CAAA;;iFAEP,oBAAoB,EAAA,CAAA;cAHhC,UAAU;AAAC,QAAA,IAAA,EAAA,CAAA;AACV,gBAAA,UAAU,EAAE;AACb,aAAA;;;;ACxDD;AACA,IAAI,YAAY,GAAY,KAAK;AACjC,IAAI,WAA0B;AAM9B;AACA,MAAM,SAAS,GAAoB;AACjC,IAAA;AACE,QAAA,OAAO,EAAE,iBAAiB;;AAE1B,QAAA,WAAW,EAAE,UAAU,CAAC,MAAM,qBAAqB,CAAC;AACpD,QAAA,KAAK,EAAE;AACR;CACF;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AA+BG;AAOG,MAAO,qBAAsB,SAAQ,yBAAyB,CAAA;AAMxD,IAAA,IAAA;AACA,IAAA,EAAA;AACA,IAAA,6BAAA;AACA,IAAA,kBAAA;AARsC,IAAA,eAAe;IAE/D,OAAO,GAAG,KAAK;AAEf,IAAA,WAAA,CACU,IAAY,EACZ,EAAc,EACd,6BAA4D,EAC5D,kBAAyC,EAAA;AAEjD,QAAA,KAAK,EAAE;QALC,IAAI,CAAA,IAAA,GAAJ,IAAI;QACJ,IAAE,CAAA,EAAA,GAAF,EAAE;QACF,IAA6B,CAAA,6BAAA,GAA7B,6BAA6B;QAC7B,IAAkB,CAAA,kBAAA,GAAlB,kBAAkB;;;IAM5B,eAAe,GAAA;QACb,IAAI,YAAY,EAAE;;AAEhB,YAAA,WAAW,CAAC,IAAI,CAAC,MAAK;gBACpB,UAAU,CAAC,MAAK;oBACd,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE;wBACrC,IAAI,CAAC,sBAAsB,EAAE;wBAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;yBAC7B;AACL,wBAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAEvB,iBAAC,CAAC;AACJ,aAAC,CAAC;;aACG;YACL,YAAY,GAAG,IAAI;AACnB,YAAA,WAAW,GAAG,IAAI,OAAO,CAAO,CAAC,OAAY,KAAI;;gBAE/C,MAAM,cAAc,GAAQ,MAAK;AACzB,oBAAA,MAAO,CAAC,OAAO,CAAC,MAAM,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,EAAE,CAAC;oBACjE,MAAO,CAAC,OAAO,CAAC,CAAC,uBAAuB,CAAC,EAAE,MAAK;wBACpD,UAAU,CAAC,MAAK;4BACd,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE;gCACrC,IAAI,CAAC,sBAAsB,EAAE;gCAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;;iCAC7B;AACL,gCAAA,IAAI,CAAC,OAAO,GAAG,IAAI;;AAErB,4BAAA,OAAO,EAAE;AACX,yBAAC,CAAC;AACJ,qBAAC,CAAC;AACJ,iBAAC;AAED,gBAAA,IAAI,CAAO,MAAO,CAAC,OAAO,EAAE;oBAC1B,MAAM,YAAY,GAAsB,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC;AACxE,oBAAA,YAAY,CAAC,IAAI,GAAG,iBAAiB;AACrC,oBAAA,YAAY,CAAC,GAAG,GAAG,8BAA8B;AACjD,oBAAA,YAAY,CAAC,gBAAgB,CAAC,MAAM,EAAE,cAAc,CAAC;AACrD,oBAAA,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,YAAY,CAAC;;AAE3C,aAAC,CAAC;;;IAIN,SAAS,GAAA;AACP,QAAA,IAAI,IAAI,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,aAAa,CAAC,WAAW,EAAE;YACrD,IAAI,CAAC,sBAAsB,EAAE;YAC7B,IAAI,CAAC,UAAU,CAAC,IAAI,CAAC,UAAU,EAAE,CAAC;AAClC,YAAA,IAAI,CAAC,OAAO,GAAG,KAAK;;;;AAKxB,IAAA,iBAAiB,CAAC,KAAa,EAAA;QAC7B,OAAO,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC;;IAGzC,gBAAgB,GAAA;AACd,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;YACjB,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;AACf,oBAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;wBACnB,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,KAAK,CAAC;wBAC5C,QAAQ,EAAE,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,aAAa;AACpD,qBAAA,CAAC;;AAEN,aAAC,CAAC;;aACG;YACL,UAAU,CAAC,MAAK;AACd,gBAAA,IAAI,IAAI,CAAC,MAAM,EAAE;oBACf,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;;AAEpC,aAAC,CAAC;;;AAIN,IAAA,WAAW,CAAC,QAAgB,EAAA;AAC1B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;AACjE,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,CAAC;;aAC5D;AACL,YAAA,IAAI,CAAC,iBAAiB,CAAC,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,EAAE,QAAQ,CAAC;;;;AAK5D,IAAA,QAAQ,CAAC,KAAa,EAAA;AACpB,QAAA,MAAM,CAAC,MAAM,CAAC,QAAQ,CAAC,KAAK,CAAC;;AAG/B,IAAA,WAAW,CAAC,QAAiB,EAAA;QAC3B,IAAI,CAAC,MAAM,CAAC,aAAa,CAAC,EAAE,QAAQ,EAAE,QAAQ,EAAE,CAAC;;;AAInD,IAAA,cAAc,CAAC,cAAyD,EAAE,QAAQ,GAAG,IAAI,CAAC,QAAQ,EAAA;QAChG,IAAI,CAAC,cAAc,EAAE;YACnB;;AAGF,QAAA,MAAM,WAAW,GAAG,IAAI,CAAC,6BAA6B,CAAC,aAAa,CAAC,QAAQ,EAAE,cAAc,CAAC;AAE9F,QAAA,MAAM,CAAC,SAAS,CAAC,8BAA8B,CAAC,QAAQ,EAAE;YACxD,sBAAsB,EAAE,OAAO,EAAE,WAAW,EAAE;AAC/C,SAAA,CAAC;;AAGJ,IAAA,UAAU,CAAC,KAAK,EAAA;AACd,QAAA,IAAI,CAAC,KAAK,GAAG,KAAK,IAAI,KAAK,YAAY,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,KAAK;QAC/D,IAAI,CAAC,aAAa,GAAG,KAAK,IAAI,KAAK,YAAY,KAAK,IAAI,KAAK,CAAC,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,CAAC,GAAG,EAAE;QACxF,IAAI,CAAC,gBAAgB,EAAE;;;AAIjB,IAAA,UAAU,CAAC,OAAY,EAAA;AAC7B,QAAA,IAAI,IAAI,CAAC,QAAQ,EAAE;AACjB,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC;AAEzF,YAAA,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC;gBACnB,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,KAAK,CAAC;gBAC/C,QAAQ,EAAE,MAAM,CAAC,MAAM,CAAC,WAAW,CAAC,IAAI,CAAC,aAAa;AACvD,aAAA,CAAC;YAEF,IAAI,CAAC,MAAM,CAAC,eAAe,CAAC,CAAC,CAAM,KAAI;AACrC,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;AAC3D,gBAAA,MAAM,QAAQ,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,CAAC,QAAQ,CAAC,QAAQ,EAAE;gBAC3D,IAAI,CAAC,iBAAiB,CAAC,CAAC,QAAQ,EAAE,QAAQ,CAAC,CAAC;AAC9C,aAAC,CAAC;;aACG;AACL,YAAA,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC;YAC/E,IAAI,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC;YAChC,IAAI,CAAC,MAAM,CAAC,uBAAuB,CAAC,CAAC,CAAM,KAAI;gBAC7C,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE;AACpC,gBAAA,IAAI,CAAC,iBAAiB,CAAC,KAAK,CAAC;AAC7B,gBAAA,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,IAAI,CAAC,KAAK,GAAG,KAAK,CAAC,CAAC;AAC3C,aAAC,CAAC;;QAEJ,UAAU,CAAC,MAAK;AACd,YAAA,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,QAAQ,CAAC;AAC/B,YAAA,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,WAAW,CAAC;SACtC,EAAE,GAAG,CAAC;;;IAID,iBAAiB,CAAC,KAAK,EAAE,QAAQ,EAAA;QACvC,MAAM,CAAC,MAAM,CAAC,gBAAgB,CAAC,KAAK,EAAE,QAAQ,CAAC;;IAGzC,sBAAsB,GAAA;AAC5B,QAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE;AACpC,YAAA,MAAM,CAAC,SAAS,CAAC,QAAQ,CAAC,EAAE,EAAE,EAAE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,CAAC;AAEnE,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,OAAO,EAAE;AACnC,gBAAA,MAAM,CAAC,SAAS,CAAC,wBAAwB,CAAC,IAAI,CAAC,kBAAkB,CAAC,QAAQ,EAAE,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC;;AAG9G,YAAA,IAAI,IAAI,CAAC,kBAAkB,CAAC,WAAW,EAAE;gBACvC,IAAI,CAAC,cAAc,CACjB,IAAI,CAAC,kBAAkB,CAAC,WAAW,CAAC,sBAAsB,EAAE,CAAC,WAAW,EACxE,IAAI,CAAC,kBAAkB,CAAC,QAAQ,CACjC;;;;+GA9KI,qBAAqB,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,MAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAA,EAAA,CAAA,UAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAA,6BAAA,CAAA,EAAA,EAAA,CAAA,iBAAA,CAAAC,oBAAA,CAAA,CAAA,CAAA,EAAA;6DAArB,qBAAqB,EAAA,SAAA,EAAA,CAAA,CAAA,gBAAA,CAAA,CAAA,EAAA,SAAA,EAAA,SAAA,2BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;;;;;iEAHhC,SAAS,CAAA,EAAA,EAAA,CAAA,0BAAA,CAAA,EAAA,KAAA,EAAA,CAAA,EAAA,IAAA,EAAA,CAAA,EAAA,MAAA,EAAA,CAAA,CAAA,iBAAA,EAAA,EAAA,CAAA,CAAA,EAAA,QAAA,EAAA,SAAA,8BAAA,CAAA,EAAA,EAAA,GAAA,EAAA,EAAA,IAAA,EAAA,GAAA,CAAA,EAAA;YC7DX,EAAoD,CAAA,SAAA,CAAA,CAAA,EAAA,KAAA,EAAA,IAAA,EAAA,CAAA,CAAA;;YAA9B,EAAuB,CAAA,WAAA,CAAA,QAAA,EAAA,GAAA,CAAA,MAAA,CAAA;;;iFDgEhC,qBAAqB,EAAA,CAAA;cANjC,SAAS;2BACE,gBAAgB,EAAA,SAAA,EAE1B,SAAS,EAAA,UAAA,EACG,KAAK,EAAA,QAAA,EAAA,0DAAA,EAAA;yIAG+B,eAAe,EAAA,CAAA;kBAA9D,SAAS;AAAC,YAAA,IAAA,EAAA,CAAA,iBAAiB,EAAE,EAAE,MAAM,EAAE,IAAI,EAAE;;kFADnC,qBAAqB,EAAA,EAAA,SAAA,EAAA,uBAAA,EAAA,QAAA,EAAA,2DAAA,EAAA,UAAA,EAAA,EAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;AEzDlC;;;;AAIG;MAOU,kBAAkB,CAAA;IAC7B,OAAO,WAAW,CAAC,KAA+B,EAAA;QAChD,OAAO;AACL,YAAA,QAAQ,EAAE,kBAAkB;AAC5B,YAAA,SAAS,EAAE;AACT,gBAAA;AACE,oBAAA,OAAO,EAAE,oBAAoB;AAC7B,oBAAA,QAAQ,EAAE;AACX;AACF;SACF;;4GAVQ,kBAAkB,GAAA,CAAA,EAAA;4DAAlB,kBAAkB,EAAA,CAAA;iEAFlB,CAAC,oBAAoB,CAAC,EAAA,OAAA,EAAA,CAHvB,YAAY,CAAA,EAAA,CAAA;;iFAKX,kBAAkB,EAAA,CAAA;cAN9B,QAAQ;AAAC,QAAA,IAAA,EAAA,CAAA;gBACR,OAAO,EAAE,CAAC,YAAY,CAAC;gBACvB,YAAY,EAAE,CAAC,qBAAqB,CAAC;gBACrC,OAAO,EAAE,CAAC,qBAAqB,CAAC;gBAChC,SAAS,EAAE,CAAC,oBAAoB;AACjC,aAAA;;AACY,CAAA,YAAA,EAAA,CAAA,OAAA,SAAA,KAAA,WAAA,IAAA,SAAA,KAAA,EAAA,CAAA,kBAAA,CAAA,kBAAkB,EAJd,EAAA,YAAA,EAAA,CAAA,qBAAqB,CAD1B,EAAA,OAAA,EAAA,CAAA,YAAY,aAEZ,qBAAqB,CAAA,EAAA,CAAA,CAAA,EAAA,GAAA;;ACfjC;;AAEG;;;;"}
@@ -190,5 +190,5 @@ export declare abstract class PoCodeEditorBaseComponent implements ControlValueA
190
190
  abstract setReadOnly(value: any): any;
191
191
  abstract setSuggestions(value: any): any;
192
192
  static ɵfac: i0.ɵɵFactoryDeclaration<PoCodeEditorBaseComponent, never>;
193
- static ɵdir: i0.ɵɵDirectiveDeclaration<PoCodeEditorBaseComponent, never, never, { "language": { "alias": "p-language"; "required": false; }; "readonly": { "alias": "p-readonly"; "required": false; }; "showDiff": { "alias": "p-show-diff"; "required": false; }; "suggestions": { "alias": "p-suggestions"; "required": false; }; "theme": { "alias": "p-theme"; "required": false; }; "height": { "alias": "p-height"; "required": false; }; }, {}, never, never, false, never>;
193
+ static ɵdir: i0.ɵɵDirectiveDeclaration<PoCodeEditorBaseComponent, never, never, { "language": { "alias": "p-language"; "required": false; }; "readonly": { "alias": "p-readonly"; "required": false; }; "showDiff": { "alias": "p-show-diff"; "required": false; }; "suggestions": { "alias": "p-suggestions"; "required": false; }; "theme": { "alias": "p-theme"; "required": false; }; "height": { "alias": "p-height"; "required": false; }; }, {}, never, never, true, never>;
194
194
  }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@po-ui/ng-code-editor",
3
- "version": "18.23.0",
3
+ "version": "19.0.0-next.0",
4
4
  "description": "PO UI - Code Editor",
5
5
  "author": "PO UI",
6
6
  "license": "MIT",
@@ -11,20 +11,20 @@
11
11
  },
12
12
  "schematics": "./schematics/collection.json",
13
13
  "dependencies": {
14
- "@po-ui/ng-components": "18.23.0",
15
- "@po-ui/ng-schematics": "18.23.0",
14
+ "@po-ui/ng-components": "19.0.0-next.0",
15
+ "@po-ui/ng-schematics": "19.0.0-next.0",
16
16
  "monaco-editor": "0.44.0",
17
17
  "core-js": "^3.33.3",
18
18
  "intl": "^1.2.5",
19
19
  "tslib": "^2.6.2"
20
20
  },
21
21
  "peerDependencies": {
22
- "@angular/common": "^18",
23
- "@angular/core": "^18",
24
- "@angular/forms": "^18",
25
- "@po-ui/ng-components": "18.23.0",
22
+ "@angular/common": "^19",
23
+ "@angular/core": "^19",
24
+ "@angular/forms": "^19",
25
+ "@po-ui/ng-components": "19.0.0-next.0",
26
26
  "monaco-editor": "0.44.0",
27
- "zone.js": "~0.14.4"
27
+ "zone.js": "~0.15.0"
28
28
  },
29
29
  "module": "fesm2022/po-ui-ng-code-editor.mjs",
30
30
  "typings": "index.d.ts",
@@ -34,8 +34,6 @@
34
34
  },
35
35
  ".": {
36
36
  "types": "./index.d.ts",
37
- "esm2022": "./esm2022/po-ui-ng-code-editor.mjs",
38
- "esm": "./esm2022/po-ui-ng-code-editor.mjs",
39
37
  "default": "./fesm2022/po-ui-ng-code-editor.mjs"
40
38
  }
41
39
  },
@@ -1,5 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.default = default_1;
3
4
  const schematics_1 = require("@angular-devkit/schematics");
4
5
  const tasks_1 = require("@angular-devkit/schematics/tasks");
5
6
  const package_config_1 = require("@po-ui/ng-schematics/package-config");
@@ -28,10 +29,9 @@ function default_1(options) {
28
29
  (0, build_target_options_1.configuringBuildTargets)(options, 'assets', poCodeEditorMonacoAsset)
29
30
  ]);
30
31
  }
31
- exports.default = default_1;
32
32
  function addPoPackageAndInstall() {
33
33
  return (tree, context) => {
34
- (0, package_config_1.addPackageToPackageJson)(tree, '@po-ui/ng-code-editor', '18.23.0');
34
+ (0, package_config_1.addPackageToPackageJson)(tree, '@po-ui/ng-code-editor', '19.0.0-next.0');
35
35
  // install packages
36
36
  context.addTask(new tasks_1.NodePackageInstallTask());
37
37
  };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/code-editor/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAAA,2DAAiF;AACjF,4DAA0E;AAE1E,wEAA8E;AAC9E,+DAAiF;AACjF,yGAAyG;AAEzG,gEAAgE;AAChE,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AAE7D,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAEpF,8CAA8C;AAC9C,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;AAErH;;;;;;;GAOG;AACH,mBAAyB,OAAY;IACnC,OAAO,IAAA,kBAAK,EAAC;QACX,sBAAsB,EAAE;QACxB,IAAA,oCAA2B,EAAC,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,CAAC;QAC1F,IAAA,8CAAuB,EAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC;QAC5D,IAAA,8CAAuB,EAAC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAPD,4BAOC;AAED,SAAS,sBAAsB;IAC7B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,wCAAuB,EAAC,IAAI,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;QAE5E,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../projects/code-editor/schematics/ng-add/index.ts"],"names":[],"mappings":";;AAyBA,4BAOC;AAhCD,2DAAiF;AACjF,4DAA0E;AAE1E,wEAA8E;AAC9E,+DAAiF;AACjF,yGAAyG;AAEzG,gEAAgE;AAChE,MAAM,sBAAsB,GAAG,oBAAoB,CAAC;AACpD,MAAM,4BAA4B,GAAG,uBAAuB,CAAC;AAE7D,4EAA4E;AAC5E,MAAM,gBAAgB,GAAG,0DAA0D,CAAC;AAEpF,8CAA8C;AAC9C,MAAM,uBAAuB,GAAG,EAAE,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,gCAAgC,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;AAErH;;;;;;;GAOG;AACH,mBAAyB,OAAY;IACnC,OAAO,IAAA,kBAAK,EAAC;QACX,sBAAsB,EAAE;QACxB,IAAA,oCAA2B,EAAC,OAAO,EAAE,sBAAsB,EAAE,4BAA4B,CAAC;QAC1F,IAAA,8CAAuB,EAAC,OAAO,EAAE,QAAQ,EAAE,gBAAgB,CAAC;QAC5D,IAAA,8CAAuB,EAAC,OAAO,EAAE,QAAQ,EAAE,uBAAuB,CAAC;KACpE,CAAC,CAAC;AACL,CAAC;AAED,SAAS,sBAAsB;IAC7B,OAAO,CAAC,IAAU,EAAE,OAAyB,EAAE,EAAE;QAC/C,IAAA,wCAAuB,EAAC,IAAI,EAAE,uBAAuB,EAAE,mBAAmB,CAAC,CAAC;QAE5E,mBAAmB;QACnB,OAAO,CAAC,OAAO,CAAC,IAAI,8BAAsB,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC;AACJ,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVUb2tlbnMgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS10b2tlbnMuaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAdXNlZEJ5IFBvQ29kZUVkaXRvclJlZ2lzdGVyXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIHBhcmEgY29uZmlndXJhw6fDo28gZGUgT3DDp8O1ZXMgZGUgbm92YXMgc2ludGF4ZXMgYW8gY29kZSBlZGl0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlT3B0aW9ucyB7XG4gIC8qKiBQYWxhdnJhcyBjaGF2ZXMgZGEgc2ludGF4ZS4gKi9cbiAga2V5d29yZHM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqIE9wZXJhZG9yZXMgZXNwZWPDrWZpY29zIGRhIHNpbnRheGUuICAqL1xuICBvcGVyYXRvcnM6IEFycmF5PHN0cmluZz47XG5cbiAgLyoqIFPDrW1ib2xvcyBlc3BlY8OtZmljb3MgZGEgc2ludGF4ZXMuICovXG4gIHN5bWJvbHM6IFJlZ0V4cDtcblxuICAvKiogRXNjYXBlcyBlc3BlY8OtZmljb3MgZGEgc2ludGF4ZXMuICovXG4gIGVzY2FwZXM6IFJlZ0V4cDtcblxuICAvKiogSW50ZXJmYWNlIHBhcmEgcmVjZWJpbWVudG8gZGUgdG9rZW4gZXNwZWPDrWZpY29zIGRhIHNpbnRheGUuICovXG4gIHRva2VuaXplcjogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlVG9rZW5zO1xuXG4gIC8qKiBEZWZpbmUgc2UgYSBzaW50YXhlIHNlcsOhIGNhc2Ugc2Vuc2l0aXZlIG91IG7Do28uICovXG4gIGlnbm9yZUNhc2U/OiBib29sZWFuO1xufVxuIl19
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcbiAqIEB1c2VkQnkgUG9Db2RlRWRpdG9yUmVnaXN0ZXIsIFBvQ29kZUVkaXRvckNvbXBvbmVudFxuICpcbiAqIEBkZXNjcmlwdGlvblxuICpcbiAqIEludGVyZmFjZSBwYXJhIGNvbmZpZ3VyYcOnw6NvIGRhIGxpc3RhIGRlIHN1Z2VzdMOjbyBkbyBhdXRvY29tcGxldGUgZG8gY29kZSBlZGl0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbiB7XG4gIC8qKiBUZXh0byBxdWUgc2Vyw6EgZXhpYmlkbyBuYSBsaXN0YSBkZSBzdWdlc3TDtWVzLiAqL1xuICBsYWJlbDogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBxdWUgc2Vyw6EgaW5zZXJpZG8gbm8gZWRpdG9yIGFvIHNlbGVjaW9uYXIgYSBzdWdlc3TDo28gZXhpYmlkYSBwZWxvIGF1dG9jb21wbGV0ZS4gKi9cbiAgaW5zZXJ0VGV4dDogc3RyaW5nO1xuXG4gIC8qKiBUZXh0byBkZSBhanVkYSBxdWUgc2Vyw6EgZXhpYmlkbyBjYXNvIG8gdXN1w6FyaW8gZGVzZWplIHZlciBtYWlzIGluZm9ybWHDp8O1ZXMgc29icmUgYSBzdWdlc3TDo28uICovXG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XG59XG5cbi8qKlxuICogQHVzZWRCeSBQb0NvZGVFZGl0b3JSZWdpc3RlciwgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIGRvIG9iamV0byB1c2FkbyBwZWxvIG1vbmFjbyBwYXJhIGxpc3RhIGRlIHN1Z2VzdMOjbyBkbyBhdXRvY29tcGxldGUgZG8gY29kZSBlZGl0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvblR5cGUge1xuICBwcm92aWRlQ29tcGxldGlvbkl0ZW1zOiAoKSA9PiB7IHN1Z2dlc3Rpb25zOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPiB9O1xufVxuXG4vKipcbiAqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBJbnRlcmZhY2UgZG8gb2JqZXRvIHVzYWRvIHBlbG8gbW9uYWNvIHBhcmEgbGlzdGEgZGUgc3VnZXN0w6NvIGRvIGF1dG9jb21wbGV0ZSBkbyBjb2RlIGVkaXRvci5cbiAqIFV0aWxpemFkbyBpbnRlcm5hbWVudGUgcGVsbyBzZXJ2acOnbyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZVxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25MaXN0IHtcbiAgW2luZGV4OiBzdHJpbmddOiBBcnJheTxQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uPjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXRva2Vucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtdG9rZW5zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBAdXNlZEJ5IFBvQ29kZUVkaXRvclJlZ2lzdGVyXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIHBhcmEgY29uZmlndXJhw6fDo28gZGUgdG9rZW5zIGRlIG5vdmFzIHNpbnRheGVzIGFvIGNvZGUgZWRpdG9yLlxuICovXG5leHBvcnQgaW50ZXJmYWNlIFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVRva2VucyB7XG4gIC8qKiBQcmluY2lwYWwgdG9rZW5pemVyIGRhIHNpbnRheGUgY3VzdG9taXphZGEuICovXG4gIHJvb3Q6IEFycmF5PGFueT47XG5cbiAgLyoqIFRva2VuaXplciBkZSBjb21lbnTDoXJpb3MuICovXG4gIGNvbW1lbnQ/OiBBcnJheTxhbnk+O1xuXG4gIC8qKiBUb2tlbml6ZXIgZGUgc3RyaW5ncy4gKi9cbiAgc3RyaW5nPzogQXJyYXk8YW55PjtcblxuICAvKiogVG9rZW5pemVyIGRlIHdoaXRlc3BhY2VzLiAqL1xuICB3aGl0ZXNwYWNlPzogQXJyYXk8YW55PjtcblxuICAvKiogU2VxdcOqbmNpYSBkZSBpbnRlcnBvbGHDp8Ojby4gICovXG4gIGludGVycG9sYXRlZD86IEFycmF5PGFueT47XG5cbiAgLyoqIFNlcXXDqm5jaWEgZGUgaW50ZXJwb2xhw6fDo28gY29tcG9zdGEuICovXG4gIGludGVycG9sYXRlZENvbXBvdW5kPzogQXJyYXk8YW55Pjtcbn1cbiJdfQ==
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZU9wdGlvbnMgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1vcHRpb25zLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uVHlwZSB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAdXNlZEJ5IFBvQ29kZUVkaXRvclJlZ2lzdGVyXG4gKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogSW50ZXJmYWNlIHBhcmEgY29uZmlndXJhw6fDo28gZGUgbm92YXMgc2ludGF4ZXMgYW8gY29kZSBlZGl0b3IuXG4gKi9cbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlIHtcbiAgLyoqIE5vbWUgZGEgc2ludGF4ZSBhIHNlciByZWdpc3RyYWRhIG5vIGNvZGUgZWRpdG9yLiAqL1xuICBsYW5ndWFnZTogc3RyaW5nO1xuXG4gIC8qKiBPcMOnw7VlcyBkZSBjb25maWd1cmHDp8OjbyBkYSBzaW50YXhlIGN1c3RvbWl6YWRhLiAqL1xuICBvcHRpb25zOiBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVPcHRpb25zO1xuXG4gIC8qKiBMaXN0YSBkZSBzdWdlc3TDtWVzIHBhcmEgYSBmdW7Dp8OjbyBkZSBhdXRvY29tcGxldGUuICovXG4gIHN1Z2dlc3Rpb25zPzogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvblR5cGU7XG59XG4iXX0=
@@ -1,261 +0,0 @@
1
- import { Input, Directive } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- const PO_CODE_EDITOR_THEMES = ['vs-dark', 'vs', 'hc-black'];
4
- const PO_CODE_EDITOR_THEME_DEFAULT = 'vs';
5
- /**
6
- * @description
7
- *
8
- * O `po-code-editor` é um componente para edição de código fonte baseado no Monaco Editor da Microsoft.
9
- *
10
- * Sendo assim, algumas configurações presentes no Monaco podem ser utilizadas aqui, como a escolha da linguagem
11
- * (utilizando o highlight syntax específico), escolha do tema e opção de diff, além de ser muito similar ao Visual
12
- * Studio Code, com autocomplete e fechamento automático de brackets.
13
- *
14
- * Este componente pode ser usado em qualquer situação que necessite de adição de códigos, como por exemplo, criar
15
- * receitas utilizando Terraform para gerenciar topologias.
16
- * É importante ressaltar que este não é um componente para edição de textos comuns.
17
- *
18
- * O [(ngModel)] deve ser usado para manipular o conteúdo do po-code-editor, ou seja, tanto para incluir um conteúdo quanto
19
- * para recuperar o conteúdo do po-code-editor, utiliza-se uma variável passada por [(ngModel)].
20
- *
21
- * #### Adicionando o pacote @po-ui/ng-code-editor
22
- *
23
- * Para instalar o pacote `po-code-editor` em sua aplicação execute:
24
- *
25
- * ```shell
26
- * ng add @po-ui/ng-code-editor
27
- * ```
28
- *
29
- * O comando `ng add` do `Angular CLI`:
30
- * - inclui o `po-code-editor` no seu projeto;
31
- * - adiciona o módulo `PoCodeEditorModule`:;
32
- *
33
- * ```
34
- * // app.module.ts
35
- * ...
36
- * import { PoModule } from '@po-ui/ng-components';
37
- * import { PoCodeEditorModule } from '@po-ui/ng-code-editor';
38
- * ...
39
- * @NgModule({
40
- * imports: [
41
- * ...
42
- * PoModule,
43
- * PoCodeEditorModule
44
- * ],
45
- * ...
46
- * })
47
- * export class AppModule { }
48
- * ```
49
- *
50
- * - adiciona o tema PO UI e também o *asset* do Monaco no arquivo `angular.json`, conforme abaixo:
51
- *
52
- * <pre ngNonBindable>
53
- * ...
54
- * "assets": [
55
- * { "glob": "&#42;&#42;/&#42;", "input": "node_modules/monaco-editor/min", "output": "/assets/monaco/" }
56
- * ],
57
- * "styles": [
58
- * "./node_modules/@po-ui/style/css/po-theme-default.min.css"
59
- * ]
60
- * ...
61
- * </pre>
62
- */
63
- export class PoCodeEditorBaseComponent {
64
- editor;
65
- modifiedValue = '';
66
- value = '';
67
- _height = 150;
68
- _language = 'plainText';
69
- _readonly = false;
70
- _showDiff = false;
71
- _suggestions;
72
- _theme = PO_CODE_EDITOR_THEME_DEFAULT;
73
- /**
74
- * @optional
75
- *
76
- * @description
77
- *
78
- * Linguagem na qual será apresentado o código fonte.
79
- * Para saber quais são as linguagens compatíveis, consulte a documentação oficial do
80
- * [**Monaco Editor**](https://microsoft.github.io/monaco-editor/).
81
- *
82
- * Também é possível adicionar uma nova linguagem personalizada utilizando o serviço:
83
- * [**po-code-editor-register**](https://po-ui.io/documentation/po-code-editor-register?view=doc).
84
- *
85
- * @default `plainText`
86
- */
87
- set language(language) {
88
- this._language = language && language.length ? language.trim() : 'plainText';
89
- if (this.editor && this._language) {
90
- this.setLanguage(this._language);
91
- }
92
- }
93
- get language() {
94
- return this._language;
95
- }
96
- /**
97
- * @optional
98
- *
99
- * @description
100
- *
101
- * Indica se o editor será aberto em modo de leitura.
102
- *
103
- * Neste caso, não é possível editar o código inserido.
104
- *
105
- * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.
106
- *
107
- * @default `false`
108
- */
109
- set readonly(readonly) {
110
- this._readonly = readonly === '' ? true : this.convertToBoolean(readonly);
111
- if (this.editor) {
112
- this.setReadOnly(readonly);
113
- }
114
- }
115
- get readonly() {
116
- return this._readonly;
117
- }
118
- /**
119
- * @optional
120
- *
121
- * @description
122
- *
123
- * Indica se o editor será aberto em modo de comparação.
124
- *
125
- * Caso esteja habilitada esta opção, então o [(ngModel)] deverá ser passado como um array, cuja primeira opção deve
126
- * conter uma string com o código original e na segunda posição uma string código modificado para efeito de
127
- * comparação. Neste caso, o usuário conseguirá editar apenas o código modificado e isso refletirá na segunda posição
128
- * do array consequentemente.
129
- *
130
- * Obs: Esta propriedade não refletirá efeito se alterada após o carregamento do componente.
131
- *
132
- * @default `false`
133
- */
134
- set showDiff(showDiff) {
135
- this._showDiff = showDiff === '' ? true : this.convertToBoolean(showDiff);
136
- }
137
- get showDiff() {
138
- return this._showDiff;
139
- }
140
- /**
141
- * @optional
142
- *
143
- * @description
144
- *
145
- * Lista de sugestões usadas pelo autocomplete dentro do editor.
146
- *
147
- * Para visualizar a lista de sugestões use o comando `CTRL + SPACE`.
148
- *
149
- * Caso o editor esteja usando uma linguagem que já tenha uma lista de sugestões predefinida, o valor passado será adicionado
150
- * a lista preexistente, aumentando as opções para o usuário.
151
- *
152
- * Caso tenha mais de um editor da mesma linguagem na aplicação, as sugestões serão adicionadas para que todos os editores da mesma linguagem
153
- * tenham as mesmas sugestões.
154
- *
155
- * ```
156
- * <po-code-editor
157
- * [p-suggestions]="[{ label: 'po', insertText: 'Portinari UI' }, { label: 'ng', insertText: 'Angular' }]">
158
- * </po-code-editor>
159
- * ```
160
- *
161
- * Ao fornecer uma lista de sugestões é possível acelerar a escrita de scripts pelos usuários.
162
- */
163
- set suggestions(values) {
164
- this._suggestions = values;
165
- if (this.editor && this._suggestions) {
166
- this.setSuggestions(this._suggestions);
167
- }
168
- }
169
- get suggestions() {
170
- return this._suggestions;
171
- }
172
- /**
173
- * @optional
174
- *
175
- * @description
176
- *
177
- * Define um tema para o editor.
178
- *
179
- * Temas válidos:
180
- * - `vs-dark`
181
- * - `vs`
182
- * - `hc-black`
183
- *
184
- * É importante salientar que o tema será aplicados a todos os componentes po-code-editor existentes na tela,
185
- * ou seja, todas as instâncias do componente receberão o último tema atribuído ou o tema da última instância
186
- * criada.
187
- *
188
- * @default `vs`
189
- */
190
- set theme(theme) {
191
- this._theme = PO_CODE_EDITOR_THEMES.includes(theme) ? theme : PO_CODE_EDITOR_THEME_DEFAULT;
192
- if (this.editor) {
193
- this.setTheme(theme);
194
- }
195
- }
196
- get theme() {
197
- return this._theme;
198
- }
199
- /**
200
- * @optional
201
- *
202
- * @description
203
- *
204
- * Define a altura do componente em pixels do po-code-editor.
205
- * Esta propriedade não poderá ser alterada após o componente ter sido iniciado.
206
- * A altura mínima é 150 pixels.
207
- */
208
- set height(height) {
209
- this._height = parseFloat(height) >= 150 ? parseFloat(height) : 150;
210
- }
211
- get height() {
212
- return `${this._height}px`;
213
- }
214
- /* istanbul ignore next */
215
- onTouched = (value) => { };
216
- /* istanbul ignore next */
217
- onChangePropagate = (value) => { };
218
- getOptions() {
219
- return { language: this.language, theme: this.theme, readOnly: this.readonly };
220
- }
221
- registerOnChange(fn) {
222
- this.onChangePropagate = fn;
223
- }
224
- registerOnTouched(fn) {
225
- this.onTouched = fn;
226
- }
227
- convertToBoolean(val) {
228
- if (typeof val === 'string') {
229
- val = val.toLowerCase().trim();
230
- return val === 'true' || val === 'on' || val === '';
231
- }
232
- if (typeof val === 'number') {
233
- return val === 1;
234
- }
235
- return !!val;
236
- }
237
- static ɵfac = function PoCodeEditorBaseComponent_Factory(t) { return new (t || PoCodeEditorBaseComponent)(); };
238
- static ɵdir = /*@__PURE__*/ i0.ɵɵdefineDirective({ type: PoCodeEditorBaseComponent, inputs: { language: [0, "p-language", "language"], readonly: [0, "p-readonly", "readonly"], showDiff: [0, "p-show-diff", "showDiff"], suggestions: [0, "p-suggestions", "suggestions"], theme: [0, "p-theme", "theme"], height: [0, "p-height", "height"] } });
239
- }
240
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorBaseComponent, [{
241
- type: Directive
242
- }], null, { language: [{
243
- type: Input,
244
- args: ['p-language']
245
- }], readonly: [{
246
- type: Input,
247
- args: ['p-readonly']
248
- }], showDiff: [{
249
- type: Input,
250
- args: ['p-show-diff']
251
- }], suggestions: [{
252
- type: Input,
253
- args: ['p-suggestions']
254
- }], theme: [{
255
- type: Input,
256
- args: ['p-theme']
257
- }], height: [{
258
- type: Input,
259
- args: ['p-height']
260
- }] }); })();
261
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvcG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2pELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUFFSCxNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQU07SUFDWixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFUixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxXQUFXLENBQUM7SUFDeEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFlBQVksQ0FBNEM7SUFDeEQsTUFBTSxHQUFHLDRCQUE0QixDQUFDO0lBRTlDOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUF5QixRQUFRLENBQUMsUUFBZ0I7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUUsQ0FBQztZQUNsQyxJQUFJLENBQUMs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LENBQUM7SUFDOUIsQ0FBQztJQUVELGlCQUFpQixDQUFDLEVBQU87UUFDdkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEdBQVE7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUUsQ0FBQztZQUM1QixHQUFHLEdBQUcsR0FBRyxDQUFDLFdBQVcsRUFBRSxDQUFDLElBQUksRUFBRSxDQUFDO1lBQy9CLE9BQU8sR0FBRyxLQUFLLE1BQU0sSUFBSSxHQUFHLEtBQUssSUFBSSxJQUFJLEdBQUcsS0FBSyxFQUFFLENBQUM7UUFDdEQsQ0FBQztRQUVELElBQUksT0FBTyxHQUFHLEtBQUssUUFBUSxFQUFFLENBQUM7WUFDNUIsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1FBQ25CLENBQUM7UUFFRCxPQUFPLENBQUMsQ0FBQyxHQUFHLENBQUM7SUFDZixDQUFDO21GQXJNbUIseUJBQXlCOzZEQUF6Qix5QkFBeUI7O2lGQUF6Qix5QkFBeUI7Y0FEOUMsU0FBUztnQkEyQmlCLFFBQVE7a0JBQWhDLEtBQUs7bUJBQUMsWUFBWTtZQXlCTSxRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUE0Qk8sUUFBUTtrQkFBakMsS0FBSzttQkFBQyxhQUFhO1lBK0JRLFdBQVc7a0JBQXRDLEtBQUs7bUJBQUMsZUFBZTtZQThCQSxLQUFLO2tCQUExQixLQUFLO21CQUFDLFNBQVM7WUFxQk8sTUFBTTtrQkFBNUIsS0FBSzttQkFBQyxVQUFVIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5wdXQsIERpcmVjdGl2ZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24gfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlJztcblxuY29uc3QgUE9fQ09ERV9FRElUT1JfVEhFTUVTID0gWyd2cy1kYXJrJywgJ3ZzJywgJ2hjLWJsYWNrJ107XG5jb25zdCBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUID0gJ3ZzJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBPIGBwby1jb2RlLWVkaXRvcmAgw6kgdW0gY29tcG9uZW50ZSBwYXJhIGVkacOnw6NvIGRlIGPDs2RpZ28gZm9udGUgYmFzZWFkbyBubyBNb25hY28gRWRpdG9yIGRhIE1pY3Jvc29mdC5cbiAqXG4gKiBTZW5kbyBhc3NpbSwgYWxndW1hcyBjb25maWd1cmHDp8O1ZXMgcHJlc2VudGVzIG5vIE1vbmFjbyBwb2RlbSBzZXIgdXRpbGl6YWRhcyBhcXVpLCBjb21vIGEgZXNjb2xoYSBkYSBsaW5ndWFnZW1cbiAqICh1dGlsaXphbmRvIG8gaGlnaGxpZ2h0IHN5bnRheCBlc3BlY8OtZmljbyksIGVzY29saGEgZG8gdGVtYSBlIG9ww6fDo28gZGUgZGlmZiwgYWzDqW0gZGUgc2VyIG11aXRvIHNpbWlsYXIgYW8gVmlzdWFsXG4gKiBTdHVkaW8gQ29kZSwgY29tIGF1dG9jb21wbGV0ZSBlIGZlY2hhbWVudG8gYXV0b23DoXRpY28gZGUgYnJhY2tldHMuXG4gKlxuICogRXN0ZSBjb21wb25lbnRlIHBvZGUgc2VyIHVzYWRvIGVtIHF1YWxxdWVyIHNpdHVhw6fDo28gcXVlIG5lY2Vzc2l0ZSBkZSBhZGnDp8OjbyBkZSBjw7NkaWdvcywgY29tbyBwb3IgZXhlbXBsbywgY3JpYXJcbiAqIHJlY2VpdGFzIHV0aWxpemFuZG8gVGVycmFmb3JtIHBhcmEgZ2VyZW5jaWFyIHRvcG9sb2dpYXMuXG4gKiDDiSBpbXBvcnRhbnRlIHJlc3NhbHRhciBxdWUgZXN0ZSBuw6NvIMOpIHVtIGNvbXBvbmVudGUgcGFyYSBlZGnDp8OjbyBkZSB0ZXh0b3MgY29tdW5zLlxuICpcbiAqIE8gWyhuZ01vZGVsKV0gZGV2ZSBzZXIgdXNhZG8gcGFyYSBtYW5pcHVsYXIgbyBjb250ZcO6ZG8gZG8gcG8tY29kZS1lZGl0b3IsIG91IHNlamEsIHRhbnRvIHBhcmEgaW5jbHVpciB1bSBjb250ZcO6ZG8gcXVhbnRvXG4gKiBwYXJhIHJlY3VwZXJhciBvIGNvbnRlw7pkbyBkbyBwby1jb2RlLWVkaXRvciwgdXRpbGl6YS1zZSB1bWEgdmFyacOhdmVsIHBhc3NhZGEgcG9yIFsobmdNb2RlbCldLlxuICpcbiAqICMjIyMgQWRpY2lvbmFuZG8gbyBwYWNvdGUgQHBvLXVpL25nLWNvZGUtZWRpdG9yXG4gKlxuICogUGFyYSBpbnN0YWxhciBvIHBhY290ZSBgcG8tY29kZS1lZGl0b3JgIGVtIHN1YSBhcGxpY2HDp8OjbyBleGVjdXRlOlxuICpcbiAqIGBgYHNoZWxsXG4gKiBuZyBhZGQgQHBvLXVpL25nLWNvZGUtZWRpdG9yXG4gKiBgYGBcbiAqXG4gKiBPIGNvbWFuZG8gYG5nIGFkZGAgZG8gYEFuZ3VsYXIgQ0xJYDpcbiAqIC0gaW5jbHVpIG8gYHBvLWNvZGUtZWRpdG9yYCBubyBzZXUgcHJvamV0bztcbiAqIC0gYWRpY2lvbmEgbyBtw7NkdWxvIGBQb0NvZGVFZGl0b3JNb2R1bGVgOjtcbiAqXG4gKiBgYGBcbiAqIC8vIGFwcC5tb2R1bGUudHNcbiAqIC4uLlxuICogaW1wb3J0IHsgUG9Nb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29tcG9uZW50cyc7XG4gKiBpbXBvcnQgeyBQb0NvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29kZS1lZGl0b3InO1xuICogLi4uXG4gKiBATmdNb2R1bGUoe1xuICogICBpbXBvcnRzOiBbXG4gKiAgICAgLi4uXG4gKiAgICAgUG9Nb2R1bGUsXG4gKiAgICAgUG9Db2RlRWRpdG9yTW9kdWxlXG4gKiAgIF0sXG4gKiAgIC4uLlxuICogfSlcbiAqIGV4cG9ydCBjbGFzcyBBcHBNb2R1bGUgeyB9XG4gKiBgYGBcbiAqXG4gKiAtIGFkaWNpb25hIG8gdGVtYSBQTyBVSSBlIHRhbWLDqW0gbyAqYXNzZXQqIGRvIE1vbmFjbyBubyBhcnF1aXZvIGBhbmd1bGFyLmpzb25gLCBjb25mb3JtZSBhYmFpeG86XG4gKlxuICogPHByZSBuZ05vbkJpbmRhYmxlPlxuICogLi4uXG4gKiBcImFzc2V0c1wiOiBbXG4gKiAgICB7IFwiZ2xvYlwiOiBcIiYjNDI7JiM0MjsvJiM0MjtcIiwgXCJpbnB1dFwiOiBcIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL21pblwiLCBcIm91dHB1dFwiOiBcIi9hc3NldHMvbW9uYWNvL1wiIH1cbiAqICBdLFxuICogXCJzdHlsZXNcIjogW1xuICogICAgXCIuL25vZGVfbW9kdWxlcy9AcG8tdWkvc3R5bGUvY3NzL3BvLXRoZW1lLWRlZmF1bHQubWluLmNzc1wiXG4gKiBdXG4gKiAuLi5cbiAqIDwvcHJlPlxuICovXG5ARGlyZWN0aXZlKClcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xuICBlZGl0b3I6IGFueTtcbiAgbW9kaWZpZWRWYWx1ZTogc3RyaW5nID0gJyc7XG4gIHZhbHVlOiBhbnkgPSAnJztcblxuICBwcml2YXRlIF9oZWlnaHQ6IG51bWJlciA9IDE1MDtcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSAncGxhaW5UZXh0JztcbiAgcHJpdmF0ZSBfcmVhZG9ubHk6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc2hvd0RpZmY6IGJvb2xlYW4gPSBmYWxzZTtcbiAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+O1xuICBwcml2YXRlIF90aGVtZSA9IFBPX0NPREVfRURJVE9SX1RIRU1FX0RFRkFVTFQ7XG5cbiAgLyoqXG4gICAqIEBvcHRpb25hbFxuICAgKlxuICAgKiBAZGVzY3JpcHRpb25cbiAgICpcbiAgICogTGluZ3VhZ2VtIG5hIHF1YWwgc2Vyw6EgYXByZXNlbnRhZG8gbyBjw7NkaWdvIGZvbnRlLlxuICAgKiBQYXJhIHNhYmVyIHF1YWlzIHPDo28gYXMgbGluZ3VhZ2VucyBjb21wYXTDrXZlaXMsIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gb2ZpY2lhbCBkb1xuICAgKiBbKipNb25hY28gRWRpdG9yKipdKGh0dHBzOi8vbWljcm9zb2Z0LmdpdGh1Yi5pby9tb25hY28tZWRpdG9yLykuXG4gICAqXG4gICAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIGFkaWNpb25hciB1bWEgbm92YSBsaW5ndWFnZW0gcGVyc29uYWxpemFkYSB1dGlsaXphbmRvIG8gc2VydmnDp286XG4gICAqIFsqKnBvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyKipdKGh0dHBzOi8vcG8tdWkuaW8vZG9jdW1lbnRhdGlvbi9wby1jb2RlLWVkaXRvci1yZWdpc3Rlcj92aWV3PWRvYykuXG4gICAqXG4gICAqIEBkZWZhdWx0IGBwbGFpblRleHRgXG4gICAqL1xuICBASW5wdXQoJ3AtbGFuZ3VhZ2UnKSBzZXQgbGFuZ3VhZ2UobGFuZ3VhZ2U6IHN0cmluZykge1xuICAgIHRoaXMuX2xhbmd1YWdlID0gbGFuZ3VhZ2UgJiYgbGFuZ3VhZ2UubGVuZ3RoID8gbGFuZ3VhZ2UudHJpbSgpIDogJ3BsYWluVGV4dCc7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5fbGFuZ3VhZ2UpIHtcbiAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UodGhpcy5fbGFuZ3VhZ2UpO1xuICAgIH1cbiAgfVxuXG4gIGdldCBsYW5ndWFnZSgpOiBzdHJpbmcge1xuICAgIHJldHVybiB0aGlzLl9sYW5ndWFnZTtcbiAgfVxuXG4gIC8qKlxuICAgKiBAb3B0aW9uYWxcbiAgICpcbiAgICogQGRlc2NyaXB0aW9uXG4gICAqXG4gICAqIEluZGljYSBzZSBvIGVkaXRvciBzZXLDoSBhYmVydG8gZW0gbW9kbyBkZSBsZWl0dXJhLlxuICAgKlxuICAgKiBOZXN0ZSBjYXNvLCBuw6NvIMOpIHBvc3PDrXZlbCBlZGl0YXIgbyBjw7NkaWdvIGluc2VyaWRvLlxuICAgKlxuICAgKiBPYnM6IEVzdGEgcHJvcHJpZWRhZGUgbsOjbyByZWZsZXRpcsOhIGVmZWl0byBzZSBhbHRlcmFkYSBhcMOzcyBvIGNhcnJlZ2FtZW50byBkbyBjb21wb25lbnRlLlxuICAgKlxuICAgKiBAZGVmYXVsdCBgZmFsc2VgXG4gICAqL1xuICBASW5wdXQoJ3AtcmVhZG9ubHknKSBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLl9yZWFkb25seSA9IDxhbnk+cmVhZG9ubHkgPT09ICcnID8gdHJ1ZSA6IHRoaXMuY29udmVydFRvQm9vbGVhbihyZWFkb25seSk7XG5cbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcbiAgICAgIHRoaXMuc2V0UmVhZE9ubHkocmVhZG9ubHkpO1xuICAgIH1cbiAgfVxuXG4gIGdldCByZWFkb25seSgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBJbmRpY2Egc2UgbyBlZGl0b3Igc2Vyw6EgYWJlcnRvIGVtIG1vZG8gZGUgY29tcGFyYcOnw6NvLlxuICAgKlxuICAgKiBDYXNvIGVzdGVqYSBoYWJpbGl0YWRhIGVzdGEgb3DDp8OjbywgZW50w6NvIG8gWyhuZ01vZGVsKV0gZGV2ZXLDoSBzZXIgcGFzc2FkbyBjb21vIHVtIGFycmF5LCBjdWphIHByaW1laXJhIG9ww6fDo28gZGV2ZVxuICAgKiBjb250ZXIgdW1hIHN0cmluZyBjb20gbyBjw7NkaWdvIG9yaWdpbmFsIGUgbmEgc2VndW5kYSBwb3Npw6fDo28gdW1hIHN0cmluZyBjw7NkaWdvIG1vZGlmaWNhZG8gcGFyYSBlZmVpdG8gZGVcbiAgICogY29tcGFyYcOnw6NvLiBOZXN0ZSBjYXNvLCBvIHVzdcOhcmlvIGNvbnNlZ3VpcsOhIGVkaXRhciBhcGVuYXMgbyBjw7NkaWdvIG1vZGlmaWNhZG8gZSBpc3NvIHJlZmxldGlyw6EgbmEgc2VndW5kYSBwb3Npw6fDo29cbiAgICogZG8gYXJyYXkgY29uc2VxdWVudGVtZW50ZS5cbiAgICpcbiAgICogT2JzOiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcmVmbGV0aXLDoSBlZmVpdG8gc2UgYWx0ZXJhZGEgYXDDs3MgbyBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS5cbiAgICpcbiAgICogQGRlZmF1bHQgYGZhbHNlYFxuICAgKi9cbiAgQElucHV0KCdwLXNob3ctZGlmZicpIHNldCBzaG93RGlmZihzaG93RGlmZjogYm9vbGVhbikge1xuICAgIHRoaXMuX3Nob3dEaWZmID0gPGFueT5zaG93RGlmZiA9PT0gJycgPyB0cnVlIDogdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHNob3dEaWZmKTtcbiAgfVxuXG4gIGdldCBzaG93RGlmZigpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RpZmY7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBMaXN0YSBkZSBzdWdlc3TDtWVzIHVzYWRhcyBwZWxvIGF1dG9jb21wbGV0ZSBkZW50cm8gZG8gZWRpdG9yLlxuICAgKlxuICAgKiBQYXJhIHZpc3VhbGl6YXIgYSBsaXN0YSBkZSBzdWdlc3TDtWVzIHVzZSBvIGNvbWFuZG8gYENUUkwgKyBTUEFDRWAuXG4gICAqXG4gICAqIENhc28gbyBlZGl0b3IgZXN0ZWphIHVzYW5kbyB1bWEgbGluZ3VhZ2VtIHF1ZSBqw6EgdGVuaGEgdW1hIGxpc3RhIGRlIHN1Z2VzdMO1ZXMgcHJlZGVmaW5pZGEsIG8gdmFsb3IgcGFzc2FkbyBzZXLDoSBhZGljaW9uYWRvXG4gICAqIGEgbGlzdGEgcHJlZXhpc3RlbnRlLCBhdW1lbnRhbmRvIGFzIG9ww6fDtWVzIHBhcmEgbyB1c3XDoXJpby5cbiAgICpcbiAgICogQ2FzbyB0ZW5oYSBtYWlzIGRlIHVtIGVkaXRvciBkYSBtZXNtYSBsaW5ndWFnZW0gbmEgYXBsaWNhw6fDo28sIGFzIHN1Z2VzdMO1ZXMgc2Vyw6NvIGFkaWNpb25hZGFzIHBhcmEgcXVlIHRvZG9zIG9zIGVkaXRvcmVzIGRhIG1lc21hIGxpbmd1YWdlbVxuICAgKiB0ZW5oYW0gYXMgbWVzbWFzIHN1Z2VzdMO1ZXMuXG4gICAqXG4gICAqIGBgYFxuICAgKiAgPHBvLWNvZGUtZWRpdG9yXG4gICAqICAgIFtwLXN1Z2dlc3Rpb25zXT1cIlt7IGxhYmVsOiAncG8nLCBpbnNlcnRUZXh0OiAnUG9ydGluYXJpIFVJJyB9LCB7IGxhYmVsOiAnbmcnLCBpbnNlcnRUZXh0OiAnQW5ndWxhcicgfV1cIj5cbiAgICogIDwvcG8tY29kZS1lZGl0b3I+XG4gICAqIGBgYFxuICAgKlxuICAgKiBBbyBmb3JuZWNlciB1bWEgbGlzdGEgZGUgc3VnZXN0w7VlcyDDqSBwb3Nzw612ZWwgYWNlbGVyYXIgYSBlc2NyaXRhIGRlIHNjcmlwdHMgcGVsb3MgdXN1w6FyaW9zLlxuICAgKi9cbiAgQElucHV0KCdwLXN1Z2dlc3Rpb25zJykgc2V0IHN1Z2dlc3Rpb25zKHZhbHVlczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4pIHtcbiAgICB0aGlzLl9zdWdnZXN0aW9ucyA9IHZhbHVlcztcblxuICAgIGlmICh0aGlzLmVkaXRvciAmJiB0aGlzLl9zdWdnZXN0aW9ucykge1xuICAgICAgdGhpcy5zZXRTdWdnZXN0aW9ucyh0aGlzLl9zdWdnZXN0aW9ucyk7XG4gICAgfVxuICB9XG5cbiAgZ2V0IHN1Z2dlc3Rpb25zKCk6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+IHtcbiAgICByZXR1cm4gdGhpcy5fc3VnZ2VzdGlvbnM7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgdW0gdGVtYSBwYXJhIG8gZWRpdG9yLlxuICAgKlxuICAgKiBUZW1hcyB2w6FsaWRvczpcbiAgICogIC0gYHZzLWRhcmtgXG4gICAqICAtIGB2c2BcbiAgICogIC0gYGhjLWJsYWNrYFxuICAgKlxuICAgKiDDiSBpbXBvcnRhbnRlIHNhbGllbnRhciBxdWUgbyB0ZW1hIHNlcsOhIGFwbGljYWRvcyBhIHRvZG9zIG9zIGNvbXBvbmVudGVzIHBvLWNvZGUtZWRpdG9yIGV4aXN0ZW50ZXMgbmEgdGVsYSxcbiAgICogb3Ugc2VqYSwgdG9kYXMgYXMgaW5zdMOibmNpYXMgZG8gY29tcG9uZW50ZSByZWNlYmVyw6NvIG8gw7psdGltbyB0ZW1hIGF0cmlidcOtZG8gb3UgbyB0ZW1hIGRhIMO6bHRpbWEgaW5zdMOibmNpYVxuICAgKiBjcmlhZGEuXG4gICAqXG4gICAqIEBkZWZhdWx0IGB2c2BcbiAgICovXG4gIEBJbnB1dCgncC10aGVtZScpIHNldCB0aGVtZSh0aGVtZTogc3RyaW5nKSB7XG4gICAgdGhpcy5fdGhlbWUgPSBQT19DT0RFX0VESVRPUl9USEVNRVMuaW5jbHVkZXModGhlbWUpID8gdGhlbWUgOiBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUO1xuXG4gICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICB0aGlzLnNldFRoZW1lKHRoZW1lKTtcbiAgICB9XG4gIH1cblxuICBnZXQgdGhlbWUoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gdGhpcy5fdGhlbWU7XG4gIH1cblxuICAvKipcbiAgICogQG9wdGlvbmFsXG4gICAqXG4gICAqIEBkZXNjcmlwdGlvblxuICAgKlxuICAgKiBEZWZpbmUgYSBhbHR1cmEgZG8gY29tcG9uZW50ZSBlbSBwaXhlbHMgZG8gcG8tY29kZS1lZGl0b3IuXG4gICAqIEVzdGEgcHJvcHJpZWRhZGUgbsOjbyBwb2RlcsOhIHNlciBhbHRlcmFkYSBhcMOzcyBvIGNvbXBvbmVudGUgdGVyIHNpZG8gaW5pY2lhZG8uXG4gICAqIEEgYWx0dXJhIG3DrW5pbWEgw6kgMTUwIHBpeGVscy5cbiAgICovXG4gIEBJbnB1dCgncC1oZWlnaHQnKSBzZXQgaGVpZ2h0KGhlaWdodDogc3RyaW5nKSB7XG4gICAgdGhpcy5faGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHQpID49IDE1MCA/IHBhcnNlRmxvYXQoaGVpZ2h0KSA6IDE1MDtcbiAgfVxuXG4gIGdldCBoZWlnaHQoKTogc3RyaW5nIHtcbiAgICByZXR1cm4gYCR7dGhpcy5faGVpZ2h0fXB4YDtcbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIG9uVG91Y2hlZCA9ICh2YWx1ZTogYW55KSA9PiB7fTtcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgb25DaGFuZ2VQcm9wYWdhdGUgPSAodmFsdWU6IGFueSkgPT4ge307XG5cbiAgZ2V0T3B0aW9ucygpIHtcbiAgICByZXR1cm4geyBsYW5ndWFnZTogdGhpcy5sYW5ndWFnZSwgdGhlbWU6IHRoaXMudGhlbWUsIHJlYWRPbmx5OiB0aGlzLnJlYWRvbmx5IH07XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKGZuOiBhbnkpOiB2b2lkIHtcbiAgICB0aGlzLm9uQ2hhbmdlUHJvcGFnYXRlID0gZm47XG4gIH1cblxuICByZWdpc3Rlck9uVG91Y2hlZChmbjogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcbiAgfVxuXG4gIHByb3RlY3RlZCBjb252ZXJ0VG9Cb29sZWFuKHZhbDogYW55KTogYm9vbGVhbiB7XG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdzdHJpbmcnKSB7XG4gICAgICB2YWwgPSB2YWwudG9Mb3dlckNhc2UoKS50cmltKCk7XG4gICAgICByZXR1cm4gdmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnb24nIHx8IHZhbCA9PT0gJyc7XG4gICAgfVxuXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XG4gICAgICByZXR1cm4gdmFsID09PSAxO1xuICAgIH1cblxuICAgIHJldHVybiAhIXZhbDtcbiAgfVxuXG4gIGFic3RyYWN0IHdyaXRlVmFsdWUodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0TGFuZ3VhZ2UodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0VGhlbWUodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0UmVhZE9ubHkodmFsdWU6IGFueSk7XG5cbiAgYWJzdHJhY3Qgc2V0U3VnZ2VzdGlvbnModmFsdWU6IGFueSk7XG59XG4iXX0=
@@ -1,72 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- /**
4
- * @description
5
- *
6
- * Wrapper para registro de sintaxes customizadas para o po-code-editor.
7
- *
8
- * Para utilização do serviço de idiomas **PoCodeEditorRegister**,
9
- * deve-se importar o módulo PoCodeEditorModule mesmo já tendo importado
10
- * o módulo PoModule.
11
- * Na importação opcionalmente pode ser invocado o método **forRegister** informando um objeto para configuração.
12
- *
13
- * Exemplo de configuração:
14
- * ```
15
- * import { PoCodeEditorModule, PoCodeEditorRegisterable } from '@po-ui/ng-code-editor';
16
- *
17
- * declare const monaco: any; // Importante para usar configurações com tipos definidos pelo Monaco
18
- *
19
- * // A função `provideCompletionItems` precisa ser exportada para ser compatível com AOT.
20
- * export function provideCompletionItems() {
21
- * const suggestions = [{
22
- * label: 'terraform',
23
- * insertText: '#terraform language'
24
- * }, {
25
- * label: 'server',
26
- * insertText: 'server ${1:ip}'
27
- * }];
28
- *
29
- * return { suggestions: suggestions };
30
- * }
31
- *
32
- * const customEditor: PoCodeEditorRegisterable = {
33
- * language: 'terraform',
34
- * options: {
35
- * keywords: ['resource', 'provider', 'variable', 'output', 'module', 'true', 'false'],
36
- * operators: ['{', '}', '(', ')', '[', ']', '?', ':'],
37
- * symbols: /[=><!~?:&|+\-*\/\^%]+/,
38
- * escapes: /\\(?:[abfnrtv\\"']|x[0-9A-Fa-f]{1,4}|u[0-9A-Fa-f]{4}|U[0-9A-Fa-f]{8})/,
39
- * tokenizer: {
40
- * ...
41
- * }
42
- * },
43
- * suggestions: { provideCompletionItems: provideCompletionItems }
44
- * };
45
- *
46
- * @NgModule({
47
- * declarations: [],
48
- * imports: [
49
- * PoModule,
50
- * PoCodeEditorModule.forRegister(customEditor)
51
- * ],
52
- * bootstrap: [AppComponent]
53
- * })
54
- * ```
55
- *
56
- * > As configurações para o registro de uma nova sintaxe no Monaco code editor podem ser encontradas em
57
- * > [**Monaco Editor**](https://microsoft.github.io/monaco-editor/playground.html#extending-language-services-custom-languages).
58
- */
59
- export class PoCodeEditorRegister {
60
- /** Sintaxe a ser registrada. */
61
- language;
62
- /** Opções da sintaxe para registro no po-code-editor. */
63
- options;
64
- /** Lista de sugestões para a função de autocomplete (CTRL + SPACE). */
65
- suggestions;
66
- static ɵfac = function PoCodeEditorRegister_Factory(t) { return new (t || PoCodeEditorRegister)(); };
67
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorRegister, factory: PoCodeEditorRegister.ɵfac });
68
- }
69
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorRegister, [{
70
- type: Injectable
71
- }], null, null); })();
72
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci1yZWdpc3Rlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixnQ0FBZ0M7SUFDaEMsUUFBUSxDQUFTO0lBRWpCLHlEQUF5RDtJQUN6RCxPQUFPLENBQWtDO0lBRXpDLHVFQUF1RTtJQUN2RSxXQUFXLENBQTBDOzhFQVIxQyxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7O2lGQUFwQixvQkFBb0I7Y0FEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcblxuaW1wb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuaW1wb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvblR5cGUgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlJztcblxuLyoqXG4gKiBAZGVzY3JpcHRpb25cbiAqXG4gKiBXcmFwcGVyIHBhcmEgcmVnaXN0cm8gZGUgc2ludGF4ZXMgY3VzdG9taXphZGFzIHBhcmEgbyBwby1jb2RlLWVkaXRvci5cbiAqXG4gKiBQYXJhIHV0aWxpemHDp8OjbyBkbyBzZXJ2acOnbyBkZSBpZGlvbWFzICoqUG9Db2RlRWRpdG9yUmVnaXN0ZXIqKixcbiAqIGRldmUtc2UgaW1wb3J0YXIgbyBtw7NkdWxvIFBvQ29kZUVkaXRvck1vZHVsZSBtZXNtbyBqw6EgdGVuZG8gaW1wb3J0YWRvXG4gKiBvIG3Ds2R1bG8gUG9Nb2R1bGUuXG4gKiBOYSBpbXBvcnRhw6fDo28gb3BjaW9uYWxtZW50ZSBwb2RlIHNlciBpbnZvY2FkbyBvIG3DqXRvZG8gKipmb3JSZWdpc3RlcioqIGluZm9ybWFuZG8gdW0gb2JqZXRvIHBhcmEgY29uZmlndXJhw6fDo28uXG4gKlxuICogRXhlbXBsbyBkZSBjb25maWd1cmHDp8OjbzpcbiAqIGBgYFxuICogaW1wb3J0IHsgUG9Db2RlRWRpdG9yTW9kdWxlLCBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUgfSBmcm9tICdAcG8tdWkvbmctY29kZS1lZGl0b3InO1xuICpcbiAqIGRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7IC8vIEltcG9ydGFudGUgcGFyYSB1c2FyIGNvbmZpZ3VyYcOnw7VlcyBjb20gdGlwb3MgZGVmaW5pZG9zIHBlbG8gTW9uYWNvXG4gKlxuICogLy8gQSBmdW7Dp8OjbyBgcHJvdmlkZUNvbXBsZXRpb25JdGVtc2AgcHJlY2lzYSBzZXIgZXhwb3J0YWRhIHBhcmEgc2VyIGNvbXBhdMOtdmVsIGNvbSBBT1QuXG4gKiBleHBvcnQgZnVuY3Rpb24gcHJvdmlkZUNvbXBsZXRpb25JdGVtcygpIHtcbiAqICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSBbe1xuICogICAgIGxhYmVsOiAndGVycmFmb3JtJyxcbiAqICAgICBpbnNlcnRUZXh0OiAnI3RlcnJhZm9ybSBsYW5ndWFnZSdcbiAqICAgfSwge1xuICogICAgIGxhYmVsOiAnc2VydmVyJyxcbiAqICAgICBpbnNlcnRUZXh0OiAnc2VydmVyICR7MTppcH0nXG4gKiAgIH1dO1xuICpcbiAqICAgcmV0dXJuIHsgc3VnZ2VzdGlvbnM6IHN1Z2dlc3Rpb25zIH07XG4gKiB9XG4gKlxuICogY29uc3QgY3VzdG9tRWRpdG9yOiBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUgPSB7XG4gKiAgIGxhbmd1YWdlOiAndGVycmFmb3JtJyxcbiAqICAgb3B0aW9uczoge1xuICogICAgIGtleXdvcmRzOiBbJ3Jlc291cmNlJywgJ3Byb3ZpZGVyJywgJ3ZhcmlhYmxlJywgJ291dHB1dCcsICdtb2R1bGUnLCAndHJ1ZScsICdmYWxzZSddLFxuICogICAgIG9wZXJhdG9yczogWyd7JywgJ30nLCAnKCcsICcpJywgJ1snLCAnXScsICc/JywgJzonXSxcbiAqICAgICBzeW1ib2xzOiAgL1s9Pjwhfj86JnwrXFwtKlxcL1xcXiVdKy8sXG4gKiAgICAgZXNjYXBlczogL1xcXFwoPzpbYWJmbnJ0dlxcXFxcIiddfHhbMC05QS1GYS1mXXsxLDR9fHVbMC05QS1GYS1mXXs0fXxVWzAtOUEtRmEtZl17OH0pLyxcbiAqICAgICB0b2tlbml6ZXI6IHtcbiAqICAgICAgLi4uXG4gKiAgICAgfVxuICogICB9LFxuICogICBzdWdnZXN0aW9uczogeyBwcm92aWRlQ29tcGxldGlvbkl0ZW1zOiBwcm92aWRlQ29tcGxldGlvbkl0ZW1zIH1cbiAqIH07XG4gKlxuICogQE5nTW9kdWxlKHtcbiAqICAgZGVjbGFyYXRpb25zOiBbXSxcbiAqICAgaW1wb3J0czogW1xuICogICAgIFBvTW9kdWxlLFxuICogICAgIFBvQ29kZUVkaXRvck1vZHVsZS5mb3JSZWdpc3RlcihjdXN0b21FZGl0b3IpXG4gKiAgIF0sXG4gKiAgIGJvb3RzdHJhcDogW0FwcENvbXBvbmVudF1cbiAqIH0pXG4gKiBgYGBcbiAqXG4gKiA+IEFzIGNvbmZpZ3VyYcOnw7VlcyBwYXJhIG8gcmVnaXN0cm8gZGUgdW1hIG5vdmEgc2ludGF4ZSBubyBNb25hY28gY29kZSBlZGl0b3IgcG9kZW0gc2VyIGVuY29udHJhZGFzIGVtXG4gKiA+IFsqKk1vbmFjbyBFZGl0b3IqKl0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL21vbmFjby1lZGl0b3IvcGxheWdyb3VuZC5odG1sI2V4dGVuZGluZy1sYW5ndWFnZS1zZXJ2aWNlcy1jdXN0b20tbGFuZ3VhZ2VzKS5cbiAqL1xuQEluamVjdGFibGUoKVxuZXhwb3J0IGNsYXNzIFBvQ29kZUVkaXRvclJlZ2lzdGVyIGltcGxlbWVudHMgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlIHtcbiAgLyoqIFNpbnRheGUgYSBzZXIgcmVnaXN0cmFkYS4gKi9cbiAgbGFuZ3VhZ2U6IHN0cmluZztcblxuICAvKiogT3DDp8O1ZXMgZGEgc2ludGF4ZSBwYXJhIHJlZ2lzdHJvIG5vIHBvLWNvZGUtZWRpdG9yLiAqL1xuICBvcHRpb25zOiBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVPcHRpb25zO1xuXG4gIC8qKiBMaXN0YSBkZSBzdWdlc3TDtWVzIHBhcmEgYSBmdW7Dp8OjbyBkZSBhdXRvY29tcGxldGUgKENUUkwgKyBTUEFDRSkuICovXG4gIHN1Z2dlc3Rpb25zPzogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvblR5cGU7XG59XG4iXX0=
@@ -1,28 +0,0 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PoCodeEditorSuggestionService {
4
- suggestions = {};
5
- constructor() { }
6
- getSuggestion(language, newSuggestion) {
7
- if (this.suggestions[language]) {
8
- const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);
9
- this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];
10
- return deduplicateSuggestions;
11
- }
12
- else {
13
- return (this.suggestions[language] = [...newSuggestion]);
14
- }
15
- }
16
- deduplicateSuggestions(originalSuggestions, newSuggestions) {
17
- return newSuggestions.filter(newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label']));
18
- }
19
- static ɵfac = function PoCodeEditorSuggestionService_Factory(t) { return new (t || PoCodeEditorSuggestionService)(); };
20
- static ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorSuggestionService, factory: PoCodeEditorSuggestionService.ɵfac, providedIn: 'root' });
21
- }
22
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorSuggestionService, [{
23
- type: Injectable,
24
- args: [{
25
- providedIn: 'root'
26
- }]
27
- }], () => [], null); })();
28
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLFdBQVcsR0FBK0IsRUFBRSxDQUFDO0lBQ3JELGdCQUFlLENBQUM7SUFFVCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxhQUF3RDtRQUM3RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQztZQUMvQixNQUFNLHNCQUFzQixHQUFHLElBQUksQ0FBQyxzQkFBc0IsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLGFBQWEsQ0FBQyxDQUFDO1lBQ3RHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEdBQUcsQ0FBQyxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUUsR0FBRyxzQkFBc0IsQ0FBQyxDQUFDO1lBQ3hGLE9BQU8sc0JBQXNCLENBQUM7UUFDaEMsQ0FBQzthQUFNLENBQUM7WUFDTixPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztRQUMzRCxDQUFDO0lBQ0gsQ0FBQztJQUVPLHNCQUFzQixDQUM1QixtQkFBOEQsRUFDOUQsY0FBeUQ7UUFFekQsT0FBTyxjQUFjLENBQUMsTUFBTSxDQUMxQixPQUFPLENBQUMsRUFBRSxDQUFDLENBQUMsbUJBQW1CLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxFQUFFLENBQUMsWUFBWSxDQUFDLE9BQU8sQ0FBQyxLQUFLLE9BQU8sQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUNqRyxDQUFDO0lBQ0osQ0FBQzt1RkFyQlUsNkJBQTZCO2dFQUE3Qiw2QkFBNkIsV0FBN0IsNkJBQTZCLG1CQUY1QixNQUFNOztpRkFFUCw2QkFBNkI7Y0FIekMsVUFBVTtlQUFDO2dCQUNWLFVBQVUsRUFBRSxNQUFNO2FBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QsXG4gIFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb25cbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5cbkBJbmplY3RhYmxlKHtcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXG59KVxuZXhwb3J0IGNsYXNzIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlIHtcbiAgcHJpdmF0ZSBzdWdnZXN0aW9uczogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QgPSB7fTtcbiAgY29uc3RydWN0b3IoKSB7fVxuXG4gIHB1YmxpYyBnZXRTdWdnZXN0aW9uKGxhbmd1YWdlOiBzdHJpbmcsIG5ld1N1Z2dlc3Rpb246IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XG4gICAgaWYgKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdKSB7XG4gICAgICBjb25zdCBkZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zID0gdGhpcy5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCBuZXdTdWdnZXN0aW9uKTtcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLnRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCAuLi5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zXTtcbiAgICAgIHJldHVybiBkZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLm5ld1N1Z2dlc3Rpb25dKTtcbiAgICB9XG4gIH1cblxuICBwcml2YXRlIGRlZHVwbGljYXRlU3VnZ2VzdGlvbnMoXG4gICAgb3JpZ2luYWxTdWdnZXN0aW9uczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4sXG4gICAgbmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+XG4gICkge1xuICAgIHJldHVybiBuZXdTdWdnZXN0aW9ucy5maWx0ZXIoXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbFN1Z2dlc3Rpb25zLmZpbmQob3JpZ2luYWxJdGVtID0+IG9yaWdpbmFsSXRlbVsnbGFiZWwnXSA9PT0gbmV3SXRlbVsnbGFiZWwnXSlcbiAgICApO1xuICB9XG59XG4iXX0=
@@ -1,235 +0,0 @@
1
- import { Component, forwardRef, ViewChild } from '@angular/core';
2
- import { NG_VALUE_ACCESSOR } from '@angular/forms';
3
- import { PoCodeEditorBaseComponent } from './po-code-editor-base.component';
4
- import * as i0 from "@angular/core";
5
- import * as i1 from "./po-code-editor-suggestion.service";
6
- import * as i2 from "./po-code-editor-register.service";
7
- const _c0 = ["editorContainer"];
8
- // variáveis relacionadas ao Monaco
9
- let loadedMonaco = false;
10
- let loadPromise;
11
- /* istanbul ignore next */
12
- const providers = [
13
- {
14
- provide: NG_VALUE_ACCESSOR,
15
- // eslint-disable-next-line
16
- useExisting: forwardRef(() => PoCodeEditorComponent),
17
- multi: true
18
- }
19
- ];
20
- /**
21
- * @docsExtends PoCodeEditorBaseComponent
22
- *
23
- * @example
24
- *
25
- * <example name="po-code-editor-basic" title="PO Code Editor Basic">
26
- * <file name="sample-po-code-editor-basic/sample-po-code-editor-basic.component.html"> </file>
27
- * <file name="sample-po-code-editor-basic/sample-po-code-editor-basic.component.ts"> </file>
28
- * </example>
29
- *
30
- * <example name="po-code-editor-labs" title="PO Code Editor Labs">
31
- * <file name="sample-po-code-editor-labs/sample-po-code-editor-labs.component.html"> </file>
32
- * <file name="sample-po-code-editor-labs/sample-po-code-editor-labs.component.ts"> </file>
33
- * </example>
34
- *
35
- * <example name="po-code-editor-diff" title="PO Code Editor - Diff">
36
- * <file name="sample-po-code-editor-diff/sample-po-code-editor-diff.component.html"> </file>
37
- * <file name="sample-po-code-editor-diff/sample-po-code-editor-diff.component.ts"> </file>
38
- * </example>
39
- *
40
- * <example name="po-code-editor-terraform" title="PO Code Editor - Terraform">
41
- * <file name="sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.html"> </file>
42
- * <file name="sample-po-code-editor-terraform/sample-po-code-editor-terraform.component.ts"> </file>
43
- * <file name="sample-po-code-editor-terraform/sample-po-code-editor-terraform.constant.ts"> </file>
44
- * <file name="sample-po-code-editor-terraform/sample-po-code-editor-terraform.module.ts"> </file>
45
- * </example>
46
- *
47
- * <example name="po-code-editor-suggestion" title="PO Code Editor Suggestion">
48
- * <file name="sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.html"> </file>
49
- * <file name="sample-po-code-editor-suggestion/sample-po-code-editor-suggestion.component.ts"> </file>
50
- * </example>
51
- */
52
- export class PoCodeEditorComponent extends PoCodeEditorBaseComponent {
53
- zone;
54
- el;
55
- poCodeEditorSuggestionService;
56
- codeEditorRegister;
57
- editorContainer;
58
- canLoad = false;
59
- constructor(zone, el, poCodeEditorSuggestionService, codeEditorRegister) {
60
- super();
61
- this.zone = zone;
62
- this.el = el;
63
- this.poCodeEditorSuggestionService = poCodeEditorSuggestionService;
64
- this.codeEditorRegister = codeEditorRegister;
65
- }
66
- /* istanbul ignore next */
67
- ngAfterViewInit() {
68
- if (loadedMonaco) {
69
- /* istanbul ignore next */
70
- loadPromise.then(() => {
71
- setTimeout(() => {
72
- if (this.el.nativeElement.offsetWidth) {
73
- this.registerCustomLanguage();
74
- this.initMonaco(this.getOptions());
75
- }
76
- else {
77
- this.canLoad = true;
78
- }
79
- });
80
- });
81
- }
82
- else {
83
- loadedMonaco = true;
84
- loadPromise = new Promise((resolve) => {
85
- /* istanbul ignore next */
86
- const onGotAmdLoader = () => {
87
- window.require.config({ paths: { 'vs': './assets/monaco/vs' } });
88
- window.require(['vs/editor/editor.main'], () => {
89
- setTimeout(() => {
90
- if (this.el.nativeElement.offsetWidth) {
91
- this.registerCustomLanguage();
92
- this.initMonaco(this.getOptions());
93
- }
94
- else {
95
- this.canLoad = true;
96
- }
97
- resolve();
98
- });
99
- });
100
- };
101
- if (!window.require) {
102
- const loaderScript = document.createElement('script');
103
- loaderScript.type = 'text/javascript';
104
- loaderScript.src = './assets/monaco/vs/loader.js';
105
- loaderScript.addEventListener('load', onGotAmdLoader);
106
- document.body.appendChild(loaderScript);
107
- }
108
- });
109
- }
110
- }
111
- ngDoCheck() {
112
- if (this.canLoad && this.el.nativeElement.offsetWidth) {
113
- this.registerCustomLanguage();
114
- this.initMonaco(this.getOptions());
115
- this.canLoad = false;
116
- }
117
- }
118
- /* istanbul ignore next */
119
- monacoCreateModel(value) {
120
- return monaco.editor.createModel(value);
121
- }
122
- setValueInEditor() {
123
- if (this.showDiff) {
124
- setTimeout(() => {
125
- if (this.editor) {
126
- this.editor.setModel({
127
- original: this.monacoCreateModel(this.value),
128
- modified: this.monacoCreateModel(this.modifiedValue)
129
- });
130
- }
131
- });
132
- }
133
- else {
134
- setTimeout(() => {
135
- if (this.editor) {
136
- this.editor.setValue(this.value);
137
- }
138
- });
139
- }
140
- }
141
- setLanguage(language) {
142
- if (this.showDiff) {
143
- this.setMonacoLanguage(this.editor.getModel().original, language);
144
- this.setMonacoLanguage(this.editor.getModel().modified, language);
145
- }
146
- else {
147
- this.setMonacoLanguage(this.editor.getModel(), language);
148
- }
149
- }
150
- /* istanbul ignore next */
151
- setTheme(theme) {
152
- monaco.editor.setTheme(theme);
153
- }
154
- setReadOnly(readOnly) {
155
- this.editor.updateOptions({ readOnly: readOnly });
156
- }
157
- /* istanbul ignore next */
158
- setSuggestions(newSuggestions, language = this.language) {
159
- if (!newSuggestions) {
160
- return;
161
- }
162
- const suggestions = this.poCodeEditorSuggestionService.getSuggestion(language, newSuggestions);
163
- monaco.languages.registerCompletionItemProvider(language, {
164
- provideCompletionItems: () => ({ suggestions })
165
- });
166
- }
167
- writeValue(value) {
168
- this.value = value && value instanceof Array ? value[0] : value;
169
- this.modifiedValue = value && value instanceof Array && value.length > 0 ? value[1] : '';
170
- this.setValueInEditor();
171
- }
172
- /* istanbul ignore next */
173
- initMonaco(options) {
174
- if (this.showDiff) {
175
- this.editor = monaco.editor.createDiffEditor(this.editorContainer.nativeElement, options);
176
- this.editor.setModel({
177
- original: monaco.editor.createModel(this.value),
178
- modified: monaco.editor.createModel(this.modifiedValue)
179
- });
180
- this.editor.onDidUpdateDiff((e) => {
181
- const original = this.editor.getModel().original.getValue();
182
- const modified = this.editor.getModel().modified.getValue();
183
- this.onChangePropagate([original, modified]);
184
- });
185
- }
186
- else {
187
- this.editor = monaco.editor.create(this.editorContainer.nativeElement, options);
188
- this.editor.setValue(this.value);
189
- this.editor.onDidChangeModelContent((e) => {
190
- const value = this.editor.getValue();
191
- this.onChangePropagate(value);
192
- this.zone.run(() => (this.value = value));
193
- });
194
- }
195
- setTimeout(() => {
196
- this.setLanguage(this.language);
197
- this.setSuggestions(this.suggestions);
198
- }, 500);
199
- }
200
- /* istanbul ignore next */
201
- setMonacoLanguage(model, language) {
202
- monaco.editor.setModelLanguage(model, language);
203
- }
204
- registerCustomLanguage() {
205
- if (this.codeEditorRegister.language) {
206
- monaco.languages.register({ id: this.codeEditorRegister.language });
207
- if (this.codeEditorRegister.options) {
208
- monaco.languages.setMonarchTokensProvider(this.codeEditorRegister.language, this.codeEditorRegister.options);
209
- }
210
- if (this.codeEditorRegister.suggestions) {
211
- this.setSuggestions(this.codeEditorRegister.suggestions.provideCompletionItems().suggestions, this.codeEditorRegister.language);
212
- }
213
- }
214
- }
215
- static ɵfac = function PoCodeEditorComponent_Factory(t) { return new (t || PoCodeEditorComponent)(i0.ɵɵdirectiveInject(i0.NgZone), i0.ɵɵdirectiveInject(i0.ElementRef), i0.ɵɵdirectiveInject(i1.PoCodeEditorSuggestionService), i0.ɵɵdirectiveInject(i2.PoCodeEditorRegister)); };
216
- static ɵcmp = /*@__PURE__*/ i0.ɵɵdefineComponent({ type: PoCodeEditorComponent, selectors: [["po-code-editor"]], viewQuery: function PoCodeEditorComponent_Query(rf, ctx) { if (rf & 1) {
217
- i0.ɵɵviewQuery(_c0, 7);
218
- } if (rf & 2) {
219
- let _t;
220
- i0.ɵɵqueryRefresh(_t = i0.ɵɵloadQuery()) && (ctx.editorContainer = _t.first);
221
- } }, features: [i0.ɵɵProvidersFeature(providers), i0.ɵɵInheritDefinitionFeature], decls: 2, vars: 2, consts: [["editorContainer", ""]], template: function PoCodeEditorComponent_Template(rf, ctx) { if (rf & 1) {
222
- i0.ɵɵelement(0, "div", null, 0);
223
- } if (rf & 2) {
224
- i0.ɵɵstyleProp("height", ctx.height);
225
- } }, encapsulation: 2 });
226
- }
227
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorComponent, [{
228
- type: Component,
229
- args: [{ selector: 'po-code-editor', providers: providers, template: "<div #editorContainer [style.height]=\"height\"></div>\n" }]
230
- }], () => [{ type: i0.NgZone }, { type: i0.ElementRef }, { type: i1.PoCodeEditorSuggestionService }, { type: i2.PoCodeEditorRegister }], { editorContainer: [{
231
- type: ViewChild,
232
- args: ['editorContainer', { static: true }]
233
- }] }); })();
234
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassDebugInfo(PoCodeEditorComponent, { className: "PoCodeEditorComponent", filePath: "lib/components/po-code-editor/po-code-editor.component.ts", lineNumber: 64 }); })();
235
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3IuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWlCLFNBQVMsRUFBdUIsVUFBVSxFQUFVLFNBQVMsRUFBWSxNQUFNLGVBQWUsQ0FBQztBQUN2SCxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUVuRCxPQUFPLEVBQUUseUJBQXlCLEVBQUUsTUFBTSxpQ0FBaUMsQ0FBQzs7Ozs7QUFLNUUsbUNBQW1DO0FBQ25DLElBQUksWUFBWSxHQUFZLEtBQUssQ0FBQztBQUNsQyxJQUFJLFdBQTBCLENBQUM7QUFNL0IsMEJBQTBCO0FBQzFCLE1BQU0sU0FBUyxHQUFvQjtJQUNqQztRQUNFLE9BQU8sRUFBRSxpQkFBaUI7UUFDMUIsMkJBQTJCO1FBQzNCLFdBQVcsRUFBRSxVQUFVLENBQUMsR0FBRyxFQUFFLENBQUMscUJBQXFCLENBQUM7UUFDcEQsS0FBSyxFQUFFLElBQUk7S0FDWjtDQUNGLENBQUM7QUFFRjs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7OztHQStCRztBQU1ILE1BQU0sT0FBTyxxQkFBc0IsU0FBUSx5QkFBeUI7SUFNeEQ7SUFDQTtJQUNBO0lBQ0E7SUFSc0MsZUFBZSxDQUFhO0lBRTVFLE9BQU8sR0FBRyxLQUFLLENBQUM7SUFFaEIsWUFDVSxJQUFZLEVBQ1osRUFBYyxFQUNkLDZCQUE0RCxFQUM1RCxrQkFBeUM7UUFFakQsS0FBSyxFQUFF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LENBQUM7WUFDSixDQUFDO1FBQ0gsQ0FBQztJQUNILENBQUM7K0VBakxVLHFCQUFxQjs2REFBckIscUJBQXFCOzs7Ozs4Q0FGaEMsU0FBUztZQzdEWCwrQkFBb0Q7O1lBQTlCLG9DQUF1Qjs7O2lGRCtEaEMscUJBQXFCO2NBTGpDLFNBQVM7MkJBQ0UsZ0JBQWdCLGFBRTFCLFNBQVM7K0lBR3VDLGVBQWU7a0JBQTlELFNBQVM7bUJBQUMsaUJBQWlCLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFOztrRkFEbkMscUJBQXFCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBEb0NoZWNrLCBFbGVtZW50UmVmLCBmb3J3YXJkUmVmLCBOZ1pvbmUsIFZpZXdDaGlsZCwgUHJvdmlkZXIgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IE5HX1ZBTFVFX0FDQ0VTU09SIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IH0gZnJvbSAnLi9wby1jb2RlLWVkaXRvci1iYXNlLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlciB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlJztcblxuLy8gdmFyacOhdmVpcyByZWxhY2lvbmFkYXMgYW8gTW9uYWNvXG5sZXQgbG9hZGVkTW9uYWNvOiBib29sZWFuID0gZmFsc2U7XG5sZXQgbG9hZFByb21pc2U6IFByb21pc2U8dm9pZD47XG5cbmRlY2xhcmUgY29uc3QgbW9uYWNvOiBhbnk7XG4vLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbmRlY2xhcmUgY29uc3QgcmVxdWlyZTogYW55O1xuXG4vKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuY29uc3QgcHJvdmlkZXJzOiBBcnJheTxQcm92aWRlcj4gPSBbXG4gIHtcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmVcbiAgICB1c2VFeGlzdGluZzogZm9yd2FyZFJlZigoKSA9PiBQb0NvZGVFZGl0b3JDb21wb25lbnQpLFxuICAgIG11bHRpOiB0cnVlXG4gIH1cbl07XG5cbi8qKlxuICogQGRvY3NFeHRlbmRzIFBvQ29kZUVkaXRvckJhc2VDb21wb25lbnRcbiAqXG4gKiBAZXhhbXBsZVxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1jb2RlLWVkaXRvci1iYXNpY1wiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgQmFzaWNcIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLWJhc2ljL3NhbXBsZS1wby1jb2RlLWVkaXRvci1iYXNpYy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1iYXNpYy9zYW1wbGUtcG8tY29kZS1lZGl0b3ItYmFzaWMuY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqXG4gKiA8ZXhhbXBsZSBuYW1lPVwicG8tY29kZS1lZGl0b3ItbGFic1wiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgTGFic1wiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItbGFicy9zYW1wbGUtcG8tY29kZS1lZGl0b3ItbGFicy5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzL3NhbXBsZS1wby1jb2RlLWVkaXRvci1sYWJzLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLWRpZmZcIiB0aXRsZT1cIlBPIENvZGUgRWRpdG9yIC0gRGlmZlwiPlxuICogIDxmaWxlIG5hbWU9XCJzYW1wbGUtcG8tY29kZS1lZGl0b3ItZGlmZi9zYW1wbGUtcG8tY29kZS1lZGl0b3ItZGlmZi5jb21wb25lbnQuaHRtbFwiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmL3NhbXBsZS1wby1jb2RlLWVkaXRvci1kaWZmLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiA8L2V4YW1wbGU+XG4gKlxuICogPGV4YW1wbGUgbmFtZT1cInBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybVwiIHRpdGxlPVwiUE8gQ29kZSBFZGl0b3IgLSBUZXJyYWZvcm1cIj5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS9zYW1wbGUtcG8tY29kZS1lZGl0b3ItdGVycmFmb3JtLmNvbXBvbmVudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS5jb25zdGFudC50c1wiPiA8L2ZpbGU+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci10ZXJyYWZvcm0vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXRlcnJhZm9ybS5tb2R1bGUudHNcIj4gPC9maWxlPlxuICogPC9leGFtcGxlPlxuICpcbiAqIDxleGFtcGxlIG5hbWU9XCJwby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uXCIgdGl0bGU9XCJQTyBDb2RlIEVkaXRvciBTdWdnZXN0aW9uXCI+XG4gKiAgPGZpbGUgbmFtZT1cInNhbXBsZS1wby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uL3NhbXBsZS1wby1jb2RlLWVkaXRvci1zdWdnZXN0aW9uLmNvbXBvbmVudC5odG1sXCI+IDwvZmlsZT5cbiAqICA8ZmlsZSBuYW1lPVwic2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24vc2FtcGxlLXBvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uY29tcG9uZW50LnRzXCI+IDwvZmlsZT5cbiAqIDwvZXhhbXBsZT5cbiAqL1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAncG8tY29kZS1lZGl0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcG8tY29kZS1lZGl0b3IuY29tcG9uZW50Lmh0bWwnLFxuICBwcm92aWRlcnNcbn0pXG5leHBvcnQgY2xhc3MgUG9Db2RlRWRpdG9yQ29tcG9uZW50IGV4dGVuZHMgUG9Db2RlRWRpdG9yQmFzZUNvbXBvbmVudCBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQsIERvQ2hlY2sge1xuICBAVmlld0NoaWxkKCdlZGl0b3JDb250YWluZXInLCB7IHN0YXRpYzogdHJ1ZSB9KSBlZGl0b3JDb250YWluZXI6IEVsZW1lbnRSZWY7XG5cbiAgY2FuTG9hZCA9IGZhbHNlO1xuXG4gIGNvbnN0cnVjdG9yKFxuICAgIHByaXZhdGUgem9uZTogTmdab25lLFxuICAgIHByaXZhdGUgZWw6IEVsZW1lbnRSZWYsXG4gICAgcHJpdmF0ZSBwb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZTogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvblNlcnZpY2UsXG4gICAgcHJpdmF0ZSBjb2RlRWRpdG9yUmVnaXN0ZXI/OiBQb0NvZGVFZGl0b3JSZWdpc3RlclxuICApIHtcbiAgICBzdXBlcigpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgbmdBZnRlclZpZXdJbml0KCk6IHZvaWQge1xuICAgIGlmIChsb2FkZWRNb25hY28pIHtcbiAgICAgIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gICAgICBsb2FkUHJvbWlzZS50aGVuKCgpID0+IHtcbiAgICAgICAgc2V0VGltZW91dCgoKSA9PiB7XG4gICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgdGhpcy5yZWdpc3RlckN1c3RvbUxhbmd1YWdlKCk7XG4gICAgICAgICAgICB0aGlzLmluaXRNb25hY28odGhpcy5nZXRPcHRpb25zKCkpO1xuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICB0aGlzLmNhbkxvYWQgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgbG9hZGVkTW9uYWNvID0gdHJ1ZTtcbiAgICAgIGxvYWRQcm9taXNlID0gbmV3IFByb21pc2U8dm9pZD4oKHJlc29sdmU6IGFueSkgPT4ge1xuICAgICAgICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICAgICAgICBjb25zdCBvbkdvdEFtZExvYWRlcjogYW55ID0gKCkgPT4ge1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZS5jb25maWcoeyBwYXRoczogeyAndnMnOiAnLi9hc3NldHMvbW9uYWNvL3ZzJyB9IH0pO1xuICAgICAgICAgICg8YW55PndpbmRvdykucmVxdWlyZShbJ3ZzL2VkaXRvci9lZGl0b3IubWFpbiddLCAoKSA9PiB7XG4gICAgICAgICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgICAgICAgaWYgKHRoaXMuZWwubmF0aXZlRWxlbWVudC5vZmZzZXRXaWR0aCkge1xuICAgICAgICAgICAgICAgIHRoaXMucmVnaXN0ZXJDdXN0b21MYW5ndWFnZSgpO1xuICAgICAgICAgICAgICAgIHRoaXMuaW5pdE1vbmFjbyh0aGlzLmdldE9wdGlvbnMoKSk7XG4gICAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgICAgdGhpcy5jYW5Mb2FkID0gdHJ1ZTtcbiAgICAgICAgICAgICAgfVxuICAgICAgICAgICAgICByZXNvbHZlKCk7XG4gICAgICAgICAgICB9KTtcbiAgICAgICAgICB9KTtcbiAgICAgICAgfTtcblxuICAgICAgICBpZiAoISg8YW55PndpbmRvdykucmVxdWlyZSkge1xuICAgICAgICAgIGNvbnN0IGxvYWRlclNjcmlwdDogSFRNTFNjcmlwdEVsZW1lbnQgPSBkb2N1bWVudC5jcmVhdGVFbGVtZW50KCdzY3JpcHQnKTtcbiAgICAgICAgICBsb2FkZXJTY3JpcHQudHlwZSA9ICd0ZXh0L2phdmFzY3JpcHQnO1xuICAgICAgICAgIGxvYWRlclNjcmlwdC5zcmMgPSAnLi9hc3NldHMvbW9uYWNvL3ZzL2xvYWRlci5qcyc7XG4gICAgICAgICAgbG9hZGVyU2NyaXB0LmFkZEV2ZW50TGlzdGVuZXIoJ2xvYWQnLCBvbkdvdEFtZExvYWRlcik7XG4gICAgICAgICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsb2FkZXJTY3JpcHQpO1xuICAgICAgICB9XG4gICAgICB9KTtcbiAgICB9XG4gIH1cblxuICBuZ0RvQ2hlY2soKSB7XG4gICAgaWYgKHRoaXMuY2FuTG9hZCAmJiB0aGlzLmVsLm5hdGl2ZUVsZW1lbnQub2Zmc2V0V2lkdGgpIHtcbiAgICAgIHRoaXMucmVnaXN0ZXJDdXN0b21MYW5ndWFnZSgpO1xuICAgICAgdGhpcy5pbml0TW9uYWNvKHRoaXMuZ2V0T3B0aW9ucygpKTtcbiAgICAgIHRoaXMuY2FuTG9hZCA9IGZhbHNlO1xuICAgIH1cbiAgfVxuXG4gIC8qIGlzdGFuYnVsIGlnbm9yZSBuZXh0ICovXG4gIG1vbmFjb0NyZWF0ZU1vZGVsKHZhbHVlOiBzdHJpbmcpIHtcbiAgICByZXR1cm4gbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbCh2YWx1ZSk7XG4gIH1cblxuICBzZXRWYWx1ZUluRWRpdG9yKCkge1xuICAgIGlmICh0aGlzLnNob3dEaWZmKSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5lZGl0b3Iuc2V0TW9kZWwoe1xuICAgICAgICAgICAgb3JpZ2luYWw6IHRoaXMubW9uYWNvQ3JlYXRlTW9kZWwodGhpcy52YWx1ZSksXG4gICAgICAgICAgICBtb2RpZmllZDogdGhpcy5tb25hY29DcmVhdGVNb2RlbCh0aGlzLm1vZGlmaWVkVmFsdWUpXG4gICAgICAgICAgfSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH0gZWxzZSB7XG4gICAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgICAgaWYgKHRoaXMuZWRpdG9yKSB7XG4gICAgICAgICAgdGhpcy5lZGl0b3Iuc2V0VmFsdWUodGhpcy52YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgIH0pO1xuICAgIH1cbiAgfVxuXG4gIHNldExhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcbiAgICBpZiAodGhpcy5zaG93RGlmZikge1xuICAgICAgdGhpcy5zZXRNb25hY29MYW5ndWFnZSh0aGlzLmVkaXRvci5nZXRNb2RlbCgpLm9yaWdpbmFsLCBsYW5ndWFnZSk7XG4gICAgICB0aGlzLnNldE1vbmFjb0xhbmd1YWdlKHRoaXMuZWRpdG9yLmdldE1vZGVsKCkubW9kaWZpZWQsIGxhbmd1YWdlKTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5zZXRNb25hY29MYW5ndWFnZSh0aGlzLmVkaXRvci5nZXRNb2RlbCgpLCBsYW5ndWFnZSk7XG4gICAgfVxuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgc2V0VGhlbWUodGhlbWU6IHN0cmluZykge1xuICAgIG1vbmFjby5lZGl0b3Iuc2V0VGhlbWUodGhlbWUpO1xuICB9XG5cbiAgc2V0UmVhZE9ubHkocmVhZE9ubHk6IGJvb2xlYW4pIHtcbiAgICB0aGlzLmVkaXRvci51cGRhdGVPcHRpb25zKHsgcmVhZE9ubHk6IHJlYWRPbmx5IH0pO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgc2V0U3VnZ2VzdGlvbnMobmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+LCBsYW5ndWFnZSA9IHRoaXMubGFuZ3VhZ2UpIHtcbiAgICBpZiAoIW5ld1N1Z2dlc3Rpb25zKSB7XG4gICAgICByZXR1cm47XG4gICAgfVxuXG4gICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSB0aGlzLnBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlLmdldFN1Z2dlc3Rpb24obGFuZ3VhZ2UsIG5ld1N1Z2dlc3Rpb25zKTtcblxuICAgIG1vbmFjby5sYW5ndWFnZXMucmVnaXN0ZXJDb21wbGV0aW9uSXRlbVByb3ZpZGVyKGxhbmd1YWdlLCB7XG4gICAgICBwcm92aWRlQ29tcGxldGlvbkl0ZW1zOiAoKSA9PiAoeyBzdWdnZXN0aW9ucyB9KVxuICAgIH0pO1xuICB9XG5cbiAgd3JpdGVWYWx1ZSh2YWx1ZSkge1xuICAgIHRoaXMudmFsdWUgPSB2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ID8gdmFsdWVbMF0gOiB2YWx1ZTtcbiAgICB0aGlzLm1vZGlmaWVkVmFsdWUgPSB2YWx1ZSAmJiB2YWx1ZSBpbnN0YW5jZW9mIEFycmF5ICYmIHZhbHVlLmxlbmd0aCA+IDAgPyB2YWx1ZVsxXSA6ICcnO1xuICAgIHRoaXMuc2V0VmFsdWVJbkVkaXRvcigpO1xuICB9XG5cbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cbiAgcHJpdmF0ZSBpbml0TW9uYWNvKG9wdGlvbnM6IGFueSk6IHZvaWQge1xuICAgIGlmICh0aGlzLnNob3dEaWZmKSB7XG4gICAgICB0aGlzLmVkaXRvciA9IG1vbmFjby5lZGl0b3IuY3JlYXRlRGlmZkVkaXRvcih0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcblxuICAgICAgdGhpcy5lZGl0b3Iuc2V0TW9kZWwoe1xuICAgICAgICBvcmlnaW5hbDogbW9uYWNvLmVkaXRvci5jcmVhdGVNb2RlbCh0aGlzLnZhbHVlKSxcbiAgICAgICAgbW9kaWZpZWQ6IG1vbmFjby5lZGl0b3IuY3JlYXRlTW9kZWwodGhpcy5tb2RpZmllZFZhbHVlKVxuICAgICAgfSk7XG5cbiAgICAgIHRoaXMuZWRpdG9yLm9uRGlkVXBkYXRlRGlmZigoZTogYW55KSA9PiB7XG4gICAgICAgIGNvbnN0IG9yaWdpbmFsID0gdGhpcy5lZGl0b3IuZ2V0TW9kZWwoKS5vcmlnaW5hbC5nZXRWYWx1ZSgpO1xuICAgICAgICBjb25zdCBtb2RpZmllZCA9IHRoaXMuZWRpdG9yLmdldE1vZGVsKCkubW9kaWZpZWQuZ2V0VmFsdWUoKTtcbiAgICAgICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZShbb3JpZ2luYWwsIG1vZGlmaWVkXSk7XG4gICAgICB9KTtcbiAgICB9IGVsc2Uge1xuICAgICAgdGhpcy5lZGl0b3IgPSBtb25hY28uZWRpdG9yLmNyZWF0ZSh0aGlzLmVkaXRvckNvbnRhaW5lci5uYXRpdmVFbGVtZW50LCBvcHRpb25zKTtcbiAgICAgIHRoaXMuZWRpdG9yLnNldFZhbHVlKHRoaXMudmFsdWUpO1xuICAgICAgdGhpcy5lZGl0b3Iub25EaWRDaGFuZ2VNb2RlbENvbnRlbnQoKGU6IGFueSkgPT4ge1xuICAgICAgICBjb25zdCB2YWx1ZSA9IHRoaXMuZWRpdG9yLmdldFZhbHVlKCk7XG4gICAgICAgIHRoaXMub25DaGFuZ2VQcm9wYWdhdGUodmFsdWUpO1xuICAgICAgICB0aGlzLnpvbmUucnVuKCgpID0+ICh0aGlzLnZhbHVlID0gdmFsdWUpKTtcbiAgICAgIH0pO1xuICAgIH1cbiAgICBzZXRUaW1lb3V0KCgpID0+IHtcbiAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UodGhpcy5sYW5ndWFnZSk7XG4gICAgICB0aGlzLnNldFN1Z2dlc3Rpb25zKHRoaXMuc3VnZ2VzdGlvbnMpO1xuICAgIH0sIDUwMCk7XG4gIH1cblxuICAvKiBpc3RhbmJ1bCBpZ25vcmUgbmV4dCAqL1xuICBwcml2YXRlIHNldE1vbmFjb0xhbmd1YWdlKG1vZGVsLCBsYW5ndWFnZSkge1xuICAgIG1vbmFjby5lZGl0b3Iuc2V0TW9kZWxMYW5ndWFnZShtb2RlbCwgbGFuZ3VhZ2UpO1xuICB9XG5cbiAgcHJpdmF0ZSByZWdpc3RlckN1c3RvbUxhbmd1YWdlKCkge1xuICAgIGlmICh0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZSkge1xuICAgICAgbW9uYWNvLmxhbmd1YWdlcy5yZWdpc3Rlcih7IGlkOiB0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5sYW5ndWFnZSB9KTtcblxuICAgICAgaWYgKHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLm9wdGlvbnMpIHtcbiAgICAgICAgbW9uYWNvLmxhbmd1YWdlcy5zZXRNb25hcmNoVG9rZW5zUHJvdmlkZXIodGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIubGFuZ3VhZ2UsIHRoaXMuY29kZUVkaXRvclJlZ2lzdGVyLm9wdGlvbnMpO1xuICAgICAgfVxuXG4gICAgICBpZiAodGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIuc3VnZ2VzdGlvbnMpIHtcbiAgICAgICAgdGhpcy5zZXRTdWdnZXN0aW9ucyhcbiAgICAgICAgICB0aGlzLmNvZGVFZGl0b3JSZWdpc3Rlci5zdWdnZXN0aW9ucy5wcm92aWRlQ29tcGxldGlvbkl0ZW1zKCkuc3VnZ2VzdGlvbnMsXG4gICAgICAgICAgdGhpcy5jb2RlRWRpdG9yUmVnaXN0ZXIubGFuZ3VhZ2VcbiAgICAgICAgKTtcbiAgICAgIH1cbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgI2VkaXRvckNvbnRhaW5lciBbc3R5bGUuaGVpZ2h0XT1cImhlaWdodFwiPjwvZGl2PlxuIl19
@@ -1,37 +0,0 @@
1
- import { NgModule } from '@angular/core';
2
- import { CommonModule } from '@angular/common';
3
- import { PoCodeEditorComponent } from './po-code-editor.component';
4
- import { PoCodeEditorRegister } from './po-code-editor-register.service';
5
- import * as i0 from "@angular/core";
6
- /**
7
- * @description
8
- *
9
- * Módulo do componente po-code-editor.
10
- */
11
- export class PoCodeEditorModule {
12
- static forRegister(props) {
13
- return {
14
- ngModule: PoCodeEditorModule,
15
- providers: [
16
- {
17
- provide: PoCodeEditorRegister,
18
- useValue: props
19
- }
20
- ]
21
- };
22
- }
23
- static ɵfac = function PoCodeEditorModule_Factory(t) { return new (t || PoCodeEditorModule)(); };
24
- static ɵmod = /*@__PURE__*/ i0.ɵɵdefineNgModule({ type: PoCodeEditorModule });
25
- static ɵinj = /*@__PURE__*/ i0.ɵɵdefineInjector({ providers: [PoCodeEditorRegister], imports: [CommonModule] });
26
- }
27
- (() => { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorModule, [{
28
- type: NgModule,
29
- args: [{
30
- imports: [CommonModule],
31
- declarations: [PoCodeEditorComponent],
32
- exports: [PoCodeEditorComponent],
33
- providers: [PoCodeEditorRegister]
34
- }]
35
- }], null, null); })();
36
- (function () { (typeof ngJitMode === "undefined" || ngJitMode) && i0.ɵɵsetNgModuleScope(PoCodeEditorModule, { declarations: [PoCodeEditorComponent], imports: [CommonModule], exports: [PoCodeEditorComponent] }); })();
37
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3IubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUF1QixNQUFNLGVBQWUsQ0FBQztBQUM5RCxPQUFPLEVBQUUsWUFBWSxFQUFFLE1BQU0saUJBQWlCLENBQUM7QUFFL0MsT0FBTyxFQUFFLHFCQUFxQixFQUFFLE1BQU0sNEJBQTRCLENBQUM7QUFDbkUsT0FBTyxFQUFFLG9CQUFvQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7O0FBR3pFOzs7O0dBSUc7QUFPSCxNQUFNLE9BQU8sa0JBQWtCO0lBQzdCLE1BQU0sQ0FBQyxXQUFXLENBQUMsS0FBK0I7UUFDaEQsT0FBTztZQUNMLFFBQVEsRUFBRSxrQkFBa0I7WUFDNUIsU0FBUyxFQUFFO2dCQUNUO29CQUNFLE9BQU8sRUFBRSxvQkFBb0I7b0JBQzdCLFFBQVEsRUFBRSxLQUFLO2lCQUNoQjthQUNGO1NBQ0YsQ0FBQztJQUNKLENBQUM7NEVBWFUsa0JBQWtCOzREQUFsQixrQkFBa0I7aUVBRmxCLENBQUMsb0JBQW9CLENBQUMsWUFIdkIsWUFBWTs7aUZBS1gsa0JBQWtCO2NBTjlCLFFBQVE7ZUFBQztnQkFDUixPQUFPLEVBQUUsQ0FBQyxZQUFZLENBQUM7Z0JBQ3ZCLFlBQVksRUFBRSxDQUFDLHFCQUFxQixDQUFDO2dCQUNyQyxPQUFPLEVBQUUsQ0FBQyxxQkFBcUIsQ0FBQztnQkFDaEMsU0FBUyxFQUFFLENBQUMsb0JBQW9CLENBQUM7YUFDbEM7O3dGQUNZLGtCQUFrQixtQkFKZCxxQkFBcUIsYUFEMUIsWUFBWSxhQUVaLHFCQUFxQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlLCBNb2R1bGVXaXRoUHJvdmlkZXJzIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xuXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JDb21wb25lbnQgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLmNvbXBvbmVudCc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlciB9IGZyb20gJy4vcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIuc2VydmljZSc7XG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUgfSBmcm9tICcuL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLmludGVyZmFjZSc7XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uXG4gKlxuICogTcOzZHVsbyBkbyBjb21wb25lbnRlIHBvLWNvZGUtZWRpdG9yLlxuICovXG5ATmdNb2R1bGUoe1xuICBpbXBvcnRzOiBbQ29tbW9uTW9kdWxlXSxcbiAgZGVjbGFyYXRpb25zOiBbUG9Db2RlRWRpdG9yQ29tcG9uZW50XSxcbiAgZXhwb3J0czogW1BvQ29kZUVkaXRvckNvbXBvbmVudF0sXG4gIHByb3ZpZGVyczogW1BvQ29kZUVkaXRvclJlZ2lzdGVyXVxufSlcbmV4cG9ydCBjbGFzcyBQb0NvZGVFZGl0b3JNb2R1bGUge1xuICBzdGF0aWMgZm9yUmVnaXN0ZXIocHJvcHM6IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZSk6IE1vZHVsZVdpdGhQcm92aWRlcnM8UG9Db2RlRWRpdG9yTW9kdWxlPiB7XG4gICAgcmV0dXJuIHtcbiAgICAgIG5nTW9kdWxlOiBQb0NvZGVFZGl0b3JNb2R1bGUsXG4gICAgICBwcm92aWRlcnM6IFtcbiAgICAgICAge1xuICAgICAgICAgIHByb3ZpZGU6IFBvQ29kZUVkaXRvclJlZ2lzdGVyLFxuICAgICAgICAgIHVzZVZhbHVlOiBwcm9wc1xuICAgICAgICB9XG4gICAgICBdXG4gICAgfTtcbiAgfVxufVxuIl19
@@ -1,4 +0,0 @@
1
- export { PoCodeEditorComponent } from './components/po-code-editor/po-code-editor.component';
2
- export { PoCodeEditorRegister } from './components/po-code-editor/po-code-editor-register.service';
3
- export { PoCodeEditorModule } from './components/po-code-editor/po-code-editor.module';
4
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2luZGV4LnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxxQkFBcUIsRUFBRSxNQUFNLHNEQUFzRCxDQUFDO0FBRTdGLE9BQU8sRUFBRSxvQkFBb0IsRUFBRSxNQUFNLDZEQUE2RCxDQUFDO0FBT25HLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLG1EQUFtRCxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0IHsgUG9Db2RlRWRpdG9yQ29tcG9uZW50IH0gZnJvbSAnLi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLmNvbXBvbmVudCc7XG5cbmV4cG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyIH0gZnJvbSAnLi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyLnNlcnZpY2UnO1xuXG5leHBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUgfSBmcm9tICcuL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUuaW50ZXJmYWNlJztcbmV4cG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZU9wdGlvbnMgfSBmcm9tICcuL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlVG9rZW5zIH0gZnJvbSAnLi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXRva2Vucy5pbnRlcmZhY2UnO1xuZXhwb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbiB9IGZyb20gJy4vY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XG5cbmV4cG9ydCB7IFBvQ29kZUVkaXRvck1vZHVsZSB9IGZyb20gJy4vY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci5tb2R1bGUnO1xuIl19
@@ -1,5 +0,0 @@
1
- /**
2
- * Generated bundle index. Do not edit.
3
- */
4
- export * from './public-api';
5
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tdWktbmctY29kZS1lZGl0b3IuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvcG8tdWktbmctY29kZS1lZGl0b3IudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUE7O0dBRUc7QUFFSCxjQUFjLGNBQWMsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogR2VuZXJhdGVkIGJ1bmRsZSBpbmRleC4gRG8gbm90IGVkaXQuXG4gKi9cblxuZXhwb3J0ICogZnJvbSAnLi9wdWJsaWMtYXBpJztcbiJdfQ==
@@ -1,2 +0,0 @@
1
- export * from './lib/index';
2
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9wdWJsaWMtYXBpLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLGNBQWMsYUFBYSxDQUFDIiwic291cmNlc0NvbnRlbnQiOlsiZXhwb3J0ICogZnJvbSAnLi9saWIvaW5kZXgnO1xuIl19
Binary file