@sankhyalabs/sankhyablocks 8.15.0-dev.8 → 8.15.0-rc.1

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 (159) hide show
  1. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  2. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-e7dcf408.js} +13 -0
  3. package/dist/cjs/loader.cjs.js +1 -1
  4. package/dist/cjs/{dataunit-fetcher-14108bec.js → pesquisa-fetcher-e4a7c4c3.js} +235 -26
  5. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  6. package/dist/cjs/snk-actions-button_2.cjs.entry.js +5 -4
  7. package/dist/cjs/snk-application.cjs.entry.js +12 -4
  8. package/dist/cjs/snk-attach.cjs.entry.js +388 -57
  9. package/dist/cjs/snk-crud.cjs.entry.js +3 -4
  10. package/dist/cjs/snk-data-exporter.cjs.entry.js +3 -3
  11. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-82c08a8c.js} +1 -1
  12. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  13. package/dist/cjs/snk-detail-view.cjs.entry.js +4 -5
  14. package/dist/cjs/snk-filter-bar.cjs.entry.js +8 -1
  15. package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
  16. package/dist/cjs/snk-filter-modal.cjs.entry.js +2 -1
  17. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  18. package/dist/cjs/{snk-guides-viewer-c8b9374f.js → snk-guides-viewer-d32c096f.js} +2 -3
  19. package/dist/cjs/snk-guides-viewer.cjs.entry.js +3 -4
  20. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  21. package/dist/cjs/snk-simple-crud.cjs.entry.js +17 -6
  22. package/dist/collection/collection-manifest.json +1 -1
  23. package/dist/collection/components/snk-application/snk-application.js +52 -9
  24. package/dist/collection/components/snk-attach/snk-attach.js +188 -39
  25. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  26. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  27. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  28. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  29. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  30. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
  31. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  32. package/dist/collection/components/snk-crud/snk-crud.js +1 -1
  33. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +1 -1
  34. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  35. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
  36. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +19 -1
  37. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +22 -0
  38. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +3 -1
  39. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  40. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +53 -1
  41. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +3 -1
  42. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  43. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  44. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  45. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  46. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  47. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  48. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  49. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  50. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +29 -2
  51. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +37 -23
  52. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +7 -1
  53. package/dist/collection/lib/index.js +1 -1
  54. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  55. package/dist/components/SnkMessageBuilder.js +13 -0
  56. package/dist/components/dataunit-fetcher.js +74 -27
  57. package/dist/components/snk-actions-button2.js +1 -0
  58. package/dist/components/snk-application2.js +11 -1
  59. package/dist/components/snk-attach2.js +394 -57
  60. package/dist/components/snk-crud.js +1 -1
  61. package/dist/components/snk-data-exporter2.js +1 -1
  62. package/dist/components/snk-filter-bar2.js +9 -1
  63. package/dist/components/snk-filter-item2.js +3 -0
  64. package/dist/components/snk-filter-modal.js +4 -2
  65. package/dist/components/snk-filter-multi-select.js +2 -1
  66. package/dist/components/snk-pesquisa2.js +1 -1
  67. package/dist/components/snk-simple-crud2.js +15 -1
  68. package/dist/components/taskbar-actions-button2.js +3 -1
  69. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  70. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0fb796b9.js} +13 -0
  71. package/dist/esm/loader.js +1 -1
  72. package/dist/esm/{dataunit-fetcher-cbec1594.js → pesquisa-fetcher-fa0c2540.js} +235 -27
  73. package/dist/esm/sankhyablocks.js +1 -1
  74. package/dist/esm/snk-actions-button_2.entry.js +5 -4
  75. package/dist/esm/snk-application.entry.js +11 -3
  76. package/dist/esm/snk-attach.entry.js +389 -58
  77. package/dist/esm/snk-crud.entry.js +3 -4
  78. package/dist/esm/snk-data-exporter.entry.js +3 -3
  79. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-5d201fb3.js} +1 -1
  80. package/dist/esm/snk-data-unit.entry.js +2 -2
  81. package/dist/esm/snk-detail-view.entry.js +4 -5
  82. package/dist/esm/snk-filter-bar.entry.js +8 -1
  83. package/dist/esm/snk-filter-item.entry.js +3 -0
  84. package/dist/esm/snk-filter-modal.entry.js +2 -1
  85. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  86. package/dist/esm/{snk-guides-viewer-8da24475.js → snk-guides-viewer-f49613c6.js} +2 -3
  87. package/dist/esm/snk-guides-viewer.entry.js +3 -4
  88. package/dist/esm/snk-pesquisa.entry.js +1 -1
  89. package/dist/esm/snk-simple-crud.entry.js +15 -4
  90. package/dist/sankhyablocks/p-02e3a45b.entry.js +1 -0
  91. package/dist/sankhyablocks/{p-ff6064e7.js → p-05243555.js} +1 -1
  92. package/dist/sankhyablocks/p-0ec5b2e5.js +1 -0
  93. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  94. package/dist/sankhyablocks/p-2582537c.entry.js +1 -0
  95. package/dist/sankhyablocks/p-282789a6.entry.js +1 -0
  96. package/dist/sankhyablocks/p-3b0e4e08.js +65 -0
  97. package/dist/sankhyablocks/{p-0874adb5.entry.js → p-40915359.entry.js} +1 -1
  98. package/dist/sankhyablocks/p-62896624.entry.js +1 -0
  99. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  100. package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
  101. package/dist/sankhyablocks/p-9b5944a4.entry.js +1 -0
  102. package/dist/sankhyablocks/p-9bdbc7d8.entry.js +1 -0
  103. package/dist/sankhyablocks/p-ac384baf.entry.js +1 -0
  104. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  105. package/dist/sankhyablocks/p-c4874327.entry.js +1 -0
  106. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  107. package/dist/sankhyablocks/{p-ba3d3fa9.entry.js → p-e817f254.entry.js} +3 -3
  108. package/dist/sankhyablocks/{p-32f0935f.js → p-f3d1c48e.js} +1 -1
  109. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  110. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  111. package/dist/types/components/snk-application/snk-application.d.ts +7 -0
  112. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  113. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  114. package/dist/types/components/snk-attach/snk-attach.d.ts +27 -6
  115. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  116. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
  117. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  118. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  119. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  120. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
  121. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  122. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  123. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +5 -0
  124. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +5 -0
  125. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +3 -1
  126. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  127. package/dist/types/components.d.ts +74 -2
  128. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  129. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  130. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  131. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  132. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  133. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  134. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  135. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +1 -0
  136. package/dist/types/lib/index.d.ts +1 -1
  137. package/package.json +7 -5
  138. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  139. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  140. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  141. package/dist/sankhyablocks/p-25927311.entry.js +0 -1
  142. package/dist/sankhyablocks/p-3891ae6f.js +0 -60
  143. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  144. package/dist/sankhyablocks/p-7d8d7fe9.entry.js +0 -1
  145. package/dist/sankhyablocks/p-8d70b5d5.entry.js +0 -1
  146. package/dist/sankhyablocks/p-a9e4bb55.entry.js +0 -1
  147. package/dist/sankhyablocks/p-a9e5b094.entry.js +0 -1
  148. package/dist/sankhyablocks/p-aa0ae6bc.entry.js +0 -1
  149. package/dist/sankhyablocks/p-c4d19840.entry.js +0 -1
  150. package/dist/sankhyablocks/p-c6e477ff.js +0 -1
  151. package/dist/sankhyablocks/p-d81f20c4.entry.js +0 -1
  152. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  153. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  154. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  155. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  156. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  157. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  158. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  159. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -17,6 +17,7 @@ export class SnkFilterModal {
17
17
  this.editPersonalizedFilter = undefined;
18
18
  this.deletePersonalizedFilter = undefined;
19
19
  this.filtersToDelete = [];
20
+ this.disablePersonalizedFilter = undefined;
20
21
  }
21
22
  /**
22
23
  * Emitido quando um filtro personalizado é deletado.
@@ -233,7 +234,7 @@ export class SnkFilterModal {
233
234
  const customFilters = this.filters.filter(filter => filter.filterType === FilterType.CUSTOM_FILTER);
234
235
  const quickFilters = this.filters.filter(filter => filter.filterType === FilterType.QUICK_FILTER);
235
236
  const otherFilters = this.filters.filter(filter => filter.filterType === FilterType.OTHER_FILTERS);
236
- return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
237
+ return (h("ez-modal-container", { class: "snk-filter-modal__container", modalTitle: this._modalTitle, cancelButtonLabel: this._cancelButtonLabel, okButtonLabel: this._okButtonLabel, onEzModalAction: this.modalActionListener.bind(this) }, h("div", { class: "snk-filter-modal__content ez-col--sd-12" }, !this.disablePersonalizedFilter && this.renderCollapsibleFilterBox(this.getCustomMessage('customFilters'), customFilters, false, false), this.renderCollapsibleFilterBox(this.getCustomMessage('quickFilters'), quickFilters, false), otherFilters.map(filter => this.renderCollapsibleFilterBox(filter.label, [filter], true)))));
237
238
  }
238
239
  static get is() { return "snk-filter-modal"; }
239
240
  static get originalStyleUrls() {
@@ -411,6 +412,23 @@ export class SnkFilterModal {
411
412
  "text": "Guarda filtros a serem deletados no Apply do modal"
412
413
  },
413
414
  "defaultValue": "[]"
415
+ },
416
+ "disablePersonalizedFilter": {
417
+ "type": "boolean",
418
+ "mutable": false,
419
+ "complexType": {
420
+ "original": "boolean",
421
+ "resolved": "boolean",
422
+ "references": {}
423
+ },
424
+ "required": false,
425
+ "optional": false,
426
+ "docs": {
427
+ "tags": [],
428
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
429
+ },
430
+ "attribute": "disable-personalized-filter",
431
+ "reflect": false
414
432
  }
415
433
  };
416
434
  }
@@ -31,6 +31,7 @@ export class SnkFilterBar {
31
31
  this.resourceID = undefined;
32
32
  this.filterConfig = undefined;
33
33
  this.messagesBuilder = undefined;
34
+ this.disablePersonalizedFilter = undefined;
34
35
  this.allowDefault = undefined;
35
36
  this.scrollerLocked = false;
36
37
  this.showPersonalizedFilter = false;
@@ -179,6 +180,9 @@ export class SnkFilterBar {
179
180
  */
180
181
  getMessage(key, params, defaultValue) {
181
182
  var _a;
183
+ if (this.messagesBuilder == undefined && this._application) {
184
+ this.messagesBuilder = this._application.messagesBuilder;
185
+ }
182
186
  return ((_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage(key, params)) || defaultValue;
183
187
  }
184
188
  getFilter(_dataUnit) {
@@ -340,6 +344,7 @@ export class SnkFilterBar {
340
344
  filterConfig: filtersConfigCopy,
341
345
  configName: this.configName,
342
346
  onComplete: callbackOnApplyFilter,
347
+ disablePersonalizedFilter: this.disablePersonalizedFilter,
343
348
  getMessage: (key, props) => this.getMessage(key, props),
344
349
  onAddPersonalizedFilter: () => this.addPersonalizedFilter(),
345
350
  onEditPersonalizedFilter: (id) => this.editPersonalizedFilter(id),
@@ -510,6 +515,23 @@ export class SnkFilterBar {
510
515
  "tags": [],
511
516
  "text": "Respons\u00E1vel por flexibilizar e padronizar o uso de mensagens nos blocos de constru\u00E7\u00E3o."
512
517
  }
518
+ },
519
+ "disablePersonalizedFilter": {
520
+ "type": "boolean",
521
+ "mutable": false,
522
+ "complexType": {
523
+ "original": "boolean",
524
+ "resolved": "boolean",
525
+ "references": {}
526
+ },
527
+ "required": false,
528
+ "optional": false,
529
+ "docs": {
530
+ "tags": [],
531
+ "text": "Desabilita a apresenta\u00E7\u00E3o da op\u00E7\u00E3o de filtros personalizados na filter bar (chip de filtros) \ne no modal lateral de filtros (container de filtros personalizados)."
532
+ },
533
+ "attribute": "disable-personalized-filter",
534
+ "reflect": false
513
535
  }
514
536
  };
515
537
  }
@@ -1,10 +1,11 @@
1
1
  import { ApplicationUtils } from "@sankhyalabs/ezui/dist/collection/utils";
2
2
  class SnkFilterModalFactory {
3
- constructor({ filterConfig, configName, onComplete, getMessage, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
3
+ constructor({ filterConfig, configName, onComplete, getMessage, disablePersonalizedFilter, onAddPersonalizedFilter, onEditPersonalizedFilter, onDeletePersonalizedFilter }) {
4
4
  this._filterConfig = filterConfig;
5
5
  this._configName = configName;
6
6
  this._onComplete = onComplete;
7
7
  this._getMessage = getMessage;
8
+ this._disablePersonalizedFilter = disablePersonalizedFilter;
8
9
  this._addPersonalizedFilterFn = onAddPersonalizedFilter;
9
10
  this._editPersonalizedFilterFn = onEditPersonalizedFilter;
10
11
  this._onDeletePersonalizedFilter = onDeletePersonalizedFilter;
@@ -18,6 +19,7 @@ class SnkFilterModalFactory {
18
19
  filterModal.className = "ez-size-height--full";
19
20
  filterModal.filters = this._filterConfig;
20
21
  filterModal.configName = this._configName;
22
+ filterModal.disablePersonalizedFilter = this._disablePersonalizedFilter;
21
23
  filterModal.getMessage = this._getMessage.bind(this);
22
24
  filterModal.applyFilters = this.applyFilters.bind(this);
23
25
  filterModal.closeModal = () => this._closeModal();
@@ -6,7 +6,7 @@
6
6
  --snk-pesquisa--font-family: var(--font-pattern, Arial);
7
7
  /*@doc Define o peso da fonte do componente.*/
8
8
  --snk-pesquisa--font-weight: var(--text-weight--medium, 400);
9
-
9
+
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);
@@ -39,7 +39,6 @@
39
39
  /*@doc Define a largura da barra de rolagem do componente.*/
40
40
  --snk-pesquisa__scrollbar--width: var(--space--medium, 12px);
41
41
 
42
- max-height: 100%;
43
42
  height: 100%;
44
43
  display: flex;
45
44
  flex-direction: column;
@@ -70,7 +69,6 @@
70
69
  .snk-pesquisa__content {
71
70
  display: flex;
72
71
  flex-direction: column;
73
- height: 100%;
74
72
  overflow-y: auto;
75
73
  scrollbar-width: thin;
76
74
 
@@ -148,4 +146,4 @@
148
146
  .snk-pesquisa__btn:hover {
149
147
  /*public*/
150
148
  color: var(--snk-pesquisa__btn-hover--color);
151
- }
149
+ }
@@ -34,6 +34,8 @@ export class SnkSimpleCrud {
34
34
  this.taskbarManager = undefined;
35
35
  this.messagesBuilder = undefined;
36
36
  this.useEnterLikeTab = false;
37
+ this.actionsList = undefined;
38
+ this.configName = undefined;
37
39
  }
38
40
  resolveInMemoryBtns(taskbarButtons) {
39
41
  const newTaskBarConfig = [...taskbarButtons];
@@ -232,7 +234,7 @@ export class SnkSimpleCrud {
232
234
  }
233
235
  getActionsList() {
234
236
  var _a, _b;
235
- return [{
237
+ const hardList = [{
236
238
  value: StringUtils.generateUUID(),
237
239
  label: (_b = (_a = this.messagesBuilder) === null || _a === void 0 ? void 0 : _a.getMessage("snkSimpleCrud.findColumn", undefined)) !== null && _b !== void 0 ? _b : "Buscar",
238
240
  disableCloseOnSelect: true,
@@ -241,6 +243,16 @@ export class SnkSimpleCrud {
241
243
  ? this.getColumnSearch(actionButton, item)
242
244
  : this.getFieldSearch(actionButton, item)
243
245
  }];
246
+ if (this.taskbarManager != undefined && this.taskbarManager.getMoreOptions != undefined) {
247
+ const taskbarID = this.getTopTaskBarId();
248
+ return hardList.concat(this.taskbarManager.getMoreOptions(taskbarID, this.configName, this.dataState, this.actionsList));
249
+ }
250
+ return hardList.concat(this.actionsList);
251
+ }
252
+ getTopTaskBarId() {
253
+ var _a;
254
+ return ((_a = this.dataState) === null || _a === void 0 ? void 0 : _a.isDirty) ? `snkGridTopTaskbar.finish_edition${PresentationMode.PRIMARY}` :
255
+ `snkGridTopTaskbar.regular${PresentationMode.PRIMARY}`;
244
256
  }
245
257
  async keyDownListener(event) {
246
258
  if (!event.ctrlKey || event.key == undefined || event.key.toUpperCase() !== "F") {
@@ -494,6 +506,46 @@ export class SnkSimpleCrud {
494
506
  "attribute": "use-enter-like-tab",
495
507
  "reflect": false,
496
508
  "defaultValue": "false"
509
+ },
510
+ "actionsList": {
511
+ "type": "unknown",
512
+ "mutable": false,
513
+ "complexType": {
514
+ "original": "Array<Action>",
515
+ "resolved": "Action[]",
516
+ "references": {
517
+ "Array": {
518
+ "location": "global"
519
+ },
520
+ "Action": {
521
+ "location": "import",
522
+ "path": "../snk-taskbar/snk-taskbar"
523
+ }
524
+ }
525
+ },
526
+ "required": false,
527
+ "optional": false,
528
+ "docs": {
529
+ "tags": [],
530
+ "text": "A\u00E7\u00F5es a serem colocadas no bot\u00E3o \"Mais op\u00E7\u00F5es\" do componente snk-taskbar."
531
+ }
532
+ },
533
+ "configName": {
534
+ "type": "string",
535
+ "mutable": true,
536
+ "complexType": {
537
+ "original": "string",
538
+ "resolved": "string",
539
+ "references": {}
540
+ },
541
+ "required": false,
542
+ "optional": false,
543
+ "docs": {
544
+ "tags": [],
545
+ "text": "Usado para salvar as configura\u00E7\u00F5es dos blocos de constru\u00E7\u00E3o."
546
+ },
547
+ "attribute": "config-name",
548
+ "reflect": false
497
549
  }
498
550
  };
499
551
  }
@@ -67,7 +67,7 @@ export class TaskbarActionsButton {
67
67
  }
68
68
  }
69
69
  getSelectedAction(id, actions) {
70
- let selectedItem;
70
+ let selectedItem = null;
71
71
  for (const item of actions) {
72
72
  if (item.id === id) {
73
73
  selectedItem = item;
@@ -76,6 +76,8 @@ export class TaskbarActionsButton {
76
76
  if (!(item === null || item === void 0 ? void 0 : item.children))
77
77
  continue;
78
78
  selectedItem = this.getSelectedAction(id, item.children);
79
+ if (selectedItem)
80
+ break;
79
81
  }
80
82
  return selectedItem;
81
83
  }
@@ -13,7 +13,7 @@ export default class InMemoryLoader {
13
13
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
14
14
  }
15
15
  getRecordsToLoad() {
16
- if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
16
+ if (this._initialRecords == undefined || this.dataUnit.records.length > 0) {
17
17
  this._initialRecords = this.dataUnit.records;
18
18
  }
19
19
  return this._initialRecords;
@@ -1,6 +1,11 @@
1
- import { DataFetcher } from "../DataFetcher";
2
- import { SaveErrorsEnum } from "./fecthAttach/interfaces";
3
- export class AttachFetcher {
1
+ import { SaveErrorsEnum } from "./interfaces";
2
+ import { DataFetcher } from "../../DataFetcher";
3
+ const SERVICE = {
4
+ save: "AnexoSistemaSP.salvar",
5
+ delete: "AnexoSistemaSP.excluir",
6
+ download: "AnexoSistemaSP.baixar",
7
+ };
8
+ export class AnexoSistemaFetcher {
4
9
  constructor(entityName, registerKey, dataUnitName) {
5
10
  var _a;
6
11
  this.entityName = entityName;
@@ -18,14 +23,13 @@ export class AttachFetcher {
18
23
  }
19
24
  async save(change) {
20
25
  var _a, _b;
21
- const serviceName = "AnexoSistemaSP.salvar";
22
26
  let { updatingFields: fields } = change;
23
27
  fields = Object.assign(Object.assign({}, fields), { NOMEARQUIVO: (_a = fields.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0] });
24
28
  try {
25
29
  this.validateFields(fields);
26
30
  const fileInfo = !fields.LINK ? fields.NOMEARQUIVO : null;
27
31
  const reqBody = {
28
- serviceName,
32
+ serviceName: SERVICE.save,
29
33
  requestBody: {
30
34
  params: {
31
35
  resourceID: this.resourceID,
@@ -41,7 +45,7 @@ export class AttachFetcher {
41
45
  }
42
46
  }
43
47
  };
44
- const result = await DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody));
48
+ const result = await DataFetcher.get().callServiceBroker(SERVICE.save, JSON.stringify(reqBody));
45
49
  return Promise.resolve([Object.assign(Object.assign(Object.assign({}, result), fields), { ARQUIVOOULINK: !!fields.LINK ? fields.LINK : fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name, __owner__dataunit__name__: this.dataUnitName })]);
46
50
  }
47
51
  catch (error) {
@@ -50,7 +54,6 @@ export class AttachFetcher {
50
54
  }
51
55
  async edit(change) {
52
56
  var _a, _b, _c;
53
- const serviceName = "AnexoSistemaSP.salvar";
54
57
  let { updatingFields: fields, record } = change;
55
58
  const getFieldValue = (fieldValue) => {
56
59
  if (fields[fieldValue] !== undefined)
@@ -64,7 +67,7 @@ export class AttachFetcher {
64
67
  try {
65
68
  this.validateFields(fields);
66
69
  const reqBody = {
67
- serviceName,
70
+ serviceName: SERVICE.save,
68
71
  requestBody: {
69
72
  params: {
70
73
  resourceID: this.resourceID,
@@ -82,7 +85,7 @@ export class AttachFetcher {
82
85
  }
83
86
  }
84
87
  };
85
- const result = await DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody));
88
+ const result = await DataFetcher.get().callServiceBroker(SERVICE.save, JSON.stringify(reqBody));
86
89
  return Promise.resolve([Object.assign(Object.assign(Object.assign({}, result), fields), { ARQUIVOOULINK: !!fields.LINK ? fields.LINK : fileInfo === null || fileInfo === void 0 ? void 0 : fileInfo.name, __owner__dataunit__name__: this.dataUnitName })]);
87
90
  }
88
91
  catch (error) {
@@ -91,10 +94,9 @@ export class AttachFetcher {
91
94
  }
92
95
  delete(record) {
93
96
  var _a;
94
- const serviceName = "AnexoSistemaSP.excluir";
95
97
  const attachField = ((_a = record.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) || {};
96
98
  const reqBody = {
97
- serviceName,
99
+ serviceName: SERVICE.delete,
98
100
  requestBody: {
99
101
  paramsDelete: {
100
102
  keyAttach: record.CHAVEARQUIVO,
@@ -106,17 +108,16 @@ export class AttachFetcher {
106
108
  }
107
109
  };
108
110
  return new Promise((resolve, reject) => {
109
- DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody))
111
+ DataFetcher.get().callServiceBroker(SERVICE.delete, JSON.stringify(reqBody))
110
112
  .then(result => resolve(result))
111
113
  .catch(error => reject(error));
112
114
  });
113
115
  }
114
116
  getDownloadKey(record) {
115
117
  var _a;
116
- const serviceName = "AnexoSistemaSP.baixar";
117
118
  const attachField = ((_a = record.NOMEARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) || {};
118
119
  const reqBody = {
119
- serviceName,
120
+ serviceName: SERVICE.download,
120
121
  requestBody: {
121
122
  paramsDown: {
122
123
  nameAttach: attachField === null || attachField === void 0 ? void 0 : attachField.name,
@@ -128,7 +129,7 @@ export class AttachFetcher {
128
129
  }
129
130
  };
130
131
  return new Promise((resolve, reject) => {
131
- DataFetcher.get().callServiceBroker(serviceName, JSON.stringify(reqBody))
132
+ DataFetcher.get().callServiceBroker(SERVICE.download, JSON.stringify(reqBody))
132
133
  .then(result => resolve(result))
133
134
  .catch(error => reject(error));
134
135
  });
@@ -0,0 +1,90 @@
1
+ import { SaveErrorsEnum } from "./interfaces";
2
+ import { DataFetcher } from "../../DataFetcher";
3
+ const SERVICE = {
4
+ save: "Attach.save",
5
+ delete: "Attach.remove",
6
+ view: "Attach.view",
7
+ repository: "RepositorioArquivoSP.abreArquivo"
8
+ };
9
+ export class AttachFetcher {
10
+ constructor(dataUnitName) {
11
+ this.dataUnitName = dataUnitName;
12
+ }
13
+ async save({ dataUnit: dataUnitName, record, updatingFields: fields, operation }) {
14
+ var _a, _b;
15
+ const isInsert = operation == "INSERT";
16
+ const dataBody = isInsert ? fields : record;
17
+ if (!isInsert && (fields === null || fields === void 0 ? void 0 : fields.DESCRICAO) && (fields === null || fields === void 0 ? void 0 : fields.DESCRICAO) !== (record === null || record === void 0 ? void 0 : record.DESCRICAO)) {
18
+ throw new Error(SaveErrorsEnum.DESCRIPTION_CANNOT_BE_CHANGED);
19
+ }
20
+ const reqBody = {
21
+ "anexo": {
22
+ "codata": isInsert ? fields === null || fields === void 0 ? void 0 : fields.REGISTER_KEY : record === null || record === void 0 ? void 0 : record.CODATA,
23
+ "sequencia": (dataBody === null || dataBody === void 0 ? void 0 : dataBody.SEQUENCIA) || "0",
24
+ "tipo": (dataBody === null || dataBody === void 0 ? void 0 : dataBody.TIPO) || "N",
25
+ "descricao": dataBody === null || dataBody === void 0 ? void 0 : dataBody.DESCRICAO,
26
+ "arquivo": (_b = (_a = fields.CAMINHO_ARQUIVO) === null || _a === void 0 ? void 0 : _a[0]) === null || _b === void 0 ? void 0 : _b.name,
27
+ "ehInclusao": isInsert ? "S" : "N",
28
+ "ehArquivoRepositorio": "N"
29
+ }
30
+ };
31
+ return new Promise((resolve, reject) => {
32
+ DataFetcher.get().callServiceBroker(SERVICE.save, JSON.stringify(reqBody))
33
+ .then(result => {
34
+ var _a;
35
+ return resolve([Object.assign(Object.assign(Object.assign({}, result), fields), { __owner__dataunit__name__: (_a = this.dataUnitName) !== null && _a !== void 0 ? _a : dataUnitName })]);
36
+ })
37
+ .catch(error => reject(error));
38
+ });
39
+ }
40
+ async edit(change) {
41
+ throw new Error("Method not implemented.");
42
+ }
43
+ async delete(record) {
44
+ var request = {
45
+ anexo: {
46
+ codata: record.CODATA,
47
+ tipo: record.TIPO,
48
+ descricao: record.DESCRICAO,
49
+ }
50
+ };
51
+ const result = await DataFetcher.get().callServiceBroker(SERVICE.delete, JSON.stringify(request));
52
+ return Promise.resolve(result);
53
+ }
54
+ async getDownloadKey(record) {
55
+ var _a, _b, _c;
56
+ if (record.EHARQUIVOREPOSITORIO == 'S') {
57
+ const request = {
58
+ config: {
59
+ path: record.ARQUIVO,
60
+ tipoconteudo: record.TIPOCONTEUDO
61
+ }
62
+ };
63
+ const result = await DataFetcher.get().callServiceBroker(SERVICE.repository, JSON.stringify(request));
64
+ return Promise.resolve({
65
+ chave: {
66
+ valor: (_b = (_a = result === null || result === void 0 ? void 0 : result.responseBody) === null || _a === void 0 ? void 0 : _a.chave) === null || _b === void 0 ? void 0 : _b.valor
67
+ }
68
+ });
69
+ }
70
+ const criteria = {
71
+ anexo: {
72
+ codata: record.CODATA,
73
+ codemp: record.CODEMP,
74
+ sequencia: record.SEQUENCIA,
75
+ tipo: record.TIPO,
76
+ descricao: record.DESCRICAO,
77
+ tipoConteudo: record.TIPOCONTEUDO
78
+ }
79
+ };
80
+ const result = await DataFetcher.get().callServiceBroker(SERVICE.view, JSON.stringify(criteria));
81
+ if (result === null || result === void 0 ? void 0 : result.chaveAnexo) {
82
+ return Promise.resolve({
83
+ chave: {
84
+ valor: (_c = result === null || result === void 0 ? void 0 : result.chaveAnexo) === null || _c === void 0 ? void 0 : _c.idChaveAnexo
85
+ }
86
+ });
87
+ }
88
+ return Promise.reject(new Error("File not found."));
89
+ }
90
+ }
@@ -0,0 +1,2 @@
1
+ export { AttachFetcher } from "./attach-fetcher";
2
+ export { AnexoSistemaFetcher } from "./anexo-sistema-fetcher";
@@ -3,4 +3,5 @@ export var SaveErrorsEnum;
3
3
  SaveErrorsEnum["LINK_AND_FILE_AT_THE_SAME_TIME"] = "LINK_AND_FILE_AT_THE_SAME_TIME";
4
4
  SaveErrorsEnum["ANY_LINK_OR_FILE_FILLED"] = "ANY_LINK_OR_FILE_FILLED";
5
5
  SaveErrorsEnum["UNKNOWN"] = "UNKNOWN";
6
+ SaveErrorsEnum["DESCRIPTION_CANNOT_BE_CHANGED"] = "DESCRIPTION_CANNOT_BE_CHANGED";
6
7
  })(SaveErrorsEnum || (SaveErrorsEnum = {}));
@@ -171,14 +171,41 @@ export default class DataUnitFetcher {
171
171
  });
172
172
  });
173
173
  }
174
+ addTransientProperties(dataUnit, updatingFields) {
175
+ const loaderProps = dataUnit.getGlobalLoaderProps();
176
+ if (loaderProps == undefined || loaderProps.size === 0) {
177
+ return updatingFields;
178
+ }
179
+ if (updatingFields == undefined) {
180
+ updatingFields = {};
181
+ }
182
+ Array.from(loaderProps.entries()).forEach(([name, value]) => {
183
+ updatingFields[`transient.${name}`] = value;
184
+ });
185
+ return updatingFields;
186
+ }
187
+ getUpdatingFields(dataUnit, originalUpdatingFields) {
188
+ if (originalUpdatingFields == undefined) {
189
+ return;
190
+ }
191
+ const updatingFields = Object.assign({}, originalUpdatingFields);
192
+ Object.keys(updatingFields).forEach(key => {
193
+ const descriptor = dataUnit.getField(key);
194
+ if (descriptor != undefined && descriptor.standAlone) {
195
+ delete updatingFields[key];
196
+ }
197
+ });
198
+ return this.addTransientProperties(dataUnit, updatingFields);
199
+ }
174
200
  saveData(dataUnit, duChanges) {
175
201
  const updatedRecordsIds = [];
176
202
  const addedRecordsIds = [];
177
203
  const changes = duChanges.map((change) => {
178
- const { dataUnit: changeDU, record, updatingFields, operation } = change;
204
+ const { dataUnit: changeDU, record, operation } = change;
179
205
  const dataUnitInstance = DataUnitStorage.get(changeDU);
206
+ const updatingFields = this.getUpdatingFields(dataUnitInstance, change.updatingFields);
180
207
  let parsedUpdatingFields;
181
- if (updatingFields) {
208
+ if (updatingFields != undefined) {
182
209
  parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
183
210
  const descriptor = dataUnitInstance.getField(fieldName);
184
211
  const dataType = descriptor ? descriptor.dataType : DataType.TEXT;
@@ -6,30 +6,39 @@ export class DatasetStrategy {
6
6
  canSlice() {
7
7
  return false;
8
8
  }
9
+ processSortingSide(request, dataUnit, serverSideFilters) {
10
+ const localSorting = [];
11
+ const serverSorting = [];
12
+ if (request.sort != undefined) {
13
+ if (serverSideFilters.length === 0) {
14
+ return { localSorting: request.sort, serverSorting: [] };
15
+ }
16
+ for (const sort of request.sort) {
17
+ const descriptor = dataUnit.getField(sort.field);
18
+ const local = descriptor != undefined
19
+ && descriptor.properties != undefined
20
+ && descriptor.properties.calculated === "true";
21
+ if (local) {
22
+ localSorting.push(sort);
23
+ }
24
+ else {
25
+ serverSorting.push(sort);
26
+ }
27
+ }
28
+ }
29
+ return { localSorting, serverSorting };
30
+ }
9
31
  async load(dataUnit, request, loadingInfo) {
32
+ var _a, _b;
10
33
  if (dataUnit.metadata == undefined) {
11
34
  return Promise.resolve({ records: [], loadingInfo });
12
35
  }
13
36
  try {
14
- const localSorting = [];
15
- const serverSorting = [];
16
- if (request.sort != undefined) {
17
- for (const sort of request.sort) {
18
- const descriptor = dataUnit.getField(sort.field);
19
- const local = descriptor != undefined
20
- && descriptor.properties != undefined
21
- && descriptor.properties.calculated === "true";
22
- if (local) {
23
- localSorting.push(sort);
24
- }
25
- else {
26
- serverSorting.push(sort);
27
- }
28
- }
29
- }
37
+ const serverSideFilters = (_b = (_a = request.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => !filter.name.startsWith("FILTRO_COLUNA_"))) !== null && _b !== void 0 ? _b : [];
38
+ const { localSorting, serverSorting } = this.processSortingSide(request, dataUnit, serverSideFilters);
30
39
  const fields = this.getFieldsList(dataUnit);
31
40
  const serviceName = "DatasetSP.loadRecords";
32
- const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting);
41
+ const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
33
42
  const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
34
43
  const { result: responseRecords, pagerID: pagerId } = await DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
35
44
  const records = this.processRecords(dataUnit, fields, responseRecords);
@@ -73,7 +82,7 @@ export class DatasetStrategy {
73
82
  }
74
83
  return [descriptor.name, descriptionField];
75
84
  }
76
- buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting) {
85
+ buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting, serverSideFilters) {
77
86
  const dataSetID = dataUnit.dataUnitId;
78
87
  const dataUnitName = dataUnit.name;
79
88
  const entityName = DataUnitFetcher.parseDataUnitName(dataUnitName).entityName;
@@ -92,7 +101,7 @@ export class DatasetStrategy {
92
101
  tryJoinedFields: true,
93
102
  parallelLoader: useParallelLoader,
94
103
  crudListener: `br.com.sankhya.bff.${this.getModuleName()}.BFFDataUnitDatasetAdapter`,
95
- txProperties: this.getTxProperties(dataUnitName, request, sorting),
104
+ txProperties: this.getTxProperties(dataUnit, request, sorting, serverSideFilters),
96
105
  useDefaultRowsLimit: false
97
106
  }
98
107
  };
@@ -103,12 +112,10 @@ export class DatasetStrategy {
103
112
  const moduleName = app.getModuleName();
104
113
  return moduleName.replace("-bff", "");
105
114
  }
106
- getTxProperties(dataUnitName, request, sorting) {
107
- var _a, _b;
115
+ getTxProperties(dataUnit, request, sorting, serverSideFilters) {
108
116
  const txProperties = {
109
- "__DATA_UNIT_ADAPTER__[dataUnitName]": dataUnitName
117
+ "__DATA_UNIT_ADAPTER__[dataUnitName]": dataUnit.name
110
118
  };
111
- const serverSideFilters = (_b = (_a = request.filters) === null || _a === void 0 ? void 0 : _a.filter(filter => !filter.name.startsWith("FILTRO_COLUNA_"))) !== null && _b !== void 0 ? _b : [];
112
119
  if (serverSideFilters.length !== 0) {
113
120
  txProperties["__DATA_UNIT_ADAPTER__[criteria]"] = JSON.stringify(serverSideFilters);
114
121
  }
@@ -118,6 +125,13 @@ export class DatasetStrategy {
118
125
  if (request.parentRecordId != undefined) {
119
126
  txProperties["__DATA_UNIT_ADAPTER__[parentRecordId]"] = request.parentRecordId;
120
127
  }
128
+ const loaderProps = dataUnit.getGlobalLoaderProps();
129
+ if (loaderProps == undefined || loaderProps.size === 0) {
130
+ return txProperties;
131
+ }
132
+ Array.from(loaderProps.entries()).forEach(([name, value]) => {
133
+ txProperties[name] = value;
134
+ });
121
135
  return txProperties;
122
136
  }
123
137
  processRecords(dataUnit, fields, responseRecords) {
@@ -1,4 +1,4 @@
1
- import { DataType } from "@sankhyalabs/core";
1
+ import { ApplicationContext, DataType } from "@sankhyalabs/core";
2
2
  import { gql } from "graphql-request";
3
3
  import { DataFetcher } from "../DataFetcher";
4
4
  export class PesquisaFetcher {
@@ -67,6 +67,12 @@ export class PesquisaFetcher {
67
67
  externalCriteria.params = {
68
68
  param: values.criteria.params.map(param => {
69
69
  let value = param.value;
70
+ if (typeof value === "string") {
71
+ const match = /CTX\{([^}]+)\}/.exec(value);
72
+ if (match) {
73
+ value = ApplicationContext.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${match[1]})__`);
74
+ }
75
+ }
70
76
  let type = param.dataType;
71
77
  if (type === DataType.OBJECT) {
72
78
  value = value.value;
@@ -4,7 +4,7 @@ export { CrudUtils } from './utils/CrudUtils';
4
4
  export { PresentationMode } from "./@types";
5
5
  export { TotalsFetcher } from './http/data-fetcher/fetchers/totals-fetcher';
6
6
  export { default as ApplicationConfigFetcher } from './http/data-fetcher/fetchers/application-config-fetcher';
7
- export { AttachFetcher } from './http/data-fetcher/fetchers/attach-fetcher';
7
+ export { AttachFetcher, AnexoSistemaFetcher } from './http/data-fetcher/fetchers/AttachFetcher';
8
8
  export { default as DataUnitFetcher } from './http/data-fetcher/fetchers/data-unit/dataunit-fetcher';
9
9
  export { default as FilterBarConfigFetcher } from './http/data-fetcher/fetchers/filter-bar-config-fetcher';
10
10
  export { FormConfigFetcher } from './http/data-fetcher/fetchers/form-config-fetcher';