@sankhyalabs/sankhyablocks 8.15.0-dev.60 → 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.
- package/dist/cjs/{ConfigStorage-7df9d3bb.js → ConfigStorage-9a53a42c.js} +12 -11
- package/dist/cjs/{form-config-fetcher-3c4daeb5.js → DataFetcher-515bda03.js} +0 -251
- package/dist/cjs/{IExporterProvider-1ed8e92a.js → IExporterProvider-d3a3ccd1.js} +55 -12
- package/dist/cjs/{SnkFormConfigManager-4259edbe.js → SnkFormConfigManager-dda10d75.js} +2 -2
- package/dist/cjs/{SnkMessageBuilder-66aa2557.js → SnkMessageBuilder-4a95fe86.js} +6 -12
- package/dist/cjs/{auth-fetcher-e6112be7.js → auth-fetcher-5acb0335.js} +1 -1
- package/dist/cjs/{pesquisa-fetcher-cb768be1.js → dataunit-fetcher-e2109392.js} +68 -173
- package/dist/cjs/form-config-fetcher-3f430aee.js +256 -0
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/pesquisa-fetcher-916a935c.js +166 -0
- package/dist/cjs/sankhyablocks.cjs.js +1 -1
- package/dist/cjs/snk-actions-button_4.cjs.entry.js +10 -8
- package/dist/cjs/snk-application.cjs.entry.js +49 -39
- package/dist/cjs/snk-attach.cjs.entry.js +19 -17
- package/dist/cjs/snk-crud.cjs.entry.js +43 -9
- package/dist/cjs/snk-data-exporter.cjs.entry.js +9 -7
- package/dist/cjs/snk-data-unit-dee38ccd.js +614 -0
- package/dist/cjs/snk-data-unit.cjs.entry.js +10 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +8 -6
- package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -2
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -2
- package/dist/cjs/snk-form-config.cjs.entry.js +2 -1
- package/dist/cjs/snk-form-view.cjs.entry.js +36 -0
- package/dist/cjs/snk-form.cjs.entry.js +28 -7
- package/dist/cjs/snk-grid.cjs.entry.js +55 -10
- package/dist/cjs/{snk-guides-viewer-bec9c1a5.js → snk-guides-viewer-af4a6ae5.js} +19 -6
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +8 -6
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -2
- package/dist/cjs/snk-simple-crud.cjs.entry.js +96 -14
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/snk-application/snk-application.js +37 -17
- package/dist/collection/components/snk-crud/snk-crud.js +109 -6
- package/dist/collection/components/snk-crud/subcomponents/snk-form-view.js +79 -0
- package/dist/collection/components/snk-crud/subcomponents/snk-guides-viewer.js +41 -4
- package/dist/collection/components/snk-data-exporter/interfaces/IExporterProvider.js +14 -8
- package/dist/collection/components/snk-data-exporter/providers/ClientSideExporterProvider.js +5 -0
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +413 -165
- package/dist/collection/components/snk-data-unit/test/resources/metadataMock.js +24 -0
- package/dist/collection/components/snk-form/snk-form.js +50 -4
- package/dist/collection/components/snk-grid/snk-grid.js +96 -7
- package/dist/collection/components/snk-simple-crud/snk-simple-crud.js +156 -8
- package/dist/collection/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.js +35 -0
- package/dist/collection/lib/dataUnit/ValueFormatter.js +4 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.js +1 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.js +51 -1
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.js +22 -0
- package/dist/collection/lib/http/data-fetcher/fetchers/pesquisa-fetcher.js +2 -2
- package/dist/collection/lib/message/SnkMessageBuilder.js +25 -32
- package/dist/collection/lib/message/resources/snk-data-unit.msg.js +1 -0
- package/dist/components/ConfigStorage.js +2 -1
- package/dist/components/DataFetcher.js +7024 -0
- package/dist/components/IExporterProvider.js +54 -12
- package/dist/components/SnkMessageBuilder.js +6 -12
- package/dist/components/dataunit-fetcher.js +58 -164
- package/dist/components/form-config-fetcher.js +3 -7023
- package/dist/components/pesquisa-fetcher.js +164 -0
- package/dist/components/snk-actions-button2.js +4 -2
- package/dist/components/snk-application2.js +26 -17
- package/dist/components/snk-attach2.js +4 -2
- package/dist/components/snk-crud.js +46 -9
- package/dist/components/snk-data-exporter2.js +4 -2
- package/dist/components/snk-data-unit2.js +356 -166
- package/dist/components/snk-detail-view2.js +21 -6
- package/dist/components/snk-form-config2.js +1 -1
- package/dist/components/snk-form-view2.js +39 -1
- package/dist/components/snk-form.js +26 -5
- package/dist/components/snk-grid2.js +58 -11
- package/dist/components/snk-simple-crud2.js +96 -10
- package/dist/esm/{ConfigStorage-928c3bf4.js → ConfigStorage-174101b9.js} +2 -1
- package/dist/esm/{form-config-fetcher-e3094014.js → DataFetcher-4b4b7beb.js} +1 -250
- package/dist/esm/{IExporterProvider-ceabfb7e.js → IExporterProvider-640e1f6b.js} +54 -12
- package/dist/esm/{SnkFormConfigManager-a87ade7a.js → SnkFormConfigManager-87bd8082.js} +2 -2
- package/dist/esm/{SnkMessageBuilder-0a4becdd.js → SnkMessageBuilder-3a767111.js} +6 -12
- package/dist/esm/{auth-fetcher-e1cb288f.js → auth-fetcher-9f86c346.js} +1 -1
- package/dist/esm/{pesquisa-fetcher-72125b13.js → dataunit-fetcher-87ecba4a.js} +57 -163
- package/dist/esm/form-config-fetcher-5d72aaf1.js +253 -0
- package/dist/esm/loader.js +1 -1
- package/dist/esm/pesquisa-fetcher-9cfab836.js +164 -0
- package/dist/esm/sankhyablocks.js +1 -1
- package/dist/esm/snk-actions-button_4.entry.js +5 -3
- package/dist/esm/snk-application.entry.js +30 -20
- package/dist/esm/snk-attach.entry.js +5 -3
- package/dist/esm/snk-crud.entry.js +43 -9
- package/dist/esm/snk-data-exporter.entry.js +6 -4
- package/dist/esm/snk-data-unit-1132e40b.js +612 -0
- package/dist/esm/snk-data-unit.entry.js +10 -2
- package/dist/esm/snk-detail-view.entry.js +8 -6
- package/dist/esm/snk-filter-bar.entry.js +3 -2
- package/dist/esm/snk-filter-modal-item.entry.js +3 -2
- package/dist/esm/snk-form-config.entry.js +2 -1
- package/dist/esm/snk-form-view.entry.js +36 -0
- package/dist/esm/snk-form.entry.js +28 -7
- package/dist/esm/snk-grid.entry.js +56 -11
- package/dist/esm/{snk-guides-viewer-303aafb4.js → snk-guides-viewer-359e39a7.js} +19 -6
- package/dist/esm/snk-guides-viewer.entry.js +8 -6
- package/dist/esm/snk-personalized-filter.entry.js +3 -2
- package/dist/esm/snk-simple-crud.entry.js +95 -13
- package/dist/sankhyablocks/p-010d475f.js +1 -0
- package/dist/sankhyablocks/p-08fee6e8.js +60 -0
- package/dist/sankhyablocks/p-0bcc6e83.js +1 -0
- package/dist/sankhyablocks/p-2a84e45b.entry.js +1 -0
- package/dist/sankhyablocks/{p-0e8702f0.js → p-2eb90860.js} +1 -1
- package/dist/sankhyablocks/p-33f695d6.entry.js +1 -0
- package/dist/sankhyablocks/p-3519a984.entry.js +1 -0
- package/dist/sankhyablocks/p-4ce73e88.js +1 -0
- package/dist/sankhyablocks/{p-e27496ed.js → p-566f5f50.js} +6 -6
- package/dist/sankhyablocks/p-59dccb7a.entry.js +1 -0
- package/dist/sankhyablocks/p-5c8a9e27.entry.js +1 -0
- package/dist/sankhyablocks/p-66a31d30.entry.js +11 -0
- package/dist/sankhyablocks/p-6b2be902.js +6 -0
- package/dist/sankhyablocks/p-7ecaaea2.entry.js +1 -0
- package/dist/sankhyablocks/p-83950924.entry.js +1 -0
- package/dist/sankhyablocks/p-873d2e6a.entry.js +1 -0
- package/dist/sankhyablocks/p-931343a1.entry.js +1 -0
- package/dist/sankhyablocks/p-a6dfa396.js +1 -0
- package/dist/sankhyablocks/p-aa854fa8.entry.js +1 -0
- package/dist/sankhyablocks/p-b11921ca.entry.js +1 -0
- package/dist/sankhyablocks/p-cb91634d.js +1 -0
- package/dist/sankhyablocks/p-cf9d2d1e.entry.js +1 -0
- package/dist/sankhyablocks/p-d29a252c.js +1 -0
- package/dist/sankhyablocks/p-d799aa7f.entry.js +1 -0
- package/dist/sankhyablocks/p-da6e3dcf.entry.js +1 -0
- package/dist/sankhyablocks/p-e0c27486.js +26 -0
- package/dist/sankhyablocks/p-f72e8835.entry.js +1 -0
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/components/snk-application/snk-application.d.ts +6 -2
- package/dist/types/components/snk-crud/snk-crud.d.ts +14 -1
- package/dist/types/components/snk-crud/subcomponents/snk-form-view.d.ts +13 -1
- package/dist/types/components/snk-crud/subcomponents/snk-guides-viewer.d.ts +6 -0
- package/dist/types/components/snk-data-exporter/interfaces/IExporterProvider.d.ts +3 -0
- package/dist/types/components/snk-data-unit/snk-data-unit.d.ts +45 -1
- package/dist/types/components/snk-data-unit/test/resources/metadataMock.d.ts +3 -0
- package/dist/types/components/snk-form/snk-form.d.ts +6 -0
- package/dist/types/components/snk-grid/snk-grid.d.ts +19 -3
- package/dist/types/components/snk-simple-crud/snk-simple-crud.d.ts +22 -0
- package/dist/types/components.d.ts +68 -4
- package/dist/types/lib/DefaultCustomFormatters/RmPrecisionCustomValueFormatter.d.ts +11 -0
- package/dist/types/lib/dataUnit/ValueFormatter.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IBuildRequestBodyLoadRowMetadata.d.ts +10 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/interfaces/IRowMetadata.d.ts +7 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/DatasetStrategy.d.ts +6 -0
- package/dist/types/lib/http/data-fetcher/fetchers/data-unit/loadstrategy/test/resources/metadataMock.d.ts +20 -0
- package/dist/types/lib/http/data-fetcher/fetchers/fetchDataExporter/interfaces/IExporterColumnMetadata.d.ts +2 -0
- package/dist/types/lib/http/data-fetcher/fetchers/pesquisa-fetcher.d.ts +1 -0
- package/package.json +1 -1
- package/dist/cjs/snk-data-unit-abd2113f.js +0 -427
- package/dist/esm/snk-data-unit-29eba11a.js +0 -425
- package/dist/sankhyablocks/p-029bfc09.js +0 -1
- package/dist/sankhyablocks/p-03dcc5ff.entry.js +0 -1
- package/dist/sankhyablocks/p-07825198.js +0 -1
- package/dist/sankhyablocks/p-13ea113d.entry.js +0 -1
- package/dist/sankhyablocks/p-1fa244c0.entry.js +0 -1
- package/dist/sankhyablocks/p-2d972c2e.entry.js +0 -1
- package/dist/sankhyablocks/p-314e2d1a.entry.js +0 -1
- package/dist/sankhyablocks/p-32556aa6.js +0 -1
- package/dist/sankhyablocks/p-3494a28e.entry.js +0 -1
- package/dist/sankhyablocks/p-35bd4df7.entry.js +0 -1
- package/dist/sankhyablocks/p-536eeb16.js +0 -26
- package/dist/sankhyablocks/p-563701f3.js +0 -1
- package/dist/sankhyablocks/p-61984566.entry.js +0 -1
- package/dist/sankhyablocks/p-64977b22.entry.js +0 -1
- package/dist/sankhyablocks/p-65b6dba3.entry.js +0 -1
- package/dist/sankhyablocks/p-6bc64fb0.entry.js +0 -1
- package/dist/sankhyablocks/p-aedf37fb.js +0 -65
- package/dist/sankhyablocks/p-b233f5aa.entry.js +0 -1
- package/dist/sankhyablocks/p-b86ea293.entry.js +0 -1
- package/dist/sankhyablocks/p-c73482cf.js +0 -1
- package/dist/sankhyablocks/p-cb3c7b4a.entry.js +0 -11
- package/dist/sankhyablocks/p-d911a023.entry.js +0 -1
- 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
|
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
|
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",
|
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",
|
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",
|
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",
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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;
|
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": false, "limit": this._defaultPageSize, "query": { "$": values.argument }, "orderByDesc": false, "externalCriteria": externalCriteria, "localEntityName": (_d = values.searchOptions) === null || _d === void 0 ? void 0 : _d.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;
|