@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-70564.2 → 0.0.0-bugfix-dev-KB-60622.0

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 (169) hide show
  1. package/dist/cjs/{ConfigStorage-e49214c6.js → ConfigStorage-ecc0ed20.js} +2 -2
  2. package/dist/cjs/{IExporterProvider-10b7fed5.js → ContinuousInsertUtils-b32220f0.js} +38 -5
  3. package/dist/cjs/{DataFetcher-77729a93.js → DataFetcher-cadeef8e.js} +21 -20
  4. package/dist/cjs/{RecordIDUtils-3735135c.js → GetSelectedRecordsIDsInfo-bd50caf1.js} +10 -10
  5. package/dist/cjs/{SnkFormConfigManager-beebf47a.js → SnkFormConfigManager-f1c92f79.js} +72 -16
  6. package/dist/cjs/{SnkMessageBuilder-cceebbae.js → SnkMessageBuilder-bae64d0d.js} +5 -1
  7. package/dist/cjs/{auth-fetcher-29bb791c.js → auth-fetcher-d68841bc.js} +1 -1
  8. package/dist/cjs/{dataunit-fetcher-d4873076.js → dataunit-fetcher-f89461c1.js} +46 -18
  9. package/dist/cjs/{field-search-f56aa7d6.js → field-search-68e34bf4.js} +5 -1
  10. package/dist/cjs/{form-config-fetcher-feb08214.js → form-config-fetcher-ed497282.js} +5 -2
  11. package/dist/cjs/loader.cjs.js +1 -1
  12. package/dist/cjs/{pesquisa-fetcher-a1d0353f.js → pesquisa-fetcher-ca89181c.js} +1 -1
  13. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  14. package/dist/cjs/snk-actions-button_4.cjs.entry.js +17 -14
  15. package/dist/cjs/snk-application.cjs.entry.js +7 -7
  16. package/dist/cjs/snk-attach.cjs.entry.js +6 -8
  17. package/dist/cjs/snk-crud.cjs.entry.js +9 -6
  18. package/dist/cjs/snk-data-exporter.cjs.entry.js +7 -7
  19. package/dist/cjs/{snk-data-unit-11e31d8d.js → snk-data-unit-004f781a.js} +4 -4
  20. package/dist/cjs/snk-data-unit.cjs.entry.js +5 -5
  21. package/dist/cjs/snk-detail-view.cjs.entry.js +11 -11
  22. package/dist/cjs/snk-filter-bar.cjs.entry.js +17 -21
  23. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
  24. package/dist/cjs/snk-form-config.cjs.entry.js +15 -4
  25. package/dist/cjs/snk-form.cjs.entry.js +7 -6
  26. package/dist/cjs/snk-grid.cjs.entry.js +58 -18
  27. package/dist/cjs/{snk-guides-viewer-aafc3073.js → snk-guides-viewer-68777d37.js} +17 -10
  28. package/dist/cjs/snk-guides-viewer.cjs.entry.js +9 -9
  29. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
  30. package/dist/cjs/snk-simple-crud.cjs.entry.js +59 -23
  31. package/dist/cjs/snk-taskbar.cjs.entry.js +23 -1
  32. package/dist/collection/components/snk-actions-button/actions/index.js +12 -9
  33. package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +2 -4
  34. package/dist/collection/components/snk-crud/snk-crud.js +22 -1
  35. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +2 -2
  36. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +29 -4
  37. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +1 -1
  38. package/dist/collection/components/snk-data-exporter/providers/ServerSideExporterProvider.js +1 -1
  39. package/dist/collection/components/snk-data-unit/snk-data-unit.js +2 -2
  40. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +14 -44
  41. package/dist/collection/components/snk-form/snk-form.js +2 -2
  42. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +70 -14
  43. package/dist/collection/components/snk-form-config/snk-form-config.js +13 -2
  44. package/dist/collection/components/snk-grid/snk-grid.js +66 -6
  45. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +68 -13
  46. package/dist/collection/components/snk-taskbar/processor/taskbar-processor.js +5 -1
  47. package/dist/collection/components/snk-taskbar/snk-taskbar.js +64 -0
  48. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +1 -1
  49. package/dist/collection/lib/dataUnit/InMemoryLoader.js +2 -4
  50. package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +34 -9
  51. package/dist/collection/lib/http/data-fetcher/DataFetcher.js +21 -20
  52. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +9 -2
  53. package/dist/collection/lib/http/data-fetcher/fetchers/form-config-fetcher.js +4 -1
  54. package/dist/collection/lib/message/resources/snk-grid.msg.js +5 -1
  55. package/dist/collection/lib/utils/ContinuousInsertUtils.js +31 -0
  56. package/dist/collection/{components/snk-data-exporter/utils/RecordIDUtils.js → lib/utils/GetSelectedRecordsIDsInfo.js} +9 -9
  57. package/dist/components/{IExporterProvider.js → ContinuousInsertUtils.js} +39 -4
  58. package/dist/components/DataFetcher.js +21 -20
  59. package/dist/{esm/RecordIDUtils-87d02110.js → components/GetSelectedRecordsIDsInfo.js} +10 -10
  60. package/dist/components/SnkFormConfigManager.js +70 -14
  61. package/dist/components/SnkMessageBuilder.js +5 -1
  62. package/dist/components/dataunit-fetcher.js +45 -15
  63. package/dist/components/form-config-fetcher.js +4 -1
  64. package/dist/components/snk-actions-button2.js +12 -9
  65. package/dist/components/snk-attach2.js +2 -4
  66. package/dist/components/snk-crud.js +5 -1
  67. package/dist/components/snk-data-unit2.js +5 -42
  68. package/dist/components/snk-detail-view2.js +15 -7
  69. package/dist/components/snk-filter-bar2.js +14 -19
  70. package/dist/components/snk-form-config2.js +13 -2
  71. package/dist/components/snk-form.js +2 -2
  72. package/dist/components/snk-grid2.js +50 -8
  73. package/dist/components/snk-simple-crud2.js +51 -12
  74. package/dist/components/snk-taskbar2.js +24 -2
  75. package/dist/esm/{ConfigStorage-e476378d.js → ConfigStorage-7b36d041.js} +2 -2
  76. package/dist/esm/{IExporterProvider-d597f27d.js → ContinuousInsertUtils-aae77a37.js} +39 -7
  77. package/dist/esm/{DataFetcher-773a3e4b.js → DataFetcher-a9c598f2.js} +21 -20
  78. package/dist/esm/GetSelectedRecordsIDsInfo-9fa41508.js +41 -0
  79. package/dist/esm/{SnkFormConfigManager-298cd647.js → SnkFormConfigManager-139f09fa.js} +72 -16
  80. package/dist/esm/{SnkMessageBuilder-ae87b754.js → SnkMessageBuilder-6fff4a4c.js} +5 -1
  81. package/dist/esm/{auth-fetcher-a411f73c.js → auth-fetcher-749d880f.js} +1 -1
  82. package/dist/esm/{dataunit-fetcher-3d2ec959.js → dataunit-fetcher-c24c76c6.js} +46 -16
  83. package/dist/esm/{field-search-efbe307f.js → field-search-f8b1d91e.js} +5 -1
  84. package/dist/esm/{form-config-fetcher-e0382e5a.js → form-config-fetcher-adbe5d34.js} +5 -2
  85. package/dist/esm/loader.js +1 -1
  86. package/dist/esm/{pesquisa-fetcher-a87445a0.js → pesquisa-fetcher-8edaa8cd.js} +1 -1
  87. package/dist/esm/sankhyablocks.js +1 -1
  88. package/dist/esm/snk-actions-button_4.entry.js +17 -14
  89. package/dist/esm/snk-application.entry.js +7 -7
  90. package/dist/esm/snk-attach.entry.js +6 -8
  91. package/dist/esm/snk-crud.entry.js +9 -6
  92. package/dist/esm/snk-data-exporter.entry.js +7 -7
  93. package/dist/esm/{snk-data-unit-29de836f.js → snk-data-unit-a90ce6f2.js} +4 -4
  94. package/dist/esm/snk-data-unit.entry.js +5 -5
  95. package/dist/esm/snk-detail-view.entry.js +11 -11
  96. package/dist/esm/snk-filter-bar.entry.js +17 -21
  97. package/dist/esm/snk-filter-modal-item.entry.js +3 -3
  98. package/dist/esm/snk-form-config.entry.js +15 -4
  99. package/dist/esm/snk-form.entry.js +7 -6
  100. package/dist/esm/snk-grid.entry.js +53 -13
  101. package/dist/esm/{snk-guides-viewer-62124f3d.js → snk-guides-viewer-b5dd30e6.js} +17 -10
  102. package/dist/esm/snk-guides-viewer.entry.js +9 -9
  103. package/dist/esm/snk-personalized-filter.entry.js +3 -3
  104. package/dist/esm/snk-simple-crud.entry.js +55 -19
  105. package/dist/esm/snk-taskbar.entry.js +23 -1
  106. package/dist/sankhyablocks/{p-181975f1.js → p-06421fdb.js} +2 -2
  107. package/dist/sankhyablocks/p-17425c72.js +1 -0
  108. package/dist/sankhyablocks/p-18ed15f4.entry.js +1 -0
  109. package/dist/sankhyablocks/{p-25f1fc39.js → p-1bf06cd3.js} +2 -2
  110. package/dist/sankhyablocks/{p-9dfda04a.entry.js → p-212213d9.entry.js} +1 -1
  111. package/dist/sankhyablocks/p-23736d75.js +1 -0
  112. package/dist/sankhyablocks/p-3e3cc017.js +1 -0
  113. package/dist/sankhyablocks/p-43a73838.entry.js +1 -0
  114. package/dist/sankhyablocks/p-47a038a3.js +1 -0
  115. package/dist/sankhyablocks/{p-3287a6cc.js → p-4d9549cf.js} +1 -1
  116. package/dist/sankhyablocks/p-50779ad3.entry.js +1 -0
  117. package/dist/sankhyablocks/p-60b29483.entry.js +1 -0
  118. package/dist/sankhyablocks/{p-74c665d5.entry.js → p-694e1c4a.entry.js} +1 -1
  119. package/dist/sankhyablocks/p-73185e58.entry.js +1 -0
  120. package/dist/sankhyablocks/p-7ac7932c.js +60 -0
  121. package/dist/sankhyablocks/p-7dd49d15.js +1 -0
  122. package/dist/sankhyablocks/p-7eef0898.entry.js +1 -0
  123. package/dist/sankhyablocks/{p-53949130.entry.js → p-7f918d0b.entry.js} +1 -1
  124. package/dist/sankhyablocks/p-9132a0a1.js +1 -0
  125. package/dist/sankhyablocks/p-9bc1c239.entry.js +1 -0
  126. package/dist/sankhyablocks/{p-162b9a59.entry.js → p-a42e7a1e.entry.js} +2 -2
  127. package/dist/sankhyablocks/p-afbb070d.js +1 -0
  128. package/dist/sankhyablocks/p-b2caaaf9.entry.js +1 -0
  129. package/dist/sankhyablocks/p-b82a7720.entry.js +1 -0
  130. package/dist/sankhyablocks/{p-0cd3c0a9.js → p-ca5ec380.js} +1 -1
  131. package/dist/sankhyablocks/p-e16e87fc.entry.js +1 -0
  132. package/dist/sankhyablocks/p-eb9f0407.entry.js +1 -0
  133. package/dist/sankhyablocks/{p-594bc21d.js → p-f3434fc4.js} +1 -1
  134. package/dist/sankhyablocks/{p-bd008859.entry.js → p-fb34e0cf.entry.js} +1 -1
  135. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  136. package/dist/types/components/snk-actions-button/actions/index.d.ts +1 -0
  137. package/dist/types/components/snk-crud/snk-crud.d.ts +4 -0
  138. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -0
  139. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +0 -4
  140. package/dist/types/components/snk-form-config/SnkFormConfigManager.d.ts +7 -2
  141. package/dist/types/components/snk-grid/snk-grid.d.ts +12 -0
  142. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +10 -0
  143. package/dist/types/components/snk-taskbar/processor/taskbar-processor.d.ts +1 -0
  144. package/dist/types/components/snk-taskbar/snk-taskbar.d.ts +11 -0
  145. package/dist/types/components.d.ts +40 -8
  146. package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +12 -2
  147. package/dist/types/lib/utils/ContinuousInsertUtils.d.ts +10 -0
  148. package/dist/types/lib/utils/GetSelectedRecordsIDsInfo.d.ts +3 -0
  149. package/package.json +1 -1
  150. package/dist/sankhyablocks/p-08c28ddd.entry.js +0 -1
  151. package/dist/sankhyablocks/p-091ce761.js +0 -60
  152. package/dist/sankhyablocks/p-094eebf6.entry.js +0 -1
  153. package/dist/sankhyablocks/p-12f45f86.entry.js +0 -1
  154. package/dist/sankhyablocks/p-2e9c764c.entry.js +0 -1
  155. package/dist/sankhyablocks/p-421bec84.entry.js +0 -1
  156. package/dist/sankhyablocks/p-51999ab5.entry.js +0 -1
  157. package/dist/sankhyablocks/p-5e384af4.entry.js +0 -1
  158. package/dist/sankhyablocks/p-5f016aed.js +0 -1
  159. package/dist/sankhyablocks/p-70001ac1.js +0 -1
  160. package/dist/sankhyablocks/p-76a65660.js +0 -1
  161. package/dist/sankhyablocks/p-77b933ee.entry.js +0 -1
  162. package/dist/sankhyablocks/p-7c4aabe2.js +0 -1
  163. package/dist/sankhyablocks/p-8f4e743f.js +0 -1
  164. package/dist/sankhyablocks/p-939e15d3.entry.js +0 -1
  165. package/dist/sankhyablocks/p-9863d682.js +0 -1
  166. package/dist/sankhyablocks/p-c2495304.js +0 -1
  167. package/dist/sankhyablocks/p-d65d98ed.entry.js +0 -1
  168. package/dist/sankhyablocks/p-f2809746.entry.js +0 -1
  169. package/dist/types/components/snk-data-exporter/utils/RecordIDUtils.d.ts +0 -3
@@ -1,9 +1,9 @@
1
1
  'use strict';
2
2
 
3
- const formConfigFetcher = require('./form-config-fetcher-feb08214.js');
3
+ const formConfigFetcher = require('./form-config-fetcher-ed497282.js');
4
4
  const filterItemType_enum = require('./filter-item-type.enum-a7ffdaa6.js');
5
5
  const core = require('@sankhyalabs/core');
6
- const DataFetcher = require('./DataFetcher-77729a93.js');
6
+ const DataFetcher = require('./DataFetcher-cadeef8e.js');
7
7
 
8
8
  class GridConfigFetcher extends formConfigFetcher.ResourceFetcher {
9
9
  constructor() {
@@ -1,16 +1,17 @@
1
1
  'use strict';
2
2
 
3
- const DataFetcher = require('./DataFetcher-77729a93.js');
4
- require('./pesquisa-fetcher-a1d0353f.js');
3
+ const DataFetcher = require('./DataFetcher-cadeef8e.js');
4
+ require('./pesquisa-fetcher-ca89181c.js');
5
5
  const core = require('@sankhyalabs/core');
6
6
  require('./index-1dfc7a6e.js');
7
7
  require('./ISave-e91b70a7.js');
8
8
  require('@sankhyalabs/ezui/dist/collection/utils/constants');
9
9
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
10
- const dataunitFetcher = require('./dataunit-fetcher-d4873076.js');
10
+ const dataunitFetcher = require('./dataunit-fetcher-f89461c1.js');
11
11
  require('./filter-item-type.enum-a7ffdaa6.js');
12
- require('./form-config-fetcher-feb08214.js');
12
+ require('./form-config-fetcher-ed497282.js');
13
13
  const InMemoryFilterColumnDataSource = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource');
14
+ const index = require('./index-f9e81701.js');
14
15
 
15
16
  function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
16
17
 
@@ -146,7 +147,7 @@ class RmPrecisionCustomValueFormatter {
146
147
  this.refreshSelectedRows();
147
148
  }
148
149
  setDataState(dataState) {
149
- if (core.ObjectUtils.objectToString(dataState) === core.ObjectUtils.objectToString(this._dataState)) {
150
+ if (this._dataState && core.ObjectUtils.equals(dataState === null || dataState === void 0 ? void 0 : dataState.metadataByRow, this._dataState.metadataByRow)) {
150
151
  return;
151
152
  }
152
153
  this._dataState = dataState;
@@ -224,7 +225,39 @@ class CommonsExporter {
224
225
  }
225
226
  }
226
227
 
228
+ class ContinuousInsertUtils {
229
+ constructor(snkApplication, resourceID, configName) {
230
+ this.snkApplication = snkApplication;
231
+ this.keyConfigEnableContinuousInsert = `${resourceID}enableContinuousInsert${configName ? configName : ''}`;
232
+ }
233
+ handleSaveConfig(enableContinuousInsert) {
234
+ return this.snkApplication.saveConfig(this.keyConfigEnableContinuousInsert, enableContinuousInsert);
235
+ }
236
+ getConfig() {
237
+ return this.snkApplication.getConfig(this.keyConfigEnableContinuousInsert).then(value => {
238
+ if (value) {
239
+ return value == "true" ? true : false;
240
+ }
241
+ return false;
242
+ }).catch(() => {
243
+ return false;
244
+ });
245
+ }
246
+ actionContinuousInsert(enableContinuousInsert, handleEnableContinuousInsert) {
247
+ return {
248
+ value: core.StringUtils.generateUUID(),
249
+ label: enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua',
250
+ enabled: true,
251
+ itemBuilder: () => {
252
+ return (index.h("div", { class: "ez-dropdown__item-wrapper", onClick: () => handleEnableContinuousInsert() },
253
+ index.h("span", { class: "ez-dropdown__item-label" }, enableContinuousInsert ? 'Desativar inclusão contínua' : 'Ativar inclusão contínua')));
254
+ },
255
+ };
256
+ }
257
+ }
258
+
227
259
  exports.CommonsExporter = CommonsExporter;
260
+ exports.ContinuousInsertUtils = ContinuousInsertUtils;
228
261
  exports.CrudUtils = CrudUtils;
229
262
  exports.RmPrecisionCustomValueFormatter = RmPrecisionCustomValueFormatter;
230
263
  exports.SnkMultiSelectionListDataSource = SnkMultiSelectionListDataSource;
@@ -6865,6 +6865,7 @@ class DataFetcher {
6865
6865
  }
6866
6866
  }
6867
6867
  async executePendingRequest(watingRequestsById) {
6868
+ var _a, _b;
6868
6869
  const requestsBatch = [];
6869
6870
  let quietMode = true;
6870
6871
  watingRequestsById.forEach((waitingReq) => {
@@ -6875,36 +6876,36 @@ class DataFetcher {
6875
6876
  const response = await this.fecthGraphQL(requestsBatch, quietMode);
6876
6877
  const { data: dataResponse, errors: errorsResponse, extensions } = response;
6877
6878
  //Reject promises with errors from query
6878
- errorsResponse.forEach((errorResponse) => {
6879
- Object.entries(errorResponse).forEach(async ([key, val]) => {
6880
- const waitingRequest = watingRequestsById.get(val.request.variables[val.index].queryID);
6879
+ for (const errorResponse of errorsResponse) {
6880
+ const values = Object.values(errorResponse);
6881
+ for (const value of values) {
6882
+ const waitingRequest = watingRequestsById.get(value.request.variables[value.index].queryID);
6881
6883
  const hasClientEvent = await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
6882
- Promise.race([
6884
+ const data = await Promise.race([
6883
6885
  waitingRequest.promise,
6884
6886
  new Promise((resolve) => {
6885
6887
  resolve(false);
6886
6888
  })
6887
- ]).then((data) => {
6888
- var _a, _b;
6889
- if (!hasClientEvent || data === false) {
6890
- if (Object.keys(errorResponse[0].extensions).includes("SERVICE_CANCELED") || Object.keys(extensions).includes("isServiceCancelled")) {
6891
- (((_a = watingRequestsById.get(val.request.variables[val.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(new core.ServiceCanceledException("Service canceled", val.message));
6892
- }
6893
- else {
6894
- (((_b = watingRequestsById.get(val.request.variables[val.index].queryID)) === null || _b === void 0 ? void 0 : _b.reject) || Promise.reject)(new core.ErrorException("Falha detectada", val.message));
6895
- }
6889
+ ]);
6890
+ if (!hasClientEvent || data === false) {
6891
+ if (Object.keys(errorResponse[0].extensions).includes("SERVICE_CANCELED") || Object.keys(extensions).includes("isServiceCancelled")) {
6892
+ (((_a = watingRequestsById.get(value.request.variables[value.index].queryID)) === null || _a === void 0 ? void 0 : _a.reject) || Promise.reject)(new core.ServiceCanceledException("Service canceled", value.message));
6896
6893
  }
6897
- });
6898
- });
6899
- });
6894
+ else {
6895
+ (((_b = watingRequestsById.get(value.request.variables[value.index].queryID)) === null || _b === void 0 ? void 0 : _b.reject) || Promise.reject)(new core.ErrorException("Falha detectada", value.message));
6896
+ }
6897
+ }
6898
+ }
6899
+ }
6900
6900
  //Resolve promises with data from query
6901
- dataResponse.forEach((data) => {
6902
- Object.entries(data).forEach(async ([key, val]) => {
6901
+ for (const data of dataResponse) {
6902
+ const entries = Object.entries(data);
6903
+ for (const [key, val] of entries) {
6903
6904
  const waitingRequest = watingRequestsById.get(key);
6904
6905
  await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
6905
6906
  ((waitingRequest === null || waitingRequest === void 0 ? void 0 : waitingRequest.resolve) || Promise.resolve)(val);
6906
- });
6907
- });
6907
+ }
6908
+ }
6908
6909
  }
6909
6910
  buildGraphQlURL(quietMode) {
6910
6911
  const urlParams = UrlUtils.getQueryParams(location.search);
@@ -2,31 +2,31 @@
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
4
 
5
- const getSelectedIDs = (dataUnit) => {
6
- const selectionInfo = dataUnit.getSelectionInfo();
5
+ function getSelectedRecordsIDsInfo(dataUnit) {
6
+ const selectionInfo = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getSelectionInfo();
7
7
  if (selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.isAllRecords()) {
8
8
  return [];
9
9
  }
10
10
  const selectedRecordsIDsInfo = [];
11
- const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.recordIds;
11
+ const selectedRecords = selectionInfo === null || selectionInfo === void 0 ? void 0 : selectionInfo.records;
12
12
  if ((selectedRecords === null || selectedRecords === void 0 ? void 0 : selectedRecords.length) > 0) {
13
- selectedRecords.forEach(recordId => {
14
- if (!dataUnit.isNewRecord(recordId)) {
13
+ selectedRecords.forEach(({ __record__id__ }) => {
14
+ if (!dataUnit.isNewRecord(__record__id__)) {
15
15
  /*
16
16
  Esse if foi necessário para tratar corretamente o ID
17
17
  do record quando está sendo utilizado no modo standAlone
18
18
  isso não faz a exportação da grid funcionar no modo standAlone
19
19
  mas deixa de causar erro nas oprações de CRUD.
20
20
  */
21
- if (!core.JSUtils.isBase64(recordId)) {
21
+ if (!core.JSUtils.isBase64(__record__id__)) {
22
22
  selectedRecordsIDsInfo.push({
23
23
  name: "__record__id__",
24
24
  type: core.DataType.TEXT,
25
- value: recordId
25
+ value: __record__id__
26
26
  });
27
27
  return;
28
28
  }
29
- const revertBase64ToObject = JSON.parse(window.atob(recordId));
29
+ const revertBase64ToObject = JSON.parse(window.atob(__record__id__));
30
30
  Object.entries(revertBase64ToObject).forEach(([name, value]) => {
31
31
  const metadataField = dataUnit === null || dataUnit === void 0 ? void 0 : dataUnit.getField(name);
32
32
  if (metadataField == undefined) {
@@ -38,6 +38,6 @@ const getSelectedIDs = (dataUnit) => {
38
38
  });
39
39
  }
40
40
  return selectedRecordsIDsInfo;
41
- };
41
+ }
42
42
 
43
- exports.getSelectedIDs = getSelectedIDs;
43
+ exports.getSelectedRecordsIDsInfo = getSelectedRecordsIDsInfo;
@@ -1,14 +1,16 @@
1
1
  'use strict';
2
2
 
3
- const ConfigStorage = require('./ConfigStorage-e49214c6.js');
3
+ const ConfigStorage = require('./ConfigStorage-ecc0ed20.js');
4
4
  const core = require('@sankhyalabs/core');
5
- const formConfigFetcher = require('./form-config-fetcher-feb08214.js');
5
+ const formConfigFetcher = require('./form-config-fetcher-ed497282.js');
6
+ const constants = require('./constants-35ddd366.js');
6
7
 
7
8
  class SnkFormConfigManager {
8
- constructor(configName, resourceID, onConfigChange) {
9
+ constructor(configName, resourceID, onConfigChange, dataUnit) {
9
10
  this._resourceID = resourceID;
10
11
  this._configName = configName;
11
12
  this._onConfigChange = onConfigChange;
13
+ this._dataUnit = dataUnit;
12
14
  }
13
15
  addFormLegacyConfig(legacyConfigName) {
14
16
  if (this._configName) {
@@ -19,6 +21,7 @@ class SnkFormConfigManager {
19
21
  return new Promise(resolve => {
20
22
  ConfigStorage.ConfigStorage.loadFormConfig(this._configName, this._resourceID)
21
23
  .then((config) => {
24
+ config = this.buildFormMetadataUITabs(config);
22
25
  this.setConfig(config);
23
26
  resolve(config);
24
27
  })
@@ -27,6 +30,10 @@ class SnkFormConfigManager {
27
30
  });
28
31
  });
29
32
  }
33
+ getEmptyConfig() {
34
+ const config = this.buildFormMetadataUITabs({ fields: [], emptyConfig: true }, true);
35
+ return config;
36
+ }
30
37
  saveConfig(config) {
31
38
  const configToSave = core.ObjectUtils.copy(config);
32
39
  return new Promise(accept => {
@@ -70,25 +77,36 @@ class SnkFormConfigManager {
70
77
  }
71
78
  return updatingCardConfig;
72
79
  }
73
- getFieldsList(dataUnit, descriptionFilter) {
80
+ hasConfig(config) {
81
+ var _a;
82
+ const currentConfig = config !== null && config !== void 0 ? config : this._config;
83
+ if (currentConfig && ((_a = currentConfig.fields) === null || _a === void 0 ? void 0 : _a.length)) {
84
+ return true;
85
+ }
86
+ return false;
87
+ }
88
+ getFieldsList(descriptionFilter, forceEmptyConfig = false) {
74
89
  var _a;
75
90
  const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
76
- if (fields != undefined && fields.length > 0) {
77
- return fields.map(({ label, name, readOnly, visible, required }) => {
91
+ const hasConfig = this.hasConfig();
92
+ if (hasConfig && !forceEmptyConfig) {
93
+ return fields.map(({ label, name, readOnly, visible, required, tab }) => {
94
+ var _a;
78
95
  if (label == undefined) {
79
- const currentField = dataUnit.getField(name);
80
- return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required });
96
+ const currentField = (_a = this._dataUnit) === null || _a === void 0 ? void 0 : _a.getField(name);
97
+ return Object.assign(Object.assign({}, currentField), { name: name !== null && name !== void 0 ? name : currentField.name, readOnly: readOnly !== null && readOnly !== void 0 ? readOnly : currentField.readOnly, visible: visible !== null && visible !== void 0 ? visible : currentField.visible, required: required !== null && required !== void 0 ? required : currentField.required, tab: tab });
81
98
  }
82
- return { name, label, readOnly, visible, required };
99
+ return { name, label, readOnly, visible, required, tab };
83
100
  })
84
101
  .filter(field => this.isFieldVisible(field, descriptionFilter));
85
102
  }
86
- if (dataUnit != undefined) {
87
- return dataUnit.metadata.fields
88
- .filter(field => this.isFieldVisible(field, descriptionFilter))
89
- .map(({ label, name, readOnly }) => { return { label, name, readOnly }; });
103
+ if (!this._dataUnit) {
104
+ return [];
90
105
  }
91
- return [];
106
+ const filteredFields = this._dataUnit.metadata.fields
107
+ .filter(field => this.isFieldVisible(field, descriptionFilter))
108
+ .map(({ label, name, readOnly, visible, required, properties }) => ({ label, name, readOnly, visible, required, tab: properties === null || properties === void 0 ? void 0 : properties.UITabName }));
109
+ return filteredFields;
92
110
  }
93
111
  isFieldVisible(field, descriptionFilter) {
94
112
  if (field.visible === false) {
@@ -101,8 +119,8 @@ class SnkFormConfigManager {
101
119
  const normalizedFilter = core.StringUtils.replaceAccentuatedCharsLower(descriptionFilter.toLocaleLowerCase());
102
120
  return normalizedText.includes(normalizedFilter);
103
121
  }
104
- getFormConfig(dataUnit, ignoreReadOnlyFormFields) {
105
- let fields = this.getFieldsList(dataUnit);
122
+ getFormConfig(dataUnit, ignoreReadOnlyFormFields, forceEmptyConfig = false) {
123
+ let fields = this.getFieldsList(undefined, forceEmptyConfig);
106
124
  if (ignoreReadOnlyFormFields) {
107
125
  fields = fields.filter(field => {
108
126
  if (dataUnit) {
@@ -155,6 +173,44 @@ class SnkFormConfigManager {
155
173
  async fetchDefaultConfig() {
156
174
  return this.getFormConfigFetcher().fetchDefaultConfig(this._configName, this._resourceID);
157
175
  }
176
+ parseObjectList(object) {
177
+ if (!object) {
178
+ return [];
179
+ }
180
+ return Array.isArray(object) ? object : [object];
181
+ }
182
+ buildFormMetadataUITabs(config, forceEmptyConfig = false) {
183
+ var _a;
184
+ const hasConfig = this.hasConfig(config);
185
+ if (!forceEmptyConfig && (!this._dataUnit || hasConfig)) {
186
+ return config;
187
+ }
188
+ config = this.getFormConfig(this._dataUnit, false, true);
189
+ config.tabs = this.parseObjectList(config.tabs);
190
+ config.emptyConfig = false;
191
+ config.defaultConfiguration = true;
192
+ const fields = this._dataUnit.metadata.fields;
193
+ for (const currentField of fields) {
194
+ const field = config.fields.find(field => field.name === currentField.name);
195
+ const uiTabName = (_a = currentField.properties) === null || _a === void 0 ? void 0 : _a.UITabName;
196
+ if (!uiTabName || uiTabName === constants.TAB_NAMES.main) {
197
+ continue;
198
+ }
199
+ const haveTab = config.tabs.some((tab) => tab.label === uiTabName);
200
+ if (!haveTab) {
201
+ config.tabs.push({
202
+ label: uiTabName,
203
+ name: uiTabName,
204
+ order: 0,
205
+ visible: true,
206
+ });
207
+ }
208
+ if (field) {
209
+ field.tab = uiTabName;
210
+ }
211
+ }
212
+ return config;
213
+ }
158
214
  }
159
215
 
160
216
  exports.SnkFormConfigManager = SnkFormConfigManager;
@@ -267,7 +267,11 @@ const snkConfiguratorMessages = {
267
267
  };
268
268
 
269
269
  const snkGridMessages = {
270
- findColumn: "Busca de colunas"
270
+ findColumn: "Busca de colunas",
271
+ cancelConfirmation: {
272
+ title: "Aviso",
273
+ message: "As alterações realizadas serão descartadas<br/><br/><b>Você realmente gostaria de cancelar?</b>",
274
+ }
271
275
  };
272
276
  const snkGridConfigMessages = {
273
277
  gridConfiguration: "Configuração da Grade",
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const formConfigFetcher = require('./form-config-fetcher-feb08214.js');
4
+ const formConfigFetcher = require('./form-config-fetcher-ed497282.js');
5
5
 
6
6
  class AuthFetcher extends formConfigFetcher.ResourceFetcher {
7
7
  getData(resourceID) {
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const DataFetcher = require('./DataFetcher-77729a93.js');
4
+ const DataFetcher = require('./DataFetcher-cadeef8e.js');
5
5
  const constants = require('@sankhyalabs/ezui/dist/collection/utils/constants');
6
6
  const UnitMetadata = require('@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata');
7
7
  const utils = require('@sankhyalabs/ezui/dist/collection/components/ez-grid/utils');
@@ -241,6 +241,21 @@ function applyFilter(records, dataUnit, filters) {
241
241
  }
242
242
  return records.filter(filterFunction);
243
243
  }
244
+ function buildLoadDataResponse(recordsIn, dataUnit, request) {
245
+ let records = recordsIn ? [...recordsIn] : [];
246
+ records = applyFilter(records, dataUnit, request.filters);
247
+ records = applySorting(records, dataUnit, request.sort);
248
+ const { offset, limit } = request;
249
+ const paginationInfoBuilderParams = {
250
+ recordsLength: records.length,
251
+ offset,
252
+ recordsPerPage: limit,
253
+ };
254
+ return Promise.resolve({
255
+ records: getPagesByRecords(records, offset, limit),
256
+ paginationInfo: buildPaginationInfo(paginationInfoBuilderParams),
257
+ });
258
+ }
244
259
  function applySorting(records, dataUnit, sorting) {
245
260
  if (sorting == undefined || sorting.length == 0) {
246
261
  return records;
@@ -251,18 +266,28 @@ function applySorting(records, dataUnit, sorting) {
251
266
  }
252
267
  return records.sort(sortingFunction);
253
268
  }
254
- function buildPaginationInfo(records, offset = 0, limit = 0) {
255
- if (records === undefined) {
256
- return undefined;
269
+ function hasValidLimitAndOffset(offset, limit) {
270
+ return offset >= 0 && limit >= 0;
271
+ }
272
+ function getPagesByRecords(records, offset = 0, limit = 0) {
273
+ if (!records || !records.length || !hasValidLimitAndOffset(offset, limit))
274
+ return [];
275
+ if (limit === 0 && offset === 0)
276
+ return records;
277
+ return records.slice(offset, offset + limit);
278
+ }
279
+ function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0 }) {
280
+ if (!recordsLength) {
281
+ return { currentPage: 0, firstRecord: 0, lastRecord: 0, total: 0, hasMore: false };
257
282
  }
258
- const total = (records === null || records === void 0 ? void 0 : records.length) || 0;
259
- const lastRecord = Math.min(offset + limit, total);
283
+ const lastRecordIndex = offset + recordsPerPage;
284
+ const lastRecord = lastRecordIndex ? Math.min(lastRecordIndex, recordsLength) : recordsLength;
260
285
  return {
261
- currentPage: limit === 0 ? 0 : Math.ceil(offset / limit),
262
- firstRecord: offset,
286
+ currentPage: recordsPerPage === 0 ? 0 : Math.ceil(offset / recordsPerPage),
287
+ firstRecord: offset + 1,
263
288
  lastRecord: lastRecord,
264
- total: total,
265
- hasMore: !!(total - lastRecord),
289
+ total: recordsLength,
290
+ hasMore: lastRecord < recordsLength,
266
291
  };
267
292
  }
268
293
 
@@ -348,9 +373,7 @@ class InMemoryLoader {
348
373
  return core.StringUtils.generateUUID();
349
374
  }
350
375
  inMemoryLoader(dataUnit, request, recordsIn) {
351
- let records = applyFilter(recordsIn, dataUnit, request.filters);
352
- records = applySorting(records, dataUnit, request.sort);
353
- return Promise.resolve({ records, paginationInfo: buildPaginationInfo(records, request.offset, request.limit) });
376
+ return buildLoadDataResponse(recordsIn, dataUnit, request);
354
377
  }
355
378
  metadaLoader() {
356
379
  return Promise.resolve(this._metadata);
@@ -430,12 +453,19 @@ class DatasetStrategy {
430
453
  const records = this.processRecords(dataUnit, fields, responseRecords);
431
454
  const loadingInProgress = pagerId != undefined;
432
455
  const count = loadingInfo.count + records.length;
456
+ const isInsertingNewRecord = dataUnit.hasNewRecord();
433
457
  const needReload = !loadingInProgress && localSorting.length > 0;
458
+ /**
459
+ * Caso precise recarregar dados, porém está no meio de uma inserção, os dados não devem recarregados instantaneamente,
460
+ * Mas sim, sinalizar que o dataUnit está aguardando para der recarregado.
461
+ */
462
+ if (needReload && isInsertingNewRecord) {
463
+ dataUnit.setWaitingToReload(true);
464
+ }
434
465
  return Promise.resolve({
435
466
  records,
436
467
  loadingInfo: Object.assign(Object.assign({}, loadingInfo), { pagerId,
437
- loadingInProgress, total: loadingInProgress ? undefined : count, count,
438
- needReload })
468
+ loadingInProgress, total: loadingInProgress ? undefined : count, count, needReload: needReload && !isInsertingNewRecord })
439
469
  });
440
470
  }
441
471
  catch (error) {
@@ -1062,7 +1092,5 @@ exports.DataUnitFetcher = DataUnitFetcher;
1062
1092
  exports.DatasetStrategy = DatasetStrategy;
1063
1093
  exports.InMemoryLoader = InMemoryLoader;
1064
1094
  exports.PreloadManager = PreloadManager;
1065
- exports.applyFilter = applyFilter;
1066
- exports.applySorting = applySorting;
1067
- exports.buildPaginationInfo = buildPaginationInfo;
1095
+ exports.buildLoadDataResponse = buildLoadDataResponse;
1068
1096
  exports.getRecordValue = getRecordValue;
@@ -33,12 +33,16 @@ class TaskbarProcessor {
33
33
  });
34
34
  }
35
35
  getButtonsArray(taskbarId, taskbarManager, dataState) {
36
- const defaults = this._defaultButtons[taskbarId];
36
+ const defaults = this.getButtonsFromKey(taskbarId);
37
37
  if (taskbarManager) {
38
38
  return taskbarManager.getButtons(taskbarId, dataState, [...defaults]);
39
39
  }
40
40
  return defaults;
41
41
  }
42
+ getButtonsFromKey(taskbarId) {
43
+ const btnsValue = this._defaultButtons[taskbarId];
44
+ return typeof btnsValue === 'function' ? btnsValue() : btnsValue;
45
+ }
42
46
  isEnabled(taskbarId, taskbarManager, buttonName, dataState, disabled) {
43
47
  const originalValue = disabled.includes(buttonName) ? false : true;
44
48
  if (taskbarManager && taskbarManager.isEnabled) {
@@ -1,6 +1,6 @@
1
1
  'use strict';
2
2
 
3
- const DataFetcher = require('./DataFetcher-77729a93.js');
3
+ const DataFetcher = require('./DataFetcher-cadeef8e.js');
4
4
  const core = require('@sankhyalabs/core');
5
5
 
6
6
  class ResourceFetcher {
@@ -219,7 +219,10 @@ class FormConfigFetcher extends ResourceFetcher {
219
219
  query: this.queryConfig.get("fetchDefaultConfig"),
220
220
  })
221
221
  .then((result) => {
222
- resolve(core.ObjectUtils.stringToObject((result === null || result === void 0 ? void 0 : result.resource) || ''));
222
+ if (!(result === null || result === void 0 ? void 0 : result.resource)) {
223
+ resolve(null);
224
+ }
225
+ resolve(core.ObjectUtils.stringToObject(result === null || result === void 0 ? void 0 : result.resource));
223
226
  })
224
227
  .catch((error) => {
225
228
  reject(error);