appproject-components 1.0.48 → 1.0.49

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 (154) hide show
  1. package/README.md +24 -24
  2. package/karma.conf.js +44 -0
  3. package/ng-package.json +7 -0
  4. package/package.json +15 -26
  5. package/src/lib/appproject-components.component.spec.ts +23 -0
  6. package/src/lib/appproject-components.component.ts +20 -0
  7. package/src/lib/appproject-components.module.ts +106 -0
  8. package/src/lib/appproject-components.service.spec.ts +16 -0
  9. package/src/lib/appproject-components.service.ts +9 -0
  10. package/src/lib/baseComponent.scss +162 -0
  11. package/src/lib/baseInputComponent.ts +35 -0
  12. package/src/lib/buttons/baseBtnComponent.ts +38 -0
  13. package/src/lib/buttons/btn-action/btn-action.component.html +11 -0
  14. package/src/lib/buttons/btn-action/btn-action.component.scss +7 -0
  15. package/src/lib/buttons/btn-action/btn-action.component.spec.ts +24 -0
  16. package/src/lib/buttons/btn-action/btn-action.component.ts +31 -0
  17. package/src/lib/buttons/btn-cancelar/btn-cancelar.component.html +14 -0
  18. package/src/lib/buttons/btn-cancelar/btn-cancelar.component.scss +5 -0
  19. package/src/lib/buttons/btn-cancelar/btn-cancelar.component.spec.ts +24 -0
  20. package/src/lib/buttons/btn-cancelar/btn-cancelar.component.ts +19 -0
  21. package/src/lib/buttons/btn-excluir/btn-excluir.component.html +6 -0
  22. package/src/lib/buttons/btn-excluir/btn-excluir.component.scss +5 -0
  23. package/src/lib/buttons/btn-excluir/btn-excluir.component.spec.ts +24 -0
  24. package/src/lib/buttons/btn-excluir/btn-excluir.component.ts +18 -0
  25. package/src/lib/buttons/btn-novo/btn-novo.component.html +14 -0
  26. package/src/lib/buttons/btn-novo/btn-novo.component.scss +8 -0
  27. package/src/lib/buttons/btn-novo/btn-novo.component.spec.ts +24 -0
  28. package/src/lib/buttons/btn-novo/btn-novo.component.ts +20 -0
  29. package/src/lib/buttons/btn-salvar/btn-salvar.component.html +8 -0
  30. package/src/lib/buttons/btn-salvar/btn-salvar.component.scss +5 -0
  31. package/src/lib/buttons/btn-salvar/btn-salvar.component.spec.ts +24 -0
  32. package/src/lib/buttons/btn-salvar/btn-salvar.component.ts +16 -0
  33. package/src/lib/entity-edit/entity-edit.component.html +143 -0
  34. package/src/lib/entity-edit/entity-edit.component.scss +4 -0
  35. package/src/lib/entity-edit/entity-edit.component.spec.ts +23 -0
  36. package/src/lib/entity-edit/entity-edit.component.ts +43 -0
  37. package/src/lib/grid-view/grid-view.component.html +116 -0
  38. package/src/lib/grid-view/grid-view.component.scss +47 -0
  39. package/src/lib/grid-view/grid-view.component.spec.ts +23 -0
  40. package/src/lib/grid-view/grid-view.component.ts +292 -0
  41. package/src/lib/input-area/input-area.component.html +30 -0
  42. package/src/lib/input-area/input-area.component.scss +68 -0
  43. package/src/lib/input-area/input-area.component.spec.ts +23 -0
  44. package/src/lib/input-area/input-area.component.ts +69 -0
  45. package/src/lib/input-arquivo/input-arquivo.component.html +11 -0
  46. package/src/lib/input-arquivo/input-arquivo.component.scss +0 -0
  47. package/src/lib/input-arquivo/input-arquivo.component.spec.ts +23 -0
  48. package/src/lib/input-arquivo/input-arquivo.component.ts +140 -0
  49. package/src/lib/input-cep/input-cep.component.html +38 -0
  50. package/src/lib/input-cep/input-cep.component.scss +0 -0
  51. package/src/lib/input-cep/input-cep.component.spec.ts +23 -0
  52. package/src/lib/input-cep/input-cep.component.ts +186 -0
  53. package/src/lib/input-checkbox/input-checkbox.component.html +12 -0
  54. package/src/lib/input-checkbox/input-checkbox.component.scss +11 -0
  55. package/src/lib/input-checkbox/input-checkbox.component.spec.ts +23 -0
  56. package/src/lib/input-checkbox/input-checkbox.component.ts +48 -0
  57. package/src/lib/input-format/input-format.component.html +32 -0
  58. package/src/lib/input-format/input-format.component.scss +47 -0
  59. package/src/lib/input-format/input-format.component.spec.ts +23 -0
  60. package/src/lib/input-format/input-format.component.ts +139 -0
  61. package/src/lib/input-pesquisa/input-pesquisa.component.html +77 -0
  62. package/src/lib/input-pesquisa/input-pesquisa.component.scss +127 -0
  63. package/src/lib/input-pesquisa/input-pesquisa.component.spec.ts +23 -0
  64. package/src/lib/input-pesquisa/input-pesquisa.component.ts +558 -0
  65. package/src/lib/input-radio/input-radio.component.html +21 -0
  66. package/src/lib/input-radio/input-radio.component.scss +3 -0
  67. package/src/lib/input-radio/input-radio.component.spec.ts +23 -0
  68. package/src/lib/input-radio/input-radio.component.ts +49 -0
  69. package/src/lib/input-select/input-select.component.html +29 -0
  70. package/src/lib/input-select/input-select.component.scss +62 -0
  71. package/src/lib/input-select/input-select.component.spec.ts +23 -0
  72. package/src/lib/input-select/input-select.component.ts +96 -0
  73. package/src/lib/input-text/input-text.component.html +48 -0
  74. package/src/lib/input-text/input-text.component.scss +63 -0
  75. package/src/lib/input-text/input-text.component.spec.ts +23 -0
  76. package/src/lib/input-text/input-text.component.ts +78 -0
  77. package/src/lib/input-valor/input-valor.component.html +32 -0
  78. package/src/lib/input-valor/input-valor.component.scss +47 -0
  79. package/src/lib/input-valor/input-valor.component.spec.ts +23 -0
  80. package/src/lib/input-valor/input-valor.component.ts +164 -0
  81. package/{lib/lib-config.d.ts → src/lib/lib-config.ts} +4 -3
  82. package/src/lib/model-treeview/model-treeview.component.html +20 -0
  83. package/src/lib/model-treeview/model-treeview.component.scss +0 -0
  84. package/src/lib/model-treeview/model-treeview.component.spec.ts +23 -0
  85. package/src/lib/model-treeview/model-treeview.component.ts +152 -0
  86. package/src/lib/tree-view/tree-view.component.html +96 -0
  87. package/src/lib/tree-view/tree-view.component.scss +50 -0
  88. package/src/lib/tree-view/tree-view.component.spec.ts +23 -0
  89. package/src/lib/tree-view/tree-view.component.ts +92 -0
  90. package/src/lib/tree-view-nivel/tree-view-nivel.component.html +17 -0
  91. package/src/lib/tree-view-nivel/tree-view-nivel.component.scss +8 -0
  92. package/src/lib/tree-view-nivel/tree-view-nivel.component.spec.ts +23 -0
  93. package/src/lib/tree-view-nivel/tree-view-nivel.component.ts +43 -0
  94. package/{public-api.d.ts → src/public-api.ts} +30 -24
  95. package/src/test.ts +15 -0
  96. package/tsconfig.lib.json +15 -0
  97. package/tsconfig.lib.prod.json +10 -0
  98. package/tsconfig.spec.json +17 -0
  99. package/esm2022/appproject-components.mjs +0 -5
  100. package/esm2022/lib/appproject-components.component.mjs +0 -22
  101. package/esm2022/lib/appproject-components.module.mjs +0 -159
  102. package/esm2022/lib/appproject-components.service.mjs +0 -14
  103. package/esm2022/lib/baseInputComponent.mjs +0 -69
  104. package/esm2022/lib/buttons/baseBtnComponent.mjs +0 -63
  105. package/esm2022/lib/buttons/btn-action/btn-action.component.mjs +0 -55
  106. package/esm2022/lib/buttons/btn-cancelar/btn-cancelar.component.mjs +0 -25
  107. package/esm2022/lib/buttons/btn-excluir/btn-excluir.component.mjs +0 -29
  108. package/esm2022/lib/buttons/btn-novo/btn-novo.component.mjs +0 -33
  109. package/esm2022/lib/buttons/btn-salvar/btn-salvar.component.mjs +0 -19
  110. package/esm2022/lib/entity-edit/entity-edit.component.mjs +0 -53
  111. package/esm2022/lib/grid-view/grid-view.component.mjs +0 -275
  112. package/esm2022/lib/input-area/input-area.component.mjs +0 -72
  113. package/esm2022/lib/input-arquivo/input-arquivo.component.mjs +0 -154
  114. package/esm2022/lib/input-cep/input-cep.component.mjs +0 -180
  115. package/esm2022/lib/input-checkbox/input-checkbox.component.mjs +0 -51
  116. package/esm2022/lib/input-format/input-format.component.mjs +0 -138
  117. package/esm2022/lib/input-pesquisa/input-pesquisa.component.mjs +0 -557
  118. package/esm2022/lib/input-radio/input-radio.component.mjs +0 -58
  119. package/esm2022/lib/input-select/input-select.component.mjs +0 -110
  120. package/esm2022/lib/input-text/input-text.component.mjs +0 -88
  121. package/esm2022/lib/input-valor/input-valor.component.mjs +0 -161
  122. package/esm2022/lib/lib-config.mjs +0 -2
  123. package/esm2022/lib/model-treeview/model-treeview.component.mjs +0 -126
  124. package/esm2022/lib/tree-view/tree-view.component.mjs +0 -104
  125. package/esm2022/lib/tree-view-nivel/tree-view-nivel.component.mjs +0 -50
  126. package/esm2022/public-api.mjs +0 -30
  127. package/fesm2022/appproject-components.mjs +0 -2531
  128. package/fesm2022/appproject-components.mjs.map +0 -1
  129. package/index.d.ts +0 -5
  130. package/lib/appproject-components.component.d.ts +0 -8
  131. package/lib/appproject-components.module.d.ts +0 -36
  132. package/lib/appproject-components.service.d.ts +0 -6
  133. package/lib/baseInputComponent.d.ts +0 -28
  134. package/lib/buttons/baseBtnComponent.d.ts +0 -19
  135. package/lib/buttons/btn-action/btn-action.component.d.ts +0 -21
  136. package/lib/buttons/btn-cancelar/btn-cancelar.component.d.ts +0 -10
  137. package/lib/buttons/btn-excluir/btn-excluir.component.d.ts +0 -12
  138. package/lib/buttons/btn-novo/btn-novo.component.d.ts +0 -13
  139. package/lib/buttons/btn-salvar/btn-salvar.component.d.ts +0 -9
  140. package/lib/entity-edit/entity-edit.component.d.ts +0 -22
  141. package/lib/grid-view/grid-view.component.d.ts +0 -52
  142. package/lib/input-area/input-area.component.d.ts +0 -24
  143. package/lib/input-arquivo/input-arquivo.component.d.ts +0 -43
  144. package/lib/input-cep/input-cep.component.d.ts +0 -29
  145. package/lib/input-checkbox/input-checkbox.component.d.ts +0 -21
  146. package/lib/input-format/input-format.component.d.ts +0 -27
  147. package/lib/input-pesquisa/input-pesquisa.component.d.ts +0 -69
  148. package/lib/input-radio/input-radio.component.d.ts +0 -23
  149. package/lib/input-select/input-select.component.d.ts +0 -32
  150. package/lib/input-text/input-text.component.d.ts +0 -33
  151. package/lib/input-valor/input-valor.component.d.ts +0 -29
  152. package/lib/model-treeview/model-treeview.component.d.ts +0 -39
  153. package/lib/tree-view/tree-view.component.d.ts +0 -23
  154. package/lib/tree-view-nivel/tree-view-nivel.component.d.ts +0 -17
@@ -1,126 +0,0 @@
1
- import { Component, Inject, Input, ViewChild } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@ionic/angular";
4
- import * as i2 from "@angular/common/http";
5
- import * as i3 from "../tree-view/tree-view.component";
6
- export class ModelTreeviewComponent {
7
- constructor(config, modalCtrl, httpClient, loadingCtrl) {
8
- this.config = config;
9
- this.modalCtrl = modalCtrl;
10
- this.httpClient = httpClient;
11
- this.loadingCtrl = loadingCtrl;
12
- this.titulo = "Selecionar";
13
- this.textoPesquisa = "";
14
- this.maximizar = false;
15
- this.BASE_API = this.config.apiUrl;
16
- }
17
- ngOnInit() {
18
- }
19
- ionViewDidEnter() {
20
- this.atualizaArvoreEntidade(this.tipo);
21
- }
22
- async atualizaArvoreEntidade(tipo) {
23
- let subscriptionC;
24
- this.treeView.cadastro = this.subscribeId;
25
- let loading = await this.showLoading("Pesquisando...", true);
26
- loading.onDidDismiss().then(() => {
27
- subscriptionC?.unsubscribe();
28
- });
29
- this.url = this.url.startsWith('http') ? this.url : `${this.BASE_API}/${this.url}`;
30
- var url = this.url.replace('<<EMPRESA>>', this.empresaSelecionadaId.toString());
31
- var url = this.url.replace('<<FILTRO>>', '');
32
- // if (this.textoPesquisa) {
33
- // url += `?filtro=${this.textoPesquisa}`;
34
- // }
35
- subscriptionC = this.httpClient.get(url).subscribe({
36
- next: (result) => {
37
- /*
38
- empresaContato.forEach((ec) => {
39
- ec.LabelTree = ec.Nome;
40
- ec.EmpresaContatoPaiId = null; //campo ficticio para montar arvore
41
- ec.ClicableTree = true;
42
- });
43
-
44
- this.treeView.campoId = "EmpresaContatoId";
45
- this.treeView.campoPai = "EmpresaContatoPaiId";
46
- this.treeView.campoLabel = "LabelTree";
47
- this.treeView.itens = empresaContato;
48
- this.treeView.arvoreClick(false);
49
- */
50
- if (!this.campoPai) {
51
- this.campoPai = `${this.campoId}Pai`;
52
- }
53
- result.forEach((cc) => {
54
- cc.LabelTree = cc[this.campoLabel];
55
- if (!cc[this.campoPai]) {
56
- cc[this.campoPai] = null;
57
- }
58
- if (this.filterFunction != null) {
59
- const clicable = [{ ...cc }].find(this.filterFunction);
60
- if (clicable != null && cc.ClicableTree == null) {
61
- cc.ClicableTree = true;
62
- }
63
- else {
64
- cc.ClicableTree = false;
65
- }
66
- }
67
- else {
68
- cc.ClicableTree = true;
69
- }
70
- });
71
- console.log('tree result', result);
72
- this.treeView.campoId = this.campoId;
73
- this.treeView.campoPai = this.campoPai;
74
- this.treeView.campoLabel = this.campoLabel;
75
- this.treeView.itens = result;
76
- this.treeView.arvoreClick(false);
77
- loading.dismiss();
78
- },
79
- error: (error) => {
80
- loading.dismiss();
81
- console.log("Erro ao carregar os registros.<br>Tente mais tarde.");
82
- }
83
- });
84
- }
85
- clickRegistro(evento) {
86
- if (evento.Id > 0) {
87
- this.modalCtrl.dismiss({ Id: evento.Id });
88
- }
89
- }
90
- expandir() {
91
- this.treeView.expandir();
92
- }
93
- //utils
94
- async showLoading(msg, cancelable = false) {
95
- const loading = await this.loadingCtrl.create({
96
- message: msg,
97
- backdropDismiss: cancelable
98
- //duration: 2000
99
- });
100
- /*
101
- loading.onDidDismiss().then(() => {
102
- console.log('loading dissmissed', request);
103
- if (request.subscription) {
104
- request.subscription.unsubscribe();
105
- }
106
- });
107
- */
108
- await loading.present();
109
- return loading;
110
- }
111
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ModelTreeviewComponent, deps: [{ token: 'LibConfigService' }, { token: i1.ModalController }, { token: i2.HttpClient }, { token: i1.LoadingController }], target: i0.ɵɵFactoryTarget.Component }); }
112
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: ModelTreeviewComponent, selector: "kb-model-treeview", inputs: { textoPesquisa: "textoPesquisa" }, viewQueries: [{ propertyName: "treeView", first: true, predicate: ["treeViewComp"], descendants: true }], ngImport: i0, template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ titulo }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"atualizaArvoreEntidade(tipo)\">\n <ion-icon slot=\"icon-only\" name=\"refresh\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"modalCtrl.dismiss()\">Fechar</ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n \n <ion-content>\n <ion-item>\n <ion-button style=\"box-shadow: #4c8dff 0px 2px 2px 0.05px;\" fill=\"outline\" (click)=\"expandir()\">\n <ion-icon name=\"expand-outline\"></ion-icon>\n </ion-button> \n </ion-item>\n <kb-tree-view #treeViewComp [campoId]=\"campoId\" [campoPai]=\"campoPai\" [campoLabel]=\"'LabelTree'\" (selecionarRegistro)=\"clickRegistro($event)\"></kb-tree-view>\n </ion-content>", styles: [""], dependencies: [{ kind: "component", type: i1.IonButton, selector: "ion-button", inputs: ["buttonType", "color", "disabled", "download", "expand", "fill", "form", "href", "mode", "rel", "routerAnimation", "routerDirection", "shape", "size", "strong", "target", "type"] }, { kind: "component", type: i1.IonButtons, selector: "ion-buttons", inputs: ["collapse"] }, { kind: "component", type: i1.IonContent, selector: "ion-content", inputs: ["color", "forceOverscroll", "fullscreen", "scrollEvents", "scrollX", "scrollY"] }, { kind: "component", type: i1.IonHeader, selector: "ion-header", inputs: ["collapse", "mode", "translucent"] }, { kind: "component", type: i1.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }, { kind: "component", type: i1.IonItem, selector: "ion-item", inputs: ["button", "color", "counter", "counterFormatter", "detail", "detailIcon", "disabled", "download", "fill", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "shape", "target", "type"] }, { kind: "component", type: i1.IonTitle, selector: "ion-title", inputs: ["color", "size"] }, { kind: "component", type: i1.IonToolbar, selector: "ion-toolbar", inputs: ["color", "mode"] }, { kind: "component", type: i3.TreeViewComponent, selector: "kb-tree-view", inputs: ["itens", "campoId", "campoPai", "campoLabel", "cadastro", "endpoint", "caixaClass", "currentSearch"], outputs: ["beforeUpdate", "selecionarRegistro"] }] }); }
113
- }
114
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: ModelTreeviewComponent, decorators: [{
115
- type: Component,
116
- args: [{ selector: 'kb-model-treeview', template: "<ion-header>\n <ion-toolbar color=\"secondary\">\n <ion-title>{{ titulo }}</ion-title>\n <ion-buttons slot=\"end\">\n <ion-button (click)=\"atualizaArvoreEntidade(tipo)\">\n <ion-icon slot=\"icon-only\" name=\"refresh\"></ion-icon>\n </ion-button>\n <ion-button (click)=\"modalCtrl.dismiss()\">Fechar</ion-button>\n </ion-buttons>\n </ion-toolbar>\n </ion-header>\n \n <ion-content>\n <ion-item>\n <ion-button style=\"box-shadow: #4c8dff 0px 2px 2px 0.05px;\" fill=\"outline\" (click)=\"expandir()\">\n <ion-icon name=\"expand-outline\"></ion-icon>\n </ion-button> \n </ion-item>\n <kb-tree-view #treeViewComp [campoId]=\"campoId\" [campoPai]=\"campoPai\" [campoLabel]=\"'LabelTree'\" (selecionarRegistro)=\"clickRegistro($event)\"></kb-tree-view>\n </ion-content>" }]
117
- }], ctorParameters: () => [{ type: undefined, decorators: [{
118
- type: Inject,
119
- args: ['LibConfigService']
120
- }] }, { type: i1.ModalController }, { type: i2.HttpClient }, { type: i1.LoadingController }], propDecorators: { textoPesquisa: [{
121
- type: Input
122
- }], treeView: [{
123
- type: ViewChild,
124
- args: ["treeViewComp"]
125
- }] } });
126
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibW9kZWwtdHJlZXZpZXcuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvbW9kZWwtdHJlZXZpZXcvbW9kZWwtdHJlZXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvbW9kZWwtdHJlZXZpZXcvbW9kZWwtdHJlZXZpZXcuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFxQixTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7Ozs7O0FBV3ZGLE1BQU0sT0FBTyxzQkFBc0I7SUFzQmpDLFlBQWdELE1BQWlCLEVBQ3hELFNBQTBCLEVBQ3pCLFVBQXNCLEVBQ3RCLFdBQThCO1FBSFEsV0FBTSxHQUFOLE1BQU0sQ0FBVztRQUN4RCxjQUFTLEdBQVQsU0FBUyxDQUFpQjtRQUN6QixlQUFVLEdBQVYsVUFBVSxDQUFZO1FBQ3RCLGdCQUFXLEdBQVgsV0FBVyxDQUFtQjtRQXhCeEMsV0FBTSxHQUFXLFlBQVksQ0FBQztRQUlyQixrQkFBYSxHQUFXLEVBQUUsQ0FBQztRQWFwQyxjQUFTLEdBQVksS0FBSyxDQUFDO1FBRzNCLGFBQVEsR0FBRyxJQUFJLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztJQUljLENBQUM7SUFFN0MsUUFBUTtJQUNSLENBQUM7SUFFRCxlQUFlO1FBQ2IsSUFBSSxDQUFDLHNCQUFzQixDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUN6QyxDQUFDO0lBRUQsS0FBSyxDQUFDLHNCQUFzQixDQUFDLElBQVk7UUFDdkMsSUFBSSxhQUEyQixDQUFDO1FBQ2hDLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxXQUFXLENBQUM7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QixPQUFPLENBQUMsR0FBRyxDQUFDLHFEQUFxRCxDQUFDLENBQUM7WUFDckUsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUVMLENBQUM7SUFFRCxhQUFhLENBQUMsTUFBTTtRQUNsQixJQUFJLE1BQU0sQ0FBQyxFQUFFLEdBQUcsQ0FBQyxFQUFFO1lBQ2pCLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLEVBQUUsRUFBRSxFQUFFLE1BQU0sQ0FBQyxFQUFFLEVBQUUsQ0FBQyxDQUFDO1NBQzNDO0lBQ0gsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQzNCLENBQUM7SUFFRCxPQUFPO0lBQ1AsS0FBSyxDQUFDLFdBQVcsQ0FBQyxHQUFXLEVBQUUsYUFBc0IsS0FBSztRQUN4RCxNQUFNLE9BQU8sR0FBRyxNQUFNLElBQUksQ0FBQyxXQUFXLENBQUMsTUFBTSxDQUFDO1lBQzVDLE9BQU8sRUFBRSxHQUFHO1lBQ1osZUFBZSxFQUFFLFVBQVU7WUFDM0IsZ0JBQWdCO1NBQ2pCLENBQUMsQ0FBQztRQUNIOzs7Ozs7O1VBT0U7UUFDRixNQUFNLE9BQU8sQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUN4QixPQUFPLE9BQU8sQ0FBQztJQUVqQixDQUFDOzhHQTFJVSxzQkFBc0Isa0JBc0JiLGtCQUFrQjtrR0F0QjNCLHNCQUFzQiwrTUNYbkMsbTFCQW1CZ0I7OzJGRFJILHNCQUFzQjtrQkFMbEMsU0FBUzsrQkFDRSxtQkFBbUI7OzBCQTBCaEIsTUFBTTsyQkFBQyxrQkFBa0I7Z0lBakI3QixhQUFhO3NCQUFyQixLQUFLO2dCQWNxQixRQUFRO3NCQUFsQyxTQUFTO3VCQUFDLGNBQWMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgUHJlZGljYXRlLCBWaWV3Q2hpbGQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFN1YnNjcmlwdGlvbiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgVHJlZVZpZXdDb21wb25lbnQgfSBmcm9tICcuLi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XG5pbXBvcnQgeyBMb2FkaW5nQ29udHJvbGxlciwgTW9kYWxDb250cm9sbGVyIH0gZnJvbSAnQGlvbmljL2FuZ3VsYXInO1xuaW1wb3J0IHsgTGliQ29uZmlnIH0gZnJvbSAnLi4vbGliLWNvbmZpZyc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50IH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItbW9kZWwtdHJlZXZpZXcnLFxuICB0ZW1wbGF0ZVVybDogJy4vbW9kZWwtdHJlZXZpZXcuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi9tb2RlbC10cmVldmlldy5jb21wb25lbnQuc2NzcyddXG59KVxuZXhwb3J0IGNsYXNzIE1vZGVsVHJlZXZpZXdDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICB0aXR1bG86IHN0cmluZyA9IFwiU2VsZWNpb25hclwiO1xuICBjYW1wb0lkOiBzdHJpbmc7XG4gIGNhbXBvUGFpOiBzdHJpbmc7XG4gIGNhbXBvTGFiZWw6IHN0cmluZztcbiAgQElucHV0KCkgdGV4dG9QZXNxdWlzYTogc3RyaW5nID0gXCJcIjtcbiAgZW1wcmVzYVNlbGVjaW9uYWRhSWQ6IG51bWJlcjtcbiAgZW1wcmVzYUNvbnRhYmlsaWRhZGVJZDogbnVtYmVyO1xuICBsaXN0YUFydm9yZTogYW55W107XG4gIHRpcG86IHN0cmluZztcbiAgLy91cmwgZGEgQVBJIHBhcmEgcGVzcXVpc2FyIG9zIGl0ZW5zXG4gIHVybDogc3RyaW5nO1xuICBzdWJzY3JpcHRpb25DbGljazogU3Vic2NyaXB0aW9uO1xuICBzdWJzY3JpYmVJZDogc3RyaW5nO1xuICAvL2Z1bsOnw6NvIHBhcmEgZmlsdHJhciByZWdpc3Ryb3MgcXVlIHBvZGVtIHNlciBjbGljYWRvc1xuICBmaWx0ZXJGdW5jdGlvbjogUHJlZGljYXRlPGFueT47XG4gIC8vZXNwZWNpZmljb3NcbiAgcGxhbm9Db250YXM6IG51bWJlcjtcbiAgbWF4aW1pemFyOiBib29sZWFuID0gZmFsc2U7XG4gIEBWaWV3Q2hpbGQoXCJ0cmVlVmlld0NvbXBcIikgdHJlZVZpZXc6IFRyZWVWaWV3Q29tcG9uZW50O1xuXG4gIEJBU0VfQVBJID0gdGhpcy5jb25maWcuYXBpVXJsO1xuICBjb25zdHJ1Y3RvcihASW5qZWN0KCdMaWJDb25maWdTZXJ2aWNlJykgcHJpdmF0ZSBjb25maWc6IExpYkNvbmZpZyxcbiAgICBwdWJsaWMgbW9kYWxDdHJsOiBNb2RhbENvbnRyb2xsZXIsXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50LFxuICAgIHByaXZhdGUgbG9hZGluZ0N0cmw6IExvYWRpbmdDb250cm9sbGVyKSB7IH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgfVxuXG4gIGlvblZpZXdEaWRFbnRlcigpIHtcbiAgICB0aGlzLmF0dWFsaXphQXJ2b3JlRW50aWRhZGUodGhpcy50aXBvKTtcbiAgfVxuXG4gIGFzeW5jIGF0dWFsaXphQXJ2b3JlRW50aWRhZGUodGlwbzogc3RyaW5nKSB7XG4gICAgbGV0IHN1YnNjcmlwdGlvbkM6IFN1YnNjcmlwdGlvbjtcbiAgICB0aGlzLnRyZWVWaWV3LmNhZGFzdHJvID0gdGhpcy5zdWJzY3JpYmVJZDtcbiAgICBsZXQgbG9hZGluZyA9IGF3YWl0IHRoaXMuc2hvd0xvYWRpbmcoXCJQZXNxdWlzYW5kby4uLlwiLCB0cnVlKTtcbiAgICBsb2FkaW5nLm9uRGlkRGlzbWlzcygpLnRoZW4oKCkgPT4ge1xuICAgICAgc3Vic2NyaXB0aW9uQz8udW5zdWJzY3JpYmUoKTtcbiAgICB9KTtcblxuICAgIHRoaXMudXJsID0gdGhpcy51cmwuc3RhcnRzV2l0aCgnaHR0cCcpID8gdGhpcy51cmwgOiBgJHt0aGlzLkJBU0VfQVBJfS8ke3RoaXMudXJsfWA7XG5cbiAgICB2YXIgdXJsID0gdGhpcy51cmwucmVwbGFjZSgnPDxFTVBSRVNBPj4nLCB0aGlzLmVtcHJlc2FTZWxlY2lvbmFkYUlkLnRvU3RyaW5nKCkpO1xuICAgIHZhciB1cmwgPSB0aGlzLnVybC5yZXBsYWNlKCc8PEZJTFRSTz4+JywgJycpO1xuICAgIC8vIGlmICh0aGlzLnRleHRvUGVzcXVpc2EpIHtcbiAgICAvLyAgIHVybCArPSBgP2ZpbHRybz0ke3RoaXMudGV4dG9QZXNxdWlzYX1gO1xuICAgIC8vIH1cblxuICAgIHN1YnNjcmlwdGlvbkMgPSB0aGlzLmh0dHBDbGllbnQuZ2V0KHVybCkuc3Vic2NyaWJlKHtcbiAgICAgIG5leHQ6IChyZXN1bHQ6IGFueVtdKSA9PiB7XG5cblxuICAgICAgICAvKlxuICAgICAgICBlbXByZXNhQ29udGF0by5mb3JFYWNoKChlYykgPT4ge1xuICAgICAgICAgIGVjLkxhYmVsVHJlZSA9IGVjLk5vbWU7XG4gICAgICAgICAgZWMuRW1wcmVzYUNvbnRhdG9QYWlJZCA9IG51bGw7IC8vY2FtcG8gZmljdGljaW8gcGFyYSBtb250YXIgYXJ2b3JlXG4gICAgICAgICAgZWMuQ2xpY2FibGVUcmVlID0gdHJ1ZTtcbiAgICAgICAgfSk7XG5cbiAgICAgICAgdGhpcy50cmVlVmlldy5jYW1wb0lkID0gXCJFbXByZXNhQ29udGF0b0lkXCI7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuY2FtcG9QYWkgPSBcIkVtcHJlc2FDb250YXRvUGFpSWRcIjtcbiAgICAgICAgdGhpcy50cmVlVmlldy5jYW1wb0xhYmVsID0gXCJMYWJlbFRyZWVcIjtcbiAgICAgICAgdGhpcy50cmVlVmlldy5pdGVucyA9IGVtcHJlc2FDb250YXRvO1xuICAgICAgICB0aGlzLnRyZWVWaWV3LmFydm9yZUNsaWNrKGZhbHNlKTtcbiAgICAgICAgKi9cblxuXG4gICAgICAgIGlmICghdGhpcy5jYW1wb1BhaSkge1xuICAgICAgICAgIHRoaXMuY2FtcG9QYWkgPSBgJHt0aGlzLmNhbXBvSWR9UGFpYDtcbiAgICAgICAgfVxuXG5cbiAgICAgICAgcmVzdWx0LmZvckVhY2goKGNjKSA9PiB7XG4gICAgICAgICAgY2MuTGFiZWxUcmVlID0gY2NbdGhpcy5jYW1wb0xhYmVsXTtcbiAgICAgICAgICBpZiAoIWNjW3RoaXMuY2FtcG9QYWldKSB7XG4gICAgICAgICAgICBjY1t0aGlzLmNhbXBvUGFpXSA9IG51bGw7XG4gICAgICAgICAgfVxuXG4gICAgICAgICAgaWYgKHRoaXMuZmlsdGVyRnVuY3Rpb24gIT0gbnVsbCkge1xuICAgICAgICAgICAgY29uc3QgY2xpY2FibGUgPSBbeyAuLi5jYyB9XS5maW5kKHRoaXMuZmlsdGVyRnVuY3Rpb24pO1xuICAgICAgICAgICAgaWYgKGNsaWNhYmxlICE9IG51bGwgJiYgY2MuQ2xpY2FibGVUcmVlID09IG51bGwpIHtcbiAgICAgICAgICAgICAgY2MuQ2xpY2FibGVUcmVlID0gdHJ1ZTtcbiAgICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICAgIGNjLkNsaWNhYmxlVHJlZSA9IGZhbHNlO1xuICAgICAgICAgICAgfVxuICAgICAgICAgIH0gZWxzZSB7XG4gICAgICAgICAgICBjYy5DbGljYWJsZVRyZWUgPSB0cnVlO1xuICAgICAgICAgIH1cbiAgICAgICAgfSk7XG5cbiAgICAgICAgY29uc29sZS5sb2coJ3RyZWUgcmVzdWx0JywgcmVzdWx0KTtcblxuICAgICAgICB0aGlzLnRyZWVWaWV3LmNhbXBvSWQgPSB0aGlzLmNhbXBvSWQ7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuY2FtcG9QYWkgPSB0aGlzLmNhbXBvUGFpO1xuICAgICAgICB0aGlzLnRyZWVWaWV3LmNhbXBvTGFiZWwgPSB0aGlzLmNhbXBvTGFiZWw7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuaXRlbnMgPSByZXN1bHQ7XG4gICAgICAgIHRoaXMudHJlZVZpZXcuYXJ2b3JlQ2xpY2soZmFsc2UpO1xuXG4gICAgICAgIGxvYWRpbmcuZGlzbWlzcygpO1xuICAgICAgfSxcbiAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcbiAgICAgICAgbG9hZGluZy5kaXNtaXNzKCk7XG4gICAgICAgIGNvbnNvbGUubG9nKFwiRXJybyBhbyBjYXJyZWdhciBvcyByZWdpc3Ryb3MuPGJyPlRlbnRlIG1haXMgdGFyZGUuXCIpO1xuICAgICAgfVxuICAgIH0pO1xuXG4gIH1cblxuICBjbGlja1JlZ2lzdHJvKGV2ZW50bykge1xuICAgIGlmIChldmVudG8uSWQgPiAwKSB7XG4gICAgICB0aGlzLm1vZGFsQ3RybC5kaXNtaXNzKHsgSWQ6IGV2ZW50by5JZCB9KTtcbiAgICB9XG4gIH1cblxuICBleHBhbmRpcigpIHtcbiAgICB0aGlzLnRyZWVWaWV3LmV4cGFuZGlyKCk7ICBcbiAgfVxuXG4gIC8vdXRpbHNcbiAgYXN5bmMgc2hvd0xvYWRpbmcobXNnOiBzdHJpbmcsIGNhbmNlbGFibGU6IGJvb2xlYW4gPSBmYWxzZSk6IFByb21pc2U8SFRNTElvbkxvYWRpbmdFbGVtZW50PiB7XG4gICAgY29uc3QgbG9hZGluZyA9IGF3YWl0IHRoaXMubG9hZGluZ0N0cmwuY3JlYXRlKHtcbiAgICAgIG1lc3NhZ2U6IG1zZyxcbiAgICAgIGJhY2tkcm9wRGlzbWlzczogY2FuY2VsYWJsZVxuICAgICAgLy9kdXJhdGlvbjogMjAwMFxuICAgIH0pO1xuICAgIC8qXG4gICAgbG9hZGluZy5vbkRpZERpc21pc3MoKS50aGVuKCgpID0+IHtcbiAgICAgIGNvbnNvbGUubG9nKCdsb2FkaW5nIGRpc3NtaXNzZWQnLCByZXF1ZXN0KTtcbiAgICAgIGlmIChyZXF1ZXN0LnN1YnNjcmlwdGlvbikge1xuICAgICAgICByZXF1ZXN0LnN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgICAgfVxuICAgIH0pO1xuICAgICovXG4gICAgYXdhaXQgbG9hZGluZy5wcmVzZW50KCk7XG4gICAgcmV0dXJuIGxvYWRpbmc7XG5cbiAgfVxuICBcbn1cbiIsIjxpb24taGVhZGVyPlxuICAgIDxpb24tdG9vbGJhciBjb2xvcj1cInNlY29uZGFyeVwiPlxuICAgICAgPGlvbi10aXRsZT57eyB0aXR1bG8gfX08L2lvbi10aXRsZT5cbiAgICAgIDxpb24tYnV0dG9ucyBzbG90PVwiZW5kXCI+XG4gICAgICAgIDxpb24tYnV0dG9uIChjbGljayk9XCJhdHVhbGl6YUFydm9yZUVudGlkYWRlKHRpcG8pXCI+XG4gICAgICAgICAgPGlvbi1pY29uIHNsb3Q9XCJpY29uLW9ubHlcIiBuYW1lPVwicmVmcmVzaFwiPjwvaW9uLWljb24+XG4gICAgICAgIDwvaW9uLWJ1dHRvbj5cbiAgICAgICAgPGlvbi1idXR0b24gKGNsaWNrKT1cIm1vZGFsQ3RybC5kaXNtaXNzKClcIj5GZWNoYXI8L2lvbi1idXR0b24+XG4gICAgICA8L2lvbi1idXR0b25zPlxuICAgIDwvaW9uLXRvb2xiYXI+XG4gIDwvaW9uLWhlYWRlcj5cbiAgXG4gIDxpb24tY29udGVudD5cbiAgICA8aW9uLWl0ZW0+XG4gICAgICA8aW9uLWJ1dHRvbiBzdHlsZT1cImJveC1zaGFkb3c6ICAjNGM4ZGZmIDBweCAycHggMnB4IDAuMDVweDtcIiBmaWxsPVwib3V0bGluZVwiIChjbGljayk9XCJleHBhbmRpcigpXCI+XG4gICAgICAgIDxpb24taWNvbiBuYW1lPVwiZXhwYW5kLW91dGxpbmVcIj48L2lvbi1pY29uPlxuICAgICAgPC9pb24tYnV0dG9uPiAgICBcbiAgICA8L2lvbi1pdGVtPlxuICAgIDxrYi10cmVlLXZpZXcgI3RyZWVWaWV3Q29tcCBbY2FtcG9JZF09XCJjYW1wb0lkXCIgW2NhbXBvUGFpXT1cImNhbXBvUGFpXCIgW2NhbXBvTGFiZWxdPVwiJ0xhYmVsVHJlZSdcIiAoc2VsZWNpb25hclJlZ2lzdHJvKT1cImNsaWNrUmVnaXN0cm8oJGV2ZW50KVwiPjwva2ItdHJlZS12aWV3PlxuICA8L2lvbi1jb250ZW50PiJdfQ==
@@ -1,104 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/common";
4
- import * as i2 from "../tree-view-nivel/tree-view-nivel.component";
5
- export class TreeViewComponent {
6
- constructor() {
7
- this.itens = [];
8
- this.caixaClass = 'caixa';
9
- this.beforeUpdate = new EventEmitter();
10
- this.selecionarRegistro = new EventEmitter();
11
- this.arvore = [];
12
- }
13
- ngOnInit() {
14
- //throw new Error('Method not implemented.');
15
- }
16
- montaArvore(pai, arvore) {
17
- if (arvore && arvore.length > 0) {
18
- //procurar os filhos de cada no
19
- arvore.forEach(f => {
20
- //console.log('no atual:', f, );
21
- let filhos = this.itens.filter(i => i[this.campoPai] == f.Id);
22
- //console.log('filhos atual:', filhos);
23
- f.Filhos = [];
24
- filhos.forEach(fi => {
25
- f.Filhos.push({ Id: fi[this.campoId], Pai: f.Id, Label: fi[this.campoLabel], Filhos: [], Expandido: false, Clicable: (fi['ClicableTree'] == null || fi['ClicableTree'] === true) });
26
- });
27
- return this.montaArvore(0, f.Filhos);
28
- });
29
- return 0;
30
- }
31
- else {
32
- //console.log('sem filhos');
33
- return 0;
34
- }
35
- }
36
- arvoreClick(before = true) {
37
- if (this.beforeUpdate && before) {
38
- this.beforeUpdate.emit();
39
- return;
40
- }
41
- this.arvore = [];
42
- //console.log('tree itens', this.itens);
43
- if (this.itens && this.itens.length > 0) {
44
- //montar arvore pais
45
- this.itens.forEach(it => {
46
- if (it[this.campoPai] == null) {
47
- //é pai
48
- this.arvore.push({ Id: it[this.campoId], Pai: null, Label: it[this.campoLabel], Filhos: [], Expandido: false, Clicable: (it['ClicableTree'] == null || it['ClicableTree'] === true) });
49
- }
50
- });
51
- this.montaArvore(0, this.arvore);
52
- console.log('arvore', this.arvore);
53
- }
54
- }
55
- expandir(arvore = null) {
56
- if (arvore == null) {
57
- arvore = this.arvore;
58
- }
59
- if (arvore && arvore.length > 0) {
60
- //procurar os filhos de cada no
61
- arvore.forEach(f => {
62
- //expandir
63
- f.Expandido = true;
64
- return this.expandir(f.Filhos);
65
- });
66
- return 0;
67
- }
68
- else {
69
- //console.log('sem filhos');
70
- return 0;
71
- }
72
- }
73
- carregarRegistro(node) {
74
- console.log('carrega registro', node);
75
- this.selecionarRegistro.next({ Cadastro: this.cadastro, Id: node.Id });
76
- }
77
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: TreeViewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
78
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: TreeViewComponent, selector: "kb-tree-view", inputs: { itens: "itens", campoId: "campoId", campoPai: "campoPai", campoLabel: "campoLabel", cadastro: "cadastro", endpoint: "endpoint", caixaClass: "caixaClass", currentSearch: "currentSearch" }, outputs: { beforeUpdate: "beforeUpdate", selecionarRegistro: "selecionarRegistro" }, ngImport: i0, template: "<div style=\"position: relative; height: auto; padding-left: 2%; background-color: white;\">\n \n <div *ngIf=\"arvore\" [class]=\"caixaClass\" style=\"padding-left: 6px; font-size: 12px;\">\n <!-- raiz -->\n <div *ngFor=\"let raiz of arvore\" class=\"coluna\">\n <kb-tree-view-nivel [nivel]=\"0\" [node]=\"raiz\" [currentSearch]=\"currentSearch\" (nivelClick)=\"raiz.Clicable === true ? carregarRegistro(raiz) : null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"raiz.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel1 of raiz.Filhos\" draggable=\"true\">\n <kb-tree-view-nivel [nivel]=\"1\" [node]=\"nivel1\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel1.Clicable === true ? carregarRegistro(nivel1): null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"nivel1 && nivel1.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel2 of nivel1.Filhos\">\n <kb-tree-view-nivel [nivel]=\"2\" [node]=\"nivel2\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel2.Clicable === true ? carregarRegistro(nivel2): null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"nivel2 && nivel2.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel3 of nivel2.Filhos\">\n <kb-tree-view-nivel [nivel]=\"3\" [node]=\"nivel3\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel3.Clicable === true ? carregarRegistro(nivel3): null\">\n </kb-tree-view-nivel>\n \n <div *ngIf=\"nivel3 && nivel3.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel4 of nivel3.Filhos\">\n <kb-tree-view-nivel [nivel]=\"4\" [node]=\"nivel4\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel4.Clicable === true ? carregarRegistro(nivel4): null\">\n </kb-tree-view-nivel>\n \n <div *ngIf=\"nivel4 && nivel4.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel5 of nivel4.Filhos\">\n <kb-tree-view-nivel [nivel]=\"5\" [node]=\"nivel5\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel5.Clicable === true ? carregarRegistro(nivel5): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel5 && nivel5.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel6 of nivel5.Filhos\">\n <kb-tree-view-nivel [nivel]=\"6\" [node]=\"nivel6\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel6.Clicable === true ? carregarRegistro(nivel6): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel6 && nivel6.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel7 of nivel6.Filhos\">\n <kb-tree-view-nivel [nivel]=\"7\" [node]=\"nivel7\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel7.Clicable === true ? carregarRegistro(nivel7): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel7 && nivel7.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel8 of nivel7.Filhos\">\n <kb-tree-view-nivel [nivel]=\"8\" [node]=\"nivel8\"\n (nivelClick)=\"nivel8.Clicable === true ? carregarRegistro(nivel8): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel8 && nivel8.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel9 of nivel8.Filhos\">\n <kb-tree-view-nivel [nivel]=\"9\" [node]=\"nivel9\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel9.Clicable === true ? carregarRegistro(nivel9): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel9 && nivel9.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel10 of nivel9.Filhos\">\n <kb-tree-view-nivel [nivel]=\"10\" [node]=\"nivel10\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel10.Clicable === true ? carregarRegistro(nivel10): null\"></kb-tree-view-nivel>\n \n </div>\n \n </div>\n </div>\n \n </div>\n \n \n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n \n \n \n </div>\n \n </div>\n \n </div>\n \n </div>\n </div>\n </div>", styles: [".boxSeta{margin:2px;font-size:large;color:#09459e;cursor:pointer}.caixa{border:2px transparent solid;padding:3px;width:100%;position:relative;overflow-y:auto;background-color:#fff;border-radius:5px;height:100%}.coluna{padding-bottom:10px}.filho{padding-top:6px}.node-link{cursor:pointer}.caixa-agrupado{border:2px transparent solid;padding:3px;height:701px;width:100%;position:relative;overflow-y:auto;border-radius:5px;background-color:#fff}.caixa-empresa{border:2px transparent solid;padding:3px;height:340px;width:100%;position:relative;overflow-y:auto;border-radius:5px;background-color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.TreeViewNivelComponent, selector: "kb-tree-view-nivel", inputs: ["node", "nivel", "currentSearch"], outputs: ["nivelClick"] }] }); }
79
- }
80
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: TreeViewComponent, decorators: [{
81
- type: Component,
82
- args: [{ selector: 'kb-tree-view', template: "<div style=\"position: relative; height: auto; padding-left: 2%; background-color: white;\">\n \n <div *ngIf=\"arvore\" [class]=\"caixaClass\" style=\"padding-left: 6px; font-size: 12px;\">\n <!-- raiz -->\n <div *ngFor=\"let raiz of arvore\" class=\"coluna\">\n <kb-tree-view-nivel [nivel]=\"0\" [node]=\"raiz\" [currentSearch]=\"currentSearch\" (nivelClick)=\"raiz.Clicable === true ? carregarRegistro(raiz) : null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"raiz.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel1 of raiz.Filhos\" draggable=\"true\">\n <kb-tree-view-nivel [nivel]=\"1\" [node]=\"nivel1\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel1.Clicable === true ? carregarRegistro(nivel1): null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"nivel1 && nivel1.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel2 of nivel1.Filhos\">\n <kb-tree-view-nivel [nivel]=\"2\" [node]=\"nivel2\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel2.Clicable === true ? carregarRegistro(nivel2): null\">\n </kb-tree-view-nivel> \n \n <div *ngIf=\"nivel2 && nivel2.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel3 of nivel2.Filhos\">\n <kb-tree-view-nivel [nivel]=\"3\" [node]=\"nivel3\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel3.Clicable === true ? carregarRegistro(nivel3): null\">\n </kb-tree-view-nivel>\n \n <div *ngIf=\"nivel3 && nivel3.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel4 of nivel3.Filhos\">\n <kb-tree-view-nivel [nivel]=\"4\" [node]=\"nivel4\" [currentSearch]=\"currentSearch\" (nivelClick)=\"nivel4.Clicable === true ? carregarRegistro(nivel4): null\">\n </kb-tree-view-nivel>\n \n <div *ngIf=\"nivel4 && nivel4.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel5 of nivel4.Filhos\">\n <kb-tree-view-nivel [nivel]=\"5\" [node]=\"nivel5\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel5.Clicable === true ? carregarRegistro(nivel5): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel5 && nivel5.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel6 of nivel5.Filhos\">\n <kb-tree-view-nivel [nivel]=\"6\" [node]=\"nivel6\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel6.Clicable === true ? carregarRegistro(nivel6): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel6 && nivel6.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel7 of nivel6.Filhos\">\n <kb-tree-view-nivel [nivel]=\"7\" [node]=\"nivel7\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel7.Clicable === true ? carregarRegistro(nivel7): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel7 && nivel7.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel8 of nivel7.Filhos\">\n <kb-tree-view-nivel [nivel]=\"8\" [node]=\"nivel8\"\n (nivelClick)=\"nivel8.Clicable === true ? carregarRegistro(nivel8): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel8 && nivel8.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel9 of nivel8.Filhos\">\n <kb-tree-view-nivel [nivel]=\"9\" [node]=\"nivel9\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel9.Clicable === true ? carregarRegistro(nivel9): null\"></kb-tree-view-nivel>\n \n <div *ngIf=\"nivel9 && nivel9.Expandido\" class=\"filho\">\n <div *ngFor=\"let nivel10 of nivel9.Filhos\">\n <kb-tree-view-nivel [nivel]=\"10\" [node]=\"nivel10\" [currentSearch]=\"currentSearch\"\n (nivelClick)=\"nivel10.Clicable === true ? carregarRegistro(nivel10): null\"></kb-tree-view-nivel>\n \n </div>\n \n </div>\n </div>\n \n </div>\n \n \n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n </div>\n \n </div>\n \n \n \n </div>\n \n </div>\n \n </div>\n \n </div>\n </div>\n </div>", styles: [".boxSeta{margin:2px;font-size:large;color:#09459e;cursor:pointer}.caixa{border:2px transparent solid;padding:3px;width:100%;position:relative;overflow-y:auto;background-color:#fff;border-radius:5px;height:100%}.coluna{padding-bottom:10px}.filho{padding-top:6px}.node-link{cursor:pointer}.caixa-agrupado{border:2px transparent solid;padding:3px;height:701px;width:100%;position:relative;overflow-y:auto;border-radius:5px;background-color:#fff}.caixa-empresa{border:2px transparent solid;padding:3px;height:340px;width:100%;position:relative;overflow-y:auto;border-radius:5px;background-color:#fff}\n"] }]
83
- }], propDecorators: { itens: [{
84
- type: Input
85
- }], campoId: [{
86
- type: Input
87
- }], campoPai: [{
88
- type: Input
89
- }], campoLabel: [{
90
- type: Input
91
- }], cadastro: [{
92
- type: Input
93
- }], endpoint: [{
94
- type: Input
95
- }], caixaClass: [{
96
- type: Input
97
- }], beforeUpdate: [{
98
- type: Output
99
- }], currentSearch: [{
100
- type: Input
101
- }], selecionarRegistro: [{
102
- type: Output
103
- }] } });
104
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL3RyZWUtdmlldy90cmVlLXZpZXcuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvdHJlZS12aWV3L3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7O0FBUS9FLE1BQU0sT0FBTyxpQkFBaUI7SUFMOUI7UUFNVyxVQUFLLEdBQVUsRUFBRSxDQUFDO1FBT2xCLGVBQVUsR0FBVyxPQUFPLENBQUM7UUFDNUIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBRWxDLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFFbEQsV0FBTSxHQUFXLEVBQUUsQ0FBQztLQXNFckI7SUFwRUMsUUFBUTtRQUNOLDZDQUE2QztJQUMvQyxDQUFDO0lBRUQsV0FBVyxDQUFDLEdBQVcsRUFBRSxNQUFjO1FBQ3JDLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxNQUFNLEdBQUcsQ0FBQyxFQUFFO1lBQy9CLCtCQUErQjtZQUMvQixNQUFNLENBQUMsT0FBTyxDQUFDLENBQUMsQ0FBQyxFQUFFO2dCQUNqQixnQ0FBZ0M7Z0JBQ2hDLElBQUksTUFBTSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUMsQ0FBQyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7Z0JBQzlELHVDQUF1QztnQkFDdkMsQ0FBQyxDQUFDLE1BQU0sR0FBRyxFQUFFLENB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QUFPLENBQUMsR0FBRyxDQUFDLGtCQUFrQixFQUFFLElBQUksQ0FBQyxDQUFDO1FBQ3RDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxJQUFJLENBQUMsRUFBRSxRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVEsRUFBRSxFQUFFLEVBQUUsSUFBSSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDekUsQ0FBQzs4R0FsRlUsaUJBQWlCO2tHQUFqQixpQkFBaUIsK1VDUjlCLHl3S0ErRlU7OzJGRHZGRyxpQkFBaUI7a0JBTDdCLFNBQVM7K0JBQ0UsY0FBYzs4QkFLZixLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csT0FBTztzQkFBZixLQUFLO2dCQUNHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUVHLFFBQVE7c0JBQWhCLEtBQUs7Z0JBQ0csVUFBVTtzQkFBbEIsS0FBSztnQkFDSSxZQUFZO3NCQUFyQixNQUFNO2dCQUNFLGFBQWE7c0JBQXJCLEtBQUs7Z0JBQ0ksa0JBQWtCO3NCQUEzQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgVHJlZSB9IGZyb20gJ2FwcHByb2plY3QtbGliJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItdHJlZS12aWV3JyxcbiAgdGVtcGxhdGVVcmw6ICcuL3RyZWUtdmlldy5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsOiAnLi90cmVlLXZpZXcuY29tcG9uZW50LnNjc3MnXG59KVxuZXhwb3J0IGNsYXNzIFRyZWVWaWV3Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0e1xuICBASW5wdXQoKSBpdGVuczogYW55W10gPSBbXTtcbiAgQElucHV0KCkgY2FtcG9JZDogc3RyaW5nO1xuICBASW5wdXQoKSBjYW1wb1BhaTogc3RyaW5nO1xuICBASW5wdXQoKSBjYW1wb0xhYmVsOiBzdHJpbmc7XG4gIEBJbnB1dCgpIGNhZGFzdHJvOiBzdHJpbmc7XG4gIC8vc2VyYSBvIG5vbWUgZGEgY2hhbWFkYSBwdXQsIGV4OiBbZW5kcG9pbnQ6IENlbnRyb0N1c3RvUGFpXS9pZC9wYWlcbiAgQElucHV0KCkgZW5kcG9pbnQ6IHN0cmluZztcbiAgQElucHV0KCkgY2FpeGFDbGFzczogc3RyaW5nID0gJ2NhaXhhJztcbiAgQE91dHB1dCgpIGJlZm9yZVVwZGF0ZSA9IG5ldyBFdmVudEVtaXR0ZXIoKTsgIFxuICBASW5wdXQoKSBjdXJyZW50U2VhcmNoOiBzdHJpbmc7XG4gIEBPdXRwdXQoKSBzZWxlY2lvbmFyUmVnaXN0cm8gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG5cbiAgYXJ2b3JlOiBUcmVlW10gPSBbXTtcblxuICBuZ09uSW5pdCgpOiB2b2lkIHtcbiAgICAvL3Rocm93IG5ldyBFcnJvcignTWV0aG9kIG5vdCBpbXBsZW1lbnRlZC4nKTtcbiAgfVxuXG4gIG1vbnRhQXJ2b3JlKHBhaTogbnVtYmVyLCBhcnZvcmU6IFRyZWVbXSk6IG51bWJlciB7XG4gICAgaWYgKGFydm9yZSAmJiBhcnZvcmUubGVuZ3RoID4gMCkge1xuICAgICAgLy9wcm9jdXJhciBvcyBmaWxob3MgZGUgY2FkYSBub1xuICAgICAgYXJ2b3JlLmZvckVhY2goZiA9PiB7XG4gICAgICAgIC8vY29uc29sZS5sb2coJ25vIGF0dWFsOicsIGYsICk7XG4gICAgICAgIGxldCBmaWxob3MgPSB0aGlzLml0ZW5zLmZpbHRlcihpID0+IGlbdGhpcy5jYW1wb1BhaV0gPT0gZi5JZCk7XG4gICAgICAgIC8vY29uc29sZS5sb2coJ2ZpbGhvcyBhdHVhbDonLCBmaWxob3MpO1xuICAgICAgICBmLkZpbGhvcyA9IFtdO1xuICAgICAgICBmaWxob3MuZm9yRWFjaChmaSA9PiB7XG4gICAgICAgICAgZi5GaWxob3MucHVzaCh7IElkOiBmaVt0aGlzLmNhbXBvSWRdLCBQYWk6IGYuSWQsIExhYmVsOiBmaVt0aGlzLmNhbXBvTGFiZWxdLCBGaWxob3M6IFtdLCBFeHBhbmRpZG86IGZhbHNlLCBDbGljYWJsZTogKGZpWydDbGljYWJsZVRyZWUnXSA9PSBudWxsIHx8IGZpWydDbGljYWJsZVRyZWUnXSA9PT0gdHJ1ZSkgfSk7XG4gICAgICAgIH0pO1xuICAgICAgICByZXR1cm4gdGhpcy5tb250YUFydm9yZSgwLCBmLkZpbGhvcyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdzZW0gZmlsaG9zJyk7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBhcnZvcmVDbGljayhiZWZvcmU6IGJvb2xlYW4gPSB0cnVlKSB7XG4gICAgaWYgKHRoaXMuYmVmb3JlVXBkYXRlICYmIGJlZm9yZSkge1xuICAgICAgdGhpcy5iZWZvcmVVcGRhdGUuZW1pdCgpO1xuICAgICAgcmV0dXJuO1xuICAgIH1cbiAgICB0aGlzLmFydm9yZSA9IFtdO1xuICAgIC8vY29uc29sZS5sb2coJ3RyZWUgaXRlbnMnLCB0aGlzLml0ZW5zKTtcbiAgICBpZiAodGhpcy5pdGVucyAmJiB0aGlzLml0ZW5zLmxlbmd0aCA+IDApIHtcbiAgICAgIC8vbW9udGFyIGFydm9yZSBwYWlzXG4gICAgICB0aGlzLml0ZW5zLmZvckVhY2goaXQgPT4ge1xuICAgICAgICBpZiAoaXRbdGhpcy5jYW1wb1BhaV0gPT0gbnVsbCkge1xuICAgICAgICAgIC8vw6kgcGFpXG4gICAgICAgICAgdGhpcy5hcnZvcmUucHVzaCh7IElkOiBpdFt0aGlzLmNhbXBvSWRdLCBQYWk6IG51bGwsIExhYmVsOiBpdFt0aGlzLmNhbXBvTGFiZWxdLCBGaWxob3M6IFtdLCBFeHBhbmRpZG86IGZhbHNlLCBDbGljYWJsZTogKGl0WydDbGljYWJsZVRyZWUnXSA9PSBudWxsIHx8IGl0WydDbGljYWJsZVRyZWUnXSA9PT0gdHJ1ZSkgfSk7XG5cbiAgICAgICAgfVxuICAgICAgfSlcbiAgICAgIHRoaXMubW9udGFBcnZvcmUoMCwgdGhpcy5hcnZvcmUpO1xuXG4gICAgICBjb25zb2xlLmxvZygnYXJ2b3JlJywgdGhpcy5hcnZvcmUpO1xuICAgIH1cbiAgfVxuXG4gIGV4cGFuZGlyKGFydm9yZTogVHJlZVtdID0gbnVsbCk6IG51bWJlciB7XG4gICAgaWYgKGFydm9yZSA9PSBudWxsKSB7XG4gICAgICBhcnZvcmUgPSB0aGlzLmFydm9yZTtcbiAgICB9XG4gICAgaWYgKGFydm9yZSAmJiBhcnZvcmUubGVuZ3RoID4gMCkge1xuICAgICAgLy9wcm9jdXJhciBvcyBmaWxob3MgZGUgY2FkYSBub1xuICAgICAgYXJ2b3JlLmZvckVhY2goZiA9PiB7XG4gICAgICAgIC8vZXhwYW5kaXJcbiAgICAgICAgZi5FeHBhbmRpZG8gPSB0cnVlO1xuICAgICAgICByZXR1cm4gdGhpcy5leHBhbmRpcihmLkZpbGhvcyk7XG4gICAgICB9KTtcbiAgICAgIHJldHVybiAwO1xuICAgIH0gZWxzZSB7XG4gICAgICAvL2NvbnNvbGUubG9nKCdzZW0gZmlsaG9zJyk7XG4gICAgICByZXR1cm4gMDtcbiAgICB9XG4gIH1cblxuICBjYXJyZWdhclJlZ2lzdHJvKG5vZGU6IFRyZWUpIHtcbiAgICBjb25zb2xlLmxvZygnY2FycmVnYSByZWdpc3RybycsIG5vZGUpO1xuICAgIHRoaXMuc2VsZWNpb25hclJlZ2lzdHJvLm5leHQoeyBDYWRhc3RybzogdGhpcy5jYWRhc3RybywgSWQ6IG5vZGUuSWQgfSk7XG4gIH1cbn1cbiIsIjxkaXYgc3R5bGU9XCJwb3NpdGlvbjogcmVsYXRpdmU7IGhlaWdodDogYXV0bzsgcGFkZGluZy1sZWZ0OiAyJTsgYmFja2dyb3VuZC1jb2xvcjogd2hpdGU7XCI+XG4gICAgICBcbiAgICA8ZGl2ICpuZ0lmPVwiYXJ2b3JlXCIgW2NsYXNzXT1cImNhaXhhQ2xhc3NcIiBzdHlsZT1cInBhZGRpbmctbGVmdDogNnB4OyBmb250LXNpemU6IDEycHg7XCI+XG4gICAgICA8IS0tIHJhaXogLS0+XG4gICAgICA8ZGl2ICpuZ0Zvcj1cImxldCByYWl6IG9mIGFydm9yZVwiIGNsYXNzPVwiY29sdW5hXCI+XG4gICAgICAgIDxrYi10cmVlLXZpZXctbml2ZWwgW25pdmVsXT1cIjBcIiBbbm9kZV09XCJyYWl6XCIgW2N1cnJlbnRTZWFyY2hdPVwiY3VycmVudFNlYXJjaFwiIChuaXZlbENsaWNrKT1cInJhaXouQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKHJhaXopIDogbnVsbFwiPlxuICAgICAgICA8L2tiLXRyZWUtdmlldy1uaXZlbD4gICAgICAgIFxuICBcbiAgICAgICAgPGRpdiAqbmdJZj1cInJhaXouRXhwYW5kaWRvXCIgY2xhc3M9XCJmaWxob1wiPlxuICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG5pdmVsMSBvZiByYWl6LkZpbGhvc1wiIGRyYWdnYWJsZT1cInRydWVcIj5cbiAgICAgICAgICAgIDxrYi10cmVlLXZpZXctbml2ZWwgW25pdmVsXT1cIjFcIiBbbm9kZV09XCJuaXZlbDFcIiBbY3VycmVudFNlYXJjaF09XCJjdXJyZW50U2VhcmNoXCIgKG5pdmVsQ2xpY2spPVwibml2ZWwxLkNsaWNhYmxlID09PSB0cnVlID8gY2FycmVnYXJSZWdpc3RybyhuaXZlbDEpOiBudWxsXCI+XG4gICAgICAgICAgICA8L2tiLXRyZWUtdmlldy1uaXZlbD4gICAgICAgICAgXG4gIFxuICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5pdmVsMSAmJiBuaXZlbDEuRXhwYW5kaWRvXCIgY2xhc3M9XCJmaWxob1wiPlxuICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBuaXZlbDIgb2Ygbml2ZWwxLkZpbGhvc1wiPlxuICAgICAgICAgICAgICAgIDxrYi10cmVlLXZpZXctbml2ZWwgW25pdmVsXT1cIjJcIiBbbm9kZV09XCJuaXZlbDJcIiBbY3VycmVudFNlYXJjaF09XCJjdXJyZW50U2VhcmNoXCIgKG5pdmVsQ2xpY2spPVwibml2ZWwyLkNsaWNhYmxlID09PSB0cnVlID8gY2FycmVnYXJSZWdpc3RybyhuaXZlbDIpOiBudWxsXCI+XG4gICAgICAgICAgICAgICAgPC9rYi10cmVlLXZpZXctbml2ZWw+ICAgICAgICAgICAgICBcbiAgXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5pdmVsMiAmJiBuaXZlbDIuRXhwYW5kaWRvXCIgY2xhc3M9XCJmaWxob1wiPlxuICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbml2ZWwzIG9mIG5pdmVsMi5GaWxob3NcIj5cbiAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiM1wiIFtub2RlXT1cIm5pdmVsM1wiIFtjdXJyZW50U2VhcmNoXT1cImN1cnJlbnRTZWFyY2hcIiAobml2ZWxDbGljayk9XCJuaXZlbDMuQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKG5pdmVsMyk6IG51bGxcIj5cbiAgICAgICAgICAgICAgICAgICAgPC9rYi10cmVlLXZpZXctbml2ZWw+XG4gIFxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibml2ZWwzICYmIG5pdmVsMy5FeHBhbmRpZG9cIiBjbGFzcz1cImZpbGhvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbml2ZWw0IG9mIG5pdmVsMy5GaWxob3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxrYi10cmVlLXZpZXctbml2ZWwgW25pdmVsXT1cIjRcIiBbbm9kZV09XCJuaXZlbDRcIiBbY3VycmVudFNlYXJjaF09XCJjdXJyZW50U2VhcmNoXCIgKG5pdmVsQ2xpY2spPVwibml2ZWw0LkNsaWNhYmxlID09PSB0cnVlID8gY2FycmVnYXJSZWdpc3RybyhuaXZlbDQpOiBudWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2tiLXRyZWUtdmlldy1uaXZlbD5cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibml2ZWw0ICYmIG5pdmVsNC5FeHBhbmRpZG9cIiBjbGFzcz1cImZpbGhvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG5pdmVsNSBvZiBuaXZlbDQuRmlsaG9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiNVwiIFtub2RlXT1cIm5pdmVsNVwiIFtjdXJyZW50U2VhcmNoXT1cImN1cnJlbnRTZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKG5pdmVsQ2xpY2spPVwibml2ZWw1LkNsaWNhYmxlID09PSB0cnVlID8gY2FycmVnYXJSZWdpc3RybyhuaXZlbDUpOiBudWxsXCI+PC9rYi10cmVlLXZpZXctbml2ZWw+XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJuaXZlbDUgJiYgbml2ZWw1LkV4cGFuZGlkb1wiIGNsYXNzPVwiZmlsaG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG5pdmVsNiBvZiBuaXZlbDUuRmlsaG9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxrYi10cmVlLXZpZXctbml2ZWwgW25pdmVsXT1cIjZcIiBbbm9kZV09XCJuaXZlbDZcIiBbY3VycmVudFNlYXJjaF09XCJjdXJyZW50U2VhcmNoXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobml2ZWxDbGljayk9XCJuaXZlbDYuQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKG5pdmVsNik6IG51bGxcIj48L2tiLXRyZWUtdmlldy1uaXZlbD5cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJuaXZlbDYgJiYgbml2ZWw2LkV4cGFuZGlkb1wiIGNsYXNzPVwiZmlsaG9cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBuaXZlbDcgb2Ygbml2ZWw2LkZpbGhvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiN1wiIFtub2RlXT1cIm5pdmVsN1wiIFtjdXJyZW50U2VhcmNoXT1cImN1cnJlbnRTZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobml2ZWxDbGljayk9XCJuaXZlbDcuQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKG5pdmVsNyk6IG51bGxcIj48L2tiLXRyZWUtdmlldy1uaXZlbD5cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwibml2ZWw3ICYmIG5pdmVsNy5FeHBhbmRpZG9cIiBjbGFzcz1cImZpbGhvXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG5pdmVsOCBvZiBuaXZlbDcuRmlsaG9zXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiOFwiIFtub2RlXT1cIm5pdmVsOFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAobml2ZWxDbGljayk9XCJuaXZlbDguQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKG5pdmVsOCk6IG51bGxcIj48L2tiLXRyZWUtdmlldy1uaXZlbD5cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5pdmVsOCAmJiBuaXZlbDguRXhwYW5kaWRvXCIgY2xhc3M9XCJmaWxob1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdGb3I9XCJsZXQgbml2ZWw5IG9mIG5pdmVsOC5GaWxob3NcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiOVwiIFtub2RlXT1cIm5pdmVsOVwiIFtjdXJyZW50U2VhcmNoXT1cImN1cnJlbnRTZWFyY2hcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuaXZlbENsaWNrKT1cIm5pdmVsOS5DbGljYWJsZSA9PT0gdHJ1ZSA/IGNhcnJlZ2FyUmVnaXN0cm8obml2ZWw5KTogbnVsbFwiPjwva2ItdHJlZS12aWV3LW5pdmVsPlxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIm5pdmVsOSAmJiBuaXZlbDkuRXhwYW5kaWRvXCIgY2xhc3M9XCJmaWxob1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nRm9yPVwibGV0IG5pdmVsMTAgb2Ygbml2ZWw5LkZpbGhvc1wiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGtiLXRyZWUtdmlldy1uaXZlbCBbbml2ZWxdPVwiMTBcIiBbbm9kZV09XCJuaXZlbDEwXCIgW2N1cnJlbnRTZWFyY2hdPVwiY3VycmVudFNlYXJjaFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIChuaXZlbENsaWNrKT1cIm5pdmVsMTAuQ2xpY2FibGUgPT09IHRydWUgPyBjYXJyZWdhclJlZ2lzdHJvKG5pdmVsMTApOiBudWxsXCI+PC9rYi10cmVlLXZpZXctbml2ZWw+XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgXG4gIFxuICBcbiAgICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgICAgPC9kaXY+XG4gIFxuICAgICAgICAgIDwvZGl2PlxuICBcbiAgICAgICAgPC9kaXY+XG4gICAgICA8L2Rpdj5cbiAgICA8L2Rpdj4iXX0=
@@ -1,50 +0,0 @@
1
- import { Component, EventEmitter, Input, Output } from '@angular/core';
2
- import * as i0 from "@angular/core";
3
- import * as i1 from "@angular/platform-browser";
4
- import * as i2 from "@angular/common";
5
- import * as i3 from "@ionic/angular";
6
- export class TreeViewNivelComponent {
7
- constructor(sanitizer) {
8
- this.sanitizer = sanitizer;
9
- this.nivelClick = new EventEmitter();
10
- this.identacao = '';
11
- }
12
- ngOnInit() {
13
- for (let i = 0; i < this.nivel; i++) {
14
- this.identacao += '<span>&nbsp;&nbsp;&nbsp;&nbsp;</span>';
15
- }
16
- //console.log('IDENT', this.identacao)
17
- }
18
- nodeClick() {
19
- if (this.nivelClick) {
20
- this.nivelClick.emit(this.node);
21
- }
22
- }
23
- highlight(texto) {
24
- if (!this.currentSearch)
25
- return texto;
26
- let index = texto.toLowerCase().indexOf(this.currentSearch.toLowerCase());
27
- //console.log(index);
28
- if (index >= 0) {
29
- return this.sanitizer.bypassSecurityTrustHtml(texto.substring(0, index) + '<strong style="background-color: yellow !important;">' + texto.substring(index, index + this.currentSearch.length) + '</strong>' + texto.substring(index + this.currentSearch.length)); //texto.replace(this.textoPesquisa, `<strong>${this.textoPesquisa}</strong>`);
30
- }
31
- else {
32
- return texto;
33
- }
34
- }
35
- static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: TreeViewNivelComponent, deps: [{ token: i1.DomSanitizer }], target: i0.ɵɵFactoryTarget.Component }); }
36
- static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.7", type: TreeViewNivelComponent, selector: "kb-tree-view-nivel", inputs: { node: "node", nivel: "nivel", currentSearch: "currentSearch" }, outputs: { nivelClick: "nivelClick" }, ngImport: i0, template: "<span [innerHtml]=\"identacao\" class=\"node-link\"></span>\n<!-- mostrar a seta se tiver filhos ou se for raiz (nivel = 0)-->\n<span class=\"node-link\" *ngIf=\"!node.Expandido && (node.Filhos.length > 0 || nivel == 0)\" (click)=\"node.Expandido = !node.Expandido\"\n class=\"boxSeta\">\n <ion-icon name=\"chevron-forward-outline\"></ion-icon>\n</span>\n<span class=\"node-link\" *ngIf=\"node.Expandido\" (click)=\"node.Expandido = !node.Expandido\" class=\"boxSeta\">\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\n</span>\n<!--\n<span *ngIf=\"!node.Expandido\">&nbsp;&nbsp;&nbsp;</span>\n-->\n\n<!-- \n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\"> {{ node.Label }}</span>\n-->\n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\" [innerHTML]=\"highlight(node.Label)\"></span>\n", styles: [".node-link{cursor:pointer}.node-disabled{cursor:auto;color:#a9a9a9}\n"], dependencies: [{ kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i3.IonIcon, selector: "ion-icon", inputs: ["color", "flipRtl", "icon", "ios", "lazy", "md", "mode", "name", "sanitize", "size", "src"] }] }); }
37
- }
38
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.7", ngImport: i0, type: TreeViewNivelComponent, decorators: [{
39
- type: Component,
40
- args: [{ selector: 'kb-tree-view-nivel', template: "<span [innerHtml]=\"identacao\" class=\"node-link\"></span>\n<!-- mostrar a seta se tiver filhos ou se for raiz (nivel = 0)-->\n<span class=\"node-link\" *ngIf=\"!node.Expandido && (node.Filhos.length > 0 || nivel == 0)\" (click)=\"node.Expandido = !node.Expandido\"\n class=\"boxSeta\">\n <ion-icon name=\"chevron-forward-outline\"></ion-icon>\n</span>\n<span class=\"node-link\" *ngIf=\"node.Expandido\" (click)=\"node.Expandido = !node.Expandido\" class=\"boxSeta\">\n <ion-icon name=\"chevron-down-outline\"></ion-icon>\n</span>\n<!--\n<span *ngIf=\"!node.Expandido\">&nbsp;&nbsp;&nbsp;</span>\n-->\n\n<!-- \n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\"> {{ node.Label }}</span>\n-->\n<span [class]=\"{ 'node-link' : node.Clicable === true, 'node-disabled': node.Clicable === false }\" (click)=\"nodeClick()\" title=\"{{ node.Label }}\" [innerHTML]=\"highlight(node.Label)\"></span>\n", styles: [".node-link{cursor:pointer}.node-disabled{cursor:auto;color:#a9a9a9}\n"] }]
41
- }], ctorParameters: () => [{ type: i1.DomSanitizer }], propDecorators: { nivelClick: [{
42
- type: Output
43
- }], node: [{
44
- type: Input
45
- }], nivel: [{
46
- type: Input
47
- }], currentSearch: [{
48
- type: Input
49
- }] } });
50
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidHJlZS12aWV3LW5pdmVsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvbGliL3RyZWUtdmlldy1uaXZlbC90cmVlLXZpZXctbml2ZWwuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvYXBwcHJvamVjdC1jb21wb25lbnRzL3NyYy9saWIvdHJlZS12aWV3LW5pdmVsL3RyZWUtdmlldy1uaXZlbC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7OztBQVEvRSxNQUFNLE9BQU8sc0JBQXNCO0lBUWpDLFlBQW9CLFNBQXVCO1FBQXZCLGNBQVMsR0FBVCxTQUFTLENBQWM7UUFQakMsZUFBVSxHQUFHLElBQUksWUFBWSxFQUFFLENBQUM7UUFLMUMsY0FBUyxHQUFXLEVBQUUsQ0FBQztJQUV3QixDQUFDO0lBRWhELFFBQVE7UUFDTixLQUFLLElBQUksQ0FBQyxHQUFDLENBQUMsRUFBRSxDQUFDLEdBQUMsSUFBSSxDQUFDLEtBQUssRUFBQyxDQUFDLEVBQUUsRUFBRTtZQUM5QixJQUFJLENBQUMsU0FBUyxJQUFJLHVDQUF1QyxDQUFDO1NBQzNEO1FBQ0Qsc0NBQXNDO0lBQ3hDLENBQUM7SUFFRCxTQUFTO1FBQ1AsSUFBSSxJQUFJLENBQUMsVUFBVSxFQUFFO1lBQ25CLElBQUksQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztTQUNqQztJQUNILENBQUM7SUFFRCxTQUFTLENBQUMsS0FBYTtRQUNyQixJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWE7WUFDckIsT0FBTyxLQUFLLENBQUM7UUFDZixJQUFJLEtBQUssR0FBRyxLQUFLLENBQUMsV0FBVyxFQUFFLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxhQUFhLENBQUMsV0FBVyxFQUFFLENBQUMsQ0FBQztRQUMxRSxxQkFBcUI7UUFDckIsSUFBSSxLQUFLLElBQUksQ0FBQyxFQUFFO1lBQ2QsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLHVCQUF1QixDQUFDLEtBQUssQ0FBQyxTQUFTLENBQUMsQ0FBQyxFQUFFLEtBQUssQ0FBQyxHQUFHLHVEQUF1RCxHQUFHLEtBQUssQ0FBQyxTQUFTLENBQUMsS0FBSyxFQUFFLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxHQUFHLFdBQVcsR0FBRyxLQUFLLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsYUFBYSxDQUFDLE1BQU0sQ0FBQyxDQUFDLENBQUMsQ0FBRSw4RUFBOEU7U0FDblY7YUFBTTtZQUNMLE9BQU8sS0FBSyxDQUFDO1NBQ2Q7SUFDSCxDQUFDOzhHQWpDVSxzQkFBc0I7a0dBQXRCLHNCQUFzQiwyS0NSbkMsdytCQWlCQTs7MkZEVGEsc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjtpRkFLcEIsVUFBVTtzQkFBbkIsTUFBTTtnQkFDRSxJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLGFBQWE7c0JBQXJCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBEb21TYW5pdGl6ZXIgfSBmcm9tICdAYW5ndWxhci9wbGF0Zm9ybS1icm93c2VyJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAna2ItdHJlZS12aWV3LW5pdmVsJywgICAgXG4gIHRlbXBsYXRlVXJsOiAnLi90cmVlLXZpZXctbml2ZWwuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybDogJy4vdHJlZS12aWV3LW5pdmVsLmNvbXBvbmVudC5zY3NzJ1xufSlcbmV4cG9ydCBjbGFzcyBUcmVlVmlld05pdmVsQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgQE91dHB1dCgpIG5pdmVsQ2xpY2sgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gIEBJbnB1dCgpIG5vZGU6IGFueTtcbiAgQElucHV0KCkgbml2ZWw6IG51bWJlcjtcbiAgQElucHV0KCkgY3VycmVudFNlYXJjaDogc3RyaW5nOyAgXG5cbiAgaWRlbnRhY2FvOiBzdHJpbmcgPSAnJztcblxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHNhbml0aXplcjogRG9tU2FuaXRpemVyKSB7IH1cblxuICBuZ09uSW5pdCgpIHtcbiAgICBmb3IgKGxldCBpPTA7IGk8dGhpcy5uaXZlbDtpKyspIHtcbiAgICAgIHRoaXMuaWRlbnRhY2FvICs9ICc8c3Bhbj4mbmJzcDsmbmJzcDsmbmJzcDsmbmJzcDs8L3NwYW4+JztcbiAgICB9XG4gICAgLy9jb25zb2xlLmxvZygnSURFTlQnLCB0aGlzLmlkZW50YWNhbylcbiAgfVxuXG4gIG5vZGVDbGljaygpIHtcbiAgICBpZiAodGhpcy5uaXZlbENsaWNrKSB7XG4gICAgICB0aGlzLm5pdmVsQ2xpY2suZW1pdCh0aGlzLm5vZGUpO1xuICAgIH1cbiAgfVxuXG4gIGhpZ2hsaWdodCh0ZXh0bzogc3RyaW5nKTogYW55IHsgICAgXG4gICAgaWYgKCF0aGlzLmN1cnJlbnRTZWFyY2gpXG4gICAgICByZXR1cm4gdGV4dG87XG4gICAgbGV0IGluZGV4ID0gdGV4dG8udG9Mb3dlckNhc2UoKS5pbmRleE9mKHRoaXMuY3VycmVudFNlYXJjaC50b0xvd2VyQ2FzZSgpKTtcbiAgICAvL2NvbnNvbGUubG9nKGluZGV4KTtcbiAgICBpZiAoaW5kZXggPj0gMCkge1xuICAgICAgcmV0dXJuIHRoaXMuc2FuaXRpemVyLmJ5cGFzc1NlY3VyaXR5VHJ1c3RIdG1sKHRleHRvLnN1YnN0cmluZygwLCBpbmRleCkgKyAnPHN0cm9uZyBzdHlsZT1cImJhY2tncm91bmQtY29sb3I6IHllbGxvdyAhaW1wb3J0YW50O1wiPicgKyB0ZXh0by5zdWJzdHJpbmcoaW5kZXgsIGluZGV4ICsgdGhpcy5jdXJyZW50U2VhcmNoLmxlbmd0aCkgKyAnPC9zdHJvbmc+JyArIHRleHRvLnN1YnN0cmluZyhpbmRleCArIHRoaXMuY3VycmVudFNlYXJjaC5sZW5ndGgpKTsgIC8vdGV4dG8ucmVwbGFjZSh0aGlzLnRleHRvUGVzcXVpc2EsIGA8c3Ryb25nPiR7dGhpcy50ZXh0b1Blc3F1aXNhfTwvc3Ryb25nPmApO1xuICAgIH0gZWxzZSB7XG4gICAgICByZXR1cm4gdGV4dG87XG4gICAgfVxuICB9XG59XG4iLCI8c3BhbiBbaW5uZXJIdG1sXT1cImlkZW50YWNhb1wiIGNsYXNzPVwibm9kZS1saW5rXCI+PC9zcGFuPlxuPCEtLSBtb3N0cmFyIGEgc2V0YSBzZSB0aXZlciBmaWxob3Mgb3Ugc2UgZm9yIHJhaXogKG5pdmVsID0gMCktLT5cbjxzcGFuIGNsYXNzPVwibm9kZS1saW5rXCIgKm5nSWY9XCIhbm9kZS5FeHBhbmRpZG8gJiYgKG5vZGUuRmlsaG9zLmxlbmd0aCA+IDAgfHwgbml2ZWwgPT0gMClcIiAoY2xpY2spPVwibm9kZS5FeHBhbmRpZG8gPSAhbm9kZS5FeHBhbmRpZG9cIlxuICBjbGFzcz1cImJveFNldGFcIj5cbiAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWZvcndhcmQtb3V0bGluZVwiPjwvaW9uLWljb24+XG48L3NwYW4+XG48c3BhbiBjbGFzcz1cIm5vZGUtbGlua1wiICpuZ0lmPVwibm9kZS5FeHBhbmRpZG9cIiAoY2xpY2spPVwibm9kZS5FeHBhbmRpZG8gPSAhbm9kZS5FeHBhbmRpZG9cIiBjbGFzcz1cImJveFNldGFcIj5cbiAgPGlvbi1pY29uIG5hbWU9XCJjaGV2cm9uLWRvd24tb3V0bGluZVwiPjwvaW9uLWljb24+XG48L3NwYW4+XG48IS0tXG48c3BhbiAqbmdJZj1cIiFub2RlLkV4cGFuZGlkb1wiPiZuYnNwOyZuYnNwOyZuYnNwOzwvc3Bhbj5cbi0tPlxuXG48IS0tIFxuPHNwYW4gW2NsYXNzXT1cInsgJ25vZGUtbGluaycgOiBub2RlLkNsaWNhYmxlID09PSB0cnVlLCAnbm9kZS1kaXNhYmxlZCc6IG5vZGUuQ2xpY2FibGUgPT09IGZhbHNlIH1cIiAoY2xpY2spPVwibm9kZUNsaWNrKClcIiB0aXRsZT1cInt7IG5vZGUuTGFiZWwgfX1cIj4ge3sgbm9kZS5MYWJlbCB9fTwvc3Bhbj5cbi0tPlxuPHNwYW4gW2NsYXNzXT1cInsgJ25vZGUtbGluaycgOiBub2RlLkNsaWNhYmxlID09PSB0cnVlLCAnbm9kZS1kaXNhYmxlZCc6IG5vZGUuQ2xpY2FibGUgPT09IGZhbHNlIH1cIiAoY2xpY2spPVwibm9kZUNsaWNrKClcIiB0aXRsZT1cInt7IG5vZGUuTGFiZWwgfX1cIiBbaW5uZXJIVE1MXT1cImhpZ2hsaWdodChub2RlLkxhYmVsKVwiPjwvc3Bhbj5cbiJdfQ==
@@ -1,30 +0,0 @@
1
- /*
2
- * Public API Surface of appproject-components
3
- */
4
- export * from './lib/appproject-components.service';
5
- export * from './lib/appproject-components.component';
6
- export * from './lib/appproject-components.module';
7
- //export manual dos componentes criados
8
- export * from './lib/baseInputComponent';
9
- export * from './lib/input-text/input-text.component';
10
- export * from './lib/input-format/input-format.component';
11
- export * from './lib/input-select/input-select.component';
12
- export * from './lib/input-pesquisa/input-pesquisa.component';
13
- export * from './lib/input-valor/input-valor.component';
14
- export * from './lib/model-treeview/model-treeview.component';
15
- export * from './lib/input-area/input-area.component';
16
- export * from './lib/input-cep/input-cep.component';
17
- export * from './lib/input-arquivo/input-arquivo.component';
18
- export * from './lib/entity-edit/entity-edit.component';
19
- export * from './lib/input-checkbox/input-checkbox.component';
20
- export * from './lib/input-radio/input-radio.component';
21
- export * from './lib/tree-view/tree-view.component';
22
- export * from './lib/tree-view-nivel/tree-view-nivel.component';
23
- export * from './lib/grid-view/grid-view.component';
24
- //buttons
25
- export * from './lib/buttons/btn-action/btn-action.component';
26
- export * from './lib/buttons/btn-cancelar/btn-cancelar.component';
27
- export * from './lib/buttons/btn-excluir/btn-excluir.component';
28
- export * from './lib/buttons/btn-novo/btn-novo.component';
29
- export * from './lib/buttons/btn-salvar/btn-salvar.component';
30
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicHVibGljLWFwaS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uL3Byb2plY3RzL2FwcHByb2plY3QtY29tcG9uZW50cy9zcmMvcHVibGljLWFwaS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQTs7R0FFRztBQUVILGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyx1Q0FBdUMsQ0FBQztBQUN0RCxjQUFjLG9DQUFvQyxDQUFDO0FBQ25ELHVDQUF1QztBQUN2QyxjQUFjLDBCQUEwQixDQUFDO0FBQ3pDLGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYywyQ0FBMkMsQ0FBQztBQUMxRCxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsK0NBQStDLENBQUM7QUFDOUQsY0FBYyx5Q0FBeUMsQ0FBQztBQUN4RCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsdUNBQXVDLENBQUM7QUFDdEQsY0FBYyxxQ0FBcUMsQ0FBQztBQUNwRCxjQUFjLDZDQUE2QyxDQUFDO0FBQzVELGNBQWMseUNBQXlDLENBQUM7QUFDeEQsY0FBYywrQ0FBK0MsQ0FBQztBQUM5RCxjQUFjLHlDQUF5QyxDQUFDO0FBQ3hELGNBQWMscUNBQXFDLENBQUM7QUFDcEQsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLHFDQUFxQyxDQUFDO0FBQ3BELFNBQVM7QUFDVCxjQUFjLCtDQUErQyxDQUFDO0FBQzlELGNBQWMsbURBQW1ELENBQUM7QUFDbEUsY0FBYyxpREFBaUQsQ0FBQztBQUNoRSxjQUFjLDJDQUEyQyxDQUFDO0FBQzFELGNBQWMsK0NBQStDLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyIvKlxyXG4gKiBQdWJsaWMgQVBJIFN1cmZhY2Ugb2YgYXBwcHJvamVjdC1jb21wb25lbnRzXHJcbiAqL1xyXG5cclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwcHJvamVjdC1jb21wb25lbnRzLnNlcnZpY2UnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9hcHBwcm9qZWN0LWNvbXBvbmVudHMuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYXBwcHJvamVjdC1jb21wb25lbnRzLm1vZHVsZSc7XHJcbi8vZXhwb3J0IG1hbnVhbCBkb3MgY29tcG9uZW50ZXMgY3JpYWRvc1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9iYXNlSW5wdXRDb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC10ZXh0L2lucHV0LXRleHQuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvaW5wdXQtZm9ybWF0L2lucHV0LWZvcm1hdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1zZWxlY3QvaW5wdXQtc2VsZWN0LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LXBlc3F1aXNhL2lucHV0LXBlc3F1aXNhLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LXZhbG9yL2lucHV0LXZhbG9yLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL21vZGVsLXRyZWV2aWV3L21vZGVsLXRyZWV2aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LWFyZWEvaW5wdXQtYXJlYS5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1jZXAvaW5wdXQtY2VwLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2lucHV0LWFycXVpdm8vaW5wdXQtYXJxdWl2by5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9lbnRpdHktZWRpdC9lbnRpdHktZWRpdC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1jaGVja2JveC9pbnB1dC1jaGVja2JveC5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9pbnB1dC1yYWRpby9pbnB1dC1yYWRpby5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi90cmVlLXZpZXcvdHJlZS12aWV3LmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL3RyZWUtdmlldy1uaXZlbC90cmVlLXZpZXctbml2ZWwuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvZ3JpZC12aWV3L2dyaWQtdmlldy5jb21wb25lbnQnO1xyXG4vL2J1dHRvbnNcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9ucy9idG4tYWN0aW9uL2J0bi1hY3Rpb24uY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9ucy9idG4tY2FuY2VsYXIvYnRuLWNhbmNlbGFyLmNvbXBvbmVudCc7XHJcbmV4cG9ydCAqIGZyb20gJy4vbGliL2J1dHRvbnMvYnRuLWV4Y2x1aXIvYnRuLWV4Y2x1aXIuY29tcG9uZW50JztcclxuZXhwb3J0ICogZnJvbSAnLi9saWIvYnV0dG9ucy9idG4tbm92by9idG4tbm92by5jb21wb25lbnQnO1xyXG5leHBvcnQgKiBmcm9tICcuL2xpYi9idXR0b25zL2J0bi1zYWx2YXIvYnRuLXNhbHZhci5jb21wb25lbnQnOyJdfQ==