@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.
Files changed (108) 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 +6 -6
  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-actions-button/actions/index.js +4 -4
  23. package/dist/collection/components/snk-application/snk-application.js +25 -7
  24. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.css +10 -0
  25. package/dist/collection/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.js +190 -0
  26. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.css +25 -0
  27. package/dist/collection/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.js +173 -0
  28. package/dist/collection/components/snk-pesquisa/pesquisaHelper.js +89 -0
  29. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +24 -5
  30. package/dist/collection/components/snk-pesquisa/snk-pesquisa.js +168 -32
  31. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +1 -1
  32. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +89 -3
  33. package/dist/components/ContinuousInsertUtils.js +1 -2
  34. package/dist/components/ISave.js +346 -1
  35. package/dist/components/dataunit-fetcher.js +1 -1
  36. package/dist/components/index.d.ts +2 -0
  37. package/dist/components/index.js +2 -0
  38. package/dist/components/pesquisa-grid.d.ts +11 -0
  39. package/dist/components/pesquisa-grid.js +6 -0
  40. package/dist/components/pesquisa-grid2.js +86 -0
  41. package/dist/components/pesquisa-tree.d.ts +11 -0
  42. package/dist/components/pesquisa-tree.js +6 -0
  43. package/dist/components/pesquisa-tree2.js +76 -0
  44. package/dist/components/snk-actions-button2.js +4 -5
  45. package/dist/components/snk-application2.js +35 -8
  46. package/dist/components/snk-attach2.js +0 -1
  47. package/dist/components/snk-crud.js +0 -1
  48. package/dist/components/snk-data-exporter2.js +1 -2
  49. package/dist/components/snk-detail-view2.js +0 -1
  50. package/dist/components/snk-grid2.js +0 -1
  51. package/dist/components/snk-pesquisa2.js +118 -33
  52. package/dist/components/snk-simple-crud2.js +1 -2
  53. package/dist/components/snk-simple-form-config2.js +1 -2
  54. package/dist/components/teste-pesquisa.js +13 -1
  55. package/dist/esm/{ContinuousInsertUtils-bab45060.js → ContinuousInsertUtils-15b5f1da.js} +2 -2
  56. package/dist/esm/{dataunit-fetcher-56cb648b.js → dataunit-fetcher-481e159d.js} +1 -1
  57. package/dist/esm/index-a7d3d3f1.js +4 -0
  58. package/dist/esm/loader.js +1 -1
  59. package/dist/esm/{pesquisa-fetcher-24e5bba0.js → pesquisa-fetcher-c437c9b1.js} +176 -2
  60. package/dist/esm/pesquisa-grid_2.entry.js +122 -0
  61. package/dist/esm/sankhyablocks.js +1 -1
  62. package/dist/esm/snk-actions-button_5.entry.js +6 -6
  63. package/dist/esm/snk-application.entry.js +23 -8
  64. package/dist/esm/snk-attach.entry.js +2 -2
  65. package/dist/esm/snk-crud.entry.js +2 -2
  66. package/dist/esm/snk-data-exporter.entry.js +3 -3
  67. package/dist/esm/{snk-data-unit-9fa7d2b9.js → snk-data-unit-d4ba54d7.js} +1 -1
  68. package/dist/esm/snk-data-unit.entry.js +2 -2
  69. package/dist/esm/snk-detail-view.entry.js +3 -3
  70. package/dist/esm/snk-grid.entry.js +3 -3
  71. package/dist/esm/{snk-guides-viewer-b740a1fe.js → snk-guides-viewer-3043422d.js} +2 -2
  72. package/dist/esm/snk-guides-viewer.entry.js +3 -3
  73. package/dist/esm/snk-pesquisa.entry.js +105 -31
  74. package/dist/esm/snk-simple-crud.entry.js +3 -3
  75. package/dist/sankhyablocks/{p-c629c07a.entry.js → p-08242e3f.entry.js} +1 -1
  76. package/dist/sankhyablocks/{p-342eeb3b.js → p-0f3b2a32.js} +1 -1
  77. package/dist/sankhyablocks/{p-72a451c8.js → p-229c3615.js} +1 -1
  78. package/dist/sankhyablocks/{p-b619ee23.js → p-36598f95.js} +1 -1
  79. package/dist/sankhyablocks/p-3e6990a6.entry.js +1 -0
  80. package/dist/sankhyablocks/{p-098f8cfa.entry.js → p-4895f6e4.entry.js} +1 -1
  81. package/dist/sankhyablocks/p-4be4cdac.js +6 -0
  82. package/dist/sankhyablocks/{p-47d24ac8.js → p-58fd3017.js} +1 -1
  83. package/dist/sankhyablocks/p-70cb4e36.entry.js +11 -0
  84. package/dist/sankhyablocks/{p-50306605.entry.js → p-7d09f66c.entry.js} +1 -1
  85. package/dist/sankhyablocks/{p-53ae0296.entry.js → p-a33e803a.entry.js} +1 -1
  86. package/dist/sankhyablocks/{p-89da2953.entry.js → p-b299dc14.entry.js} +1 -1
  87. package/dist/sankhyablocks/p-badbd2ca.entry.js +1 -0
  88. package/dist/sankhyablocks/{p-9a9681d1.entry.js → p-c9bd54e6.entry.js} +1 -1
  89. package/dist/sankhyablocks/{p-0d2a2e9e.entry.js → p-e2bd42c0.entry.js} +1 -1
  90. package/dist/sankhyablocks/p-e8512d4b.entry.js +1 -0
  91. package/dist/sankhyablocks/{p-2b7432e8.entry.js → p-f71d043b.entry.js} +1 -1
  92. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  93. package/dist/types/components/snk-application/snk-application.d.ts +1 -1
  94. package/dist/types/components/snk-pesquisa/pesquisa-grid/pesquisa-grid.d.ts +38 -0
  95. package/dist/types/components/snk-pesquisa/pesquisa-tree/pesquisa-tree.d.ts +28 -0
  96. package/dist/types/components/snk-pesquisa/pesquisaHelper.d.ts +19 -0
  97. package/dist/types/components/snk-pesquisa/snk-pesquisa.d.ts +35 -1
  98. package/dist/types/components.d.ts +148 -13
  99. package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +10 -1
  100. package/package.json +1 -1
  101. package/react/components.d.ts +2 -0
  102. package/react/components.js +2 -0
  103. package/react/components.js.map +1 -1
  104. package/dist/components/pesquisa-fetcher.js +0 -172
  105. package/dist/sankhyablocks/p-442367ab.entry.js +0 -11
  106. package/dist/sankhyablocks/p-64ff0fb6.entry.js +0 -1
  107. package/dist/sankhyablocks/p-d1791da2.entry.js +0 -1
  108. package/dist/sankhyablocks/p-e6683406.js +0 -6
@@ -1,5 +1,8 @@
1
- import { ObjectUtils, StringUtils, ElementIDUtils } from '@sankhyalabs/core';
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
- let fieldsMetadata = resp.fieldsMetadata.filter((field) => {
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
- componentDidLoad() {
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() })), h("label", { class: "snk-pesquisa__records" }, this.getMessageView()), h("div", { class: "snk-pesquisa__content" }, this._itemList && this._itemList.map((item) => {
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 { ApplicationContext, DataType, ErrorException } from "@sankhyalabs/core";
2
- import { gql } from "graphql-request";
3
- import { DataFetcher } from "../DataFetcher";
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';