@sankhyalabs/sankhyablocks 8.16.0-dev.64 → 8.16.0-dev.65

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 (106) hide show
  1. package/dist/cjs/{ContinuousInsertUtils-414b772c.js → ContinuousInsertUtils-a6139f3d.js} +2 -2
  2. package/dist/cjs/{dataunit-fetcher-228016f4.js → dataunit-fetcher-0121621c.js} +1 -1
  3. package/dist/cjs/index-f9e81701.js +4 -0
  4. package/dist/cjs/loader.cjs.js +1 -1
  5. package/dist/cjs/{pesquisa-fetcher-2ec4811b.js → pesquisa-fetcher-a85d6935.js} +175 -0
  6. package/dist/cjs/pesquisa-grid_2.cjs.entry.js +127 -0
  7. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  8. package/dist/cjs/snk-actions-button_5.cjs.entry.js +2 -2
  9. package/dist/cjs/snk-application.cjs.entry.js +23 -8
  10. package/dist/cjs/snk-attach.cjs.entry.js +2 -2
  11. package/dist/cjs/snk-crud.cjs.entry.js +2 -2
  12. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  13. package/dist/cjs/{snk-data-unit-3d9b6ed4.js → snk-data-unit-c699179d.js} +1 -1
  14. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  15. package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
  16. package/dist/cjs/snk-grid.cjs.entry.js +3 -3
  17. package/dist/cjs/{snk-guides-viewer-421555af.js → snk-guides-viewer-575596a2.js} +2 -2
  18. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
  19. package/dist/cjs/snk-pesquisa.cjs.entry.js +105 -31
  20. package/dist/cjs/snk-simple-crud.cjs.entry.js +3 -3
  21. package/dist/collection/collection-manifest.json +2 -0
  22. package/dist/collection/components/snk-application/snk-application.js +25 -7
  23. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.css +10 -0
  24. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.js +190 -0
  25. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.css +25 -0
  26. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.js +173 -0
  27. package/dist/collection/components/snk-pesquisa/pesquisaHelper.js +89 -0
  28. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +24 -5
  29. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +168 -32
  30. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +1 -1
  31. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +89 -3
  32. package/dist/components/ContinuousInsertUtils.js +1 -2
  33. package/dist/components/ISave.js +346 -1
  34. package/dist/components/dataunit-fetcher.js +1 -1
  35. package/dist/components/index.d.ts +2 -0
  36. package/dist/components/index.js +2 -0
  37. package/dist/components/pesquisa-grid.d.ts +11 -0
  38. package/dist/components/pesquisa-grid.js +6 -0
  39. package/dist/components/pesquisa-grid2.js +86 -0
  40. package/dist/components/pesquisa-tree.d.ts +11 -0
  41. package/dist/components/pesquisa-tree.js +6 -0
  42. package/dist/components/pesquisa-tree2.js +76 -0
  43. package/dist/components/snk-actions-button2.js +0 -1
  44. package/dist/components/snk-application2.js +35 -8
  45. package/dist/components/snk-attach2.js +0 -1
  46. package/dist/components/snk-crud.js +0 -1
  47. package/dist/components/snk-data-exporter2.js +1 -2
  48. package/dist/components/snk-detail-view2.js +0 -1
  49. package/dist/components/snk-grid2.js +0 -1
  50. package/dist/components/snk-pesquisa2.js +118 -33
  51. package/dist/components/snk-simple-crud2.js +1 -2
  52. package/dist/components/snk-simple-form-config2.js +1 -2
  53. package/dist/components/teste-pesquisa.js +13 -1
  54. package/dist/esm/{ContinuousInsertUtils-bab45060.js → ContinuousInsertUtils-15b5f1da.js} +2 -2
  55. package/dist/esm/{dataunit-fetcher-56cb648b.js → dataunit-fetcher-481e159d.js} +1 -1
  56. package/dist/esm/index-a7d3d3f1.js +4 -0
  57. package/dist/esm/loader.js +1 -1
  58. package/dist/esm/{pesquisa-fetcher-24e5bba0.js → pesquisa-fetcher-c437c9b1.js} +176 -2
  59. package/dist/esm/pesquisa-grid_2.entry.js +122 -0
  60. package/dist/esm/sankhyablocks.js +1 -1
  61. package/dist/esm/snk-actions-button_5.entry.js +2 -2
  62. package/dist/esm/snk-application.entry.js +23 -8
  63. package/dist/esm/snk-attach.entry.js +2 -2
  64. package/dist/esm/snk-crud.entry.js +2 -2
  65. package/dist/esm/snk-data-exporter.entry.js +3 -3
  66. package/dist/esm/{snk-data-unit-9fa7d2b9.js → snk-data-unit-d4ba54d7.js} +1 -1
  67. package/dist/esm/snk-data-unit.entry.js +2 -2
  68. package/dist/esm/snk-detail-view.entry.js +3 -3
  69. package/dist/esm/snk-grid.entry.js +3 -3
  70. package/dist/esm/{snk-guides-viewer-b740a1fe.js → snk-guides-viewer-3043422d.js} +2 -2
  71. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  72. package/dist/esm/snk-pesquisa.entry.js +105 -31
  73. package/dist/esm/snk-simple-crud.entry.js +3 -3
  74. package/dist/sankhyablocks/{p-c629c07a.entry.js → p-08242e3f.entry.js} +1 -1
  75. package/dist/sankhyablocks/{p-342eeb3b.js → p-0f3b2a32.js} +1 -1
  76. package/dist/sankhyablocks/{p-72a451c8.js → p-229c3615.js} +1 -1
  77. package/dist/sankhyablocks/{p-b619ee23.js → p-36598f95.js} +1 -1
  78. package/dist/sankhyablocks/{p-098f8cfa.entry.js → p-4895f6e4.entry.js} +1 -1
  79. package/dist/sankhyablocks/p-4be4cdac.js +6 -0
  80. package/dist/sankhyablocks/{p-47d24ac8.js → p-58fd3017.js} +1 -1
  81. package/dist/sankhyablocks/p-70cb4e36.entry.js +11 -0
  82. package/dist/sankhyablocks/{p-64ff0fb6.entry.js → p-73fc8ec5.entry.js} +1 -1
  83. package/dist/sankhyablocks/{p-50306605.entry.js → p-7d09f66c.entry.js} +1 -1
  84. package/dist/sankhyablocks/{p-53ae0296.entry.js → p-a33e803a.entry.js} +1 -1
  85. package/dist/sankhyablocks/{p-89da2953.entry.js → p-b299dc14.entry.js} +1 -1
  86. package/dist/sankhyablocks/p-badbd2ca.entry.js +1 -0
  87. package/dist/sankhyablocks/{p-9a9681d1.entry.js → p-c9bd54e6.entry.js} +1 -1
  88. package/dist/sankhyablocks/{p-0d2a2e9e.entry.js → p-e2bd42c0.entry.js} +1 -1
  89. package/dist/sankhyablocks/p-e8512d4b.entry.js +1 -0
  90. package/dist/sankhyablocks/{p-2b7432e8.entry.js → p-f71d043b.entry.js} +1 -1
  91. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  92. package/dist/types/components/snk-application/snk-application.d.ts +1 -1
  93. package/dist/types/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.d.ts +38 -0
  94. package/dist/types/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.d.ts +28 -0
  95. package/dist/types/components/snk-pesquisa/pesquisaHelper.d.ts +19 -0
  96. package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +35 -1
  97. package/dist/types/components.d.ts +148 -13
  98. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +10 -1
  99. package/package.json +1 -1
  100. package/react/components.d.ts +2 -0
  101. package/react/components.js +2 -0
  102. package/react/components.js.map +1 -1
  103. package/dist/components/pesquisa-fetcher.js +0 -172
  104. package/dist/sankhyablocks/p-442367ab.entry.js +0 -11
  105. package/dist/sankhyablocks/p-d1791da2.entry.js +0 -1
  106. package/dist/sankhyablocks/p-e6683406.js +0 -6
@@ -48,6 +48,8 @@
48
48
  "./components/snk-personalized-filter/subcomponents/snk-filter-assistent-mode/snk-filter-assistent-mode.js",
49
49
  "./components/snk-personalized-filter/subcomponents/snk-filter-param-config/snk-filter-param-config.js",
50
50
  "./components/snk-pesquisa/snk-pesquisa.js",
51
+ "./components/snk-pesquisa/pesquisa-grid/pesquisa-grid.js",
52
+ "./components/snk-pesquisa/pesquisa-tree/pesquisa-tree.js",
51
53
  "./components/snk-simple-bar/snk-simple-bar.js",
52
54
  "./components/snk-simple-crud/snk-simple-crud.js",
53
55
  "./components/snk-simple-form-config/snk-simple-form-config.js",
@@ -579,14 +579,14 @@ export class SnkApplication {
579
579
  * Obtém as opções em componentes de pesquisa
580
580
  * Ex.: snk-config-options
581
581
  */
582
- async executeSearch(searchArgument, fieldName, dataUnit) {
582
+ async executeSearch(searchArgument, fieldName, dataUnit, ctxOptions) {
583
583
  const descriptor = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getField(fieldName);
584
584
  if (!descriptor) {
585
585
  //TODO: Implementar mensagem de erro
586
586
  }
587
587
  else {
588
588
  const { mode, argument } = searchArgument;
589
- const { ENTITYNAME, CODEFIELD, DESCRIPTIONFIELD, ROOTENTITY, DESCRIPTIONENTITY } = descriptor.properties;
589
+ const { ENTITYNAME, CODEFIELD, DESCRIPTIONFIELD, ROOTENTITY, DESCRIPTIONENTITY, ISHIERARCHYENTITY } = descriptor.properties;
590
590
  const dependencies = descriptor.dependencies;
591
591
  let criteria;
592
592
  const searchOptions = {
@@ -616,7 +616,16 @@ export class SnkApplication {
616
616
  }
617
617
  }
618
618
  });
619
- return this.executePreparedSearch(mode, argument, { entity: ENTITYNAME, entityDescription: DESCRIPTIONENTITY, criteria, searchOptions });
619
+ const allowsNonAnalytic = ctxOptions === null || ctxOptions === void 0 ? void 0 : ctxOptions.allowsNonAnalytic;
620
+ const options = {
621
+ entity: ENTITYNAME,
622
+ entityDescription: DESCRIPTIONENTITY,
623
+ isHierarchyEntity: ISHIERARCHYENTITY,
624
+ criteria,
625
+ searchOptions,
626
+ allowsNonAnalytic
627
+ };
628
+ return this.executePreparedSearch(mode, argument, options);
620
629
  }
621
630
  }
622
631
  filterInvalidFields(resp, item, mdByName) {
@@ -666,13 +675,19 @@ export class SnkApplication {
666
675
  */
667
676
  async executePreparedSearch(mode, argument, options) {
668
677
  const mdByName = {};
669
- const { entity, entityDescription, criteria, searchOptions } = options;
678
+ const { entity, entityDescription, criteria, searchOptions, isHierarchyEntity, allowsNonAnalytic } = options;
670
679
  if (mode === "ADVANCED") {
671
680
  return new Promise((accept, reject) => {
672
681
  const pesquisaContent = document.createElement("snk-pesquisa");
673
682
  pesquisaContent[ElementIDUtils.DATA_ELEMENT_ID_ATTRIBUTE_NAME] = `entity_${entity}`;
683
+ pesquisaContent.entityName = entity;
674
684
  pesquisaContent.argument = argument;
675
685
  pesquisaContent.searchLoader = (text) => this.pesquisaFetcher.loadAdvancedSearch(entity, text, criteria, searchOptions);
686
+ pesquisaContent.isHierarchyEntity = isHierarchyEntity;
687
+ if (isHierarchyEntity) {
688
+ pesquisaContent.treeLoader = (text) => this.pesquisaFetcher.loadTree(entity, text, criteria, searchOptions);
689
+ pesquisaContent.allowsNonAnalytic = allowsNonAnalytic;
690
+ }
676
691
  pesquisaContent.selectItem = (option) => {
677
692
  accept(option);
678
693
  this.clearPopUpTitle();
@@ -980,8 +995,8 @@ export class SnkApplication {
980
995
  this._errorHandler = new SnkErrorHandler(this);
981
996
  this.messagesBuilder = new SnkMessageBuilder();
982
997
  ApplicationContext.setContextValue("__EZUI__UPLOAD__ADD__URL__", `${UrlUtils.getUrlBase()}/mge/upload/file`);
983
- ApplicationContext.setContextValue("__EZUI__SEARCH__OPTION__LOADER__", (searchArgument, fieldName, dataUnit) => {
984
- return this.executeSearch(searchArgument, fieldName, dataUnit);
998
+ ApplicationContext.setContextValue("__EZUI__SEARCH__OPTION__LOADER__", (searchArgument, fieldName, dataUnit, ctxOptions) => {
999
+ return this.executeSearch(searchArgument, fieldName, dataUnit, ctxOptions);
985
1000
  });
986
1001
  ApplicationContext.setContextValue("__EZUI__GRID_LICENSE__", agGridLicense);
987
1002
  this.registerPkChangeListener();
@@ -2368,7 +2383,7 @@ export class SnkApplication {
2368
2383
  },
2369
2384
  "executeSearch": {
2370
2385
  "complexType": {
2371
- "signature": "(searchArgument: ISearchArgument, fieldName: string, dataUnit: DataUnit) => Promise<Array<IOption> | IOption>",
2386
+ "signature": "(searchArgument: ISearchArgument, fieldName: string, dataUnit: DataUnit, ctxOptions?: any) => Promise<Array<IOption> | IOption>",
2372
2387
  "parameters": [{
2373
2388
  "tags": [],
2374
2389
  "text": ""
@@ -2378,6 +2393,9 @@ export class SnkApplication {
2378
2393
  }, {
2379
2394
  "tags": [],
2380
2395
  "text": ""
2396
+ }, {
2397
+ "tags": [],
2398
+ "text": ""
2381
2399
  }],
2382
2400
  "references": {
2383
2401
  "Promise": {
@@ -0,0 +1,10 @@
1
+ :host {
2
+ height: 100vh;
3
+ background: var(--background--xlight, #FFF);
4
+ overflow-x: auto;
5
+ }
6
+
7
+ ez-grid {
8
+ --ez-grid__container--shadow: none;
9
+ --ez-grid__header--shadow:none;
10
+ }
@@ -0,0 +1,190 @@
1
+ import { h, Host } from '@stencil/core';
2
+ import InMemoryLoader from '../../../lib/dataUnit/InMemoryLoader';
3
+ import { PesquisaFetcher } from '../../../lib';
4
+ export class PesquisaGrid {
5
+ constructor() {
6
+ this._pesquisaFetcher = new PesquisaFetcher();
7
+ this.metadata = undefined;
8
+ this.dataSource = [];
9
+ this.pkField = undefined;
10
+ this.descriptionField = undefined;
11
+ this.entityName = undefined;
12
+ this._inMemoryLoader = undefined;
13
+ this._dataunit = undefined;
14
+ this._gridConfig = undefined;
15
+ }
16
+ observeDataSource(newValue) {
17
+ if (!this._inMemoryLoader || !this._dataunit || !newValue)
18
+ return;
19
+ this._inMemoryLoader.records = [...newValue];
20
+ }
21
+ async componentWillLoad() {
22
+ this.initializeDataUnit();
23
+ this._gridConfig = await this._pesquisaFetcher.loadPesquisaGridConfig(this.entityName);
24
+ }
25
+ initializeDataUnit() {
26
+ var _a;
27
+ this._inMemoryLoader = new InMemoryLoader(this.metadata, (_a = this.dataSource) !== null && _a !== void 0 ? _a : []);
28
+ this._dataunit = this._inMemoryLoader.dataUnit;
29
+ this._dataunit.pageSize = 0;
30
+ }
31
+ handleDbClick(record) {
32
+ const option = {
33
+ value: record[this.pkField],
34
+ label: record[this.descriptionField],
35
+ };
36
+ this.pesquisaGridSelectItem.emit(option);
37
+ }
38
+ async handleConfigChanged({ detail }) {
39
+ var _a;
40
+ const columns = (_a = detail === null || detail === void 0 ? void 0 : detail.columns) !== null && _a !== void 0 ? _a : [];
41
+ await this._pesquisaFetcher.savePesquisaGridConfig(this.entityName, columns);
42
+ }
43
+ render() {
44
+ return (h(Host, null, h("ez-grid", { dataUnit: this._dataunit, config: this._gridConfig, canEdit: false, suppressCheckboxColumn: true, compact: true, autoFocus: false, onEzDoubleClick: ({ detail }) => this.handleDbClick(detail), onConfigChange: async (event) => this.handleConfigChanged(event) })));
45
+ }
46
+ static get is() { return "pesquisa-grid"; }
47
+ static get encapsulation() { return "scoped"; }
48
+ static get originalStyleUrls() {
49
+ return {
50
+ "$": ["pesquisa-grid.css"]
51
+ };
52
+ }
53
+ static get styleUrls() {
54
+ return {
55
+ "$": ["pesquisa-grid.css"]
56
+ };
57
+ }
58
+ static get properties() {
59
+ return {
60
+ "metadata": {
61
+ "type": "unknown",
62
+ "mutable": false,
63
+ "complexType": {
64
+ "original": "UnitMetadata",
65
+ "resolved": "UnitMetadata",
66
+ "references": {
67
+ "UnitMetadata": {
68
+ "location": "import",
69
+ "path": "@sankhyalabs/core"
70
+ }
71
+ }
72
+ },
73
+ "required": false,
74
+ "optional": false,
75
+ "docs": {
76
+ "tags": [],
77
+ "text": "Campos que representam as colunas da grade."
78
+ }
79
+ },
80
+ "dataSource": {
81
+ "type": "unknown",
82
+ "mutable": false,
83
+ "complexType": {
84
+ "original": "Record[]",
85
+ "resolved": "Record[]",
86
+ "references": {
87
+ "Record": {
88
+ "location": "import",
89
+ "path": "@sankhyalabs/core"
90
+ }
91
+ }
92
+ },
93
+ "required": false,
94
+ "optional": false,
95
+ "docs": {
96
+ "tags": [],
97
+ "text": "Registros da grade"
98
+ },
99
+ "defaultValue": "[]"
100
+ },
101
+ "pkField": {
102
+ "type": "string",
103
+ "mutable": false,
104
+ "complexType": {
105
+ "original": "string",
106
+ "resolved": "string",
107
+ "references": {}
108
+ },
109
+ "required": false,
110
+ "optional": false,
111
+ "docs": {
112
+ "tags": [],
113
+ "text": "Campo que representa a chave prim\u00E1ria do registro"
114
+ },
115
+ "attribute": "pk-field",
116
+ "reflect": false
117
+ },
118
+ "descriptionField": {
119
+ "type": "string",
120
+ "mutable": false,
121
+ "complexType": {
122
+ "original": "string",
123
+ "resolved": "string",
124
+ "references": {}
125
+ },
126
+ "required": false,
127
+ "optional": false,
128
+ "docs": {
129
+ "tags": [],
130
+ "text": "Campo que representa a descri\u00E7\u00E3o do registro"
131
+ },
132
+ "attribute": "description-field",
133
+ "reflect": false
134
+ },
135
+ "entityName": {
136
+ "type": "string",
137
+ "mutable": false,
138
+ "complexType": {
139
+ "original": "string",
140
+ "resolved": "string",
141
+ "references": {}
142
+ },
143
+ "required": false,
144
+ "optional": false,
145
+ "docs": {
146
+ "tags": [],
147
+ "text": "Nome da entidade representada na grade"
148
+ },
149
+ "attribute": "entity-name",
150
+ "reflect": false
151
+ }
152
+ };
153
+ }
154
+ static get states() {
155
+ return {
156
+ "_inMemoryLoader": {},
157
+ "_dataunit": {},
158
+ "_gridConfig": {}
159
+ };
160
+ }
161
+ static get events() {
162
+ return [{
163
+ "method": "pesquisaGridSelectItem",
164
+ "name": "pesquisaGridSelectItem",
165
+ "bubbles": true,
166
+ "cancelable": true,
167
+ "composed": true,
168
+ "docs": {
169
+ "tags": [],
170
+ "text": ""
171
+ },
172
+ "complexType": {
173
+ "original": "IOption",
174
+ "resolved": "IOption",
175
+ "references": {
176
+ "IOption": {
177
+ "location": "import",
178
+ "path": "@sankhyalabs/ezui/.diststorybook/types/components/ez-combo-box/ez-combo-box"
179
+ }
180
+ }
181
+ }
182
+ }];
183
+ }
184
+ static get watchers() {
185
+ return [{
186
+ "propName": "dataSource",
187
+ "methodName": "observeDataSource"
188
+ }];
189
+ }
190
+ }
@@ -0,0 +1,25 @@
1
+ :host {
2
+ /*@doc Define o posicionamento superior do container de botões de ação.*/
3
+ --snk-pesquisa--tree__action-container--top: var(--space--sm);
4
+ /*@doc Define o posicionamento direito do container de botões de ação.*/
5
+ --snk-pesquisa--tree__action-container--right: var(--space--small);
6
+ /*@doc Define a altura mínima do componente.*/
7
+ --snk-pesquisa--tree__min-height: var(--space--extra-large);
8
+
9
+ background: var(--background--xlight, #FFF);
10
+ position: relative;
11
+ display: inline-block;
12
+ min-height: var(--snk-pesquisa--tree__min-height);
13
+ }
14
+
15
+ :host:hover .actions-container{
16
+ display: flex;
17
+ }
18
+
19
+ .actions-container {
20
+ flex-direction: row;
21
+ position: absolute;
22
+ top: var(--snk-pesquisa--tree__action-container--top);
23
+ right: var(--snk-pesquisa--tree__action-container--right);
24
+ display: none;
25
+ }
@@ -0,0 +1,173 @@
1
+ import { h, Host } from '@stencil/core';
2
+ import { ApplicationUtils } from '@sankhyalabs/ezui/dist/collection/utils';
3
+ export class PesquisaTree {
4
+ constructor() {
5
+ this.treeLoader = undefined;
6
+ this.argument = undefined;
7
+ this.allowsNonAnalytic = false;
8
+ this.items = [];
9
+ }
10
+ async applyFilter() {
11
+ await this._tree.applyFilter(this.argument);
12
+ }
13
+ async loadTree() {
14
+ if (!this.treeLoader || typeof this.treeLoader !== 'function')
15
+ return;
16
+ const response = await this.treeLoader((this.argument || '').trim());
17
+ this.items = [...response];
18
+ }
19
+ expandOrCloseAllItems(items, expanded) {
20
+ return items.map(item => (Object.assign(Object.assign({}, item), { expanded, children: item.children ? this.expandOrCloseAllItems(item.children, expanded) : undefined })));
21
+ }
22
+ handleExpandAll() {
23
+ this.items = [...this.expandOrCloseAllItems(this.items, true)];
24
+ }
25
+ handleCloseAll() {
26
+ this.items = [...this.expandOrCloseAllItems(this.items, false)];
27
+ }
28
+ handleDbClick(item) {
29
+ var _a;
30
+ if (!this.allowsNonAnalytic && !((_a = item['props']) === null || _a === void 0 ? void 0 : _a['analitico'])) {
31
+ const title = 'Erro';
32
+ const message = `Há pelo menos um registro inválido selecionado. Você deve selecionar itens do tipo 'analítico'.`;
33
+ ApplicationUtils.error(title, message);
34
+ return;
35
+ }
36
+ const option = {
37
+ value: item.id,
38
+ label: item.label,
39
+ };
40
+ this.pesquisaTreeSelectItem.emit(option);
41
+ }
42
+ async componentWillLoad() {
43
+ await this.loadTree();
44
+ }
45
+ render() {
46
+ return (h(Host, null, h("div", { class: 'actions-container' }, h("ez-button", { size: 'small', mode: 'icon', class: 'ez-margin-right--small', iconName: 'show-list', title: "Expandir", onClick: () => this.handleExpandAll() }), h("ez-button", { size: 'small', mode: 'icon', iconName: 'hide-list', title: "Recolher", onClick: () => this.handleCloseAll() })), h("ez-tree", { ref: (element) => this._tree = element, onEzDbClickItem: ({ detail }) => this.handleDbClick(detail), items: this.items })));
47
+ }
48
+ static get is() { return "pesquisa-tree"; }
49
+ static get encapsulation() { return "scoped"; }
50
+ static get originalStyleUrls() {
51
+ return {
52
+ "$": ["pesquisa-tree.css"]
53
+ };
54
+ }
55
+ static get styleUrls() {
56
+ return {
57
+ "$": ["pesquisa-tree.css"]
58
+ };
59
+ }
60
+ static get properties() {
61
+ return {
62
+ "treeLoader": {
63
+ "type": "unknown",
64
+ "mutable": false,
65
+ "complexType": {
66
+ "original": "(text: string) => Promise<Array<ITreeItem>>",
67
+ "resolved": "(text: string) => Promise<ITreeItem[]>",
68
+ "references": {
69
+ "Promise": {
70
+ "location": "global"
71
+ },
72
+ "Array": {
73
+ "location": "global"
74
+ },
75
+ "ITreeItem": {
76
+ "location": "import",
77
+ "path": "@sankhyalabs/ezui/.diststorybook/types/components/ez-tree/interfaces/ITreeItem"
78
+ }
79
+ }
80
+ },
81
+ "required": false,
82
+ "optional": true,
83
+ "docs": {
84
+ "tags": [],
85
+ "text": "Fun\u00E7\u00E3o respons\u00E1vel por carregar a \u00E1rvore hier\u00E1rquica do componente"
86
+ }
87
+ },
88
+ "argument": {
89
+ "type": "string",
90
+ "mutable": true,
91
+ "complexType": {
92
+ "original": "string",
93
+ "resolved": "string",
94
+ "references": {}
95
+ },
96
+ "required": false,
97
+ "optional": false,
98
+ "docs": {
99
+ "tags": [],
100
+ "text": "Argumentos que ser\u00E3o usados ao chamar a fun\u00E7\u00E3o treeLoader."
101
+ },
102
+ "attribute": "argument",
103
+ "reflect": false
104
+ },
105
+ "allowsNonAnalytic": {
106
+ "type": "boolean",
107
+ "mutable": false,
108
+ "complexType": {
109
+ "original": "boolean",
110
+ "resolved": "boolean",
111
+ "references": {}
112
+ },
113
+ "required": false,
114
+ "optional": false,
115
+ "docs": {
116
+ "tags": [],
117
+ "text": "Define se permite sele\u00E7\u00E3o de items n\u00E3o anal\u00EDticos"
118
+ },
119
+ "attribute": "allows-non-analytic",
120
+ "reflect": false,
121
+ "defaultValue": "false"
122
+ }
123
+ };
124
+ }
125
+ static get states() {
126
+ return {
127
+ "items": {}
128
+ };
129
+ }
130
+ static get events() {
131
+ return [{
132
+ "method": "pesquisaTreeSelectItem",
133
+ "name": "pesquisaTreeSelectItem",
134
+ "bubbles": true,
135
+ "cancelable": true,
136
+ "composed": true,
137
+ "docs": {
138
+ "tags": [],
139
+ "text": ""
140
+ },
141
+ "complexType": {
142
+ "original": "IOption",
143
+ "resolved": "IOption",
144
+ "references": {
145
+ "IOption": {
146
+ "location": "import",
147
+ "path": "@sankhyalabs/ezui/.diststorybook/types/components/ez-combo-box/ez-combo-box"
148
+ }
149
+ }
150
+ }
151
+ }];
152
+ }
153
+ static get methods() {
154
+ return {
155
+ "applyFilter": {
156
+ "complexType": {
157
+ "signature": "() => Promise<void>",
158
+ "parameters": [],
159
+ "references": {
160
+ "Promise": {
161
+ "location": "global"
162
+ }
163
+ },
164
+ "return": "Promise<void>"
165
+ },
166
+ "docs": {
167
+ "text": "",
168
+ "tags": []
169
+ }
170
+ }
171
+ };
172
+ }
173
+ }
@@ -0,0 +1,89 @@
1
+ import { DataType, UserInterface } from '@sankhyalabs/core';
2
+ export function buildGridMetadata(rawValue) {
3
+ const fieldsMetadata = buildFieldsMetadata(rawValue.fieldsMetadata);
4
+ const duName = rawValue.descriptionField;
5
+ const duLabel = rawValue.entityDescription;
6
+ return {
7
+ label: duLabel,
8
+ name: duName,
9
+ fields: fieldsMetadata,
10
+ };
11
+ }
12
+ function buildFieldsMetadata(rawMetadata) {
13
+ if (!rawMetadata || !rawMetadata.length)
14
+ return [];
15
+ return rawMetadata.map(field => {
16
+ return {
17
+ name: field['fieldName'],
18
+ label: field['description'],
19
+ dataType: buildDataType(field['type']),
20
+ userInterface: buildUserInterface(field),
21
+ properties: bildProperties(field)
22
+ };
23
+ });
24
+ }
25
+ function bildProperties(field) {
26
+ const properties = {};
27
+ properties['options'] = buildOptions(field);
28
+ properties['mask'] = buildMask(field);
29
+ return properties;
30
+ }
31
+ function buildMask(field) {
32
+ const fieldUI = field['uiType'];
33
+ return fieldUI ? String(fieldUI).toLowerCase() : undefined;
34
+ }
35
+ function buildOptions(field) {
36
+ const optionsJson = field.options;
37
+ if (!optionsJson)
38
+ return undefined;
39
+ const options = [];
40
+ Object.keys(optionsJson).forEach(key => {
41
+ options.push({
42
+ label: key,
43
+ value: optionsJson[key]
44
+ });
45
+ });
46
+ return options;
47
+ }
48
+ function buildUserInterface(field) {
49
+ const options = field.options;
50
+ if (options && Object.keys(options).length > 0)
51
+ return UserInterface.OPTIONSELECTOR;
52
+ if (field['type'] === 'D')
53
+ return UserInterface.DATE;
54
+ if (field['type'] === 'H')
55
+ return UserInterface.DATETIME;
56
+ if (field['type'] === 'T')
57
+ return UserInterface.TIME;
58
+ return undefined;
59
+ }
60
+ function buildDataType(rawType) {
61
+ switch (rawType) {
62
+ case 'F':
63
+ return DataType.NUMBER;
64
+ case 'D':
65
+ case 'H':
66
+ return DataType.DATE;
67
+ case 'B':
68
+ return DataType.OBJECT;
69
+ default:
70
+ return DataType.TEXT;
71
+ }
72
+ }
73
+ export function parseLegacyTree(legacy) {
74
+ var _a, _b;
75
+ const structure = (_b = (_a = legacy.arvore) === null || _a === void 0 ? void 0 : _a.no) !== null && _b !== void 0 ? _b : [];
76
+ return structure.map(parseLegacyItem);
77
+ }
78
+ function parseLegacyItem(node) {
79
+ return Object.assign({ id: node.codigo, label: `${node.caminho} - ${node.descricao}`, bold: node.analitico === "N", props: { analitico: node.analitico === 'S' } }, (node.no && { children: node.no.map(parseLegacyItem) }));
80
+ }
81
+ export function parseGridConfig(rawConfig) {
82
+ var _a, _b;
83
+ const columns = [];
84
+ const fields = (_b = (_a = rawConfig === null || rawConfig === void 0 ? void 0 : rawConfig.gridConfig) === null || _a === void 0 ? void 0 : _a.field) !== null && _b !== void 0 ? _b : {};
85
+ Object.keys(fields).forEach(key => columns.push(fields[key]));
86
+ if (!columns.length)
87
+ return undefined;
88
+ return { columns };
89
+ }
@@ -10,6 +10,10 @@
10
10
  /* records */
11
11
  /*@doc Define a cor da fonte do indicador de registros do componente.*/
12
12
  --snk-pesquisa__records--color: var(--text--primary, #626e82);
13
+ /* records */
14
+ /*@doc Define a cor da fonte do indicador de registros do componente.*/
15
+ --snk-pesquisa__records--color-secondary: var(--text--secondary, #626e82);
16
+ /* records */
13
17
  /*@doc Define o espaçamento vertical do indicador de registros do componente.*/
14
18
  --snk-pesquisa__records--padding-vertical: var(--space--medium, 12px);
15
19
 
@@ -69,9 +73,9 @@
69
73
  .snk-pesquisa__content {
70
74
  display: flex;
71
75
  flex-direction: column;
72
- overflow-y: auto;
73
- scrollbar-width: thin;
76
+ overflow-y: hidden;
74
77
 
78
+ scrollbar-width: thin;
75
79
  /*public*/
76
80
  scrollbar-color: var(--snk-pesquisa__scrollbar--color-clicked) var(--snk-pesquisa__scrollbar--color-background);
77
81
  padding-right: var(--snk-pesquisa__content--padding-right);
@@ -109,16 +113,31 @@
109
113
  background-color: var(--snk-pesquisa__scrollbar--color-clicked);
110
114
  }
111
115
 
112
- .snk-pesquisa__records {
113
- /*public*/
116
+ .snk-pesquisa__records-label{
117
+ display: flex;
118
+ flex-direction: row;
119
+ justify-content: space-between;
120
+
114
121
  font-family: var(--snk-pesquisa--font-family);
115
122
  font-weight: var(--snk-pesquisa--font-weight);
116
123
  font-size: var(--snk-pesquisa--font-size);
117
- color: var(--snk-pesquisa__records--color);
118
124
  padding-bottom: var(--snk-pesquisa__records--padding-vertical);
119
125
  padding-top: var(--snk-pesquisa__records--padding-vertical);
120
126
  }
121
127
 
128
+ .snk-pesquisa__records {
129
+ color: var(--snk-pesquisa__records--color);
130
+ }
131
+
132
+ .snk-pesquisa__records-limit {
133
+ color: var(--snk-pesquisa__records--color-secondary);
134
+ }
135
+
136
+ .snk-pesquisa__records-limit.hidden,
137
+ .snk-pesquisa__records.hidden {
138
+ visibility: hidden;
139
+ }
140
+
122
141
  .snk-pesquisa__btn {
123
142
  outline: none;
124
143
  border: none;