@sankhyalabs/sankhyablocks 8.8.0-rc.1 → 8.8.0-rc.3
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-a97ca159.js → ConfigStorage-bdb539ce.js} +2 -2
- package/dist/cjs/{DataFetcher-2a99283c.js → DataFetcher-016f1661.js} +30 -30
- package/dist/cjs/{SnkFormConfigManager-f641f502.js → SnkFormConfigManager-c9d38de1.js} +2 -2
- package/dist/cjs/{SnkMultiSelectionListDataSource-56db34ee.js → SnkMultiSelectionListDataSource-9fd9c742.js} +1 -1
- package/dist/cjs/{auth-fetcher-78231356.js → auth-fetcher-73ee0989.js} +1 -1
- package/dist/cjs/{dataunit-fetcher-4f7d4ee7.js → dataunit-fetcher-1433ce24.js} +35 -7
- package/dist/cjs/{form-config-fetcher-a322a522.js → form-config-fetcher-5e5ec5be.js} +1 -1
- package/dist/cjs/{pesquisa-fetcher-7ef61508.js → pesquisa-fetcher-63a8c652.js} +1 -1
- package/dist/cjs/snk-actions-button.cjs.entry.js +4 -4
- package/dist/cjs/snk-application.cjs.entry.js +6 -6
- package/dist/cjs/snk-attach.cjs.entry.js +2 -2
- package/dist/cjs/snk-crud.cjs.entry.js +5 -5
- package/dist/cjs/snk-data-exporter.cjs.entry.js +1 -1
- package/dist/cjs/snk-detail-view.cjs.entry.js +7 -7
- package/dist/cjs/snk-filter-bar.cjs.entry.js +3 -3
- package/dist/cjs/snk-filter-modal-item.cjs.entry.js +3 -3
- package/dist/cjs/snk-form-config.cjs.entry.js +2 -2
- package/dist/cjs/snk-form.cjs.entry.js +4 -4
- package/dist/cjs/snk-grid-config.cjs.entry.js +3 -3
- package/dist/cjs/snk-grid.cjs.entry.js +5 -5
- package/dist/cjs/{snk-guides-viewer-aab80f66.js → snk-guides-viewer-0f03d633.js} +5 -5
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +7 -7
- package/dist/cjs/snk-personalized-filter.cjs.entry.js +3 -3
- package/dist/cjs/snk-simple-crud.cjs.entry.js +5 -5
- package/dist/collection/lib/http/data-fetcher/DataFetcher.js +31 -32
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/DataUnitDataLoader.js +1 -1
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/ArrayRepository.js +22 -4
- package/dist/collection/lib/http/data-fetcher/fetchers/data-unit/cache/PreloadManager.js +11 -1
- package/dist/components/DataFetcher.js +30 -30
- package/dist/components/dataunit-fetcher.js +34 -6
- package/dist/esm/{ConfigStorage-26f89143.js → ConfigStorage-9840d004.js} +2 -2
- package/dist/esm/{DataFetcher-90e91631.js → DataFetcher-07935045.js} +30 -30
- package/dist/esm/{SnkFormConfigManager-18948123.js → SnkFormConfigManager-a7c4ac16.js} +2 -2
- package/dist/esm/{SnkMultiSelectionListDataSource-b9410c72.js → SnkMultiSelectionListDataSource-447cd9e8.js} +1 -1
- package/dist/esm/{auth-fetcher-a8c8ee7e.js → auth-fetcher-1afab780.js} +1 -1
- package/dist/esm/{dataunit-fetcher-1c2ccae2.js → dataunit-fetcher-0162ce17.js} +35 -7
- package/dist/esm/{form-config-fetcher-7c3b6273.js → form-config-fetcher-5b886892.js} +1 -1
- package/dist/esm/{pesquisa-fetcher-90d6853b.js → pesquisa-fetcher-7c46996d.js} +1 -1
- package/dist/esm/snk-actions-button.entry.js +4 -4
- package/dist/esm/snk-application.entry.js +6 -6
- package/dist/esm/snk-attach.entry.js +2 -2
- package/dist/esm/snk-crud.entry.js +5 -5
- package/dist/esm/snk-data-exporter.entry.js +1 -1
- package/dist/esm/snk-detail-view.entry.js +7 -7
- package/dist/esm/snk-filter-bar.entry.js +3 -3
- package/dist/esm/snk-filter-modal-item.entry.js +3 -3
- package/dist/esm/snk-form-config.entry.js +2 -2
- package/dist/esm/snk-form.entry.js +4 -4
- package/dist/esm/snk-grid-config.entry.js +3 -3
- package/dist/esm/snk-grid.entry.js +5 -5
- package/dist/esm/{snk-guides-viewer-62b0fa69.js → snk-guides-viewer-64c24a05.js} +5 -5
- package/dist/esm/snk-guides-viewer.entry.js +7 -7
- package/dist/esm/snk-personalized-filter.entry.js +3 -3
- package/dist/esm/snk-simple-crud.entry.js +5 -5
- package/dist/sankhyablocks/{p-d47bbee3.js → p-0f2b03e5.js} +1 -1
- package/dist/sankhyablocks/{p-193971ad.js → p-1161cb2d.js} +1 -1
- package/dist/sankhyablocks/{p-d563e451.entry.js → p-1b985000.entry.js} +1 -1
- package/dist/sankhyablocks/{p-5dd52ec5.entry.js → p-43f36d85.entry.js} +1 -1
- package/dist/sankhyablocks/{p-b36053da.entry.js → p-441cce40.entry.js} +1 -1
- package/dist/sankhyablocks/{p-5d51bff4.js → p-4f7b9c50.js} +1 -1
- package/dist/sankhyablocks/p-503c9774.entry.js +1 -0
- package/dist/sankhyablocks/{p-57550ddc.entry.js → p-54efcc8d.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e74e2153.entry.js → p-562896d0.entry.js} +1 -1
- package/dist/sankhyablocks/{p-acb1374c.entry.js → p-5bd7932e.entry.js} +1 -1
- package/dist/sankhyablocks/{p-d264da22.entry.js → p-617bc4c1.entry.js} +1 -1
- package/dist/sankhyablocks/{p-d56b65e3.entry.js → p-7cbbb6e3.entry.js} +1 -1
- package/dist/sankhyablocks/p-85635c64.js +59 -0
- package/dist/sankhyablocks/{p-8652f90b.entry.js → p-9246d7df.entry.js} +1 -1
- package/dist/sankhyablocks/p-96dd0c41.js +1 -0
- package/dist/sankhyablocks/{p-b481e5ad.js → p-a84035fa.js} +1 -1
- package/dist/sankhyablocks/{p-ebfa6460.entry.js → p-afdb6ddc.entry.js} +1 -1
- package/dist/sankhyablocks/{p-910af03c.js → p-b19c272c.js} +1 -1
- package/dist/sankhyablocks/{p-2c7c1323.entry.js → p-cc232268.entry.js} +1 -1
- package/dist/sankhyablocks/p-de1196c8.js +1 -0
- package/dist/sankhyablocks/{p-68fbd480.entry.js → p-de9eb242.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e473ca13.entry.js → p-e350860d.entry.js} +1 -1
- package/dist/sankhyablocks/{p-240f5892.js → p-efb2e247.js} +1 -1
- package/dist/sankhyablocks/{p-19cbe6e2.entry.js → p-f5dbb069.entry.js} +2 -2
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/lib/http/data-fetcher/DataFetcher.d.ts +5 -2
- package/package.json +1 -1
- package/dist/sankhyablocks/p-3253e7f2.entry.js +0 -1
- package/dist/sankhyablocks/p-6541f0df.js +0 -1
- package/dist/sankhyablocks/p-992a9d0f.js +0 -1
- package/dist/sankhyablocks/p-e86d4a53.js +0 -59
@@ -6,10 +6,9 @@ var __asyncValues = (this && this.__asyncValues) || function (o) {
|
|
6
6
|
function verb(n) { i[n] = o[n] && function (v) { return new Promise(function (resolve, reject) { v = o[n](v), settle(resolve, reject, v.done, v.value); }); }; }
|
7
7
|
function settle(resolve, reject, d, v) { Promise.resolve(v).then(function (v) { resolve({ value: v, done: d }); }, reject); }
|
8
8
|
};
|
9
|
-
import { ApplicationContext, ErrorException, ObjectUtils, WarningException } from '@sankhyalabs/core';
|
9
|
+
import { ApplicationContext, ErrorException, ObjectUtils, WarningException, StringUtils } from '@sankhyalabs/core';
|
10
10
|
import { batchRequests } from 'graphql-request';
|
11
11
|
import UrlUtils from "../../../lib/utils/urlutils";
|
12
|
-
import { StringUtils } from '@sankhyalabs/core';
|
13
12
|
import { ServiceBrokerRecaller } from './recaller/ServiceBrokerRecaller';
|
14
13
|
import { GraphQLRecaller } from './recaller/GraphQLRecaller';
|
15
14
|
import { PrintUtils } from '../../utils/PrintUtils';
|
@@ -109,16 +108,16 @@ export class DataFetcher {
|
|
109
108
|
if (this.ready) {
|
110
109
|
return new Promise(async (resolve, reject) => {
|
111
110
|
let query = this.getQueryTemplate(req);
|
112
|
-
const res = await this.
|
111
|
+
const res = await this.fecthGraphQL([{ document: query, variables: req.values }], quietMode);
|
113
112
|
if (res.errors.length > 0) {
|
114
|
-
if (!this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject)) {
|
113
|
+
if (!(await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject))) {
|
115
114
|
const error = this.processGraphQlErrorInfo(res.errors);
|
116
115
|
reject(error);
|
117
116
|
}
|
118
117
|
}
|
119
118
|
else {
|
120
119
|
resolve(res.data[0][reqKey]);
|
121
|
-
this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
120
|
+
await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
122
121
|
}
|
123
122
|
});
|
124
123
|
}
|
@@ -132,7 +131,7 @@ export class DataFetcher {
|
|
132
131
|
resolveURL() {
|
133
132
|
return UrlUtils.getUrlBase();
|
134
133
|
}
|
135
|
-
proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
134
|
+
async proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
136
135
|
if (extensions == undefined) {
|
137
136
|
return false;
|
138
137
|
}
|
@@ -147,8 +146,8 @@ export class DataFetcher {
|
|
147
146
|
throw new WarningException("ClientEvent não registrado", `Ocorreu o client event ${id} porém não há client event registrado na aplicação.`);
|
148
147
|
}
|
149
148
|
const handlers = DataFetcher.clientEventsByID.get(id);
|
150
|
-
handlers.forEach(handler => {
|
151
|
-
handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
149
|
+
handlers.forEach(async (handler) => {
|
150
|
+
await handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
152
151
|
});
|
153
152
|
}
|
154
153
|
return Object.keys(clientEvents).length > 0;
|
@@ -353,17 +352,13 @@ export class DataFetcher {
|
|
353
352
|
async executePendingRequest(watingRequestsById) {
|
354
353
|
const requestsBatch = [];
|
355
354
|
let quietMode = true;
|
356
|
-
watingRequestsById.forEach(
|
357
|
-
|
355
|
+
watingRequestsById.forEach((waitingReq) => {
|
356
|
+
const query = this.getQueryTemplate(waitingReq.request);
|
358
357
|
requestsBatch.push({ document: query, variables: Object.assign({}, waitingReq.request.values) });
|
359
358
|
quietMode = quietMode && waitingReq.quietMode;
|
360
359
|
});
|
361
|
-
|
362
|
-
|
363
|
-
let errorsResponse = [];
|
364
|
-
res = await this.fecthGrapql(requestsBatch, quietMode);
|
365
|
-
dataResponse = res.data;
|
366
|
-
errorsResponse = res.errors;
|
360
|
+
const response = await this.fecthGraphQL(requestsBatch, quietMode);
|
361
|
+
const { data: dataResponse, errors: errorsResponse, extensions } = response;
|
367
362
|
//Reject promises with errors from query
|
368
363
|
errorsResponse.forEach((errorResponse) => {
|
369
364
|
Object.entries(errorResponse).forEach(([_key, val]) => {
|
@@ -373,29 +368,33 @@ export class DataFetcher {
|
|
373
368
|
});
|
374
369
|
//Resolve promises with data from query
|
375
370
|
dataResponse.forEach((data) => {
|
376
|
-
Object.entries(data).forEach(([key, val]) => {
|
377
|
-
|
378
|
-
|
371
|
+
Object.entries(data).forEach(async ([key, val]) => {
|
372
|
+
const waitingRequest = watingRequestsById.get(key);
|
373
|
+
await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
|
374
|
+
((waitingRequest === null || waitingRequest === void 0 ? void 0 : waitingRequest.resolve) || Promise.resolve)(val);
|
379
375
|
});
|
380
376
|
});
|
381
377
|
}
|
382
|
-
|
383
|
-
let res = undefined;
|
384
|
-
let dataResponse = [];
|
385
|
-
let errorsResponse = [];
|
386
|
-
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
387
|
-
const responseExtensions = [];
|
378
|
+
buildGraphQlURL(quietMode) {
|
388
379
|
const mgeSession = window["mgeSession"];
|
389
|
-
|
380
|
+
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
381
|
+
if (mgeSession) {
|
390
382
|
url += `?mgeSession=${mgeSession}`;
|
391
383
|
}
|
392
384
|
if (quietMode) {
|
393
385
|
url += `${url.indexOf("?") > -1 ? "&" : "?"}quietMode=true`;
|
394
386
|
}
|
395
|
-
|
387
|
+
return url;
|
388
|
+
}
|
389
|
+
async fecthGraphQL(request, quietMode) {
|
390
|
+
const dataResponse = [];
|
391
|
+
const errorsResponse = [];
|
392
|
+
const responseExtensions = [];
|
393
|
+
const url = this.buildGraphQlURL(quietMode);
|
394
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url, requestBody: request }));
|
396
395
|
try {
|
397
|
-
|
398
|
-
|
396
|
+
const response = await batchRequests(url, request, { 'Content-Type': `application/json; charset=${window['SERVER_ENCODING'] || 'UTF-8'}` });
|
397
|
+
response.forEach((resItem, index) => {
|
399
398
|
var _a;
|
400
399
|
if (((_a = resItem === null || resItem === void 0 ? void 0 : resItem.errors) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
401
400
|
errorsResponse.push(resItem.errors.map((item) => this.normalizeErrorResponse(item, request, index)));
|
@@ -410,7 +409,7 @@ export class DataFetcher {
|
|
410
409
|
}
|
411
410
|
catch (err) {
|
412
411
|
if (!this.isHttpError(err)) {
|
413
|
-
res = err.response;
|
412
|
+
const res = err.response;
|
414
413
|
const req = err.request;
|
415
414
|
Object.entries(res).forEach(([key, val]) => {
|
416
415
|
if (val.errors) {
|
@@ -426,11 +425,11 @@ export class DataFetcher {
|
|
426
425
|
});
|
427
426
|
}
|
428
427
|
else {
|
429
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
428
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
430
429
|
throw new ErrorException("Falha de comunicação", err.message);
|
431
430
|
}
|
432
431
|
}
|
433
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
432
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
434
433
|
return { data: dataResponse, errors: errorsResponse, extensions: responseExtensions };
|
435
434
|
}
|
436
435
|
isHttpError(err) {
|
@@ -97,7 +97,7 @@ export default class DataUnitDataLoader {
|
|
97
97
|
offset = 0;
|
98
98
|
}
|
99
99
|
const { total, count, loadingInProgress } = loadingInfo;
|
100
|
-
const firstRecord = count === 0 ? 0 : offset + 1;
|
100
|
+
const firstRecord = (count === 0 || pageSize === 0) ? 0 : offset + 1;
|
101
101
|
const lastRecord = offset + Math.min(pageSize, limit);
|
102
102
|
return {
|
103
103
|
total,
|
@@ -20,9 +20,20 @@ export class ArrayRepository {
|
|
20
20
|
return Promise.resolve({ result, count });
|
21
21
|
}
|
22
22
|
async distict(itemProcessor) {
|
23
|
-
const processedItems =
|
24
|
-
|
25
|
-
|
23
|
+
const processedItems = [];
|
24
|
+
let hasEmpty = false;
|
25
|
+
for (const item of this._list) {
|
26
|
+
const processedItem = itemProcessor(item);
|
27
|
+
if (processedItem == undefined) {
|
28
|
+
hasEmpty = true;
|
29
|
+
continue;
|
30
|
+
}
|
31
|
+
processedItems.push(processedItem);
|
32
|
+
}
|
33
|
+
if (hasEmpty) {
|
34
|
+
processedItems.push({ key: "", value: null });
|
35
|
+
}
|
36
|
+
return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
|
26
37
|
}
|
27
38
|
async push(items) {
|
28
39
|
this._list.push(...items);
|
@@ -31,7 +42,14 @@ export class ArrayRepository {
|
|
31
42
|
this._list = [];
|
32
43
|
}
|
33
44
|
async delete(items) {
|
34
|
-
this._list = this._list.filter(item =>
|
45
|
+
this._list = this._list.filter(item => {
|
46
|
+
for (const removed of items) {
|
47
|
+
if (this._equalsFunction(item, removed)) {
|
48
|
+
return false;
|
49
|
+
}
|
50
|
+
}
|
51
|
+
return true;
|
52
|
+
});
|
35
53
|
}
|
36
54
|
async update(items) {
|
37
55
|
this._list = this._list.map(existingItem => {
|
@@ -54,7 +54,17 @@ export default class PreloadManager {
|
|
54
54
|
const value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
55
55
|
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
56
56
|
})
|
57
|
-
.then(
|
57
|
+
.then(result => {
|
58
|
+
if (result != undefined && result.size > 0) {
|
59
|
+
const field = dataUnit.getField(fieldName);
|
60
|
+
const sortedMap = new Map(Array.from(result.entries())
|
61
|
+
.sort((itemA, itemB) => FieldComparator.compareValues(field, itemA[1], itemB[1]))
|
62
|
+
.map(([key, value]) => key === "" ? ["(Vazio)", value] : [key, value]));
|
63
|
+
accept(sortedMap);
|
64
|
+
return;
|
65
|
+
}
|
66
|
+
accept(result);
|
67
|
+
})
|
58
68
|
.catch(reason => reject(reason));
|
59
69
|
});
|
60
70
|
}
|
@@ -6616,16 +6616,16 @@ class DataFetcher {
|
|
6616
6616
|
if (this.ready) {
|
6617
6617
|
return new Promise(async (resolve, reject) => {
|
6618
6618
|
let query = this.getQueryTemplate(req);
|
6619
|
-
const res = await this.
|
6619
|
+
const res = await this.fecthGraphQL([{ document: query, variables: req.values }], quietMode);
|
6620
6620
|
if (res.errors.length > 0) {
|
6621
|
-
if (!this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject)) {
|
6621
|
+
if (!(await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject))) {
|
6622
6622
|
const error = this.processGraphQlErrorInfo(res.errors);
|
6623
6623
|
reject(error);
|
6624
6624
|
}
|
6625
6625
|
}
|
6626
6626
|
else {
|
6627
6627
|
resolve(res.data[0][reqKey]);
|
6628
|
-
this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
6628
|
+
await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
6629
6629
|
}
|
6630
6630
|
});
|
6631
6631
|
}
|
@@ -6639,7 +6639,7 @@ class DataFetcher {
|
|
6639
6639
|
resolveURL() {
|
6640
6640
|
return UrlUtils.getUrlBase();
|
6641
6641
|
}
|
6642
|
-
proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
6642
|
+
async proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
6643
6643
|
if (extensions == undefined) {
|
6644
6644
|
return false;
|
6645
6645
|
}
|
@@ -6654,8 +6654,8 @@ class DataFetcher {
|
|
6654
6654
|
throw new WarningException("ClientEvent não registrado", `Ocorreu o client event ${id} porém não há client event registrado na aplicação.`);
|
6655
6655
|
}
|
6656
6656
|
const handlers = DataFetcher.clientEventsByID.get(id);
|
6657
|
-
handlers.forEach(handler => {
|
6658
|
-
handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
6657
|
+
handlers.forEach(async (handler) => {
|
6658
|
+
await handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
6659
6659
|
});
|
6660
6660
|
}
|
6661
6661
|
return Object.keys(clientEvents).length > 0;
|
@@ -6848,17 +6848,13 @@ class DataFetcher {
|
|
6848
6848
|
async executePendingRequest(watingRequestsById) {
|
6849
6849
|
const requestsBatch = [];
|
6850
6850
|
let quietMode = true;
|
6851
|
-
watingRequestsById.forEach(
|
6852
|
-
|
6851
|
+
watingRequestsById.forEach((waitingReq) => {
|
6852
|
+
const query = this.getQueryTemplate(waitingReq.request);
|
6853
6853
|
requestsBatch.push({ document: query, variables: Object.assign({}, waitingReq.request.values) });
|
6854
6854
|
quietMode = quietMode && waitingReq.quietMode;
|
6855
6855
|
});
|
6856
|
-
|
6857
|
-
|
6858
|
-
let errorsResponse = [];
|
6859
|
-
res = await this.fecthGrapql(requestsBatch, quietMode);
|
6860
|
-
dataResponse = res.data;
|
6861
|
-
errorsResponse = res.errors;
|
6856
|
+
const response = await this.fecthGraphQL(requestsBatch, quietMode);
|
6857
|
+
const { data: dataResponse, errors: errorsResponse, extensions } = response;
|
6862
6858
|
//Reject promises with errors from query
|
6863
6859
|
errorsResponse.forEach((errorResponse) => {
|
6864
6860
|
Object.entries(errorResponse).forEach(([_key, val]) => {
|
@@ -6868,29 +6864,33 @@ class DataFetcher {
|
|
6868
6864
|
});
|
6869
6865
|
//Resolve promises with data from query
|
6870
6866
|
dataResponse.forEach((data) => {
|
6871
|
-
Object.entries(data).forEach(([key, val]) => {
|
6872
|
-
|
6873
|
-
|
6867
|
+
Object.entries(data).forEach(async ([key, val]) => {
|
6868
|
+
const waitingRequest = watingRequestsById.get(key);
|
6869
|
+
await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
|
6870
|
+
((waitingRequest === null || waitingRequest === void 0 ? void 0 : waitingRequest.resolve) || Promise.resolve)(val);
|
6874
6871
|
});
|
6875
6872
|
});
|
6876
6873
|
}
|
6877
|
-
|
6878
|
-
let res = undefined;
|
6879
|
-
let dataResponse = [];
|
6880
|
-
let errorsResponse = [];
|
6881
|
-
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
6882
|
-
const responseExtensions = [];
|
6874
|
+
buildGraphQlURL(quietMode) {
|
6883
6875
|
const mgeSession = window["mgeSession"];
|
6884
|
-
|
6876
|
+
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
6877
|
+
if (mgeSession) {
|
6885
6878
|
url += `?mgeSession=${mgeSession}`;
|
6886
6879
|
}
|
6887
6880
|
if (quietMode) {
|
6888
6881
|
url += `${url.indexOf("?") > -1 ? "&" : "?"}quietMode=true`;
|
6889
6882
|
}
|
6890
|
-
|
6883
|
+
return url;
|
6884
|
+
}
|
6885
|
+
async fecthGraphQL(request, quietMode) {
|
6886
|
+
const dataResponse = [];
|
6887
|
+
const errorsResponse = [];
|
6888
|
+
const responseExtensions = [];
|
6889
|
+
const url = this.buildGraphQlURL(quietMode);
|
6890
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url, requestBody: request }));
|
6891
6891
|
try {
|
6892
|
-
|
6893
|
-
|
6892
|
+
const response = await dist.batchRequests(url, request, { 'Content-Type': `application/json; charset=${window['SERVER_ENCODING'] || 'UTF-8'}` });
|
6893
|
+
response.forEach((resItem, index) => {
|
6894
6894
|
var _a;
|
6895
6895
|
if (((_a = resItem === null || resItem === void 0 ? void 0 : resItem.errors) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
6896
6896
|
errorsResponse.push(resItem.errors.map((item) => this.normalizeErrorResponse(item, request, index)));
|
@@ -6905,7 +6905,7 @@ class DataFetcher {
|
|
6905
6905
|
}
|
6906
6906
|
catch (err) {
|
6907
6907
|
if (!this.isHttpError(err)) {
|
6908
|
-
res = err.response;
|
6908
|
+
const res = err.response;
|
6909
6909
|
const req = err.request;
|
6910
6910
|
Object.entries(res).forEach(([key, val]) => {
|
6911
6911
|
if (val.errors) {
|
@@ -6921,11 +6921,11 @@ class DataFetcher {
|
|
6921
6921
|
});
|
6922
6922
|
}
|
6923
6923
|
else {
|
6924
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
6924
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
6925
6925
|
throw new ErrorException("Falha de comunicação", err.message);
|
6926
6926
|
}
|
6927
6927
|
}
|
6928
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
6928
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
6929
6929
|
return { data: dataResponse, errors: errorsResponse, extensions: responseExtensions };
|
6930
6930
|
}
|
6931
6931
|
isHttpError(err) {
|
@@ -187,9 +187,20 @@ class ArrayRepository {
|
|
187
187
|
return Promise.resolve({ result, count });
|
188
188
|
}
|
189
189
|
async distict(itemProcessor) {
|
190
|
-
const processedItems =
|
191
|
-
|
192
|
-
|
190
|
+
const processedItems = [];
|
191
|
+
let hasEmpty = false;
|
192
|
+
for (const item of this._list) {
|
193
|
+
const processedItem = itemProcessor(item);
|
194
|
+
if (processedItem == undefined) {
|
195
|
+
hasEmpty = true;
|
196
|
+
continue;
|
197
|
+
}
|
198
|
+
processedItems.push(processedItem);
|
199
|
+
}
|
200
|
+
if (hasEmpty) {
|
201
|
+
processedItems.push({ key: "", value: null });
|
202
|
+
}
|
203
|
+
return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
|
193
204
|
}
|
194
205
|
async push(items) {
|
195
206
|
this._list.push(...items);
|
@@ -198,7 +209,14 @@ class ArrayRepository {
|
|
198
209
|
this._list = [];
|
199
210
|
}
|
200
211
|
async delete(items) {
|
201
|
-
this._list = this._list.filter(item =>
|
212
|
+
this._list = this._list.filter(item => {
|
213
|
+
for (const removed of items) {
|
214
|
+
if (this._equalsFunction(item, removed)) {
|
215
|
+
return false;
|
216
|
+
}
|
217
|
+
}
|
218
|
+
return true;
|
219
|
+
});
|
202
220
|
}
|
203
221
|
async update(items) {
|
204
222
|
this._list = this._list.map(existingItem => {
|
@@ -278,7 +296,17 @@ class PreloadManager {
|
|
278
296
|
const value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
279
297
|
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
280
298
|
})
|
281
|
-
.then(
|
299
|
+
.then(result => {
|
300
|
+
if (result != undefined && result.size > 0) {
|
301
|
+
const field = dataUnit.getField(fieldName);
|
302
|
+
const sortedMap = new Map(Array.from(result.entries())
|
303
|
+
.sort((itemA, itemB) => FieldComparator.compareValues(field, itemA[1], itemB[1]))
|
304
|
+
.map(([key, value]) => key === "" ? ["(Vazio)", value] : [key, value]));
|
305
|
+
accept(sortedMap);
|
306
|
+
return;
|
307
|
+
}
|
308
|
+
accept(result);
|
309
|
+
})
|
282
310
|
.catch(reason => reject(reason));
|
283
311
|
});
|
284
312
|
}
|
@@ -724,7 +752,7 @@ class DataUnitDataLoader {
|
|
724
752
|
offset = 0;
|
725
753
|
}
|
726
754
|
const { total, count, loadingInProgress } = loadingInfo;
|
727
|
-
const firstRecord = count === 0 ? 0 : offset + 1;
|
755
|
+
const firstRecord = (count === 0 || pageSize === 0) ? 0 : offset + 1;
|
728
756
|
const lastRecord = offset + Math.min(pageSize, limit);
|
729
757
|
return {
|
730
758
|
total,
|
@@ -1,7 +1,7 @@
|
|
1
|
-
import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-
|
1
|
+
import { R as ResourceFetcher, F as FormConfigFetcher } from './form-config-fetcher-5b886892.js';
|
2
2
|
import { F as FilterItemType } from './filter-item-type.enum-5028ed3f.js';
|
3
3
|
import { ObjectUtils } from '@sankhyalabs/core';
|
4
|
-
import { d as dist, D as DataFetcher } from './DataFetcher-
|
4
|
+
import { d as dist, D as DataFetcher } from './DataFetcher-07935045.js';
|
5
5
|
|
6
6
|
class GridConfigFetcher extends ResourceFetcher {
|
7
7
|
constructor() {
|
@@ -6616,16 +6616,16 @@ class DataFetcher {
|
|
6616
6616
|
if (this.ready) {
|
6617
6617
|
return new Promise(async (resolve, reject) => {
|
6618
6618
|
let query = this.getQueryTemplate(req);
|
6619
|
-
const res = await this.
|
6619
|
+
const res = await this.fecthGraphQL([{ document: query, variables: req.values }], quietMode);
|
6620
6620
|
if (res.errors.length > 0) {
|
6621
|
-
if (!this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject)) {
|
6621
|
+
if (!(await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject))) {
|
6622
6622
|
const error = this.processGraphQlErrorInfo(res.errors);
|
6623
6623
|
reject(error);
|
6624
6624
|
}
|
6625
6625
|
}
|
6626
6626
|
else {
|
6627
6627
|
resolve(res.data[0][reqKey]);
|
6628
|
-
this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
6628
|
+
await this.proccesGraphQLClientEvents(res === null || res === void 0 ? void 0 : res.extensions, req, resolve, reject);
|
6629
6629
|
}
|
6630
6630
|
});
|
6631
6631
|
}
|
@@ -6639,7 +6639,7 @@ class DataFetcher {
|
|
6639
6639
|
resolveURL() {
|
6640
6640
|
return UrlUtils.getUrlBase();
|
6641
6641
|
}
|
6642
|
-
proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
6642
|
+
async proccesGraphQLClientEvents(extensions, originalRequest, resolve, reject) {
|
6643
6643
|
if (extensions == undefined) {
|
6644
6644
|
return false;
|
6645
6645
|
}
|
@@ -6654,8 +6654,8 @@ class DataFetcher {
|
|
6654
6654
|
throw new WarningException("ClientEvent não registrado", `Ocorreu o client event ${id} porém não há client event registrado na aplicação.`);
|
6655
6655
|
}
|
6656
6656
|
const handlers = DataFetcher.clientEventsByID.get(id);
|
6657
|
-
handlers.forEach(handler => {
|
6658
|
-
handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
6657
|
+
handlers.forEach(async (handler) => {
|
6658
|
+
await handler({ id, content: JSON.parse(clientEvents[id]) }, new GraphQLRecaller(originalRequest, resolve, reject));
|
6659
6659
|
});
|
6660
6660
|
}
|
6661
6661
|
return Object.keys(clientEvents).length > 0;
|
@@ -6848,17 +6848,13 @@ class DataFetcher {
|
|
6848
6848
|
async executePendingRequest(watingRequestsById) {
|
6849
6849
|
const requestsBatch = [];
|
6850
6850
|
let quietMode = true;
|
6851
|
-
watingRequestsById.forEach(
|
6852
|
-
|
6851
|
+
watingRequestsById.forEach((waitingReq) => {
|
6852
|
+
const query = this.getQueryTemplate(waitingReq.request);
|
6853
6853
|
requestsBatch.push({ document: query, variables: Object.assign({}, waitingReq.request.values) });
|
6854
6854
|
quietMode = quietMode && waitingReq.quietMode;
|
6855
6855
|
});
|
6856
|
-
|
6857
|
-
|
6858
|
-
let errorsResponse = [];
|
6859
|
-
res = await this.fecthGrapql(requestsBatch, quietMode);
|
6860
|
-
dataResponse = res.data;
|
6861
|
-
errorsResponse = res.errors;
|
6856
|
+
const response = await this.fecthGraphQL(requestsBatch, quietMode);
|
6857
|
+
const { data: dataResponse, errors: errorsResponse, extensions } = response;
|
6862
6858
|
//Reject promises with errors from query
|
6863
6859
|
errorsResponse.forEach((errorResponse) => {
|
6864
6860
|
Object.entries(errorResponse).forEach(([_key, val]) => {
|
@@ -6868,29 +6864,33 @@ class DataFetcher {
|
|
6868
6864
|
});
|
6869
6865
|
//Resolve promises with data from query
|
6870
6866
|
dataResponse.forEach((data) => {
|
6871
|
-
Object.entries(data).forEach(([key, val]) => {
|
6872
|
-
|
6873
|
-
|
6867
|
+
Object.entries(data).forEach(async ([key, val]) => {
|
6868
|
+
const waitingRequest = watingRequestsById.get(key);
|
6869
|
+
await this.proccesGraphQLClientEvents(extensions, waitingRequest.request, waitingRequest.resolve, waitingRequest.reject);
|
6870
|
+
((waitingRequest === null || waitingRequest === void 0 ? void 0 : waitingRequest.resolve) || Promise.resolve)(val);
|
6874
6871
|
});
|
6875
6872
|
});
|
6876
6873
|
}
|
6877
|
-
|
6878
|
-
let res = undefined;
|
6879
|
-
let dataResponse = [];
|
6880
|
-
let errorsResponse = [];
|
6881
|
-
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
6882
|
-
const responseExtensions = [];
|
6874
|
+
buildGraphQlURL(quietMode) {
|
6883
6875
|
const mgeSession = window["mgeSession"];
|
6884
|
-
|
6876
|
+
let url = `${this.resolveURL() + DataFetcher.getGraphQLPath()}`;
|
6877
|
+
if (mgeSession) {
|
6885
6878
|
url += `?mgeSession=${mgeSession}`;
|
6886
6879
|
}
|
6887
6880
|
if (quietMode) {
|
6888
6881
|
url += `${url.indexOf("?") > -1 ? "&" : "?"}quietMode=true`;
|
6889
6882
|
}
|
6890
|
-
|
6883
|
+
return url;
|
6884
|
+
}
|
6885
|
+
async fecthGraphQL(request, quietMode) {
|
6886
|
+
const dataResponse = [];
|
6887
|
+
const errorsResponse = [];
|
6888
|
+
const responseExtensions = [];
|
6889
|
+
const url = this.buildGraphQlURL(quietMode);
|
6890
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestStart({ url, requestBody: request }));
|
6891
6891
|
try {
|
6892
|
-
|
6893
|
-
|
6892
|
+
const response = await dist.batchRequests(url, request, { 'Content-Type': `application/json; charset=${window['SERVER_ENCODING'] || 'UTF-8'}` });
|
6893
|
+
response.forEach((resItem, index) => {
|
6894
6894
|
var _a;
|
6895
6895
|
if (((_a = resItem === null || resItem === void 0 ? void 0 : resItem.errors) === null || _a === void 0 ? void 0 : _a.length) > 0) {
|
6896
6896
|
errorsResponse.push(resItem.errors.map((item) => this.normalizeErrorResponse(item, request, index)));
|
@@ -6905,7 +6905,7 @@ class DataFetcher {
|
|
6905
6905
|
}
|
6906
6906
|
catch (err) {
|
6907
6907
|
if (!this.isHttpError(err)) {
|
6908
|
-
res = err.response;
|
6908
|
+
const res = err.response;
|
6909
6909
|
const req = err.request;
|
6910
6910
|
Object.entries(res).forEach(([key, val]) => {
|
6911
6911
|
if (val.errors) {
|
@@ -6921,11 +6921,11 @@ class DataFetcher {
|
|
6921
6921
|
});
|
6922
6922
|
}
|
6923
6923
|
else {
|
6924
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
6924
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
6925
6925
|
throw new ErrorException("Falha de comunicação", err.message);
|
6926
6926
|
}
|
6927
6927
|
}
|
6928
|
-
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url
|
6928
|
+
DataFetcher.requestListener.forEach(listener => listener.onRequestEnd({ url, requestBody: request }));
|
6929
6929
|
return { data: dataResponse, errors: errorsResponse, extensions: responseExtensions };
|
6930
6930
|
}
|
6931
6931
|
isHttpError(err) {
|
@@ -1,6 +1,6 @@
|
|
1
|
-
import { C as ConfigStorage } from './ConfigStorage-
|
1
|
+
import { C as ConfigStorage } from './ConfigStorage-9840d004.js';
|
2
2
|
import { ObjectUtils } from '@sankhyalabs/core';
|
3
|
-
import { F as FormConfigFetcher } from './form-config-fetcher-
|
3
|
+
import { F as FormConfigFetcher } from './form-config-fetcher-5b886892.js';
|
4
4
|
|
5
5
|
class SnkFormConfigManager {
|
6
6
|
constructor(configName, resourceID, onConfigChange) {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { UserInterface, DateUtils } from '@sankhyalabs/core';
|
2
|
-
import { P as PreloadManager } from './dataunit-fetcher-
|
2
|
+
import { P as PreloadManager } from './dataunit-fetcher-0162ce17.js';
|
3
3
|
|
4
4
|
class SnkMultiSelectionListDataSource {
|
5
5
|
setDataUnit(dataUnit) {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { ObjectUtils } from '@sankhyalabs/core';
|
2
|
-
import { R as ResourceFetcher } from './form-config-fetcher-
|
2
|
+
import { R as ResourceFetcher } from './form-config-fetcher-5b886892.js';
|
3
3
|
|
4
4
|
class AuthFetcher extends ResourceFetcher {
|
5
5
|
getData(resourceID) {
|
@@ -1,5 +1,5 @@
|
|
1
1
|
import { FieldComparator, SortMode, DataUnit, defaultDataLoader, DataType, DateUtils, StringUtils, ChangeOperation, UserInterface, DataUnitStorage } from '@sankhyalabs/core';
|
2
|
-
import { D as DataFetcher, d as dist } from './DataFetcher-
|
2
|
+
import { D as DataFetcher, d as dist } from './DataFetcher-07935045.js';
|
3
3
|
import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
|
4
4
|
import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
5
5
|
import { R as ResourceIDUtils } from './ResourceIDUtils-a114189a.js';
|
@@ -26,9 +26,20 @@ class ArrayRepository {
|
|
26
26
|
return Promise.resolve({ result, count });
|
27
27
|
}
|
28
28
|
async distict(itemProcessor) {
|
29
|
-
const processedItems =
|
30
|
-
|
31
|
-
|
29
|
+
const processedItems = [];
|
30
|
+
let hasEmpty = false;
|
31
|
+
for (const item of this._list) {
|
32
|
+
const processedItem = itemProcessor(item);
|
33
|
+
if (processedItem == undefined) {
|
34
|
+
hasEmpty = true;
|
35
|
+
continue;
|
36
|
+
}
|
37
|
+
processedItems.push(processedItem);
|
38
|
+
}
|
39
|
+
if (hasEmpty) {
|
40
|
+
processedItems.push({ key: "", value: null });
|
41
|
+
}
|
42
|
+
return Promise.resolve(new Map(processedItems.map(item => [item.key, item.value])));
|
32
43
|
}
|
33
44
|
async push(items) {
|
34
45
|
this._list.push(...items);
|
@@ -37,7 +48,14 @@ class ArrayRepository {
|
|
37
48
|
this._list = [];
|
38
49
|
}
|
39
50
|
async delete(items) {
|
40
|
-
this._list = this._list.filter(item =>
|
51
|
+
this._list = this._list.filter(item => {
|
52
|
+
for (const removed of items) {
|
53
|
+
if (this._equalsFunction(item, removed)) {
|
54
|
+
return false;
|
55
|
+
}
|
56
|
+
}
|
57
|
+
return true;
|
58
|
+
});
|
41
59
|
}
|
42
60
|
async update(items) {
|
43
61
|
this._list = this._list.map(existingItem => {
|
@@ -117,7 +135,17 @@ class PreloadManager {
|
|
117
135
|
const value = fieldValue.value != undefined ? fieldValue.value : fieldValue;
|
118
136
|
return { key: dataUnit.getFormattedValue(fieldName, fieldValue), value };
|
119
137
|
})
|
120
|
-
.then(
|
138
|
+
.then(result => {
|
139
|
+
if (result != undefined && result.size > 0) {
|
140
|
+
const field = dataUnit.getField(fieldName);
|
141
|
+
const sortedMap = new Map(Array.from(result.entries())
|
142
|
+
.sort((itemA, itemB) => FieldComparator.compareValues(field, itemA[1], itemB[1]))
|
143
|
+
.map(([key, value]) => key === "" ? ["(Vazio)", value] : [key, value]));
|
144
|
+
accept(sortedMap);
|
145
|
+
return;
|
146
|
+
}
|
147
|
+
accept(result);
|
148
|
+
})
|
121
149
|
.catch(reason => reject(reason));
|
122
150
|
});
|
123
151
|
}
|
@@ -563,7 +591,7 @@ class DataUnitDataLoader {
|
|
563
591
|
offset = 0;
|
564
592
|
}
|
565
593
|
const { total, count, loadingInProgress } = loadingInfo;
|
566
|
-
const firstRecord = count === 0 ? 0 : offset + 1;
|
594
|
+
const firstRecord = (count === 0 || pageSize === 0) ? 0 : offset + 1;
|
567
595
|
const lastRecord = offset + Math.min(pageSize, limit);
|
568
596
|
return {
|
569
597
|
total,
|