@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,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  const core = require('@sankhyalabs/core');
4
- const formConfigFetcher = require('./form-config-fetcher-3c4daeb5.js');
4
+ const DataFetcher = require('./DataFetcher-515bda03.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');
@@ -263,7 +263,7 @@ function buildPaginationInfo(records, offset = 0, limit = 0) {
263
263
  }
264
264
 
265
265
  class InMemoryLoader {
266
- constructor(metadata, records) {
266
+ constructor(metadata, records, config) {
267
267
  this.metadata = metadata;
268
268
  this.records = records;
269
269
  this._dataUnit = new core.DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
@@ -271,7 +271,11 @@ class InMemoryLoader {
271
271
  this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
272
272
  this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
273
273
  this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
274
- this.dataUnit.loadMetadata().then(() => this.dataUnit.loadData());
274
+ this.dataUnit.loadMetadata().then(() => {
275
+ if ((config === null || config === void 0 ? void 0 : config.autoLoad) !== false) {
276
+ this.dataUnit.loadData();
277
+ }
278
+ });
275
279
  }
276
280
  getRecordsToLoad() {
277
281
  if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
@@ -375,6 +379,11 @@ class InMemoryLoader {
375
379
  }
376
380
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
377
381
 
382
+ function getRecordValue(record, fieldName) {
383
+ var _a, _b;
384
+ 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];
385
+ }
386
+
378
387
  class DatasetStrategy {
379
388
  canSlice() {
380
389
  return false;
@@ -412,7 +421,7 @@ class DatasetStrategy {
412
421
  const serviceName = "DatasetSP.loadRecords";
413
422
  const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
414
423
  const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
415
- const { result: responseRecords, pagerID: pagerId } = await formConfigFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
424
+ const { result: responseRecords, pagerID: pagerId } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
416
425
  const records = this.processRecords(dataUnit, fields, responseRecords);
417
426
  const loadingInProgress = pagerId != undefined;
418
427
  const count = loadingInfo.count + records.length;
@@ -429,6 +438,53 @@ class DatasetStrategy {
429
438
  return Promise.reject(error);
430
439
  }
431
440
  }
441
+ async loadRowMetadata(snkDataUnit, fieldName, metadataName, updatedFields = {}) {
442
+ try {
443
+ const serviceName = "DatasetSP.loadRowMetadata";
444
+ const parsedRequestBody = await this.buildRequestBodyLoadRowMetadata({ snkDataUnit, fieldName, metadataName, serviceName, updatedFields });
445
+ const response = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, parsedRequestBody);
446
+ return response;
447
+ }
448
+ catch (error) {
449
+ console.error(error);
450
+ return Promise.reject(error);
451
+ }
452
+ }
453
+ async buildRequestBodyLoadRowMetadata({ snkDataUnit, serviceName, fieldName, metadataName, updatedFields, }) {
454
+ const dataUnit = snkDataUnit.dataUnit;
455
+ const entityName = DataUnitFetcher.parseDataUnitName(dataUnit.name).entityName;
456
+ const recordIdInfo = await snkDataUnit.getSelectedRecordsIDsInfo();
457
+ const pk = recordIdInfo.reduce((accumulator, currentValue) => {
458
+ accumulator[currentValue.name] = currentValue.value;
459
+ return accumulator;
460
+ }, {});
461
+ const record = dataUnit.getSelectedRecord();
462
+ const fields = dataUnit.metadata.fields.filter(({ standAlone, name }) => !standAlone && !name.includes(".")).map(({ name }) => name);
463
+ const values = fields.reduce((accumulator, currentValue, currentIndex) => {
464
+ const recordValue = getRecordValue(record, currentValue);
465
+ const updatedFieldValue = getRecordValue(updatedFields, currentValue);
466
+ accumulator[currentIndex] = updatedFieldValue !== undefined ? updatedFieldValue : recordValue;
467
+ return accumulator;
468
+ }, {});
469
+ const requestBody = {
470
+ serviceName,
471
+ requestBody: {
472
+ dataSetID: dataUnit.dataUnitId,
473
+ entityName,
474
+ standAlone: false,
475
+ metadataName,
476
+ fieldName,
477
+ fields,
478
+ record: {
479
+ pk,
480
+ oldPk: pk,
481
+ values,
482
+ },
483
+ }
484
+ };
485
+ const parsedRequestBody = JSON.stringify(requestBody);
486
+ return parsedRequestBody;
487
+ }
432
488
  getFieldsList(dataUnit) {
433
489
  let fields = ["__record__id__", "__record__label__"];
434
490
  dataUnit.metadata.fields.forEach((descriptor) => {
@@ -508,9 +564,11 @@ class DatasetStrategy {
508
564
  }
509
565
  processRecords(dataUnit, fields, responseRecords) {
510
566
  return responseRecords.map((dataFrame) => {
567
+ const lastElement = dataFrame[dataFrame.length - 1];
511
568
  const duRecord = {
512
569
  __record__id__: dataFrame[0],
513
- __record__label__: dataFrame[1]
570
+ __record__label__: dataFrame[1],
571
+ __record__metadata__: lastElement['_rmd'],
514
572
  };
515
573
  dataUnit.metadata.fields.forEach(fieldDescriptor => {
516
574
  duRecord[fieldDescriptor.name] = this.buildFieldValue(fieldDescriptor, fields, dataFrame);
@@ -690,7 +748,7 @@ class DataUnitFetcher {
690
748
  this.buldTemplates();
691
749
  }
692
750
  buldTemplates() {
693
- this.templateByQuery.set("fetchDataUnit", formConfigFetcher.dist.gql `query($name: String!) {
751
+ this.templateByQuery.set("fetchDataUnit", DataFetcher.dist.gql `query($name: String!) {
694
752
  $queryAlias$: fetchDataUnit(name: $name){
695
753
  name
696
754
  fields{
@@ -726,7 +784,7 @@ class DataUnitFetcher {
726
784
  }
727
785
  }
728
786
  }`);
729
- this.templateByQuery.set("saveData", formConfigFetcher.dist.gql `mutation($changes: [InputBatchChange!]!) {
787
+ this.templateByQuery.set("saveData", DataFetcher.dist.gql `mutation($changes: [InputBatchChange!]!) {
730
788
  $queryAlias$: batchOperationDataUnit(changes: $changes){
731
789
  oldId
732
790
  id
@@ -738,7 +796,7 @@ class DataUnitFetcher {
738
796
  }
739
797
  }
740
798
  }`);
741
- this.templateByQuery.set("fetchDataRecord", formConfigFetcher.dist.gql `query($dataunit: String! $recordID: [String!]) {
799
+ this.templateByQuery.set("fetchDataRecord", DataFetcher.dist.gql `query($dataunit: String! $recordID: [String!]) {
742
800
  $queryAlias$: fetchDataUnit(name: $dataunit){
743
801
  record(id: $recordID){
744
802
  id
@@ -750,7 +808,7 @@ class DataUnitFetcher {
750
808
  }
751
809
  }
752
810
  }`);
753
- this.templateByQuery.set("fetchDistinctColumn", formConfigFetcher.dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
811
+ this.templateByQuery.set("fetchDistinctColumn", DataFetcher.dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
754
812
  $queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
755
813
  }`);
756
814
  }
@@ -781,7 +839,7 @@ class DataUnitFetcher {
781
839
  }
782
840
  loadMetadata(dataUnit) {
783
841
  return new Promise((resolve, reject) => {
784
- formConfigFetcher.DataFetcher.get()
842
+ DataFetcher.DataFetcher.get()
785
843
  .callGraphQL({
786
844
  values: { name: dataUnit.name },
787
845
  query: this.templateByQuery.get("fetchDataUnit"),
@@ -824,7 +882,7 @@ class DataUnitFetcher {
824
882
  filters: filteredFilters
825
883
  };
826
884
  return new Promise((resolve, reject) => {
827
- formConfigFetcher.DataFetcher.get()
885
+ DataFetcher.DataFetcher.get()
828
886
  .callGraphQL({
829
887
  values,
830
888
  query: this.templateByQuery.get("fetchDistinctColumn"),
@@ -900,7 +958,7 @@ class DataUnitFetcher {
900
958
  var rest = __rest(_a, []);
901
959
  return rest;
902
960
  });
903
- formConfigFetcher.DataFetcher.get()
961
+ DataFetcher.DataFetcher.get()
904
962
  .callGraphQL({
905
963
  values: { changes: changesFormatted },
906
964
  query: this.templateByQuery.get("saveData"),
@@ -955,7 +1013,7 @@ class DataUnitFetcher {
955
1013
  return { dataUnit: dataUnit.name, operation: core.ChangeOperation.DELETE, recordId, fields: this.getTransientInfo(dataUnit, recordId) };
956
1014
  });
957
1015
  return new Promise((resolve, reject) => {
958
- formConfigFetcher.DataFetcher.get()
1016
+ DataFetcher.DataFetcher.get()
959
1017
  .callGraphQL({
960
1018
  values: { changes: changes },
961
1019
  query: this.templateByQuery.get("saveData"),
@@ -971,7 +1029,7 @@ class DataUnitFetcher {
971
1029
  }
972
1030
  loadRecord(dataUnit, recordIds) {
973
1031
  return new Promise((resolve, reject) => {
974
- formConfigFetcher.DataFetcher.get()
1032
+ DataFetcher.DataFetcher.get()
975
1033
  .callGraphQL({
976
1034
  values: { recordID: recordIds, dataunit: dataUnit.name },
977
1035
  query: this.templateByQuery.get("fetchDataRecord"),
@@ -995,170 +1053,11 @@ class DataUnitFetcher {
995
1053
  }
996
1054
  }
997
1055
 
998
- class PesquisaFetcher {
999
- constructor() {
1000
- this._defaultPageSize = 100;
1001
- this._templateByQuery = new Map();
1002
- this._searchListenersByDataUnit = new Map();
1003
- this.buldTemplates();
1004
- }
1005
- buldTemplates() {
1006
- this._templateByQuery.set("search", formConfigFetcher.dist.gql `query($entityName: String! $argument: String $criteria: InputSearchCriteria $options: InputSearchOptions) {
1007
- $queryAlias$: search(entityName: $entityName argument: $argument criteria: $criteria options: $options){
1008
- value
1009
- label
1010
- }
1011
- }`);
1012
- }
1013
- loadSearchOptions(entityName, argument, criteria, options) {
1014
- var _a;
1015
- const cleanText = (argument === null || argument === void 0 ? void 0 : argument.toString().trim()) || undefined;
1016
- argument = isNaN(Number(cleanText)) && cleanText ? `%${cleanText}` : cleanText;
1017
- criteria === null || criteria === void 0 ? void 0 : criteria.params.forEach(param => {
1018
- if (param.dataType === core.DataType.OBJECT) {
1019
- param.value = JSON.stringify(param.value);
1020
- }
1021
- });
1022
- const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, options);
1023
- const values = {
1024
- argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
1025
- entityName,
1026
- criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
1027
- options: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions) || options,
1028
- };
1029
- if (values.options) {
1030
- (_a = values.options) === null || _a === void 0 ? true : delete _a.dataUnitId;
1031
- }
1032
- return new Promise((resolve, reject) => {
1033
- formConfigFetcher.DataFetcher.get()
1034
- .callGraphQL({
1035
- values,
1036
- query: this._templateByQuery.get("search"),
1037
- })
1038
- .then((result) => {
1039
- resolve(result);
1040
- })
1041
- .catch((error) => {
1042
- reject(error);
1043
- });
1044
- });
1045
- }
1046
- loadAdvancedSearch(entityName, argument, criteria, searchOptions) {
1047
- var _a, _b, _c, _d, _e;
1048
- const listenerResult = this.applySearchListener(SearchListenerType.beforeSearch, entityName, argument, criteria, searchOptions);
1049
- const values = {
1050
- argument: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.argument) || argument,
1051
- criteria: (listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.criteria) || criteria,
1052
- searchOptions: Object.assign(Object.assign({}, searchOptions), listenerResult === null || listenerResult === void 0 ? void 0 : listenerResult.searchOptions),
1053
- };
1054
- const serviceName = "PesquisaSP.getSuggestion";
1055
- const externalCriteria = {
1056
- query: {
1057
- $: (_a = values.criteria) === null || _a === void 0 ? void 0 : _a.expression
1058
- }
1059
- };
1060
- if (((_c = (_b = values.criteria) === null || _b === void 0 ? void 0 : _b.params) === null || _c === void 0 ? void 0 : _c.length) > 0) {
1061
- externalCriteria.params = {
1062
- param: values.criteria.params.map(param => {
1063
- let value = param.value;
1064
- if (typeof value === "string") {
1065
- const match = /CTX\{([^}]+)\}/.exec(value);
1066
- if (match) {
1067
- value = core.ApplicationContext.getContextValue(`__SNK__APPLICATION__FILTER__CONTEXT(${match[1]})__`);
1068
- }
1069
- }
1070
- let type = param.dataType;
1071
- if (type === core.DataType.OBJECT) {
1072
- value = value.value;
1073
- type = "S";
1074
- }
1075
- else {
1076
- type = convertParamType(param.dataType);
1077
- }
1078
- return { $: value, type };
1079
- })
1080
- };
1081
- }
1082
- const options = searchOptions != undefined
1083
- ? 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;
1084
- const reqBody = {
1085
- "serviceName": serviceName,
1086
- "requestBody": {
1087
- "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 }),
1088
- "clientEventList": {
1089
- "clientEvent": []
1090
- }
1091
- }
1092
- };
1093
- return new Promise((resolve, reject) => {
1094
- formConfigFetcher.DataFetcher.get()
1095
- .callServiceBroker("PesquisaSP.getSuggestion", JSON.stringify(reqBody))
1096
- .then(result => resolve(result))
1097
- .catch(error => reject(error));
1098
- });
1099
- }
1100
- addSearchListener(entityName, dataUnitID, listener) {
1101
- var _a;
1102
- const dataUnitSearchListeners = this._searchListenersByDataUnit.get(dataUnitID) || [];
1103
- const entityListener = dataUnitSearchListeners.find(currentListener => currentListener.entity === entityName);
1104
- if (!entityListener) {
1105
- this._searchListenersByDataUnit.set(dataUnitID, [...dataUnitSearchListeners, { entity: entityName, listener }]);
1106
- }
1107
- else {
1108
- for (const type of Object.keys(listener)) {
1109
- if (type in entityListener.listener) {
1110
- const listenerFunctionIsEquals = ((_a = entityListener.listener[type]) === null || _a === void 0 ? void 0 : _a.toString()) === listener[type].toString();
1111
- if (listenerFunctionIsEquals)
1112
- continue;
1113
- entityListener.listener[type] = listener[type];
1114
- }
1115
- }
1116
- }
1117
- return () => {
1118
- const newListeners = dataUnitSearchListeners.filter(currentListener => currentListener.entity !== entityName);
1119
- if (!newListeners.length) {
1120
- this._searchListenersByDataUnit.delete(dataUnitID);
1121
- return;
1122
- }
1123
- this._searchListenersByDataUnit.set(dataUnitID, newListeners);
1124
- };
1125
- }
1126
- applySearchListener(listenerType, entityName, argument, criteria, searchOptions) {
1127
- var _a;
1128
- const dataUnitId = searchOptions === null || searchOptions === void 0 ? void 0 : searchOptions.dataUnitId;
1129
- if (!dataUnitId)
1130
- return;
1131
- const entityListener = (_a = this._searchListenersByDataUnit.get(dataUnitId)) === null || _a === void 0 ? void 0 : _a.find(({ entity }) => entity === entityName);
1132
- if (!entityListener)
1133
- return;
1134
- const { listener } = entityListener;
1135
- if (!(listenerType in listener))
1136
- return;
1137
- return listener[listenerType]({ argument, criteria, searchOptions });
1138
- }
1139
- }
1140
- function convertParamType(dataType) {
1141
- //Alerta: Cuidado pra não contaminar o DataType com a implementação
1142
- //atual da pesquisa... em geral, somente inteiros,
1143
- //data (com ou sem hora) e string são realmente relevantes
1144
- switch (dataType) {
1145
- case core.DataType.NUMBER:
1146
- return "I";
1147
- case core.DataType.DATE:
1148
- return "D";
1149
- default:
1150
- return "S";
1151
- }
1152
- }
1153
- var SearchListenerType;
1154
- (function (SearchListenerType) {
1155
- SearchListenerType["beforeSearch"] = "beforeSearch";
1156
- })(SearchListenerType || (SearchListenerType = {}));
1157
-
1158
1056
  exports.DataUnitFetcher = DataUnitFetcher;
1057
+ exports.DatasetStrategy = DatasetStrategy;
1159
1058
  exports.InMemoryLoader = InMemoryLoader;
1160
- exports.PesquisaFetcher = PesquisaFetcher;
1161
1059
  exports.PreloadManager = PreloadManager;
1162
1060
  exports.applyFilter = applyFilter;
1163
1061
  exports.applySorting = applySorting;
1164
1062
  exports.buildPaginationInfo = buildPaginationInfo;
1063
+ exports.getRecordValue = getRecordValue;
@@ -0,0 +1,256 @@
1
+ 'use strict';
2
+
3
+ const DataFetcher = require('./DataFetcher-515bda03.js');
4
+ const core = require('@sankhyalabs/core');
5
+
6
+ class ResourceFetcher {
7
+ constructor() {
8
+ this.templateByQuery = new Map();
9
+ this.buldTemplates();
10
+ }
11
+ buldTemplates() {
12
+ this.templateByQuery.set("fetchResource", DataFetcher.dist.gql `query($name: String!) {
13
+ $queryAlias$: fetchResource(name: $name){
14
+ resource
15
+ }
16
+ }`);
17
+ this.templateByQuery.set("saveResource", DataFetcher.dist.gql `mutation($resource: InputResource!) {
18
+ $queryAlias$: saveResource(resource: $resource){
19
+ name
20
+ resource
21
+ }
22
+ }`);
23
+ }
24
+ loadResource(name) {
25
+ if (ResourceFetcher._loadingResource.has(name)) {
26
+ return ResourceFetcher._loadingResource.get(name);
27
+ }
28
+ const promiseLoadResource = new Promise((resolve, reject) => {
29
+ DataFetcher.DataFetcher.get()
30
+ .callGraphQL({
31
+ values: { name },
32
+ query: this.templateByQuery.get("fetchResource"),
33
+ })
34
+ .then((result) => {
35
+ resolve(result === null || result === void 0 ? void 0 : result.resource);
36
+ ResourceFetcher._loadingResource.delete(name);
37
+ })
38
+ .catch((error) => {
39
+ reject(error);
40
+ ResourceFetcher._loadingResource.delete(name);
41
+ });
42
+ });
43
+ ResourceFetcher._loadingResource.set(name, promiseLoadResource);
44
+ return promiseLoadResource;
45
+ }
46
+ saveResource(resource, name) {
47
+ return new Promise((resolve, reject) => {
48
+ DataFetcher.DataFetcher.get()
49
+ .callGraphQL({
50
+ values: {
51
+ resource: {
52
+ name: name,
53
+ resource: JSON.stringify(resource)
54
+ }
55
+ },
56
+ query: this.templateByQuery.get("saveResource")
57
+ })
58
+ .then((resp) => {
59
+ resolve(resp);
60
+ })
61
+ .catch((error) => {
62
+ reject(error);
63
+ });
64
+ });
65
+ }
66
+ }
67
+ ResourceFetcher._loadingResource = new Map();
68
+
69
+ class FormConfigFetcher extends ResourceFetcher {
70
+ constructor() {
71
+ super();
72
+ this.queryConfig = new Map();
73
+ this.buildTemplatesConfig();
74
+ }
75
+ buildTemplatesConfig() {
76
+ this.queryConfig.set("fetchUserAvailableConfigs", DataFetcher.dist.gql `query($name: String!) {
77
+ $queryAlias$: fetchUserAvailableConfigs(name: $name){
78
+ name
79
+ origin
80
+ key
81
+ }
82
+ }`);
83
+ this.queryConfig.set("fetchLegacyConfig", DataFetcher.dist.gql `query($name: String!) {
84
+ $queryAlias$: fetchLegacyConfig(name: $name){
85
+ name
86
+ resource
87
+ }
88
+ }`);
89
+ this.queryConfig.set("fetchDefaultConfig", DataFetcher.dist.gql `query($name: String!) {
90
+ $queryAlias$: fetchDefaultConfig(name: $name){
91
+ name
92
+ resource
93
+ }
94
+ }`);
95
+ }
96
+ loadFormConfig(formName, resourceID) {
97
+ return new Promise((accept, reject) => {
98
+ Promise.all([
99
+ this.loadResource(this.getPath(resourceID, formName)),
100
+ this.loadResource(this.getPath(`FormCardState:${resourceID}`, formName, "form-card")),
101
+ this.loadResource(this.getPath(resourceID, formName, "summary")),
102
+ this.loadResource(this.getPath(resourceID, formName, "defaultValues"))
103
+ ])
104
+ .then(([configAsString, formCardState, summary, defaultValues]) => {
105
+ let config;
106
+ if (configAsString != undefined) {
107
+ config = Object.assign(Object.assign({}, JSON.parse(configAsString)), { emptyConfig: false });
108
+ const { tabs, fields } = config;
109
+ if (tabs) {
110
+ const allTabs = new Map(tabs.map(t => [t.label, t]));
111
+ fields === null || fields === void 0 ? void 0 : fields.forEach(f => { var _a; return f.tab = ((_a = allTabs.get(this.getTabName(f.tab))) === null || _a === void 0 ? void 0 : _a.label) || allTabs.get(this.getTabName(f.tab)); });
112
+ }
113
+ config.fields = fields === null || fields === void 0 ? void 0 : fields.map((field) => {
114
+ if ("readonly" in field) {
115
+ const readOnly = field['readonly'] === true;
116
+ delete field['readonly'];
117
+ field.readOnly = readOnly;
118
+ }
119
+ return field;
120
+ });
121
+ }
122
+ if (formCardState != undefined) {
123
+ if (config == undefined) {
124
+ config = { emptyConfig: true, fields: [] };
125
+ }
126
+ config.cardsState = new Map(JSON.parse(formCardState));
127
+ }
128
+ if (summary != undefined) {
129
+ if (config == undefined) {
130
+ config = { emptyConfig: true, fields: [] };
131
+ }
132
+ config.summary = new Map(Object.entries(JSON.parse(summary)));
133
+ }
134
+ if (defaultValues != undefined) {
135
+ if (config == undefined) {
136
+ config = { emptyConfig: true, fields: [] };
137
+ }
138
+ config.defaultVars = new Map(Object.entries(JSON.parse(defaultValues)));
139
+ }
140
+ accept(config);
141
+ })
142
+ .catch((error) => {
143
+ reject(error);
144
+ });
145
+ });
146
+ }
147
+ getTabName(tab) {
148
+ if (typeof tab === 'object') { // ITabConfig type
149
+ return tab.label;
150
+ }
151
+ return tab; //string type
152
+ }
153
+ saveCardState(cardsState, formName, resourceID) {
154
+ const completePath = this.getPath(`FormCardState:${resourceID}`, formName, "form-card");
155
+ return new Promise((resolve, reject) => {
156
+ this.saveResource(Array.from(cardsState.entries()), completePath)
157
+ .then((resp) => {
158
+ resolve(new Map(JSON.parse(resp.resource)));
159
+ })
160
+ .catch((error) => {
161
+ reject(error);
162
+ });
163
+ });
164
+ }
165
+ saveConfig(config, formName, resourceID) {
166
+ //Essas informações não devem ser salvas na configuração
167
+ delete config.cardsState;
168
+ delete config.defaultVars;
169
+ delete config.summary;
170
+ const completePath = this.getPath(resourceID, formName);
171
+ return new Promise((resolve, reject) => {
172
+ this.saveResource(config, completePath)
173
+ .then((resp) => {
174
+ resolve(JSON.parse(resp.resource));
175
+ })
176
+ .catch((error) => {
177
+ reject(error);
178
+ });
179
+ });
180
+ }
181
+ fetchUserAvailableConfigs(formName, resourceID) {
182
+ const name = this.getPath(resourceID, formName);
183
+ return new Promise((resolve, reject) => {
184
+ DataFetcher.DataFetcher.get()
185
+ .callGraphQL({
186
+ values: { name },
187
+ query: this.queryConfig.get("fetchUserAvailableConfigs"),
188
+ })
189
+ .then((result) => {
190
+ resolve(result);
191
+ })
192
+ .catch((error) => {
193
+ reject(error);
194
+ });
195
+ });
196
+ }
197
+ fetchLegacyConfig(formName, resourceID) {
198
+ const name = this.getPath(resourceID, formName);
199
+ return new Promise((resolve, reject) => {
200
+ DataFetcher.DataFetcher.get()
201
+ .callGraphQL({
202
+ values: { name },
203
+ query: this.queryConfig.get("fetchLegacyConfig"),
204
+ })
205
+ .then((result) => {
206
+ resolve(core.ObjectUtils.stringToObject((result === null || result === void 0 ? void 0 : result.resource) || ''));
207
+ })
208
+ .catch((error) => {
209
+ reject(error);
210
+ });
211
+ });
212
+ }
213
+ fetchDefaultConfig(formName, resourceID) {
214
+ const name = this.getPath(resourceID, formName);
215
+ return new Promise((resolve, reject) => {
216
+ DataFetcher.DataFetcher.get()
217
+ .callGraphQL({
218
+ values: { name },
219
+ query: this.queryConfig.get("fetchDefaultConfig"),
220
+ })
221
+ .then((result) => {
222
+ resolve(core.ObjectUtils.stringToObject((result === null || result === void 0 ? void 0 : result.resource) || ''));
223
+ })
224
+ .catch((error) => {
225
+ reject(error);
226
+ });
227
+ });
228
+ }
229
+ getPath(resourceID, name, authority = "form") {
230
+ if (name) {
231
+ return `cfg://${authority}/${resourceID}/${name}`;
232
+ }
233
+ return `cfg://${authority}/${resourceID}`;
234
+ }
235
+ async fetchLegacyConfigurableForm(configName) {
236
+ const payload = { 'requestBody': { 'config': { 'chave': configName, 'tipo': 'T' } } };
237
+ const response = await DataFetcher.DataFetcher.get().callServiceBroker('SystemUtilsSP.getConf', JSON.stringify(payload));
238
+ if (core.ObjectUtils.isEmpty(response))
239
+ return undefined;
240
+ return this.buildLegacyConfigurableForm(response);
241
+ }
242
+ buildLegacyConfigurableForm(config) {
243
+ var _a, _b, _c;
244
+ const rawFields = (_c = (_b = (_a = config === null || config === void 0 ? void 0 : config.formConfig) === null || _a === void 0 ? void 0 : _a.layout) === null || _b === void 0 ? void 0 : _b.field) !== null && _c !== void 0 ? _c : [];
245
+ return { emptyConfig: false, fields: Array.isArray(rawFields) ? rawFields : [rawFields] };
246
+ }
247
+ }
248
+ exports.UserConfigType = void 0;
249
+ (function (UserConfigType) {
250
+ UserConfigType["USER"] = "USER";
251
+ UserConfigType["DEFAULT"] = "DEFAULT";
252
+ UserConfigType["SHARED"] = "SHARED";
253
+ })(exports.UserConfigType || (exports.UserConfigType = {}));
254
+
255
+ exports.FormConfigFetcher = FormConfigFetcher;
256
+ exports.ResourceFetcher = ResourceFetcher;