@sankhyalabs/sankhyablocks 8.16.0-dev.64 → 8.16.0-dev.66
Sign up to get free protection for your applications and to get access to all the features.
- package/dist/cjs/{ContinuousInsertUtils-414b772c.js → ContinuousInsertUtils-a6139f3d.js} +2 -2
- package/dist/cjs/{dataunit-fetcher-228016f4.js → dataunit-fetcher-0121621c.js} +1 -1
- package/dist/cjs/index-f9e81701.js +4 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{pesquisa-fetcher-2ec4811b.js → pesquisa-fetcher-a85d6935.js} +175 -0
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +127 -0
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_5.cjs.entry.js +6 -6
- package/dist/cjs/snk-application.cjs.entry.js +23 -8
- package/dist/cjs/snk-attach.cjs.entry.js +2 -2
- package/dist/cjs/snk-crud.cjs.entry.js +2 -2
- package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
- package/dist/cjs/{snk-data-unit-3d9b6ed4.js → snk-data-unit-c699179d.js} +1 -1
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +3 -3
- package/dist/cjs/snk-grid.cjs.entry.js +3 -3
- package/dist/cjs/{snk-guides-viewer-421555af.js → snk-guides-viewer-575596a2.js} +2 -2
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -3
- package/dist/cjs/snk-pesquisa.cjs.entry.js +105 -31
- package/dist/cjs/snk-simple-crud.cjs.entry.js +3 -3
- package/dist/collection/collection-manifest.json +2 -0
- package/dist/collection/components/snk-actions-button/actions/index.js +4 -4
- package/dist/collection/components/snk-application/snk-application.js +25 -7
- package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.css +10 -0
- package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.js +190 -0
- package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.css +25 -0
- package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.js +173 -0
- package/dist/collection/components/snk-pesquisa/pesquisaHelper.js +89 -0
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +24 -5
- package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +168 -32
- package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +1 -1
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +89 -3
- package/dist/components/ContinuousInsertUtils.js +1 -2
- package/dist/components/ISave.js +346 -1
- package/dist/components/dataunit-fetcher.js +1 -1
- package/dist/components/index.d.ts +2 -0
- package/dist/components/index.js +2 -0
- package/dist/components/pesquisa-grid.d.ts +11 -0
- package/dist/components/pesquisa-grid.js +6 -0
- package/dist/components/pesquisa-grid2.js +86 -0
- package/dist/components/pesquisa-tree.d.ts +11 -0
- package/dist/components/pesquisa-tree.js +6 -0
- package/dist/components/pesquisa-tree2.js +76 -0
- package/dist/components/snk-actions-button2.js +4 -5
- package/dist/components/snk-application2.js +35 -8
- package/dist/components/snk-attach2.js +0 -1
- package/dist/components/snk-crud.js +0 -1
- package/dist/components/snk-data-exporter2.js +1 -2
- package/dist/components/snk-detail-view2.js +0 -1
- package/dist/components/snk-grid2.js +0 -1
- package/dist/components/snk-pesquisa2.js +118 -33
- package/dist/components/snk-simple-crud2.js +1 -2
- package/dist/components/snk-simple-form-config2.js +1 -2
- package/dist/components/teste-pesquisa.js +13 -1
- package/dist/esm/{ContinuousInsertUtils-bab45060.js → ContinuousInsertUtils-15b5f1da.js} +2 -2
- package/dist/esm/{dataunit-fetcher-56cb648b.js → dataunit-fetcher-481e159d.js} +1 -1
- package/dist/esm/index-a7d3d3f1.js +4 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{pesquisa-fetcher-24e5bba0.js → pesquisa-fetcher-c437c9b1.js} +176 -2
- package/dist/esm/pesquisa-grid_2.entry.js +122 -0
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_5.entry.js +6 -6
- package/dist/esm/snk-application.entry.js +23 -8
- package/dist/esm/snk-attach.entry.js +2 -2
- package/dist/esm/snk-crud.entry.js +2 -2
- package/dist/esm/snk-data-exporter.entry.js +3 -3
- package/dist/esm/{snk-data-unit-9fa7d2b9.js → snk-data-unit-d4ba54d7.js} +1 -1
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +3 -3
- package/dist/esm/snk-grid.entry.js +3 -3
- package/dist/esm/{snk-guides-viewer-b740a1fe.js → snk-guides-viewer-3043422d.js} +2 -2
- package/dist/esm/snk-guides-viewer.entry.js +3 -3
- package/dist/esm/snk-pesquisa.entry.js +105 -31
- package/dist/esm/snk-simple-crud.entry.js +3 -3
- package/dist/sankhyablocks/{p-c629c07a.entry.js → p-08242e3f.entry.js} +1 -1
- package/dist/sankhyablocks/{p-342eeb3b.js → p-0f3b2a32.js} +1 -1
- package/dist/sankhyablocks/{p-72a451c8.js → p-229c3615.js} +1 -1
- package/dist/sankhyablocks/{p-b619ee23.js → p-36598f95.js} +1 -1
- package/dist/sankhyablocks/p-3e6990a6.entry.js +1 -0
- package/dist/sankhyablocks/{p-098f8cfa.entry.js → p-4895f6e4.entry.js} +1 -1
- package/dist/sankhyablocks/p-4be4cdac.js +6 -0
- package/dist/sankhyablocks/{p-47d24ac8.js → p-58fd3017.js} +1 -1
- package/dist/sankhyablocks/p-70cb4e36.entry.js +11 -0
- package/dist/sankhyablocks/{p-50306605.entry.js → p-7d09f66c.entry.js} +1 -1
- package/dist/sankhyablocks/{p-53ae0296.entry.js → p-a33e803a.entry.js} +1 -1
- package/dist/sankhyablocks/{p-89da2953.entry.js → p-b299dc14.entry.js} +1 -1
- package/dist/sankhyablocks/p-badbd2ca.entry.js +1 -0
- package/dist/sankhyablocks/{p-9a9681d1.entry.js → p-c9bd54e6.entry.js} +1 -1
- package/dist/sankhyablocks/{p-0d2a2e9e.entry.js → p-e2bd42c0.entry.js} +1 -1
- package/dist/sankhyablocks/p-e8512d4b.entry.js +1 -0
- package/dist/sankhyablocks/{p-2b7432e8.entry.js → p-f71d043b.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +1 -1
- package/dist/types/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.d.ts +38 -0
- package/dist/types/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.d.ts +28 -0
- package/dist/types/components/snk-pesquisa/pesquisaHelper.d.ts +19 -0
- package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +35 -1
- package/dist/types/components.d.ts +148 -13
- package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +10 -1
- package/package.json +1 -1
- package/react/components.d.ts +2 -0
- package/react/components.js +2 -0
- package/react/components.js.map +1 -1
- package/dist/components/pesquisa-fetcher.js +0 -172
- package/dist/sankhyablocks/p-442367ab.entry.js +0 -11
- package/dist/sankhyablocks/p-64ff0fb6.entry.js +0 -1
- package/dist/sankhyablocks/p-d1791da2.entry.js +0 -1
- package/dist/sankhyablocks/p-e6683406.js +0 -6
@@ -1,5 +1,8 @@
|
|
1
|
-
import { ObjectUtils, StringUtils
|
1
|
+
import { ElementIDUtils, ObjectUtils, StringUtils } from '@sankhyalabs/core';
|
2
2
|
import { h, Host } from '@stencil/core';
|
3
|
+
import { buildGridMetadata } from './pesquisaHelper';
|
4
|
+
import { PesquisaFetcher } from '../../lib';
|
5
|
+
import { EzScrollDirection } from '@sankhyalabs/ezui/dist/collection/components/ez-scroller/EzScrollDirection';
|
3
6
|
export class SnkPesquisa {
|
4
7
|
constructor() {
|
5
8
|
this._mdByName = {};
|
@@ -11,11 +14,18 @@ export class SnkPesquisa {
|
|
11
14
|
this._changeDeboucingTimeout = null;
|
12
15
|
this._limitCharsToSearch = 3;
|
13
16
|
this._deboucingTime = 450;
|
17
|
+
this._gridDataSource = [];
|
18
|
+
this.pesquisaFetcher = new PesquisaFetcher();
|
14
19
|
this._itemList = undefined;
|
15
20
|
this._startLoading = false;
|
21
|
+
this._presentationMode = "list";
|
16
22
|
this.searchLoader = undefined;
|
23
|
+
this.treeLoader = undefined;
|
17
24
|
this.selectItem = undefined;
|
25
|
+
this.entityName = undefined;
|
18
26
|
this.argument = undefined;
|
27
|
+
this.isHierarchyEntity = false;
|
28
|
+
this.allowsNonAnalytic = false;
|
19
29
|
}
|
20
30
|
observeArgument() {
|
21
31
|
if (this._textInput) {
|
@@ -53,36 +63,42 @@ export class SnkPesquisa {
|
|
53
63
|
this._startLoading = true;
|
54
64
|
this.searchLoader(argument)
|
55
65
|
.then((resp) => {
|
66
|
+
if (!resp)
|
67
|
+
return;
|
68
|
+
this.processSearchResponse(resp);
|
69
|
+
}).finally(() => {
|
56
70
|
this._startLoading = false;
|
57
|
-
if (resp) {
|
58
|
-
resp = ObjectUtils.stringToObject(resp.json.$);
|
59
|
-
let descriptionField = resp.descriptionField;
|
60
|
-
let pkField = resp.pkField;
|
61
|
-
if (pkField) {
|
62
|
-
let newItemList = [];
|
63
|
-
resp.data.forEach((item) => {
|
64
|
-
var _a;
|
65
|
-
let fieldsMetadata = this.filterFieldsMetadata(resp, item);
|
66
|
-
let fields = this.buildFirstFields(item['__matchFields'], fieldsMetadata);
|
67
|
-
let exibitionItem = {
|
68
|
-
key: this.highlightValue(item['__matchFields'], (_a = item[pkField]) === null || _a === void 0 ? void 0 : _a.toString(), fields, true),
|
69
|
-
title: descriptionField ? this.highlightValue(item['__matchFields'], item[descriptionField], fields, true) : "",
|
70
|
-
details: this.buildDetails(fields, item)
|
71
|
-
};
|
72
|
-
newItemList.push(exibitionItem);
|
73
|
-
});
|
74
|
-
this._itemList = newItemList;
|
75
|
-
}
|
76
|
-
}
|
77
|
-
}).catch((error) => {
|
78
|
-
this._startLoading = false;
|
79
|
-
this._itemList = [];
|
80
|
-
console.warn(error);
|
81
71
|
});
|
82
72
|
}
|
83
73
|
}
|
74
|
+
processSearchResponse(resp) {
|
75
|
+
resp = ObjectUtils.stringToObject(resp.json.$);
|
76
|
+
let descriptionField = resp.descriptionField;
|
77
|
+
let pkField = resp.pkField;
|
78
|
+
if (!pkField)
|
79
|
+
return;
|
80
|
+
this._gridMetadata = buildGridMetadata(resp);
|
81
|
+
this._gridDataSource = [...resp.data];
|
82
|
+
this._pkField = pkField;
|
83
|
+
this._descriptionField = descriptionField;
|
84
|
+
this._itemList = this.buildCardItemList(resp, pkField, descriptionField);
|
85
|
+
}
|
86
|
+
buildCardItemList(resp, pkField, descriptionField) {
|
87
|
+
var _a;
|
88
|
+
let newItemList = (_a = resp.data) === null || _a === void 0 ? void 0 : _a.map((item) => {
|
89
|
+
var _a;
|
90
|
+
let fieldsMetadata = this.filterFieldsMetadata(resp, item);
|
91
|
+
let fields = this.buildFirstFields(item['__matchFields'], fieldsMetadata);
|
92
|
+
return {
|
93
|
+
key: this.highlightValue(item['__matchFields'], (_a = item[pkField]) === null || _a === void 0 ? void 0 : _a.toString(), fields, true),
|
94
|
+
title: descriptionField ? this.highlightValue(item['__matchFields'], item[descriptionField], fields, true) : '',
|
95
|
+
details: this.buildDetails(fields, item),
|
96
|
+
};
|
97
|
+
});
|
98
|
+
return newItemList;
|
99
|
+
}
|
84
100
|
filterFieldsMetadata(resp, item) {
|
85
|
-
|
101
|
+
return resp.fieldsMetadata.filter((field) => {
|
86
102
|
let accept = !StringUtils.isEmpty(item[field.fieldName]) &&
|
87
103
|
field.visible !== false &&
|
88
104
|
field.type !== 'B' &&
|
@@ -99,7 +115,6 @@ export class SnkPesquisa {
|
|
99
115
|
}
|
100
116
|
return accept;
|
101
117
|
});
|
102
|
-
return fieldsMetadata;
|
103
118
|
}
|
104
119
|
removeAtIndex(array, index) {
|
105
120
|
if (index >= 0 && index < array.length) {
|
@@ -257,6 +272,7 @@ export class SnkPesquisa {
|
|
257
272
|
this.selectItem(option);
|
258
273
|
}
|
259
274
|
onChangeValue(event) {
|
275
|
+
var _a;
|
260
276
|
this.clearDeboucingTimeout();
|
261
277
|
if (this._startLoading) {
|
262
278
|
this._changeDeboucingTimeout = setTimeout(() => {
|
@@ -265,6 +281,10 @@ export class SnkPesquisa {
|
|
265
281
|
return;
|
266
282
|
}
|
267
283
|
this.argument = (event.detail || "").trim();
|
284
|
+
if (this.isHierarchyEntity && this._presentationMode === 'list') {
|
285
|
+
(_a = this._pesquisaTree) === null || _a === void 0 ? void 0 : _a.applyFilter();
|
286
|
+
return;
|
287
|
+
}
|
268
288
|
const argumentNumber = this.getArgumentNumber();
|
269
289
|
if (this.argument && (!isNaN(argumentNumber) || this.argument.length >= this._limitCharsToSearch)) {
|
270
290
|
this._changeDeboucingTimeout = setTimeout(() => {
|
@@ -295,16 +315,59 @@ export class SnkPesquisa {
|
|
295
315
|
: 'Nenhum registro encontrado'
|
296
316
|
: 'Os resultados de sua pesquisa aparecerão aqui...';
|
297
317
|
}
|
298
|
-
|
318
|
+
async componentWillLoad() {
|
319
|
+
const mode = await this.pesquisaFetcher.loadPresentationConfig(this.entityName);
|
320
|
+
this._presentationMode = mode === 'list' ? 'list' : 'table';
|
321
|
+
}
|
322
|
+
async componentDidLoad() {
|
299
323
|
ElementIDUtils.addIDInfo(this._element);
|
300
324
|
}
|
325
|
+
async onClickList() {
|
326
|
+
this._presentationMode = this._presentationMode === 'list' ? 'table' : 'list';
|
327
|
+
await this.pesquisaFetcher.savePresentationConfig(this.entityName, this._presentationMode);
|
328
|
+
}
|
329
|
+
enableListButton() {
|
330
|
+
var _a;
|
331
|
+
return ((_a = this._itemList) === null || _a === void 0 ? void 0 : _a.length) > 0;
|
332
|
+
}
|
333
|
+
//Os limites de exibição são diferentes para lista e grade
|
334
|
+
hideLimitMessage() {
|
335
|
+
if (!this._itemList)
|
336
|
+
return true;
|
337
|
+
if (this._presentationMode === "list") {
|
338
|
+
if (this.isHierarchyEntity)
|
339
|
+
return true;
|
340
|
+
return this._itemList.length <= 100;
|
341
|
+
}
|
342
|
+
return this._itemList.length <= 150;
|
343
|
+
}
|
344
|
+
hideRecordsMessage() {
|
345
|
+
return (this._presentationMode === "list" && this.isHierarchyEntity);
|
346
|
+
}
|
347
|
+
renderContent() {
|
348
|
+
if (!this._itemList)
|
349
|
+
return;
|
350
|
+
if (this._presentationMode === 'list') {
|
351
|
+
return this.isHierarchyEntity ? this.renderTree() : this.renderCards();
|
352
|
+
}
|
353
|
+
return this.renderPesquisaGrid();
|
354
|
+
}
|
355
|
+
renderTree() {
|
356
|
+
return h("ez-scroller", { direction: EzScrollDirection.VERTICAL }, h("pesquisa-tree", { ref: (element) => this._pesquisaTree = element, argument: this.argument, treeLoader: this.treeLoader, allowsNonAnalytic: this.allowsNonAnalytic, onPesquisaTreeSelectItem: ({ detail }) => this.selectItem(detail) }));
|
357
|
+
}
|
358
|
+
renderCards() {
|
359
|
+
return (h("ez-scroller", { direction: EzScrollDirection.VERTICAL }, h("div", { class: "snk-pesquisa__cards-container" }, this._itemList.map((item) => {
|
360
|
+
return (h("ez-card-item", { onEzClick: (event) => this.createOption(event.detail), item: item }));
|
361
|
+
}))));
|
362
|
+
}
|
363
|
+
renderPesquisaGrid() {
|
364
|
+
return h("pesquisa-grid", { metadata: this._gridMetadata, dataSource: this._gridDataSource, pkField: this._pkField, descriptionField: this._descriptionField, entityName: this.entityName, onPesquisaGridSelectItem: ({ detail }) => this.selectItem(detail) });
|
365
|
+
}
|
301
366
|
render() {
|
302
367
|
var _a;
|
303
368
|
return (h(Host, null, h("div", { class: "snk-pesquisa" }, h("div", { class: "snk-pesquisa__input" }, h("ez-text-input", { label: "Buscar", class: "ez-margin-right--medium", canShowError: false, ref: (ref) => this._textInput = ref, onEzChange: (event) => this.onChangeValue(event), value: this.argument, "data-element-id": "searchInput" }, h("ez-icon", { slot: "leftIcon", iconName: "search" }), this.argument && ((_a = this._textInput) === null || _a === void 0 ? void 0 : _a.value)
|
304
369
|
? h("button", { slot: "rightIcon", class: "snk-pesquisa__btn", onClick: () => this.clearSearch() }, h("ez-icon", { iconName: "close" }))
|
305
|
-
: undefined), h("ez-button", { class: "ez-button--primary", label: "Pesquisar", onClick: () => this.onClickSearch() })
|
306
|
-
return (h("ez-card-item", { onEzClick: (event) => this.createOption(event.detail), item: item }));
|
307
|
-
})))));
|
370
|
+
: undefined), h("ez-button", { class: "ez-button--primary", label: "Pesquisar", onClick: () => this.onClickSearch() }), h("ez-button", { class: "ez-margin-left--medium", mode: "icon", iconName: this._presentationMode === 'list' ? 'table' : 'list', title: this._presentationMode === 'list' ? 'Modo grade' : 'Modo lista', onClick: async () => await this.onClickList(), enabled: this.enableListButton() })), h("div", { class: "snk-pesquisa__records-label" }, h("label", { class: `snk-pesquisa__records ${this.hideRecordsMessage() ? "hidden" : ""}` }, this.getMessageView()), h("label", { class: `snk-pesquisa__records-limit ${this.hideLimitMessage() ? "hidden" : ""}` }, "Essa pesquisa foi limitada, existem mais resultados.")), h("div", { class: "snk-pesquisa__content" }, this.renderContent()))));
|
308
371
|
}
|
309
372
|
static get is() { return "snk-pesquisa"; }
|
310
373
|
static get encapsulation() { return "scoped"; }
|
@@ -339,6 +402,25 @@ export class SnkPesquisa {
|
|
339
402
|
"text": "Fun\u00E7\u00E3o respons\u00E1vel em carregar os itens do componente snk-pesquisa."
|
340
403
|
}
|
341
404
|
},
|
405
|
+
"treeLoader": {
|
406
|
+
"type": "unknown",
|
407
|
+
"mutable": false,
|
408
|
+
"complexType": {
|
409
|
+
"original": "(text: string) => Promise<any>",
|
410
|
+
"resolved": "(text: string) => Promise<any>",
|
411
|
+
"references": {
|
412
|
+
"Promise": {
|
413
|
+
"location": "global"
|
414
|
+
}
|
415
|
+
}
|
416
|
+
},
|
417
|
+
"required": false,
|
418
|
+
"optional": true,
|
419
|
+
"docs": {
|
420
|
+
"tags": [],
|
421
|
+
"text": "Fun\u00E7\u00E3o respons\u00E1vel por carregar a \u00E1rvore hier\u00E1rquica do componente"
|
422
|
+
}
|
423
|
+
},
|
342
424
|
"selectItem": {
|
343
425
|
"type": "unknown",
|
344
426
|
"mutable": false,
|
@@ -359,6 +441,23 @@ export class SnkPesquisa {
|
|
359
441
|
"text": "Fun\u00E7\u00E3o disparada ao selecionar um item."
|
360
442
|
}
|
361
443
|
},
|
444
|
+
"entityName": {
|
445
|
+
"type": "string",
|
446
|
+
"mutable": false,
|
447
|
+
"complexType": {
|
448
|
+
"original": "string",
|
449
|
+
"resolved": "string",
|
450
|
+
"references": {}
|
451
|
+
},
|
452
|
+
"required": false,
|
453
|
+
"optional": false,
|
454
|
+
"docs": {
|
455
|
+
"tags": [],
|
456
|
+
"text": "Nome da entidade onde a pesquisa \u00E9 aplicada."
|
457
|
+
},
|
458
|
+
"attribute": "entity-name",
|
459
|
+
"reflect": false
|
460
|
+
},
|
362
461
|
"argument": {
|
363
462
|
"type": "string",
|
364
463
|
"mutable": true,
|
@@ -375,13 +474,50 @@ export class SnkPesquisa {
|
|
375
474
|
},
|
376
475
|
"attribute": "argument",
|
377
476
|
"reflect": false
|
477
|
+
},
|
478
|
+
"isHierarchyEntity": {
|
479
|
+
"type": "boolean",
|
480
|
+
"mutable": false,
|
481
|
+
"complexType": {
|
482
|
+
"original": "boolean",
|
483
|
+
"resolved": "boolean",
|
484
|
+
"references": {}
|
485
|
+
},
|
486
|
+
"required": false,
|
487
|
+
"optional": false,
|
488
|
+
"docs": {
|
489
|
+
"tags": [],
|
490
|
+
"text": "Define se a popup de pesquisa possuir\u00E1 ou n\u00E3o modo Hierarquico."
|
491
|
+
},
|
492
|
+
"attribute": "is-hierarchy-entity",
|
493
|
+
"reflect": false,
|
494
|
+
"defaultValue": "false"
|
495
|
+
},
|
496
|
+
"allowsNonAnalytic": {
|
497
|
+
"type": "boolean",
|
498
|
+
"mutable": false,
|
499
|
+
"complexType": {
|
500
|
+
"original": "boolean",
|
501
|
+
"resolved": "boolean",
|
502
|
+
"references": {}
|
503
|
+
},
|
504
|
+
"required": false,
|
505
|
+
"optional": false,
|
506
|
+
"docs": {
|
507
|
+
"tags": [],
|
508
|
+
"text": "Define se permite sele\u00E7\u00E3o de items n\u00E3o anal\u00EDticos"
|
509
|
+
},
|
510
|
+
"attribute": "allows-non-analytic",
|
511
|
+
"reflect": false,
|
512
|
+
"defaultValue": "false"
|
378
513
|
}
|
379
514
|
};
|
380
515
|
}
|
381
516
|
static get states() {
|
382
517
|
return {
|
383
518
|
"_itemList": {},
|
384
|
-
"_startLoading": {}
|
519
|
+
"_startLoading": {},
|
520
|
+
"_presentationMode": {}
|
385
521
|
};
|
386
522
|
}
|
387
523
|
static get elementRef() { return "_element"; }
|
@@ -23,7 +23,7 @@ export function buildLoadDataResponse(recordsIn, dataUnit, request) {
|
|
23
23
|
};
|
24
24
|
return Promise.resolve({
|
25
25
|
records: getPagesByRecords(records, offset, limit),
|
26
|
-
paginationInfo: buildPaginationInfo(paginationInfoBuilderParams),
|
26
|
+
paginationInfo: dataUnit.pageSize ? buildPaginationInfo(paginationInfoBuilderParams) : undefined,
|
27
27
|
});
|
28
28
|
}
|
29
29
|
export function applySorting(records, dataUnit, sorting) {
|
@@ -1,6 +1,7 @@
|
|
1
|
-
import {
|
2
|
-
import {
|
3
|
-
import {
|
1
|
+
import { parseGridConfig, parseLegacyTree } from '../../../../components/snk-pesquisa/pesquisaHelper';
|
2
|
+
import { ApplicationContext, DataType, ErrorException } from '@sankhyalabs/core';
|
3
|
+
import { gql } from 'graphql-request';
|
4
|
+
import { DataFetcher } from '../DataFetcher';
|
4
5
|
export class PesquisaFetcher {
|
5
6
|
constructor() {
|
6
7
|
this._defaultPageSize = 100;
|
@@ -150,6 +151,91 @@ export class PesquisaFetcher {
|
|
150
151
|
return;
|
151
152
|
return listener[listenerType]({ argument, criteria, searchOptions });
|
152
153
|
}
|
154
|
+
async loadPresentationConfig(entityName) {
|
155
|
+
var _a, _b;
|
156
|
+
let payload = buildLoadConfig(entityName);
|
157
|
+
const response = await DataFetcher.get().callServiceBroker("SystemUtilsSP.getConf", JSON.stringify(payload));
|
158
|
+
return (_b = (_a = response === null || response === void 0 ? void 0 : response.config) === null || _a === void 0 ? void 0 : _a.lastUsedMode) !== null && _b !== void 0 ? _b : 'list';
|
159
|
+
}
|
160
|
+
async savePresentationConfig(entityName, lastUsedMode) {
|
161
|
+
let payload = buildSaveConfig(entityName, lastUsedMode);
|
162
|
+
await DataFetcher.get().callServiceBroker("SystemUtilsSP.saveConf", JSON.stringify(payload));
|
163
|
+
}
|
164
|
+
async loadPesquisaGridConfig(entityName) {
|
165
|
+
const payload = buildLoadGridConfigPayload(entityName);
|
166
|
+
const response = await DataFetcher.get().callServiceBroker("GridConfig.getGridConfigFromJson", JSON.stringify(payload));
|
167
|
+
return parseGridConfig(response);
|
168
|
+
}
|
169
|
+
async savePesquisaGridConfig(entityName, columns) {
|
170
|
+
const payload = buildSaveGridConfigPayload(entityName, columns);
|
171
|
+
await DataFetcher.get().callServiceBroker("GridConfig.saveGridConfigFromJSON", JSON.stringify(payload));
|
172
|
+
}
|
173
|
+
async loadTree(entityName, argument, criteria, searchOptions) {
|
174
|
+
const requestBody = this.buildLoadTreeRequestBody(entityName, argument, criteria, searchOptions);
|
175
|
+
const response = await DataFetcher.get().callServiceBroker("Pesquisa.getStructuredData", JSON.stringify(requestBody));
|
176
|
+
return parseLegacyTree(response);
|
177
|
+
}
|
178
|
+
buildLoadTreeRequestBody(entityName, argument, criteria, searchOptions) {
|
179
|
+
var _a, _b, _c;
|
180
|
+
const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
|
181
|
+
console.log("criteria: ", criteria);
|
182
|
+
const incomeSearchOptions = (_a = listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) !== null && _a !== void 0 ? _a : searchOptions;
|
183
|
+
const rootEntity = incomeSearchOptions === null || incomeSearchOptions === void 0 ? void 0 : incomeSearchOptions.rootEntity;
|
184
|
+
const codeFieldName = incomeSearchOptions === null || incomeSearchOptions === void 0 ? void 0 : incomeSearchOptions.codeFieldName;
|
185
|
+
const expression = (_b = listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) === null || _b === void 0 ? void 0 : _b.expression;
|
186
|
+
const params = (_c = listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) === null || _c === void 0 ? void 0 : _c.params;
|
187
|
+
const instancia = {
|
188
|
+
'nome': entityName,
|
189
|
+
'nomeInstanciaLocal': rootEntity,
|
190
|
+
'codeFieldName': codeFieldName,
|
191
|
+
};
|
192
|
+
if (expression) {
|
193
|
+
instancia['criterioLiteral'] = {
|
194
|
+
'expressao': {
|
195
|
+
'$': expression,
|
196
|
+
},
|
197
|
+
'parametro': params,
|
198
|
+
};
|
199
|
+
}
|
200
|
+
return {
|
201
|
+
'instancia': instancia,
|
202
|
+
};
|
203
|
+
}
|
204
|
+
}
|
205
|
+
function buildLoadGridConfigPayload(entityName) {
|
206
|
+
return {
|
207
|
+
'gridConfig': {
|
208
|
+
'configName': `GrdCfgHtml5:grdcfg.dynaform.pesquisa.${entityName}`,
|
209
|
+
},
|
210
|
+
};
|
211
|
+
}
|
212
|
+
function buildSaveGridConfigPayload(entityName, columns) {
|
213
|
+
const field = {};
|
214
|
+
columns === null || columns === void 0 ? void 0 : columns.forEach((col, index) => field[`field${index}`] = col);
|
215
|
+
return {
|
216
|
+
'gridConfig': {
|
217
|
+
'compactMode': true,
|
218
|
+
'configName': `GrdCfgHtml5:grdcfg.dynaform.pesquisa.${entityName}`,
|
219
|
+
field,
|
220
|
+
},
|
221
|
+
};
|
222
|
+
}
|
223
|
+
function buildLoadConfig(entityName) {
|
224
|
+
return {
|
225
|
+
'config': {
|
226
|
+
'chave': `PesquisaContent:${entityName}`,
|
227
|
+
'tipo': 'T',
|
228
|
+
},
|
229
|
+
};
|
230
|
+
}
|
231
|
+
function buildSaveConfig(entityName, lastUsedMode) {
|
232
|
+
return {
|
233
|
+
'config': {
|
234
|
+
lastUsedMode,
|
235
|
+
'chave': `PesquisaContent:${entityName}`,
|
236
|
+
'tipo': 'T',
|
237
|
+
}
|
238
|
+
};
|
153
239
|
}
|
154
240
|
function convertParamType(dataType) {
|
155
241
|
//Alerta: Cuidado pra não contaminar o DataType com a implementação
|
@@ -1,7 +1,6 @@
|
|
1
1
|
import { D as DataFetcher } from './DataFetcher.js';
|
2
|
-
import './pesquisa-fetcher.js';
|
3
|
-
import { SortMode, ApplicationContext, UserInterface, DateUtils, ObjectUtils, StringUtils, NumberUtils, DataType } from '@sankhyalabs/core';
|
4
2
|
import './ISave.js';
|
3
|
+
import { SortMode, ApplicationContext, UserInterface, DateUtils, ObjectUtils, StringUtils, NumberUtils, DataType } from '@sankhyalabs/core';
|
5
4
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
6
5
|
import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
7
6
|
import { P as PreloadManager } from './dataunit-fetcher.js';
|