@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-57523.0 → 0.0.0-bugfix-dev-59880.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 (186) hide show
  1. package/dist/cjs/{ConfigStorage-7df9d3bb.js → ConfigStorage-9a53a42c.js} +12 -11
  2. package/dist/cjs/{form-config-fetcher-3c4daeb5.js → DataFetcher-515bda03.js} +0 -251
  3. package/dist/cjs/{IExporterProvider-c307e2b1.js → IExporterProvider-e286ef6a.js} +55 -12
  4. package/dist/cjs/{SnkFormConfigManager-4259edbe.js → SnkFormConfigManager-7b222c78.js} +4 -4
  5. package/dist/cjs/{SnkMessageBuilder-66aa2557.js → SnkMessageBuilder-4a95fe86.js} +6 -12
  6. package/dist/cjs/{auth-fetcher-e6112be7.js → auth-fetcher-5acb0335.js} +1 -1
  7. package/dist/cjs/{pesquisa-fetcher-cbdaba63.js → dataunit-fetcher-7a08e4dd.js} +74 -175
  8. package/dist/cjs/form-config-fetcher-3f430aee.js +256 -0
  9. package/dist/cjs/loader.cjs.js +1 -1
  10. package/dist/cjs/pesquisa-fetcher-916a935c.js +166 -0
  11. package/dist/cjs/sankhyablocks.cjs.js +1 -1
  12. package/dist/cjs/snk-actions-button_4.cjs.entry.js +10 -8
  13. package/dist/cjs/snk-application.cjs.entry.js +49 -39
  14. package/dist/cjs/snk-attach.cjs.entry.js +19 -17
  15. package/dist/cjs/snk-crud.cjs.entry.js +95 -10
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +11 -9
  17. package/dist/cjs/snk-data-unit-3718477f.js +670 -0
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +10 -2
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +48 -7
  20. package/dist/cjs/snk-filter-bar.cjs.entry.js +8 -3
  21. package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -2
  22. package/dist/cjs/snk-form-config.cjs.entry.js +2 -1
  23. package/dist/cjs/snk-form-view.cjs.entry.js +67 -0
  24. package/dist/cjs/snk-form.cjs.entry.js +53 -7
  25. package/dist/cjs/snk-grid.cjs.entry.js +103 -11
  26. package/dist/cjs/{snk-guides-viewer-b0c44e0c.js → snk-guides-viewer-66dd6949.js} +36 -7
  27. package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -6
  28. package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -2
  29. package/dist/cjs/snk-simple-crud.cjs.entry.js +153 -14
  30. package/dist/collection/collection-manifest.json +1 -1
  31. package/dist/collection/components/snk-application/snk-application.js +37 -17
  32. package/dist/collection/components/snk-crud/interfaces/PropsCustomEditor.js +1 -0
  33. package/dist/collection/components/snk-crud/interfaces/PropsCustomRender.js +1 -0
  34. package/dist/collection/components/snk-crud/snk-crud.js +230 -7
  35. package/dist/collection/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.js +135 -0
  36. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +161 -0
  37. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +112 -5
  38. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +14 -8
  39. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +5 -0
  40. package/dist/collection/components/snk-data-exporter/snk-data-exporter.js +2 -2
  41. package/dist/collection/components/snk-data-unit/snk-data-unit.js +499 -176
  42. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  43. package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +22 -1
  44. package/dist/collection/components/snk-form/snk-form.js +101 -4
  45. package/dist/collection/components/snk-form-config/SnkFormConfigManager.js +2 -2
  46. package/dist/collection/components/snk-grid/snk-grid.js +219 -8
  47. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +283 -9
  48. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  49. package/dist/collection/lib/dataUnit/InMemoryLoader.js +6 -2
  50. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  51. package/dist/collection/lib/dataUnit/interfaces/InMemoryLoaderConfig.js +1 -0
  52. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  53. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  54. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +51 -1
  55. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  56. package/dist/collection/lib/message/SnkMessageBuilder.js +25 -32
  57. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
  58. package/dist/components/ConfigStorage.js +2 -1
  59. package/dist/components/DataFetcher.js +7024 -0
  60. package/dist/components/IExporterProvider.js +54 -12
  61. package/dist/components/SnkFormConfigManager.js +2 -2
  62. package/dist/components/SnkMessageBuilder.js +6 -12
  63. package/dist/components/dataunit-fetcher.js +64 -166
  64. package/dist/components/form-config-fetcher.js +3 -7023
  65. package/dist/components/pesquisa-fetcher.js +164 -0
  66. package/dist/components/snk-actions-button2.js +4 -2
  67. package/dist/components/snk-application2.js +26 -17
  68. package/dist/components/snk-attach2.js +4 -2
  69. package/dist/components/snk-crud.js +101 -10
  70. package/dist/components/snk-data-exporter2.js +6 -4
  71. package/dist/components/snk-data-unit2.js +424 -177
  72. package/dist/components/snk-detail-view2.js +87 -9
  73. package/dist/components/snk-filter-bar2.js +6 -1
  74. package/dist/components/snk-form-config2.js +1 -1
  75. package/dist/components/snk-form-view2.js +72 -1
  76. package/dist/components/snk-form.js +52 -5
  77. package/dist/components/snk-grid2.js +109 -12
  78. package/dist/components/snk-simple-crud2.js +157 -11
  79. package/dist/esm/{ConfigStorage-928c3bf4.js → ConfigStorage-174101b9.js} +2 -1
  80. package/dist/esm/{form-config-fetcher-e3094014.js → DataFetcher-4b4b7beb.js} +1 -250
  81. package/dist/esm/{IExporterProvider-e2a1195d.js → IExporterProvider-cf5a56ee.js} +54 -12
  82. package/dist/esm/{SnkFormConfigManager-a87ade7a.js → SnkFormConfigManager-3bdb3e1f.js} +4 -4
  83. package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-3a767111.js} +6 -12
  84. package/dist/esm/{auth-fetcher-e1cb288f.js → auth-fetcher-9f86c346.js} +1 -1
  85. package/dist/esm/{pesquisa-fetcher-6d8e50bb.js → dataunit-fetcher-f3fa35b9.js} +63 -165
  86. package/dist/esm/form-config-fetcher-5d72aaf1.js +253 -0
  87. package/dist/esm/loader.js +1 -1
  88. package/dist/esm/pesquisa-fetcher-9cfab836.js +164 -0
  89. package/dist/esm/sankhyablocks.js +1 -1
  90. package/dist/esm/snk-actions-button_4.entry.js +5 -3
  91. package/dist/esm/snk-application.entry.js +30 -20
  92. package/dist/esm/snk-attach.entry.js +5 -3
  93. package/dist/esm/snk-crud.entry.js +95 -10
  94. package/dist/esm/snk-data-exporter.entry.js +8 -6
  95. package/dist/esm/snk-data-unit-8d6afa43.js +668 -0
  96. package/dist/esm/snk-data-unit.entry.js +10 -2
  97. package/dist/esm/snk-detail-view.entry.js +48 -7
  98. package/dist/esm/snk-filter-bar.entry.js +8 -3
  99. package/dist/esm/snk-filter-modal-item.entry.js +3 -2
  100. package/dist/esm/snk-form-config.entry.js +2 -1
  101. package/dist/esm/snk-form-view.entry.js +67 -0
  102. package/dist/esm/snk-form.entry.js +53 -7
  103. package/dist/esm/snk-grid.entry.js +104 -12
  104. package/dist/esm/{snk-guides-viewer-1fd41a25.js → snk-guides-viewer-11cf8dc7.js} +36 -7
  105. package/dist/esm/snk-guides-viewer.entry.js +8 -6
  106. package/dist/esm/snk-personalized-filter.entry.js +3 -2
  107. package/dist/esm/snk-simple-crud.entry.js +153 -14
  108. package/dist/sankhyablocks/p-010d475f.js +1 -0
  109. package/dist/sankhyablocks/p-0a28cb19.entry.js +1 -0
  110. package/dist/sankhyablocks/p-188e1432.entry.js +1 -0
  111. package/dist/sankhyablocks/p-1c6debe6.entry.js +1 -0
  112. package/dist/sankhyablocks/p-1db45d26.entry.js +1 -0
  113. package/dist/sankhyablocks/p-2a84e45b.entry.js +1 -0
  114. package/dist/sankhyablocks/p-2cc2d8fd.entry.js +1 -0
  115. package/dist/sankhyablocks/p-3e4c2cfe.entry.js +11 -0
  116. package/dist/sankhyablocks/p-4a8a149d.entry.js +1 -0
  117. package/dist/sankhyablocks/p-4ce73e88.js +1 -0
  118. package/dist/sankhyablocks/p-50e72d6c.js +1 -0
  119. package/dist/sankhyablocks/{p-e27496ed.js → p-566f5f50.js} +6 -6
  120. package/dist/sankhyablocks/p-59dccb7a.entry.js +1 -0
  121. package/dist/sankhyablocks/p-5bd78e4c.entry.js +1 -0
  122. package/dist/sankhyablocks/p-6b2be902.js +6 -0
  123. package/dist/sankhyablocks/p-8171e586.entry.js +1 -0
  124. package/dist/sankhyablocks/p-a6dfa396.js +1 -0
  125. package/dist/sankhyablocks/p-a97060b0.js +1 -0
  126. package/dist/sankhyablocks/p-aa854fa8.entry.js +1 -0
  127. package/dist/sankhyablocks/p-b27114c4.js +1 -0
  128. package/dist/sankhyablocks/p-b643f746.entry.js +1 -0
  129. package/dist/sankhyablocks/p-b68918fc.entry.js +1 -0
  130. package/dist/sankhyablocks/p-da7c81d6.entry.js +1 -0
  131. package/dist/sankhyablocks/p-e0c27486.js +26 -0
  132. package/dist/sankhyablocks/p-e238279a.entry.js +1 -0
  133. package/dist/sankhyablocks/p-eae66367.js +1 -0
  134. package/dist/sankhyablocks/p-fde91811.js +60 -0
  135. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  136. package/dist/types/components/snk-application/snk-application.d.ts +6 -2
  137. package/dist/types/components/snk-crud/interfaces/PropsCustomEditor.d.ts +4 -0
  138. package/dist/types/components/snk-crud/interfaces/PropsCustomRender.d.ts +4 -0
  139. package/dist/types/components/snk-crud/snk-crud.d.ts +32 -1
  140. package/dist/types/components/snk-crud/subcomponents/snk-detail-view/snk-detail-view.d.ts +23 -0
  141. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +28 -3
  142. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +19 -0
  143. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +3 -0
  144. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +61 -2
  145. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  146. package/dist/types/components/snk-filter-bar/snk-filter-bar.d.ts +4 -0
  147. package/dist/types/components/snk-form/snk-form.d.ts +14 -0
  148. package/dist/types/components/snk-grid/snk-grid.d.ts +42 -3
  149. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +40 -2
  150. package/dist/types/components.d.ts +180 -4
  151. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  152. package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +2 -1
  153. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  154. package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +3 -0
  155. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  156. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  157. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +6 -0
  158. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  159. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +2 -0
  160. package/package.json +1 -1
  161. package/dist/cjs/snk-data-unit-abd2113f.js +0 -427
  162. package/dist/esm/snk-data-unit-29eba11a.js +0 -425
  163. package/dist/sankhyablocks/p-029bfc09.js +0 -1
  164. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  165. package/dist/sankhyablocks/p-07825198.js +0 -1
  166. package/dist/sankhyablocks/p-0e8702f0.js +0 -1
  167. package/dist/sankhyablocks/p-13ea113d.entry.js +0 -1
  168. package/dist/sankhyablocks/p-314e2d1a.entry.js +0 -1
  169. package/dist/sankhyablocks/p-32556aa6.js +0 -1
  170. package/dist/sankhyablocks/p-3357af48.js +0 -1
  171. package/dist/sankhyablocks/p-3c2a1f4d.js +0 -65
  172. package/dist/sankhyablocks/p-3e7167dd.js +0 -1
  173. package/dist/sankhyablocks/p-536eeb16.js +0 -26
  174. package/dist/sankhyablocks/p-587f9dcf.entry.js +0 -1
  175. package/dist/sankhyablocks/p-61984566.entry.js +0 -1
  176. package/dist/sankhyablocks/p-61b6126e.entry.js +0 -1
  177. package/dist/sankhyablocks/p-65b6dba3.entry.js +0 -1
  178. package/dist/sankhyablocks/p-6a7bc5c8.entry.js +0 -1
  179. package/dist/sankhyablocks/p-6c9edfd8.entry.js +0 -1
  180. package/dist/sankhyablocks/p-89bde7d3.entry.js +0 -1
  181. package/dist/sankhyablocks/p-91dceecf.entry.js +0 -1
  182. package/dist/sankhyablocks/p-a40cbad8.entry.js +0 -1
  183. package/dist/sankhyablocks/p-b86ea293.entry.js +0 -1
  184. package/dist/sankhyablocks/p-d8ddb2a4.entry.js +0 -11
  185. package/dist/sankhyablocks/p-f92f1f5f.entry.js +0 -1
  186. package/dist/sankhyablocks/p-fa84e72f.entry.js +0 -1
@@ -1,10 +1,12 @@
1
- import { D as DataFetcher } from './form-config-fetcher.js';
2
- import { a as PreloadManager } from './dataunit-fetcher.js';
3
- import { SortMode, ApplicationContext, UserInterface, DateUtils, DataType } from '@sankhyalabs/core';
1
+ import { D as DataFetcher } from './DataFetcher.js';
2
+ import './pesquisa-fetcher.js';
3
+ import { SortMode, ApplicationContext, UserInterface, DateUtils, ObjectUtils, NumberUtils, DataType } from '@sankhyalabs/core';
4
4
  import './ISave.js';
5
5
  import '@sankhyalabs/ezui/dist/collection/utils/constants';
6
6
  import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
7
+ import { P as PreloadManager } from './dataunit-fetcher.js';
7
8
  import './filter-item-type.enum.js';
9
+ import './form-config-fetcher.js';
8
10
  import InMemoryFilterColumnDataSource from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils/InMemoryFilterColumnDataSource';
9
11
  import { h } from '@stencil/core/internal/client';
10
12
 
@@ -206,6 +208,41 @@ const openFieldSearch = async (moreOptions, field) => {
206
208
  await moreOptions.showActions();
207
209
  };
208
210
 
211
+ class RmPrecisionCustomValueFormatter {
212
+ setGrid(grid) {
213
+ if (this._grid) {
214
+ return;
215
+ }
216
+ this._grid = grid;
217
+ this.refreshSelectedRows();
218
+ }
219
+ setDataState(dataState) {
220
+ if (ObjectUtils.objectToString(dataState) === ObjectUtils.objectToString(this._dataState)) {
221
+ return;
222
+ }
223
+ this._dataState = dataState;
224
+ this.refreshSelectedRows();
225
+ }
226
+ format(currentValue, column, recordId) {
227
+ var _a;
228
+ if (!currentValue) {
229
+ return currentValue;
230
+ }
231
+ const rowMetadata = (_a = this._dataState) === null || _a === void 0 ? void 0 : _a.metadataByRow.get(recordId);
232
+ const rmPrecision = rowMetadata === null || rowMetadata === void 0 ? void 0 : rowMetadata.getProp('rm_precision', column.name);
233
+ if (rmPrecision || rmPrecision === 0) {
234
+ return NumberUtils.format(currentValue, rmPrecision, rmPrecision);
235
+ }
236
+ else {
237
+ return currentValue;
238
+ }
239
+ }
240
+ refreshSelectedRows() {
241
+ var _a;
242
+ (_a = this._grid) === null || _a === void 0 ? void 0 : _a.refreshSelectedRows();
243
+ }
244
+ }
245
+
209
246
  class CommonsExporter {
210
247
  constructor(dataUnit, grid) {
211
248
  this.dataUnit = dataUnit;
@@ -213,26 +250,31 @@ class CommonsExporter {
213
250
  }
214
251
  async getColumnsMetadata() {
215
252
  var _a;
216
- const columnsState = await ((_a = this.grid) === null || _a === void 0 ? void 0 : _a.getColumnsState());
217
- return this.buildColumnsMetadata(columnsState);
253
+ this.columnsState = await ((_a = this.grid) === null || _a === void 0 ? void 0 : _a.getColumnsState()) || [];
254
+ return await this.buildColumnsMetadata(this.columnsState);
218
255
  }
219
- buildColumnsMetadata(gridColumns) {
256
+ getColumnsState() {
257
+ return this.columnsState;
258
+ }
259
+ async buildColumnsMetadata(gridColumns) {
260
+ var _a, _b;
220
261
  const columnsMetadata = [];
221
- gridColumns === null || gridColumns === void 0 ? void 0 : gridColumns.forEach((column) => {
222
- var _a, _b;
262
+ for (const column of gridColumns) {
223
263
  /**
224
264
  * TODO: Analisar e criar uma melhor forma de tratar essa validação do "RECDESP".
225
265
  */
226
266
  if (column.hidden && column.name !== "RECDESP") {
227
- return;
267
+ continue;
228
268
  }
229
269
  const fieldData = (_a = this.dataUnit) === null || _a === void 0 ? void 0 : _a.getField(column.name);
270
+ const customFormatter = await this.grid.getCustomValueFormatter(column.name);
230
271
  const columnData = {
231
272
  label: column.label,
232
273
  id: column.name,
233
274
  width: (fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface) === UserInterface$1.SEARCH ? 30 : column.width,
234
275
  type: fieldData === null || fieldData === void 0 ? void 0 : fieldData.dataType,
235
- userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface
276
+ userInterface: fieldData === null || fieldData === void 0 ? void 0 : fieldData.userInterface,
277
+ customFormatter
236
278
  };
237
279
  columnsMetadata.push(columnData);
238
280
  if (((_b = fieldData === null || fieldData === void 0 ? void 0 : fieldData.properties) === null || _b === void 0 ? void 0 : _b.DESCRIPTIONFIELD) != undefined) {
@@ -248,9 +290,9 @@ class CommonsExporter {
248
290
  };
249
291
  columnsMetadata.push(descriptionColumn);
250
292
  }
251
- });
293
+ }
252
294
  return columnsMetadata || [];
253
295
  }
254
296
  }
255
297
 
256
- export { CommonsExporter as C, SnkMultiSelectionListDataSource as S, TaskbarProcessor as T, CrudUtils as a, buildFieldSearch as b, openFieldSearch as o };
298
+ export { CommonsExporter as C, RmPrecisionCustomValueFormatter as R, SnkMultiSelectionListDataSource as S, TaskbarProcessor as T, CrudUtils as a, buildFieldSearch as b, openFieldSearch as o };
@@ -72,11 +72,11 @@ class SnkFormConfigManager {
72
72
  var _a;
73
73
  const fields = (_a = this._config) === null || _a === void 0 ? void 0 : _a.fields;
74
74
  if (fields != undefined && fields.length > 0) {
75
- return fields.map(({ label, name, readOnly }) => {
75
+ return fields.map(({ label, name, readOnly, visible }) => {
76
76
  if (label == undefined) {
77
77
  return dataUnit.getField(name);
78
78
  }
79
- return { name, label, readOnly };
79
+ return { name, label, readOnly, visible };
80
80
  })
81
81
  .filter(field => this.isFieldVisible(field, descriptionFilter));
82
82
  }
@@ -29,6 +29,7 @@ const snkDataUnitMessages = {
29
29
  forbiddenRemove: "Não é possível remover. Verifique as permissões de acesso.",
30
30
  removeAllConfirmation: "Os <strong>{{size}} registros selecionados</strong> serão excluídos.<br/><br/><strong>Você realmente gostaria de continuar?</strong>",
31
31
  removeAllInfo: "Os {{size}} registros foram removidos com sucesso!",
32
+ fieldNameRequired: "É necessário informar o nome da coluna."
32
33
  };
33
34
 
34
35
  const snkFilterBarMessages = {
@@ -552,7 +553,7 @@ class SnkMessageBuilder {
552
553
  this.loadAppMessages().then((msgs) => {
553
554
  this._appMessages = msgs;
554
555
  }, error => {
555
- console.info('O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages.js', error);
556
+ console.info('O arquivo de mensagens personalizadas não foi encontrado no caminho /messages/appmessages', error);
556
557
  });
557
558
  }
558
559
  /**
@@ -644,17 +645,10 @@ class SnkMessageBuilder {
644
645
  return message;
645
646
  }
646
647
  }
647
- loadAppMessages() {
648
- return new Promise(async (accept, reject) => {
649
- const messagesUrl = await this._application.getApplicationPath();
650
- import(/* webpackIgnore: true */ `${messagesUrl}/messages/appmessages.js`)
651
- .then(module => {
652
- accept(module.default);
653
- })
654
- .catch(reason => {
655
- reject(reason);
656
- });
657
- });
648
+ async loadAppMessages() {
649
+ const messagesUrl = await this._application.getApplicationPath();
650
+ const module = await import(/* webpackIgnore: true */ `${messagesUrl}/messages/appmessages.js`);
651
+ return module.default;
658
652
  }
659
653
  }
660
654
  var OperationMap;
@@ -1,171 +1,11 @@
1
- import { DataType, ApplicationContext, ObjectUtils, DataUnit, DateUtils, StringUtils, ChangeOperation, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
2
- import { d as dist, D as DataFetcher } from './form-config-fetcher.js';
1
+ import { ObjectUtils, DataUnit, DataType, DateUtils, StringUtils, ChangeOperation, ApplicationContext, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
2
+ import { D as DataFetcher, d as dist } from './DataFetcher.js';
3
3
  import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
4
4
  import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
5
5
  import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/components/ez-grid/utils';
6
6
  import SortingUtils from '@sankhyalabs/core/dist/utils/SortingUtils';
7
7
  import { R as ResourceIDUtils } from './ResourceIDUtils.js';
8
8
 
9
- class PesquisaFetcher {
10
- constructor() {
11
- this._defaultPageSize = 100;
12
- this._templateByQuery = new Map();
13
- this._searchListenersByDataUnit = new Map();
14
- this.buldTemplates();
15
- }
16
- buldTemplates() {
17
- this._templateByQuery.set("search", dist.gql `query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
18
- $queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
19
- value
20
- label
21
- }
22
- }`);
23
- }
24
- loadSearchOptions(entityName, argument, criteria, options) {
25
- var _a;
26
- const cleanText = (argument === null || argument === void 0 ? void 0 : argument.toString().trim()) || undefined;
27
- argument = isNaN(Number(cleanText)) && cleanText ? `%${cleanText}` : cleanText;
28
- criteria === null || criteria === void 0 ? void 0 : criteria.params.forEach(param => {
29
- if (param.dataType === DataType.OBJECT) {
30
- param.value = JSON.stringify(param.value);
31
- }
32
- });
33
- const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, options);
34
- const values = {
35
- argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
36
- entityName,
37
- criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
38
- options: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || options,
39
- };
40
- if (values.options) {
41
- (_a = values.options) === null || _a === void 0 ? true : delete _a.dataUnitId;
42
- }
43
- return new Promise((resolve, reject) => {
44
- DataFetcher.get()
45
- .callGraphQL({
46
- values,
47
- query: this._templateByQuery.get("search"),
48
- })
49
- .then((result) => {
50
- resolve(result);
51
- })
52
- .catch((error) => {
53
- reject(error);
54
- });
55
- });
56
- }
57
- loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
58
- var _a, _b, _c, _d, _e;
59
- const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
60
- const values = {
61
- argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
62
- criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
63
- searchOptions: Object.assign(Object.assign({}, searchOptions), listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions),
64
- };
65
- const serviceName = "PesquisaSP.getSuggestion";
66
- const externalCriteria = {
67
- query: {
68
- $: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
69
- }
70
- };
71
- if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
72
- externalCriteria.params = {
73
- param: values.criteria.params.map(param => {
74
- let value = param.value;
75
- if (typeof value === "string") {
76
- const match = /CTX\{([^}]+)\}/.exec(value);
77
- if (match) {
78
- value = ApplicationContext.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${match[1]})__`);
79
- }
80
- }
81
- let type = param.dataType;
82
- if (type === DataType.OBJECT) {
83
- value = value.value;
84
- type = "S";
85
- }
86
- else {
87
- type = convertParamType(param.dataType);
88
- }
89
- return { $: value, type };
90
- })
91
- };
92
- }
93
- const options = searchOptions != undefined
94
- ? Object.assign(Object.assign({}, values === null || values === void 0 ? void 0 : values.searchOptions), { "pkFieldName": searchOptions.codeFieldName, "label": searchOptions.descriptionFieldName, "fieldName": searchOptions.codeFieldName, "useDescriptionOptions": false, "enableRowsCounter": true }) : undefined;
95
- const reqBody = {
96
- "serviceName": serviceName,
97
- "requestBody": {
98
- "criteria": Object.assign({ "entityName": entityName, "compacted": false, "ignoreEntityCriteria": (_d = options === null || options === void 0 ? void 0 : options.ignoreEntityCriteria) !== null && _d !== void 0 ? _d : false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_e = values.searchOptions) === null || _e === void 0 ? void 0 : _e.rootEntity }, { options }),
99
- "clientEventList": {
100
- "clientEvent": []
101
- }
102
- }
103
- };
104
- return new Promise((resolve, reject) => {
105
- DataFetcher.get()
106
- .callServiceBroker("PesquisaSP.getSuggestion", JSON.stringify(reqBody))
107
- .then(result => resolve(result))
108
- .catch(error => reject(error));
109
- });
110
- }
111
- addSearchListener(entityName, dataUnitID, listener) {
112
- var _a;
113
- const dataUnitSearchListeners = this._searchListenersByDataUnit.get(dataUnitID) || [];
114
- const entityListener = dataUnitSearchListeners.find(currentListener => currentListener.entity === entityName);
115
- if (!entityListener) {
116
- this._searchListenersByDataUnit.set(dataUnitID, [...dataUnitSearchListeners, { entity: entityName, listener }]);
117
- }
118
- else {
119
- for (const type of Object.keys(listener)) {
120
- if (type in entityListener.listener) {
121
- const listenerFunctionIsEquals = ((_a = entityListener.listener[type]) === null || _a === void 0 ? void 0 : _a.toString()) === listener[type].toString();
122
- if (listenerFunctionIsEquals)
123
- continue;
124
- entityListener.listener[type] = listener[type];
125
- }
126
- }
127
- }
128
- return () => {
129
- const newListeners = dataUnitSearchListeners.filter(currentListener => currentListener.entity !== entityName);
130
- if (!newListeners.length) {
131
- this._searchListenersByDataUnit.delete(dataUnitID);
132
- return;
133
- }
134
- this._searchListenersByDataUnit.set(dataUnitID, newListeners);
135
- };
136
- }
137
- applySearchListener(listenerType, entityName, argument, criteria, searchOptions) {
138
- var _a;
139
- const dataUnitId = searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.dataUnitId;
140
- if (!dataUnitId)
141
- return;
142
- const entityListener = (_a = this._searchListenersByDataUnit.get(dataUnitId)) === null || _a === void 0 ? void 0 : _a.find(({ entity }) => entity === entityName);
143
- if (!entityListener)
144
- return;
145
- const { listener } = entityListener;
146
- if (!(listenerType in listener))
147
- return;
148
- return listener[listenerType]({ argument, criteria, searchOptions });
149
- }
150
- }
151
- function convertParamType(dataType) {
152
- //Alerta: Cuidado pra não contaminar o DataType com a implementação
153
- //atual da pesquisa... em geral, somente inteiros,
154
- //data (com ou sem hora) e string são realmente relevantes
155
- switch (dataType) {
156
- case DataType.NUMBER:
157
- return "I";
158
- case DataType.DATE:
159
- return "D";
160
- default:
161
- return "S";
162
- }
163
- }
164
- var SearchListenerType;
165
- (function (SearchListenerType) {
166
- SearchListenerType["beforeSearch"] = "beforeSearch";
167
- })(SearchListenerType || (SearchListenerType = {}));
168
-
169
9
  class ArrayRepository {
170
10
  constructor(equalsFunction) {
171
11
  this._list = [];
@@ -417,7 +257,7 @@ function buildPaginationInfo(records, offset = 0, limit = 0) {
417
257
  }
418
258
 
419
259
  class InMemoryLoader {
420
- constructor(metadata, records) {
260
+ constructor(metadata, records, config) {
421
261
  this.metadata = metadata;
422
262
  this.records = records;
423
263
  this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
@@ -425,7 +265,11 @@ class InMemoryLoader {
425
265
  this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
426
266
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
427
267
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
428
- this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
268
+ this.dataUnit.loadMetadata().then(() => {
269
+ if ((config === null || config === void 0 ? void 0 : config.autoLoad) !== false) {
270
+ this.dataUnit.loadData();
271
+ }
272
+ });
429
273
  }
430
274
  getRecordsToLoad() {
431
275
  if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
@@ -529,6 +373,11 @@ class InMemoryLoader {
529
373
  }
530
374
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
531
375
 
376
+ function getRecordValue(record, fieldName) {
377
+ var _a, _b;
378
+ return ((_a = record[fieldName]) === null || _a === void 0 ? void 0 : _a.value) !== undefined ? (_b = record[fieldName]) === null || _b === void 0 ? void 0 : _b.value : record[fieldName];
379
+ }
380
+
532
381
  class DatasetStrategy {
533
382
  canSlice() {
534
383
  return false;
@@ -583,6 +432,53 @@ class DatasetStrategy {
583
432
  return Promise.reject(error);
584
433
  }
585
434
  }
435
+ async loadRowMetadata(snkDataUnit, fieldName, metadataName, updatedFields = {}) {
436
+ try {
437
+ const serviceName = "DatasetSP.loadRowMetadata";
438
+ const parsedRequestBody = await this.buildRequestBodyLoadRowMetadata({ snkDataUnit, fieldName, metadataName, serviceName, updatedFields });
439
+ const response = await DataFetcher.get().callServiceBroker(serviceName, parsedRequestBody);
440
+ return response;
441
+ }
442
+ catch (error) {
443
+ console.error(error);
444
+ return Promise.reject(error);
445
+ }
446
+ }
447
+ async buildRequestBodyLoadRowMetadata({ snkDataUnit, serviceName, fieldName, metadataName, updatedFields, }) {
448
+ const dataUnit = snkDataUnit.dataUnit;
449
+ const entityName = DataUnitFetcher.parseDataUnitName(dataUnit.name).entityName;
450
+ const recordIdInfo = await snkDataUnit.getSelectedRecordsIDsInfo();
451
+ const pk = recordIdInfo.reduce((accumulator, currentValue) => {
452
+ accumulator[currentValue.name] = currentValue.value;
453
+ return accumulator;
454
+ }, {});
455
+ const record = dataUnit.getSelectedRecord();
456
+ const fields = dataUnit.metadata.fields.filter(({ standAlone, name }) => !standAlone && !name.includes(".")).map(({ name }) => name);
457
+ const values = fields.reduce((accumulator, currentValue, currentIndex) => {
458
+ const recordValue = getRecordValue(record, currentValue);
459
+ const updatedFieldValue = getRecordValue(updatedFields, currentValue);
460
+ accumulator[currentIndex] = updatedFieldValue !== undefined ? updatedFieldValue : recordValue;
461
+ return accumulator;
462
+ }, {});
463
+ const requestBody = {
464
+ serviceName,
465
+ requestBody: {
466
+ dataSetID: dataUnit.dataUnitId,
467
+ entityName,
468
+ standAlone: false,
469
+ metadataName,
470
+ fieldName,
471
+ fields,
472
+ record: {
473
+ pk,
474
+ oldPk: pk,
475
+ values,
476
+ },
477
+ }
478
+ };
479
+ const parsedRequestBody = JSON.stringify(requestBody);
480
+ return parsedRequestBody;
481
+ }
586
482
  getFieldsList(dataUnit) {
587
483
  let fields = ["__record__id__", "__record__label__"];
588
484
  dataUnit.metadata.fields.forEach((descriptor) => {
@@ -662,9 +558,11 @@ class DatasetStrategy {
662
558
  }
663
559
  processRecords(dataUnit, fields, responseRecords) {
664
560
  return responseRecords.map((dataFrame) => {
561
+ const lastElement = dataFrame[dataFrame.length - 1];
665
562
  const duRecord = {
666
563
  __record__id__: dataFrame[0],
667
- __record__label__: dataFrame[1]
564
+ __record__label__: dataFrame[1],
565
+ __record__metadata__: lastElement['_rmd'],
668
566
  };
669
567
  dataUnit.metadata.fields.forEach(fieldDescriptor => {
670
568
  duRecord[fieldDescriptor.name] = this.buildFieldValue(fieldDescriptor, fields, dataFrame);
@@ -1149,4 +1047,4 @@ class DataUnitFetcher {
1149
1047
  }
1150
1048
  }
1151
1049
 
1152
- export { DataUnitFetcher as D, InMemoryLoader as I, PesquisaFetcher as P, PreloadManager as a, applyFilter as b, applySorting as c, buildPaginationInfo as d };
1050
+ export { DataUnitFetcher as D, InMemoryLoader as I, PreloadManager as P, applyFilter as a, applySorting as b, buildPaginationInfo as c, DatasetStrategy as d, getRecordValue as g };