@sankhyalabs/sankhyablocks 8.15.0-dev.2 → 8.15.0-dev.21

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 (231) hide show
  1. package/dist/cjs/{ConfigStorage-0d507a8f.js → ConfigStorage-302bbbd4.js} +25 -15
  2. package/dist/cjs/{ISave-d68ce3cd.js → ISave-e91b70a7.js} +1 -0
  3. package/dist/cjs/{SnkFormConfigManager-467907f6.js → SnkFormConfigManager-71c4768e.js} +1 -1
  4. package/dist/cjs/{SnkMessageBuilder-7293d0ad.js → SnkMessageBuilder-e7dcf408.js} +13 -0
  5. package/dist/cjs/{index-0e663819.js → index-0922807b.js} +1 -0
  6. package/dist/cjs/loader.cjs.js +1 -1
  7. package/dist/cjs/{dataunit-fetcher-bdaf9482.js → pesquisa-fetcher-c790ffb7.js} +254 -34
  8. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  9. package/dist/cjs/snk-actions-button_2.cjs.entry.js +23 -5
  10. package/dist/cjs/snk-application.cjs.entry.js +95 -6
  11. package/dist/cjs/snk-attach.cjs.entry.js +395 -57
  12. package/dist/cjs/snk-crud.cjs.entry.js +10 -8
  13. package/dist/cjs/snk-data-exporter.cjs.entry.js +4 -4
  14. package/dist/cjs/{snk-data-unit-1bc69073.js → snk-data-unit-82c08a8c.js} +1 -1
  15. package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
  16. package/dist/cjs/snk-detail-view.cjs.entry.js +8 -9
  17. package/dist/cjs/snk-entity-list.cjs.entry.js +5 -3
  18. package/dist/cjs/snk-filter-bar.cjs.entry.js +57 -7
  19. package/dist/cjs/snk-filter-item.cjs.entry.js +3 -0
  20. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +1 -2
  21. package/dist/cjs/snk-filter-modal.cjs.entry.js +16 -1
  22. package/dist/cjs/snk-filter-multi-select.cjs.entry.js +2 -1
  23. package/dist/cjs/snk-form.cjs.entry.js +2 -2
  24. package/dist/cjs/snk-grid-config.cjs.entry.js +1 -1
  25. package/dist/cjs/snk-grid.cjs.entry.js +42 -18
  26. package/dist/cjs/{snk-guides-viewer-9342bca1.js → snk-guides-viewer-32c1d35d.js} +9 -10
  27. package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -8
  28. package/dist/cjs/snk-personalized-filter.cjs.entry.js +2 -2
  29. package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +19 -8
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +53 -5
  32. package/dist/cjs/{taskbar-elements-b8c428a9.js → taskbar-elements-01b85b99.js} +1 -1
  33. package/dist/collection/collection-manifest.json +1 -1
  34. package/dist/collection/components/snk-application/__mocks__/snk-application.js +7 -0
  35. package/dist/collection/components/snk-application/snk-application.js +111 -5
  36. package/dist/collection/components/snk-attach/snk-attach.js +194 -38
  37. package/dist/collection/components/snk-attach/structure/{crud-config-builder.js → builder/anexo-sistema-crud-config.builder.js} +1 -1
  38. package/dist/collection/components/snk-attach/structure/builder/attach-crud-config.builder.js +62 -0
  39. package/dist/collection/components/snk-attach/structure/{taskbar-builder.js → builder/taskbar-builder.js} +1 -1
  40. package/dist/collection/components/snk-attach/structure/fetcher/facade/fetcher.facade.js +1 -0
  41. package/dist/collection/components/snk-attach/structure/{data-unit-builder.js → fetcher/factory/anexo-sistema-data-unit.factory.js} +14 -11
  42. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +111 -0
  43. package/dist/collection/components/snk-attach/structure/index.js +6 -3
  44. package/dist/collection/components/snk-crud/snk-crud.js +24 -4
  45. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.css +11 -2
  46. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +4 -4
  47. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +1 -1
  48. package/dist/collection/components/snk-entity-list/snk-entity-list.js +5 -3
  49. package/dist/collection/components/snk-filter-bar/filter-item/editors/snk-filter-multi-select.js +2 -1
  50. package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +3 -0
  51. package/dist/collection/components/snk-filter-bar/filter-modal/snk-filter-modal.js +84 -2
  52. package/dist/collection/components/snk-filter-bar/filter-modal/subcomponents/snk-filter-modal-item.js +0 -1
  53. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +101 -5
  54. package/dist/collection/components/snk-filter-bar/utils/SnkFilterModalFactory.js +5 -1
  55. package/dist/collection/components/snk-grid/snk-grid.js +57 -16
  56. package/dist/collection/components/snk-personalized-filter/snk-personalized-filter.js +1 -1
  57. package/dist/collection/components/snk-pesquisa/snk-pesquisa.css +2 -4
  58. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +53 -1
  59. package/dist/collection/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.js +26 -1
  60. package/dist/collection/components/snk-taskbar/snk-taskbar.css +17 -0
  61. package/dist/collection/components/snk-taskbar/snk-taskbar.js +89 -4
  62. package/dist/collection/lib/@types/index.js +1 -0
  63. package/dist/collection/lib/configs/ConfigStorage.js +24 -14
  64. package/dist/collection/lib/dataUnit/InMemoryLoader.js +1 -1
  65. package/dist/collection/lib/http/data-fetcher/fetchers/{attach-fetcher.js → AttachFetcher/anexo-sistema-fetcher.js} +16 -15
  66. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.js +90 -0
  67. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.js +1 -0
  68. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/index.js +2 -0
  69. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDelete.js +1 -0
  70. package/dist/collection/lib/http/data-fetcher/fetchers/AttachFetcher/interfaces/IDownloadKey.js +1 -0
  71. package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.js +1 -0
  72. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.js +31 -3
  73. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +55 -31
  74. package/dist/collection/lib/http/data-fetcher/fetchers/filter-bar-config-fetcher.js +1 -1
  75. package/dist/collection/lib/http/data-fetcher/fetchers/parameters-fecher.js +21 -0
  76. package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +10 -4
  77. package/dist/collection/lib/index.js +1 -1
  78. package/dist/collection/lib/message/resources/snk-attach.msg.js +13 -0
  79. package/dist/components/ConfigStorage.js +25 -15
  80. package/dist/components/SnkMessageBuilder.js +13 -0
  81. package/dist/components/dataunit-fetcher.js +96 -38
  82. package/dist/components/index2.js +1 -0
  83. package/dist/components/snk-actions-button2.js +1 -0
  84. package/dist/components/snk-application2.js +94 -3
  85. package/dist/components/snk-attach2.js +400 -56
  86. package/dist/components/snk-crud.js +7 -3
  87. package/dist/components/snk-data-exporter2.js +1 -1
  88. package/dist/components/snk-detail-view2.js +4 -4
  89. package/dist/components/snk-entity-list.js +5 -3
  90. package/dist/components/snk-filter-bar2.js +59 -7
  91. package/dist/components/snk-filter-item2.js +3 -0
  92. package/dist/components/snk-filter-modal-item2.js +0 -1
  93. package/dist/components/snk-filter-modal.js +21 -3
  94. package/dist/components/snk-filter-multi-select.js +2 -1
  95. package/dist/components/snk-grid2.js +40 -15
  96. package/dist/components/snk-personalized-filter2.js +1 -1
  97. package/dist/components/snk-pesquisa2.js +1 -1
  98. package/dist/components/snk-simple-crud2.js +15 -1
  99. package/dist/components/snk-taskbar2.js +55 -4
  100. package/dist/components/taskbar-actions-button2.js +21 -2
  101. package/dist/esm/{ConfigStorage-379a9cba.js → ConfigStorage-4151acc8.js} +25 -15
  102. package/dist/esm/{ISave-4412b20c.js → ISave-d8c8bc59.js} +1 -0
  103. package/dist/esm/{SnkFormConfigManager-587e9030.js → SnkFormConfigManager-5c7d3771.js} +1 -1
  104. package/dist/esm/{SnkMessageBuilder-ca843d1b.js → SnkMessageBuilder-0fb796b9.js} +13 -0
  105. package/dist/esm/{index-1564817d.js → index-0ece87a6.js} +1 -0
  106. package/dist/esm/loader.js +1 -1
  107. package/dist/esm/{dataunit-fetcher-cc1650eb.js → pesquisa-fetcher-4000d0b8.js} +255 -36
  108. package/dist/esm/sankhyablocks.js +1 -1
  109. package/dist/esm/snk-actions-button_2.entry.js +23 -5
  110. package/dist/esm/snk-application.entry.js +95 -6
  111. package/dist/esm/snk-attach.entry.js +396 -58
  112. package/dist/esm/snk-crud.entry.js +10 -8
  113. package/dist/esm/snk-data-exporter.entry.js +4 -4
  114. package/dist/esm/{snk-data-unit-6208ebf0.js → snk-data-unit-5d201fb3.js} +1 -1
  115. package/dist/esm/snk-data-unit.entry.js +2 -2
  116. package/dist/esm/snk-detail-view.entry.js +8 -9
  117. package/dist/esm/snk-entity-list.entry.js +5 -3
  118. package/dist/esm/snk-filter-bar.entry.js +57 -7
  119. package/dist/esm/snk-filter-item.entry.js +3 -0
  120. package/dist/esm/snk-filter-modal-item.entry.js +1 -2
  121. package/dist/esm/snk-filter-modal.entry.js +16 -1
  122. package/dist/esm/snk-filter-multi-select.entry.js +2 -1
  123. package/dist/esm/snk-form.entry.js +2 -2
  124. package/dist/esm/snk-grid-config.entry.js +1 -1
  125. package/dist/esm/snk-grid.entry.js +42 -18
  126. package/dist/esm/{snk-guides-viewer-9ce9588c.js → snk-guides-viewer-8adacfd4.js} +9 -10
  127. package/dist/esm/snk-guides-viewer.entry.js +7 -8
  128. package/dist/esm/snk-personalized-filter.entry.js +2 -2
  129. package/dist/esm/snk-pesquisa.entry.js +1 -1
  130. package/dist/esm/snk-simple-crud.entry.js +17 -6
  131. package/dist/esm/snk-taskbar.entry.js +54 -6
  132. package/dist/esm/{taskbar-elements-26c981af.js → taskbar-elements-d4d0b424.js} +1 -1
  133. package/dist/sankhyablocks/{p-ff6064e7.js → p-05243555.js} +1 -1
  134. package/dist/sankhyablocks/p-0574c231.entry.js +1 -0
  135. package/dist/sankhyablocks/p-0eb1ff03.js +65 -0
  136. package/dist/sankhyablocks/p-11bbb65e.entry.js +1 -0
  137. package/dist/sankhyablocks/{p-729f5f5b.entry.js → p-1d75d9f9.entry.js} +1 -1
  138. package/dist/sankhyablocks/{p-9e7d65a4.js → p-21749402.js} +1 -1
  139. package/dist/sankhyablocks/p-2419f19f.js +1 -0
  140. package/dist/sankhyablocks/p-33718dfc.entry.js +1 -0
  141. package/dist/sankhyablocks/p-374d03f6.js +1 -0
  142. package/dist/sankhyablocks/p-38289a55.js +1 -0
  143. package/dist/sankhyablocks/p-3838d2ff.entry.js +1 -0
  144. package/dist/sankhyablocks/{p-35fe6e61.entry.js → p-40915359.entry.js} +1 -1
  145. package/dist/sankhyablocks/p-45d82274.entry.js +1 -0
  146. package/dist/sankhyablocks/{p-2028633c.js → p-573a07c5.js} +1 -1
  147. package/dist/sankhyablocks/p-70a4af56.entry.js +1 -0
  148. package/dist/sankhyablocks/{p-aaa1438e.entry.js → p-761ed32f.entry.js} +1 -1
  149. package/dist/sankhyablocks/p-79b4b271.entry.js +1 -0
  150. package/dist/sankhyablocks/p-7f3c7b09.entry.js +1 -0
  151. package/dist/sankhyablocks/{p-6977a26c.entry.js → p-86801b08.entry.js} +1 -1
  152. package/dist/sankhyablocks/p-96ef14f9.entry.js +1 -0
  153. package/dist/sankhyablocks/p-aa95fb2c.js +56 -0
  154. package/dist/sankhyablocks/p-bf2acf72.entry.js +1 -0
  155. package/dist/sankhyablocks/p-c4874327.entry.js +1 -0
  156. package/dist/sankhyablocks/{p-247a8b36.entry.js → p-d1791da2.entry.js} +1 -1
  157. package/dist/sankhyablocks/p-db4edd06.entry.js +11 -0
  158. package/dist/sankhyablocks/p-df2b84c4.entry.js +1 -0
  159. package/dist/sankhyablocks/p-e0b23084.entry.js +1 -0
  160. package/dist/sankhyablocks/p-e0fd9555.entry.js +1 -0
  161. package/dist/sankhyablocks/p-ed2dce4b.entry.js +1 -0
  162. package/dist/sankhyablocks/{p-32f0935f.js → p-f3d1c48e.js} +1 -1
  163. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  164. package/dist/types/components/snk-actions-button/subcomponents/snk-actions-form.d.ts +1 -1
  165. package/dist/types/components/snk-application/__mocks__/snk-application.d.ts +3 -0
  166. package/dist/types/components/snk-application/snk-application.d.ts +12 -2
  167. package/dist/types/components/snk-attach/{structure/crud-config-builder.d.ts → interfaces/ICrudConfig.d.ts} +1 -2
  168. package/dist/types/components/snk-attach/interfaces/TFetcherType.d.ts +1 -0
  169. package/dist/types/components/snk-attach/snk-attach.d.ts +28 -6
  170. package/dist/types/components/snk-attach/structure/builder/anexo-sistema-crud-config.builder.d.ts +2 -0
  171. package/dist/types/components/snk-attach/structure/builder/attach-crud-config.builder.d.ts +31 -0
  172. package/dist/types/components/snk-attach/structure/{taskbar-builder.d.ts → builder/taskbar-builder.d.ts} +1 -1
  173. package/dist/types/components/snk-attach/structure/fetcher/facade/fetcher.facade.d.ts +11 -0
  174. package/dist/types/components/snk-attach/structure/fetcher/factory/anexo-sistema-data-unit.factory.d.ts +17 -0
  175. package/dist/types/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.d.ts +15 -0
  176. package/dist/types/components/snk-attach/structure/index.d.ts +6 -3
  177. package/dist/types/components/snk-crud/snk-crud.d.ts +5 -0
  178. package/dist/types/components/snk-filter-bar/filter-item/snk-filter-item.d.ts +1 -1
  179. package/dist/types/components/snk-filter-bar/filter-modal/snk-filter-modal.d.ts +19 -1
  180. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +18 -0
  181. package/dist/types/components/snk-filter-bar/utils/SnkFilterModalFactory.d.ts +7 -1
  182. package/dist/types/components/snk-grid/snk-grid.d.ts +6 -0
  183. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -1
  184. package/dist/types/components/snk-taskbar/elements/taskbar-actions-button/taskbar-actions-button.d.ts +2 -0
  185. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +20 -1
  186. package/dist/types/components/snk-taskbar/subcomponents/field-search.d.ts +1 -0
  187. package/dist/types/components.d.ts +140 -13
  188. package/dist/types/lib/@types/index.d.ts +2 -1
  189. package/dist/types/lib/configs/ConfigStorage.d.ts +4 -0
  190. package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +1 -1
  191. package/dist/types/lib/http/data-fetcher/fetchers/{attach-fetcher.d.ts → AttachFetcher/anexo-sistema-fetcher.d.ts} +3 -2
  192. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/attach-fetcher.d.ts +11 -0
  193. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/facade/attach-fetcher.facade.d.ts +8 -0
  194. package/dist/types/lib/http/data-fetcher/fetchers/AttachFetcher/index.d.ts +3 -0
  195. package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/ISave.d.ts +2 -1
  196. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/dataunit-fetcher.d.ts +2 -0
  197. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +4 -1
  198. package/dist/types/lib/http/data-fetcher/fetchers/parameters-fecher.d.ts +1 -0
  199. package/dist/types/lib/index.d.ts +1 -1
  200. package/package.json +15 -6
  201. package/dist/cjs/pesquisa-fetcher-ef050a47.js +0 -167
  202. package/dist/esm/pesquisa-fetcher-dd3ca0a5.js +0 -165
  203. package/dist/sankhyablocks/p-145c4434.js +0 -1
  204. package/dist/sankhyablocks/p-17dda7a2.entry.js +0 -1
  205. package/dist/sankhyablocks/p-19f51c6b.entry.js +0 -11
  206. package/dist/sankhyablocks/p-20726710.entry.js +0 -1
  207. package/dist/sankhyablocks/p-311c6173.entry.js +0 -1
  208. package/dist/sankhyablocks/p-4396d1a6.js +0 -56
  209. package/dist/sankhyablocks/p-44e894af.entry.js +0 -1
  210. package/dist/sankhyablocks/p-4775a293.entry.js +0 -1
  211. package/dist/sankhyablocks/p-4b0ea83f.entry.js +0 -1
  212. package/dist/sankhyablocks/p-5534e08c.js +0 -1
  213. package/dist/sankhyablocks/p-78777ae0.entry.js +0 -1
  214. package/dist/sankhyablocks/p-953346b9.entry.js +0 -1
  215. package/dist/sankhyablocks/p-9c3229fc.entry.js +0 -1
  216. package/dist/sankhyablocks/p-a037f5b4.entry.js +0 -1
  217. package/dist/sankhyablocks/p-a702a1a2.js +0 -60
  218. package/dist/sankhyablocks/p-c259545b.entry.js +0 -1
  219. package/dist/sankhyablocks/p-d1677df0.entry.js +0 -1
  220. package/dist/sankhyablocks/p-d4f9ee17.entry.js +0 -1
  221. package/dist/sankhyablocks/p-d9bb09b3.js +0 -6
  222. package/dist/sankhyablocks/p-dd6a8377.js +0 -1
  223. package/dist/sankhyablocks/p-e138e7d4.entry.js +0 -1
  224. package/dist/sankhyablocks/p-e1b29d4c.entry.js +0 -1
  225. package/dist/types/components/snk-attach/structure/data-unit-builder.d.ts +0 -15
  226. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDelete.js → components/snk-attach/interfaces/ICrudConfig.js} +0 -0
  227. /package/dist/collection/{lib/http/data-fetcher/fetchers/fecthAttach/interfaces/IDownloadKey.js → components/snk-attach/interfaces/TFetcherType.js} +0 -0
  228. /package/dist/collection/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.js +0 -0
  229. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDelete.d.ts +0 -0
  230. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/IDownloadKey.d.ts +0 -0
  231. /package/dist/types/lib/http/data-fetcher/fetchers/{fecthAttach → AttachFetcher}/interfaces/index.d.ts +0 -0
@@ -150,7 +150,7 @@ class FilterBarConfigFetcher extends formConfigFetcher.ResourceFetcher {
150
150
  multilistValueArray = Array.isArray(multilistValueArray) ? multilistValueArray : [multilistValueArray];
151
151
  // Existem cenários onde o HTML5 não salva o Id do filtro, apenas seu label e value
152
152
  multilistValueArray = multilistValueArray.map(itemRaw => {
153
- return Object.assign(Object.assign({}, itemRaw), { id: itemRaw.id ? itemRaw.id : itemRaw.value });
153
+ return Object.assign(Object.assign({}, itemRaw), { id: (itemRaw.id !== undefined) ? itemRaw.id : itemRaw.value });
154
154
  });
155
155
  item.value = core.ObjectUtils.copy(multilistValueArray);
156
156
  }
@@ -353,11 +353,12 @@ class PersonalizedFilterFetcher {
353
353
  }
354
354
  }
355
355
 
356
- const CONFIG_SOURCE = {
357
- form: "form",
358
- grid: "grid",
359
- filterBar: "filterBar"
360
- };
356
+ var CONFIG_SOURCE;
357
+ (function (CONFIG_SOURCE) {
358
+ CONFIG_SOURCE["form"] = "form";
359
+ CONFIG_SOURCE["grid"] = "grid";
360
+ CONFIG_SOURCE["filterBar"] = "filterBar";
361
+ })(CONFIG_SOURCE || (CONFIG_SOURCE = {}));
361
362
  class ConfigStorage {
362
363
  static preload(resourceID, configName) {
363
364
  ConfigStorage.loadFormConfig(configName, resourceID);
@@ -385,13 +386,11 @@ class ConfigStorage {
385
386
  return ConfigStorage.configById.get(cacheID);
386
387
  }
387
388
  static async saveFilterBarConfig(config, name, resourceID) {
388
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.filterBar, resourceID);
389
- this.configById.delete(cacheID);
389
+ await this.deleteFilterBarConfigCache(name, resourceID);
390
390
  return this.filterBarConfigFetcher.saveConfig(config, resourceID, name);
391
391
  }
392
392
  static async saveFormConfig(config, name, resourceID) {
393
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.form, resourceID);
394
- this.configById.delete(cacheID);
393
+ await this.deleteFormConfigCache(name, resourceID);
395
394
  return this.formConfigFetcher.saveConfig(config, name, resourceID);
396
395
  }
397
396
  static async saveCardState(config, name, resourceID) {
@@ -401,18 +400,16 @@ class ConfigStorage {
401
400
  if (config == undefined) {
402
401
  return;
403
402
  }
404
- const cacheID = this.buildCacheID(name, CONFIG_SOURCE.grid, resourceID);
405
- this.configById.delete(cacheID);
403
+ await this.deleteGridConfigCache(name, resourceID);
406
404
  return this.gridConfigFetcher.saveConfig(config, name, resourceID);
407
405
  }
408
406
  static async loadPersonalizedFilter(filterId, resourceID, configName) {
409
407
  return this.personalizedFilterFetcher.loadPersonalizedFilter(resourceID, filterId, configName);
410
408
  }
411
409
  static async savePersonalizedFilter(personalizedFilter, resourceID, configName) {
412
- //Ao criar ou alterar um filtro personalizado,
410
+ //Ao criar ou alterar um filtro personalizado,
413
411
  //precisamos remover o cache do status da filterbar.
414
- const cacheID = this.buildCacheID(configName, CONFIG_SOURCE.filterBar, resourceID);
415
- this.configById.delete(cacheID);
412
+ await this.deleteFilterBarConfigCache(configName, resourceID);
416
413
  return this.personalizedFilterFetcher.savePersonalizedFilter(personalizedFilter, resourceID, configName);
417
414
  }
418
415
  static async removePersonalizedFilter(personalizedFilter, resourceID, configName) {
@@ -421,6 +418,19 @@ class ConfigStorage {
421
418
  static async validatePersonalizedFilter(dataUnitName, expression) {
422
419
  return this.personalizedFilterFetcher.validatePersonalizedFilter(dataUnitName, expression);
423
420
  }
421
+ static async deleteGridConfigCache(name, resourceID) {
422
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.grid);
423
+ }
424
+ static async deleteFormConfigCache(name, resourceID) {
425
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.form);
426
+ }
427
+ static async deleteFilterBarConfigCache(name, resourceID) {
428
+ await this.deleteConfigCache(name, resourceID, CONFIG_SOURCE.filterBar);
429
+ }
430
+ static async deleteConfigCache(name, resourceID, source) {
431
+ const cacheID = ConfigStorage.buildCacheID(name, source, resourceID);
432
+ this.configById.delete(cacheID);
433
+ }
424
434
  static buildCacheID(name, source, resourceID) {
425
435
  if (name == undefined) {
426
436
  return `req_${source}_${resourceID}`;
@@ -5,4 +5,5 @@ exports.SaveErrorsEnum = void 0;
5
5
  SaveErrorsEnum["LINK_AND_FILE_AT_THE_SAME_TIME"] = "LINK_AND_FILE_AT_THE_SAME_TIME";
6
6
  SaveErrorsEnum["ANY_LINK_OR_FILE_FILLED"] = "ANY_LINK_OR_FILE_FILLED";
7
7
  SaveErrorsEnum["UNKNOWN"] = "UNKNOWN";
8
+ SaveErrorsEnum["DESCRIPTION_CANNOT_BE_CHANGED"] = "DESCRIPTION_CANNOT_BE_CHANGED";
8
9
  })(exports.SaveErrorsEnum || (exports.SaveErrorsEnum = {}));
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const ConfigStorage = require('./ConfigStorage-0d507a8f.js');
3
+ const ConfigStorage = require('./ConfigStorage-302bbbd4.js');
4
4
  const core = require('@sankhyalabs/core');
5
5
  const formConfigFetcher = require('./form-config-fetcher-df043d3d.js');
6
6
 
@@ -373,11 +373,24 @@ const snkAttachMessages = {
373
373
  anyLinkOrFileFilled: {
374
374
  title: "Atenção",
375
375
  message: `É necessário preencher o campo "Link" ou anexar um arquivo.`
376
+ },
377
+ descriptionCannotBeChanged: {
378
+ title: "Atenção",
379
+ message: "O campo 'Descrição' não pode ser alterado."
376
380
  }
377
381
  },
378
382
  taskbar: {
379
383
  titleDownload: "Fazer download",
380
384
  titleLink: "Abrir link",
385
+ },
386
+ attachMetadata: {
387
+ lblCode: "Código",
388
+ lblDescription: "Descrição",
389
+ lblFileOrLink: "Arquivo / Link",
390
+ lblUser: "Usuário",
391
+ lblDate: "Data de alteração",
392
+ lblFile: "Arquivo",
393
+ lblSubTitle: "Clique para selecionar um arquivo",
381
394
  }
382
395
  };
383
396
 
@@ -4,6 +4,7 @@ exports.PresentationMode = void 0;
4
4
  (function (PresentationMode) {
5
5
  PresentationMode["PRIMARY"] = "primary";
6
6
  PresentationMode["SECONDARY"] = "secondary";
7
+ PresentationMode["SINGLE_TASKBAR"] = "singleTaskbar";
7
8
  })(exports.PresentationMode || (exports.PresentationMode = {}));
8
9
  exports.DataExporterOption = void 0;
9
10
  (function (DataExporterOption) {
@@ -14,7 +14,7 @@ const patchEsm = () => {
14
14
  const defineCustomElements = (win, options) => {
15
15
  if (typeof window === 'undefined') return Promise.resolve();
16
16
  return patchEsm().then(() => {
17
- return index.bootstrapLazy(JSON.parse("[[\"snk-filter-modal.cjs\",[[0,\"snk-filter-modal\",{\"getMessage\":[16],\"configName\":[1025,\"config-name\"],\"filters\":[1040],\"applyFilters\":[16],\"closeModal\":[16],\"addPersonalizedFilter\":[16],\"editPersonalizedFilter\":[16]}]]],[\"snk-actions-form.cjs\",[[2,\"snk-actions-form\",{\"action\":[16],\"applyParameters\":[16],\"dataUnit\":[32],\"openPopup\":[64]}]]],[\"snk-client-confirm.cjs\",[[2,\"snk-client-confirm\",{\"titleMessage\":[1,\"title-message\"],\"message\":[1],\"accept\":[16],\"cancel\":[16],\"openPopup\":[64]}]]],[\"snk-custom-slot-elements.cjs\",[[6,\"snk-custom-slot-elements\",{\"slotName\":[1,\"slot-name\"]}]]],[\"snk-entity-list.cjs\",[[2,\"snk-entity-list\",{\"config\":[1040],\"rightListSlotBuilder\":[1040],\"maxHeightList\":[1,\"max-height-list\"],\"_searchValue\":[32],\"_ezListSource\":[32],\"reloadList\":[64]}]]],[\"snk-filter-binary-select.cjs\",[[0,\"snk-filter-binary-select\",{\"value\":[1544],\"config\":[16],\"presentationMode\":[2,\"presentation-mode\"],\"resetValues\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-checkbox-list.cjs\",[[0,\"snk-filter-checkbox-list\",{\"config\":[1040],\"optionsList\":[32]}]]],[\"snk-filter-list.cjs\",[[4,\"snk-filter-list\",{\"label\":[1],\"iconName\":[1,\"icon-name\"],\"items\":[16],\"getMessage\":[16],\"emptyText\":[1,\"empty-text\"],\"findFilterText\":[1,\"find-filter-text\"],\"buttonClass\":[1,\"button-class\"],\"_filterArgument\":[32],\"_showAll\":[32],\"hideDetail\":[64]},[[2,\"keydown\",\"keyDownHandler\"]]]]],[\"snk-filter-multi-select.cjs\",[[0,\"snk-filter-multi-select\",{\"value\":[1544],\"config\":[16],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-number.cjs\",[[0,\"snk-filter-number\",{\"config\":[16],\"getMessage\":[16],\"value\":[2],\"presentationMode\":[2,\"presentation-mode\"],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-period.cjs\",[[0,\"snk-filter-period\",{\"config\":[16],\"getMessage\":[16],\"value\":[8],\"presentationMode\":[2,\"presentation-mode\"],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-search.cjs\",[[0,\"snk-filter-search\",{\"config\":[16],\"value\":[16],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-text.cjs\",[[0,\"snk-filter-text\",{\"config\":[16],\"value\":[1]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-personalized-filter-editor.cjs\",[[2,\"snk-personalized-filter-editor\",{\"messagesBuilder\":[1040],\"presentationMode\":[2,\"presentation-mode\"],\"config\":[16],\"value\":[1040],\"items\":[32],\"show\":[64]}]]],[\"snk-print-selector.cjs\",[[2,\"snk-print-selector\",{\"_printServerActive\":[32],\"_selectedPrinter\":[32],\"_remotePrintersDataSource\":[32],\"_localPrintersDataSource\":[32],\"_printJobData\":[32],\"openPrintSelector\":[64]}]]],[\"snk-simple-bar.cjs\",[[6,\"snk-simple-bar\",{\"label\":[1],\"breadcrumbItens\":[16],\"messagesBuilder\":[1040]}]]],[\"snk-expression-group_2.cjs\",[[2,\"snk-expression-group\",{\"parentTop\":[1026,\"parent-top\"],\"group\":[1040],\"messagesBuilder\":[1040],\"filterId\":[1025,\"filter-id\"],\"entityURI\":[1025,\"entity-u-r-i\"],\"_conditionOperator\":[32],\"_group\":[32],\"_selfTop\":[32],\"canAddExpression\":[32],\"_showDashes\":[32],\"getExpressionGroup\":[64]},[[8,\"ezExpressionLayoutChanged\",\"todoCompletedHandler\"]]],[2,\"snk-expression-item\",{\"expression\":[16],\"canRemove\":[516,\"can-remove\"],\"messagesBuilder\":[1040],\"entityURI\":[1025,\"entity-u-r-i\"],\"_showValueVariable\":[32],\"_fieldSelected\":[32],\"_optionNotNull\":[32]}]]],[\"snk-filter-advanced-mode_2.cjs\",[[2,\"snk-filter-assistent-mode\",{\"filterAssistent\":[1040],\"messagesBuilder\":[1040],\"filterId\":[1025,\"filter-id\"],\"entityUri\":[1025,\"entity-uri\"],\"application\":[1040]}],[2,\"snk-filter-advanced-mode\",{\"filterAssistent\":[1040],\"application\":[1040]}]]],[\"snk-personalized-filter.cjs\",[[2,\"snk-personalized-filter\",{\"messagesBuilder\":[1040],\"entityUri\":[1025,\"entity-uri\"],\"filterId\":[1025,\"filter-id\"],\"configName\":[1025,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"_filterAssistentMode\":[32],\"_filterAssistent\":[32],\"createPersonalizedFilter\":[64]}]]],[\"snk-detail-view.cjs\",[[6,\"snk-detail-view\",{\"formConfigManager\":[1040],\"dataUnitName\":[1,\"data-unit-name\"],\"resourceID\":[1,\"resource-i-d\"],\"guideItemPath\":[16],\"entityName\":[1,\"entity-name\"],\"label\":[1],\"dataUnit\":[1040],\"selectedForm\":[1025,\"selected-form\"],\"dataState\":[1040],\"messagesBuilder\":[1040],\"branchGuide\":[1040],\"canEdit\":[4,\"can-edit\"],\"taskbarCustomContainerId\":[1,\"taskbar-custom-container-id\"],\"_disabledButtons\":[32],\"_currentView\":[32],\"attachmentRegisterKey\":[32],\"changeViewMode\":[64],\"configGrid\":[64],\"showUp\":[64]},[[0,\"snkContentCardChanged\",\"onContentCardChanged\"]]]]],[\"snk-configurator.cjs\",[[2,\"snk-configurator\",{\"showActionButtons\":[4,\"show-action-buttons\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"viewMode\":[2,\"view-mode\"],\"customContainerId\":[1,\"custom-container-id\"],\"messagesBuilder\":[1040],\"_opened\":[32],\"_permissions\":[32],\"open\":[64],\"close\":[64]}]]],[\"snk-pesquisa.cjs\",[[2,\"snk-pesquisa\",{\"searchLoader\":[16],\"selectItem\":[16],\"argument\":[1025],\"_itemList\":[32],\"_startLoading\":[32]}]]],[\"teste-pesquisa.cjs\",[[1,\"teste-pesquisa\"]]],[\"snk-filter-modal-item.cjs\",[[0,\"snk-filter-modal-item\",{\"filterItem\":[1040],\"configName\":[1025,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"]}]]],[\"snk-filter-bar.cjs\",[[2,\"snk-filter-bar\",{\"dataUnit\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"filterConfig\":[1040],\"messagesBuilder\":[1040],\"allowDefault\":[32],\"scrollerLocked\":[32],\"showPersonalizedFilter\":[32],\"personalizedFilterId\":[32],\"reload\":[64],\"getFilterItem\":[64],\"updateFilterItem\":[64],\"addFilterItem\":[64]},[[0,\"filterChange\",\"filterChangeListener\"]]]]],[\"snk-config-options.cjs\",[[2,\"snk-config-options\",{\"fieldConfig\":[16],\"idConfig\":[513,\"id-config\"],\"dataUnit\":[16],\"messagesBuilder\":[1040],\"_defaultType\":[32]}]]],[\"snk-field-config.cjs\",[[2,\"snk-field-config\",{\"isConfigActive\":[16],\"fieldConfig\":[16],\"modeInsertion\":[516,\"mode-insertion\"],\"dataUnit\":[16],\"messagesBuilder\":[1040]}]]],[\"snk-tab-config.cjs\",[[6,\"snk-tab-config\",{\"selectedIndex\":[1538,\"selected-index\"],\"selectedTab\":[1537,\"selected-tab\"],\"tabs\":[1],\"tabItems\":[16],\"messagesBuilder\":[1040],\"_processedTabs\":[32],\"_activeEditText\":[32],\"_activeEditTextIndex\":[32],\"_actionsHide\":[32],\"_actionsShow\":[32]}]]],[\"snk-form-config.cjs\",[[2,\"snk-form-config\",{\"dataUnit\":[16],\"configManager\":[16],\"messagesBuilder\":[1040],\"_formConfigOptions\":[32],\"_fieldConfigSelected\":[32],\"_layoutFormConfig\":[32],\"_fieldsAvailable\":[32],\"_formConfig\":[32],\"_formConfigChanged\":[32],\"_optionFormConfigSelected\":[32],\"_optionFormConfigChanged\":[32],\"_tempGroups\":[32]}]]],[\"snk-select-box.cjs\",[[1,\"snk-select-box\",{\"selectedOption\":[1,\"selected-option\"]}]]],[\"snk-grid-config.cjs\",[[2,\"snk-grid-config\",{\"selectedIndex\":[1026,\"selected-index\"],\"application\":[16],\"columns\":[1040],\"config\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"]}]]],[\"snk-filter-item.cjs\",[[0,\"snk-filter-item\",{\"config\":[1040],\"getMessage\":[16],\"detailIsVisible\":[32],\"showUp\":[64],\"hideDetail\":[64]},[[2,\"click\",\"clickListener\"],[2,\"mousedown\",\"mouseDownListener\"],[0,\"filterChange\",\"filterChangeListener\"]]]]],[\"snk-data-unit.cjs\",[[2,\"snk-data-unit\",{\"dataState\":[1040],\"messagesBuilder\":[1040],\"dataUnitName\":[1,\"data-unit-name\"],\"entityName\":[1,\"entity-name\"],\"pageSize\":[2,\"page-size\"],\"dataUnit\":[1040],\"beforeSave\":[16],\"afterSave\":[16],\"useCancelConfirm\":[4,\"use-cancel-confirm\"],\"ignoreSaveMessage\":[4,\"ignore-save-message\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"getDataUnit\":[64],\"getSelectedRecordsIDsInfo\":[64]}]]],[\"snk-filter-detail.cjs\",[[0,\"snk-filter-detail\",{\"config\":[1040],\"getMessage\":[16],\"show\":[64]}]]],[\"snk-exporter-email-sender.cjs\",[[0,\"snk-exporter-email-sender\",{\"getMessage\":[16],\"_config\":[32],\"_opened\":[32],\"_currentStep\":[32],\"open\":[64],\"close\":[64]}]]],[\"snk-data-exporter.cjs\",[[2,\"snk-data-exporter\",{\"provider\":[16],\"messagesBuilder\":[1040],\"_items\":[32],\"_showDropdown\":[32],\"_releasedToExport\":[32]}]]],[\"snk-taskbar.cjs\",[[6,\"snk-taskbar\",{\"customSlotId\":[1,\"custom-slot-id\"],\"customContainerId\":[1,\"custom-container-id\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"buttons\":[1],\"customButtons\":[16],\"actionsList\":[16],\"primaryButton\":[1,\"primary-button\"],\"disabledButtons\":[16],\"dataUnit\":[16],\"presentationMode\":[1537,\"presentation-mode\"],\"messagesBuilder\":[1040],\"_permissions\":[32],\"_customElements\":[32],\"_customElementsId\":[32],\"_slotContainer\":[32]}]]],[\"snk-grid.cjs\",[[6,\"snk-grid\",{\"columnFilterDataSource\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"selectionToastConfig\":[16],\"actionsList\":[16],\"isDetail\":[4,\"is-detail\"],\"taskbarManager\":[16],\"statusResolver\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"presentationMode\":[1,\"presentation-mode\"],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"recordsValidator\":[16],\"canEdit\":[4,\"can-edit\"],\"taskbarCustomContainerId\":[1,\"taskbar-custom-container-id\"],\"gridHeaderCustomSlotId\":[1,\"grid-header-custom-slot-id\"],\"topTaskbarCustomSlotId\":[1,\"top-taskbar-custom-slot-id\"],\"_dataUnit\":[32],\"_dataState\":[32],\"_gridConfig\":[32],\"_popUpGridConfig\":[32],\"_showSnkFilterBar\":[32],\"showConfig\":[64],\"hideConfig\":[64],\"setConfig\":[64],\"reloadFilterBar\":[64],\"getFilterBar\":[64],\"findColumn\":[64]}]]],[\"snk-guides-viewer.cjs\",[[6,\"snk-guides-viewer\",{\"dataUnit\":[16],\"dataState\":[16],\"configName\":[1,\"config-name\"],\"entityPath\":[1,\"entity-path\"],\"actionsList\":[16],\"recordsValidator\":[16],\"masterFormConfig\":[1040],\"selectedGuide\":[16],\"taskbarManager\":[16],\"messagesBuilder\":[1040],\"canEdit\":[4,\"can-edit\"],\"presentationMode\":[1,\"presentation-mode\"],\"resourceID\":[1,\"resource-i-d\"],\"detailTaskbarCustomContainerId\":[1,\"detail-taskbar-custom-container-id\"],\"_hasToCreateFieldSearch\":[32],\"_breadcrumbItems\":[32],\"_guides\":[32],\"_formEditorConfigManager\":[32],\"_formEditorDataUnit\":[32],\"_fieldToGetFocus\":[32],\"showFormConfig\":[64],\"findField\":[64]},[[2,\"actionClick\",\"onActionClick\"],[0,\"snkContentCardChanged\",\"onContentCardChanged\"]]]]],[\"snk-crud.cjs\",[[6,\"snk-crud\",{\"configName\":[1025,\"config-name\"],\"selectionToastConfig\":[16],\"showActionButtons\":[4,\"show-action-buttons\"],\"actionsList\":[16],\"taskbarManager\":[16],\"recordsValidator\":[16],\"statusResolver\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"presentationMode\":[1,\"presentation-mode\"],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"_dataUnit\":[32],\"_dataState\":[32],\"attachmentRegisterKey\":[32],\"_currentViewMode\":[32],\"_canEdit\":[32],\"_resourceID\":[32],\"customContainerId\":[32],\"goToView\":[64],\"openConfigurator\":[64],\"closeConfigurator\":[64],\"reloadFilterBar\":[64],\"getFilterBar\":[64]}]]],[\"snk-form.cjs\",[[2,\"snk-form\",{\"configName\":[1,\"config-name\"],\"recordsValidator\":[16],\"messagesBuilder\":[1040],\"resourceID\":[1,\"resource-i-d\"],\"_dataUnit\":[32],\"_dataState\":[32],\"_showFormConfig\":[32],\"_configManager\":[32],\"showConfig\":[64],\"hideConfig\":[64]}]]],[\"snk-application.cjs\",[[2,\"snk-application\",{\"messagesBuilder\":[1040],\"configName\":[1,\"config-name\"],\"loadByPK\":[16],\"getKeyboardManager\":[64],\"isUserSup\":[64],\"addPendingAction\":[64],\"callServiceBroker\":[64],\"initOnboarding\":[64],\"hasAccess\":[64],\"getAllAccess\":[64],\"getStringParam\":[64],\"getIntParam\":[64],\"getFloatParam\":[64],\"getBooleanParam\":[64],\"getDateParam\":[64],\"showPopUp\":[64],\"showModal\":[64],\"showAlerts\":[64],\"closeModal\":[64],\"closePopUp\":[64],\"temOpcional\":[64],\"getConfig\":[64],\"saveConfig\":[64],\"getAttributeFromHTMLWrapper\":[64],\"openApp\":[64],\"webConnection\":[64],\"createDataunit\":[64],\"updateDataunitCache\":[64],\"getDataUnit\":[64],\"addClientEvent\":[64],\"removeClientEvent\":[64],\"hasClientEvent\":[64],\"getResourceID\":[64],\"getUserID\":[64],\"alert\":[64],\"error\":[64],\"success\":[64],\"message\":[64],\"confirm\":[64],\"info\":[64],\"loadTotals\":[64],\"isLoadedByPk\":[64],\"executeSearch\":[64],\"executePreparedSearch\":[64],\"isDebugMode\":[64],\"getAppLabel\":[64],\"addSearchListener\":[64],\"importScript\":[64],\"getApplicationPath\":[64],\"executeSelectDistinct\":[64],\"getDataFetcher\":[64],\"whenApplicationReady\":[64]}]]],[\"snk-simple-crud.cjs\",[[6,\"snk-simple-crud\",{\"dataState\":[16],\"dataUnit\":[16],\"mode\":[2],\"gridConfig\":[16],\"formConfig\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"useCancelConfirm\":[4,\"use-cancel-confirm\"],\"taskbarManager\":[16],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"_currentViewMode\":[32],\"_config\":[32],\"_fieldToGetFocus\":[32],\"_formFields\":[32],\"goToView\":[64],\"setMetadata\":[64],\"setRecords\":[64],\"getRecords\":[64]},[[0,\"actionClick\",\"actionClickListener\"]]]]],[\"snk-attach.cjs\",[[2,\"snk-attach\",{\"registerKey\":[1,\"register-key\"],\"entityName\":[1,\"entity-name\"],\"messagesBuilder\":[1040],\"dataUnit\":[32],\"crudConfig\":[32]}]]],[\"snk-form-summary.cjs\",[[2,\"snk-form-summary\",{\"fixed\":[1540],\"contracted\":[1540],\"summary\":[16]}]]],[\"snk-form-view.cjs\",[[6,\"snk-form-view\",{\"levelPath\":[1,\"level-path\"],\"label\":[1],\"name\":[1],\"fields\":[16],\"formMetadata\":[8,\"form-metadata\"],\"dataUnit\":[16],\"contracted\":[4],\"fixed\":[1540],\"summaryFields\":[16],\"canExpand\":[4,\"can-expand\"],\"canFix\":[4,\"can-fix\"],\"recordsValidator\":[16],\"fieldToFocus\":[1,\"field-to-focus\"],\"showUp\":[64]}]]],[\"snk-actions-button_2.cjs\",[[2,\"snk-actions-button\",{\"_items\":[32],\"_showDropdown\":[32],\"_actions\":[32],\"_isOrderActions\":[32]}],[2,\"taskbar-actions-button\",{\"title\":[1],\"enabled\":[4],\"actions\":[16],\"_showDropdown\":[32],\"showActions\":[64],\"hideActions\":[64],\"isOpened\":[64]},[[8,\"keydown\",\"handleKeyDown\"]]]]],[\"snk-filter-field-search_2.cjs\",[[2,\"snk-filter-field-search\",{\"searchable\":[4],\"fieldsDataSource\":[16],\"breadcrumbItems\":[32],\"linkItems\":[32],\"fieldItems\":[32],\"searchEmpty\":[32],\"groupEmpty\":[32],\"show\":[64],\"applyFilter\":[64]}],[0,\"snk-filter-param-config\",{\"messagesBuilder\":[1040],\"_opened\":[32],\"_configType\":[32],\"_expressionItem\":[32],\"_informedInstance\":[32],\"_canSave\":[32],\"open\":[64],\"close\":[64]}]]]]"), options);
17
+ return index.bootstrapLazy(JSON.parse("[[\"snk-filter-modal.cjs\",[[0,\"snk-filter-modal\",{\"getMessage\":[16],\"configName\":[1025,\"config-name\"],\"filters\":[1040],\"applyFilters\":[16],\"closeModal\":[16],\"addPersonalizedFilter\":[16],\"editPersonalizedFilter\":[16],\"deletePersonalizedFilter\":[16],\"filtersToDelete\":[16],\"disablePersonalizedFilter\":[4,\"disable-personalized-filter\"]},[[0,\"deleteFilter\",\"deletePersonalizedFilterListener\"]]]]],[\"snk-actions-form.cjs\",[[2,\"snk-actions-form\",{\"action\":[16],\"applyParameters\":[16],\"dataUnit\":[32],\"openPopup\":[64]}]]],[\"snk-client-confirm.cjs\",[[2,\"snk-client-confirm\",{\"titleMessage\":[1,\"title-message\"],\"message\":[1],\"accept\":[16],\"cancel\":[16],\"openPopup\":[64]}]]],[\"snk-custom-slot-elements.cjs\",[[6,\"snk-custom-slot-elements\",{\"slotName\":[1,\"slot-name\"]}]]],[\"snk-entity-list.cjs\",[[2,\"snk-entity-list\",{\"config\":[1040],\"rightListSlotBuilder\":[1040],\"maxHeightList\":[1,\"max-height-list\"],\"_searchValue\":[32],\"_ezListSource\":[32],\"reloadList\":[64]}]]],[\"snk-filter-binary-select.cjs\",[[0,\"snk-filter-binary-select\",{\"value\":[1544],\"config\":[16],\"presentationMode\":[2,\"presentation-mode\"],\"resetValues\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-checkbox-list.cjs\",[[0,\"snk-filter-checkbox-list\",{\"config\":[1040],\"optionsList\":[32]}]]],[\"snk-filter-list.cjs\",[[4,\"snk-filter-list\",{\"label\":[1],\"iconName\":[1,\"icon-name\"],\"items\":[16],\"getMessage\":[16],\"emptyText\":[1,\"empty-text\"],\"findFilterText\":[1,\"find-filter-text\"],\"buttonClass\":[1,\"button-class\"],\"_filterArgument\":[32],\"_showAll\":[32],\"hideDetail\":[64]},[[2,\"keydown\",\"keyDownHandler\"]]]]],[\"snk-filter-multi-select.cjs\",[[0,\"snk-filter-multi-select\",{\"value\":[1544],\"config\":[16],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-number.cjs\",[[0,\"snk-filter-number\",{\"config\":[16],\"getMessage\":[16],\"value\":[2],\"presentationMode\":[2,\"presentation-mode\"],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-period.cjs\",[[0,\"snk-filter-period\",{\"config\":[16],\"getMessage\":[16],\"value\":[8],\"presentationMode\":[2,\"presentation-mode\"],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-search.cjs\",[[0,\"snk-filter-search\",{\"config\":[16],\"value\":[16],\"show\":[64]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-filter-text.cjs\",[[0,\"snk-filter-text\",{\"config\":[16],\"value\":[1]},[[0,\"ezChange\",\"ezChangeListener\"]]]]],[\"snk-personalized-filter-editor.cjs\",[[2,\"snk-personalized-filter-editor\",{\"messagesBuilder\":[1040],\"presentationMode\":[2,\"presentation-mode\"],\"config\":[16],\"value\":[1040],\"items\":[32],\"show\":[64]}]]],[\"snk-print-selector.cjs\",[[2,\"snk-print-selector\",{\"_printServerActive\":[32],\"_selectedPrinter\":[32],\"_remotePrintersDataSource\":[32],\"_localPrintersDataSource\":[32],\"_printJobData\":[32],\"openPrintSelector\":[64]}]]],[\"snk-simple-bar.cjs\",[[6,\"snk-simple-bar\",{\"label\":[1],\"breadcrumbItens\":[16],\"messagesBuilder\":[1040]}]]],[\"snk-expression-group_2.cjs\",[[2,\"snk-expression-group\",{\"parentTop\":[1026,\"parent-top\"],\"group\":[1040],\"messagesBuilder\":[1040],\"filterId\":[1025,\"filter-id\"],\"entityURI\":[1025,\"entity-u-r-i\"],\"_conditionOperator\":[32],\"_group\":[32],\"_selfTop\":[32],\"canAddExpression\":[32],\"_showDashes\":[32],\"getExpressionGroup\":[64]},[[8,\"ezExpressionLayoutChanged\",\"todoCompletedHandler\"]]],[2,\"snk-expression-item\",{\"expression\":[16],\"canRemove\":[516,\"can-remove\"],\"messagesBuilder\":[1040],\"entityURI\":[1025,\"entity-u-r-i\"],\"_showValueVariable\":[32],\"_fieldSelected\":[32],\"_optionNotNull\":[32]}]]],[\"snk-filter-advanced-mode_2.cjs\",[[2,\"snk-filter-assistent-mode\",{\"filterAssistent\":[1040],\"messagesBuilder\":[1040],\"filterId\":[1025,\"filter-id\"],\"entityUri\":[1025,\"entity-uri\"],\"application\":[1040]}],[2,\"snk-filter-advanced-mode\",{\"filterAssistent\":[1040],\"application\":[1040]}]]],[\"snk-personalized-filter.cjs\",[[2,\"snk-personalized-filter\",{\"messagesBuilder\":[1040],\"entityUri\":[1025,\"entity-uri\"],\"filterId\":[1025,\"filter-id\"],\"configName\":[1025,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"_filterAssistentMode\":[32],\"_filterAssistent\":[32],\"createPersonalizedFilter\":[64]}]]],[\"snk-detail-view.cjs\",[[6,\"snk-detail-view\",{\"formConfigManager\":[1040],\"dataUnitName\":[1,\"data-unit-name\"],\"resourceID\":[1,\"resource-i-d\"],\"guideItemPath\":[16],\"entityName\":[1,\"entity-name\"],\"label\":[1],\"dataUnit\":[1040],\"selectedForm\":[1025,\"selected-form\"],\"dataState\":[1040],\"messagesBuilder\":[1040],\"branchGuide\":[1040],\"canEdit\":[4,\"can-edit\"],\"taskbarCustomContainerId\":[1,\"taskbar-custom-container-id\"],\"_disabledButtons\":[32],\"_currentView\":[32],\"attachmentRegisterKey\":[32],\"changeViewMode\":[64],\"configGrid\":[64],\"showUp\":[64]},[[0,\"snkContentCardChanged\",\"onContentCardChanged\"]]]]],[\"snk-configurator.cjs\",[[2,\"snk-configurator\",{\"showActionButtons\":[4,\"show-action-buttons\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"viewMode\":[2,\"view-mode\"],\"customContainerId\":[1,\"custom-container-id\"],\"messagesBuilder\":[1040],\"_opened\":[32],\"_permissions\":[32],\"open\":[64],\"close\":[64]}]]],[\"snk-pesquisa.cjs\",[[2,\"snk-pesquisa\",{\"searchLoader\":[16],\"selectItem\":[16],\"argument\":[1025],\"_itemList\":[32],\"_startLoading\":[32]}]]],[\"teste-pesquisa.cjs\",[[1,\"teste-pesquisa\"]]],[\"snk-filter-modal-item.cjs\",[[0,\"snk-filter-modal-item\",{\"filterItem\":[1040],\"configName\":[1025,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"]}]]],[\"snk-filter-bar.cjs\",[[2,\"snk-filter-bar\",{\"dataUnit\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"filterConfig\":[1040],\"messagesBuilder\":[1040],\"disablePersonalizedFilter\":[4,\"disable-personalized-filter\"],\"allowDefault\":[32],\"scrollerLocked\":[32],\"showPersonalizedFilter\":[32],\"personalizedFilterId\":[32],\"reload\":[64],\"getFilterItem\":[64],\"updateFilterItem\":[64],\"addFilterItem\":[64],\"removeFilterItem\":[64]},[[0,\"filterChange\",\"filterChangeListener\"]]]]],[\"snk-config-options.cjs\",[[2,\"snk-config-options\",{\"fieldConfig\":[16],\"idConfig\":[513,\"id-config\"],\"dataUnit\":[16],\"messagesBuilder\":[1040],\"_defaultType\":[32]}]]],[\"snk-field-config.cjs\",[[2,\"snk-field-config\",{\"isConfigActive\":[16],\"fieldConfig\":[16],\"modeInsertion\":[516,\"mode-insertion\"],\"dataUnit\":[16],\"messagesBuilder\":[1040]}]]],[\"snk-tab-config.cjs\",[[6,\"snk-tab-config\",{\"selectedIndex\":[1538,\"selected-index\"],\"selectedTab\":[1537,\"selected-tab\"],\"tabs\":[1],\"tabItems\":[16],\"messagesBuilder\":[1040],\"_processedTabs\":[32],\"_activeEditText\":[32],\"_activeEditTextIndex\":[32],\"_actionsHide\":[32],\"_actionsShow\":[32]}]]],[\"snk-form-config.cjs\",[[2,\"snk-form-config\",{\"dataUnit\":[16],\"configManager\":[16],\"messagesBuilder\":[1040],\"_formConfigOptions\":[32],\"_fieldConfigSelected\":[32],\"_layoutFormConfig\":[32],\"_fieldsAvailable\":[32],\"_formConfig\":[32],\"_formConfigChanged\":[32],\"_optionFormConfigSelected\":[32],\"_optionFormConfigChanged\":[32],\"_tempGroups\":[32]}]]],[\"snk-select-box.cjs\",[[1,\"snk-select-box\",{\"selectedOption\":[1,\"selected-option\"]}]]],[\"snk-grid-config.cjs\",[[2,\"snk-grid-config\",{\"selectedIndex\":[1026,\"selected-index\"],\"application\":[16],\"columns\":[1040],\"config\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"]}]]],[\"snk-filter-item.cjs\",[[0,\"snk-filter-item\",{\"config\":[1040],\"getMessage\":[16],\"detailIsVisible\":[32],\"showUp\":[64],\"hideDetail\":[64]},[[2,\"click\",\"clickListener\"],[2,\"mousedown\",\"mouseDownListener\"],[0,\"filterChange\",\"filterChangeListener\"]]]]],[\"snk-data-unit.cjs\",[[2,\"snk-data-unit\",{\"dataState\":[1040],\"messagesBuilder\":[1040],\"dataUnitName\":[1,\"data-unit-name\"],\"entityName\":[1,\"entity-name\"],\"pageSize\":[2,\"page-size\"],\"dataUnit\":[1040],\"beforeSave\":[16],\"afterSave\":[16],\"useCancelConfirm\":[4,\"use-cancel-confirm\"],\"ignoreSaveMessage\":[4,\"ignore-save-message\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"getDataUnit\":[64],\"getSelectedRecordsIDsInfo\":[64]}]]],[\"snk-filter-detail.cjs\",[[0,\"snk-filter-detail\",{\"config\":[1040],\"getMessage\":[16],\"show\":[64]}]]],[\"snk-exporter-email-sender.cjs\",[[0,\"snk-exporter-email-sender\",{\"getMessage\":[16],\"_config\":[32],\"_opened\":[32],\"_currentStep\":[32],\"open\":[64],\"close\":[64]}]]],[\"snk-data-exporter.cjs\",[[2,\"snk-data-exporter\",{\"provider\":[16],\"messagesBuilder\":[1040],\"_items\":[32],\"_showDropdown\":[32],\"_releasedToExport\":[32]}]]],[\"snk-taskbar.cjs\",[[6,\"snk-taskbar\",{\"alignRigth\":[4,\"align-rigth\"],\"customSlotId\":[1,\"custom-slot-id\"],\"customContainerId\":[1,\"custom-container-id\"],\"overflowStrategy\":[1,\"overflow-strategy\"],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"buttons\":[1],\"customButtons\":[16],\"actionsList\":[16],\"primaryButton\":[1,\"primary-button\"],\"disabledButtons\":[16],\"dataUnit\":[16],\"presentationMode\":[1537,\"presentation-mode\"],\"messagesBuilder\":[1040],\"_permissions\":[32],\"_overFlowedElements\":[32],\"_customElements\":[32],\"_customElementsId\":[32],\"_slotContainer\":[32]}]]],[\"snk-grid.cjs\",[[6,\"snk-grid\",{\"columnFilterDataSource\":[1040],\"configName\":[1,\"config-name\"],\"resourceID\":[1,\"resource-i-d\"],\"selectionToastConfig\":[16],\"actionsList\":[16],\"isDetail\":[4,\"is-detail\"],\"taskbarManager\":[16],\"statusResolver\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"presentationMode\":[1,\"presentation-mode\"],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"recordsValidator\":[16],\"canEdit\":[4,\"can-edit\"],\"taskbarCustomContainerId\":[1,\"taskbar-custom-container-id\"],\"gridHeaderCustomSlotId\":[1,\"grid-header-custom-slot-id\"],\"topTaskbarCustomSlotId\":[1,\"top-taskbar-custom-slot-id\"],\"disablePersonalizedFilter\":[4,\"disable-personalized-filter\"],\"_dataUnit\":[32],\"_dataState\":[32],\"_gridConfig\":[32],\"_popUpGridConfig\":[32],\"_showSnkFilterBar\":[32],\"showConfig\":[64],\"hideConfig\":[64],\"setConfig\":[64],\"reloadFilterBar\":[64],\"getFilterBar\":[64],\"findColumn\":[64]}]]],[\"snk-guides-viewer.cjs\",[[6,\"snk-guides-viewer\",{\"dataUnit\":[16],\"dataState\":[16],\"configName\":[1,\"config-name\"],\"entityPath\":[1,\"entity-path\"],\"actionsList\":[16],\"recordsValidator\":[16],\"masterFormConfig\":[1040],\"selectedGuide\":[16],\"taskbarManager\":[16],\"messagesBuilder\":[1040],\"canEdit\":[4,\"can-edit\"],\"presentationMode\":[1,\"presentation-mode\"],\"resourceID\":[1,\"resource-i-d\"],\"detailTaskbarCustomContainerId\":[1,\"detail-taskbar-custom-container-id\"],\"_hasToCreateFieldSearch\":[32],\"_breadcrumbItems\":[32],\"_guides\":[32],\"_formEditorConfigManager\":[32],\"_formEditorDataUnit\":[32],\"_fieldToGetFocus\":[32],\"showFormConfig\":[64],\"findField\":[64]},[[2,\"actionClick\",\"onActionClick\"],[0,\"snkContentCardChanged\",\"onContentCardChanged\"]]]]],[\"snk-crud.cjs\",[[6,\"snk-crud\",{\"configName\":[1025,\"config-name\"],\"selectionToastConfig\":[16],\"showActionButtons\":[4,\"show-action-buttons\"],\"actionsList\":[16],\"taskbarManager\":[16],\"recordsValidator\":[16],\"statusResolver\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"presentationMode\":[1,\"presentation-mode\"],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"disablePersonalizedFilter\":[4,\"disable-personalized-filter\"],\"_dataUnit\":[32],\"_dataState\":[32],\"attachmentRegisterKey\":[32],\"_currentViewMode\":[32],\"_canEdit\":[32],\"_resourceID\":[32],\"customContainerId\":[32],\"goToView\":[64],\"openConfigurator\":[64],\"closeConfigurator\":[64],\"reloadFilterBar\":[64],\"getFilterBar\":[64]}]]],[\"snk-form.cjs\",[[2,\"snk-form\",{\"configName\":[1,\"config-name\"],\"recordsValidator\":[16],\"messagesBuilder\":[1040],\"resourceID\":[1,\"resource-i-d\"],\"_dataUnit\":[32],\"_dataState\":[32],\"_showFormConfig\":[32],\"_configManager\":[32],\"showConfig\":[64],\"hideConfig\":[64]}]]],[\"snk-application.cjs\",[[2,\"snk-application\",{\"messagesBuilder\":[1040],\"configName\":[1,\"config-name\"],\"loadByPK\":[16],\"getKeyboardManager\":[64],\"isUserSup\":[64],\"addPendingAction\":[64],\"callServiceBroker\":[64],\"initOnboarding\":[64],\"hasAccess\":[64],\"getAllAccess\":[64],\"getStringParam\":[64],\"getIntParam\":[64],\"getFloatParam\":[64],\"getBooleanParam\":[64],\"getDateParam\":[64],\"showPopUp\":[64],\"showModal\":[64],\"showAlerts\":[64],\"closeModal\":[64],\"closePopUp\":[64],\"temOpcional\":[64],\"getConfig\":[64],\"saveConfig\":[64],\"getAttributeFromHTMLWrapper\":[64],\"openApp\":[64],\"webConnection\":[64],\"createDataunit\":[64],\"updateDataunitCache\":[64],\"getDataUnit\":[64],\"addClientEvent\":[64],\"removeClientEvent\":[64],\"hasClientEvent\":[64],\"getResourceID\":[64],\"getUserID\":[64],\"alert\":[64],\"error\":[64],\"success\":[64],\"message\":[64],\"confirm\":[64],\"info\":[64],\"loadTotals\":[64],\"isLoadedByPk\":[64],\"executeSearch\":[64],\"executePreparedSearch\":[64],\"isDebugMode\":[64],\"getAppLabel\":[64],\"addSearchListener\":[64],\"importScript\":[64],\"getApplicationPath\":[64],\"executeSelectDistinct\":[64],\"getDataFetcher\":[64],\"whenApplicationReady\":[64],\"setSearchFilterContext\":[64]}]]],[\"snk-simple-crud.cjs\",[[6,\"snk-simple-crud\",{\"dataState\":[16],\"dataUnit\":[16],\"mode\":[2],\"gridConfig\":[16],\"formConfig\":[16],\"multipleSelection\":[4,\"multiple-selection\"],\"useCancelConfirm\":[4,\"use-cancel-confirm\"],\"taskbarManager\":[16],\"messagesBuilder\":[1040],\"useEnterLikeTab\":[4,\"use-enter-like-tab\"],\"actionsList\":[16],\"configName\":[1025,\"config-name\"],\"_currentViewMode\":[32],\"_config\":[32],\"_fieldToGetFocus\":[32],\"_formFields\":[32],\"goToView\":[64],\"setMetadata\":[64],\"setRecords\":[64],\"getRecords\":[64]},[[0,\"actionClick\",\"actionClickListener\"]]]]],[\"snk-attach.cjs\",[[2,\"snk-attach\",{\"fetcherType\":[1,\"fetcher-type\"],\"fetcher\":[16],\"dataUnit\":[16],\"dataUnitBuilder\":[16],\"registerKey\":[1,\"register-key\"],\"entityName\":[1,\"entity-name\"],\"messagesBuilder\":[1040],\"_currentFetcher\":[32],\"_currentDataUnit\":[32],\"crudConfig\":[32]}]]],[\"snk-form-summary.cjs\",[[2,\"snk-form-summary\",{\"fixed\":[1540],\"contracted\":[1540],\"summary\":[16]}]]],[\"snk-form-view.cjs\",[[6,\"snk-form-view\",{\"levelPath\":[1,\"level-path\"],\"label\":[1],\"name\":[1],\"fields\":[16],\"formMetadata\":[8,\"form-metadata\"],\"dataUnit\":[16],\"contracted\":[4],\"fixed\":[1540],\"summaryFields\":[16],\"canExpand\":[4,\"can-expand\"],\"canFix\":[4,\"can-fix\"],\"recordsValidator\":[16],\"fieldToFocus\":[1,\"field-to-focus\"],\"showUp\":[64]}]]],[\"snk-actions-button_2.cjs\",[[2,\"snk-actions-button\",{\"_items\":[32],\"_showDropdown\":[32],\"_actions\":[32],\"_isOrderActions\":[32]}],[2,\"taskbar-actions-button\",{\"title\":[1],\"enabled\":[4],\"actions\":[16],\"_showDropdown\":[32],\"showActions\":[64],\"hideActions\":[64],\"isOpened\":[64]},[[8,\"keydown\",\"handleKeyDown\"],[8,\"ezOpenModal\",\"handleClose\"]]]]],[\"snk-filter-field-search_2.cjs\",[[2,\"snk-filter-field-search\",{\"searchable\":[4],\"fieldsDataSource\":[16],\"breadcrumbItems\":[32],\"linkItems\":[32],\"fieldItems\":[32],\"searchEmpty\":[32],\"groupEmpty\":[32],\"show\":[64],\"applyFilter\":[64]}],[0,\"snk-filter-param-config\",{\"messagesBuilder\":[1040],\"_opened\":[32],\"_configType\":[32],\"_expressionItem\":[32],\"_informedInstance\":[32],\"_canSave\":[32],\"open\":[64],\"close\":[64]}]]]]"), options);
18
18
  });
19
19
  };
20
20
 
@@ -20,7 +20,7 @@ class InMemoryLoader {
20
20
  this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
21
21
  }
22
22
  getRecordsToLoad() {
23
- if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
23
+ if (this._initialRecords == undefined || this.dataUnit.records.length > 0) {
24
24
  this._initialRecords = this.dataUnit.records;
25
25
  }
26
26
  return this._initialRecords;
@@ -155,30 +155,39 @@ class DatasetStrategy {
155
155
  canSlice() {
156
156
  return false;
157
157
  }
158
+ processSortingSide(request, dataUnit, serverSideFilters) {
159
+ const localSorting = [];
160
+ const serverSorting = [];
161
+ if (request.sort != undefined) {
162
+ if (serverSideFilters.length === 0) {
163
+ return { localSorting: request.sort, serverSorting: [] };
164
+ }
165
+ for (const sort of request.sort) {
166
+ const descriptor = dataUnit.getField(sort.field);
167
+ const local = descriptor != undefined
168
+ && descriptor.properties != undefined
169
+ && descriptor.properties.calculated === "true";
170
+ if (local) {
171
+ localSorting.push(sort);
172
+ }
173
+ else {
174
+ serverSorting.push(sort);
175
+ }
176
+ }
177
+ }
178
+ return { localSorting, serverSorting };
179
+ }
158
180
  async load(dataUnit, request, loadingInfo) {
181
+ var _a, _b;
159
182
  if (dataUnit.metadata == undefined) {
160
183
  return Promise.resolve({ records: [], loadingInfo });
161
184
  }
162
185
  try {
163
- const localSorting = [];
164
- const serverSorting = [];
165
- if (request.sort != undefined) {
166
- for (const sort of request.sort) {
167
- const descriptor = dataUnit.getField(sort.field);
168
- const local = descriptor != undefined
169
- && descriptor.properties != undefined
170
- && descriptor.properties.calculated === "true";
171
- if (local) {
172
- localSorting.push(sort);
173
- }
174
- else {
175
- serverSorting.push(sort);
176
- }
177
- }
178
- }
186
+ 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 : [];
187
+ const { localSorting, serverSorting } = this.processSortingSide(request, dataUnit, serverSideFilters);
179
188
  const fields = this.getFieldsList(dataUnit);
180
189
  const serviceName = "DatasetSP.loadRecords";
181
- const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting);
190
+ const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
182
191
  const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
183
192
  const { result: responseRecords, pagerID: pagerId } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
184
193
  const records = this.processRecords(dataUnit, fields, responseRecords);
@@ -200,13 +209,21 @@ class DatasetStrategy {
200
209
  getFieldsList(dataUnit) {
201
210
  let fields = ["__record__id__", "__record__label__"];
202
211
  dataUnit.metadata.fields.forEach((descriptor) => {
203
- if (descriptor.standAlone) {
212
+ if (descriptor.standAlone)
204
213
  return;
205
- }
206
214
  fields = fields.concat(this.getFieldNames(descriptor));
207
215
  });
208
216
  return fields;
209
217
  }
218
+ getStandAloneFieldsList(dataUnit) {
219
+ let fields = {};
220
+ dataUnit.metadata.fields.forEach((currentField) => {
221
+ if (!currentField.standAlone)
222
+ return;
223
+ fields = Object.assign(Object.assign({}, fields), { [currentField.name]: { fieldType: currentField.dataType, userType: currentField.userInterface } });
224
+ });
225
+ return fields;
226
+ }
210
227
  getFieldNames(descriptor) {
211
228
  const descriptionField = this.getSearchDescriptionField(descriptor);
212
229
  if (descriptionField == undefined) {
@@ -214,7 +231,7 @@ class DatasetStrategy {
214
231
  }
215
232
  return [descriptor.name, descriptionField];
216
233
  }
217
- buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting) {
234
+ buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, sorting, serverSideFilters) {
218
235
  const dataSetID = dataUnit.dataUnitId;
219
236
  const dataUnitName = dataUnit.name;
220
237
  const entityName = DataUnitFetcher.parseDataUnitName(dataUnitName).entityName;
@@ -229,25 +246,25 @@ class DatasetStrategy {
229
246
  totalRecordsCount: loadingInfo.count,
230
247
  pagerID: loadingInfo.pagerId,
231
248
  standAlone: false,
232
- standAloneFieldsMD: {
233
- __record__id__: { "fieldType": "S", "userType": "P" },
234
- __record__label__: { "fieldType": "S", "userType": "P" }
235
- },
249
+ standAloneFieldsMD: Object.assign({ __record__id__: { "fieldType": "S", "userType": "P" }, __record__label__: { "fieldType": "S", "userType": "P" } }, this.getStandAloneFieldsList(dataUnit)),
236
250
  tryJoinedFields: true,
237
251
  parallelLoader: useParallelLoader,
238
- crudListener: "br.com.sankhya.modelcore.dataset.DataUnitDatasetAdapter",
239
- txProperties: this.getTxProperties(dataUnitName, request, sorting),
252
+ crudListener: `br.com.sankhya.bff.${this.getModuleName()}.BFFDataUnitDatasetAdapter`,
253
+ txProperties: this.getTxProperties(dataUnit, request, sorting, serverSideFilters),
240
254
  useDefaultRowsLimit: false
241
255
  }
242
256
  };
243
257
  return JSON.stringify(requestBody);
244
258
  }
245
- getTxProperties(dataUnitName, request, sorting) {
246
- var _a, _b;
259
+ getModuleName() {
260
+ const app = core.ApplicationContext.getContextValue("__SNK__APPLICATION__");
261
+ const moduleName = app.getModuleName();
262
+ return moduleName.replace("-bff", "");
263
+ }
264
+ getTxProperties(dataUnit, request, sorting, serverSideFilters) {
247
265
  const txProperties = {
248
- "__DATA_UNIT_ADAPTER__[dataUnitName]": dataUnitName
266
+ "__DATA_UNIT_ADAPTER__[dataUnitName]": dataUnit.name
249
267
  };
250
- 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 : [];
251
268
  if (serverSideFilters.length !== 0) {
252
269
  txProperties["__DATA_UNIT_ADAPTER__[criteria]"] = JSON.stringify(serverSideFilters);
253
270
  }
@@ -257,6 +274,13 @@ class DatasetStrategy {
257
274
  if (request.parentRecordId != undefined) {
258
275
  txProperties["__DATA_UNIT_ADAPTER__[parentRecordId]"] = request.parentRecordId;
259
276
  }
277
+ const loaderProps = dataUnit.getGlobalLoaderProps();
278
+ if (loaderProps == undefined || loaderProps.size === 0) {
279
+ return txProperties;
280
+ }
281
+ Array.from(loaderProps.entries()).forEach(([name, value]) => {
282
+ txProperties[name] = value;
283
+ });
260
284
  return txProperties;
261
285
  }
262
286
  processRecords(dataUnit, fields, responseRecords) {
@@ -586,14 +610,41 @@ class DataUnitFetcher {
586
610
  });
587
611
  });
588
612
  }
613
+ addTransientProperties(dataUnit, updatingFields) {
614
+ const loaderProps = dataUnit.getGlobalLoaderProps();
615
+ if (loaderProps == undefined || loaderProps.size === 0) {
616
+ return updatingFields;
617
+ }
618
+ if (updatingFields == undefined) {
619
+ updatingFields = {};
620
+ }
621
+ Array.from(loaderProps.entries()).forEach(([name, value]) => {
622
+ updatingFields[`transient.${name}`] = value;
623
+ });
624
+ return updatingFields;
625
+ }
626
+ getUpdatingFields(dataUnit, originalUpdatingFields) {
627
+ if (originalUpdatingFields == undefined) {
628
+ return;
629
+ }
630
+ const updatingFields = Object.assign({}, originalUpdatingFields);
631
+ Object.keys(updatingFields).forEach(key => {
632
+ const descriptor = dataUnit.getField(key);
633
+ if (descriptor != undefined && descriptor.standAlone) {
634
+ delete updatingFields[key];
635
+ }
636
+ });
637
+ return this.addTransientProperties(dataUnit, updatingFields);
638
+ }
589
639
  saveData(dataUnit, duChanges) {
590
640
  const updatedRecordsIds = [];
591
641
  const addedRecordsIds = [];
592
642
  const changes = duChanges.map((change) => {
593
- const { dataUnit: changeDU, record, updatingFields, operation } = change;
643
+ const { dataUnit: changeDU, record, operation } = change;
594
644
  const dataUnitInstance = core.DataUnitStorage.get(changeDU);
645
+ const updatingFields = this.getUpdatingFields(dataUnitInstance, change.updatingFields);
595
646
  let parsedUpdatingFields;
596
- if (updatingFields) {
647
+ if (updatingFields != undefined) {
597
648
  parsedUpdatingFields = Object.entries(updatingFields).map(([fieldName, value]) => {
598
649
  const descriptor = dataUnitInstance.getField(fieldName);
599
650
  const dataType = descriptor ? descriptor.dataType : core.DataType.TEXT;
@@ -641,7 +692,8 @@ class DataUnitFetcher {
641
692
  }
642
693
  responseRecord.fields.forEach(({ name, value }) => {
643
694
  var _a;
644
- duRecord[name] = ((_a = dataUnitInstance === null || dataUnitInstance === void 0 ? void 0 : dataUnitInstance.valueFromString) === null || _a === void 0 ? void 0 : _a.call(dataUnitInstance, name, value)) || value;
695
+ const valueFromString = (_a = dataUnitInstance === null || dataUnitInstance === void 0 ? void 0 : dataUnitInstance.valueFromString) === null || _a === void 0 ? void 0 : _a.call(dataUnitInstance, name, value);
696
+ duRecord[name] = (valueFromString !== undefined) ? valueFromString : value;
645
697
  });
646
698
  dataUnitRecords.push(duRecord);
647
699
  });
@@ -716,5 +768,173 @@ class DataUnitFetcher {
716
768
  }
717
769
  }
718
770
 
771
+ class PesquisaFetcher {
772
+ constructor() {
773
+ this._defaultPageSize = 100;
774
+ this._templateByQuery = new Map();
775
+ this._searchListenersByDataUnit = new Map();
776
+ this.buldTemplates();
777
+ }
778
+ buldTemplates() {
779
+ this._templateByQuery.set("search", DataFetcher.dist.gql `query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
780
+ $queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
781
+ value
782
+ label
783
+ }
784
+ }`);
785
+ }
786
+ loadSearchOptions(entityName, argument, criteria, options) {
787
+ var _a;
788
+ const cleanText = (argument === null || argument === void 0 ? void 0 : argument.toString().trim()) || undefined;
789
+ argument = isNaN(Number(cleanText)) && cleanText ? `%${cleanText}` : cleanText;
790
+ criteria === null || criteria === void 0 ? void 0 : criteria.params.forEach(param => {
791
+ if (param.dataType === core.DataType.OBJECT) {
792
+ param.value = JSON.stringify(param.value);
793
+ }
794
+ });
795
+ const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, options);
796
+ const values = {
797
+ argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
798
+ entityName,
799
+ criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
800
+ options: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || options,
801
+ };
802
+ if (values.options) {
803
+ (_a = values.options) === null || _a === void 0 ? true : delete _a.dataUnitId;
804
+ }
805
+ return new Promise((resolve, reject) => {
806
+ DataFetcher.DataFetcher.get()
807
+ .callGraphQL({
808
+ values,
809
+ query: this._templateByQuery.get("search"),
810
+ })
811
+ .then((result) => {
812
+ resolve(result);
813
+ })
814
+ .catch((error) => {
815
+ reject(error);
816
+ });
817
+ });
818
+ }
819
+ loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
820
+ var _a, _b, _c, _d;
821
+ const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
822
+ const values = {
823
+ argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
824
+ criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
825
+ searchOptions: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || searchOptions,
826
+ };
827
+ const serviceName = "PesquisaSP.getSuggestion";
828
+ const externalCriteria = {
829
+ query: {
830
+ $: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
831
+ }
832
+ };
833
+ if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
834
+ externalCriteria.params = {
835
+ param: values.criteria.params.map(param => {
836
+ let value = param.value;
837
+ if (typeof value === "string") {
838
+ const match = /CTX\{([^}]+)\}/.exec(value);
839
+ if (match) {
840
+ value = core.ApplicationContext.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${match[1]})__`);
841
+ }
842
+ }
843
+ let type = param.dataType;
844
+ if (type === core.DataType.OBJECT) {
845
+ value = value.value;
846
+ type = "S";
847
+ }
848
+ else {
849
+ type = convertParamType(param.dataType);
850
+ }
851
+ return { $: value, type };
852
+ })
853
+ };
854
+ }
855
+ const options = searchOptions != undefined
856
+ ? {
857
+ "pkFieldName": searchOptions.codeFieldName,
858
+ "label": searchOptions.descriptionFieldName,
859
+ "fieldName": searchOptions.codeFieldName,
860
+ "useDescriptionOptions": false,
861
+ "enableRowsCounter": true
862
+ }
863
+ : undefined;
864
+ const reqBody = {
865
+ "serviceName": serviceName,
866
+ "requestBody": {
867
+ "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.rootEntity }, { options }),
868
+ "clientEventList": {
869
+ "clientEvent": []
870
+ }
871
+ }
872
+ };
873
+ return new Promise((resolve, reject) => {
874
+ DataFetcher.DataFetcher.get()
875
+ .callServiceBroker("PesquisaSP.getSuggestion", JSON.stringify(reqBody))
876
+ .then(result => resolve(result))
877
+ .catch(error => reject(error));
878
+ });
879
+ }
880
+ addSearchListener(entityName, dataUnitID, listener) {
881
+ var _a;
882
+ const dataUnitSearchListeners = this._searchListenersByDataUnit.get(dataUnitID) || [];
883
+ const entityListener = dataUnitSearchListeners.find(currentListener => currentListener.entity === entityName);
884
+ if (!entityListener) {
885
+ this._searchListenersByDataUnit.set(dataUnitID, [...dataUnitSearchListeners, { entity: entityName, listener }]);
886
+ }
887
+ else {
888
+ for (const type of Object.keys(listener)) {
889
+ if (type in entityListener.listener) {
890
+ const listenerFunctionIsEquals = ((_a = entityListener.listener[type]) === null || _a === void 0 ? void 0 : _a.toString()) === listener[type].toString();
891
+ if (listenerFunctionIsEquals)
892
+ continue;
893
+ entityListener.listener[type] = listener[type];
894
+ }
895
+ }
896
+ }
897
+ return () => {
898
+ const newListeners = dataUnitSearchListeners.filter(currentListener => currentListener.entity !== entityName);
899
+ if (!newListeners.length) {
900
+ this._searchListenersByDataUnit.delete(dataUnitID);
901
+ return;
902
+ }
903
+ this._searchListenersByDataUnit.set(dataUnitID, newListeners);
904
+ };
905
+ }
906
+ applySearchListener(listenerType, entityName, argument, criteria, searchOptions) {
907
+ var _a;
908
+ const dataUnitId = searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.dataUnitId;
909
+ if (!dataUnitId)
910
+ return;
911
+ const entityListener = (_a = this._searchListenersByDataUnit.get(dataUnitId)) === null || _a === void 0 ? void 0 : _a.find(({ entity }) => entity === entityName);
912
+ if (!entityListener)
913
+ return;
914
+ const { listener } = entityListener;
915
+ if (!(listenerType in listener))
916
+ return;
917
+ return listener[listenerType]({ argument, criteria, searchOptions });
918
+ }
919
+ }
920
+ function convertParamType(dataType) {
921
+ //Alerta: Cuidado pra não contaminar o DataType com a implementação
922
+ //atual da pesquisa... em geral, somente inteiros,
923
+ //data (com ou sem hora) e string são realmente relevantes
924
+ switch (dataType) {
925
+ case core.DataType.NUMBER:
926
+ return "I";
927
+ case core.DataType.DATE:
928
+ return "D";
929
+ default:
930
+ return "S";
931
+ }
932
+ }
933
+ var SearchListenerType;
934
+ (function (SearchListenerType) {
935
+ SearchListenerType["beforeSearch"] = "beforeSearch";
936
+ })(SearchListenerType || (SearchListenerType = {}));
937
+
719
938
  exports.DataUnitFetcher = DataUnitFetcher;
720
939
  exports.InMemoryLoader = InMemoryLoader;
940
+ exports.PesquisaFetcher = PesquisaFetcher;