@sankhyalabs/sankhyablocks 8.15.0-dev.61 → 8.15.0-dev.62

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-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-d3a3ccd1.js} +55 -12
  4. package/dist/cjs/{SnkFormConfigManager-4259edbe.js → SnkFormConfigManager-dda10d75.js} +2 -2
  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-e2109392.js} +68 -173
  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 +43 -9
  16. package/dist/cjs/snk-data-exporter.cjs.entry.js +9 -7
  17. package/dist/cjs/snk-data-unit-dee38ccd.js +614 -0
  18. package/dist/cjs/snk-data-unit.cjs.entry.js +10 -2
  19. package/dist/cjs/snk-detail-view.cjs.entry.js +8 -6
  20. package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -2
  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 +36 -0
  24. package/dist/cjs/snk-form.cjs.entry.js +28 -7
  25. package/dist/cjs/snk-grid.cjs.entry.js +55 -10
  26. package/dist/cjs/{snk-guides-viewer-b0c44e0c.js → snk-guides-viewer-af4a6ae5.js} +19 -6
  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 +96 -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/snk-crud.js +109 -6
  33. package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +79 -0
  34. package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +41 -4
  35. package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +14 -8
  36. package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +5 -0
  37. package/dist/collection/components/snk-data-unit/snk-data-unit.js +413 -165
  38. package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
  39. package/dist/collection/components/snk-form/snk-form.js +50 -4
  40. package/dist/collection/components/snk-grid/snk-grid.js +96 -7
  41. package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +156 -8
  42. package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
  43. package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
  44. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
  45. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
  46. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +51 -1
  47. package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
  48. package/dist/collection/lib/message/SnkMessageBuilder.js +25 -32
  49. package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
  50. package/dist/components/ConfigStorage.js +2 -1
  51. package/dist/components/DataFetcher.js +7024 -0
  52. package/dist/components/IExporterProvider.js +54 -12
  53. package/dist/components/SnkMessageBuilder.js +6 -12
  54. package/dist/components/dataunit-fetcher.js +58 -164
  55. package/dist/components/form-config-fetcher.js +3 -7023
  56. package/dist/components/pesquisa-fetcher.js +164 -0
  57. package/dist/components/snk-actions-button2.js +4 -2
  58. package/dist/components/snk-application2.js +26 -17
  59. package/dist/components/snk-attach2.js +4 -2
  60. package/dist/components/snk-crud.js +46 -9
  61. package/dist/components/snk-data-exporter2.js +4 -2
  62. package/dist/components/snk-data-unit2.js +356 -166
  63. package/dist/components/snk-detail-view2.js +21 -6
  64. package/dist/components/snk-form-config2.js +1 -1
  65. package/dist/components/snk-form-view2.js +39 -1
  66. package/dist/components/snk-form.js +26 -5
  67. package/dist/components/snk-grid2.js +58 -11
  68. package/dist/components/snk-simple-crud2.js +96 -10
  69. package/dist/esm/{ConfigStorage-928c3bf4.js → ConfigStorage-174101b9.js} +2 -1
  70. package/dist/esm/{form-config-fetcher-e3094014.js → DataFetcher-4b4b7beb.js} +1 -250
  71. package/dist/esm/{IExporterProvider-e2a1195d.js → IExporterProvider-640e1f6b.js} +54 -12
  72. package/dist/esm/{SnkFormConfigManager-a87ade7a.js → SnkFormConfigManager-87bd8082.js} +2 -2
  73. package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-3a767111.js} +6 -12
  74. package/dist/esm/{auth-fetcher-e1cb288f.js → auth-fetcher-9f86c346.js} +1 -1
  75. package/dist/esm/{pesquisa-fetcher-6d8e50bb.js → dataunit-fetcher-87ecba4a.js} +57 -163
  76. package/dist/esm/form-config-fetcher-5d72aaf1.js +253 -0
  77. package/dist/esm/loader.js +1 -1
  78. package/dist/esm/pesquisa-fetcher-9cfab836.js +164 -0
  79. package/dist/esm/sankhyablocks.js +1 -1
  80. package/dist/esm/snk-actions-button_4.entry.js +5 -3
  81. package/dist/esm/snk-application.entry.js +30 -20
  82. package/dist/esm/snk-attach.entry.js +5 -3
  83. package/dist/esm/snk-crud.entry.js +43 -9
  84. package/dist/esm/snk-data-exporter.entry.js +6 -4
  85. package/dist/esm/snk-data-unit-1132e40b.js +612 -0
  86. package/dist/esm/snk-data-unit.entry.js +10 -2
  87. package/dist/esm/snk-detail-view.entry.js +8 -6
  88. package/dist/esm/snk-filter-bar.entry.js +3 -2
  89. package/dist/esm/snk-filter-modal-item.entry.js +3 -2
  90. package/dist/esm/snk-form-config.entry.js +2 -1
  91. package/dist/esm/snk-form-view.entry.js +36 -0
  92. package/dist/esm/snk-form.entry.js +28 -7
  93. package/dist/esm/snk-grid.entry.js +56 -11
  94. package/dist/esm/{snk-guides-viewer-1fd41a25.js → snk-guides-viewer-359e39a7.js} +19 -6
  95. package/dist/esm/snk-guides-viewer.entry.js +8 -6
  96. package/dist/esm/snk-personalized-filter.entry.js +3 -2
  97. package/dist/esm/snk-simple-crud.entry.js +95 -13
  98. package/dist/sankhyablocks/p-010d475f.js +1 -0
  99. package/dist/sankhyablocks/p-08fee6e8.js +60 -0
  100. package/dist/sankhyablocks/p-0bcc6e83.js +1 -0
  101. package/dist/sankhyablocks/p-2a84e45b.entry.js +1 -0
  102. package/dist/sankhyablocks/{p-0e8702f0.js → p-2eb90860.js} +1 -1
  103. package/dist/sankhyablocks/p-33f695d6.entry.js +1 -0
  104. package/dist/sankhyablocks/p-3519a984.entry.js +1 -0
  105. package/dist/sankhyablocks/p-4ce73e88.js +1 -0
  106. package/dist/sankhyablocks/{p-e27496ed.js → p-566f5f50.js} +6 -6
  107. package/dist/sankhyablocks/p-59dccb7a.entry.js +1 -0
  108. package/dist/sankhyablocks/p-5c8a9e27.entry.js +1 -0
  109. package/dist/sankhyablocks/p-66a31d30.entry.js +11 -0
  110. package/dist/sankhyablocks/p-6b2be902.js +6 -0
  111. package/dist/sankhyablocks/p-7ecaaea2.entry.js +1 -0
  112. package/dist/sankhyablocks/p-83950924.entry.js +1 -0
  113. package/dist/sankhyablocks/p-873d2e6a.entry.js +1 -0
  114. package/dist/sankhyablocks/p-931343a1.entry.js +1 -0
  115. package/dist/sankhyablocks/p-a6dfa396.js +1 -0
  116. package/dist/sankhyablocks/p-aa854fa8.entry.js +1 -0
  117. package/dist/sankhyablocks/p-b11921ca.entry.js +1 -0
  118. package/dist/sankhyablocks/p-cb91634d.js +1 -0
  119. package/dist/sankhyablocks/p-cf9d2d1e.entry.js +1 -0
  120. package/dist/sankhyablocks/p-d29a252c.js +1 -0
  121. package/dist/sankhyablocks/p-d799aa7f.entry.js +1 -0
  122. package/dist/sankhyablocks/p-da6e3dcf.entry.js +1 -0
  123. package/dist/sankhyablocks/p-e0c27486.js +26 -0
  124. package/dist/sankhyablocks/p-f72e8835.entry.js +1 -0
  125. package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
  126. package/dist/types/components/snk-application/snk-application.d.ts +6 -2
  127. package/dist/types/components/snk-crud/snk-crud.d.ts +14 -1
  128. package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +13 -1
  129. package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -0
  130. package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +3 -0
  131. package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +45 -1
  132. package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
  133. package/dist/types/components/snk-form/snk-form.d.ts +6 -0
  134. package/dist/types/components/snk-grid/snk-grid.d.ts +19 -3
  135. package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +22 -0
  136. package/dist/types/components.d.ts +68 -4
  137. package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
  138. package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
  139. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
  140. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
  141. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +6 -0
  142. package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
  143. package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +2 -0
  144. package/package.json +1 -1
  145. package/dist/cjs/snk-data-unit-abd2113f.js +0 -427
  146. package/dist/esm/snk-data-unit-29eba11a.js +0 -425
  147. package/dist/sankhyablocks/p-029bfc09.js +0 -1
  148. package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
  149. package/dist/sankhyablocks/p-07825198.js +0 -1
  150. package/dist/sankhyablocks/p-13ea113d.entry.js +0 -1
  151. package/dist/sankhyablocks/p-314e2d1a.entry.js +0 -1
  152. package/dist/sankhyablocks/p-32556aa6.js +0 -1
  153. package/dist/sankhyablocks/p-3357af48.js +0 -1
  154. package/dist/sankhyablocks/p-3c2a1f4d.js +0 -65
  155. package/dist/sankhyablocks/p-3e7167dd.js +0 -1
  156. package/dist/sankhyablocks/p-536eeb16.js +0 -26
  157. package/dist/sankhyablocks/p-587f9dcf.entry.js +0 -1
  158. package/dist/sankhyablocks/p-61984566.entry.js +0 -1
  159. package/dist/sankhyablocks/p-65b6dba3.entry.js +0 -1
  160. package/dist/sankhyablocks/p-6a7bc5c8.entry.js +0 -1
  161. package/dist/sankhyablocks/p-6c9edfd8.entry.js +0 -1
  162. package/dist/sankhyablocks/p-89bde7d3.entry.js +0 -1
  163. package/dist/sankhyablocks/p-91dceecf.entry.js +0 -1
  164. package/dist/sankhyablocks/p-a40cbad8.entry.js +0 -1
  165. package/dist/sankhyablocks/p-b86ea293.entry.js +0 -1
  166. package/dist/sankhyablocks/p-d8ddb2a4.entry.js +0 -11
  167. package/dist/sankhyablocks/p-df73ac00.entry.js +0 -1
  168. package/dist/sankhyablocks/p-f92f1f5f.entry.js +0 -1
  169. 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');
@@ -375,6 +375,11 @@ class InMemoryLoader {
375
375
  }
376
376
  InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
377
377
 
378
+ function getRecordValue(record, fieldName) {
379
+ var _a, _b;
380
+ 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];
381
+ }
382
+
378
383
  class DatasetStrategy {
379
384
  canSlice() {
380
385
  return false;
@@ -412,7 +417,7 @@ class DatasetStrategy {
412
417
  const serviceName = "DatasetSP.loadRecords";
413
418
  const requestBody = this.buildRequestBody(serviceName, fields, dataUnit, request, loadingInfo, serverSorting, serverSideFilters);
414
419
  const params = loadingInfo.quiet ? { urlParams: { quietMode: "true" } } : undefined;
415
- const { result: responseRecords, pagerID: pagerId } = await formConfigFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
420
+ const { result: responseRecords, pagerID: pagerId } = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, requestBody, params);
416
421
  const records = this.processRecords(dataUnit, fields, responseRecords);
417
422
  const loadingInProgress = pagerId != undefined;
418
423
  const count = loadingInfo.count + records.length;
@@ -429,6 +434,53 @@ class DatasetStrategy {
429
434
  return Promise.reject(error);
430
435
  }
431
436
  }
437
+ async loadRowMetadata(snkDataUnit, fieldName, metadataName, updatedFields = {}) {
438
+ try {
439
+ const serviceName = "DatasetSP.loadRowMetadata";
440
+ const parsedRequestBody = await this.buildRequestBodyLoadRowMetadata({ snkDataUnit, fieldName, metadataName, serviceName, updatedFields });
441
+ const response = await DataFetcher.DataFetcher.get().callServiceBroker(serviceName, parsedRequestBody);
442
+ return response;
443
+ }
444
+ catch (error) {
445
+ console.error(error);
446
+ return Promise.reject(error);
447
+ }
448
+ }
449
+ async buildRequestBodyLoadRowMetadata({ snkDataUnit, serviceName, fieldName, metadataName, updatedFields, }) {
450
+ const dataUnit = snkDataUnit.dataUnit;
451
+ const entityName = DataUnitFetcher.parseDataUnitName(dataUnit.name).entityName;
452
+ const recordIdInfo = await snkDataUnit.getSelectedRecordsIDsInfo();
453
+ const pk = recordIdInfo.reduce((accumulator, currentValue) => {
454
+ accumulator[currentValue.name] = currentValue.value;
455
+ return accumulator;
456
+ }, {});
457
+ const record = dataUnit.getSelectedRecord();
458
+ const fields = dataUnit.metadata.fields.filter(({ standAlone, name }) => !standAlone && !name.includes(".")).map(({ name }) => name);
459
+ const values = fields.reduce((accumulator, currentValue, currentIndex) => {
460
+ const recordValue = getRecordValue(record, currentValue);
461
+ const updatedFieldValue = getRecordValue(updatedFields, currentValue);
462
+ accumulator[currentIndex] = updatedFieldValue !== undefined ? updatedFieldValue : recordValue;
463
+ return accumulator;
464
+ }, {});
465
+ const requestBody = {
466
+ serviceName,
467
+ requestBody: {
468
+ dataSetID: dataUnit.dataUnitId,
469
+ entityName,
470
+ standAlone: false,
471
+ metadataName,
472
+ fieldName,
473
+ fields,
474
+ record: {
475
+ pk,
476
+ oldPk: pk,
477
+ values,
478
+ },
479
+ }
480
+ };
481
+ const parsedRequestBody = JSON.stringify(requestBody);
482
+ return parsedRequestBody;
483
+ }
432
484
  getFieldsList(dataUnit) {
433
485
  let fields = ["__record__id__", "__record__label__"];
434
486
  dataUnit.metadata.fields.forEach((descriptor) => {
@@ -508,9 +560,11 @@ class DatasetStrategy {
508
560
  }
509
561
  processRecords(dataUnit, fields, responseRecords) {
510
562
  return responseRecords.map((dataFrame) => {
563
+ const lastElement = dataFrame[dataFrame.length - 1];
511
564
  const duRecord = {
512
565
  __record__id__: dataFrame[0],
513
- __record__label__: dataFrame[1]
566
+ __record__label__: dataFrame[1],
567
+ __record__metadata__: lastElement['_rmd'],
514
568
  };
515
569
  dataUnit.metadata.fields.forEach(fieldDescriptor => {
516
570
  duRecord[fieldDescriptor.name] = this.buildFieldValue(fieldDescriptor, fields, dataFrame);
@@ -690,7 +744,7 @@ class DataUnitFetcher {
690
744
  this.buldTemplates();
691
745
  }
692
746
  buldTemplates() {
693
- this.templateByQuery.set("fetchDataUnit", formConfigFetcher.dist.gql `query($name: String!) {
747
+ this.templateByQuery.set("fetchDataUnit", DataFetcher.dist.gql `query($name: String!) {
694
748
  $queryAlias$: fetchDataUnit(name: $name){
695
749
  name
696
750
  fields{
@@ -726,7 +780,7 @@ class DataUnitFetcher {
726
780
  }
727
781
  }
728
782
  }`);
729
- this.templateByQuery.set("saveData", formConfigFetcher.dist.gql `mutation($changes: [InputBatchChange!]!) {
783
+ this.templateByQuery.set("saveData", DataFetcher.dist.gql `mutation($changes: [InputBatchChange!]!) {
730
784
  $queryAlias$: batchOperationDataUnit(changes: $changes){
731
785
  oldId
732
786
  id
@@ -738,7 +792,7 @@ class DataUnitFetcher {
738
792
  }
739
793
  }
740
794
  }`);
741
- this.templateByQuery.set("fetchDataRecord", formConfigFetcher.dist.gql `query($dataunit: String! $recordID: [String!]) {
795
+ this.templateByQuery.set("fetchDataRecord", DataFetcher.dist.gql `query($dataunit: String! $recordID: [String!]) {
742
796
  $queryAlias$: fetchDataUnit(name: $dataunit){
743
797
  record(id: $recordID){
744
798
  id
@@ -750,7 +804,7 @@ class DataUnitFetcher {
750
804
  }
751
805
  }
752
806
  }`);
753
- this.templateByQuery.set("fetchDistinctColumn", formConfigFetcher.dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
807
+ this.templateByQuery.set("fetchDistinctColumn", DataFetcher.dist.gql `query($dataUnit: String!, $fieldName: String!, $argument: String, $filters: [InputFilter], $parentRecordId: String) {
754
808
  $queryAlias$: selectDistinct(dataUnit: $dataUnit, fieldName: $fieldName, argument: $argument, filters: $filters, parentRecordId: $parentRecordId)
755
809
  }`);
756
810
  }
@@ -781,7 +835,7 @@ class DataUnitFetcher {
781
835
  }
782
836
  loadMetadata(dataUnit) {
783
837
  return new Promise((resolve, reject) => {
784
- formConfigFetcher.DataFetcher.get()
838
+ DataFetcher.DataFetcher.get()
785
839
  .callGraphQL({
786
840
  values: { name: dataUnit.name },
787
841
  query: this.templateByQuery.get("fetchDataUnit"),
@@ -824,7 +878,7 @@ class DataUnitFetcher {
824
878
  filters: filteredFilters
825
879
  };
826
880
  return new Promise((resolve, reject) => {
827
- formConfigFetcher.DataFetcher.get()
881
+ DataFetcher.DataFetcher.get()
828
882
  .callGraphQL({
829
883
  values,
830
884
  query: this.templateByQuery.get("fetchDistinctColumn"),
@@ -900,7 +954,7 @@ class DataUnitFetcher {
900
954
  var rest = __rest(_a, []);
901
955
  return rest;
902
956
  });
903
- formConfigFetcher.DataFetcher.get()
957
+ DataFetcher.DataFetcher.get()
904
958
  .callGraphQL({
905
959
  values: { changes: changesFormatted },
906
960
  query: this.templateByQuery.get("saveData"),
@@ -955,7 +1009,7 @@ class DataUnitFetcher {
955
1009
  return { dataUnit: dataUnit.name, operation: core.ChangeOperation.DELETE, recordId, fields: this.getTransientInfo(dataUnit, recordId) };
956
1010
  });
957
1011
  return new Promise((resolve, reject) => {
958
- formConfigFetcher.DataFetcher.get()
1012
+ DataFetcher.DataFetcher.get()
959
1013
  .callGraphQL({
960
1014
  values: { changes: changes },
961
1015
  query: this.templateByQuery.get("saveData"),
@@ -971,7 +1025,7 @@ class DataUnitFetcher {
971
1025
  }
972
1026
  loadRecord(dataUnit, recordIds) {
973
1027
  return new Promise((resolve, reject) => {
974
- formConfigFetcher.DataFetcher.get()
1028
+ DataFetcher.DataFetcher.get()
975
1029
  .callGraphQL({
976
1030
  values: { recordID: recordIds, dataunit: dataUnit.name },
977
1031
  query: this.templateByQuery.get("fetchDataRecord"),
@@ -995,170 +1049,11 @@ class DataUnitFetcher {
995
1049
  }
996
1050
  }
997
1051
 
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
1052
  exports.DataUnitFetcher = DataUnitFetcher;
1053
+ exports.DatasetStrategy = DatasetStrategy;
1159
1054
  exports.InMemoryLoader = InMemoryLoader;
1160
- exports.PesquisaFetcher = PesquisaFetcher;
1161
1055
  exports.PreloadManager = PreloadManager;
1162
1056
  exports.applyFilter = applyFilter;
1163
1057
  exports.applySorting = applySorting;
1164
1058
  exports.buildPaginationInfo = buildPaginationInfo;
1059
+ 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;