@sankhyalabs/sankhyablocks 0.0.0-bugfix-dev-KB-83020.0 → 0.0.0-bugfix-dev-KB-81596.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/{ClientSideExporterProvider-6b781452.js → ClientSideExporterProvider-2f5f350c.js} +1 -1
- package/dist/cjs/{dataunit-fetcher-8291ac21.js → dataunit-fetcher-449d51a3.js} +11 -161
- package/dist/cjs/pesquisa-grid_2.cjs.entry.js +1 -1
- package/dist/cjs/snk-actions-button_5.cjs.entry.js +1 -1
- package/dist/cjs/snk-application.cjs.entry.js +1 -1
- package/dist/cjs/snk-attach.cjs.entry.js +2 -2
- package/dist/cjs/snk-crud.cjs.entry.js +1 -1
- package/dist/cjs/snk-data-exporter.cjs.entry.js +2 -2
- package/dist/cjs/{snk-data-unit-d75e6220.js → snk-data-unit-bbd384bf.js} +4 -2
- package/dist/cjs/snk-data-unit.cjs.entry.js +2 -2
- package/dist/cjs/snk-detail-view.cjs.entry.js +2 -2
- package/dist/cjs/snk-filter-bar_4.cjs.entry.js +3 -2
- package/dist/cjs/snk-grid.cjs.entry.js +2 -2
- package/dist/cjs/{snk-guides-viewer-a029ff50.js → snk-guides-viewer-5396062f.js} +1 -1
- package/dist/cjs/snk-guides-viewer.cjs.entry.js +2 -2
- package/dist/cjs/snk-pesquisa.cjs.entry.js +1 -1
- package/dist/cjs/snk-simple-crud.cjs.entry.js +2 -2
- package/dist/collection/components/snk-attach/structure/fetcher/factory/attach-fetcher-data-unit.factory.js +2 -3
- package/dist/collection/components/snk-data-unit/snk-data-unit.js +3 -1
- package/dist/collection/components/snk-filter-bar/filter-item/snk-filter-item.js +1 -0
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.css +1 -5
- package/dist/collection/components/snk-filter-bar/snk-filter-bar.js +1 -1
- package/dist/collection/lib/dataUnit/InMemoryLoader.js +12 -101
- package/dist/collection/lib/dataUnit/dataUnitInMemoryUtils.js +7 -53
- package/dist/components/dataunit-fetcher.js +30 -179
- package/dist/components/snk-attach2.js +3 -3
- package/dist/components/snk-data-unit2.js +3 -1
- package/dist/components/snk-filter-bar2.js +2 -2
- package/dist/components/snk-filter-item2.js +1 -0
- package/dist/esm/{ClientSideExporterProvider-ff89c7e9.js → ClientSideExporterProvider-3537805a.js} +1 -1
- package/dist/esm/{dataunit-fetcher-5247a708.js → dataunit-fetcher-91b094f2.js} +13 -162
- package/dist/esm/pesquisa-grid_2.entry.js +1 -1
- package/dist/esm/snk-actions-button_5.entry.js +1 -1
- package/dist/esm/snk-application.entry.js +1 -1
- package/dist/esm/snk-attach.entry.js +3 -3
- package/dist/esm/snk-crud.entry.js +1 -1
- package/dist/esm/snk-data-exporter.entry.js +2 -2
- package/dist/esm/{snk-data-unit-bfd10c71.js → snk-data-unit-b03bb5cf.js} +4 -2
- package/dist/esm/snk-data-unit.entry.js +2 -2
- package/dist/esm/snk-detail-view.entry.js +2 -2
- package/dist/esm/snk-filter-bar_4.entry.js +3 -2
- package/dist/esm/snk-grid.entry.js +2 -2
- package/dist/esm/{snk-guides-viewer-fa45714d.js → snk-guides-viewer-749d027c.js} +1 -1
- package/dist/esm/snk-guides-viewer.entry.js +2 -2
- package/dist/esm/snk-pesquisa.entry.js +1 -1
- package/dist/esm/snk-simple-crud.entry.js +2 -2
- package/dist/sankhyablocks/p-0ce56d43.entry.js +1 -0
- package/dist/sankhyablocks/{p-b0ff53b7.entry.js → p-13391b3d.entry.js} +1 -1
- package/dist/sankhyablocks/p-23b47a92.js +1 -0
- package/dist/sankhyablocks/p-3653374d.js +60 -0
- package/dist/sankhyablocks/{p-c82deea7.entry.js → p-389ba782.entry.js} +1 -1
- package/dist/sankhyablocks/{p-f8db6795.entry.js → p-44efbeed.entry.js} +1 -1
- package/dist/sankhyablocks/{p-0b00d69c.entry.js → p-4be6e0e7.entry.js} +1 -1
- package/dist/sankhyablocks/p-4d87cd45.entry.js +1 -0
- package/dist/sankhyablocks/{p-e36f89d1.entry.js → p-4fa79d68.entry.js} +1 -1
- package/dist/sankhyablocks/{p-40e323f9.js → p-5dd7f4c7.js} +1 -1
- package/dist/sankhyablocks/{p-aa1a0f3e.entry.js → p-6234bda8.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e10faff0.entry.js → p-647f9830.entry.js} +1 -1
- package/dist/sankhyablocks/{p-de9da2f2.js → p-7b87d1a8.js} +1 -1
- package/dist/sankhyablocks/{p-d2d0535f.entry.js → p-ad5e4f9d.entry.js} +1 -1
- package/dist/sankhyablocks/{p-172848d4.entry.js → p-b2de1bcc.entry.js} +1 -1
- package/dist/sankhyablocks/{p-e718fb81.entry.js → p-ca316523.entry.js} +1 -1
- package/dist/sankhyablocks/{p-700a4cc3.entry.js → p-ee53b000.entry.js} +1 -1
- package/dist/sankhyablocks/sankhyablocks.esm.js +1 -1
- package/dist/types/lib/dataUnit/InMemoryLoader.d.ts +4 -11
- package/dist/types/lib/dataUnit/dataUnitInMemoryUtils.d.ts +3 -6
- package/dist/types/lib/dataUnit/interfaces/InMemoryLoaderConfig.d.ts +2 -2
- package/package.json +1 -1
- package/dist/sankhyablocks/p-198c48c5.entry.js +0 -1
- package/dist/sankhyablocks/p-38179225.js +0 -60
- package/dist/sankhyablocks/p-655bdd60.js +0 -1
- package/dist/sankhyablocks/p-b02e58fd.entry.js +0 -1
|
@@ -1,117 +1,28 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { buildLoadDataResponse } from './dataUnitInMemoryUtils';
|
|
1
|
+
import { DataUnitInMemoryLoader } from '@sankhyalabs/core';
|
|
3
2
|
export default class InMemoryLoader {
|
|
4
3
|
constructor(metadata, records, config) {
|
|
5
|
-
this.
|
|
6
|
-
this.records = records;
|
|
7
|
-
this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
|
|
8
|
-
this._dataUnit.pageSize = 150;
|
|
9
|
-
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
|
10
|
-
this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
|
|
11
|
-
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
|
12
|
-
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
|
13
|
-
this.dataUnit.loadMetadata().then(() => {
|
|
14
|
-
if ((config === null || config === void 0 ? void 0 : config.autoLoad) !== false) {
|
|
15
|
-
this.dataUnit.loadData();
|
|
16
|
-
}
|
|
17
|
-
});
|
|
18
|
-
}
|
|
19
|
-
getRecordsToLoad() {
|
|
20
|
-
if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
|
|
21
|
-
this._initialRecords = this.dataUnit.records;
|
|
22
|
-
}
|
|
23
|
-
const addedRecords = this.dataUnit.getAddedRecords();
|
|
24
|
-
if (addedRecords) {
|
|
25
|
-
return [...this._initialRecords, ...addedRecords];
|
|
26
|
-
}
|
|
27
|
-
return this._initialRecords;
|
|
4
|
+
this._dataUnitInMemoryLoader = new DataUnitInMemoryLoader(metadata, records, config);
|
|
28
5
|
}
|
|
29
6
|
get dataUnit() {
|
|
30
|
-
return this.
|
|
7
|
+
return this._dataUnitInMemoryLoader.dataUnit;
|
|
31
8
|
}
|
|
32
9
|
get records() {
|
|
33
|
-
return this.
|
|
34
|
-
}
|
|
35
|
-
static getConvertedValue(descriptor, strValue) {
|
|
36
|
-
if (descriptor.dataType === DataType.BOOLEAN) {
|
|
37
|
-
return strValue === "S";
|
|
38
|
-
}
|
|
39
|
-
if (descriptor.dataType === DataType.NUMBER) {
|
|
40
|
-
return Number(strValue);
|
|
41
|
-
}
|
|
42
|
-
if (descriptor.dataType === DataType.DATE) {
|
|
43
|
-
return DateUtils.strToDate(strValue, true);
|
|
44
|
-
}
|
|
45
|
-
if (descriptor.dataType === DataType.OBJECT) {
|
|
46
|
-
return JSON.parse(strValue);
|
|
47
|
-
}
|
|
48
|
-
return strValue;
|
|
10
|
+
return this._dataUnitInMemoryLoader.records;
|
|
49
11
|
}
|
|
50
12
|
set records(records) {
|
|
51
|
-
|
|
52
|
-
const newRecords = records === null || records === void 0 ? void 0 : records.map(record => {
|
|
53
|
-
if (!record["__record__id__"]) {
|
|
54
|
-
record["__record__id__"] = this.generateUniqueId();
|
|
55
|
-
}
|
|
56
|
-
if (columns != undefined) {
|
|
57
|
-
for (const name in record) {
|
|
58
|
-
const value = record[name];
|
|
59
|
-
if (typeof value === "string" && columns.has(name)) {
|
|
60
|
-
record[name] = InMemoryLoader.getConvertedValue(columns.get(name), value);
|
|
61
|
-
}
|
|
62
|
-
}
|
|
63
|
-
}
|
|
64
|
-
return record;
|
|
65
|
-
});
|
|
66
|
-
this._initialRecords = newRecords;
|
|
67
|
-
if (this._dataUnit) {
|
|
68
|
-
//Isso força o refresh internamente no datunit
|
|
69
|
-
this._dataUnit.loadData();
|
|
70
|
-
}
|
|
13
|
+
this._dataUnitInMemoryLoader.records = records;
|
|
71
14
|
}
|
|
72
15
|
get metadata() {
|
|
73
|
-
return this.
|
|
16
|
+
return this._dataUnitInMemoryLoader.metadata;
|
|
74
17
|
}
|
|
75
18
|
set metadata(metadata) {
|
|
76
|
-
this.
|
|
77
|
-
if (this._dataUnit) {
|
|
78
|
-
this._dataUnit.metadata = this._metadata;
|
|
79
|
-
}
|
|
80
|
-
}
|
|
81
|
-
generateUniqueId() {
|
|
82
|
-
return StringUtils.generateUUID();
|
|
83
|
-
}
|
|
84
|
-
inMemoryLoader(dataUnit, request, recordsIn) {
|
|
85
|
-
return buildLoadDataResponse(recordsIn, dataUnit, request);
|
|
86
|
-
}
|
|
87
|
-
metadaLoader() {
|
|
88
|
-
return Promise.resolve(this._metadata);
|
|
89
|
-
}
|
|
90
|
-
saveLoader(_dataUnit, changes) {
|
|
91
|
-
return new Promise((resolve) => {
|
|
92
|
-
let dataUnitRecords = [];
|
|
93
|
-
changes.forEach(change => {
|
|
94
|
-
let { record, updatingFields, operation } = change;
|
|
95
|
-
const changedRecord = Object.assign(Object.assign({}, record), updatingFields);
|
|
96
|
-
if (operation === ChangeOperation.INSERT ||
|
|
97
|
-
operation === ChangeOperation.COPY) {
|
|
98
|
-
changedRecord["__old__id__"] = record["__record__id__"];
|
|
99
|
-
changedRecord["__record__id__"] = this.generateUniqueId();
|
|
100
|
-
this.records.push(changedRecord);
|
|
101
|
-
}
|
|
102
|
-
else {
|
|
103
|
-
const recordIndex = this.records.findIndex(r => r["__record__id__"] == changedRecord["__record__id__"]);
|
|
104
|
-
this.records[recordIndex] = changedRecord;
|
|
105
|
-
}
|
|
106
|
-
dataUnitRecords.push(changedRecord);
|
|
107
|
-
});
|
|
108
|
-
resolve(dataUnitRecords);
|
|
109
|
-
});
|
|
19
|
+
this._dataUnitInMemoryLoader.metadata = metadata;
|
|
110
20
|
}
|
|
111
21
|
removeLoader(_dataUnit, recordIds) {
|
|
112
|
-
return
|
|
113
|
-
|
|
114
|
-
|
|
22
|
+
return this._dataUnitInMemoryLoader.removeLoader(_dataUnit, recordIds);
|
|
23
|
+
}
|
|
24
|
+
static getConvertedValue(descriptor, strValue, dateFormat) {
|
|
25
|
+
return DataUnitInMemoryLoader.getConvertedValue(descriptor, strValue, dateFormat);
|
|
115
26
|
}
|
|
116
27
|
}
|
|
117
|
-
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME =
|
|
28
|
+
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = DataUnitInMemoryLoader.IN_MEMORY_DATA_UNIT_NAME;
|
|
@@ -1,62 +1,16 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import PreloadManager from '../http/data-fetcher/fetchers/data-unit/cache/PreloadManager';
|
|
1
|
+
import { DataUnitLoaderUtils, } from '@sankhyalabs/core';
|
|
3
2
|
export function applyFilter(records, dataUnit, filters) {
|
|
4
|
-
|
|
5
|
-
if (!(columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.size)) {
|
|
6
|
-
return records;
|
|
7
|
-
}
|
|
8
|
-
const filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
|
9
|
-
if (filterFunction == undefined) {
|
|
10
|
-
return records;
|
|
11
|
-
}
|
|
12
|
-
return records.filter(filterFunction);
|
|
3
|
+
return DataUnitLoaderUtils.applyFilter(records, dataUnit, filters);
|
|
13
4
|
}
|
|
14
5
|
export function buildLoadDataResponse(recordsIn, dataUnit, request) {
|
|
15
|
-
|
|
16
|
-
records = applyFilter(records, dataUnit, request.filters);
|
|
17
|
-
records = applySorting(records, dataUnit, request.sort);
|
|
18
|
-
const { offset, limit } = request;
|
|
19
|
-
const paginationInfoBuilderParams = {
|
|
20
|
-
recordsLength: records.length,
|
|
21
|
-
offset,
|
|
22
|
-
recordsPerPage: limit,
|
|
23
|
-
};
|
|
24
|
-
return Promise.resolve({
|
|
25
|
-
records: getPagesByRecords(records, offset, limit),
|
|
26
|
-
paginationInfo: dataUnit.pageSize ? buildPaginationInfo(paginationInfoBuilderParams) : undefined,
|
|
27
|
-
});
|
|
6
|
+
return DataUnitLoaderUtils.buildLoadDataResponse(recordsIn, dataUnit, request);
|
|
28
7
|
}
|
|
29
8
|
export function applySorting(records, dataUnit, sorting) {
|
|
30
|
-
|
|
31
|
-
return records;
|
|
32
|
-
}
|
|
33
|
-
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
|
34
|
-
if (sortingFunction == undefined) {
|
|
35
|
-
return records;
|
|
36
|
-
}
|
|
37
|
-
return records.sort(sortingFunction);
|
|
38
|
-
}
|
|
39
|
-
function hasValidLimitAndOffset(offset, limit) {
|
|
40
|
-
return offset >= 0 && limit >= 0;
|
|
9
|
+
return DataUnitLoaderUtils.applySorting(records, dataUnit, sorting);
|
|
41
10
|
}
|
|
42
11
|
export function getPagesByRecords(records, offset = 0, limit = 0) {
|
|
43
|
-
|
|
44
|
-
return [];
|
|
45
|
-
if (limit === 0 && offset === 0)
|
|
46
|
-
return records;
|
|
47
|
-
return records.slice(offset, offset + limit);
|
|
12
|
+
return DataUnitLoaderUtils.getPagesByRecords(records, offset, limit);
|
|
48
13
|
}
|
|
49
|
-
export function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0 }) {
|
|
50
|
-
|
|
51
|
-
return { currentPage: 0, firstRecord: 0, lastRecord: 0, total: 0, hasMore: false };
|
|
52
|
-
}
|
|
53
|
-
const lastRecordIndex = offset + recordsPerPage;
|
|
54
|
-
const lastRecord = lastRecordIndex ? Math.min(lastRecordIndex, recordsLength) : recordsLength;
|
|
55
|
-
return {
|
|
56
|
-
currentPage: recordsPerPage === 0 ? 0 : Math.ceil(offset / recordsPerPage),
|
|
57
|
-
firstRecord: offset + 1,
|
|
58
|
-
lastRecord: lastRecord,
|
|
59
|
-
total: recordsLength,
|
|
60
|
-
hasMore: lastRecord < recordsLength,
|
|
61
|
-
};
|
|
14
|
+
export function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0, }) {
|
|
15
|
+
return DataUnitLoaderUtils.buildPaginationInfo({ recordsLength, offset, recordsPerPage });
|
|
62
16
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ObjectUtils, DataUnit,
|
|
1
|
+
import { DataUnitInMemoryLoader, ObjectUtils, DataUnit, ApplicationContext, StringUtils, UserInterface, DataUnitStorage, DataType, ChangeOperation } from '@sankhyalabs/core';
|
|
2
2
|
import { D as DataFetcher, d as dist } from './DataFetcher.js';
|
|
3
3
|
import { DISTINCT_FILTER_NAME_PREFIX } from '@sankhyalabs/ezui/dist/collection/utils/constants';
|
|
4
4
|
import { DataUnitTransient } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
@@ -6,6 +6,34 @@ import { ColumnFilterManager } from '@sankhyalabs/ezui/dist/collection/component
|
|
|
6
6
|
import SortingUtils from '@sankhyalabs/core/dist/utils/SortingUtils';
|
|
7
7
|
import { R as ResourceIDUtils } from './ResourceIDUtils.js';
|
|
8
8
|
|
|
9
|
+
class InMemoryLoader {
|
|
10
|
+
constructor(metadata, records, config) {
|
|
11
|
+
this._dataUnitInMemoryLoader = new DataUnitInMemoryLoader(metadata, records, config);
|
|
12
|
+
}
|
|
13
|
+
get dataUnit() {
|
|
14
|
+
return this._dataUnitInMemoryLoader.dataUnit;
|
|
15
|
+
}
|
|
16
|
+
get records() {
|
|
17
|
+
return this._dataUnitInMemoryLoader.records;
|
|
18
|
+
}
|
|
19
|
+
set records(records) {
|
|
20
|
+
this._dataUnitInMemoryLoader.records = records;
|
|
21
|
+
}
|
|
22
|
+
get metadata() {
|
|
23
|
+
return this._dataUnitInMemoryLoader.metadata;
|
|
24
|
+
}
|
|
25
|
+
set metadata(metadata) {
|
|
26
|
+
this._dataUnitInMemoryLoader.metadata = metadata;
|
|
27
|
+
}
|
|
28
|
+
removeLoader(_dataUnit, recordIds) {
|
|
29
|
+
return this._dataUnitInMemoryLoader.removeLoader(_dataUnit, recordIds);
|
|
30
|
+
}
|
|
31
|
+
static getConvertedValue(descriptor, strValue, dateFormat) {
|
|
32
|
+
return DataUnitInMemoryLoader.getConvertedValue(descriptor, strValue, dateFormat);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = DataUnitInMemoryLoader.IN_MEMORY_DATA_UNIT_NAME;
|
|
36
|
+
|
|
9
37
|
class ArrayRepository {
|
|
10
38
|
constructor(equalsFunction) {
|
|
11
39
|
this._list = [];
|
|
@@ -238,183 +266,6 @@ class PreloadManager {
|
|
|
238
266
|
PreloadManager._repositories = new Map();
|
|
239
267
|
PreloadManager._loadingStatus = new Map();
|
|
240
268
|
|
|
241
|
-
function applyFilter(records, dataUnit, filters) {
|
|
242
|
-
const columnFilters = ColumnFilterManager.getColumnFilters(filters, "");
|
|
243
|
-
if (!(columnFilters === null || columnFilters === void 0 ? void 0 : columnFilters.size)) {
|
|
244
|
-
return records;
|
|
245
|
-
}
|
|
246
|
-
const filterFunction = ColumnFilterManager.getFilterFunction(dataUnit, Array.from(columnFilters.values()));
|
|
247
|
-
if (filterFunction == undefined) {
|
|
248
|
-
return records;
|
|
249
|
-
}
|
|
250
|
-
return records.filter(filterFunction);
|
|
251
|
-
}
|
|
252
|
-
function buildLoadDataResponse(recordsIn, dataUnit, request) {
|
|
253
|
-
let records = recordsIn ? [...recordsIn] : [];
|
|
254
|
-
records = applyFilter(records, dataUnit, request.filters);
|
|
255
|
-
records = applySorting(records, dataUnit, request.sort);
|
|
256
|
-
const { offset, limit } = request;
|
|
257
|
-
const paginationInfoBuilderParams = {
|
|
258
|
-
recordsLength: records.length,
|
|
259
|
-
offset,
|
|
260
|
-
recordsPerPage: limit,
|
|
261
|
-
};
|
|
262
|
-
return Promise.resolve({
|
|
263
|
-
records: getPagesByRecords(records, offset, limit),
|
|
264
|
-
paginationInfo: dataUnit.pageSize ? buildPaginationInfo(paginationInfoBuilderParams) : undefined,
|
|
265
|
-
});
|
|
266
|
-
}
|
|
267
|
-
function applySorting(records, dataUnit, sorting) {
|
|
268
|
-
if (sorting == undefined || sorting.length == 0) {
|
|
269
|
-
return records;
|
|
270
|
-
}
|
|
271
|
-
const sortingFunction = PreloadManager.getSortingFunction(dataUnit, sorting);
|
|
272
|
-
if (sortingFunction == undefined) {
|
|
273
|
-
return records;
|
|
274
|
-
}
|
|
275
|
-
return records.sort(sortingFunction);
|
|
276
|
-
}
|
|
277
|
-
function hasValidLimitAndOffset(offset, limit) {
|
|
278
|
-
return offset >= 0 && limit >= 0;
|
|
279
|
-
}
|
|
280
|
-
function getPagesByRecords(records, offset = 0, limit = 0) {
|
|
281
|
-
if (!records || !records.length || !hasValidLimitAndOffset(offset, limit))
|
|
282
|
-
return [];
|
|
283
|
-
if (limit === 0 && offset === 0)
|
|
284
|
-
return records;
|
|
285
|
-
return records.slice(offset, offset + limit);
|
|
286
|
-
}
|
|
287
|
-
function buildPaginationInfo({ recordsLength = 0, offset = 0, recordsPerPage = 0 }) {
|
|
288
|
-
if (!recordsLength) {
|
|
289
|
-
return { currentPage: 0, firstRecord: 0, lastRecord: 0, total: 0, hasMore: false };
|
|
290
|
-
}
|
|
291
|
-
const lastRecordIndex = offset + recordsPerPage;
|
|
292
|
-
const lastRecord = lastRecordIndex ? Math.min(lastRecordIndex, recordsLength) : recordsLength;
|
|
293
|
-
return {
|
|
294
|
-
currentPage: recordsPerPage === 0 ? 0 : Math.ceil(offset / recordsPerPage),
|
|
295
|
-
firstRecord: offset + 1,
|
|
296
|
-
lastRecord: lastRecord,
|
|
297
|
-
total: recordsLength,
|
|
298
|
-
hasMore: lastRecord < recordsLength,
|
|
299
|
-
};
|
|
300
|
-
}
|
|
301
|
-
|
|
302
|
-
class InMemoryLoader {
|
|
303
|
-
constructor(metadata, records, config) {
|
|
304
|
-
this.metadata = metadata;
|
|
305
|
-
this.records = records;
|
|
306
|
-
this._dataUnit = new DataUnit(InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME);
|
|
307
|
-
this._dataUnit.pageSize = 150;
|
|
308
|
-
this._dataUnit.metadataLoader = () => this.metadaLoader();
|
|
309
|
-
this._dataUnit.dataLoader = (dataUnit, request) => this.inMemoryLoader(dataUnit, request, this.getRecordsToLoad());
|
|
310
|
-
this._dataUnit.saveLoader = (_dataUnit, changes) => this.saveLoader(_dataUnit, changes);
|
|
311
|
-
this._dataUnit.removeLoader = (_dataUnit, recordIds) => this.removeLoader(_dataUnit, recordIds);
|
|
312
|
-
this.dataUnit.loadMetadata().then(() => {
|
|
313
|
-
if ((config === null || config === void 0 ? void 0 : config.autoLoad) !== false) {
|
|
314
|
-
this.dataUnit.loadData();
|
|
315
|
-
}
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
getRecordsToLoad() {
|
|
319
|
-
if (this._initialRecords == undefined && this.dataUnit.records.length > 0) {
|
|
320
|
-
this._initialRecords = this.dataUnit.records;
|
|
321
|
-
}
|
|
322
|
-
const addedRecords = this.dataUnit.getAddedRecords();
|
|
323
|
-
if (addedRecords) {
|
|
324
|
-
return [...this._initialRecords, ...addedRecords];
|
|
325
|
-
}
|
|
326
|
-
return this._initialRecords;
|
|
327
|
-
}
|
|
328
|
-
get dataUnit() {
|
|
329
|
-
return this._dataUnit;
|
|
330
|
-
}
|
|
331
|
-
get records() {
|
|
332
|
-
return this.dataUnit.records;
|
|
333
|
-
}
|
|
334
|
-
static getConvertedValue(descriptor, strValue) {
|
|
335
|
-
if (descriptor.dataType === DataType.BOOLEAN) {
|
|
336
|
-
return strValue === "S";
|
|
337
|
-
}
|
|
338
|
-
if (descriptor.dataType === DataType.NUMBER) {
|
|
339
|
-
return Number(strValue);
|
|
340
|
-
}
|
|
341
|
-
if (descriptor.dataType === DataType.DATE) {
|
|
342
|
-
return DateUtils.strToDate(strValue, true);
|
|
343
|
-
}
|
|
344
|
-
if (descriptor.dataType === DataType.OBJECT) {
|
|
345
|
-
return JSON.parse(strValue);
|
|
346
|
-
}
|
|
347
|
-
return strValue;
|
|
348
|
-
}
|
|
349
|
-
set records(records) {
|
|
350
|
-
const columns = this._metadata ? new Map(this._metadata.fields.map(descriptor => [descriptor.name, descriptor])) : undefined;
|
|
351
|
-
const newRecords = records === null || records === void 0 ? void 0 : records.map(record => {
|
|
352
|
-
if (!record["__record__id__"]) {
|
|
353
|
-
record["__record__id__"] = this.generateUniqueId();
|
|
354
|
-
}
|
|
355
|
-
if (columns != undefined) {
|
|
356
|
-
for (const name in record) {
|
|
357
|
-
const value = record[name];
|
|
358
|
-
if (typeof value === "string" && columns.has(name)) {
|
|
359
|
-
record[name] = InMemoryLoader.getConvertedValue(columns.get(name), value);
|
|
360
|
-
}
|
|
361
|
-
}
|
|
362
|
-
}
|
|
363
|
-
return record;
|
|
364
|
-
});
|
|
365
|
-
this._initialRecords = newRecords;
|
|
366
|
-
if (this._dataUnit) {
|
|
367
|
-
//Isso força o refresh internamente no datunit
|
|
368
|
-
this._dataUnit.loadData();
|
|
369
|
-
}
|
|
370
|
-
}
|
|
371
|
-
get metadata() {
|
|
372
|
-
return this._metadata;
|
|
373
|
-
}
|
|
374
|
-
set metadata(metadata) {
|
|
375
|
-
this._metadata = metadata;
|
|
376
|
-
if (this._dataUnit) {
|
|
377
|
-
this._dataUnit.metadata = this._metadata;
|
|
378
|
-
}
|
|
379
|
-
}
|
|
380
|
-
generateUniqueId() {
|
|
381
|
-
return StringUtils.generateUUID();
|
|
382
|
-
}
|
|
383
|
-
inMemoryLoader(dataUnit, request, recordsIn) {
|
|
384
|
-
return buildLoadDataResponse(recordsIn, dataUnit, request);
|
|
385
|
-
}
|
|
386
|
-
metadaLoader() {
|
|
387
|
-
return Promise.resolve(this._metadata);
|
|
388
|
-
}
|
|
389
|
-
saveLoader(_dataUnit, changes) {
|
|
390
|
-
return new Promise((resolve) => {
|
|
391
|
-
let dataUnitRecords = [];
|
|
392
|
-
changes.forEach(change => {
|
|
393
|
-
let { record, updatingFields, operation } = change;
|
|
394
|
-
const changedRecord = Object.assign(Object.assign({}, record), updatingFields);
|
|
395
|
-
if (operation === ChangeOperation.INSERT ||
|
|
396
|
-
operation === ChangeOperation.COPY) {
|
|
397
|
-
changedRecord["__old__id__"] = record["__record__id__"];
|
|
398
|
-
changedRecord["__record__id__"] = this.generateUniqueId();
|
|
399
|
-
this.records.push(changedRecord);
|
|
400
|
-
}
|
|
401
|
-
else {
|
|
402
|
-
const recordIndex = this.records.findIndex(r => r["__record__id__"] == changedRecord["__record__id__"]);
|
|
403
|
-
this.records[recordIndex] = changedRecord;
|
|
404
|
-
}
|
|
405
|
-
dataUnitRecords.push(changedRecord);
|
|
406
|
-
});
|
|
407
|
-
resolve(dataUnitRecords);
|
|
408
|
-
});
|
|
409
|
-
}
|
|
410
|
-
removeLoader(_dataUnit, recordIds) {
|
|
411
|
-
return new Promise((resolve) => {
|
|
412
|
-
resolve(recordIds);
|
|
413
|
-
});
|
|
414
|
-
}
|
|
415
|
-
}
|
|
416
|
-
InMemoryLoader.IN_MEMORY_DATA_UNIT_NAME = "InMemoryDataUnit";
|
|
417
|
-
|
|
418
269
|
function getRecordValue(record, fieldName) {
|
|
419
270
|
var _a, _b;
|
|
420
271
|
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];
|
|
@@ -1250,4 +1101,4 @@ class DataUnitFetcher {
|
|
|
1250
1101
|
}
|
|
1251
1102
|
}
|
|
1252
1103
|
|
|
1253
|
-
export { DataUnitFetcher as D, InMemoryLoader as I, PreloadManager as P, DatasetStrategy as a,
|
|
1104
|
+
export { DataUnitFetcher as D, InMemoryLoader as I, PreloadManager as P, DatasetStrategy as a, getRecordValue as g };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { proxyCustomElement, HTMLElement, createEvent, h } from '@stencil/core/internal/client';
|
|
2
|
-
import { ApplicationContext, DataType, Action, UserInterface, StringUtils, DataUnit } from '@sankhyalabs/core';
|
|
2
|
+
import { ApplicationContext, DataType, Action, UserInterface, StringUtils, DataUnitLoaderUtils, DataUnit } from '@sankhyalabs/core';
|
|
3
3
|
import { D as DataFetcher } from './DataFetcher.js';
|
|
4
4
|
import { S as SaveErrorsEnum } from './ISave.js';
|
|
5
|
-
import { P as PreloadManager,
|
|
5
|
+
import { P as PreloadManager, D as DataUnitFetcher, I as InMemoryLoader } from './dataunit-fetcher.js';
|
|
6
6
|
import './filter-item-type.enum.js';
|
|
7
7
|
import './form-config-fetcher.js';
|
|
8
8
|
import { V as VIEW_MODE } from './constants.js';
|
|
@@ -462,7 +462,7 @@ class AttachFetcherDataUnitFactory {
|
|
|
462
462
|
});
|
|
463
463
|
this._records = records;
|
|
464
464
|
}
|
|
465
|
-
return buildLoadDataResponse(this._records, dataUnit, request);
|
|
465
|
+
return DataUnitLoaderUtils.buildLoadDataResponse(this._records, dataUnit, request);
|
|
466
466
|
}
|
|
467
467
|
saveLoader(changes, fetcher) {
|
|
468
468
|
return new Promise((resolve) => {
|
|
@@ -257,7 +257,9 @@ const SnkDataUnit = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
|
257
257
|
return new DataUnitAction(Action.RECORDS_COPIED, this.handleRecordsCopied(action.payload));
|
|
258
258
|
}
|
|
259
259
|
async interceptDataChange(action) {
|
|
260
|
-
|
|
260
|
+
var _a;
|
|
261
|
+
const recordId = (_a = this.dataUnit.getSelectedRecord()) === null || _a === void 0 ? void 0 : _a.__record__id__;
|
|
262
|
+
if (this.isAllowed("UPDATE") || this.dataUnit.isNewRecord(recordId)) {
|
|
261
263
|
return action;
|
|
262
264
|
}
|
|
263
265
|
if (this._openedAlert) {
|
|
@@ -253,7 +253,7 @@ class SnkFilterModalFactory {
|
|
|
253
253
|
}
|
|
254
254
|
}
|
|
255
255
|
|
|
256
|
-
const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:
|
|
256
|
+
const snkFilterBarCss = ".sc-snk-filter-bar-h{display:grid;grid-template-columns:1fr minmax(100px, 100%) 1fr 1fr;--snk-personalized-filter--z-index:var(--elevation--20, 20);--snk-personalized-filter--background-color:var(--background--xlight, #fff)}.snk-filter-bar__title.sc-snk-filter-bar{max-width:260px;display:inline-block;text-overflow:ellipsis;overflow:hidden;white-space:nowrap;font-size:16px;font-family:var(--font-pattern, Arial);font-weight:var(--text-weight--large, 600);color:var(--color--title-primary, #2B3A54);margin-top:12px}[data-mode=\"hidden\"].sc-snk-filter-bar-h{width:0px;height:0px}[data-mode=\"button\"].sc-snk-filter-bar-h{grid-template-columns:1fr;width:fit-content}.snk-filter__popover-container.sc-snk-filter-bar{display:flex;cursor:auto}.filter-bar__personalized-filter.sc-snk-filter-bar{display:flex;flex-direction:column;position:fixed;top:0;left:0;width:100%;height:100%;overflow:auto;z-index:var(--snk-personalized-filter--z-index);background-color:var(--snk-personalized-filter--background-color)}.snk-filter__popover.sc-snk-filter-bar{display:flex;flex-direction:column;position:absolute;width:fit-content;height:fit-content;min-width:265px;background-color:var(--background--xlight, #fff);border-radius:var(--border--radius-medium, 12px);box-shadow:var(--shadow, 0px 0px 16px 0px #000)}.snk-filter-item__editor-header.sc-snk-filter-bar{flex-grow:1;font-weight:var(--text-weight--medium, 400);color:var(--color--title-primary, #2B3A54)}.snk-filter__popover-rule.sc-snk-filter-bar{border-style:solid;border-color:var(--color--disable-secondary, #F2F5F8);border-radius:1px;border-width:1px;width:100%}.editor__ez-check.sc-snk-filter-bar{--ez-check__label--padding-left:0}.snk-filter-item__editor-header-button.sc-snk-filter-bar{cursor:pointer;background-color:transparent;border:none;padding:3px;outline-color:var(--color--primary)}.snk-filter-bar__divider.sc-snk-filter-bar{margin-bottom:var(--space--small)}.snk-filter-bar__filter-item-container.sc-snk-filter-bar{display:flex;align-items:start}.snk-filter-bar__scroller.sc-snk-filter-bar .sc-snk-filter-bar:first-child{margin-left:var(--space-extra-small, 3px)}.snk-filter-bar__filter-list-items-container.sc-snk-filter-bar{overflow-y:auto;max-height:360px;margin-top:var(--space--small, 6px)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar{cursor:pointer;border-radius:var(--border--radius-small, 6px);border:none;background-color:transparent}.snk-filter-bar__filter-list-item__label.sc-snk-filter-bar{color:var(--title--primary)}.snk-filter-bar__filter-list-item__label--secondary.sc-snk-filter-bar{color:var(--text--primary)}.snk-filter-bar__filter-list-item__icon.sc-snk-filter-bar{--ez-icon--color:var(--title--primary)}.snk-filter-bar__filter-list-item__icon--secondary.sc-snk-filter-bar{--ez-icon--color:var(--text--secondary)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:focus-visible{outline:none;background-color:var(--background--medium)}.snk-filter-bar__filter-list-item.sc-snk-filter-bar:hover{background-color:var(--background--medium)}.snk-filter-bar__filter-list-items-container--empty.sc-snk-filter-bar{width:100%;height:100px;display:flex;justify-content:center;align-self:center;align-items:center}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar{position:relative}.snk-filter-bar__filter-list-items-button--active.sc-snk-filter-bar::after{display:flex;position:absolute;content:\"\";width:8px;height:8px;top:7px;left:17px;background-color:var(--icon--alert--color, #008561);border-radius:50%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar{--modal-item-border-width:2px;display:flex;flex-direction:row;margin-left:var(--modal-item-border-width);border-radius:var(--border--radius-medium, 12px);background-color:var(--background--medium, #f0f3f7);border:none;width:100%}.snk-filter-bar__filter-modal-item.sc-snk-filter-bar:focus-visible{outline:var(--color--primary) solid var(--modal-item-border-width)}.snk-filter-bar__filter-modal-item__check.sc-snk-filter-bar{width:auto}.snk-filter-bar__filter-modal-item__label.sc-snk-filter-bar{font-weight:var(--text-weight--medium)}.snk-filter-bar__filter-modal-content.sc-snk-filter-bar{display:grid;grid-template-rows:auto auto 1fr auto;width:99%;height:100%}";
|
|
257
257
|
|
|
258
258
|
const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement {
|
|
259
259
|
constructor() {
|
|
@@ -735,7 +735,7 @@ const SnkFilterBar = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
735
735
|
if (this.mode !== "regular") {
|
|
736
736
|
return (h(Host, { "data-mode": this.mode }, this.getPersonalizedFilterVariableItems(), this.mode === 'button' && (h("ez-button", { class: "ez-margin-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }))));
|
|
737
737
|
}
|
|
738
|
-
return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
|
|
738
|
+
return (h(Host, null, h("div", null, h("span", { class: "snk-filter-bar__title", title: this.title, "data-tooltip": this.title, "data-flow": "bottom" }, this.title)), h("ez-scroller", { class: "snk-filter-bar__scroller", direction: EzScrollDirection.HORIZONTAL, activeShadow: true, locked: this.scrollerLocked }, h("section", { class: "snk-filter-bar__filter-item-container" }, this.getFilterItems())), h("ez-button", { class: "ez-padding-left--medium ez-margin-top--extra-small", size: "small", label: this.getMessage('snkFilterBar.filters', undefined, 'Filtros'), onClick: this.showFilterModal.bind(this) }, h("ez-icon", { slot: "leftIcon", iconName: "plus", class: "ez-padding-right--small" }))));
|
|
739
739
|
}
|
|
740
740
|
get _element() { return this; }
|
|
741
741
|
static get watchers() { return {
|
|
@@ -33,6 +33,7 @@ const SnkFilterItem = /*@__PURE__*/ proxyCustomElement(class extends HTMLElement
|
|
|
33
33
|
this._filterItemElement.scrollIntoView({ behavior: "auto", block: "nearest", inline: "nearest" });
|
|
34
34
|
if (open) {
|
|
35
35
|
this._closeCallback = resolve;
|
|
36
|
+
this._chipElement.blur();
|
|
36
37
|
window.requestAnimationFrame(() => {
|
|
37
38
|
this._floatingID = FloatingManager.float(this._popover, this._popoverContainer, this.getFloatOptions());
|
|
38
39
|
this._popover.show();
|
package/dist/esm/{ClientSideExporterProvider-ff89c7e9.js → ClientSideExporterProvider-3537805a.js}
RENAMED
|
@@ -5,7 +5,7 @@ import { D as DataExporterOption } from './index-b40568ff.js';
|
|
|
5
5
|
import './ISave-d8c8bc59.js';
|
|
6
6
|
import '@sankhyalabs/ezui/dist/collection/utils/constants';
|
|
7
7
|
import { UserInterface as UserInterface$1 } from '@sankhyalabs/core/dist/dataunit/metadata/UnitMetadata';
|
|
8
|
-
import { P as PreloadManager } from './dataunit-fetcher-
|
|
8
|
+
import { P as PreloadManager } from './dataunit-fetcher-91b094f2.js';
|
|
9
9
|
import './filter-item-type.enum-d45e026f.js';
|
|
10
10
|
import './form-config-fetcher-126e2471.js';
|
|
11
11
|
import './constants-75abb876.js';
|