@po-ui/ng-code-editor 15.15.0 → 16.0.0-next.2

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.
Files changed (38) hide show
  1. package/{esm2020 → esm2022}/lib/components/po-code-editor/interfaces/po-code-editor-registerable-options.interface.mjs +1 -1
  2. package/{esm2020 → esm2022}/lib/components/po-code-editor/interfaces/po-code-editor-registerable-suggestion.interface.mjs +1 -1
  3. package/{esm2020 → esm2022}/lib/components/po-code-editor/interfaces/po-code-editor-registerable-tokens.interface.mjs +1 -1
  4. package/{esm2020 → esm2022}/lib/components/po-code-editor/interfaces/po-code-editor-registerable.interface.mjs +1 -1
  5. package/esm2022/lib/components/po-code-editor/po-code-editor-base.component.mjs +261 -0
  6. package/esm2022/lib/components/po-code-editor/po-code-editor-register.service.mjs +72 -0
  7. package/{esm2020 → esm2022}/lib/components/po-code-editor/po-code-editor-suggestion.service.mjs +28 -29
  8. package/esm2022/lib/components/po-code-editor/po-code-editor.component.mjs +234 -0
  9. package/{esm2020 → esm2022}/lib/components/po-code-editor/po-code-editor.module.mjs +37 -37
  10. package/{esm2020 → esm2022}/lib/index.mjs +3 -3
  11. package/{esm2020 → esm2022}/po-ui-ng-code-editor.mjs +4 -4
  12. package/{esm2020 → esm2022}/public-api.mjs +1 -1
  13. package/{fesm2020 → fesm2022}/po-ui-ng-code-editor.mjs +607 -597
  14. package/{fesm2020 → fesm2022}/po-ui-ng-code-editor.mjs.map +1 -1
  15. package/index.d.ts +5 -5
  16. package/lib/components/po-code-editor/interfaces/po-code-editor-registerable-options.interface.d.ts +22 -22
  17. package/lib/components/po-code-editor/interfaces/po-code-editor-registerable-suggestion.interface.d.ts +37 -37
  18. package/lib/components/po-code-editor/interfaces/po-code-editor-registerable-tokens.interface.d.ts +21 -21
  19. package/lib/components/po-code-editor/interfaces/po-code-editor-registerable.interface.d.ts +17 -17
  20. package/lib/components/po-code-editor/po-code-editor-base.component.d.ts +194 -194
  21. package/lib/components/po-code-editor/po-code-editor-register.service.d.ts +70 -70
  22. package/lib/components/po-code-editor/po-code-editor-suggestion.service.d.ts +10 -10
  23. package/lib/components/po-code-editor/po-code-editor.component.d.ts +61 -61
  24. package/lib/components/po-code-editor/po-code-editor.module.d.ts +16 -16
  25. package/lib/index.d.ts +7 -7
  26. package/package.json +12 -18
  27. package/po-ui-ng-code-editor-16.0.0-next.2.tgz +0 -0
  28. package/public-api.d.ts +1 -1
  29. package/schematics/ng-add/index.d.ts +10 -10
  30. package/schematics/ng-add/index.js +38 -38
  31. package/schematics/ng-add/index.spec.d.ts +1 -1
  32. package/schematics/ng-add/index.spec.js +113 -113
  33. package/esm2020/lib/components/po-code-editor/po-code-editor-base.component.mjs +0 -261
  34. package/esm2020/lib/components/po-code-editor/po-code-editor-register.service.mjs +0 -66
  35. package/esm2020/lib/components/po-code-editor/po-code-editor.component.mjs +0 -229
  36. package/fesm2015/po-ui-ng-code-editor.mjs +0 -632
  37. package/fesm2015/po-ui-ng-code-editor.mjs.map +0 -1
  38. package/po-ui-ng-code-editor-15.15.0.tgz +0 -0
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLW9wdGlvbnMuaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLW9wdGlvbnMuaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVUb2tlbnMgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS10b2tlbnMuaW50ZXJmYWNlJztcclxuXHJcbi8qKlxyXG4gKiBAdXNlZEJ5IFBvQ29kZUVkaXRvclJlZ2lzdGVyXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBJbnRlcmZhY2UgcGFyYSBjb25maWd1cmHDp8OjbyBkZSBPcMOnw7VlcyBkZSBub3ZhcyBzaW50YXhlcyBhbyBjb2RlIGVkaXRvci5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlT3B0aW9ucyB7XHJcbiAgLyoqIFBhbGF2cmFzIGNoYXZlcyBkYSBzaW50YXhlLiAqL1xyXG4gIGtleXdvcmRzOiBBcnJheTxzdHJpbmc+O1xyXG5cclxuICAvKiogT3BlcmFkb3JlcyBlc3BlY8OtZmljb3MgZGEgc2ludGF4ZS4gICovXHJcbiAgb3BlcmF0b3JzOiBBcnJheTxzdHJpbmc+O1xyXG5cclxuICAvKiogU8OtbWJvbG9zIGVzcGVjw61maWNvcyBkYSBzaW50YXhlcy4gKi9cclxuICBzeW1ib2xzOiBSZWdFeHA7XHJcblxyXG4gIC8qKiBFc2NhcGVzIGVzcGVjw61maWNvcyBkYSBzaW50YXhlcy4gKi9cclxuICBlc2NhcGVzOiBSZWdFeHA7XHJcblxyXG4gIC8qKiBJbnRlcmZhY2UgcGFyYSByZWNlYmltZW50byBkZSB0b2tlbiBlc3BlY8OtZmljb3MgZGEgc2ludGF4ZS4gKi9cclxuICB0b2tlbml6ZXI6IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVRva2VucztcclxuXHJcbiAgLyoqIERlZmluZSBzZSBhIHNpbnRheGUgc2Vyw6EgY2FzZSBzZW5zaXRpdmUgb3UgbsOjby4gKi9cclxuICBpZ25vcmVDYXNlPzogYm9vbGVhbjtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL2ludGVyZmFjZXMvcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXN1Z2dlc3Rpb24uaW50ZXJmYWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiIiLCJzb3VyY2VzQ29udGVudCI6WyIvKipcclxuICogQHVzZWRCeSBQb0NvZGVFZGl0b3JSZWdpc3RlciwgUG9Db2RlRWRpdG9yQ29tcG9uZW50XHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBJbnRlcmZhY2UgcGFyYSBjb25maWd1cmHDp8OjbyBkYSBsaXN0YSBkZSBzdWdlc3TDo28gZG8gYXV0b2NvbXBsZXRlIGRvIGNvZGUgZWRpdG9yLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uIHtcclxuICAvKiogVGV4dG8gcXVlIHNlcsOhIGV4aWJpZG8gbmEgbGlzdGEgZGUgc3VnZXN0w7Vlcy4gKi9cclxuICBsYWJlbDogc3RyaW5nO1xyXG5cclxuICAvKiogVGV4dG8gcXVlIHNlcsOhIGluc2VyaWRvIG5vIGVkaXRvciBhbyBzZWxlY2lvbmFyIGEgc3VnZXN0w6NvIGV4aWJpZGEgcGVsbyBhdXRvY29tcGxldGUuICovXHJcbiAgaW5zZXJ0VGV4dDogc3RyaW5nO1xyXG5cclxuICAvKiogVGV4dG8gZGUgYWp1ZGEgcXVlIHNlcsOhIGV4aWJpZG8gY2FzbyBvIHVzdcOhcmlvIGRlc2VqZSB2ZXIgbWFpcyBpbmZvcm1hw6fDtWVzIHNvYnJlIGEgc3VnZXN0w6NvLiAqL1xyXG4gIGRvY3VtZW50YXRpb24/OiBzdHJpbmc7XHJcbn1cclxuXHJcbi8qKlxyXG4gKiBAdXNlZEJ5IFBvQ29kZUVkaXRvclJlZ2lzdGVyLCBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIEludGVyZmFjZSBkbyBvYmpldG8gdXNhZG8gcGVsbyBtb25hY28gcGFyYSBsaXN0YSBkZSBzdWdlc3TDo28gZG8gYXV0b2NvbXBsZXRlIGRvIGNvZGUgZWRpdG9yLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uVHlwZSB7XHJcbiAgcHJvdmlkZUNvbXBsZXRpb25JdGVtczogKCkgPT4geyBzdWdnZXN0aW9uczogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4gfTtcclxufVxyXG5cclxuLyoqXHJcbiAqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBJbnRlcmZhY2UgZG8gb2JqZXRvIHVzYWRvIHBlbG8gbW9uYWNvIHBhcmEgbGlzdGEgZGUgc3VnZXN0w6NvIGRvIGF1dG9jb21wbGV0ZSBkbyBjb2RlIGVkaXRvci5cclxuICogVXRpbGl6YWRvIGludGVybmFtZW50ZSBwZWxvIHNlcnZpw6dvIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25TZXJ2aWNlXHJcbiAqL1xyXG5leHBvcnQgaW50ZXJmYWNlIFBvQ29kZUVkaXRvclN1Z2dlc3Rpb25MaXN0IHtcclxuICBbaW5kZXg6IHN0cmluZ106IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+O1xyXG59XHJcbiJdfQ==
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLXRva2Vucy5pbnRlcmZhY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtdG9rZW5zLmludGVyZmFjZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXHJcbiAqIEB1c2VkQnkgUG9Db2RlRWRpdG9yUmVnaXN0ZXJcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIEludGVyZmFjZSBwYXJhIGNvbmZpZ3VyYcOnw6NvIGRlIHRva2VucyBkZSBub3ZhcyBzaW50YXhlcyBhbyBjb2RlIGVkaXRvci5cclxuICovXHJcbmV4cG9ydCBpbnRlcmZhY2UgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlVG9rZW5zIHtcclxuICAvKiogUHJpbmNpcGFsIHRva2VuaXplciBkYSBzaW50YXhlIGN1c3RvbWl6YWRhLiAqL1xyXG4gIHJvb3Q6IEFycmF5PGFueT47XHJcblxyXG4gIC8qKiBUb2tlbml6ZXIgZGUgY29tZW50w6FyaW9zLiAqL1xyXG4gIGNvbW1lbnQ/OiBBcnJheTxhbnk+O1xyXG5cclxuICAvKiogVG9rZW5pemVyIGRlIHN0cmluZ3MuICovXHJcbiAgc3RyaW5nPzogQXJyYXk8YW55PjtcclxuXHJcbiAgLyoqIFRva2VuaXplciBkZSB3aGl0ZXNwYWNlcy4gKi9cclxuICB3aGl0ZXNwYWNlPzogQXJyYXk8YW55PjtcclxuXHJcbiAgLyoqIFNlcXXDqm5jaWEgZGUgaW50ZXJwb2xhw6fDo28uICAqL1xyXG4gIGludGVycG9sYXRlZD86IEFycmF5PGFueT47XHJcblxyXG4gIC8qKiBTZXF1w6puY2lhIGRlIGludGVycG9sYcOnw6NvIGNvbXBvc3RhLiAqL1xyXG4gIGludGVycG9sYXRlZENvbXBvdW5kPzogQXJyYXk8YW55PjtcclxufVxyXG4iXX0=
@@ -1,2 +1,2 @@
1
- export {};
1
+ export {};
2
2
  //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXJhYmxlLmludGVyZmFjZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS5pbnRlcmZhY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZU9wdGlvbnMgfSBmcm9tICcuL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1vcHRpb25zLmludGVyZmFjZSc7XHJcbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb25UeXBlIH0gZnJvbSAnLi9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtc3VnZ2VzdGlvbi5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEB1c2VkQnkgUG9Db2RlRWRpdG9yUmVnaXN0ZXJcclxuICpcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIEludGVyZmFjZSBwYXJhIGNvbmZpZ3VyYcOnw6NvIGRlIG5vdmFzIHNpbnRheGVzIGFvIGNvZGUgZWRpdG9yLlxyXG4gKi9cclxuZXhwb3J0IGludGVyZmFjZSBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUge1xyXG4gIC8qKiBOb21lIGRhIHNpbnRheGUgYSBzZXIgcmVnaXN0cmFkYSBubyBjb2RlIGVkaXRvci4gKi9cclxuICBsYW5ndWFnZTogc3RyaW5nO1xyXG5cclxuICAvKiogT3DDp8O1ZXMgZGUgY29uZmlndXJhw6fDo28gZGEgc2ludGF4ZSBjdXN0b21pemFkYS4gKi9cclxuICBvcHRpb25zOiBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVPcHRpb25zO1xyXG5cclxuICAvKiogTGlzdGEgZGUgc3VnZXN0w7VlcyBwYXJhIGEgZnVuw6fDo28gZGUgYXV0b2NvbXBsZXRlLiAqL1xyXG4gIHN1Z2dlc3Rpb25zPzogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvblR5cGU7XHJcbn1cclxuIl19
@@ -0,0 +1,261 @@
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: ["p-language", "language"], readonly: ["p-readonly", "readonly"], showDiff: ["p-show-diff", "showDiff"], suggestions: ["p-suggestions", "suggestions"], theme: ["p-theme", "theme"], height: ["p-height", "height"] } });
239
+ }
240
+ (function () { (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,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9jb2RlLWVkaXRvci9zcmMvbGliL2NvbXBvbmVudHMvcG8tY29kZS1lZGl0b3IvcG8tY29kZS1lZGl0b3ItYmFzZS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLEtBQUssRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBS2pELE1BQU0scUJBQXFCLEdBQUcsQ0FBQyxTQUFTLEVBQUUsSUFBSSxFQUFFLFVBQVUsQ0FBQyxDQUFDO0FBQzVELE1BQU0sNEJBQTRCLEdBQUcsSUFBSSxDQUFDO0FBRTFDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7R0F5REc7QUFFSCxNQUFNLE9BQWdCLHlCQUF5QjtJQUM3QyxNQUFNLENBQU07SUFDWixhQUFhLEdBQVcsRUFBRSxDQUFDO0lBQzNCLEtBQUssR0FBUSxFQUFFLENBQUM7SUFFUixPQUFPLEdBQVcsR0FBRyxDQUFDO0lBQ3RCLFNBQVMsR0FBRyxXQUFXLENBQUM7SUFDeEIsU0FBUyxHQUFZLEtBQUssQ0FBQztJQUMzQixTQUFTLEdBQVksS0FBSyxDQUFDO0lBQzNCLFlBQVksQ0FBNEM7SUFDeEQsTUFBTSxHQUFHLDRCQUE0QixDQUFDO0lBRTlDOzs7Ozs7Ozs7Ozs7O09BYUc7SUFDSCxJQUF5QixRQUFRLENBQUMsUUFBZ0I7UUFDaEQsSUFBSSxDQUFDLFNBQVMsR0FBRyxRQUFRLElBQUksUUFBUSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUM7UUFFN0UsSUFBSSxJQUFJLENBQUMsTUFBTSxJQUFJLElBQUksQ0FBQyxTQUFTLEVBQUU7WUFDakMsSUFBSSxDQUFDLFdBQVcs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dkIsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUM7SUFDdEIsQ0FBQztJQUVTLGdCQUFnQixDQUFDLEdBQVE7UUFDakMsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsR0FBRyxHQUFHLEdBQUcsQ0FBQyxXQUFXLEVBQUUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztZQUMvQixPQUFPLEdBQUcsS0FBSyxNQUFNLElBQUksR0FBRyxLQUFLLElBQUksSUFBSSxHQUFHLEtBQUssRUFBRSxDQUFDO1NBQ3JEO1FBRUQsSUFBSSxPQUFPLEdBQUcsS0FBSyxRQUFRLEVBQUU7WUFDM0IsT0FBTyxHQUFHLEtBQUssQ0FBQyxDQUFDO1NBQ2xCO1FBRUQsT0FBTyxDQUFDLENBQUMsR0FBRyxDQUFDO0lBQ2YsQ0FBQzttRkFyTW1CLHlCQUF5Qjs2REFBekIseUJBQXlCOzt1RkFBekIseUJBQXlCO2NBRDlDLFNBQVM7Z0JBMkJpQixRQUFRO2tCQUFoQyxLQUFLO21CQUFDLFlBQVk7WUF5Qk0sUUFBUTtrQkFBaEMsS0FBSzttQkFBQyxZQUFZO1lBNEJPLFFBQVE7a0JBQWpDLEtBQUs7bUJBQUMsYUFBYTtZQStCUSxXQUFXO2tCQUF0QyxLQUFLO21CQUFDLGVBQWU7WUE4QkEsS0FBSztrQkFBMUIsS0FBSzttQkFBQyxTQUFTO1lBcUJPLE1BQU07a0JBQTVCLEtBQUs7bUJBQUMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IElucHV0LCBEaXJlY3RpdmUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgQ29udHJvbFZhbHVlQWNjZXNzb3IgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcblxyXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uIH0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XHJcblxyXG5jb25zdCBQT19DT0RFX0VESVRPUl9USEVNRVMgPSBbJ3ZzLWRhcmsnLCAndnMnLCAnaGMtYmxhY2snXTtcclxuY29uc3QgUE9fQ09ERV9FRElUT1JfVEhFTUVfREVGQVVMVCA9ICd2cyc7XHJcblxyXG4vKipcclxuICogQGRlc2NyaXB0aW9uXHJcbiAqXHJcbiAqIE8gYHBvLWNvZGUtZWRpdG9yYCDDqSB1bSBjb21wb25lbnRlIHBhcmEgZWRpw6fDo28gZGUgY8OzZGlnbyBmb250ZSBiYXNlYWRvIG5vIE1vbmFjbyBFZGl0b3IgZGEgTWljcm9zb2Z0LlxyXG4gKlxyXG4gKiBTZW5kbyBhc3NpbSwgYWxndW1hcyBjb25maWd1cmHDp8O1ZXMgcHJlc2VudGVzIG5vIE1vbmFjbyBwb2RlbSBzZXIgdXRpbGl6YWRhcyBhcXVpLCBjb21vIGEgZXNjb2xoYSBkYSBsaW5ndWFnZW1cclxuICogKHV0aWxpemFuZG8gbyBoaWdobGlnaHQgc3ludGF4IGVzcGVjw61maWNvKSwgZXNjb2xoYSBkbyB0ZW1hIGUgb3DDp8OjbyBkZSBkaWZmLCBhbMOpbSBkZSBzZXIgbXVpdG8gc2ltaWxhciBhbyBWaXN1YWxcclxuICogU3R1ZGlvIENvZGUsIGNvbSBhdXRvY29tcGxldGUgZSBmZWNoYW1lbnRvIGF1dG9tw6F0aWNvIGRlIGJyYWNrZXRzLlxyXG4gKlxyXG4gKiBFc3RlIGNvbXBvbmVudGUgcG9kZSBzZXIgdXNhZG8gZW0gcXVhbHF1ZXIgc2l0dWHDp8OjbyBxdWUgbmVjZXNzaXRlIGRlIGFkacOnw6NvIGRlIGPDs2RpZ29zLCBjb21vIHBvciBleGVtcGxvLCBjcmlhclxyXG4gKiByZWNlaXRhcyB1dGlsaXphbmRvIFRlcnJhZm9ybSBwYXJhIGdlcmVuY2lhciB0b3BvbG9naWFzLlxyXG4gKiDDiSBpbXBvcnRhbnRlIHJlc3NhbHRhciBxdWUgZXN0ZSBuw6NvIMOpIHVtIGNvbXBvbmVudGUgcGFyYSBlZGnDp8OjbyBkZSB0ZXh0b3MgY29tdW5zLlxyXG4gKlxyXG4gKiBPIFsobmdNb2RlbCldIGRldmUgc2VyIHVzYWRvIHBhcmEgbWFuaXB1bGFyIG8gY29udGXDumRvIGRvIHBvLWNvZGUtZWRpdG9yLCBvdSBzZWphLCB0YW50byBwYXJhIGluY2x1aXIgdW0gY29udGXDumRvIHF1YW50b1xyXG4gKiBwYXJhIHJlY3VwZXJhciBvIGNvbnRlw7pkbyBkbyBwby1jb2RlLWVkaXRvciwgdXRpbGl6YS1zZSB1bWEgdmFyacOhdmVsIHBhc3NhZGEgcG9yIFsobmdNb2RlbCldLlxyXG4gKlxyXG4gKiAjIyMjIEFkaWNpb25hbmRvIG8gcGFjb3RlIEBwby11aS9uZy1jb2RlLWVkaXRvclxyXG4gKlxyXG4gKiBQYXJhIGluc3RhbGFyIG8gcGFjb3RlIGBwby1jb2RlLWVkaXRvcmAgZW0gc3VhIGFwbGljYcOnw6NvIGV4ZWN1dGU6XHJcbiAqXHJcbiAqIGBgYHNoZWxsXHJcbiAqIG5nIGFkZCBAcG8tdWkvbmctY29kZS1lZGl0b3JcclxuICogYGBgXHJcbiAqXHJcbiAqIE8gY29tYW5kbyBgbmcgYWRkYCBkbyBgQW5ndWxhciBDTElgOlxyXG4gKiAtIGluY2x1aSBvIGBwby1jb2RlLWVkaXRvcmAgbm8gc2V1IHByb2pldG87XHJcbiAqIC0gYWRpY2lvbmEgbyBtw7NkdWxvIGBQb0NvZGVFZGl0b3JNb2R1bGVgOjtcclxuICpcclxuICogYGBgXHJcbiAqIC8vIGFwcC5tb2R1bGUudHNcclxuICogLi4uXHJcbiAqIGltcG9ydCB7IFBvTW9kdWxlIH0gZnJvbSAnQHBvLXVpL25nLWNvbXBvbmVudHMnO1xyXG4gKiBpbXBvcnQgeyBQb0NvZGVFZGl0b3JNb2R1bGUgfSBmcm9tICdAcG8tdWkvbmctY29kZS1lZGl0b3InO1xyXG4gKiAuLi5cclxuICogQE5nTW9kdWxlKHtcclxuICogICBpbXBvcnRzOiBbXHJcbiAqICAgICAuLi5cclxuICogICAgIFBvTW9kdWxlLFxyXG4gKiAgICAgUG9Db2RlRWRpdG9yTW9kdWxlXHJcbiAqICAgXSxcclxuICogICAuLi5cclxuICogfSlcclxuICogZXhwb3J0IGNsYXNzIEFwcE1vZHVsZSB7IH1cclxuICogYGBgXHJcbiAqXHJcbiAqIC0gYWRpY2lvbmEgbyB0ZW1hIFBPIFVJIGUgdGFtYsOpbSBvICphc3NldCogZG8gTW9uYWNvIG5vIGFycXVpdm8gYGFuZ3VsYXIuanNvbmAsIGNvbmZvcm1lIGFiYWl4bzpcclxuICpcclxuICogPHByZSBuZ05vbkJpbmRhYmxlPlxyXG4gKiAuLi5cclxuICogXCJhc3NldHNcIjogW1xyXG4gKiAgICB7IFwiZ2xvYlwiOiBcIiYjNDI7JiM0MjsvJiM0MjtcIiwgXCJpbnB1dFwiOiBcIm5vZGVfbW9kdWxlcy9tb25hY28tZWRpdG9yL21pblwiLCBcIm91dHB1dFwiOiBcIi9hc3NldHMvbW9uYWNvL1wiIH1cclxuICogIF0sXHJcbiAqIFwic3R5bGVzXCI6IFtcclxuICogICAgXCIuL25vZGVfbW9kdWxlcy9AcG8tdWkvc3R5bGUvY3NzL3BvLXRoZW1lLWRlZmF1bHQubWluLmNzc1wiXHJcbiAqIF1cclxuICogLi4uXHJcbiAqIDwvcHJlPlxyXG4gKi9cclxuQERpcmVjdGl2ZSgpXHJcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBQb0NvZGVFZGl0b3JCYXNlQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3Ige1xyXG4gIGVkaXRvcjogYW55O1xyXG4gIG1vZGlmaWVkVmFsdWU6IHN0cmluZyA9ICcnO1xyXG4gIHZhbHVlOiBhbnkgPSAnJztcclxuXHJcbiAgcHJpdmF0ZSBfaGVpZ2h0OiBudW1iZXIgPSAxNTA7XHJcbiAgcHJpdmF0ZSBfbGFuZ3VhZ2UgPSAncGxhaW5UZXh0JztcclxuICBwcml2YXRlIF9yZWFkb25seTogYm9vbGVhbiA9IGZhbHNlO1xyXG4gIHByaXZhdGUgX3Nob3dEaWZmOiBib29sZWFuID0gZmFsc2U7XHJcbiAgcHJpdmF0ZSBfc3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+O1xyXG4gIHByaXZhdGUgX3RoZW1lID0gUE9fQ09ERV9FRElUT1JfVEhFTUVfREVGQVVMVDtcclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIExpbmd1YWdlbSBuYSBxdWFsIHNlcsOhIGFwcmVzZW50YWRvIG8gY8OzZGlnbyBmb250ZS5cclxuICAgKiBQYXJhIHNhYmVyIHF1YWlzIHPDo28gYXMgbGluZ3VhZ2VucyBjb21wYXTDrXZlaXMsIGNvbnN1bHRlIGEgZG9jdW1lbnRhw6fDo28gb2ZpY2lhbCBkb1xyXG4gICAqIFsqKk1vbmFjbyBFZGl0b3IqKl0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL21vbmFjby1lZGl0b3IvKS5cclxuICAgKlxyXG4gICAqIFRhbWLDqW0gw6kgcG9zc8OtdmVsIGFkaWNpb25hciB1bWEgbm92YSBsaW5ndWFnZW0gcGVyc29uYWxpemFkYSB1dGlsaXphbmRvIG8gc2VydmnDp286XHJcbiAgICogWyoqcG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIqKl0oaHR0cHM6Ly9wby11aS5pby9kb2N1bWVudGF0aW9uL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyP3ZpZXc9ZG9jKS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBwbGFpblRleHRgXHJcbiAgICovXHJcbiAgQElucHV0KCdwLWxhbmd1YWdlJykgc2V0IGxhbmd1YWdlKGxhbmd1YWdlOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuX2xhbmd1YWdlID0gbGFuZ3VhZ2UgJiYgbGFuZ3VhZ2UubGVuZ3RoID8gbGFuZ3VhZ2UudHJpbSgpIDogJ3BsYWluVGV4dCc7XHJcblxyXG4gICAgaWYgKHRoaXMuZWRpdG9yICYmIHRoaXMuX2xhbmd1YWdlKSB7XHJcbiAgICAgIHRoaXMuc2V0TGFuZ3VhZ2UodGhpcy5fbGFuZ3VhZ2UpO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgZ2V0IGxhbmd1YWdlKCk6IHN0cmluZyB7XHJcbiAgICByZXR1cm4gdGhpcy5fbGFuZ3VhZ2U7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogSW5kaWNhIHNlIG8gZWRpdG9yIHNlcsOhIGFiZXJ0byBlbSBtb2RvIGRlIGxlaXR1cmEuXHJcbiAgICpcclxuICAgKiBOZXN0ZSBjYXNvLCBuw6NvIMOpIHBvc3PDrXZlbCBlZGl0YXIgbyBjw7NkaWdvIGluc2VyaWRvLlxyXG4gICAqXHJcbiAgICogT2JzOiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcmVmbGV0aXLDoSBlZmVpdG8gc2UgYWx0ZXJhZGEgYXDDs3MgbyBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3AtcmVhZG9ubHknKSBzZXQgcmVhZG9ubHkocmVhZG9ubHk6IGJvb2xlYW4pIHtcclxuICAgIHRoaXMuX3JlYWRvbmx5ID0gPGFueT5yZWFkb25seSA9PT0gJycgPyB0cnVlIDogdGhpcy5jb252ZXJ0VG9Cb29sZWFuKHJlYWRvbmx5KTtcclxuXHJcbiAgICBpZiAodGhpcy5lZGl0b3IpIHtcclxuICAgICAgdGhpcy5zZXRSZWFkT25seShyZWFkb25seSk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgcmVhZG9ubHkoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fcmVhZG9ubHk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogSW5kaWNhIHNlIG8gZWRpdG9yIHNlcsOhIGFiZXJ0byBlbSBtb2RvIGRlIGNvbXBhcmHDp8Ojby5cclxuICAgKlxyXG4gICAqIENhc28gZXN0ZWphIGhhYmlsaXRhZGEgZXN0YSBvcMOnw6NvLCBlbnTDo28gbyBbKG5nTW9kZWwpXSBkZXZlcsOhIHNlciBwYXNzYWRvIGNvbW8gdW0gYXJyYXksIGN1amEgcHJpbWVpcmEgb3DDp8OjbyBkZXZlXHJcbiAgICogY29udGVyIHVtYSBzdHJpbmcgY29tIG8gY8OzZGlnbyBvcmlnaW5hbCBlIG5hIHNlZ3VuZGEgcG9zacOnw6NvIHVtYSBzdHJpbmcgY8OzZGlnbyBtb2RpZmljYWRvIHBhcmEgZWZlaXRvIGRlXHJcbiAgICogY29tcGFyYcOnw6NvLiBOZXN0ZSBjYXNvLCBvIHVzdcOhcmlvIGNvbnNlZ3VpcsOhIGVkaXRhciBhcGVuYXMgbyBjw7NkaWdvIG1vZGlmaWNhZG8gZSBpc3NvIHJlZmxldGlyw6EgbmEgc2VndW5kYSBwb3Npw6fDo29cclxuICAgKiBkbyBhcnJheSBjb25zZXF1ZW50ZW1lbnRlLlxyXG4gICAqXHJcbiAgICogT2JzOiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcmVmbGV0aXLDoSBlZmVpdG8gc2UgYWx0ZXJhZGEgYXDDs3MgbyBjYXJyZWdhbWVudG8gZG8gY29tcG9uZW50ZS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGBmYWxzZWBcclxuICAgKi9cclxuICBASW5wdXQoJ3Atc2hvdy1kaWZmJykgc2V0IHNob3dEaWZmKHNob3dEaWZmOiBib29sZWFuKSB7XHJcbiAgICB0aGlzLl9zaG93RGlmZiA9IDxhbnk+c2hvd0RpZmYgPT09ICcnID8gdHJ1ZSA6IHRoaXMuY29udmVydFRvQm9vbGVhbihzaG93RGlmZik7XHJcbiAgfVxyXG5cclxuICBnZXQgc2hvd0RpZmYoKTogYm9vbGVhbiB7XHJcbiAgICByZXR1cm4gdGhpcy5fc2hvd0RpZmY7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBAb3B0aW9uYWxcclxuICAgKlxyXG4gICAqIEBkZXNjcmlwdGlvblxyXG4gICAqXHJcbiAgICogTGlzdGEgZGUgc3VnZXN0w7VlcyB1c2FkYXMgcGVsbyBhdXRvY29tcGxldGUgZGVudHJvIGRvIGVkaXRvci5cclxuICAgKlxyXG4gICAqIFBhcmEgdmlzdWFsaXphciBhIGxpc3RhIGRlIHN1Z2VzdMO1ZXMgdXNlIG8gY29tYW5kbyBgQ1RSTCArIFNQQUNFYC5cclxuICAgKlxyXG4gICAqIENhc28gbyBlZGl0b3IgZXN0ZWphIHVzYW5kbyB1bWEgbGluZ3VhZ2VtIHF1ZSBqw6EgdGVuaGEgdW1hIGxpc3RhIGRlIHN1Z2VzdMO1ZXMgcHJlZGVmaW5pZGEsIG8gdmFsb3IgcGFzc2FkbyBzZXLDoSBhZGljaW9uYWRvXHJcbiAgICogYSBsaXN0YSBwcmVleGlzdGVudGUsIGF1bWVudGFuZG8gYXMgb3DDp8O1ZXMgcGFyYSBvIHVzdcOhcmlvLlxyXG4gICAqXHJcbiAgICogQ2FzbyB0ZW5oYSBtYWlzIGRlIHVtIGVkaXRvciBkYSBtZXNtYSBsaW5ndWFnZW0gbmEgYXBsaWNhw6fDo28sIGFzIHN1Z2VzdMO1ZXMgc2Vyw6NvIGFkaWNpb25hZGFzIHBhcmEgcXVlIHRvZG9zIG9zIGVkaXRvcmVzIGRhIG1lc21hIGxpbmd1YWdlbVxyXG4gICAqIHRlbmhhbSBhcyBtZXNtYXMgc3VnZXN0w7Vlcy5cclxuICAgKlxyXG4gICAqIGBgYFxyXG4gICAqICA8cG8tY29kZS1lZGl0b3JcclxuICAgKiAgICBbcC1zdWdnZXN0aW9uc109XCJbeyBsYWJlbDogJ3BvJywgaW5zZXJ0VGV4dDogJ1BvcnRpbmFyaSBVSScgfSwgeyBsYWJlbDogJ25nJywgaW5zZXJ0VGV4dDogJ0FuZ3VsYXInIH1dXCI+XHJcbiAgICogIDwvcG8tY29kZS1lZGl0b3I+XHJcbiAgICogYGBgXHJcbiAgICpcclxuICAgKiBBbyBmb3JuZWNlciB1bWEgbGlzdGEgZGUgc3VnZXN0w7VlcyDDqSBwb3Nzw612ZWwgYWNlbGVyYXIgYSBlc2NyaXRhIGRlIHNjcmlwdHMgcGVsb3MgdXN1w6FyaW9zLlxyXG4gICAqL1xyXG4gIEBJbnB1dCgncC1zdWdnZXN0aW9ucycpIHNldCBzdWdnZXN0aW9ucyh2YWx1ZXM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XHJcbiAgICB0aGlzLl9zdWdnZXN0aW9ucyA9IHZhbHVlcztcclxuXHJcbiAgICBpZiAodGhpcy5lZGl0b3IgJiYgdGhpcy5fc3VnZ2VzdGlvbnMpIHtcclxuICAgICAgdGhpcy5zZXRTdWdnZXN0aW9ucyh0aGlzLl9zdWdnZXN0aW9ucyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBnZXQgc3VnZ2VzdGlvbnMoKTogQXJyYXk8UG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlU3VnZ2VzdGlvbj4ge1xyXG4gICAgcmV0dXJuIHRoaXMuX3N1Z2dlc3Rpb25zO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIERlZmluZSB1bSB0ZW1hIHBhcmEgbyBlZGl0b3IuXHJcbiAgICpcclxuICAgKiBUZW1hcyB2w6FsaWRvczpcclxuICAgKiAgLSBgdnMtZGFya2BcclxuICAgKiAgLSBgdnNgXHJcbiAgICogIC0gYGhjLWJsYWNrYFxyXG4gICAqXHJcbiAgICogw4kgaW1wb3J0YW50ZSBzYWxpZW50YXIgcXVlIG8gdGVtYSBzZXLDoSBhcGxpY2Fkb3MgYSB0b2RvcyBvcyBjb21wb25lbnRlcyBwby1jb2RlLWVkaXRvciBleGlzdGVudGVzIG5hIHRlbGEsXHJcbiAgICogb3Ugc2VqYSwgdG9kYXMgYXMgaW5zdMOibmNpYXMgZG8gY29tcG9uZW50ZSByZWNlYmVyw6NvIG8gw7psdGltbyB0ZW1hIGF0cmlidcOtZG8gb3UgbyB0ZW1hIGRhIMO6bHRpbWEgaW5zdMOibmNpYVxyXG4gICAqIGNyaWFkYS5cclxuICAgKlxyXG4gICAqIEBkZWZhdWx0IGB2c2BcclxuICAgKi9cclxuICBASW5wdXQoJ3AtdGhlbWUnKSBzZXQgdGhlbWUodGhlbWU6IHN0cmluZykge1xyXG4gICAgdGhpcy5fdGhlbWUgPSBQT19DT0RFX0VESVRPUl9USEVNRVMuaW5jbHVkZXModGhlbWUpID8gdGhlbWUgOiBQT19DT0RFX0VESVRPUl9USEVNRV9ERUZBVUxUO1xyXG5cclxuICAgIGlmICh0aGlzLmVkaXRvcikge1xyXG4gICAgICB0aGlzLnNldFRoZW1lKHRoZW1lKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIGdldCB0aGVtZSgpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIHRoaXMuX3RoZW1lO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogQG9wdGlvbmFsXHJcbiAgICpcclxuICAgKiBAZGVzY3JpcHRpb25cclxuICAgKlxyXG4gICAqIERlZmluZSBhIGFsdHVyYSBkbyBjb21wb25lbnRlIGVtIHBpeGVscyBkbyBwby1jb2RlLWVkaXRvci5cclxuICAgKiBFc3RhIHByb3ByaWVkYWRlIG7Do28gcG9kZXLDoSBzZXIgYWx0ZXJhZGEgYXDDs3MgbyBjb21wb25lbnRlIHRlciBzaWRvIGluaWNpYWRvLlxyXG4gICAqIEEgYWx0dXJhIG3DrW5pbWEgw6kgMTUwIHBpeGVscy5cclxuICAgKi9cclxuICBASW5wdXQoJ3AtaGVpZ2h0Jykgc2V0IGhlaWdodChoZWlnaHQ6IHN0cmluZykge1xyXG4gICAgdGhpcy5faGVpZ2h0ID0gcGFyc2VGbG9hdChoZWlnaHQpID49IDE1MCA/IHBhcnNlRmxvYXQoaGVpZ2h0KSA6IDE1MDtcclxuICB9XHJcblxyXG4gIGdldCBoZWlnaHQoKTogc3RyaW5nIHtcclxuICAgIHJldHVybiBgJHt0aGlzLl9oZWlnaHR9cHhgO1xyXG4gIH1cclxuXHJcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuICBvblRvdWNoZWQgPSAodmFsdWU6IGFueSkgPT4ge307XHJcbiAgLyogaXN0YW5idWwgaWdub3JlIG5leHQgKi9cclxuICBvbkNoYW5nZVByb3BhZ2F0ZSA9ICh2YWx1ZTogYW55KSA9PiB7fTtcclxuXHJcbiAgZ2V0T3B0aW9ucygpIHtcclxuICAgIHJldHVybiB7IGxhbmd1YWdlOiB0aGlzLmxhbmd1YWdlLCB0aGVtZTogdGhpcy50aGVtZSwgcmVhZE9ubHk6IHRoaXMucmVhZG9ubHkgfTtcclxuICB9XHJcblxyXG4gIHJlZ2lzdGVyT25DaGFuZ2UoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vbkNoYW5nZVByb3BhZ2F0ZSA9IGZuO1xyXG4gIH1cclxuXHJcbiAgcmVnaXN0ZXJPblRvdWNoZWQoZm46IGFueSk6IHZvaWQge1xyXG4gICAgdGhpcy5vblRvdWNoZWQgPSBmbjtcclxuICB9XHJcblxyXG4gIHByb3RlY3RlZCBjb252ZXJ0VG9Cb29sZWFuKHZhbDogYW55KTogYm9vbGVhbiB7XHJcbiAgICBpZiAodHlwZW9mIHZhbCA9PT0gJ3N0cmluZycpIHtcclxuICAgICAgdmFsID0gdmFsLnRvTG93ZXJDYXNlKCkudHJpbSgpO1xyXG4gICAgICByZXR1cm4gdmFsID09PSAndHJ1ZScgfHwgdmFsID09PSAnb24nIHx8IHZhbCA9PT0gJyc7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKHR5cGVvZiB2YWwgPT09ICdudW1iZXInKSB7XHJcbiAgICAgIHJldHVybiB2YWwgPT09IDE7XHJcbiAgICB9XHJcblxyXG4gICAgcmV0dXJuICEhdmFsO1xyXG4gIH1cclxuXHJcbiAgYWJzdHJhY3Qgd3JpdGVWYWx1ZSh2YWx1ZTogYW55KTtcclxuXHJcbiAgYWJzdHJhY3Qgc2V0TGFuZ3VhZ2UodmFsdWU6IGFueSk7XHJcblxyXG4gIGFic3RyYWN0IHNldFRoZW1lKHZhbHVlOiBhbnkpO1xyXG5cclxuICBhYnN0cmFjdCBzZXRSZWFkT25seSh2YWx1ZTogYW55KTtcclxuXHJcbiAgYWJzdHJhY3Qgc2V0U3VnZ2VzdGlvbnModmFsdWU6IGFueSk7XHJcbn1cclxuIl19
@@ -0,0 +1,72 @@
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
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorRegister, [{
70
+ type: Injectable
71
+ }], null, null); })();
72
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3ItcmVnaXN0ZXIuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvZGUtZWRpdG9yL3NyYy9saWIvY29tcG9uZW50cy9wby1jb2RlLWVkaXRvci9wby1jb2RlLWVkaXRvci1yZWdpc3Rlci5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7O0FBTTNDOzs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7Ozs7O0dBdURHO0FBRUgsTUFBTSxPQUFPLG9CQUFvQjtJQUMvQixnQ0FBZ0M7SUFDaEMsUUFBUSxDQUFTO0lBRWpCLHlEQUF5RDtJQUN6RCxPQUFPLENBQWtDO0lBRXpDLHVFQUF1RTtJQUN2RSxXQUFXLENBQTBDOzhFQVIxQyxvQkFBb0I7Z0VBQXBCLG9CQUFvQixXQUFwQixvQkFBb0I7O3VGQUFwQixvQkFBb0I7Y0FEaEMsVUFBVSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuXHJcbmltcG9ydCB7IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUuaW50ZXJmYWNlJztcclxuaW1wb3J0IHsgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlT3B0aW9ucyB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtb3B0aW9ucy5pbnRlcmZhY2UnO1xyXG5pbXBvcnQgeyBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uVHlwZSB9IGZyb20gJy4vaW50ZXJmYWNlcy9wby1jb2RlLWVkaXRvci1yZWdpc3RlcmFibGUtc3VnZ2VzdGlvbi5pbnRlcmZhY2UnO1xyXG5cclxuLyoqXHJcbiAqIEBkZXNjcmlwdGlvblxyXG4gKlxyXG4gKiBXcmFwcGVyIHBhcmEgcmVnaXN0cm8gZGUgc2ludGF4ZXMgY3VzdG9taXphZGFzIHBhcmEgbyBwby1jb2RlLWVkaXRvci5cclxuICpcclxuICogUGFyYSB1dGlsaXphw6fDo28gZG8gc2VydmnDp28gZGUgaWRpb21hcyAqKlBvQ29kZUVkaXRvclJlZ2lzdGVyKiosXHJcbiAqIGRldmUtc2UgaW1wb3J0YXIgbyBtw7NkdWxvIFBvQ29kZUVkaXRvck1vZHVsZSBtZXNtbyBqw6EgdGVuZG8gaW1wb3J0YWRvXHJcbiAqIG8gbcOzZHVsbyBQb01vZHVsZS5cclxuICogTmEgaW1wb3J0YcOnw6NvIG9wY2lvbmFsbWVudGUgcG9kZSBzZXIgaW52b2NhZG8gbyBtw6l0b2RvICoqZm9yUmVnaXN0ZXIqKiBpbmZvcm1hbmRvIHVtIG9iamV0byBwYXJhIGNvbmZpZ3VyYcOnw6NvLlxyXG4gKlxyXG4gKiBFeGVtcGxvIGRlIGNvbmZpZ3VyYcOnw6NvOlxyXG4gKiBgYGBcclxuICogaW1wb3J0IHsgUG9Db2RlRWRpdG9yTW9kdWxlLCBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGUgfSBmcm9tICdAcG8tdWkvbmctY29kZS1lZGl0b3InO1xyXG4gKlxyXG4gKiBkZWNsYXJlIGNvbnN0IG1vbmFjbzogYW55OyAvLyBJbXBvcnRhbnRlIHBhcmEgdXNhciBjb25maWd1cmHDp8O1ZXMgY29tIHRpcG9zIGRlZmluaWRvcyBwZWxvIE1vbmFjb1xyXG4gKlxyXG4gKiAvLyBBIGZ1bsOnw6NvIGBwcm92aWRlQ29tcGxldGlvbkl0ZW1zYCBwcmVjaXNhIHNlciBleHBvcnRhZGEgcGFyYSBzZXIgY29tcGF0w612ZWwgY29tIEFPVC5cclxuICogZXhwb3J0IGZ1bmN0aW9uIHByb3ZpZGVDb21wbGV0aW9uSXRlbXMoKSB7XHJcbiAqICAgY29uc3Qgc3VnZ2VzdGlvbnMgPSBbe1xyXG4gKiAgICAgbGFiZWw6ICd0ZXJyYWZvcm0nLFxyXG4gKiAgICAgaW5zZXJ0VGV4dDogJyN0ZXJyYWZvcm0gbGFuZ3VhZ2UnXHJcbiAqICAgfSwge1xyXG4gKiAgICAgbGFiZWw6ICdzZXJ2ZXInLFxyXG4gKiAgICAgaW5zZXJ0VGV4dDogJ3NlcnZlciAkezE6aXB9J1xyXG4gKiAgIH1dO1xyXG4gKlxyXG4gKiAgIHJldHVybiB7IHN1Z2dlc3Rpb25zOiBzdWdnZXN0aW9ucyB9O1xyXG4gKiB9XHJcbiAqXHJcbiAqIGNvbnN0IGN1c3RvbUVkaXRvcjogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlID0ge1xyXG4gKiAgIGxhbmd1YWdlOiAndGVycmFmb3JtJyxcclxuICogICBvcHRpb25zOiB7XHJcbiAqICAgICBrZXl3b3JkczogWydyZXNvdXJjZScsICdwcm92aWRlcicsICd2YXJpYWJsZScsICdvdXRwdXQnLCAnbW9kdWxlJywgJ3RydWUnLCAnZmFsc2UnXSxcclxuICogICAgIG9wZXJhdG9yczogWyd7JywgJ30nLCAnKCcsICcpJywgJ1snLCAnXScsICc/JywgJzonXSxcclxuICogICAgIHN5bWJvbHM6ICAvWz0+PCF+PzomfCtcXC0qXFwvXFxeJV0rLyxcclxuICogICAgIGVzY2FwZXM6IC9cXFxcKD86W2FiZm5ydHZcXFxcXCInXXx4WzAtOUEtRmEtZl17MSw0fXx1WzAtOUEtRmEtZl17NH18VVswLTlBLUZhLWZdezh9KS8sXHJcbiAqICAgICB0b2tlbml6ZXI6IHtcclxuICogICAgICAuLi5cclxuICogICAgIH1cclxuICogICB9LFxyXG4gKiAgIHN1Z2dlc3Rpb25zOiB7IHByb3ZpZGVDb21wbGV0aW9uSXRlbXM6IHByb3ZpZGVDb21wbGV0aW9uSXRlbXMgfVxyXG4gKiB9O1xyXG4gKlxyXG4gKiBATmdNb2R1bGUoe1xyXG4gKiAgIGRlY2xhcmF0aW9uczogW10sXHJcbiAqICAgaW1wb3J0czogW1xyXG4gKiAgICAgUG9Nb2R1bGUsXHJcbiAqICAgICBQb0NvZGVFZGl0b3JNb2R1bGUuZm9yUmVnaXN0ZXIoY3VzdG9tRWRpdG9yKVxyXG4gKiAgIF0sXHJcbiAqICAgYm9vdHN0cmFwOiBbQXBwQ29tcG9uZW50XVxyXG4gKiB9KVxyXG4gKiBgYGBcclxuICpcclxuICogPiBBcyBjb25maWd1cmHDp8O1ZXMgcGFyYSBvIHJlZ2lzdHJvIGRlIHVtYSBub3ZhIHNpbnRheGUgbm8gTW9uYWNvIGNvZGUgZWRpdG9yIHBvZGVtIHNlciBlbmNvbnRyYWRhcyBlbVxyXG4gKiA+IFsqKk1vbmFjbyBFZGl0b3IqKl0oaHR0cHM6Ly9taWNyb3NvZnQuZ2l0aHViLmlvL21vbmFjby1lZGl0b3IvcGxheWdyb3VuZC5odG1sI2V4dGVuZGluZy1sYW5ndWFnZS1zZXJ2aWNlcy1jdXN0b20tbGFuZ3VhZ2VzKS5cclxuICovXHJcbkBJbmplY3RhYmxlKClcclxuZXhwb3J0IGNsYXNzIFBvQ29kZUVkaXRvclJlZ2lzdGVyIGltcGxlbWVudHMgUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlIHtcclxuICAvKiogU2ludGF4ZSBhIHNlciByZWdpc3RyYWRhLiAqL1xyXG4gIGxhbmd1YWdlOiBzdHJpbmc7XHJcblxyXG4gIC8qKiBPcMOnw7VlcyBkYSBzaW50YXhlIHBhcmEgcmVnaXN0cm8gbm8gcG8tY29kZS1lZGl0b3IuICovXHJcbiAgb3B0aW9uczogUG9Db2RlRWRpdG9yUmVnaXN0ZXJhYmxlT3B0aW9ucztcclxuXHJcbiAgLyoqIExpc3RhIGRlIHN1Z2VzdMO1ZXMgcGFyYSBhIGZ1bsOnw6NvIGRlIGF1dG9jb21wbGV0ZSAoQ1RSTCArIFNQQUNFKS4gKi9cclxuICBzdWdnZXN0aW9ucz86IFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb25UeXBlO1xyXG59XHJcbiJdfQ==
@@ -1,29 +1,28 @@
1
- import { Injectable } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- export class PoCodeEditorSuggestionService {
4
- constructor() {
5
- this.suggestions = {};
6
- }
7
- getSuggestion(language, newSuggestion) {
8
- if (this.suggestions[language]) {
9
- const deduplicateSuggestions = this.deduplicateSuggestions(this.suggestions[language], newSuggestion);
10
- this.suggestions[language] = [...this.suggestions[language], ...deduplicateSuggestions];
11
- return deduplicateSuggestions;
12
- }
13
- else {
14
- return (this.suggestions[language] = [...newSuggestion]);
15
- }
16
- }
17
- deduplicateSuggestions(originalSuggestions, newSuggestions) {
18
- return newSuggestions.filter(newItem => !originalSuggestions.find(originalItem => originalItem['label'] === newItem['label']));
19
- }
20
- }
21
- PoCodeEditorSuggestionService.ɵfac = function PoCodeEditorSuggestionService_Factory(t) { return new (t || PoCodeEditorSuggestionService)(); };
22
- PoCodeEditorSuggestionService.ɵprov = /*@__PURE__*/ i0.ɵɵdefineInjectable({ token: PoCodeEditorSuggestionService, factory: PoCodeEditorSuggestionService.ɵfac, providedIn: 'root' });
23
- (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorSuggestionService, [{
24
- type: Injectable,
25
- args: [{
26
- providedIn: 'root'
27
- }]
28
- }], function () { return []; }, null); })();
29
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBRXhDO1FBRFEsZ0JBQVcsR0FBK0IsRUFBRSxDQUFDO0lBQ3RDLENBQUM7SUFFVCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxhQUF3RDtRQUM3RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUN0RyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztZQUN4RixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsbUJBQThELEVBQzlELGNBQXlEO1FBRXpELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FDMUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7OzBHQXJCVSw2QkFBNkI7bUZBQTdCLDZCQUE2QixXQUE3Qiw2QkFBNkIsbUJBRjVCLE1BQU07dUZBRVAsNkJBQTZCO2NBSHpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uTGlzdCxcclxuICBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdWdnZXN0aW9uczogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QgPSB7fTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRTdWdnZXN0aW9uKGxhbmd1YWdlOiBzdHJpbmcsIG5ld1N1Z2dlc3Rpb246IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XHJcbiAgICBpZiAodGhpcy5zdWdnZXN0aW9uc1tsYW5ndWFnZV0pIHtcclxuICAgICAgY29uc3QgZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyA9IHRoaXMuZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyh0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSwgbmV3U3VnZ2VzdGlvbik7XHJcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLnRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCAuLi5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zXTtcclxuICAgICAgcmV0dXJuIGRlZHVwbGljYXRlU3VnZ2VzdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLm5ld1N1Z2dlc3Rpb25dKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyhcclxuICAgIG9yaWdpbmFsU3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+LFxyXG4gICAgbmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gbmV3U3VnZ2VzdGlvbnMuZmlsdGVyKFxyXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbFN1Z2dlc3Rpb25zLmZpbmQob3JpZ2luYWxJdGVtID0+IG9yaWdpbmFsSXRlbVsnbGFiZWwnXSA9PT0gbmV3SXRlbVsnbGFiZWwnXSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==
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
+ (function () { (typeof ngDevMode === "undefined" || ngDevMode) && i0.ɵsetClassMetadata(PoCodeEditorSuggestionService, [{
23
+ type: Injectable,
24
+ args: [{
25
+ providedIn: 'root'
26
+ }]
27
+ }], function () { return []; }, null); })();
28
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicG8tY29kZS1lZGl0b3Itc3VnZ2VzdGlvbi5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29kZS1lZGl0b3Ivc3JjL2xpYi9jb21wb25lbnRzL3BvLWNvZGUtZWRpdG9yL3BvLWNvZGUtZWRpdG9yLXN1Z2dlc3Rpb24uc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQVMzQyxNQUFNLE9BQU8sNkJBQTZCO0lBQ2hDLFdBQVcsR0FBK0IsRUFBRSxDQUFDO0lBQ3JELGdCQUFlLENBQUM7SUFFVCxhQUFhLENBQUMsUUFBZ0IsRUFBRSxhQUF3RDtRQUM3RixJQUFJLElBQUksQ0FBQyxXQUFXLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDOUIsTUFBTSxzQkFBc0IsR0FBRyxJQUFJLENBQUMsc0JBQXNCLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsRUFBRSxhQUFhLENBQUMsQ0FBQztZQUN0RyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsV0FBVyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEdBQUcsc0JBQXNCLENBQUMsQ0FBQztZQUN4RixPQUFPLHNCQUFzQixDQUFDO1NBQy9CO2FBQU07WUFDTCxPQUFPLENBQUMsSUFBSSxDQUFDLFdBQVcsQ0FBQyxRQUFRLENBQUMsR0FBRyxDQUFDLEdBQUcsYUFBYSxDQUFDLENBQUMsQ0FBQztTQUMxRDtJQUNILENBQUM7SUFFTyxzQkFBc0IsQ0FDNUIsbUJBQThELEVBQzlELGNBQXlEO1FBRXpELE9BQU8sY0FBYyxDQUFDLE1BQU0sQ0FDMUIsT0FBTyxDQUFDLEVBQUUsQ0FBQyxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxZQUFZLENBQUMsRUFBRSxDQUFDLFlBQVksQ0FBQyxPQUFPLENBQUMsS0FBSyxPQUFPLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FDakcsQ0FBQztJQUNKLENBQUM7dUZBckJVLDZCQUE2QjtnRUFBN0IsNkJBQTZCLFdBQTdCLDZCQUE2QixtQkFGNUIsTUFBTTs7dUZBRVAsNkJBQTZCO2NBSHpDLFVBQVU7ZUFBQztnQkFDVixVQUFVLEVBQUUsTUFBTTthQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHtcclxuICBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uTGlzdCxcclxuICBQb0NvZGVFZGl0b3JSZWdpc3RlcmFibGVTdWdnZXN0aW9uXHJcbn0gZnJvbSAnLi9pbnRlcmZhY2VzL3BvLWNvZGUtZWRpdG9yLXJlZ2lzdGVyYWJsZS1zdWdnZXN0aW9uLmludGVyZmFjZSc7XHJcblxyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogJ3Jvb3QnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBQb0NvZGVFZGl0b3JTdWdnZXN0aW9uU2VydmljZSB7XHJcbiAgcHJpdmF0ZSBzdWdnZXN0aW9uczogUG9Db2RlRWRpdG9yU3VnZ2VzdGlvbkxpc3QgPSB7fTtcclxuICBjb25zdHJ1Y3RvcigpIHt9XHJcblxyXG4gIHB1YmxpYyBnZXRTdWdnZXN0aW9uKGxhbmd1YWdlOiBzdHJpbmcsIG5ld1N1Z2dlc3Rpb246IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+KSB7XHJcbiAgICBpZiAodGhpcy5zdWdnZXN0aW9uc1tsYW5ndWFnZV0pIHtcclxuICAgICAgY29uc3QgZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyA9IHRoaXMuZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyh0aGlzLnN1Z2dlc3Rpb25zW2xhbmd1YWdlXSwgbmV3U3VnZ2VzdGlvbik7XHJcbiAgICAgIHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLnRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdLCAuLi5kZWR1cGxpY2F0ZVN1Z2dlc3Rpb25zXTtcclxuICAgICAgcmV0dXJuIGRlZHVwbGljYXRlU3VnZ2VzdGlvbnM7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICByZXR1cm4gKHRoaXMuc3VnZ2VzdGlvbnNbbGFuZ3VhZ2VdID0gWy4uLm5ld1N1Z2dlc3Rpb25dKTtcclxuICAgIH1cclxuICB9XHJcblxyXG4gIHByaXZhdGUgZGVkdXBsaWNhdGVTdWdnZXN0aW9ucyhcclxuICAgIG9yaWdpbmFsU3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+LFxyXG4gICAgbmV3U3VnZ2VzdGlvbnM6IEFycmF5PFBvQ29kZUVkaXRvclJlZ2lzdGVyYWJsZVN1Z2dlc3Rpb24+XHJcbiAgKSB7XHJcbiAgICByZXR1cm4gbmV3U3VnZ2VzdGlvbnMuZmlsdGVyKFxyXG4gICAgICBuZXdJdGVtID0+ICFvcmlnaW5hbFN1Z2dlc3Rpb25zLmZpbmQob3JpZ2luYWxJdGVtID0+IG9yaWdpbmFsSXRlbVsnbGFiZWwnXSA9PT0gbmV3SXRlbVsnbGFiZWwnXSlcclxuICAgICk7XHJcbiAgfVxyXG59XHJcbiJdfQ==